From 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Mon, 2 Nov 2020 11:07:33 +0900 Subject: basesystem-jj recipes --- external/poky/meta/COPYING.GPLv2 | 339 - external/poky/meta/classes/archiver.bbclass | 180 +- external/poky/meta/classes/autotools.bbclass | 9 +- external/poky/meta/classes/base.bbclass | 153 +- external/poky/meta/classes/binconfig.bbclass | 9 - external/poky/meta/classes/bluetooth.bbclass | 14 - external/poky/meta/classes/buildhistory.bbclass | 94 +- external/poky/meta/classes/buildstats.bbclass | 2 +- external/poky/meta/classes/ccache.bbclass | 63 +- external/poky/meta/classes/ccmake.bbclass | 97 + external/poky/meta/classes/chrpath.bbclass | 55 +- external/poky/meta/classes/clutter.bbclass | 3 +- external/poky/meta/classes/cmake.bbclass | 105 +- external/poky/meta/classes/cml1.bbclass | 4 +- external/poky/meta/classes/compress_doc.bbclass | 2 + external/poky/meta/classes/core-image.bbclass | 3 + external/poky/meta/classes/cpan-base.bbclass | 6 +- external/poky/meta/classes/cpan.bbclass | 13 +- external/poky/meta/classes/cpan_build.bbclass | 7 +- external/poky/meta/classes/cross-canadian.bbclass | 2 + external/poky/meta/classes/cross.bbclass | 5 +- external/poky/meta/classes/crosssdk.bbclass | 9 +- external/poky/meta/classes/cve-check.bbclass | 33 +- external/poky/meta/classes/debian.bbclass | 6 +- external/poky/meta/classes/devicetree.bbclass | 13 +- external/poky/meta/classes/devtool-source.bbclass | 12 +- .../meta/classes/distro_features_check.bbclass | 40 +- external/poky/meta/classes/distrodata.bbclass | 427 - external/poky/meta/classes/distutils-base.bbclass | 4 - external/poky/meta/classes/distutils-tools.bbclass | 73 - external/poky/meta/classes/distutils.bbclass | 92 - external/poky/meta/classes/distutils3.bbclass | 63 +- external/poky/meta/classes/externalsrc.bbclass | 7 +- external/poky/meta/classes/extrausers.bbclass | 17 +- external/poky/meta/classes/features_check.bbclass | 88 + external/poky/meta/classes/fontcache.bbclass | 1 + external/poky/meta/classes/gconf.bbclass | 2 +- external/poky/meta/classes/gnome.bbclass | 1 - external/poky/meta/classes/go-mod.bbclass | 20 + external/poky/meta/classes/go-ptest.bbclass | 54 + external/poky/meta/classes/go.bbclass | 96 +- external/poky/meta/classes/goarch.bbclass | 39 +- .../meta/classes/gobject-introspection.bbclass | 16 +- external/poky/meta/classes/grub-efi-cfg.bbclass | 10 +- external/poky/meta/classes/grub-efi.bbclass | 35 +- external/poky/meta/classes/gsettings.bbclass | 48 +- external/poky/meta/classes/gtk-doc.bbclass | 16 +- external/poky/meta/classes/gtk-icon-cache.bbclass | 8 +- .../poky/meta/classes/gtk-immodules-cache.bbclass | 1 + external/poky/meta/classes/icecc.bbclass | 70 +- external/poky/meta/classes/image-buildinfo.bbclass | 6 +- external/poky/meta/classes/image-live.bbclass | 2 +- external/poky/meta/classes/image-prelink.bbclass | 17 + external/poky/meta/classes/image.bbclass | 34 +- external/poky/meta/classes/image_types.bbclass | 29 +- external/poky/meta/classes/image_types_wic.bbclass | 27 +- external/poky/meta/classes/insane.bbclass | 383 +- .../poky/meta/classes/kernel-devicetree.bbclass | 22 +- external/poky/meta/classes/kernel-fitimage.bbclass | 106 +- .../poky/meta/classes/kernel-module-split.bbclass | 23 +- external/poky/meta/classes/kernel-uboot.bbclass | 4 - external/poky/meta/classes/kernel-uimage.bbclass | 2 +- external/poky/meta/classes/kernel-yocto.bbclass | 143 +- external/poky/meta/classes/kernel.bbclass | 61 +- external/poky/meta/classes/kernelsrc.bbclass | 2 +- external/poky/meta/classes/libc-common.bbclass | 37 - external/poky/meta/classes/libc-package.bbclass | 74 +- external/poky/meta/classes/license.bbclass | 81 +- external/poky/meta/classes/license_image.bbclass | 44 +- external/poky/meta/classes/linuxloader.bbclass | 33 +- external/poky/meta/classes/live-vm-common.bbclass | 33 + external/poky/meta/classes/manpages.bbclass | 9 +- external/poky/meta/classes/mcextend.bbclass | 16 + external/poky/meta/classes/meson.bbclass | 66 +- external/poky/meta/classes/metadata_scm.bbclass | 44 +- external/poky/meta/classes/mime-xdg.bbclass | 74 + external/poky/meta/classes/mime.bbclass | 71 +- external/poky/meta/classes/module.bbclass | 1 + external/poky/meta/classes/multilib.bbclass | 60 +- external/poky/meta/classes/multilib_global.bbclass | 20 +- external/poky/meta/classes/multilib_script.bbclass | 20 +- external/poky/meta/classes/native.bbclass | 9 +- external/poky/meta/classes/nativesdk.bbclass | 6 +- external/poky/meta/classes/npm.bbclass | 362 +- external/poky/meta/classes/package.bbclass | 420 +- external/poky/meta/classes/package_deb.bbclass | 5 +- external/poky/meta/classes/package_ipk.bbclass | 13 +- external/poky/meta/classes/package_pkgdata.bbclass | 167 + external/poky/meta/classes/package_rpm.bbclass | 13 +- external/poky/meta/classes/packagegroup.bbclass | 4 +- external/poky/meta/classes/patch.bbclass | 7 + external/poky/meta/classes/perl-version.bbclass | 46 +- external/poky/meta/classes/pixbufcache.bbclass | 3 +- .../poky/meta/classes/populate_sdk_base.bbclass | 40 +- .../poky/meta/classes/populate_sdk_ext.bbclass | 110 +- external/poky/meta/classes/ptest.bbclass | 53 +- external/poky/meta/classes/pypi.bbclass | 4 +- external/poky/meta/classes/python-dir.bbclass | 5 - external/poky/meta/classes/python3-dir.bbclass | 4 +- external/poky/meta/classes/python3native.bbclass | 10 + external/poky/meta/classes/pythonnative.bbclass | 19 - external/poky/meta/classes/qemu.bbclass | 3 + external/poky/meta/classes/qemuboot.bbclass | 19 + external/poky/meta/classes/relocatable.bbclass | 20 +- external/poky/meta/classes/report-error.bbclass | 23 +- .../poky/meta/classes/reproducible_build.bbclass | 60 +- .../meta/classes/reproducible_build_simple.bbclass | 1 - external/poky/meta/classes/rm_work.bbclass | 50 +- .../poky/meta/classes/rootfs-postcommands.bbclass | 35 +- external/poky/meta/classes/rootfs_ipk.bbclass | 2 +- external/poky/meta/classes/sanity.bbclass | 71 +- external/poky/meta/classes/scons.bbclass | 26 +- external/poky/meta/classes/setuptools.bbclass | 3 - external/poky/meta/classes/siteinfo.bbclass | 10 +- external/poky/meta/classes/sstate.bbclass | 274 +- external/poky/meta/classes/staging.bbclass | 76 +- external/poky/meta/classes/syslinux.bbclass | 5 - .../poky/meta/classes/systemd-boot-cfg.bbclass | 3 + external/poky/meta/classes/systemd-boot.bbclass | 31 +- external/poky/meta/classes/systemd.bbclass | 56 +- external/poky/meta/classes/terminal.bbclass | 4 +- external/poky/meta/classes/testimage.bbclass | 97 +- external/poky/meta/classes/texinfo.bbclass | 8 +- external/poky/meta/classes/tinderclient.bbclass | 368 - external/poky/meta/classes/toaster.bbclass | 26 +- .../poky/meta/classes/toolchain-scripts.bbclass | 1 + .../meta/classes/uboot-extlinux-config.bbclass | 15 +- external/poky/meta/classes/uboot-sign.bbclass | 122 +- external/poky/meta/classes/uninative.bbclass | 17 +- .../poky/meta/classes/update-alternatives.bbclass | 130 +- external/poky/meta/classes/update-rc.d.bbclass | 28 +- .../poky/meta/classes/useradd-staticids.bbclass | 8 +- external/poky/meta/classes/useradd.bbclass | 7 +- external/poky/meta/classes/utils.bbclass | 2 +- external/poky/meta/classes/vala.bbclass | 2 +- external/poky/meta/classes/waf.bbclass | 34 +- external/poky/meta/classes/xmlcatalog.bbclass | 26 + external/poky/meta/conf/abi_version.conf | 8 + external/poky/meta/conf/bitbake.conf | 139 +- external/poky/meta/conf/ccache.conf | 2 + external/poky/meta/conf/conf-notes.txt | 7 +- external/poky/meta/conf/distro/defaultsetup.conf | 5 +- .../conf/distro/include/default-distrovars.inc | 19 +- .../meta/conf/distro/include/default-providers.inc | 6 +- .../poky/meta/conf/distro/include/distro_alias.inc | 18 +- .../distro/include/init-manager-mdev-busybox.inc | 7 + .../meta/conf/distro/include/init-manager-none.inc | 3 + .../conf/distro/include/init-manager-systemd.inc | 6 + .../conf/distro/include/init-manager-sysvinit.inc | 6 + .../poky/meta/conf/distro/include/maintainers.inc | 354 +- .../meta/conf/distro/include/no-static-libs.inc | 8 +- .../conf/distro/include/ptest-packagelists.inc | 86 + .../meta/conf/distro/include/security_flags.inc | 6 +- .../meta/conf/distro/include/tclibc-baremetal.inc | 2 +- .../poky/meta/conf/distro/include/tclibc-glibc.inc | 19 +- .../meta/conf/distro/include/tclibc-newlib.inc | 9 +- .../meta/conf/distro/include/tcmode-default.inc | 32 +- .../meta/conf/distro/include/upstream_tracking.inc | 24 - .../poky/meta/conf/distro/include/world-broken.inc | 27 - .../meta/conf/distro/include/yocto-uninative.inc | 10 +- external/poky/meta/conf/documentation.conf | 19 +- external/poky/meta/conf/image-uefi.conf | 16 + external/poky/meta/conf/layer.conf | 15 +- external/poky/meta/conf/licenses.conf | 45 +- .../meta/conf/machine/include/arm/arch-armv4.inc | 2 +- .../conf/machine/include/arm/arch-armv5-dsp.inc | 2 +- .../meta/conf/machine/include/arm/arch-armv5.inc | 2 +- .../meta/conf/machine/include/arm/arch-armv7a.inc | 32 +- .../meta/conf/machine/include/arm/arch-armv7ve.inc | 32 +- .../meta/conf/machine/include/arm/arch-armv8.inc | 1 - .../meta/conf/machine/include/arm/arch-armv8a.inc | 30 + .../conf/machine/include/arm/feature-arm-neon.inc | 3 + .../conf/machine/include/arm/feature-arm-thumb.inc | 7 +- .../conf/machine/include/arm/feature-arm-vfp.inc | 3 +- .../machine/include/microblaze/arch-microblaze.inc | 35 +- .../include/microblaze/feature-microblaze-math.inc | 12 +- .../microblaze/feature-microblaze-versions.inc | 6 +- .../conf/machine/include/powerpc/arch-powerpc.inc | 25 +- .../machine/include/powerpc/arch-powerpc64.inc | 15 +- external/poky/meta/conf/machine/include/qemu.inc | 2 +- .../meta/conf/machine/include/qemuboot-mips.inc | 8 +- .../meta/conf/machine/include/qemuboot-x86.inc | 12 +- .../meta/conf/machine/include/riscv/arch-riscv.inc | 16 + .../meta/conf/machine/include/riscv/qemuriscv.inc | 38 + .../meta/conf/machine/include/riscv/tune-riscv.inc | 33 + .../meta/conf/machine/include/tune-arm1136jf-s.inc | 9 +- .../meta/conf/machine/include/tune-arm1176jz-s.inc | 17 + .../meta/conf/machine/include/tune-arm920t.inc | 4 +- .../meta/conf/machine/include/tune-arm926ejs.inc | 4 +- .../meta/conf/machine/include/tune-arm9tdmi.inc | 4 +- .../meta/conf/machine/include/tune-cortexa15.inc | 27 +- .../meta/conf/machine/include/tune-cortexa17.inc | 27 +- .../meta/conf/machine/include/tune-cortexa32.inc | 18 + .../meta/conf/machine/include/tune-cortexa35.inc | 17 + .../meta/conf/machine/include/tune-cortexa5.inc | 35 +- .../meta/conf/machine/include/tune-cortexa53.inc | 17 + .../machine/include/tune-cortexa57-cortexa53.inc | 18 + .../meta/conf/machine/include/tune-cortexa7.inc | 27 +- .../machine/include/tune-cortexa72-cortexa53.inc | 23 + .../meta/conf/machine/include/tune-cortexa72.inc | 13 + .../meta/conf/machine/include/tune-cortexa8.inc | 19 +- .../meta/conf/machine/include/tune-cortexa9.inc | 28 +- .../poky/meta/conf/machine/include/tune-ep9312.inc | 3 +- .../poky/meta/conf/machine/include/tune-iwmmxt.inc | 3 +- .../poky/meta/conf/machine/include/tune-power5.inc | 9 +- .../poky/meta/conf/machine/include/tune-power6.inc | 9 +- .../poky/meta/conf/machine/include/tune-power7.inc | 9 +- .../poky/meta/conf/machine/include/tune-power9.inc | 35 + .../poky/meta/conf/machine/include/tune-ppc476.inc | 2 +- .../meta/conf/machine/include/tune-ppc603e.inc | 2 +- .../meta/conf/machine/include/tune-ppc7400.inc | 2 +- .../meta/conf/machine/include/tune-ppce300c2.inc | 2 +- .../meta/conf/machine/include/tune-ppce500.inc | 2 +- .../meta/conf/machine/include/tune-ppce500mc.inc | 2 +- .../meta/conf/machine/include/tune-ppce500v2.inc | 2 +- .../meta/conf/machine/include/tune-ppce5500.inc | 4 +- .../meta/conf/machine/include/tune-ppce6500.inc | 4 +- .../conf/machine/include/tune-strongarm1100.inc | 3 +- .../meta/conf/machine/include/tune-thunderx.inc | 8 +- .../poky/meta/conf/machine/include/tune-xscale.inc | 7 +- .../poky/meta/conf/machine/include/x86-base.inc | 4 +- external/poky/meta/conf/machine/qemuarm.conf | 35 +- external/poky/meta/conf/machine/qemuarm64.conf | 24 +- external/poky/meta/conf/machine/qemuarmv5.conf | 22 + external/poky/meta/conf/machine/qemumips.conf | 8 +- external/poky/meta/conf/machine/qemumips64.conf | 10 +- external/poky/meta/conf/machine/qemuppc.conf | 7 +- external/poky/meta/conf/machine/qemuriscv64.conf | 11 + external/poky/meta/conf/machine/qemux86-64.conf | 17 +- external/poky/meta/conf/machine/qemux86.conf | 15 +- external/poky/meta/conf/multilib.conf | 3 +- external/poky/meta/conf/sanity.conf | 2 +- .../common-licenses/Apache-2.0-with-LLVM-exception | 219 + .../poky/meta/files/common-licenses/BSD-2-Clause | 11 +- .../meta/files/common-licenses/BSD-2-Clause-Patent | 47 + .../meta/files/common-licenses/Elfutils-Exception | 12 - external/poky/meta/files/common-licenses/Intel | 105 + external/poky/meta/files/common-licenses/bzip2 | 41 - .../poky/meta/files/common-licenses/bzip2-1.0.6 | 41 + external/poky/meta/files/common-licenses/vim | 81 + external/poky/meta/files/ext-sdk-prepare.py | 2 +- external/poky/meta/files/toolchain-shar-extract.sh | 42 +- external/poky/meta/lib/bblayers/create.py | 4 + external/poky/meta/lib/buildstats.py | 3 + external/poky/meta/lib/oe/__init__.py | 4 + external/poky/meta/lib/oe/buildhistory_analysis.py | 31 +- external/poky/meta/lib/oe/cachedpath.py | 2 + external/poky/meta/lib/oe/classextend.py | 8 +- external/poky/meta/lib/oe/classutils.py | 3 + external/poky/meta/lib/oe/copy_buildsystem.py | 21 +- external/poky/meta/lib/oe/data.py | 4 + external/poky/meta/lib/oe/distro_check.py | 4 + external/poky/meta/lib/oe/elf.py | 11 +- external/poky/meta/lib/oe/gpg_sign.py | 49 +- external/poky/meta/lib/oe/license.py | 12 +- external/poky/meta/lib/oe/lsb.py | 12 +- external/poky/meta/lib/oe/maketype.py | 3 + external/poky/meta/lib/oe/manifest.py | 4 + external/poky/meta/lib/oe/package.py | 41 +- external/poky/meta/lib/oe/package_manager.py | 160 +- external/poky/meta/lib/oe/packagedata.py | 9 +- external/poky/meta/lib/oe/packagegroup.py | 4 + external/poky/meta/lib/oe/patch.py | 42 +- external/poky/meta/lib/oe/path.py | 31 +- external/poky/meta/lib/oe/prservice.py | 72 +- external/poky/meta/lib/oe/qa.py | 8 +- external/poky/meta/lib/oe/recipeutils.py | 214 +- external/poky/meta/lib/oe/rootfs.py | 60 +- external/poky/meta/lib/oe/sdk.py | 8 +- external/poky/meta/lib/oe/sstatesig.py | 272 +- external/poky/meta/lib/oe/terminal.py | 22 +- external/poky/meta/lib/oe/types.py | 8 +- external/poky/meta/lib/oe/useradd.py | 5 +- external/poky/meta/lib/oe/utils.py | 85 +- external/poky/meta/lib/oeqa/buildperf/__init__.py | 8 +- external/poky/meta/lib/oeqa/buildperf/base.py | 11 +- .../poky/meta/lib/oeqa/buildperf/test_basic.py | 9 +- .../poky/meta/lib/oeqa/controllers/__init__.py | 3 + .../poky/meta/lib/oeqa/controllers/masterimage.py | 46 +- .../meta/lib/oeqa/controllers/testtargetloader.py | 4 + external/poky/meta/lib/oeqa/core/case.py | 56 +- .../meta/lib/oeqa/core/cases/example/test_basic.py | 4 +- external/poky/meta/lib/oeqa/core/context.py | 75 +- .../poky/meta/lib/oeqa/core/decorator/__init__.py | 26 +- external/poky/meta/lib/oeqa/core/decorator/data.py | 112 +- .../poky/meta/lib/oeqa/core/decorator/depends.py | 5 +- external/poky/meta/lib/oeqa/core/decorator/oeid.py | 23 - .../poky/meta/lib/oeqa/core/decorator/oetag.py | 24 - .../poky/meta/lib/oeqa/core/decorator/oetimeout.py | 5 +- external/poky/meta/lib/oeqa/core/exception.py | 5 +- external/poky/meta/lib/oeqa/core/loader.py | 68 +- external/poky/meta/lib/oeqa/core/runner.py | 125 +- .../poky/meta/lib/oeqa/core/target/__init__.py | 5 +- external/poky/meta/lib/oeqa/core/target/qemu.py | 42 +- external/poky/meta/lib/oeqa/core/target/ssh.py | 17 +- .../poky/meta/lib/oeqa/core/tests/cases/data.py | 7 +- .../poky/meta/lib/oeqa/core/tests/cases/depends.py | 5 +- .../oeqa/core/tests/cases/loader/invalid/oeid.py | 15 - .../oeqa/core/tests/cases/loader/valid/another.py | 5 +- .../poky/meta/lib/oeqa/core/tests/cases/oeid.py | 18 - .../poky/meta/lib/oeqa/core/tests/cases/oetag.py | 26 +- .../poky/meta/lib/oeqa/core/tests/cases/timeout.py | 5 +- external/poky/meta/lib/oeqa/core/tests/common.py | 9 +- .../poky/meta/lib/oeqa/core/tests/test_data.py | 14 +- .../meta/lib/oeqa/core/tests/test_decorators.py | 106 +- .../poky/meta/lib/oeqa/core/tests/test_loader.py | 43 +- .../poky/meta/lib/oeqa/core/tests/test_runner.py | 6 +- .../meta/lib/oeqa/core/utils/concurrencytest.py | 142 +- external/poky/meta/lib/oeqa/core/utils/misc.py | 5 +- external/poky/meta/lib/oeqa/core/utils/path.py | 5 +- external/poky/meta/lib/oeqa/core/utils/test.py | 5 +- external/poky/meta/lib/oeqa/manual/bsp-hw.json | 342 +- external/poky/meta/lib/oeqa/manual/bsp-qemu.json | 222 - .../poky/meta/lib/oeqa/manual/build-appliance.json | 26 - .../poky/meta/lib/oeqa/manual/compliance-test.json | 194 - external/poky/meta/lib/oeqa/manual/crops.json | 12 +- .../poky/meta/lib/oeqa/manual/eclipse-plugin.json | 6 +- external/poky/meta/lib/oeqa/manual/oe-core.json | 104 +- .../meta/lib/oeqa/manual/toaster-managed-mode.json | 14 +- external/poky/meta/lib/oeqa/oetest.py | 6 +- external/poky/meta/lib/oeqa/runexported.py | 6 +- external/poky/meta/lib/oeqa/runtime/case.py | 5 +- .../poky/meta/lib/oeqa/runtime/cases/_qemutiny.py | 4 + external/poky/meta/lib/oeqa/runtime/cases/apt.py | 8 +- external/poky/meta/lib/oeqa/runtime/cases/boot.py | 33 + .../poky/meta/lib/oeqa/runtime/cases/buildcpio.py | 10 +- .../meta/lib/oeqa/runtime/cases/buildgalculator.py | 7 +- .../poky/meta/lib/oeqa/runtime/cases/buildlzip.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/connman.py | 7 +- external/poky/meta/lib/oeqa/runtime/cases/date.py | 10 +- external/poky/meta/lib/oeqa/runtime/cases/df.py | 8 +- external/poky/meta/lib/oeqa/runtime/cases/dnf.py | 58 +- external/poky/meta/lib/oeqa/runtime/cases/gcc.py | 9 +- external/poky/meta/lib/oeqa/runtime/cases/gi.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/gstreamer.py | 18 + .../meta/lib/oeqa/runtime/cases/kernelmodule.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/ksample.py | 16 +- external/poky/meta/lib/oeqa/runtime/cases/ldd.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/logrotate.py | 65 +- external/poky/meta/lib/oeqa/runtime/cases/ltp.py | 119 + .../meta/lib/oeqa/runtime/cases/ltp_compliance.py | 97 + .../poky/meta/lib/oeqa/runtime/cases/ltp_stress.py | 98 + .../poky/meta/lib/oeqa/runtime/cases/multilib.py | 7 +- .../poky/meta/lib/oeqa/runtime/cases/oe_syslog.py | 91 +- external/poky/meta/lib/oeqa/runtime/cases/opkg.py | 12 +- external/poky/meta/lib/oeqa/runtime/cases/pam.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/parselogs.py | 34 +- external/poky/meta/lib/oeqa/runtime/cases/perl.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/ping.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/ptest.py | 33 +- .../poky/meta/lib/oeqa/runtime/cases/python.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/rpm.py | 85 +- external/poky/meta/lib/oeqa/runtime/cases/scons.py | 37 + external/poky/meta/lib/oeqa/runtime/cases/scp.py | 6 +- .../meta/lib/oeqa/runtime/cases/skeletoninit.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/ssh.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/stap.py | 6 +- .../poky/meta/lib/oeqa/runtime/cases/storage.py | 149 + .../poky/meta/lib/oeqa/runtime/cases/systemd.py | 25 +- .../poky/meta/lib/oeqa/runtime/cases/weston.py | 19 + .../poky/meta/lib/oeqa/runtime/cases/x32lib.py | 6 +- external/poky/meta/lib/oeqa/runtime/cases/xorg.py | 6 +- external/poky/meta/lib/oeqa/runtime/context.py | 18 +- .../meta/lib/oeqa/runtime/decorator/package.py | 5 +- .../poky/meta/lib/oeqa/runtime/files/SConstruct | 1 + external/poky/meta/lib/oeqa/runtime/files/hello.c | 5 + external/poky/meta/lib/oeqa/runtime/loader.py | 5 +- .../lib/oeqa/runtime/utils/targetbuildproject.py | 9 +- external/poky/meta/lib/oeqa/sdk/case.py | 44 +- external/poky/meta/lib/oeqa/sdk/cases/assimp.py | 65 +- external/poky/meta/lib/oeqa/sdk/cases/buildcpio.py | 52 +- .../poky/meta/lib/oeqa/sdk/cases/buildepoxy.py | 41 + .../meta/lib/oeqa/sdk/cases/buildgalculator.py | 56 +- external/poky/meta/lib/oeqa/sdk/cases/buildlzip.py | 65 +- external/poky/meta/lib/oeqa/sdk/cases/gcc.py | 7 + external/poky/meta/lib/oeqa/sdk/cases/perl.py | 19 +- external/poky/meta/lib/oeqa/sdk/cases/python.py | 36 +- external/poky/meta/lib/oeqa/sdk/context.py | 7 +- external/poky/meta/lib/oeqa/sdk/testsdk.py | 5 +- .../meta/lib/oeqa/sdk/utils/sdkbuildproject.py | 5 +- external/poky/meta/lib/oeqa/sdkext/case.py | 5 +- .../poky/meta/lib/oeqa/sdkext/cases/devtool.py | 19 +- external/poky/meta/lib/oeqa/sdkext/context.py | 5 +- external/poky/meta/lib/oeqa/sdkext/testsdk.py | 12 +- external/poky/meta/lib/oeqa/selftest/case.py | 52 +- .../lib/oeqa/selftest/cases/_sstatetests_noauto.py | 4 + .../poky/meta/lib/oeqa/selftest/cases/archiver.py | 134 +- .../poky/meta/lib/oeqa/selftest/cases/bblayers.py | 20 +- .../poky/meta/lib/oeqa/selftest/cases/bbtests.py | 95 +- .../poky/meta/lib/oeqa/selftest/cases/binutils.py | 50 + .../meta/lib/oeqa/selftest/cases/buildhistory.py | 4 + .../meta/lib/oeqa/selftest/cases/buildoptions.py | 35 +- .../meta/lib/oeqa/selftest/cases/containerimage.py | 6 +- .../poky/meta/lib/oeqa/selftest/cases/devtool.py | 121 +- .../meta/lib/oeqa/selftest/cases/distrodata.py | 133 +- external/poky/meta/lib/oeqa/selftest/cases/eSDK.py | 7 +- .../lib/oeqa/selftest/cases/efibootpartition.py | 2 + .../poky/meta/lib/oeqa/selftest/cases/fetch.py | 6 +- external/poky/meta/lib/oeqa/selftest/cases/gcc.py | 152 + .../poky/meta/lib/oeqa/selftest/cases/glibc.py | 89 + .../meta/lib/oeqa/selftest/cases/gotoolchain.py | 4 + .../meta/lib/oeqa/selftest/cases/image_typedep.py | 6 +- .../meta/lib/oeqa/selftest/cases/imagefeatures.py | 86 +- .../lib/oeqa/selftest/cases/incompatible_lic.py | 135 + .../lib/oeqa/selftest/cases/kerneldevelopment.py | 67 + .../meta/lib/oeqa/selftest/cases/layerappend.py | 6 +- .../poky/meta/lib/oeqa/selftest/cases/liboe.py | 8 +- .../meta/lib/oeqa/selftest/cases/lic_checksum.py | 6 +- .../poky/meta/lib/oeqa/selftest/cases/manifest.py | 14 +- .../poky/meta/lib/oeqa/selftest/cases/meta_ide.py | 12 +- .../meta/lib/oeqa/selftest/cases/multiconfig.py | 72 + .../lib/oeqa/selftest/cases/oelib/buildhistory.py | 10 +- .../poky/meta/lib/oeqa/selftest/cases/oelib/elf.py | 4 + .../meta/lib/oeqa/selftest/cases/oelib/license.py | 4 + .../meta/lib/oeqa/selftest/cases/oelib/path.py | 4 + .../meta/lib/oeqa/selftest/cases/oelib/types.py | 4 + .../meta/lib/oeqa/selftest/cases/oelib/utils.py | 4 + .../poky/meta/lib/oeqa/selftest/cases/oescripts.py | 163 +- .../poky/meta/lib/oeqa/selftest/cases/package.py | 13 +- .../poky/meta/lib/oeqa/selftest/cases/pkgdata.py | 17 +- .../poky/meta/lib/oeqa/selftest/cases/prservice.py | 18 +- .../meta/lib/oeqa/selftest/cases/recipetool.py | 139 +- .../meta/lib/oeqa/selftest/cases/recipeutils.py | 140 + .../meta/lib/oeqa/selftest/cases/reproducible.py | 240 + .../lib/oeqa/selftest/cases/resulttooltests.py | 6 +- .../poky/meta/lib/oeqa/selftest/cases/runcmd.py | 34 +- .../poky/meta/lib/oeqa/selftest/cases/runqemu.py | 17 +- .../meta/lib/oeqa/selftest/cases/runtime_test.py | 264 +- .../poky/meta/lib/oeqa/selftest/cases/selftest.py | 6 +- .../poky/meta/lib/oeqa/selftest/cases/signing.py | 39 +- .../poky/meta/lib/oeqa/selftest/cases/sstate.py | 8 +- .../meta/lib/oeqa/selftest/cases/sstatetests.py | 100 +- .../poky/meta/lib/oeqa/selftest/cases/sysroot.py | 37 + .../poky/meta/lib/oeqa/selftest/cases/tinfoil.py | 28 +- external/poky/meta/lib/oeqa/selftest/cases/wic.py | 240 +- external/poky/meta/lib/oeqa/selftest/context.py | 167 +- external/poky/meta/lib/oeqa/targetcontrol.py | 24 +- external/poky/meta/lib/oeqa/utils/__init__.py | 3 + external/poky/meta/lib/oeqa/utils/buildproject.py | 4 +- external/poky/meta/lib/oeqa/utils/commands.py | 30 +- external/poky/meta/lib/oeqa/utils/decorators.py | 4 +- external/poky/meta/lib/oeqa/utils/dump.py | 9 +- external/poky/meta/lib/oeqa/utils/ftools.py | 4 + external/poky/meta/lib/oeqa/utils/git.py | 2 +- external/poky/meta/lib/oeqa/utils/gitarchive.py | 9 +- external/poky/meta/lib/oeqa/utils/httpserver.py | 8 +- external/poky/meta/lib/oeqa/utils/logparser.py | 86 +- external/poky/meta/lib/oeqa/utils/metadata.py | 7 +- external/poky/meta/lib/oeqa/utils/network.py | 8 +- external/poky/meta/lib/oeqa/utils/nfs.py | 39 + .../poky/meta/lib/oeqa/utils/package_manager.py | 4 + external/poky/meta/lib/oeqa/utils/qemurunner.py | 169 +- .../poky/meta/lib/oeqa/utils/qemutinyrunner.py | 6 +- external/poky/meta/lib/oeqa/utils/sshcontrol.py | 7 +- .../poky/meta/lib/oeqa/utils/subprocesstweak.py | 3 + external/poky/meta/lib/oeqa/utils/targetbuild.py | 4 +- external/poky/meta/lib/oeqa/utils/testexport.py | 4 +- external/poky/meta/lib/rootfspostcommands.py | 4 + external/poky/meta/recipes-bsp/acpid/acpid.inc | 6 + .../poky/meta/recipes-bsp/acpid/acpid_2.0.30.bb | 7 - .../poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb | 7 + .../poky/meta/recipes-bsp/alsa-state/alsa-state.bb | 2 +- .../efibootmgr/0001-remove-extra-decl.patch | 31 + .../97668ae0bce776a36ea2001dea63d376be8274ac.patch | 83 + .../meta/recipes-bsp/efibootmgr/efibootmgr_17.bb | 35 + .../meta/recipes-bsp/efivar/efivar/no-werror.patch | 18 + external/poky/meta/recipes-bsp/efivar/efivar_37.bb | 40 + .../meta/recipes-bsp/formfactor/formfactor_0.0.bb | 3 + .../gnu-efi/gnu-efi/gcc46-compatibility.patch | 35 - .../gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch | 24 + .../gnu-efi/gnu-efi/parallel-make-archives.patch | 18 - .../meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb | 71 + .../poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.8.bb | 71 - ...-mfpmath-sse-as-well-when-SSE-is-disabled.patch | 13 +- ...need_charset_alias-when-building-for-musl.patch | 30 - .../0001-grub-setup-Debug-message-cleanup.patch | 34 - ...1-grub.d-10_linux.in-add-oe-s-kernel-name.patch | 16 +- ...-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch | 76 - .../grub/files/autogen.sh-exclude-pc.patch | 15 +- .../grub/files/fix.build.with.gcc-7.patch | 39 - .../poky/meta/recipes-bsp/grub/files/gcc8.patch | 74 - ...-explicitly-keeps-symbole-.module_license.patch | 21 +- .../meta/recipes-bsp/grub/grub-bootconf_1.00.bb | 13 +- .../poky/meta/recipes-bsp/grub/grub-efi_2.02.bb | 112 - .../poky/meta/recipes-bsp/grub/grub-efi_2.04.bb | 109 + external/poky/meta/recipes-bsp/grub/grub2.inc | 31 +- external/poky/meta/recipes-bsp/grub/grub_2.02.bb | 29 - external/poky/meta/recipes-bsp/grub/grub_2.04.bb | 33 + .../recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch | 19 - .../lrzsz/lrzsz-0.12.20/autotools-update.patch | 5749 + .../recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch | 21884 --- .../recipes-bsp/lrzsz/lrzsz-0.12.20/include.patch | 25 + .../lrzsz_fix_for_automake-1.12.patch | 49 - .../poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb | 5 +- ...0001-Makefile-Don-t-specify-mabi-or-march.patch | 36 + .../meta/recipes-bsp/opensbi/opensbi-payloads.inc | 21 + .../poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb | 48 + .../recipes-bsp/pciutils/pciutils/configure.patch | 4 +- .../meta/recipes-bsp/pciutils/pciutils_3.6.2.bb | 60 - .../meta/recipes-bsp/pciutils/pciutils_3.6.4.bb | 60 + .../u-boot/files/CVE-2018-1000205-1.patch | 59 - .../u-boot/files/CVE-2018-1000205-2.patch | 143 - .../files/remove-redundant-yyloc-global.patch | 27 + .../meta/recipes-bsp/u-boot/libubootenv_0.2.bb | 27 + .../poky/meta/recipes-bsp/u-boot/u-boot-common.inc | 23 + .../recipes-bsp/u-boot/u-boot-common_2018.07.inc | 18 - .../recipes-bsp/u-boot/u-boot-fw-utils_2018.07.bb | 34 - .../recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb | 29 - .../poky/meta/recipes-bsp/u-boot/u-boot-tools.inc | 66 + .../recipes-bsp/u-boot/u-boot-tools_2020.01.bb | 2 + external/poky/meta/recipes-bsp/u-boot/u-boot.inc | 133 +- .../poky/meta/recipes-bsp/u-boot/u-boot_2018.07.bb | 4 - .../poky/meta/recipes-bsp/u-boot/u-boot_2020.01.bb | 4 + external/poky/meta/recipes-bsp/usbinit/usbinit.bb | 4 + .../usb-devices-avoid-dependency-on-bash.patch | 30 - .../poky/meta/recipes-bsp/usbutils/usbutils_010.bb | 32 - .../poky/meta/recipes-bsp/usbutils/usbutils_012.bb | 31 + .../recipes-connectivity/avahi/avahi-ui_0.7.bb | 10 +- .../poky/meta/recipes-connectivity/avahi/avahi.inc | 12 + .../meta/recipes-connectivity/avahi/avahi_0.7.bb | 10 + .../0001-Fix-opening-etc-resolv.conf-error.patch | 7 +- ...0001-build-use-pkg-config-to-find-libxml2.patch | 54 - ...igure.in-remove-useless-L-use_openssl-lib.patch | 18 +- ...-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch | 22 - .../0001-lib-dns-gen.c-fix-too-long-error.patch | 31 - ...-searching-for-json-headers-searches-sysr.patch | 15 +- .../meta/recipes-connectivity/bind/bind_9.11.21.bb | 140 + .../recipes-connectivity/bind/bind_9.11.5-P4.bb | 137 - .../meta/recipes-connectivity/bluez5/bluez5.inc | 34 +- ...-obexd-without-systemd-in-the-user-sessio.patch | 12 +- ...01-Makefile.am-Fix-a-race-issue-for-tools.patch | 32 - .../bluez5/bluez5/CVE-2018-10910.patch | 705 - .../bluez5/bluez5/out-of-tree.patch | 26 - .../recipes-connectivity/bluez5/bluez5/run-ptest | 2 +- .../recipes-connectivity/bluez5/bluez5_5.50.bb | 70 - .../recipes-connectivity/bluez5/bluez5_5.54.bb | 68 + .../connman/connman-gnome_0.7.bb | 2 +- .../meta/recipes-connectivity/connman/connman.inc | 26 +- ...iognutls-Fix-a-crash-using-wispr-over-TLS.patch | 41 - .../0001-gweb-fix-segfault-with-musl-v1.1.21.patch | 34 + ...Add-prefixlen-to-iproute_default_function.patch | 63 - ...ion-Keep-track-of-addr-in-fw_snat-session.patch | 112 - ...ent-subnet-route-creation-deletion-in-ipr.patch | 69 - ...ent-APIs-for-creating-and-deleting-subnet.patch | 68 - ...e-subnet-route-creation-and-deletion-APIs.patch | 77 - .../connman/connman/includes.patch | 417 - .../recipes-connectivity/connman/connman_1.35.bb | 22 - .../recipes-connectivity/connman/connman_1.37.bb | 17 + .../poky/meta/recipes-connectivity/dhcp/dhcp.inc | 5 +- ...d-includes-of-new-BIND9-compatibility-hea.patch | 79 - ...sybox-limitation-in-linux-dhclient-script.patch | 65 + .../dhcp/dhcp/0004-Fix-out-of-tree-builds.patch | 6 +- .../dhcp/0006-site.h-enable-gentle-shutdown.patch | 27 - .../meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb | 22 - .../meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb | 21 + .../0001-rcp-fix-to-work-with-large-files.patch | 31 + .../inetutils/fix-buffer-fortify-tfpt.patch | 25 + .../inetutils/inetutils/fix-disable-ipv6.patch | 83 + ...tf-parse-pull-in-features.h-for-__GLIBC__.patch | 29 + .../inetutils/inetutils-1.8-0003-wchar.patch | 14 + .../inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch | 26 + ...ls-only-check-pam_appl.h-when-pam-enabled.patch | 40 + .../inetutils/inetutils/rexec.xinetd.inetutils | 20 + .../inetutils/inetutils/rlogin.xinetd.inetutils | 23 + .../inetutils/inetutils/rsh.xinetd.inetutils | 21 + .../inetutils/inetutils/telnet.xinetd.inetutils | 13 + .../inetutils/inetutils/tftpd.xinetd.inetutils | 19 + .../inetutils/inetutils/version.patch | 17 + .../inetutils/inetutils_1.9.4.bb | 214 + .../recipes-connectivity/iproute2/iproute2.inc | 37 +- .../iproute2/0001-ip-Remove-unneed-header.patch | 30 - .../iproute2/iproute2/configure-cross.patch | 32 - .../iproute2/iproute2_4.19.0.bb | 14 - .../iproute2/iproute2_5.5.0.bb | 12 + .../irda-utils/irda-utils-0.9.18/init | 78 - .../irda-utils/irda-utils-0.9.18/ldflags.patch | 87 - .../irda-utils/irda-utils-0.9.18/musl.patch | 29 - .../irda-utils/irda-utils_0.9.18.bb | 51 - .../iw/0001-connect-fix-parsing-of-WEP-keys.patch | 194 - .../iw/iw/separate-objdir.patch | 33 +- .../poky/meta/recipes-connectivity/iw/iw_4.14.bb | 34 - .../poky/meta/recipes-connectivity/iw/iw_5.4.bb | 32 + .../libnss-mdns/0001-check-for-nss.h.patch | 56 - .../libnss-mdns/libnss-mdns_0.10.bb | 45 - .../libnss-mdns/libnss-mdns_0.14.1.bb | 38 + .../meta/recipes-connectivity/libpcap/libpcap.inc | 42 - ...r_state_t.ai-usage-when-INET6-is-not-defi.patch | 41 - ...02-Add-missing-compiler_state_t-parameter.patch | 67 - .../libpcap/libpcap/disable-remote.patch | 36 - .../libpcap/libpcap/fix-grammar-deps.patch | 29 - .../libpcap/libpcap-pkgconfig-support.patch | 73 - .../recipes-connectivity/libpcap/libpcap_1.8.1.bb | 31 - .../recipes-connectivity/libpcap/libpcap_1.9.1.bb | 44 + .../multilibfix.patch | 18 - .../mobile-broadband-provider-info_git.bb | 10 +- .../meta/recipes-connectivity/neard/neard_0.16.bb | 4 +- ...le.am-fix-undefined-function-for-libnsm.a.patch | 299 + ...001-cacheio-use-intmax_t-for-formatted-IO.patch | 38 + .../bugfix-adjust-statd-service-name.patch | 30 +- .../nfs-utils/nfs-utils/clang-warnings.patch | 61 + .../nfs-utils/nfs-utils/nfs-mountd.service | 2 + .../nfs-utils/nfs-utils/nfs-statd.service | 1 + ...-Do-not-pass-CFLAGS-to-gcc-while-building.patch | 42 - .../nfs-utils/nfs-utils-musl-limits.patch | 133 - .../nfs-utils/nfs-utils-musl-res_querydomain.patch | 22 - .../nfs-utils/nfs-utils/nfsserver | 2 +- .../nfs-utils/nfs-utils_2.3.1.bb | 151 - .../nfs-utils/nfs-utils_2.4.3.bb | 147 + .../poky/meta/recipes-connectivity/ofono/ofono.inc | 39 - ...an-optional-TEMP_FAILURE_RETRY-macro-copy.patch | 36 + .../ofono/ofono/use-python3.patch | 27 - .../meta/recipes-connectivity/ofono/ofono_1.24.bb | 9 - .../meta/recipes-connectivity/ofono/ofono_1.31.bb | 50 + ...ial-signed-overflow-in-pointer-arithmatic.patch | 26 +- .../recipes-connectivity/openssh/openssh/run-ptest | 3 +- .../openssh/openssh_7.8p1+git.bb | 164 - .../recipes-connectivity/openssh/openssh_8.2p1.bb | 170 + ...trip-sysroot-and-debug-prefix-map-from-co.patch | 8 +- .../openssl/openssl/CVE-2019-1543.patch | 69 - .../openssl/openssl/afalg.patch | 6 +- .../openssl/openssl/openssl-c_rehash.sh | 222 - .../openssl/openssl/reproducible.patch | 32 + .../openssl10/0001-Fix-BN_LLONG-breakage.patch | 33 - .../openssl10/0001-Fix-DES_LONG-breakage.patch | 35 - ...build-with-clang-using-external-assembler.patch | 45 - .../0001-allow-manpages-to-be-disabled.patch | 31 - ...penssl-force-soft-link-to-avoid-rare-race.patch | 46 - .../openssl/openssl10/Makefiles-ptest.patch | 89 - .../Use-SHA256-not-MD5-as-default-digest.patch | 69 - .../openssl/openssl10/configure-musl-target.patch | 25 - .../openssl/openssl10/configure-targets.patch | 35 - .../openssl/openssl10/debian/c_rehash-compat.patch | 71 - .../openssl/openssl10/debian/debian-targets.patch | 73 - .../openssl/openssl10/debian/man-dir.patch | 15 - .../openssl/openssl10/debian/man-section.patch | 34 - .../openssl/openssl10/debian/no-rpath.patch | 15 - .../openssl/openssl10/debian/no-symbolic.patch | 15 - .../openssl/openssl10/debian/pic.patch | 177 - .../debian1.0.2/block_digicert_malaysia.patch | 29 - .../openssl10/debian1.0.2/block_diginotar.patch | 68 - .../openssl/openssl10/debian1.0.2/soname.patch | 15 - .../openssl10/debian1.0.2/version-script.patch | 4658 - .../openssl10/engines-install-in-libdir-ssl.patch | 64 - .../openssl/openssl10/oe-ldflags.patch | 24 - .../openssl/openssl10/openssl-c_rehash.sh | 222 - .../openssl10/openssl-fix-des.pod-error.patch | 19 - .../openssl/openssl10/openssl_fix_for_x32.patch | 39 - .../openssl/openssl10/parallel.patch | 368 - .../openssl/openssl10/ptest-deps.patch | 34 - .../openssl/openssl10/ptest_makefile_deps.patch | 248 - .../openssl/openssl10/reproducible-cflags.patch | 20 - .../openssl10/reproducible-mkbuildinf.patch | 21 - .../openssl/openssl10/run-ptest | 2 - .../openssl/openssl10/shared-libs.patch | 41 - .../openssl/openssl10_1.0.2r.bb | 363 - .../recipes-connectivity/openssl/openssl_1.1.1b.bb | 218 - .../recipes-connectivity/openssl/openssl_1.1.1g.bb | 215 + .../0001-pppd-Fix-bounds-check-in-EAP-code.patch | 47 + .../meta/recipes-connectivity/ppp/ppp_2.4.7.bb | 1 + .../resolvconf/resolvconf_1.79.bb | 67 - .../resolvconf/resolvconf_1.82.bb | 68 + ...001-Access-c_ispeed-and-c_ospeed-via-APIs.patch | 52 - ...fine-NETDB_INTERNAL-to-1-if-not-available.patch | 32 - .../socat/Makefile.in-fix-for-parallel-build.patch | 35 - .../recipes-connectivity/socat/socat_1.7.3.2.bb | 54 - .../recipes-connectivity/socat/socat_1.7.3.4.bb | 54 + ...-ignore-management-frame-from-unexpected-.patch | 82 + ...-not-allow-event-subscriptions-with-URLs-.patch | 151 + ...x-event-message-generation-using-a-long-U.patch | 62 + ...ndle-HTTP-initiation-failures-for-events-.patch | 50 + .../wpa-supplicant/key-replay-cve-multiple1.patch | 191 - .../wpa-supplicant/key-replay-cve-multiple2.patch | 267 - .../wpa-supplicant/key-replay-cve-multiple3.patch | 201 - .../wpa-supplicant/key-replay-cve-multiple4.patch | 96 - .../wpa-supplicant/key-replay-cve-multiple5.patch | 81 - .../wpa-supplicant/key-replay-cve-multiple6.patch | 149 - .../wpa-supplicant/key-replay-cve-multiple7.patch | 60 - .../wpa-supplicant/key-replay-cve-multiple8.patch | 99 - .../wpa_supplicant-CVE-2018-14526.patch | 44 - .../wpa-supplicant/wpa-supplicant_2.6.bb | 120 - .../wpa-supplicant/wpa-supplicant_2.9.bb | 113 + .../recipes-core/base-files/base-files/filesystems | 8 - .../meta/recipes-core/base-files/base-files/fstab | 2 +- .../meta/recipes-core/base-files/base-files/hosts | 8 + .../meta/recipes-core/base-files/base-files/usbd | 0 .../recipes-core/base-files/base-files_3.0.14.bb | 23 +- .../recipes-core/base-passwd/base-passwd/kvm.patch | 23 + .../recipes-core/base-passwd/base-passwd_3.5.29.bb | 5 +- .../recipes-core/busybox/busybox-inittab_1.29.3.bb | 32 - .../recipes-core/busybox/busybox-inittab_1.31.0.bb | 35 + .../poky/meta/recipes-core/busybox/busybox.inc | 132 +- .../busybox/0001-Remove-stime-function-calls.patch | 85 + ...all-wrappers-around-clock_gettime-closes-.patch | 120 + ...-date-Use-64-prefix-syscall-if-we-have-to.patch | 53 + ...-du-l-works-fix-to-use-145-instead-of-144.patch | 32 + .../0001-hwclock-make-glibc-2.31-compatible.patch | 83 + ...re-EIO-of-stable_secret-below-proc-sys-ne.patch | 40 + ...-testsuite-check-uudecode-before-using-it.patch | 45 + ...e-use-www.example.org-for-wget-test-cases.patch | 62 + ...-time-Use-64-prefix-syscall-if-we-have-to.patch | 43 + ...runsv-Use-64-prefix-syscall-if-we-have-to.patch | 46 + .../busybox/busybox/CVE-2018-20679.patch | 142 - .../busybox/busybox/CVE-2019-5747.patch | 60 - .../busybox/busybox/busybox-CVE-2018-1000500.patch | 98 + .../busybox/busybox-udhcpc-no_deconfig.patch | 60 +- .../meta/recipes-core/busybox/busybox/defconfig | 194 +- .../meta/recipes-core/busybox/busybox/unicode.cfg | 10 + .../meta/recipes-core/busybox/busybox_1.29.3.bb | 50 - .../meta/recipes-core/busybox/busybox_1.31.1.bb | 57 + .../poky/meta/recipes-core/busybox/files/inittab | 12 +- .../meta/recipes-core/busybox/files/mount.busybox | 3 - .../poky/meta/recipes-core/busybox/files/run-ptest | 8 +- .../meta/recipes-core/busybox/files/simple.script | 4 +- .../poky/meta/recipes-core/busybox/files/syslog | 22 +- .../meta/recipes-core/busybox/files/umount.busybox | 3 - .../0001-Cover-the-else-with-__GLIBC__.patch | 51 - ...001-Fix-format-security-compilation-error.patch | 57 - ...clude-sys-types.h-for-u_char-and-u_short-.patch | 44 - .../console-tools/console-tools-0.3.2/Makevars | 41 - .../console-tools-0.3.2/codepage.patch | 17 - .../console-tools-0.3.2/compile.patch | 12 - .../console-tools-0.3.2/configure.patch | 29 - .../fix-libconsole-linking.patch | 56 - .../console-tools-0.3.2/kbdrate.patch | 75 - .../console-tools/console-tools-0.3.2/lcmessage.m4 | 24 - .../console-tools-0.3.2/no-dep-on-libfl.patch | 19 - .../console-tools/console-tools-0.3.2/nodocs.patch | 22 - .../console-tools-0.3.2/uclibc-fileno.patch | 49 - .../console-tools/console-tools_0.3.2.bb | 48 - .../recipes-core/coreutils/coreutils/run-ptest | 17 + .../coreutils/strtod_fix_clash_with_strtold.patch | 56 + .../meta/recipes-core/coreutils/coreutils_8.30.bb | 139 - .../meta/recipes-core/coreutils/coreutils_8.31.bb | 201 + .../poky/meta/recipes-core/dbus/dbus-glib_0.110.bb | 6 +- .../meta/recipes-core/dbus/dbus-test_1.12.10.bb | 83 - .../meta/recipes-core/dbus/dbus-test_1.12.16.bb | 90 + .../recipes-core/dbus/dbus/CVE-2019-12749.patch | 127 - .../recipes-core/dbus/dbus/CVE-2020-12049.patch | 78 + .../poky/meta/recipes-core/dbus/dbus/dbus-1.init | 4 +- .../poky/meta/recipes-core/dbus/dbus/run-ptest | 19 +- .../poky/meta/recipes-core/dbus/dbus_1.12.10.bb | 177 - .../poky/meta/recipes-core/dbus/dbus_1.12.16.bb | 177 + .../poky/meta/recipes-core/dropbear/dropbear.inc | 21 +- .../dropbear/dropbear/CVE-2018-15599.patch | 236 - .../dropbear/dropbear-disable-weak-ciphers.patch | 44 + .../meta/recipes-core/dropbear/dropbear_2018.76.bb | 5 - .../meta/recipes-core/dropbear/dropbear_2019.78.bb | 4 + external/poky/meta/recipes-core/ell/ell_0.32.bb | 21 + .../recipes-core/expat/expat/CVE-2018-20843.patch | 26 - .../meta/recipes-core/expat/expat/autotools.patch | 25 - .../poky/meta/recipes-core/expat/expat_2.2.6.bb | 24 - .../poky/meta/recipes-core/expat/expat_2.2.9.bb | 22 + external/poky/meta/recipes-core/fts/fts.bb | 22 - external/poky/meta/recipes-core/fts/fts_1.2.7.bb | 21 + .../gettext-0.19.8.1/add-with-bisonlocaledir.patch | 58 - ...atement.c-timsort.h-fix-formatting-issues.patch | 87 - .../gettext/gettext-0.19.8.1/parallel.patch | 23 - .../gettext/gettext-0.19.8.1/use-pkgconfig.patch | 321 - ...1-init-env.in-do-not-add-C-CXX-parameters.patch | 29 + ...x-behaviour-of-for-msgfmt-on-PO-files-wit.patch | 87 + .../0001-tests-autopoint-3-unset-MAKEFLAGS.patch | 26 + .../gettext-0.20.1/add-with-bisonlocaledir.patch | 58 + ...atement.c-timsort.h-fix-formatting-issues.patch | 71 + .../gettext/gettext-0.20.1/parallel.patch | 32 + .../recipes-core/gettext/gettext-0.20.1/run-ptest | 6 + .../gettext-0.20.1/serial-tests-config.patch | 56 + .../gettext/gettext-0.20.1/use-pkgconfig.patch | 713 + ...-PATCH-Disable-the-test-to-convert-euc-jp.patch | 38 - .../gettext/gettext-minimal-0.19.8.1/COPYING | 4 - .../gettext-minimal-0.19.8.1/Makefile.in.in | 483 - .../gettext/gettext-minimal-0.19.8.1/aclocal.tgz | Bin 40014 -> 0 bytes .../gettext/gettext-minimal-0.19.8.1/config.rpath | 684 - .../gettext-minimal-0.19.8.1/remove-potcdate.sin | 19 - .../gettext/gettext-minimal-0.20.1/COPYING | 4 + .../gettext/gettext-minimal-0.20.1/Makefile.in.in | 503 + .../gettext-minimal-0.20.1/aclocal/gettext.m4 | 386 + .../aclocal/host-cpu-c-abi.m4 | 644 + .../gettext-minimal-0.20.1/aclocal/iconv.m4 | 288 + .../gettext-minimal-0.20.1/aclocal/intlmacosx.m4 | 72 + .../gettext-minimal-0.20.1/aclocal/lib-ld.m4 | 168 + .../gettext-minimal-0.20.1/aclocal/lib-link.m4 | 774 + .../gettext-minimal-0.20.1/aclocal/lib-prefix.m4 | 249 + .../gettext/gettext-minimal-0.20.1/aclocal/nls.m4 | 32 + .../gettext/gettext-minimal-0.20.1/aclocal/po.m4 | 450 + .../gettext-minimal-0.20.1/aclocal/progtest.m4 | 91 + .../gettext/gettext-minimal-0.20.1/config.rpath | 684 + .../gettext-minimal-0.20.1/remove-potcdate.sin | 25 + .../gettext/gettext-minimal-native_0.19.8.1.bb | 31 - .../gettext/gettext-minimal-native_0.20.1.bb | 30 + .../meta/recipes-core/gettext/gettext_0.19.8.1.bb | 127 - .../meta/recipes-core/gettext/gettext_0.20.1.bb | 212 + ...Do-not-write-bindir-into-pkg-config-files.patch | 61 + .../0001-Fix-DATADIRNAME-on-uclibc-Linux.patch | 34 + ...stall-gio-querymodules-as-libexec_PROGRAM.patch | 30 +- ...chine-correctly-when-building-with-mingw3.patch | 95 + ...esources.c-comment-out-a-build-host-only-.patch | 27 + ...1-meson-Run-atomics-test-on-clang-as-well.patch | 31 + ...t-hardcode-python-path-into-various-tools.patch | 2 +- .../glib-2.0/glib-2.0/CVE-2019-12450.patch | 59 - .../glib-2.0/glib-2.0/CVE-2019-13012.patch | 47 - .../glib-2.0/glib-2.0/CVE-2019-9633_p1.patch | 316 - .../glib-2.0/glib-2.0/CVE-2019-9633_p2.patch | 231 - .../Enable-more-tests-while-cross-compiling.patch | 165 +- .../glib-2.0/glib-2.0/configure-libtool.patch | 44 - .../recipes-core/glib-2.0/glib-2.0/date-lt.patch | 20 - .../glib-2.0/glib-2.0/meson.cross.d/common | 3 + .../glib-2.0/glib-2.0/meson.cross.d/common-glibc | 5 + .../glib-2.0/glib-2.0/meson.cross.d/common-linux | 5 + .../glib-2.0/glib-2.0/meson.cross.d/common-mingw | 6 + .../glib-2.0/glib-2.0/meson.cross.d/common-musl | 6 + .../glib-2.0/glib-2.0/relocate-modules.patch | 10 +- .../meta/recipes-core/glib-2.0/glib-2.0/run-ptest | 5 +- .../glib-2.0/uclibc_musl_translation.patch | 22 - .../meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb | 26 - .../meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb | 50 + external/poky/meta/recipes-core/glib-2.0/glib.inc | 85 +- .../glib-networking/glib-networking_2.54.1.bb | 29 - .../glib-networking/glib-networking_2.62.4.bb | 34 + .../glibc/cross-localedef-native_2.28.bb | 51 - .../glibc/cross-localedef-native_2.31.bb | 52 + .../meta/recipes-core/glibc/glibc-collateral.inc | 17 +- .../poky/meta/recipes-core/glibc/glibc-common.inc | 21 +- .../poky/meta/recipes-core/glibc/glibc-initial.inc | 57 - .../meta/recipes-core/glibc/glibc-initial_2.28.bb | 9 - external/poky/meta/recipes-core/glibc/glibc-ld.inc | 4 +- .../poky/meta/recipes-core/glibc/glibc-locale.inc | 47 +- .../meta/recipes-core/glibc/glibc-locale_2.28.bb | 1 - .../meta/recipes-core/glibc/glibc-locale_2.31.bb | 1 + .../meta/recipes-core/glibc/glibc-mtrace_2.28.bb | 1 - .../meta/recipes-core/glibc/glibc-mtrace_2.31.bb | 1 + .../poky/meta/recipes-core/glibc/glibc-package.inc | 180 +- .../meta/recipes-core/glibc/glibc-scripts_2.28.bb | 1 - .../meta/recipes-core/glibc/glibc-scripts_2.31.bb | 1 + .../poky/meta/recipes-core/glibc/glibc-testing.inc | 95 - .../recipes-core/glibc/glibc-testsuite_2.31.bb | 63 + .../poky/meta/recipes-core/glibc/glibc-version.inc | 8 + external/poky/meta/recipes-core/glibc/glibc.inc | 48 +- ...def-Add-hardlink-resolver-from-util-linux.patch | 1130 + ...-localedef-Add-hardlink-resolver-to-build.patch | 52 + ...libc-Look-for-host-system-ld.so.cache-as-.patch | 65 - ...ledef-fix-ups-hardlink-to-make-it-compile.patch | 238 + ...libc-Fix-buffer-overrun-with-a-relocated-.patch | 46 - ...libc-Look-for-host-system-ld.so.cache-as-.patch | 65 + ...libc-Raise-the-size-of-arrays-containing-.patch | 136 - ...ivesdk-glibc-Allow-64-bit-atomics-for-x86.patch | 31 - ...libc-Fix-buffer-overrun-with-a-relocated-.patch | 46 + ...libc-Make-relocatable-install-for-locales.patch | 67 - ...libc-Raise-the-size-of-arrays-containing-.patch | 137 + ...500-e5500-e6500-603e-fsqrt-implementation.patch | 1581 - ...ivesdk-glibc-Allow-64-bit-atomics-for-x86.patch | 39 + ...libc-Make-relocatable-install-for-locales.patch | 99 + ...-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch | 29 - ...500-e5500-e6500-603e-fsqrt-implementation.patch | 1581 + ...-Fix-undefined-reference-to-__sqrt_finite.patch | 205 - ...qrt-f-are-now-inline-functions-and-call-o.patch | 384 - ...-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch | 29 + ...bug-1443-which-explains-what-the-patch-do.patch | 58 - ...-Fix-undefined-reference-to-__sqrt_finite.patch | 205 + ...qrt-f-are-now-inline-functions-and-call-o.patch | 384 + ...n-libm-err-tab.pl-with-specific-dirs-in-S.patch | 33 - ...bug-1443-which-explains-what-the-patch-do.patch | 58 + ...qrt-f-are-now-inline-functions-and-call-o.patch | 58 - ...n-libm-err-tab.pl-with-specific-dirs-in-S.patch | 33 + ...-configure.ac-handle-correctly-libc_cv_ro.patch | 39 - .../glibc/glibc/0014-Add-unused-attribute.patch | 31 - ...qrt-f-are-now-inline-functions-and-call-o.patch | 58 + ...-configure.ac-handle-correctly-libc_cv_ro.patch | 39 + ...thin-the-path-sets-wrong-config-variables.patch | 260 - ...-timezone-re-written-tzselect-as-posix-sh.patch | 42 - ...move-bash-dependency-for-nscd-init-script.patch | 72 - ...thin-the-path-sets-wrong-config-variables.patch | 260 + ...c-Cross-building-and-testing-instructions.patch | 616 - ...-timezone-re-written-tzselect-as-posix-sh.patch | 42 + ...move-bash-dependency-for-nscd-init-script.patch | 72 + ...019-eglibc-Help-bootstrap-cross-toolchain.patch | 97 - .../0020-eglibc-Clear-cache-lines-on-ppc8xx.patch | 80 - ...c-Cross-building-and-testing-instructions.patch | 616 + ...021-eglibc-Help-bootstrap-cross-toolchain.patch | 97 + ...0021-eglibc-Resolve-__fpscr_values-on-SH4.patch | 53 - ...ward-port-cross-locale-generation-support.patch | 563 - ...0022-eglibc-Resolve-__fpscr_values-on-SH4.patch | 53 + ...0023-Define-DUMMY_LOCALE_T-if-not-defined.patch | 29 - ...ward-port-cross-locale-generation-support.patch | 560 + ...0024-Define-DUMMY_LOCALE_T-if-not-defined.patch | 29 + ....c-Make-_dl_build_local_scope-breadth-fir.patch | 53 - ...-locale-fix-hard-coded-reference-to-gcc-E.patch | 35 - ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 80 + ....c-Make-_dl_build_local_scope-breadth-fir.patch | 53 + ...tl-Emit-no-lines-in-bison-generated-files.patch | 31 + ...o-consts.h-enum-definition-for-TRAP_HWBKP.patch | 66 - .../0028-inject-file-assembly-directives.patch | 301 + ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 53 + ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 89 - ...tl-Emit-no-lines-in-bison-generated-files.patch | 31 - ...e754-prevent-maybe-uninitialized-errors-w.patch | 258 - ...e754-soft-fp-ignore-maybe-uninitialized-w.patch | 100 - ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 68 - .../0034-inject-file-assembly-directives.patch | 272 - .../recipes-core/glibc/glibc/CVE-2016-10739.patch | 1136 - .../recipes-core/glibc/glibc/CVE-2018-19591.patch | 48 - .../recipes-core/glibc/glibc/CVE-2019-6488.patch | 274 - .../recipes-core/glibc/glibc/CVE-2019-7309.patch | 207 - .../recipes-core/glibc/glibc/CVE-2019-9169.patch | 63 - .../recipes-core/glibc/glibc/check-test-wrapper | 71 + .../poky/meta/recipes-core/glibc/glibc_2.28.bb | 138 - .../poky/meta/recipes-core/glibc/glibc_2.31.bb | 111 + .../poky/meta/recipes-core/glibc/site_config/funcs | 474 - .../meta/recipes-core/glibc/site_config/headers | 155 - .../poky/meta/recipes-core/glibc/site_config/types | 21 - .../files/0001-Define-FNM_EXTMATCH-for-musl.patch | 47 + ...e-do-not-use-dpkg-for-determining-OS-type.patch | 23 + ...-don-t-rely-on-dpkg-architecture-to-set-a.patch | 8 +- ...-6-.defn-fix-inverted-checks-for-loopback.patch | 406 - .../meta/recipes-core/ifupdown/files/run-ptest | 4 + .../ifupdown/files/tweak-ptest-script.patch | 49 + .../meta/recipes-core/ifupdown/ifupdown_0.8.16.bb | 46 - .../meta/recipes-core/ifupdown/ifupdown_0.8.35.bb | 55 + .../images/build-appliance-image_15.0.0.bb | 7 +- .../images/core-image-minimal-initramfs.bb | 4 +- .../initrdscripts/files/init-install-efi-testfs.sh | 2 +- .../recipes-core/initrdscripts/files/init-live.sh | 6 +- .../initrdscripts/initramfs-boot_1.0.bb | 7 +- .../initrdscripts/initramfs-framework/init | 5 + .../initrdscripts/initramfs-framework/lvm | 13 + .../initrdscripts/initramfs-framework/rootfs | 14 +- .../initrdscripts/initramfs-framework/udev | 3 + .../initrdscripts/initramfs-framework_1.0.bb | 9 + .../initscripts/initscripts-1.0/alignment.sh | 13 + .../initscripts/initscripts-1.0/arm/alignment.sh | 13 - .../initscripts/initscripts-1.0/bootmisc.sh | 7 +- .../initscripts-1.0/populate-volatile.sh | 82 +- .../initscripts/initscripts-1.0/save-rtc.sh | 6 +- .../initscripts/initscripts-1.0/sysfs.sh | 4 + .../initscripts/initscripts-1.0/volatiles | 2 +- .../recipes-core/initscripts/initscripts_1.0.bb | 3 +- ...-and-append-i386-to-fix-libkbdfile-test08.patch | 45 + .../0001-analyze.l-add-missing-string-format.patch | 24 + .../meta/recipes-core/kbd/kbd/fix_cflags.patch | 25 + .../kbd/kbd/set-proper-path-of-resources.patch | 93 +- external/poky/meta/recipes-core/kbd/kbd_2.0.4.bb | 64 - external/poky/meta/recipes-core/kbd/kbd_2.2.0.bb | 72 + .../libxcrypt/libxcrypt-compat_4.4.15.bb | 18 + .../poky/meta/recipes-core/libxcrypt/libxcrypt.inc | 33 + .../meta/recipes-core/libxcrypt/libxcrypt_4.1.1.bb | 27 - .../recipes-core/libxcrypt/libxcrypt_4.4.15.bb | 2 + ...1-Fix-infinite-loop-in-LZMA-decompression.patch | 55 - ...run-the-python-tests-if-python-is-enabled.patch | 62 +- .../libxml/libxml2/CVE-2019-20388.patch | 37 + .../libxml/libxml2/CVE-2020-7595.patch | 36 + .../libxml/libxml2/fix-CVE-2017-8872.patch | 65 - .../libxml/libxml2/fix-CVE-2018-14404.patch | 45 - .../libxml/libxml2/fix-execution-of-ptests.patch | 24 +- .../recipes-core/libxml/libxml2/libxml-64bit.patch | 24 +- .../libxml/libxml2/libxml-m4-use-pkgconfig.patch | 16 +- .../libxml/libxml2/python-sitepackages-dir.patch | 13 +- .../meta/recipes-core/libxml/libxml2/runtest.patch | 204 +- .../meta/recipes-core/libxml/libxml2_2.9.10.bb | 112 + .../poky/meta/recipes-core/libxml/libxml2_2.9.8.bb | 113 - .../poky/meta/recipes-core/meta/build-sysroots.bb | 4 + .../meta/buildtools-extended-tarball.bb | 36 + .../meta/recipes-core/meta/buildtools-tarball.bb | 8 + .../meta/recipes-core/meta/cve-update-db-native.bb | 37 +- .../meta/recipes-core/meta/dummy-sdk-package.inc | 7 +- .../recipes-core/meta/meta-extsdk-toolchain.bb | 3 + .../meta/nativesdk-buildtools-perl-dummy.bb | 8 +- .../meta/nativesdk-sdk-provides-dummy.bb | 5 +- .../poky/meta/recipes-core/meta/package-index.bb | 1 + .../recipes-core/meta/target-sdk-provides-dummy.bb | 19 +- .../meta/recipes-core/meta/uninative-tarball.bb | 5 +- .../meta/recipes-core/musl/libssp-nonshared.bb | 7 +- .../poky/meta/recipes-core/musl/libucontext_git.bb | 63 + .../poky/meta/recipes-core/musl/musl-obstack.bb | 22 + external/poky/meta/recipes-core/musl/musl.inc | 12 +- ...slibdir-and-libdir-as-default-pathes-to-l.patch | 61 + external/poky/meta/recipes-core/musl/musl_git.bb | 44 +- .../poky/meta/recipes-core/ncurses/ncurses.inc | 7 +- .../recipes-core/ncurses/ncurses_6.1+20180630.bb | 11 - .../poky/meta/recipes-core/ncurses/ncurses_6.2.bb | 14 + .../poky/meta/recipes-core/netbase/netbase/hosts | 8 - ...netbase-add-rpcbind-as-an-alias-to-sunrpc.patch | 48 - .../poky/meta/recipes-core/netbase/netbase_5.4.bb | 25 - .../poky/meta/recipes-core/netbase/netbase_6.1.bb | 20 + .../meta/recipes-core/newlib/libgloss_3.0.0.bb | 33 - .../meta/recipes-core/newlib/libgloss_3.2.0.bb | 33 + external/poky/meta/recipes-core/newlib/newlib.inc | 19 +- .../poky/meta/recipes-core/newlib/newlib_3.0.0.bb | 19 - .../poky/meta/recipes-core/newlib/newlib_3.2.0.bb | 20 + .../meta/recipes-core/os-release/os-release.bb | 15 +- ...eader.makefile-add-Wno-stringop-truncatio.patch | 71 - .../ovmf/ovmf/0001-ia32-Dont-use-pie.patch | 46 - ...0001-ovmf-update-path-to-native-BaseTools.patch | 34 + ...aseTools-header.makefile-add-Wno-restrict.patch | 102 - ...makefile-adjust-to-build-in-under-bitbake.patch | 51 + ...0002-ovmf-update-path-to-native-BaseTools.patch | 33 - ...eader.makefile-revert-gcc-8-Wno-xxx-optio.patch | 53 - ...makefile-adjust-to-build-in-under-bitbake.patch | 39 - .../ovmf/0003-ovmf-enable-long-path-file.patch | 28 + ...enVtf-silence-false-stringop-overflow-war.patch | 66 - .../ovmf/ovmf/0004-ovmf-Update-to-latest.patch | 46 + .../ovmf/0004-ovmf-enable-long-path-file.patch | 18 - ...ollDefaultKeys-application-for-enrolling-.patch | 1124 - .../VfrCompile-increase-path-length-limit.patch | 33 - .../ovmf/ovmf/no-stack-protector-all-archs.patch | 20 - external/poky/meta/recipes-core/ovmf/ovmf_git.bb | 59 +- .../nativesdk-packagegroup-sdk-host.bb | 1 + .../packagegroups/packagegroup-base.bb | 24 +- .../packagegroups/packagegroup-core-boot.bb | 9 - .../packagegroups/packagegroup-core-sdk.bb | 3 +- .../packagegroup-core-standalone-sdk-target.bb | 2 + .../packagegroups/packagegroup-core-tools-debug.bb | 2 + .../packagegroup-core-tools-profile.bb | 12 +- .../packagegroup-core-tools-testapps.bb | 2 - .../packagegroups/packagegroup-cross-canadian.bb | 6 + .../packagegroups/packagegroup-go-sdk-target.bb | 3 +- .../packagegroups/packagegroup-self-hosted.bb | 13 +- .../meta/recipes-core/psplash/files/psplash-init | 7 +- .../psplash/files/psplash-start.service | 12 + .../psplash/files/psplash-systemd.service | 13 + .../poky/meta/recipes-core/psplash/psplash_git.bb | 54 +- .../readline/readline-7.0/configure-fix.patch | 35 - .../readline/readline-7.0/norpath.patch | 21 - .../readline/readline-8.0/configure-fix.patch | 35 + .../readline/readline-8.0/norpath.patch | 21 + .../readline/readline-8.0/rl-native.map | 12 + .../poky/meta/recipes-core/readline/readline.inc | 11 + .../meta/recipes-core/readline/readline_7.0.bb | 7 - .../meta/recipes-core/readline/readline_8.0.bb | 7 + .../recipes-core/sysfsutils/sysfsutils_2.1.0.bb | 2 - .../meta/recipes-core/systemd/systemd-boot_239.bb | 70 - .../recipes-core/systemd/systemd-boot_244.3.bb | 70 + .../recipes-core/systemd/systemd-bootconf_1.00.bb | 1 + .../recipes-core/systemd/systemd-compat-units.bb | 4 +- .../poky/meta/recipes-core/systemd/systemd-conf.bb | 53 - .../systemd/systemd-conf/journald.conf | 3 + .../recipes-core/systemd/systemd-conf/logind.conf | 2 + .../recipes-core/systemd/systemd-conf/system.conf | 2 + .../systemd/systemd-conf/system.conf-qemuall | 3 + .../systemd/systemd-conf/wired.network | 10 + .../recipes-core/systemd/systemd-conf_244.3.bb | 38 + .../recipes-core/systemd/systemd-serialgetty.bb | 2 +- .../systemd-serialgetty/serial-getty@.service | 14 +- .../systemd/systemd-systemctl/systemctl | 517 +- .../poky/meta/recipes-core/systemd/systemd.inc | 6 +- ...efi_cc-and-efi_ld-correctly-when-cross-co.patch | 62 - ...ck-protector-flags-to-workaround-musl-bui.patch | 33 - ...tl.d-request-ECN-on-both-in-and-outgoing-.patch | 36 - ...nv-when-secure-versions-are-not-available.patch | 33 - ...t-install-dependency-links-at-install-tim.patch | 30 +- ...sive-let-s-rework-the-recursive-logic-to-.patch | 219 - ...eserializing-state-always-use-read_line-L.patch | 250 - ...sure-we-have-enough-space-for-the-DHCP6-o.patch | 39 - ...01-do-not-disable-buffer-in-writing-files.patch | 411 + ...arse_uid-when-unmounting-user-runtime-dir.patch | 110 - .../0001-meson-rename-Ddebug-to-Ddebug-extra.patch | 45 - ...bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch | 175 - ...l-Don-t-pass-null-directive-argument-to-s.patch | 31 - ...ync-changes-type-of-drift_freq-to-int64_t.patch | 49 - ...Fix-use-after-free-case-in-load_from_path.patch | 43 - .../0002-don-t-use-glibc-specific-qsort_r.patch | 230 +- ...src-login-brightness.c-include-sys-wait.h.patch | 29 + ...pper-instead-of-looking-for-relative-opti.patch | 64 - ...fn_t-is-glibc-specific-use-raw-signature-.patch | 40 - ...0003-implment-systemd-sysv-install-for-OE.patch | 10 +- ...e.h-add-__compare_fn_t-and-comparison_fn_.patch | 76 + .../0003-src-basic-copy.c-include-signal.h.patch | 31 + ...llback-parse_printf_format-implementation.patch | 45 +- .../systemd/0004-rules-whitelist-hd-devices.patch | 33 - ...-cpu-set-util.h-add-__cpu_mask-definition.patch | 58 + ...5-Make-root-s-home-directory-configurable.patch | 70 - ...clude-gshadow-only-if-ENABLE_GSHADOW-is-1.patch | 29 - ...asic-missing.h-check-for-missing-strndupa.patch | 653 + .../systemd/0006-Include-netinet-if_ether.h.patch | 278 + .../0006-remove-nobody-user-group-checking.patch | 63 - ...asic-missing.h-check-for-missing-strndupa.patch | 118 - .../systemd/0007-Include-netinet-if_ether.h.patch | 96 - ...-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch | 153 + ...les-watch-metadata-changes-in-ide-devices.patch | 43 - ...le-nss-tests-if-nss-systemd-is-not-enable.patch | 29 - .../0008-add-missing-FTW_-macros-for-musl.patch | 45 + ...if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch | 153 - .../0009-add-missing-FTW_-macros-for-musl.patch | 50 - ...nes-Build-conditionally-when-ENABLE_MYHOS.patch | 43 - ...-of-__register_atfork-for-non-glibc-build.patch | 43 + ...il-don-t-fail-if-libc-doesn-t-support-IDN.patch | 38 - .../0011-Use-uintmax_t-for-handling-rlim_t.patch | 95 + ...issing.h-check-for-missing-__compar_fn_t-.patch | 48 - ...-of-__register_atfork-for-non-glibc-build.patch | 45 - .../0013-Use-uintmax_t-for-handling-rlim_t.patch | 90 - ...-ULONG_LONG_MAX-definition-in-case-of-mus.patch | 30 - ....c-Disable-tests-for-missing-typedefs-in-.patch | 39 + ...ass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch | 97 + ...exdecoct.c-Include-missing.h-for-strndupa.patch | 28 - ...c-compatible-basename-for-non-glibc-syste.patch | 32 + ....c-Disable-tests-for-missing-typedefs-in-.patch | 42 - ...ble-buffering-when-writing-to-oom_score_a.patch | 39 + ...ass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch | 99 - ...c-compatible-basename-for-non-glibc-syste.patch | 34 - ...-XSI-compliant-strerror_r-from-GNU-specif.patch | 60 + ...ble-buffering-when-writing-to-oom_score_a.patch | 39 - ...rt_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch | 33 + ...-XSI-compliant-strerror_r-from-GNU-specif.patch | 62 - ...ing_type.h-add-__compar_d_fn_t-definition.patch | 28 + ...rt_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch | 34 - ...id-redefinition-of-prctl_mm_map-structure.patch | 30 + ...etect-whether-struct-statx-is-defined-in-.patch | 109 - ...onf-fixes-for-the-compatibility-interface.patch | 58 - ...-not-store-the-iovec-entry-for-process-co.patch | 208 - .../systemd/0024-test-json.c-define-M_PIl.patch | 31 + ...rnald-set-a-limit-on-the-number-of-fields.patch | 139 - ...nal-fix-out-of-bounds-read-CVE-2018-16866.patch | 49 - .../recipes-core/systemd/systemd/99-default.preset | 1 + .../systemd/systemd/CVE-2019-6454.patch | 210 - .../systemd/systemd/CVE-2020-13776.patch | 96 + ...e-receive-an-invalid-dbus-message-ignore-.patch | 61 - .../poky/meta/recipes-core/systemd/systemd_239.bb | 666 - .../meta/recipes-core/systemd/systemd_244.3.bb | 708 + ...-sysmacros.h-for-major-minor-defines-in-g.patch | 71 - .../sysvinit/sysvinit-2.88dsf/crypt-lib.patch | 25 - .../sysvinit/sysvinit-2.88dsf/install.patch | 83 - .../sysvinit-2.88dsf/pidof-add-m-option.patch | 189 - .../sysvinit/sysvinit-inittab/start_getty | 14 +- .../sysvinit/sysvinit-inittab_2.88dsf.bb | 4 +- ...an-issue-that-clang-reports-about-mutlipl.patch | 52 - ...-sysmacros.h-for-major-minor-defines-in-g.patch | 50 + .../recipes-core/sysvinit/sysvinit/crypt-lib.patch | 36 + .../recipes-core/sysvinit/sysvinit/install.patch | 96 + .../sysvinit/sysvinit/pidof-add-m-option.patch | 191 + .../recipes-core/sysvinit/sysvinit/realpath.patch | 85 +- .../meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb | 110 - .../meta/recipes-core/sysvinit/sysvinit_2.96.bb | 114 + .../poky/meta/recipes-core/udev/eudev_3.2.7.bb | 96 - .../poky/meta/recipes-core/udev/eudev_3.2.9.bb | 96 + .../meta/recipes-core/udev/udev-extraconf/mount.sh | 10 + .../recipes-core/update-rc.d/update-rc.d_0.8.bb | 4 +- .../meta/recipes-core/util-linux/util-linux.inc | 403 +- ...1-hwclock-fix-for-glibc-2.31-settimeofday.patch | 112 + .../0001-include-cleanup-pidfd-inckudes.patch | 42 + ...e-sys-types.h-before-checking-SYS_pidfd_s.patch | 64 + ...ript-accept-sector-size-ignore-unknown-he.patch | 137 + .../recipes-core/util-linux/util-linux/run-ptest | 20 +- .../util-linux/util-linux-native-qsort.patch | 33 - .../recipes-core/util-linux/util-linux_2.32.1.bb | 28 - .../recipes-core/util-linux/util-linux_2.35.1.bb | 16 + .../volatile-binds/files/mount-copybind | 4 +- .../recipes-core/volatile-binds/volatile-binds.bb | 2 +- .../poky/meta/recipes-devtools/apt/apt-native.inc | 2 - .../meta/recipes-devtools/apt/apt-native_1.2.24.bb | 7 - .../meta/recipes-devtools/apt/apt-native_1.2.31.bb | 7 + .../poky/meta/recipes-devtools/apt/apt-package.inc | 3 +- external/poky/meta/recipes-devtools/apt/apt.inc | 12 +- .../apt/0001-Include-array.h-for-std-array.patch | 35 + .../apt/apt/0001-fix-the-gcc-version-check.patch | 74 - ...001-remove-Wsuggest-attribute-from-CFLAGS.patch | 43 - .../poky/meta/recipes-devtools/apt/apt_1.2.24.bb | 20 - .../poky/meta/recipes-devtools/apt/apt_1.2.31.bb | 20 + .../poky/meta/recipes-devtools/apt/files/apt.conf | 2 +- .../autoconf-archive_2018.03.13.bb | 18 - .../autoconf-archive_2019.01.06.bb | 18 + .../meta/recipes-devtools/autoconf/autoconf.inc | 10 + .../AC_HEADER_MAJOR-port-to-glibc-2.25.patch | 89 +- .../recipes-devtools/binutils/binutils-2.31.inc | 60 - .../recipes-devtools/binutils/binutils-2.34.inc | 47 + .../binutils/binutils-cross-canadian_2.31.bb | 3 - .../binutils/binutils-cross-canadian_2.34.bb | 3 + .../binutils/binutils-cross-testsuite_2.34.bb | 85 + .../binutils/binutils-cross_2.31.bb | 3 - .../binutils/binutils-cross_2.34.bb | 3 + .../binutils/binutils-crosssdk_2.31.bb | 13 - .../binutils/binutils-crosssdk_2.34.bb | 13 + .../meta/recipes-devtools/binutils/binutils.inc | 44 +- ...nutils-crosssdk-Generate-relocatable-SDKs.patch | 29 +- ...oss-Do-not-generate-linker-script-directo.patch | 12 +- ...tivesdk-Search-for-alternative-ld.so.conf.patch | 95 + ...ure-widen-the-regexp-for-SH-architectures.patch | 47 - .../0004-Point-scripts-location-to-libdir.patch | 42 - ...ure-widen-the-regexp-for-SH-architectures.patch | 41 + ...te-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch | 41 - .../0005-Point-scripts-location-to-libdir.patch | 39 + ...te-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch | 37 + .../binutils/binutils/0006-Use-libtool-2.4.patch | 21253 --- ...7-Add-the-armv5e-architecture-to-binutils.patch | 35 - .../binutils/binutils/0007-Use-libtool-2.4.patch | 21234 +++ ...he-distro-compiler-point-to-the-wrong-ins.patch | 13 +- ...es-of-system-directories-when-cross-linki.patch | 62 +- ...-rpath-in-libtool-when-sysroot-is-enabled.patch | 7 +- ...Change-default-emulation-for-mips64-linux.patch | 28 +- .../0012-Add-support-for-Netlogic-XLP.patch | 143 +- ...ncorrect-assembling-for-ppc-wait-mnemonic.patch | 13 +- .../binutils/0014-Detect-64-bit-MIPS-targets.patch | 9 +- .../0015-sync-with-OE-libtool-changes.patch | 7 +- ...eck-for-clang-before-checking-gcc-version.patch | 48 + .../0016-add-i386pep-emulation-for-x86_64.patch | 41 - ...op-redundant-program_name-definition-fno-.patch | 61 + ...compressed-header-alignment-correctly-by-.patch | 332 - ...ignment-of-uncompressed-section-from-ch_a.patch | 200 - .../binutils/binutils/CVE-2018-1000876.patch | 180 - .../binutils/binutils/CVE-2018-17358.patch | 121 - .../binutils/binutils/CVE-2018-17360.patch | 45 - .../binutils/binutils/CVE-2018-18309.patch | 251 - .../binutils/binutils/CVE-2018-18605.patch | 29 - .../binutils/binutils/CVE-2018-18606.patch | 50 - .../binutils/binutils/CVE-2018-18607.patch | 56 - .../binutils/binutils/CVE-2018-20623.patch | 74 - .../binutils/binutils/CVE-2018-20651.patch | 35 - .../binutils/binutils/CVE-2018-20671.patch | 49 - .../binutils/binutils/CVE-2019-12972.patch | 39 - .../binutils/binutils/CVE-2019-14444.patch | 33 - .../binutils/binutils/CVE-2020-0551.patch | 549 + .../binutils/binutils/clang-bfd-fix.patch | 30 - .../recipes-devtools/binutils/binutils_2.31.bb | 49 - .../recipes-devtools/binutils/binutils_2.34.bb | 65 + ...need_charset_alias-when-building-for-musl.patch | 33 - .../bison/0001-bison-fix-the-parallel-build.patch | 63 + .../0001-src-local.mk-fix-parallel-issue.patch | 34 - .../bison/dont-depend-on-help2man.patch.patch | 16 +- .../meta/recipes-devtools/bison/bison/gnulib.patch | 21 - .../meta/recipes-devtools/bison/bison_3.0.4.bb | 43 - .../meta/recipes-devtools/bison/bison_3.5.3.bb | 45 + .../0001-bootchart2-support-usrmerge.patch | 37 + .../bootchart2/bootchart2_0.14.8.bb | 7 +- ...Add-LDFLAGS-when-building-libbtrfsutil.so.patch | 35 - ...-Makefile-build-mktables-using-native-gcc.patch | 27 - .../btrfs-tools/btrfs-tools_4.17.1.bb | 44 - .../btrfs-tools/btrfs-tools_5.4.1.bb | 52 + .../build-compare/build-compare_git.bb | 12 +- ...001-Add-support-for-deb-and-ipk-packaging.patch | 64 - .../files/Ignore-DWARF-sections.patch | 17 +- .../files/Rename-rpm-check.sh-to-pkg-diff.sh.patch | 1599 - ...functions.sh-improve-deb-and-ipk-checking.patch | 117 - .../files/functions.sh-remove-space-at-head.patch | 41 - ...nctions.sh-run-rpm-once-to-make-it-faster.patch | 361 - .../pkg-diff.sh-check-for-fifo-named-pipe.patch | 35 - ...-check_single_file-return-at-once-when-sa.patch | 37 - ...diff.sh-remove-space-in-the-end-for-ftype.patch | 32 - .../poky/meta/recipes-devtools/ccache/ccache.inc | 14 +- .../meta/recipes-devtools/ccache/ccache_3.4.2.bb | 11 - .../meta/recipes-devtools/ccache/ccache_3.7.7.bb | 7 + .../0002-dev.mk.in-fix-file-name-too-long.patch | 30 - .../cdrtools/cdrtools-native_3.01.bb | 11 +- .../0001-Don-t-set-uid-gid-during-install.patch | 27 + .../recipes-devtools/cmake/cmake-native_3.12.2.bb | 50 - .../recipes-devtools/cmake/cmake-native_3.16.5.bb | 52 + .../poky/meta/recipes-devtools/cmake/cmake.inc | 12 +- ...ineSystem-use-oe-environment-vars-to-load.patch | 15 +- .../0002-cmake-Prevent-the-detection-of-Qt5.patch | 54 +- ...upport-OpenEmbedded-Qt4-tool-binary-names.patch | 15 +- ...ently-if-system-Qt-installation-is-broken.patch | 13 +- ...-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch | 2 +- .../cmake/cmake/OEToolchainConfig.cmake | 2 +- .../meta/recipes-devtools/cmake/cmake_3.12.2.bb | 53 - .../meta/recipes-devtools/cmake/cmake_3.16.5.bb | 53 + ...0001-Correctly-install-the-shared-library.patch | 28 - ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 14 +- ...etup-of-logging-log-domains-RhBug-1645897.patch | 73 - .../createrepo-c/createrepo-c_0.15.7.bb | 34 + .../createrepo-c/createrepo-c_git.bb | 37 - .../meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb | 17 + .../desktop-file-utils/desktop-file-utils_0.23.bb | 19 - .../desktop-file-utils/desktop-file-utils_0.24.bb | 24 + ...001-aclocal.m4-add-missing-header-defines.patch | 24 + .../recipes-devtools/diffstat/diffstat_1.62.bb | 28 - .../recipes-devtools/diffstat/diffstat_1.63.bb | 29 + .../meta/recipes-devtools/distcc/distcc_3.3.2.bb | 71 - .../meta/recipes-devtools/distcc/distcc_3.3.3.bb | 87 + .../meta/recipes-devtools/distcc/files/default | 2 +- .../distcc/files/distccmon-gnome.desktop | 12 - .../recipes-devtools/distcc/files/fix-gnome.patch | 122 + .../distcc/files/separatebuilddir.patch | 42 +- ...1-Committing-changes-from-do_unpack_extra.patch | 24 + .../recipes-devtools/dmidecode/dmidecode_3.1.bb | 27 - .../recipes-devtools/dmidecode/dmidecode_3.2.bb | 24 + ...hardcode-etc-and-systemd-unit-directories.patch | 19 +- ...001-set-python-path-for-completion_helper.patch | 24 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 17 +- .../dnf/dnf/Fix-SyntaxWarning.patch | 34 + .../poky/meta/recipes-devtools/dnf/dnf_2.7.5.bb | 75 - .../poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb | 90 + .../docbook-xml/docbook-xml-dtd4/docbook-xml.xml | 68 - .../docbook-xml/docbook-xml-dtd4_4.5.bb | 23 +- .../docbook-xsl-stylesheets/docbook-xsl.xml | 6 - .../docbook-xml/docbook-xsl-stylesheets_1.79.1.bb | 26 +- .../recipes-devtools/dosfstools/dosfstools_4.1.bb | 3 + external/poky/meta/recipes-devtools/dpkg/dpkg.inc | 30 +- .../0001-arch-Add-support-for-riscv64-CPU.patch | 54 - ...tinsts-expect-D-to-be-set-when-running-in.patch | 35 +- .../dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch | 36 - ...uild.c-Remove-usage-of-clamp-mtime-in-tar.patch | 12 +- .../dpkg/dpkg/dpkg-configure.service | 17 - .../dpkg/dpkg/glibc2.5-sync_file_range.patch | 97 - .../meta/recipes-devtools/dpkg/dpkg/pager.patch | 21 + .../dpkg/dpkg/tweak-options-require-tar-1.27.patch | 27 + .../meta/recipes-devtools/dpkg/dpkg_1.18.24.bb | 22 - .../poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb | 22 + .../meta/recipes-devtools/e2fsprogs/e2fsprogs.inc | 2 +- .../0001-configure.ac-correct-AM_GNU_GETTEXT.patch | 26 + ...0001-create_inode-fix-copying-large-files.patch | 50 - ...k-don-t-try-to-rehash-a-deleted-directory.patch | 49 + ...-try-to-use-gettext-defines-that-no-longe.patch | 27 + .../e2fsprogs/e2fsprogs/CVE-2019-5188.patch | 57 + ...fs-enable-the-metadata_csum-and-64bit-fea.patch | 36 - ...fsck-fix-use-after-free-in-calculate_tree.patch | 76 + ...s-fix-missing-check-for-permission-denied.patch | 7 +- .../e2fsprogs/e2fsprogs/ptest.patch | 33 +- .../e2fsprogs/e2fsprogs/quiet-debugfs.patch | 13 +- .../recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb | 136 - .../recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb | 144 + .../recipes-devtools/elfutils/elfutils_0.175.bb | 79 - .../recipes-devtools/elfutils/elfutils_0.178.bb | 157 + .../elfutils/files/0001-dso-link-change.patch | 18 +- ...0001-libasm-may-link-with-libbz2-if-found.patch | 12 +- ...end.c-check-data_list.data.d.d_buf-before.patch | 6 +- .../elfutils/files/0001-musl-obstack-fts.patch | 127 + ....c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch | 32 + .../0001-skip-the-test-when-gcc-not-deployed.patch | 73 + ...-elf_cvt_gunhash-if-dest-and-src-are-same.patch | 8 +- .../elfutils/files/0002-musl-libs.patch | 145 + .../elfutils/files/0003-fixheadercheck.patch | 8 +- .../elfutils/files/0003-musl-utils.patch | 166 + .../0004-Disable-the-test-to-convert-euc-jp.patch | 8 +- .../elfutils/files/0004-Fix-error-on-musl.patch | 39 + .../files/0006-Fix-build-on-aarch64-musl.patch | 8 +- ...-path-where-we-have-str-as-uninitialized-.patch | 45 - ...de-alternatives-for-glibc-assumptions-hel.patch | 226 - .../elfutils/files/CVE-2019-7146_p1.patch | 52 - .../elfutils/files/CVE-2019-7146_p2.patch | 65 - .../elfutils/files/CVE-2019-7149.patch | 148 - .../elfutils/files/CVE-2019-7150.patch | 51 - .../elfutils/files/CVE-2019-7664.patch | 65 - .../elfutils/files/CVE-2019-7665.patch | 154 - ...ferences-between-mips-machine-identifiers.patch | 1 + ...1-fix-compile-failure-with-debian-patches.patch | 48 + ...-support-for-mips64-abis-in-mips_retval.c.patch | 1 + .../0003-Add-mips-n64-relocation-format-hack.patch | 1 + .../elfutils/files/debian/arm_backend.diff | 341 +- .../elfutils/files/debian/disable_werror.patch | 8 +- .../elfutils/files/debian/hppa_backend.diff | 156 +- .../elfutils/files/debian/hurd_path.patch | 1 + .../elfutils/files/debian/kfreebsd_path.patch | 1 + .../elfutils/files/debian/mips_backend.diff | 151 +- .../elfutils/files/debian/mips_cfi.patch | 129 + .../elfutils/files/debian/mips_readelf_w.patch | 30 +- .../files/debian/testsuite-ignore-elflint.diff | 52 + .../recipes-devtools/elfutils/files/ptest.patch | 76 + .../meta/recipes-devtools/elfutils/files/run-ptest | 6 + ...0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch | 55 + .../meta/recipes-devtools/expect/expect_5.45.4.bb | 7 +- .../recipes-devtools/file/file/CVE-2019-8904.patch | 30 - .../file/file/CVE-2019-8905_CVE-2019-8907.patch | 120 - .../recipes-devtools/file/file/CVE-2019-8906.patch | 27 - .../recipes-devtools/file/file/debian-742262.patch | 27 - .../poky/meta/recipes-devtools/file/file_5.34.bb | 53 - .../poky/meta/recipes-devtools/file/file_5.38.bb | 55 + ...-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch | 32 + ...oid-c-comments-in-c-code-fails-with-gcc-6.patch | 64 - .../recipes-devtools/flex/flex/CVE-2016-6354.patch | 59 - .../flex/flex/do_not_create_pdf_doc.patch | 17 - .../poky/meta/recipes-devtools/flex/flex/run-ptest | 2 +- .../poky/meta/recipes-devtools/flex/flex_2.6.0.bb | 70 - .../poky/meta/recipes-devtools/flex/flex_2.6.4.bb | 76 + .../poky/meta/recipes-devtools/gcc/gcc-7.3.inc | 135 - ...1-Fix-internal-compiler-error-in-testcase.patch | 212 - ...ix-ppc64le-build-Partial-backport-r256656.patch | 37 - .../0001-PR-c-80290-memory-hog-with-std-pair.patch | 58 - .../gcc-7.3/0001-PR-rtl-optimization-83030.patch | 272 - .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch | 42 - .../0009-gcc-poison-system-directories.patch | 192 - .../gcc/gcc-7.3/0010-gcc-poison-dir-extend.patch | 39 - .../0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch | 73 - .../gcc/gcc-7.3/0012-64-bit-multilib-hack.patch | 85 - .../gcc/gcc-7.3/0013-optional-libstdc.patch | 125 - ...0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch | 59 - .../gcc/gcc-7.3/0015-COLLECT_GCC_OPTIONS.patch | 38 - ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch | 96 - .../gcc-7.3/0017-fortran-cross-compile-hack.patch | 46 - .../gcc/gcc-7.3/0018-cpp-honor-sysroot.patch | 54 - .../gcc-7.3/0019-MIPS64-Default-to-N64-ABI.patch | 57 - ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 234 - ...0021-gcc-Fix-argument-list-too-long-error.patch | 40 - .../gcc/gcc-7.3/0022-Disable-sdt.patch | 113 - .../gcc/gcc-7.3/0023-libtool.patch | 42 - ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch | 43 - ...tilib-config-files-from-B-instead-of-usin.patch | 102 - ...-libdir-from-.la-which-usually-points-to-.patch | 31 - .../gcc/gcc-7.3/0027-export-CPP.patch | 53 - ...AltiVec-generation-on-powepc-linux-target.patch | 56 - ...-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch | 42 - ...Ensure-target-gcc-headers-can-be-included.patch | 98 - ...-t-build-with-disable-dependency-tracking.patch | 54 - ...h-host-directory-during-relink-if-inst_pr.patch | 38 - ...IBS_DIR-replacement-instead-of-hardcoding.patch | 29 - .../0034-aarch64-Add-support-for-musl-ldso.patch | 28 - ...ibcc1-fix-libcc1-s-install-path-and-rpath.patch | 54 - ...-handle-sysroot-support-for-nativesdk-gcc.patch | 213 - ...et-sysroot-gcc-version-specific-dirs-with.patch | 102 - ...-various-_FOR_BUILD-and-related-variables.patch | 137 - .../0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch | 28 - ...shared-to-link-commandline-for-musl-targe.patch | 87 - ...c-libcpp-support-ffile-prefix-map-old-new.patch | 284 - ...ug-prefix-map-to-replace-ffile-prefix-map.patch | 43 - ...-fdebug-prefix-map-support-to-remap-sourc.patch | 54 - ...44-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch | 124 - ...bgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch | 29 - .../gcc-7.3/0047-sync-gcc-stddef.h-with-musl.patch | 91 - .../gcc/gcc-7.3/0048-gcc-Enable-static-PIE.patch | 46 - ...049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch | 204 - .../fix-segmentation-fault-precompiled-hdr.patch | 49 - .../gcc-7.3/no-sse-fix-test-case-failures.patch | 259 - .../poky/meta/recipes-devtools/gcc/gcc-8.2.inc | 128 - .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch | 42 - .../0003-gcc-poison-system-directories.patch | 194 - .../0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch | 73 - .../gcc/gcc-8.2/0006-64-bit-multilib-hack.patch | 85 - .../gcc/gcc-8.2/0007-optional-libstdc.patch | 125 - ...0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch | 59 - .../gcc/gcc-8.2/0009-COLLECT_GCC_OPTIONS.patch | 38 - ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch | 96 - .../gcc-8.2/0011-fortran-cross-compile-hack.patch | 46 - .../gcc/gcc-8.2/0012-cpp-honor-sysroot.patch | 54 - .../gcc-8.2/0013-MIPS64-Default-to-N64-ABI.patch | 57 - ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 248 - ...0015-gcc-Fix-argument-list-too-long-error.patch | 40 - .../gcc/gcc-8.2/0016-Disable-sdt.patch | 113 - .../gcc/gcc-8.2/0017-libtool.patch | 42 - ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch | 43 - ...tilib-config-files-from-B-instead-of-usin.patch | 102 - ...-libdir-from-.la-which-usually-points-to-.patch | 31 - .../gcc/gcc-8.2/0021-export-CPP.patch | 53 - ...-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch | 42 - ...Ensure-target-gcc-headers-can-be-included.patch | 98 - ...-t-build-with-disable-dependency-tracking.patch | 54 - ...h-host-directory-during-relink-if-inst_pr.patch | 38 - ...IBS_DIR-replacement-instead-of-hardcoding.patch | 29 - .../0027-aarch64-Add-support-for-musl-ldso.patch | 28 - ...ibcc1-fix-libcc1-s-install-path-and-rpath.patch | 54 - ...-handle-sysroot-support-for-nativesdk-gcc.patch | 213 - ...et-sysroot-gcc-version-specific-dirs-with.patch | 102 - ...-various-_FOR_BUILD-and-related-variables.patch | 137 - .../0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch | 28 - ...shared-to-link-commandline-for-musl-targe.patch | 87 - ...34-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch | 125 - ...bgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch | 29 - ...e-alias-for-__cpu_indicator_init-instead-.patch | 86 - .../gcc-8.2/0037-sync-gcc-stddef.h-with-musl.patch | 91 - ...ation-fault-in-precompiled-header-generat.patch | 60 - .../gcc-8.2/0039-Fix-for-testsuite-failure.patch | 258 - ...0040-Re-introduce-spe-commandline-options.patch | 41 - .../gcc/gcc-8.2/0041-ARC-fix-spec-gen.patch | 44 - .../gcc/gcc-8.2/CVE-2019-14250.patch | 44 - .../poky/meta/recipes-devtools/gcc/gcc-9.3.inc | 121 + .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch | 42 + .../0002-gcc-poison-system-directories.patch | 203 + .../0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch | 73 + .../gcc/gcc-9.3/0004-64-bit-multilib-hack.patch | 119 + .../gcc/gcc-9.3/0005-optional-libstdc.patch | 125 + .../gcc/gcc-9.3/0006-COLLECT_GCC_OPTIONS.patch | 38 + ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch | 96 + .../gcc-9.3/0008-fortran-cross-compile-hack.patch | 46 + .../gcc/gcc-9.3/0009-cpp-honor-sysroot.patch | 54 + .../gcc-9.3/0010-MIPS64-Default-to-N64-ABI.patch | 57 + ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 246 + ...0012-gcc-Fix-argument-list-too-long-error.patch | 40 + .../gcc/gcc-9.3/0013-Disable-sdt.patch | 113 + .../gcc/gcc-9.3/0014-libtool.patch | 42 + ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch | 43 + ...tilib-config-files-from-B-instead-of-usin.patch | 102 + ...-libdir-from-.la-which-usually-points-to-.patch | 31 + .../gcc/gcc-9.3/0018-export-CPP.patch | 53 + ...Ensure-target-gcc-headers-can-be-included.patch | 60 + ...-t-build-with-disable-dependency-tracking.patch | 54 + ...h-host-directory-during-relink-if-inst_pr.patch | 38 + ...IBS_DIR-replacement-instead-of-hardcoding.patch | 29 + .../0023-aarch64-Add-support-for-musl-ldso.patch | 28 + ...ibcc1-fix-libcc1-s-install-path-and-rpath.patch | 54 + ...-handle-sysroot-support-for-nativesdk-gcc.patch | 346 + ...et-sysroot-gcc-version-specific-dirs-with.patch | 102 + ...-various-_FOR_BUILD-and-related-variables.patch | 137 + .../0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch | 28 + ...shared-to-link-commandline-for-musl-targe.patch | 87 + .../gcc/gcc-9.3/0030-ldbl128-config.patch | 79 + ...bgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch | 29 + ...e-alias-for-__cpu_indicator_init-instead-.patch | 86 + .../gcc-9.3/0033-sync-gcc-stddef.h-with-musl.patch | 91 + ...ation-fault-in-precompiled-header-generat.patch | 60 + .../gcc-9.3/0035-Fix-for-testsuite-failure.patch | 258 + ...0036-Re-introduce-spe-commandline-options.patch | 41 + ...250-Check-zero-value-in-simple_object_elf.patch | 48 + ...nmodes-Do-not-use-__LINE__-for-maintainin.patch | 185 + ..._operands-Don-t-match-user-defined-regs-o.patch | 100 + .../poky/meta/recipes-devtools/gcc/gcc-common.inc | 19 +- .../recipes-devtools/gcc/gcc-configure-common.inc | 19 +- .../recipes-devtools/gcc/gcc-cross-canadian.inc | 20 +- .../recipes-devtools/gcc/gcc-cross-canadian_7.3.bb | 5 - .../recipes-devtools/gcc/gcc-cross-canadian_8.2.bb | 5 - .../recipes-devtools/gcc/gcc-cross-canadian_9.3.bb | 5 + .../recipes-devtools/gcc/gcc-cross-initial.inc | 89 - .../recipes-devtools/gcc/gcc-cross-initial_7.3.bb | 2 - .../recipes-devtools/gcc/gcc-cross-initial_8.2.bb | 2 - .../poky/meta/recipes-devtools/gcc/gcc-cross.inc | 134 +- .../meta/recipes-devtools/gcc/gcc-cross_7.3.bb | 3 - .../meta/recipes-devtools/gcc/gcc-cross_8.2.bb | 3 - .../meta/recipes-devtools/gcc/gcc-cross_9.3.bb | 3 + .../recipes-devtools/gcc/gcc-crosssdk-initial.inc | 10 - .../gcc/gcc-crosssdk-initial_7.3.bb | 3 - .../gcc/gcc-crosssdk-initial_8.2.bb | 3 - .../meta/recipes-devtools/gcc/gcc-crosssdk.inc | 2 +- .../meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb | 2 - .../meta/recipes-devtools/gcc/gcc-crosssdk_8.2.bb | 2 - .../meta/recipes-devtools/gcc/gcc-crosssdk_9.3.bb | 2 + .../poky/meta/recipes-devtools/gcc/gcc-runtime.inc | 128 +- .../meta/recipes-devtools/gcc/gcc-runtime_7.3.bb | 7 - .../meta/recipes-devtools/gcc/gcc-runtime_8.2.bb | 12 - .../meta/recipes-devtools/gcc/gcc-runtime_9.3.bb | 2 + .../meta/recipes-devtools/gcc/gcc-sanitizers.inc | 5 +- .../recipes-devtools/gcc/gcc-sanitizers_7.3.bb | 2 - .../recipes-devtools/gcc/gcc-sanitizers_8.2.bb | 7 - .../recipes-devtools/gcc/gcc-sanitizers_9.3.bb | 7 + .../meta/recipes-devtools/gcc/gcc-source_7.3.bb | 4 - .../meta/recipes-devtools/gcc/gcc-source_8.2.bb | 4 - .../meta/recipes-devtools/gcc/gcc-source_9.3.bb | 4 + .../poky/meta/recipes-devtools/gcc/gcc-target.inc | 33 +- .../meta/recipes-devtools/gcc/gcc-testsuite.inc | 107 + external/poky/meta/recipes-devtools/gcc/gcc_7.3.bb | 10 - external/poky/meta/recipes-devtools/gcc/gcc_8.2.bb | 14 - external/poky/meta/recipes-devtools/gcc/gcc_9.3.bb | 14 + .../meta/recipes-devtools/gcc/libgcc-initial.inc | 52 +- .../recipes-devtools/gcc/libgcc-initial_7.3.bb | 2 - .../recipes-devtools/gcc/libgcc-initial_8.2.bb | 5 - .../recipes-devtools/gcc/libgcc-initial_9.3.bb | 5 + external/poky/meta/recipes-devtools/gcc/libgcc.inc | 15 +- .../poky/meta/recipes-devtools/gcc/libgcc_7.3.bb | 2 - .../poky/meta/recipes-devtools/gcc/libgcc_8.2.bb | 5 - .../poky/meta/recipes-devtools/gcc/libgcc_9.3.bb | 5 + .../poky/meta/recipes-devtools/gcc/libgfortran.inc | 6 + .../meta/recipes-devtools/gcc/libgfortran_7.3.bb | 3 - .../meta/recipes-devtools/gcc/libgfortran_8.2.bb | 3 - .../meta/recipes-devtools/gcc/libgfortran_9.3.bb | 3 + .../poky/meta/recipes-devtools/gdb/gdb-8.2.inc | 22 - .../poky/meta/recipes-devtools/gdb/gdb-9.1.inc | 21 + .../poky/meta/recipes-devtools/gdb/gdb-common.inc | 3 +- .../recipes-devtools/gdb/gdb-cross-canadian.inc | 3 +- .../recipes-devtools/gdb/gdb-cross-canadian_8.2.bb | 3 - .../recipes-devtools/gdb/gdb-cross-canadian_9.1.bb | 3 + .../meta/recipes-devtools/gdb/gdb-cross_8.2.bb | 2 - .../meta/recipes-devtools/gdb/gdb-cross_9.1.bb | 2 + external/poky/meta/recipes-devtools/gdb/gdb.inc | 4 + ...0001-make-man-install-relative-to-DESTDIR.patch | 25 + ...0002-make-man-install-relative-to-DESTDIR.patch | 28 - ...s-linux-nat-Define-_ABIO32-if-not-defined.patch | 32 + ...s-linux-nat-Define-_ABIO32-if-not-defined.patch | 35 - ...Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 49 + ...d-support-for-Renesas-SH-sh4-architecture.patch | 911 + ...Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 53 - ...d-support-for-Renesas-SH-sh4-architecture.patch | 914 - ...e-libreadline.a-when-using-disable-static.patch | 47 + ...e-libreadline.a-when-using-disable-static.patch | 50 - .../gdb/gdb/0006-use-asm-sgidefs.h.patch | 33 + .../0007-Use-exorted-definitions-of-SIGRTMIN.patch | 47 + .../gdb/gdb/0007-use-asm-sgidefs.h.patch | 36 - .../gdb/gdb/0008-Change-order-of-CFLAGS.patch | 27 + .../0008-Use-exorted-definitions-of-SIGRTMIN.patch | 50 - .../gdb/gdb/0009-Change-order-of-CFLAGS.patch | 30 - .../0009-resolve-restrict-keyword-conflict.patch | 45 + .../gdb/0010-Fix-invalid-sigprocmask-call.patch | 46 + .../0010-resolve-restrict-keyword-conflict.patch | 48 - .../gdb/0011-Fix-invalid-sigprocmask-call.patch | 49 - .../gdb/gdb/0011-gdbserver-ctrl-c-handling.patch | 39 + .../gdb/gdb/gdbserver-ctrl-c-handling.patch | 26 - external/poky/meta/recipes-devtools/gdb/gdb_8.2.bb | 29 - external/poky/meta/recipes-devtools/gdb/gdb_9.1.bb | 28 + external/poky/meta/recipes-devtools/git/git.inc | 21 +- .../poky/meta/recipes-devtools/git/git_2.18.1.bb | 11 - .../poky/meta/recipes-devtools/git/git_2.24.3.bb | 9 + .../meta/recipes-devtools/glide/glide_0.13.2.bb | 35 - .../meta/recipes-devtools/glide/glide_0.13.3.bb | 42 + .../recipes-devtools/gnu-config/gnu-config_git.bb | 4 +- external/poky/meta/recipes-devtools/go/go-1.11.inc | 23 - ...1-allow-CC-and-CXX-to-have-multiple-words.patch | 31 - ...-content-based-hash-generation-less-pedan.patch | 218 - ...OLDIR-to-be-overridden-in-the-environment.patch | 48 - .../0004-ld-add-soname-to-shareable-objects.patch | 45 - ...verride-CC-when-building-dist-and-go_boot.patch | 37 - ...-cmd-dist-separate-host-and-target-builds.patch | 282 - ...07-cmd-go-make-GOROOT-precious-by-default.patch | 106 - .../0008-use-GOBUILDMODE-to-set-buildmode.patch | 37 - ...ld-replace-glibc-dynamic-linker-with-musl.patch | 128 - external/poky/meta/recipes-devtools/go/go-1.14.inc | 21 + ...1-allow-CC-and-CXX-to-have-multiple-words.patch | 33 + ...-content-based-hash-generation-less-pedan.patch | 219 + ...OLDIR-to-be-overridden-in-the-environment.patch | 47 + .../0004-ld-add-soname-to-shareable-objects.patch | 45 + ...verride-CC-when-building-dist-and-go_boot.patch | 39 + ...-cmd-dist-separate-host-and-target-builds.patch | 274 + ...07-cmd-go-make-GOROOT-precious-by-default.patch | 104 + .../0008-use-GOBUILDMODE-to-set-buildmode.patch | 42 + ...ld-replace-glibc-dynamic-linker-with-musl.patch | 115 + external/poky/meta/recipes-devtools/go/go-1.9.inc | 27 - .../0001-make.bash-quote-CC_FOR_TARGET.patch | 32 - ...CC-and-CXX-environment-variable-construct.patch | 67 - ...sh-better-separate-host-and-target-builds.patch | 92 - ...w-GOTOOLDIR-to-be-overridden-in-the-envir.patch | 68 - ...05-cmd-go-make-GOROOT-precious-by-default.patch | 41 - ...dd-GOTOOLDIR_BOOTSTRAP-environment-variab.patch | 36 - .../0007-ld-add-soname-to-shareable-objects.patch | 46 - ...dd-GOHOSTxx-indirection-for-cross-canadia.patch | 33 - ...dmode-pie-forces-external-linking-mode-on.patch | 47 - ...verride-CC-when-building-dist-and-go_boot.patch | 43 - .../0011-use-GOBUILDMODE-to-set-buildmode.patch | 40 - .../go/go-1.9/set-external-linker.patch | 111 - .../poky/meta/recipes-devtools/go/go-common.inc | 11 +- .../meta/recipes-devtools/go/go-cross-canadian.inc | 18 +- .../recipes-devtools/go/go-cross-canadian_1.11.bb | 2 - .../recipes-devtools/go/go-cross-canadian_1.14.bb | 2 + .../recipes-devtools/go/go-cross-canadian_1.9.bb | 12 - .../poky/meta/recipes-devtools/go/go-cross.inc | 15 +- .../poky/meta/recipes-devtools/go/go-cross_1.11.bb | 2 - .../poky/meta/recipes-devtools/go/go-cross_1.14.bb | 2 + .../poky/meta/recipes-devtools/go/go-cross_1.9.bb | 10 - .../poky/meta/recipes-devtools/go/go-crosssdk.inc | 11 +- .../meta/recipes-devtools/go/go-crosssdk_1.11.bb | 2 - .../meta/recipes-devtools/go/go-crosssdk_1.14.bb | 2 + .../meta/recipes-devtools/go/go-crosssdk_1.9.bb | 11 - .../go-dep/0001-Update-sys-module-to-latest.patch | 145574 ++++++++++++++++++ ...0001-bolt_riscv64-Add-support-for-riscv64.patch | 33 + .../poky/meta/recipes-devtools/go/go-dep_0.5.0.bb | 35 - .../poky/meta/recipes-devtools/go/go-dep_0.5.4.bb | 30 + .../meta/recipes-devtools/go/go-native_1.11.bb | 2 - .../meta/recipes-devtools/go/go-native_1.14.bb | 2 + .../poky/meta/recipes-devtools/go/go-native_1.9.bb | 4 - .../poky/meta/recipes-devtools/go/go-runtime.inc | 19 +- .../meta/recipes-devtools/go/go-runtime_1.11.bb | 2 - .../meta/recipes-devtools/go/go-runtime_1.14.bb | 3 + .../meta/recipes-devtools/go/go-runtime_1.9.bb | 23 - .../poky/meta/recipes-devtools/go/go-target.inc | 14 +- external/poky/meta/recipes-devtools/go/go_1.11.bb | 14 - external/poky/meta/recipes-devtools/go/go_1.14.bb | 14 + external/poky/meta/recipes-devtools/go/go_1.9.bb | 28 - .../help2man/help2man-native_1.47.11.bb | 24 + .../help2man/help2man-native_1.47.6.bb | 25 - .../recipes-devtools/i2c-tools/i2c-tools_4.1.bb | 4 +- .../icecc-create-env/icecc-create-env_0.1.bb | 2 + .../icecc-toolchain/icecc-toolchain/icecc-env.sh | 4 +- .../icecc-toolchain/icecc-toolchain/icecc-setup.sh | 6 +- .../nativesdk-icecc-toolchain_0.1.bb | 6 +- .../meta/recipes-devtools/jquery/jquery_3.4.1.bb | 31 + .../add-disable-werror-option-to-configure.patch | 45 + .../meta/recipes-devtools/json-c/json-c_0.13.1.bb | 18 +- .../0001-Add-crc32.c-to-sources-list.patch | 50 + ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 41 - ...-Make-__comps_objmrtree_all-static-inline.patch | 35 - ...-set-PYTHON_INSTALL_DIR-by-running-python.patch | 27 + ...2-Set-library-installation-path-correctly.patch | 27 - .../libcomps/libcomps/CVE-2019-3817.patch | 97 - .../recipes-devtools/libcomps/libcomps_0.1.15.bb | 22 + .../meta/recipes-devtools/libcomps/libcomps_git.bb | 25 - .../libdnf/libdnf/0001-Add-WITH_TESTS-option.patch | 49 + ...ers-for-both-libsolv-and-libsolvext-libdn.patch | 21 +- .../0001-include-stdexcept-for-runtime_error.patch | 65 + ...-sysroot-path-to-introspection-tools-path.patch | 36 - ...-library-installation-directory-correctly.patch | 29 - ...-variables-with-pkg-config-cmake-s-own-mo.patch | 25 +- .../libdnf/libdnf/fix-deprecation-warning.patch | 71 + .../meta/recipes-devtools/libdnf/libdnf_0.11.1.bb | 28 - .../meta/recipes-devtools/libdnf/libdnf_0.28.1.bb | 32 + .../libedit/libedit/stdc-predef.patch | 18 + .../libedit/libedit_20191231-3.1.bb | 25 + ...01-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch | 22 + .../libmodulemd/libmodulemd-v1_git.bb | 25 + ...to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch | 21 +- ...ariables-with-pkg-config-not-with-cmake-m.patch | 18 +- .../recipes-devtools/librepo/librepo_1.11.2.bb | 27 + .../meta/recipes-devtools/librepo/librepo_1.8.1.bb | 21 - .../recipes-devtools/libtool/libtool-2.4.6.inc | 1 + ...ck-for-static-libs-for-internal-compiler-.patch | 37 + .../libtool/libtool/debian-no_hostname.patch | 21 + .../meta/recipes-devtools/libtool/libtool_2.4.6.bb | 2 +- ...LibraryInfo-Undefine-libc-functions-if-th.patch | 93 - .../0002-llvm-allow-env-override-of-exe-path.patch | 72 - ...LibraryInfo-Undefine-libc-functions-if-th.patch | 90 + .../0007-llvm-allow-env-override-of-exe-path.patch | 37 + .../poky/meta/recipes-devtools/llvm/llvm_git.bb | 125 +- .../poky/meta/recipes-devtools/m4/m4-1.4.18.inc | 40 +- .../m4/m4/0001-test-getopt-posix-fix.patch | 41 + .../m4/m4/m4-1.4.18-glibc-change-work-around.patch | 3 +- .../meta/recipes-devtools/m4/m4/remove-gets.patch | 24 - .../poky/meta/recipes-devtools/m4/m4/run-ptest | 5 + .../m4/m4/serial-tests-config.patch | 30 + external/poky/meta/recipes-devtools/make/make.inc | 4 +- ...1-glob-Do-not-assume-glibc-glob-internals.patch | 70 - ...davg.m4-restrict-AIX-specific-test-on-AIX.patch | 38 + ...-makeinst-Do-not-undef-POSIX-on-clang-arm.patch | 38 + ...001-src-dir.c-fix-buffer-overflow-warning.patch | 41 + ...2-glob-Do-not-assume-glibc-glob-internals.patch | 38 - ...tl-allow-being-detected-by-importing-proj.patch | 33 + .../0002-w32-compat-dirent.c-follow-header.patch | 36 + .../0003-posixfcn-fcntl-gnulib-make-emulated.patch | 79 + .../poky/meta/recipes-devtools/make/make_4.2.1.bb | 12 - .../poky/meta/recipes-devtools/make/make_4.3.bb | 18 + .../recipes-devtools/makedevs/makedevs/makedevs.c | 10 +- .../poky/meta/recipes-devtools/meson/meson.inc | 20 +- ...s-move-cross_args-in-front-of-output_args.patch | 30 - .../0001-Make-CPU-family-warnings-fatal.patch | 41 + ...01-Support-building-allarch-recipes-again.patch | 25 - ...ix-issues-that-arise-when-cross-compiling.patch | 65 +- ...environment.py-check-environment-for-vari.patch | 26 + ...hon.py-do-not-substitute-python-s-install.patch | 44 + ...le-do-not-manipulate-the-environment-when.patch | 52 +- .../0002-Make-CPU-family-warnings-fatal.patch | 36 - ...02-Support-building-allarch-recipes-again.patch | 26 + ...rospection-determine-g-ir-scanner-and-g-i.patch | 37 +- .../meson/meson/0003-native_bindir.patch | 46 +- .../meson/meson/cross-prop-default.patch | 23 + .../recipes-devtools/meson/meson/gi-flags.patch | 35 - .../meson/meson/gtkdoc-flags.patch | 44 - .../recipes-devtools/meson/meson/meson-setup.py | 69 +- .../recipes-devtools/meson/meson/meson-wrapper | 2 +- .../meta/recipes-devtools/meson/meson_0.47.2.bb | 3 - .../meta/recipes-devtools/meson/meson_0.53.2.bb | 4 + .../meson/nativesdk-meson_0.47.2.bb | 74 - .../meson/nativesdk-meson_0.53.2.bb | 65 + .../mklibs/mklibs-native_0.1.43.bb | 24 - .../mklibs/mklibs-native_0.1.44.bb | 22 + ...ce-strncpy-with-memmove-on-overlapping-me.patch | 36 - ...se-extra-braces-when-initializing-subobje.patch | 32 + .../meta/recipes-devtools/mmc/mmc-utils_git.bb | 6 +- ...rn-correct-error-number-in-ubi_get_vol_in.patch | 92 - ...1-mtd-utils-Fix-return-value-of-ubiformat.patch | 62 + .../meta/recipes-devtools/mtd/mtd-utils_git.bb | 21 +- ...en-if-fs-size-is-not-divisible-by-sectors.patch | 34 - ...01-remove-LOCK_NB-to-use-blocking-request.patch | 44 - .../mtools/mtools/disable-hardcoded-configs.patch | 17 +- .../meta/recipes-devtools/mtools/mtools_4.0.18.bb | 53 - .../meta/recipes-devtools/mtools/mtools_4.0.23.bb | 51 + ...t-we-are-not-reading-past-end-of-a-buffer.patch | 65 - ...rop-pure-function-attribute-from-seg_init.patch | 27 - .../0001-assemble-Check-global-line-limit.patch | 50 - .../0001-eval-Eliminate-division-by-zero.patch | 40 - .../nasm/nasm/0001-fix-CVE-2018-8882.patch | 30 - ...proc-parse_size-Check-for-string-provided.patch | 37 - .../nasm/nasm/0001-stdlib-Add-strlcat.patch | 117 + .../nasm/0002-Add-debug-prefix-map-option.patch | 325 + .../nasm/nasm/CVE-2018-19755.patch | 116 + .../nasm/nasm/CVE-2019-14248.patch | 43 + .../meta/recipes-devtools/nasm/nasm_2.13.03.bb | 35 - .../meta/recipes-devtools/nasm/nasm_2.14.02.bb | 25 + .../meta/recipes-devtools/ninja/ninja_1.10.0.bb | 30 + .../meta/recipes-devtools/ninja/ninja_1.8.2.bb | 30 - ...rt-name-on-versions-of-tar-which-support-.patch | 51 - ...0001-Switch-all-scripts-to-use-Python-3.x.patch | 112 - ...pkg-make-index-use-ctime-instead-of-mtime.patch | 59 - ...-alternatives-Fix-link-relocation-support.patch | 40 - ...Use-local-time-for-build_date-since-opkg-.patch | 44 - .../opkg-utils/fix-reproducibility.patch | 32 + .../opkg-utils/opkg-utils/pigz.patch | 51 - .../opkg-utils/opkg-utils/tar_ignore_error.patch | 48 - .../opkg-utils/opkg-utils/threaded-xz.patch | 18 - .../opkg-utils/opkg-utils_0.3.6.bb | 70 - .../opkg-utils/opkg-utils_0.4.2.bb | 66 + .../recipes-devtools/opkg/opkg-keyrings_1.0.bb | 5 +- ...-libopkg-add-add-ignore-recommends-option.patch | 260 - ...ve_maintainer_scripts-use-strict-matching.patch | 56 - .../poky/meta/recipes-devtools/opkg/opkg/run-ptest | 5 + .../poky/meta/recipes-devtools/opkg/opkg_0.3.6.bb | 63 - .../poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb | 74 + .../poky/meta/recipes-devtools/orc/orc_0.4.28.bb | 27 - .../poky/meta/recipes-devtools/orc/orc_0.4.31.bb | 30 + ...k-temporary-file-on-failed-ed-style-patch.patch | 1 + ...ak-temporary-file-on-failed-multi-file-ed.patch | 1 + ...ke-ed-directly-instead-of-using-the-shell.patch | 4 +- .../meta/recipes-devtools/patch/patch_2.7.6.bb | 3 + .../patchelf/Increase-maxSize-to-64MB.patch | 46 - .../patchelf/Skip-empty-section-fixes-66.patch | 30 - .../patchelf/patchelf/avoidholes.patch | 163 - .../patchelf/fix-adjusting-startPage.patch | 15 +- .../patchelf/patchelf/fix-phdrs.patch | 37 + .../patchelf/patchelf/handle-read-only-files.patch | 17 +- .../recipes-devtools/patchelf/patchelf_0.10.bb | 18 + .../meta/recipes-devtools/patchelf/patchelf_0.9.bb | 19 - ...-do-not-attempt-to-run-a-cross-executable.patch | 24 + ...keMaker-add-LDFLAGS-when-linking-binary-m.patch | 26 + ...CH-perl-134117-Close-DATA-in-loc_tools.pl.patch | 30 + ...s-module-breaks-through-the-perl-wrapper-.patch | 34 + ...ath.sh-do-not-hardcode-prefix-lib-as-libr.patch | 69 + ...ool.sh-do-not-quote-the-argument-to-comma.patch | 29 + ...environment-variable-to-suppress-comments.patch | 30 + ...rl-cross-add-LDFLAGS-when-linking-libperl.patch | 27 + ...t-to-correctly-exclude-unbuilt-extensions.patch | 27 + .../perl/files/0002-Constant-Fix-up-shebang.patch | 32 + .../perl/files/CVE-2020-10543.patch | 36 + .../perl/files/CVE-2020-10878_1.patch | 152 + .../perl/files/CVE-2020-10878_2.patch | 36 + .../recipes-devtools/perl/files/determinism.patch | 81 + .../recipes-devtools/perl/files/encodefix.patch | 20 + .../recipes-devtools/perl/files/errno_ver.diff | 37 + .../perl/files/native-perlinc.patch | 27 + .../perl/files/perl-configpm-switch.patch | 57 + .../perl/files/perl-dynloader.patch | 38 + .../recipes-devtools/perl/files/perl-rdepends.txt | 4468 + .../meta/recipes-devtools/perl/files/racefix.patch | 24 + .../meta/recipes-devtools/perl/files/run-ptest | 2 + .../recipes-devtools/perl/liberror-perl_0.17026.bb | 33 - .../recipes-devtools/perl/liberror-perl_0.17029.bb | 47 + .../perl/libmodule-build-perl/run-ptest | 14 + .../perl/libmodule-build-perl_0.4231.bb | 123 + .../perl/libtest-needs-perl_0.002005.bb | 29 - .../perl/libtest-needs-perl_0.002006.bb | 29 + .../meta/recipes-devtools/perl/liburi-perl_1.74.bb | 14 +- .../perl/libxml-parser-perl_2.44.bb | 53 - .../perl/libxml-parser-perl_2.46.bb | 58 + .../meta/recipes-devtools/perl/libxml-perl_0.08.bb | 2 + .../recipes-devtools/perl/perl-native_5.24.4.bb | 140 - .../poky/meta/recipes-devtools/perl/perl-ptest.inc | 18 +- .../recipes-devtools/perl/perl-rdepends_5.24.4.inc | 2575 - external/poky/meta/recipes-devtools/perl/perl.inc | 10 - ...emove-fstack-protector-strong-for-native-.patch | 103 - .../0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch | 52 - ...ious-tests-if-PERL_BUILD_PACKAGING-is-set.patch | 126 - .../perl/perl/CVE-2018-12015.patch | 48 - .../perl/perl/CVE-2018-18311.patch | 183 - .../perl/perl/CVE-2018-18312.patch | Bin 2125 -> 0 bytes .../perl/perl/CVE-2018-18313.patch | 60 - .../perl/perl/CVE-2018-18314.patch | 271 - .../perl/perl/Configure-multilib.patch | 17 - .../recipes-devtools/perl/perl/MM_Unix.pm.patch | 22 - .../recipes-devtools/perl/perl/Makefile.SH.patch | 383 - .../meta/recipes-devtools/perl/perl/Makefile.patch | 58 - .../poky/meta/recipes-devtools/perl/perl/config.sh | 1249 - .../meta/recipes-devtools/perl/perl/config.sh-32 | 38 - .../recipes-devtools/perl/perl/config.sh-32-be | 1 - .../recipes-devtools/perl/perl/config.sh-32-le | 1 - .../meta/recipes-devtools/perl/perl/config.sh-64 | 38 - .../recipes-devtools/perl/perl/config.sh-64-be | 1 - .../recipes-devtools/perl/perl/config.sh-64-le | 1 - .../perl/perl/cross-generate_uudmap.patch | 15 - .../perl/perl/debian/cpan-missing-site-dirs.diff | 63 - .../perl/perl/debian/cpan_definstalldirs.diff | 38 - .../perl/perl/debian/db_file_ver.diff | 35 - .../perl/perl/debian/deprecate-with-apt.diff | 57 - .../perl/perl/debian/doc_info.diff | 36 - .../perl/perl/debian/enc2xs_inc.diff | 71 - .../perl/perl/debian/errno_ver.diff | 37 - .../perl/debian/extutils_set_libperl_path.diff | 38 - .../perl/perl/debian/fakeroot.diff | 43 - .../perl/perl/debian/find_html2text.diff | 36 - .../debian/fixes/document_makemaker_ccflags.diff | 32 - .../perl/debian/fixes/memoize_storable_nstore.diff | 111 - .../perl/perl/debian/fixes/net_smtp_docs.diff | 26 - .../perl/perl/debian/fixes/perl-Cnn.diff | 74 - .../debian/fixes/pod_man_reproducible_date.diff | 171 - .../perl/perl/debian/fixes/podman-empty-date.diff | 52 - .../perl/perl/debian/fixes/podman-pipe.diff | 110 - .../perl/perl/debian/fixes/podman-utc-docs.diff | 87 - .../perl/perl/debian/fixes/podman-utc.diff | 34 - .../perl/perl/debian/fixes/respect_umask.diff | 154 - .../perl/perl/debian/instmodsh_doc.diff | 28 - .../perl/perl/debian/ld_run_path.diff | 25 - .../perl/perl/debian/libnet_config_path.diff | 38 - .../perl/perl/debian/libperl_embed_doc.diff | 27 - .../perl/perl/debian/locale-robustness.diff | 53 - .../perl/perl/debian/makemaker-pasthru.diff | 31 - .../perl/perl/debian/makemaker_customized.diff | 43 - .../perl/perl/debian/mod_paths.diff | 100 - .../perl/perl/debian/no_packlist_perllocal.diff | 93 - .../perl/perl/debian/patchlevel.diff | 31 - .../perl/debian/perl5db-x-terminal-emulator.patch | 30 - .../recipes-devtools/perl/perl/debian/perlivp.diff | 40 - .../perl/perl/debian/pod2man-customized.diff | 24 - .../perl/perl/debian/prefix_changes.diff | 119 - .../perl/perl/debian/prune_libs.diff | 43 - .../perl/perl/debian/regen-skip.diff | 28 - .../perl/perl/debian/skip-kfreebsd-crash.diff | 41 - .../perl/perl/debian/skip-upstream-git-tests.diff | 29 - .../perl/perl/debian/squelch-locale-warnings.diff | 57 - .../perl/perl/debian/writable_site_dirs.diff | 37 - .../perl/perl/dynaloaderhack.patch | 35 - ...M_File-hints-linux.pl-link-libgdbm_compat.patch | 35 - ...le-t-odbm.t-fix-the-path-of-dbmt_common.p.patch | 33 - .../recipes-devtools/perl/perl/fix_bad_rpath.patch | 24 - .../recipes-devtools/perl/perl/generate-sh.patch | 56 - .../recipes-devtools/perl/perl/installperl.patch | 17 - .../perl/perl/letgcc-find-errno.patch | 46 - ...-fix-regenerate-makefile-failed-while-cc-.patch | 27 - .../perl/perl/native-nopacklist.patch | 91 - .../perl/perl/native-perlinc.patch | 26 - .../perl/perl-5.26.1-guard_old_libcrypt_fix.patch | 28 - ...-PathTools-don-t-filter-out-blib-from-INC.patch | 33 - .../perl/perl/perl-archlib-exp.patch | 40 - .../perl/perl/perl-configpm-switch.patch | 47 - .../recipes-devtools/perl/perl/perl-configure.sh | 43 - .../perl/perl/perl-dynloader.patch | 34 - .../perl/perl/perl-errno-generation-gcc5.patch | 37 - ...erl-fix-conflict-between-skip_all-and-END.patch | 181 - .../perl/perl/perl-moreconfig.patch | 18 - .../poky/meta/recipes-devtools/perl/perl/run-ptest | 2 - .../perl/perl/t-run-switches.t-perl5-perl.patch | 30 - .../dist-threads-t-join.t-adjust-ps-option.patch | 38 - ...der-t-DynaLoader.t-fix-calling-dl_findfil.patch | 26 - .../poky/meta/recipes-devtools/perl/perl_5.24.4.bb | 357 - .../poky/meta/recipes-devtools/perl/perl_5.30.1.bb | 394 + .../meta/recipes-devtools/pkgconf/pkgconf_1.5.3.bb | 69 - .../meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb | 68 + .../pkgconfig/pkgconfig/pkg-config-native.in | 4 +- .../prelink/0001-Add-MIPS-gnu-hash-support.patch | 110 + ...ps.c-check-info-resolvetls-before-use-its.patch | 51 - .../meta/recipes-devtools/prelink/prelink_git.bb | 9 +- .../pseudo/files/0001-Add-statx.patch | 106 + .../0001-maketables-wrappers-use-Python-3.patch | 34 + ...-DB-fixup-remove-files-that-do-not-exist-.patch | 49 + .../files/0001-pseudo_ipc.h-Fix-enum-typedef.patch | 31 + .../0001-realpath.c-Remove-trailing-slashes.patch | 57 + ...0006-xattr-adjust-for-attr-2.4.48-release.patch | 48 + .../recipes-devtools/pseudo/files/seccomp.patch | 137 + .../pseudo/files/xattr_version.patch | 54 + .../poky/meta/recipes-devtools/pseudo/pseudo.inc | 10 +- .../meta/recipes-devtools/pseudo/pseudo_git.bb | 12 +- ...h-usr-and-so-on-for-libraries-by-default-.patch | 55 +- ...01-convert-shebang-from-python-to-python3.patch | 579 + .../files/0001-npy_cpu-Add-riscv-support.patch | 28 - ...m-setup.py-remove-the-detection-of-x86-ta.patch | 32 + .../python-numpy/files/aarch64/_numpyconfig.h | 32 - .../python-numpy/files/aarch64/config.h | 139 - .../python-numpy/files/arm/config.h | 21 - .../python-numpy/files/arm/numpyconfig.h | 17 - .../python-numpy/files/armeb/config.h | 21 - .../python-numpy/files/armeb/numpyconfig.h | 17 - .../python-numpy/files/fix_shebang_f2py.patch | 29 - .../files/mipsarchn32eb/_numpyconfig.h | 31 - .../python-numpy/files/mipsarchn32eb/config.h | 139 - .../files/mipsarchn32el/_numpyconfig.h | 31 - .../python-numpy/files/mipsarchn32el/config.h | 138 - .../files/mipsarchn64eb/_numpyconfig.h | 32 - .../python-numpy/files/mipsarchn64eb/config.h | 139 - .../files/mipsarchn64el/_numpyconfig.h | 32 - .../python-numpy/files/mipsarchn64el/config.h | 138 - .../files/mipsarcho32eb/_numpyconfig.h | 32 - .../python-numpy/files/mipsarcho32eb/config.h | 139 - .../python-numpy/files/mipsarcho32el/config.h | 21 - .../python-numpy/files/mipsarcho32el/numpyconfig.h | 18 - .../python-numpy/files/powerpc/_numpyconfig.h | 32 - .../python-numpy/files/powerpc/config.h | 139 - .../python-numpy/files/powerpc64/_numpyconfig.h | 32 - .../python-numpy/files/powerpc64/config.h | 139 - .../python-numpy/files/riscv64/_numpyconfig.h | 32 - .../python-numpy/files/riscv64/config.h | 139 - .../python-numpy/files/x86-64/_numpyconfig.h | 32 - .../python-numpy/files/x86-64/config.h | 139 - .../python-numpy/files/x86/config.h | 108 - .../python-numpy/files/x86/numpyconfig.h | 24 - .../recipes-devtools/python-numpy/python-numpy.inc | 83 +- .../python-numpy/python-numpy_1.14.5.bb | 6 - .../python-numpy/python3-numpy_1.14.5.bb | 2 - .../python-numpy/python3-numpy_1.17.4.bb | 3 + ...VE-2020-8492-Fix-AbstractBasicAuthHandler.patch | 248 + ...ionally-do-not-fetch-code-by-easy_install.patch | 10 +- .../meta/recipes-devtools/python/python-async.inc | 4 +- .../meta/recipes-devtools/python/python-git.inc | 32 - .../meta/recipes-devtools/python/python-gitdb.inc | 6 +- .../meta/recipes-devtools/python/python-mako.inc | 21 - ...ative-fix-one-do_populate_sysroot-warning.patch | 39 - .../10-distutils-fix-swig-parameter.patch | 18 - .../11-distutils-never-modify-shebang-line.patch | 20 - .../python/python-native/debug.patch | 32 - .../python/python-native/multilib.patch | 235 - .../python/python-native/nohostlibs.patch | 54 - .../revert_use_of_sysconfigdata.patch | 86 - .../python/python-native/unixccompiler.patch | 20 - .../python/python-native_2.7.16.bb | 89 - .../recipes-devtools/python/python-nose_1.3.7.bb | 2 - .../meta/recipes-devtools/python/python-pbr.inc | 3 - .../python/python-pycryptodome.inc | 26 + .../python/python-scons-native_3.0.1.bb | 8 - .../recipes-devtools/python/python-scons_3.0.1.bb | 21 - .../recipes-devtools/python/python-setuptools.inc | 18 +- .../python/python-setuptools_40.0.0.bb | 9 - .../meta/recipes-devtools/python/python-six.inc | 5 +- .../meta/recipes-devtools/python/python-smmap.inc | 10 +- .../recipes-devtools/python/python-testtools.inc | 1 + .../poky/meta/recipes-devtools/python/python.inc | 46 - ...et-the-prefix-to-be-inside-staging-direct.patch | 51 - .../01-use-proper-tools-for-cross-build.patch | 100 - .../python/python/03-fix-tkinter-detection.patch | 46 - .../python/05-enable-ctypes-cross-build.patch | 27 - .../06-avoid_usr_lib_termcap_path_in_linking.patch | 35 - .../add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch | 28 - .../python/python/add-md5module-support.patch | 18 - .../python/avoid_warning_about_tkinter.patch | 29 - .../avoid_warning_for_sunos_specific_module.patch | 23 - .../python/python/bpo-30458-cve-2019-9740.patch | 219 - .../python/python/bpo-35121-cve-2018-20852.patch | 127 - .../python/bpo-35907-cve-2019-9948-fix.patch | 55 - .../python/python/bpo-35907-cve-2019-9948.patch | 55 - .../python/bpo-36216-cve-2019-9636-fix.patch | 28 - .../python/python/bpo-36216-cve-2019-9636.patch | 111 - .../recipes-devtools/python/python/builddir.patch | 46 - .../recipes-devtools/python/python/cgi_py.patch | 23 - .../python/check-if-target-is-64b-not-host.patch | 57 - .../python/python/create_manifest2.py | 292 - .../python/fix_for_using_different_libdir.patch | 77 - .../python/python/float-endian.patch | 216 - .../python/python/get_module_deps2.py | 112 - .../python/python/host_include_contamination.patch | 28 - .../recipes-devtools/python/python/multilib.patch | 298 - .../python/parallel-makeinst-create-bindir.patch | 19 - ...ss-missing-libraries-to-Extension-for-mul.patch | 82 - .../python/python-2.7.3-remove-bsdb-rpath.patch | 28 - .../python/python/python2-manifest.json | 1136 - .../meta/recipes-devtools/python/python/run-ptest | 3 - ...search_db_h_in_inc_dirs_and_avoid_warning.patch | 35 - .../python/setup_py_skip_cross_import_check.patch | 27 - .../python/python/setuptweaks.patch | 57 - .../python/python/sitecustomize.py | 37 - ...pport_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch | 34 - .../use_sysroot_ncurses_instead_of_host.patch | 21 - .../recipes-devtools/python/python3-dbus_1.2.16.bb | 26 + .../recipes-devtools/python/python3-dbus_1.2.8.bb | 24 - .../python/python3-docutils_0.14.bb | 18 - .../python/python3-docutils_0.16.bb | 17 + .../recipes-devtools/python/python3-git_2.1.11.bb | 2 - .../recipes-devtools/python/python3-git_3.0.5.bb | 33 + .../recipes-devtools/python/python3-gitdb_2.0.4.bb | 2 - .../recipes-devtools/python/python3-gitdb_2.0.6.bb | 3 + .../python/python3-libarchive-c_2.9.bb | 21 + .../python/python3-magic_0.4.15.bb | 19 + .../recipes-devtools/python/python3-mako_1.0.7.bb | 2 - .../recipes-devtools/python/python3-mako_1.1.1.bb | 21 + .../python/python3-native_3.5.6.bb | 99 - .../recipes-devtools/python/python3-nose_1.3.7.bb | 4 - .../recipes-devtools/python/python3-pbr_4.2.0.bb | 2 - .../recipes-devtools/python/python3-pbr_5.4.4.bb | 5 + .../recipes-devtools/python/python3-pip_18.0.bb | 30 - .../recipes-devtools/python/python3-pip_20.0.2.bb | 31 + .../python/python3-pycairo_1.15.6.bb | 31 - .../python/python3-pycairo_1.19.0.bb | 27 + .../python/python3-pycryptodome_3.9.7.bb | 5 + .../python/python3-pycryptodomex_3.9.7.bb | 9 + .../python/python3-pyelftools_0.26.bb | 14 + .../python/python3-pygments_2.5.2.bb | 20 + .../0001-Do-not-build-tests.patch | 30 + .../python/python3-pygobject_3.28.3.bb | 29 - .../python/python3-pygobject_3.34.0.bb | 33 + .../python/python3-scons-native_3.1.2.bb | 7 + .../recipes-devtools/python/python3-scons_3.1.2.bb | 33 + .../python/python3-setuptools_40.0.0.bb | 6 - .../python/python3-setuptools_45.2.0.bb | 6 + .../recipes-devtools/python/python3-six_1.11.0.bb | 2 - .../recipes-devtools/python/python3-six_1.14.0.bb | 5 + .../recipes-devtools/python/python3-smmap_0.9.0.bb | 2 - .../recipes-devtools/python/python3-smmap_2.0.5.bb | 2 + .../python/python3-subunit_1.3.0.bb | 2 + .../python/python3-testtools/no_traceback2.patch | 23 + .../python/python3-testtools_2.3.0.bb | 2 + .../poky/meta/recipes-devtools/python/python3.inc | 43 - ...usr-lib-termcap-to-linker-flags-to-avoid-.patch | 25 + ...code-lib-as-location-for-site-packages-an.patch | 214 + ...the-shell-version-of-python-config-that-w.patch | 25 +- ...Don-t-search-system-for-headers-libraries.patch | 29 + ...-Use-_sysconfigdata.py-to-initialize-dist.patch | 66 - ...-SSLContext-has-improved-default-settings.patch | 272 - ...ig.py-fix-another-place-where-lib-is-hard.patch | 31 + ...-Makefile-do-not-compile-.pyc-in-parallel.patch | 58 + ...ix-Issue36464-parallel-build-race-problem.patch | 34 + ...e-use-qemu-wrapper-when-gathering-profile.patch | 25 + ...-Use-FLAG_REF-always-for-interned-strings.patch | 35 + ...roper-detection-of-mips-architecture-for-.patch | 209 + .../python3/0001-configure.ac-fix-LIBPL.patch | 35 + ...ysconfig-append-STAGING_LIBDIR-python-sys.patch | 42 + ...sue-13032-where-it-fails-with-UnicodeDeco.patch | 37 - ...python3-Do-not-hardcode-lib-for-distutils.patch | 43 + ...-cc_basename-to-replace-CC-for-checking-c.patch | 121 + ...ss-missing-libraries-to-Extension-for-mul.patch | 69 + ..._locale.py-correct-the-test-output-format.patch | 46 + ...le-add-target-to-split-profile-generation.patch | 40 - ...dd-TLS-1.3-cipher-suites-and-OP_NO_TLSv1_.patch | 227 - ...ixes-for-TLS-1.3-and-OpenSSL-1.1.1-GH-876.patch | 173 - ...TLS-1.3-ciphers-for-OpenSSL-1.1.1-GH-6976.patch | 110 - ...0714-ALPN-changes-for-OpenSSL-1.1.0f-2305.patch | 68 - ...-not-report-missing-dependencies-for-disa.patch | 32 + ...c-setup.py-do-not-add-a-curses-include-pa.patch | 48 + .../python/python3/03-fix-tkinter-detection.patch | 42 - .../python/python3/030-fixup-include-dirs.patch | 33 - .../python3/080-distutils-dont_adjust_files.patch | 92 - ...2-distutils-prefix-is-inside-staging-area.patch | 33 +- .../python/python3/130-readline-setup.patch | 55 - .../python/python3/150-fix-setupterm.patch | 17 - .../python/python3/CVE-2018-14647.patch | 95 - .../python/python3/CVE-2018-20406.patch | 217 - .../python/python3/CVE-2018-20852.patch | 129 - .../python/python3/CVE-2019-9636.patch | 154 - .../python/python3/CVE-2019-9740.patch | 155 - .../python/python3/CVE-2020-14422.patch | 77 + ...-CFLAGS-for-extensions-when-cross-compili.patch | 56 - .../python3/avoid-ncursesw-include-path.patch | 21 - .../python3/avoid_warning_about_tkinter.patch | 44 +- .../recipes-devtools/python/python3/cgi_py.patch | 15 +- .../python/python3/check_build_completeness.py | 17 + .../python/python3/configure.ac-fix-LIBPL.patch | 30 - .../python/python3/create_manifest3.py | 28 +- .../python/python3/crosspythonpath.patch | 25 + .../python3/fix_for_using_different_libdir.patch | 54 - .../python/python3/float-endian.patch | 212 - .../recipes-devtools/python/python3/ftplib.patch | 60 - .../python3/host_include_contamination.patch | 28 - ...ss-missing-libraries-to-Extension-for-mul.patch | 82 - .../python/python3/python-3.3-multilib.patch | 363 - .../python/python3/python-config.patch | 24 +- .../python/python3/python3-manifest.json | 282 +- ...-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch | 25 - .../python/python3/reformat_sysconfig.py | 21 + .../python/python3/regen-all.patch | 25 - .../meta/recipes-devtools/python/python3/run-ptest | 2 +- ...p.py-check-cross_compiling-when-get-FLAGS.patch | 50 - .../python/python3/setuptweaks.patch | 57 - .../recipes-devtools/python/python3/signal.patch | 56 - .../python/python3/sitecustomize.py | 37 - .../support_SOURCE_DATE_EPOCH_in_py_compile.patch | 97 - .../sysconfig.py-add-_PYTHON_PROJECT_SRC.patch | 51 - .../python/python3/sysroot-include-headers.patch | 35 - .../tweak-MULTIARCH-for-powerpc-linux-gnuspe.patch | 52 - .../python/python3/unixccompiler.patch | 35 - .../meta/recipes-devtools/python/python3_3.5.6.bb | 333 - .../meta/recipes-devtools/python/python3_3.8.2.bb | 353 + .../meta/recipes-devtools/python/python_2.7.16.bb | 270 - .../qemu/nativesdk-qemu-helper_1.0.bb | 2 +- .../qemu/qemu-helper-native_1.0.bb | 13 +- .../qemu/qemu-helper/qemu-oe-bridge-helper | 25 + .../recipes-devtools/qemu/qemu-helper/tunctl.c | 16 +- .../meta/recipes-devtools/qemu/qemu-native.inc | 16 + .../recipes-devtools/qemu/qemu-native_4.2.0.bb | 9 + .../qemu/qemu-system-native_4.2.0.bb | 24 + .../meta/recipes-devtools/qemu/qemu-targets.inc | 14 +- external/poky/meta/recipes-devtools/qemu/qemu.inc | 131 +- .../qemu/qemu/0001-Add-enable-disable-udev.patch | 29 + ...nux-user-assume-__NR_gettid-always-exists.patch | 49 - ...rename-gettid-to-sys_gettid-to-avoid-clas.patch | 95 - ...001-qemu-Add-missing-wacom-HID-descriptor.patch | 139 + ...01-qemu-Do-not-include-file-if-not-exists.patch | 31 + ...sdl.c-allow-user-to-disable-pointer-grabs.patch | 71 - ...age-ptest-which-runs-all-unit-test-cases-.patch | 33 + ...002-qemu-Add-missing-wacom-HID-descriptor.patch | 138 - ...age-ptest-which-runs-all-unit-test-cases-.patch | 32 - ...dition-environment-space-to-boot-loader-q.patch | 33 + ...dition-environment-space-to-boot-loader-q.patch | 32 - .../qemu/qemu/0004-qemu-disable-Valgrind.patch | 34 + .../qemu/qemu/0005-qemu-disable-Valgrind.patch | 33 - ...-set-ld.bfd-fix-cflags-and-set-some-envir.patch | 26 + ...ardev-connect-socket-to-a-spawned-command.patch | 239 + ...paths-searched-during-user-mode-emulation.patch | 145 - .../qemu/0007-apic-fixup-fallthrough-to-PIC.patch | 44 + ...-set-ld.bfd-fix-cflags-and-set-some-envir.patch | 25 - ...ardev-connect-socket-to-a-spawned-command.patch | 239 - ...-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch | 33 + .../qemu/qemu/0009-Fix-webkitgtk-builds.patch | 135 + .../qemu/0009-apic-fixup-fallthrough-to-PIC.patch | 43 - ...ure-Add-pkg-config-handling-for-libgcrypt.patch | 91 + ...-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch | 32 - ...x-user-fix-mmap-munmap-mprotect-mremap-sh.patch | 141 - ...fix-regression-in-parsing-vga-cmdline-par.patch | 54 + ...12-fix-libcap-header-issue-on-some-distro.patch | 5 +- ...error-messages-when-qemi_cpu_kick_thread-.patch | 26 +- ...fix-to-handle-variably-sized-SIOCGSTAMP-w.patch | 336 - .../qemu/qemu/CVE-2018-10839.patch | 52 - .../qemu/qemu/CVE-2018-15746.patch | 64 - .../qemu/qemu/CVE-2018-16867.patch | 49 - .../qemu/qemu/CVE-2018-16872.patch | 89 - .../qemu/qemu/CVE-2018-17962.patch | 70 - .../qemu/qemu/CVE-2018-17963.patch | 51 - .../qemu/qemu/CVE-2018-18849.patch | 86 - .../qemu/qemu/CVE-2018-18954.patch | 50 - .../qemu/qemu/CVE-2018-19364_p1.patch | 51 - .../qemu/qemu/CVE-2018-19364_p2.patch | 115 - .../qemu/qemu/CVE-2018-19489.patch | 83 - .../qemu/qemu/CVE-2018-20815_p1.patch | 42 - .../qemu/qemu/CVE-2018-20815_p2.patch | 52 - .../qemu/qemu/CVE-2019-12155.patch | 38 - .../qemu/qemu/CVE-2019-15890.patch | 48 + .../recipes-devtools/qemu/qemu/CVE-2019-3812.patch | 39 - .../recipes-devtools/qemu/qemu/CVE-2019-6778.patch | 41 - .../recipes-devtools/qemu/qemu/CVE-2019-8934.patch | 215 - .../recipes-devtools/qemu/qemu/CVE-2019-9824.patch | 47 - .../qemu/qemu/CVE-2020-10702.patch | 52 + .../qemu/qemu/CVE-2020-10761.patch | 150 + .../qemu/qemu/CVE-2020-11102.patch | 148 + .../qemu/qemu/CVE-2020-11869.patch | 97 + .../qemu/qemu/CVE-2020-13361.patch | 61 + .../qemu/qemu/CVE-2020-13362.patch | 52 + .../qemu/qemu/CVE-2020-13659.patch | 55 + .../qemu/qemu/CVE-2020-13800.patch | 60 + .../qemu/qemu/CVE-2020-15863.patch | 63 + .../recipes-devtools/qemu/qemu/CVE-2020-1711.patch | 64 + .../qemu/qemu/CVE-2020-7039-1.patch | 44 + .../qemu/qemu/CVE-2020-7039-2.patch | 59 + .../qemu/qemu/CVE-2020-7039-3.patch | 64 + .../recipes-devtools/qemu/qemu/CVE-2020-7211.patch | 46 + .../poky/meta/recipes-devtools/qemu/qemu/run-ptest | 2 +- .../poky/meta/recipes-devtools/qemu/qemu_3.0.0.bb | 77 - .../poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb | 30 + .../recipes-devtools/qemu/qemuwrapper-cross_1.0.bb | 5 +- .../meta/recipes-devtools/quilt/quilt-native.inc | 18 - .../recipes-devtools/quilt/quilt-native_0.65.bb | 2 - .../recipes-devtools/quilt/quilt-native_0.66.bb | 2 + .../poky/meta/recipes-devtools/quilt/quilt.inc | 30 +- ...0001-tests-Allow-different-output-from-mv.patch | 8 +- .../meta/recipes-devtools/quilt/quilt/Makefile | 3 +- .../meta/recipes-devtools/quilt/quilt/run-ptest | 2 +- .../poky/meta/recipes-devtools/quilt/quilt_0.65.bb | 8 - .../poky/meta/recipes-devtools/quilt/quilt_0.66.bb | 2 + ...tial-support-for-unused-MD2-and-RIPEMD160.patch | 81 + ...rovides-requires-do-not-use-monodis-from-.patch | 58 + ...-rpmplugins.c-call-dlerror-prior-to-dlsym.patch | 29 + ...-change-logging-level-around-scriptlets-t.patch | 55 + .../poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb | 155 + .../poky/meta/recipes-devtools/rpm/rpm_4.14.2.bb | 151 - .../rsync/files/CVE-2016-9840.patch | 75 + .../rsync/files/CVE-2016-9841.patch | 228 + .../rsync/files/CVE-2016-9842.patch | 33 + .../rsync/files/CVE-2016-9843.patch | 53 + .../meta/recipes-devtools/rsync/rsync_3.1.3.bb | 7 + external/poky/meta/recipes-devtools/ruby/ruby.inc | 12 +- ...bang-of-libexec-y2racc-and-libexec-racc2y.patch | 38 + ...mk-fix-cross-compilation-of-external-gems.patch | 34 + ...0002-Obey-LDFLAGS-for-the-link-of-libruby.patch | 24 +- .../meta/recipes-devtools/ruby/ruby/extmk.patch | 16 - .../ruby/ruby/remove_has_include_macros.patch | 26 + .../ruby/ruby/ruby-CVE-2017-9226.patch | 32 - .../ruby/ruby/ruby-CVE-2017-9228.patch | 34 - .../poky/meta/recipes-devtools/ruby/ruby_2.5.3.bb | 80 - .../poky/meta/recipes-devtools/ruby/ruby_2.7.1.bb | 92 + .../run-postinsts/run-postinsts/run-postinsts | 2 +- .../run-postinsts/run-postinsts.service | 2 +- ...fs-tools-fix-build-failure-against-gcc-10.patch | 45 + ...shfs.c-get-inline-functions-work-with-C99.patch | 154 - ...-squashfs-tools-patch-for-CVE-2015-4645-6.patch | 47 - .../squashfs-tools/squashfs-tools/fix-compat.patch | 63 - .../squashfs-tools-4.3-sysmacros.patch | 32 - .../squashfs-tools/squashfs-tools_git.bb | 46 +- ...hen-using-non-glibc-libc-implementation-o.patch | 36 - .../0001-caps-abbrev.awk-fix-gawk-s-path.patch | 12 +- .../0001-strace-fix-reproducibilty-issues.patch | 39 + ...tion-Check-for-mips-and-alpha-before-usin.patch | 37 - .../strace/strace/Makefile-ptest.patch | 10 +- .../strace/strace/disable-git-version-gen.patch | 12 +- .../strace/strace/mips-SIGEMT.patch | 19 +- ...-robust-test-for-m32-mx32-compile-support.patch | 44 - .../strace/strace/ptest-spacesave.patch | 28 + .../meta/recipes-devtools/strace/strace/run-ptest | 6 +- .../recipes-devtools/strace/strace/uintptr_t.patch | 27 + .../strace/strace/update-gawk-paths.patch | 29 +- .../meta/recipes-devtools/strace/strace_4.24.bb | 64 - .../meta/recipes-devtools/strace/strace_5.5.bb | 56 + .../subversion/subversion/disable_macos.patch | 45 +- ...erf.m4-Regex-modified-to-allow-D-in-paths.patch | 32 - .../subversion/subversion/serfmacro.patch | 27 +- .../subversion/subversion_1.10.0.bb | 58 - .../subversion/subversion_1.13.0.bb | 63 + external/poky/meta/recipes-devtools/swig/swig.inc | 17 +- ...ed-code-for-constant-expressions-containi.patch | 179 + .../poky/meta/recipes-devtools/swig/swig_3.0.12.bb | 1 + ...tall-don-t-install-obsolete-file-com32.ld.patch | 32 + ...r-syslinuxext-implement-syslinux_patch_bo.patch | 44 +- ...ound-multiple-definition-of-symbol-errors.patch | 97 + .../syslinux/0010-gcc46-compatibility.patch | 37 - .../0011-mk-MMD-does-not-take-any-arguments.patch | 33 - .../syslinux/syslinux-6.03-sysmacros.patch | 45 - .../syslinux-fix-parallel-building-issue.patch | 35 - .../syslinux/syslinux-libupload-depend-lib.patch | 31 - .../recipes-devtools/syslinux/syslinux_6.03.bb | 90 - .../syslinux/syslinux_6.04-pre2.bb | 107 + ...-architecture-Recognise-RISCV-32-RISCV-64.patch | 45 + .../systemd-bootchart/mips64.patch | 35 + .../systemd-bootchart/systemd-bootchart_233.bb | 6 +- .../recipes-devtools/tcf-agent/tcf-agent_git.bb | 4 +- ...dd2-Failed-to-build-tk-8.6.10-with-cross-.patch | 44 + .../tcltk/tcl/alter-includedir.patch | 5 +- .../poky/meta/recipes-devtools/tcltk/tcl/run-ptest | 15 +- .../tcl/tcl-remove-hardcoded-install-path.patch | 15 +- .../poky/meta/recipes-devtools/tcltk/tcl_8.6.10.bb | 105 + .../poky/meta/recipes-devtools/tcltk/tcl_8.6.8.bb | 101 - .../0001-Add-listen-action-for-a-tcp-socket.patch | 54 + .../recipes-devtools/unfs3/unfs3_0.9.22.r497.bb | 47 - .../poky/meta/recipes-devtools/unfs3/unfs3_git.bb | 43 + .../meta/recipes-devtools/unifdef/unifdef_2.11.bb | 19 - .../meta/recipes-devtools/unifdef/unifdef_2.12.bb | 20 + external/poky/meta/recipes-devtools/vala/vala.inc | 2 +- .../vala/vala/0001-Disable-valadoc.patch | 32 - .../vala/vala/disable-graphviz.patch | 224 - .../poky/meta/recipes-devtools/vala/vala_0.42.0.bb | 10 - .../poky/meta/recipes-devtools/vala/vala_0.46.6.bb | 8 + ...uard-against-__GLIBC_PREREQ-for-musl-libc.patch | 2 +- ...functions-static-to-avoid-assembler-error.patch | 2 +- ...-Return-a-valid-exit_code-from-vg_regtest.patch | 27 + ...1-adjust-path-filter-for-2-memcheck-tests.patch | 40 + ...-build-needs-__getauxval-for-linking-with.patch | 144 + ...1-memcheck-tests-Fix-timerfd-syscall-test.patch | 98 + ...s-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch | 34 + ...pthread_detatch-call-portable-across-plat.patch | 87 + ...grind-filter_xml_frames-do-not-filter-usr.patch | 39 + ...d3.c-Dereference-pthread_t-before-adding-.patch | 32 - .../valgrind/valgrind/remove-for-aarch64 | 237 + .../recipes-devtools/valgrind/valgrind/run-ptest | 43 +- .../valgrind/valgrind/s390x_vec_op_t.patch | 19 + .../recipes-devtools/valgrind/valgrind_3.14.0.bb | 168 - .../recipes-devtools/valgrind/valgrind_3.15.0.bb | 230 + .../meta/recipes-devtools/xmlto/files/catalog.xml | 19 - .../meta/recipes-devtools/xmlto/xmlto_0.0.28.bb | 15 +- .../recipes-extended/acpica/acpica_20180508.bb | 52 - .../recipes-extended/acpica/acpica_20200430.bb | 49 + .../files/manipulate-fds-instead-of-FILE.patch | 71 - .../files/rename-yy_scan_string-manually.patch | 64 - .../asciidoc/asciidoc/auto-catalogs.patch | 53 + .../recipes-extended/asciidoc/asciidoc_8.6.9.bb | 26 +- .../at/at/fix_parallel_build_error.patch | 15 +- .../meta/recipes-extended/at/at/pam.conf.patch | 40 +- .../poky/meta/recipes-extended/at/at_3.1.20.bb | 78 - .../poky/meta/recipes-extended/at/at_3.1.23.bb | 78 + external/poky/meta/recipes-extended/bash/bash.inc | 31 +- ...1-help-fix-printf-format-security-warning.patch | 35 - .../recipes-extended/bash/bash/build-tests.patch | 7 +- .../recipes-extended/bash/bash/execute_cmd.patch | 19 +- ...roc-run-heredoc-run-execscript-run-test-f.patch | 45 - .../recipes-extended/bash/bash/pathexp-dep.patch | 13 - .../recipes-extended/bash/bash/run-bash-ptests | 4 + .../poky/meta/recipes-extended/bash/bash/run-ptest | 6 +- .../poky/meta/recipes-extended/bash/bash_4.4.18.bb | 41 - .../poky/meta/recipes-extended/bash/bash_5.0.bb | 72 + .../bc/bc/0001-dc-fix-exit-code-of-q-command.patch | 44 + .../poky/meta/recipes-extended/bc/bc_1.07.1.bb | 7 +- .../blktool/0004-fix-ftbfs-glibc-2.28.patch | 19 + .../blktool/blktool/blktool-gnulib-makedev.patch | 23 - .../meta/recipes-extended/blktool/blktool_4-7.1.bb | 29 + .../meta/recipes-extended/blktool/blktool_4-7.bb | 29 - .../bzip2/bzip2-1.0.6/CVE-2016-3189.patch | 18 - .../bzip2/bzip2-1.0.6/CVE-2019-12900.patch | 33 - .../recipes-extended/bzip2/bzip2-1.0.6/Makefile.am | 73 - .../bzip2/bzip2-1.0.6/configure.ac | 11 - ...bunzip2-qt-returns-0-for-corrupt-archives.patch | 55 - .../fix-regression-CVE-2019-12900.patch | 82 - .../recipes-extended/bzip2/bzip2-1.0.6/run-ptest | 2 - .../meta/recipes-extended/bzip2/bzip2/Makefile.am | 73 + .../meta/recipes-extended/bzip2/bzip2/configure.ac | 11 + .../meta/recipes-extended/bzip2/bzip2/run-ptest | 2 + .../meta/recipes-extended/bzip2/bzip2_1.0.6.bb | 47 - .../meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 45 + .../chkconfig-alternatives-native_1.3.59.bb | 44 - .../chkconfig/chkconfig/replace_caddr_t.patch | 33 - .../recipes-extended/chkconfig/chkconfig_1.3.58.bb | 71 - ...-CVE-2016-2037-1-byte-out-of-bounds-write.patch | 346 - .../cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch | 178 - .../cpio-2.12/0001-Fix-segfault-with-append.patch | 87 - ...need_charset_alias-when-building-for-musl.patch | 30 - ...need_charset_alias-when-building-for-musl.patch | 30 + ...c-Remove-superfluous-declaration-of-progr.patch | 28 + .../poky/meta/recipes-extended/cpio/cpio_2.12.bb | 48 - .../poky/meta/recipes-extended/cpio/cpio_2.13.bb | 49 + .../cronie/cronie/crond_pam_config.patch | 16 +- .../meta/recipes-extended/cronie/cronie_1.5.2.bb | 83 - .../meta/recipes-extended/cronie/cronie_1.5.5.bb | 84 + external/poky/meta/recipes-extended/cups/cups.inc | 37 +- .../0001-don-t-try-to-run-generated-binaries.patch | 70 - .../cups/cups/0001-use-echo-only-in-init.patch | 27 + .../0002-don-t-try-to-run-generated-binaries.patch | 73 + .../0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch | 51 + ...-cups-fix-multilib-install-file-conflicts.patch | 33 + .../cups/cups-avoid-install-file-conflicts.patch | 21 - .../cups/cups/cups_serverbin.patch | 32 - .../cups/cups/use_echo_only_in_init.patch | 15 - .../poky/meta/recipes-extended/cups/cups_2.2.10.bb | 6 - .../poky/meta/recipes-extended/cups/cups_2.3.1.bb | 6 + ...need_charset_alias-when-building-for-musl.patch | 33 - .../0001-explicitly-disable-replacing-getopt.patch | 30 - .../diffutils/diffutils-3.6/run-ptest | 3 - .../0001-Skip-strip-trailing-cr-test-case.patch | 35 + .../recipes-extended/diffutils/diffutils/run-ptest | 4 + .../recipes-extended/diffutils/diffutils_3.6.bb | 41 - .../recipes-extended/diffutils/diffutils_3.7.bb | 40 + .../poky/meta/recipes-extended/ed/ed_1.14.2.bb | 35 - external/poky/meta/recipes-extended/ed/ed_1.15.bb | 38 + .../ethtool/ethtool/avoid_parallel_tests.patch | 6 +- .../meta/recipes-extended/ethtool/ethtool_4.19.bb | 30 - .../meta/recipes-extended/ethtool/ethtool_5.4.bb | 33 + .../meta/recipes-extended/findutils/findutils.inc | 4 +- ...need_charset_alias-when-building-for-musl.patch | 31 - ...elete-honour-the-ignore_readdir_race-opti.patch | 144 - .../findutils/findutils-4.6.0-gnulib-fflush.patch | 140 - .../findutils/findutils-4.6.0-gnulib-makedev.patch | 78 - .../recipes-extended/findutils/findutils_4.6.0.bb | 21 - .../recipes-extended/findutils/findutils_4.7.0.bb | 15 + .../foomatic-filters-4.0.17/CVE-2015-8327.patch | 23 - .../foomatic-filters-4.0.17/CVE-2015-8560.patch | 23 - .../foomatic/foomatic-filters_4.0.17.bb | 44 - .../poky/meta/recipes-extended/gawk/gawk/run-ptest | 24 +- .../poky/meta/recipes-extended/gawk/gawk_4.2.1.bb | 50 - .../poky/meta/recipes-extended/gawk/gawk_5.0.1.bb | 55 + .../ghostscript/CVE-2019-14869-0001.patch | 70 + .../ghostscript/CVE-2019-3835-0001.patch | 99 - .../ghostscript/CVE-2019-3835-0002.patch | 71 - .../ghostscript/CVE-2019-3835-0003.patch | 295 - .../ghostscript/CVE-2019-3835-0004.patch | 167 - .../ghostscript/CVE-2019-3838-0001.patch | 34 - .../ghostscript/CVE-2019-3838-0002.patch | 30 - .../ghostscript/CVE-2019-6116-0001.patch | 177 - .../ghostscript/CVE-2019-6116-0002.patch | 442 - .../ghostscript/CVE-2019-6116-0003.patch | 32 - .../ghostscript/CVE-2019-6116-0004.patch | 136 - .../ghostscript/CVE-2019-6116-0005.patch | 250 - .../ghostscript/CVE-2019-6116-0006.patch | 596 - .../ghostscript/CVE-2019-6116-0007.patch | 346 - .../ghostscript/ghostscript/CVE-2020-15900.patch | 54 + .../ghostscript/ghostscript-9.02-genarch.patch | 14 +- .../ghostscript/ghostscript/microblaze/objarch.h | 40 + .../ghostscript/ghostscript/microblazeeb/objarch.h | 40 - .../ghostscript/ghostscript/powerpc64le/objarch.h | 40 + .../ghostscript/ghostscript_9.26.bb | 138 - .../ghostscript/ghostscript_9.50.bb | 130 + ...need_charset_alias-when-building-for-musl.patch | 33 - .../poky/meta/recipes-extended/grep/grep_3.1.bb | 47 - .../poky/meta/recipes-extended/grep/grep_3.4.bb | 44 + .../groff/files/0001-Include-config.h.patch | 1228 + .../0001-Make-manpages-mulitlib-identical.patch | 27 + .../0001-replace-perl-w-with-use-warnings.patch | 106 + .../groff/files/0001-support-musl.patch | 41 + .../groff-not-search-fonts-on-build-host.patch | 32 + ...need_charset_alias-when-building-for-musl.patch | 30 - .../0001-replace-perl-w-with-use-warnings.patch | 102 - ...off-1.22.2-correct-man.local-install-path.patch | 34 - .../groff-not-search-fonts-on-build-host.patch | 20 - .../meta/recipes-extended/groff/groff_1.22.3.bb | 87 - .../meta/recipes-extended/groff/groff_1.22.4.bb | 66 + .../gzip/gzip-1.10/wrong-path-fix.patch | 36 + .../recipes-extended/gzip/gzip-1.9/gnulib.patch | 189 - .../gzip/gzip-1.9/wrong-path-fix.patch | 36 - .../poky/meta/recipes-extended/gzip/gzip_1.10.bb | 40 + .../poky/meta/recipes-extended/gzip/gzip_1.9.bb | 40 - .../meta/recipes-extended/hdparm/hdparm_9.56.bb | 43 - .../meta/recipes-extended/hdparm/hdparm_9.58.bb | 43 + .../images/core-image-kernel-dev.bb | 3 + .../recipes-extended/images/core-image-lsb-dev.bb | 7 - .../recipes-extended/images/core-image-lsb-sdk.bb | 12 - .../meta/recipes-extended/images/core-image-lsb.bb | 14 - .../images/core-image-testmaster.bb | 2 +- .../iptables/iptables/ip6tables.rules | 0 .../iptables/iptables/ip6tables.service | 13 + .../iptables/iptables/iptables.rules | 0 .../iptables/iptables/iptables.service | 13 + .../recipes-extended/iptables/iptables_1.6.2.bb | 64 - .../recipes-extended/iptables/iptables_1.8.4.bb | 108 + .../0001-iputils-Initialize-libgcrypt.patch | 55 + ...ge-variable-name-to-avoid-colliding-with-.patch | 51 + ...infod-fix-systemd-Documentation-url-error.patch | 28 + .../0001-rarpd-rdisc-Drop-PrivateUsers.patch | 46 + .../iputils/iputils/ai_canonidn.patch | 58 - .../recipes-extended/iputils/iputils/install.patch | 26 - .../recipes-extended/iputils/iputils_s20180629.bb | 61 - .../recipes-extended/iputils/iputils_s20190709.bb | 74 + .../poky/meta/recipes-extended/less/less_530.bb | 42 - .../poky/meta/recipes-extended/less/less_551.bb | 43 + .../libarchive/libarchive/CVE-2018-1000877.patch | 38 - .../libarchive/libarchive/CVE-2018-1000878.patch | 79 - .../libarchive/libarchive/CVE-2018-1000879.patch | 50 - .../libarchive/libarchive/CVE-2018-1000880.patch | 44 - .../libarchive/libarchive/CVE-2019-1000019.patch | 59 - .../libarchive/libarchive/CVE-2019-1000020.patch | 61 - .../libarchive/libarchive/bug1066.patch | 54 - .../non-recursive-extract-and-list.patch | 153 - .../libarchive/libarchive_3.3.3.bb | 75 - .../libarchive/libarchive_3.4.2.bb | 67 + .../libidn/0001-idn-format-security-warnings.patch | 181 - ..._MKDIR_P_warning_error_with_automake_1.12.patch | 34 - .../libidn/libidn/dont-depend-on-help2man.patch | 23 - .../libidn/libidn_fix_for_automake-1.12.patch | 35 - ...need_charset_alias-when-building-for-musl.patch | 23 - .../meta/recipes-extended/libidn/libidn2_2.0.5.bb | 29 - .../meta/recipes-extended/libidn/libidn2_2.3.0.bb | 32 + .../meta/recipes-extended/libidn/libidn_1.35.bb | 42 - .../meta/recipes-extended/libmnl/libmnl_1.0.4.bb | 4 +- .../meta/recipes-extended/libnsl/libnsl2_git.bb | 2 +- .../meta/recipes-extended/libnss-nis/libnss-nis.bb | 4 +- .../libpipeline/libpipeline_1.5.0.bb | 14 - .../libpipeline/libpipeline_1.5.2.bb | 15 + ...1-Add-fallback-fopencookie-implementation.patch | 251 - ...es-to-internal-fopencookie-implementation.patch | 105 - .../0003-Fix-Dereference-of-null-pointer.patch | 33 - .../0004-Fix-Add-va_end-before-return.patch | 36 - .../libsolv/libsolv/0005-Fix-Memory-leaks.patch | 158 - .../libsolv/0006-Fix-testsolv-segfault.patch | 41 - .../libsolv/0007-Fix-testsolv-segfaults.patch | 47 - .../0008-Fix-Be-sure-that-NONBLOCK-is-set.patch | 37 - ...0009-Don-t-set-values-that-are-never-read.patch | 113 - .../recipes-extended/libsolv/libsolv_0.6.35.bb | 39 - .../recipes-extended/libsolv/libsolv_0.7.10.bb | 31 + .../libtirpc/libtirpc/libtirpc-1.0.4-rc1.patch | 103 - .../recipes-extended/libtirpc/libtirpc/musl.patch | 18 - .../recipes-extended/libtirpc/libtirpc_1.0.3.bb | 28 - .../recipes-extended/libtirpc/libtirpc_1.2.6.bb | 26 + .../lighttpd/lighttpd/fix-http-parseopts.patch | 51 - .../recipes-extended/lighttpd/lighttpd/lighttpd | 2 +- .../lighttpd/lighttpd/lighttpd.service | 12 - .../recipes-extended/lighttpd/lighttpd_1.4.51.bb | 86 - .../recipes-extended/lighttpd/lighttpd_1.4.55.bb | 83 + .../logrotate/act-as-mv-when-rotate.patch | 141 +- .../disable-check-different-filesystems.patch | 40 +- .../recipes-extended/logrotate/logrotate_3.14.0.bb | 99 - .../recipes-extended/logrotate/logrotate_3.15.1.bb | 92 + .../0001-Remove-timestamp-from-manpage.patch | 27 + ...elease-to-work-with-busybox-head-and-find.patch | 38 + .../meta/recipes-extended/lsb/lsb-release_1.4.bb | 37 + ...elease-to-work-with-busybox-head-and-find.patch | 38 - .../meta/recipes-extended/lsb/lsb/init-functions | 44 - .../meta/recipes-extended/lsb/lsb/lsb_killproc | 6 - .../meta/recipes-extended/lsb/lsb/lsb_log_message | 27 - .../meta/recipes-extended/lsb/lsb/lsb_pidofproc | 6 - .../meta/recipes-extended/lsb/lsb/lsb_start_daemon | 45 - external/poky/meta/recipes-extended/lsb/lsb_5.0.bb | 136 - ...void-exit-1-which-causes-init-scripts-to-.patch | 21 - .../lsb/lsbinitscripts/functions.patch | 33 - .../recipes-extended/lsb/lsbinitscripts_9.79.bb | 31 - .../meta/recipes-extended/lsb/lsbtest/LSB_Test.sh | 525 - .../recipes-extended/lsb/lsbtest/packages_list | 49 - .../poky/meta/recipes-extended/lsb/lsbtest/session | 176 - .../poky/meta/recipes-extended/lsb/lsbtest_1.0.bb | 49 - .../ltp/ltp/0001-Add-more-musl-exclusions.patch | 44 + ...-Add-option-to-select-libc-implementation.patch | 102 + .../ltp/ltp/0001-mmap15-mips64-return-EINVAL.patch | 41 - ...r.sh-use-ping-6-when-ping6-is-not-avaliab.patch | 45 - ..._testsuite-mmap24-2-Relax-condition-a-bit.patch | 68 - ...nfo01-recent-glibc-calls-syscall-directly.patch | 75 - ...eck-for-time64-unsafe-syscalls-before-usi.patch | 122 + ...ntl-make-OFD-command-use-fcntl64-syscall-.patch | 184 - ...__GLIBC_PREREQ-is-defined-before-using-it.patch | 55 + ...-Add-option-to-select-libc-implementation.patch | 149 - .../ltp/0004-guard-mallocopt-with-__GLIBC__.patch | 34 + ...rollers-Link-with-libfts-explicitly-on-mu.patch | 46 - .../ltp/ltp/0007-Fix-test_proc_kill-hanging.patch | 32 + ...RDSIZE-undeclared-when-building-with-musl.patch | 31 - ...__GLIBC_PREREQ-is-defined-before-using-it.patch | 283 - ...etwork-nfsv4-acl-acl1.c-Security-fix-on-s.patch | 42 + ...ition-of-struct-msgbuf-error-building-wit.patch | 36 - .../ltp/0018-guard-mallocopt-with-__GLIBC__.patch | 33 - ...define-getdents-getdents64-only-for-glibc.patch | 50 - ..._GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch | 73 - ...-Use-int-instead-of-enum-__ptrace_request.patch | 50 - ...gaction-rt_sigprocmark-Define-_GNU_SOURCE.patch | 70 - .../ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch | 31 - ...n.h-Use-sighandler_t-instead-of-__sighand.patch | 48 - .../ltp/ltp/0034-periodic_output.patch | 55 - .../ltp/ltp/0035-fix-test_proc_kill-hang.patch | 32 - ...etwork-nfsv4-acl-acl1.c-Security-fix-on-s.patch | 41 - ...s-ar01-Fix-for-test-in-deterministic-mode.patch | 252 - ...fine-FNM_EXTMATCH-if-not-already-like-und.patch | 44 - ...69-shmat-for-0-or-PAGESIZE-with-RND-flag-.patch | 97 - ...est06.c-Fix-too-small-name-string-and-rel.patch | 34 - ...skip-S_ISGID-check-on-files-created-by-no.patch | 81 - .../poky/meta/recipes-extended/ltp/ltp_20180515.bb | 127 - .../poky/meta/recipes-extended/ltp/ltp_20200120.bb | 122 + .../poky/meta/recipes-extended/lzip/lzip_1.20.bb | 41 - .../poky/meta/recipes-extended/lzip/lzip_1.21.bb | 41 + .../meta/recipes-extended/man-db/man-db_2.8.3.bb | 55 - .../meta/recipes-extended/man-db/man-db_2.9.0.bb | 59 + .../recipes-extended/man-pages/man-pages_4.16.bb | 36 - .../recipes-extended/man-pages/man-pages_5.05.bb | 37 + ...0001-Add-option-to-control-configure-args.patch | 99 + ...et-3629-configure.ac-drop-bundled-gettext.patch | 110 + .../meta/recipes-extended/mc/files/nomandate.patch | 21 + .../poky/meta/recipes-extended/mc/mc_4.8.21.bb | 49 - .../poky/meta/recipes-extended/mc/mc_4.8.23.bb | 56 + ...pute-abs-diff-in-a-standard-compliant-way.patch | 31 + .../mdadm/files/0001-Disable-gcc8-warnings.patch | 152 - ...th-of-corosync-and-dlm-header-files-check.patch | 21 +- ...s-wait-for-complete-rebuild-in-integrity-.patch | 53 + ...heck-for-implicit-fallthrough-warning-sup.patch | 11 +- .../0001-fix-gcc-8-format-truncation-warning.patch | 39 + ...ys-sysmacros.h-for-major-minor-defintions.patch | 48 - ...m-Add-Wimplicit-fallthrough-0-in-Makefile.patch | 37 - ...ption-y-for-use-syslog-to-recive-event-re.patch | 28 + .../0001-mdadm-skip-test-11spare-migration.patch | 43 + ...dadm.h-Undefine-dprintf-before-redefining.patch | 12 +- ...e-instead-of-memcpy-on-overlapping-region.patch | 31 - ...pecify-enough-length-when-write-to-buffer.patch | 75 - ...rintf-with-strncpy-at-some-places-to-avoi.patch | 59 - ...orced-type-conversion-to-avoid-truncation.patch | 33 - ...d-a-comment-to-indicate-valid-fallthrough.patch | 128 - .../mdadm/files/debian-no-Werror.patch | 25 + .../recipes-extended/mdadm/files/gcc-4.9.patch | 22 - .../mdadm/files/include_sysmacros.patch | 14 + .../mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch | 22 +- .../mdadm/files/mdadm-fix-ptest-build-errors.patch | 10 +- .../recipes-extended/mdadm/files/mdmonitor.service | 19 - .../meta/recipes-extended/mdadm/files/run-ptest | 18 +- .../poky/meta/recipes-extended/mdadm/mdadm_4.0.bb | 93 - .../poky/meta/recipes-extended/mdadm/mdadm_4.1.bb | 107 + .../meta/recipes-extended/msmtp/msmtp_1.6.6.bb | 30 - .../meta/recipes-extended/msmtp/msmtp_1.8.7.bb | 28 + ...refix-to-unsigned-long-long-constants-to-.patch | 381 + .../net-tools/net-tools_1.60-26.bb | 3 +- ...2-don-t-ignore-CFLAGS-when-building-snack.patch | 29 + .../newt/files/fix_SHAREDDIR.patch | 37 - .../recipes-extended/newt/files/pie-flags.patch | 36 - .../newt/libnewt-python_0.52.20.bb | 28 - .../meta/recipes-extended/newt/libnewt_0.52.20.bb | 54 - .../meta/recipes-extended/newt/libnewt_0.52.21.bb | 58 + .../packagegroups/packagegroup-core-base-utils.bb | 61 + .../packagegroup-core-full-cmdline.bb | 8 +- .../packagegroups/packagegroup-core-lsb.bb | 242 - .../recipes-extended/pam/libpam/fixsepbuild.patch | 24 - .../libpam-xtests-remove-bash-dependency.patch | 226 - .../pam/libpam/libpam-xtests.patch | 2 +- .../pam/libpam/pam.d/common-password | 5 +- .../poky/meta/recipes-extended/pam/libpam_1.3.0.bb | 166 - .../poky/meta/recipes-extended/pam/libpam_1.3.1.bb | 168 + .../0001-Include-fcntl.h-in-platform_defs.h.patch | 29 - ...-helper-scripts-used-only-in-tests-to-Pyt.patch | 23 +- ...need_charset_alias-when-building-for-musl.patch | 33 - ...se-read-only-when-probing-devices-on-linu.patch | 224 - ...ted-fs-add-sourcedir-lib-to-include-paths.patch | 26 + ...kip_-rather-than-skip_test_-which-is-unde.patch | 66 + .../meta/recipes-extended/parted/files/Makefile | 285 - .../files/fix-compile-failure-while-dis.patch | 57 - .../meta/recipes-extended/parted/files/run-ptest | 4 +- .../recipes-extended/parted/files/syscalls.patch | 55 - .../parted/parted/parted-3.2-sysmacros.patch | 32 - .../meta/recipes-extended/parted/parted_3.2.bb | 56 - .../meta/recipes-extended/parted/parted_3.3.bb | 59 + .../meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb | 2 +- .../perl/libconvert-asn1-perl_0.27.bb | 3 + .../recipes-extended/perl/libtimedate-perl_2.30.bb | 1 + .../perl/libxml-namespacesupport-perl_1.12.bb | 2 +- .../perl/libxml-sax-base-perl_1.09.bb | 4 +- .../recipes-extended/perl/libxml-sax-perl_1.00.bb | 32 - .../recipes-extended/perl/libxml-sax-perl_1.02.bb | 42 + .../poky/meta/recipes-extended/pigz/pigz_2.4.bb | 19 + .../procps/0001-Fix-out-of-tree-builds.patch | 24 - .../recipes-extended/procps/procps/sysctl.conf | 105 +- .../meta/recipes-extended/procps/procps_3.3.15.bb | 66 - .../meta/recipes-extended/procps/procps_3.3.16.bb | 76 + .../poky/meta/recipes-extended/psmisc/psmisc.inc | 1 - ...-create-src-directory-before-attempting-t.patch | 30 - ...001-Use-UINTPTR_MAX-instead-of-__WORDSIZE.patch | 14 +- .../meta/recipes-extended/psmisc/psmisc_23.1.bb | 10 - .../meta/recipes-extended/psmisc/psmisc_23.3.bb | 9 + .../meta/recipes-extended/quota/quota/fcntl.patch | 48 +- .../quota/quota/remove_non_posix_types.patch | 198 - .../quota/quota/replace_getrpcbynumber_r.patch | 32 - .../poky/meta/recipes-extended/quota/quota_4.04.bb | 38 - .../poky/meta/recipes-extended/quota/quota_4.05.bb | 34 + ...r-all-svc_getargs-calls-with-svc_freeargs.patch | 221 - .../rpcbind/0001-systemd-use-EnvironmentFile.patch | 42 + ...proc_dump-Fixed-typo-in-memory-leak-patch.patch | 30 - .../recipes-extended/rpcbind/rpcbind/rpcbind.conf | 2 +- .../rpcbind/rpcbind/rpcbind.service | 12 - .../rpcbind/rpcbind/rpcbind.socket | 8 - ..._callit_com-Stop-freeing-a-static-pointer.patch | 100 - .../meta/recipes-extended/rpcbind/rpcbind_0.2.4.bb | 66 - .../meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb | 52 + .../0001-Remove-more-compatibility-stuff.patch | 31 + ...c-fix-configure-failed-while-build-dir-ha.patch | 109 - .../Avoid-mis-identifying-systems-as-SVR4.patch | 57 - ...cross-compile-alternatives-for-AC_TRY_RUN.patch | 137 - .../Remove-redundant-compiler-sanity-checks.patch | 65 - ...t-file-system-checks-when-cross-compiling.patch | 135 - .../meta/recipes-extended/screen/screen_4.6.2.bb | 52 - .../meta/recipes-extended/screen/screen_4.8.0.bb | 50 + ...need_charset_alias-when-building-for-musl.patch | 33 - .../meta/recipes-extended/sed/sed-4.2.2/run-ptest | 3 - .../sed/sed-4.2.2/sed-add-ptest.patch | 66 - .../poky/meta/recipes-extended/sed/sed/run-ptest | 5 + .../poky/meta/recipes-extended/sed/sed_4.2.2.bb | 53 - external/poky/meta/recipes-extended/sed/sed_4.8.bb | 65 + .../0001-Disable-use-of-syslog-for-sysroot.patch | 18 +- ...-useradd-copy-extended-attributes-of-home.patch | 41 - ...-create-parent-directories-when-necessary.patch | 120 - ...-Allow-for-setting-password-in-clear-text.patch | 301 + .../allow-for-setting-password-in-clear-text.patch | 300 - ...fix-unexpected-open-failure-in-chroot-env.patch | 15 +- .../shadow/files/shadow-relaxed-usernames.patch | 51 +- .../recipes-extended/shadow/shadow-sysroot_4.6.bb | 6 +- .../poky/meta/recipes-extended/shadow/shadow.inc | 23 +- .../meta/recipes-extended/shadow/shadow_4.6.bb | 10 - .../meta/recipes-extended/shadow/shadow_4.8.1.bb | 10 + .../recipes-extended/slang/slang/array_test.patch | 20 + .../meta/recipes-extended/slang/slang_2.3.2.bb | 3 + ...erve-ownership-when-installing-example-jo.patch | 23 + .../stress-ng/stress-ng_0.11.01.bb | 25 + .../recipes-extended/stress/files/texinfo.patch | 80 - .../meta/recipes-extended/stress/stress_1.0.4.bb | 15 - external/poky/meta/recipes-extended/sudo/sudo.inc | 23 +- .../sudo/sudo/CVE-2019-14287_p1.patch | 170 - .../sudo/sudo/CVE-2019-14287_p2.patch | 98 - .../poky/meta/recipes-extended/sudo/sudo_1.8.23.bb | 42 - .../poky/meta/recipes-extended/sudo/sudo_1.8.31.bb | 48 + .../sysklogd/files/0001-Fix-build-with-musl.patch | 132 - ...-rarely-reproduced-parallel-build-problem.patch | 40 + ...s-that-causes-a-segmentation-fault-under-.patch | 28 - ...way-for-respecting-flags-from-environment.patch | 35 - .../recipes-extended/sysklogd/files/klogd.service | 13 - .../sysklogd/files/no-strip-install.patch | 17 - .../sysklogd/files/no-vectorization.patch | 20 - .../meta/recipes-extended/sysklogd/files/sysklogd | 38 +- .../recipes-extended/sysklogd/files/syslog.conf | 71 - .../sysklogd/files/syslogd.service | 14 - .../sysklogd/files/tmpfiles.sysklogd.conf | 1 - .../meta/recipes-extended/sysklogd/sysklogd.inc | 57 +- .../recipes-extended/sysklogd/sysklogd_1.5.1.bb | 4 - .../recipes-extended/sysklogd/sysklogd_2.1.1.bb | 3 + .../poky/meta/recipes-extended/sysstat/sysstat.inc | 44 +- .../0001-Include-needed-headers-explicitly.patch | 59 - ...1-configure.in-remove-check-for-chkconfig.patch | 31 + .../sysstat/sysstat/sysstat.service | 2 +- .../recipes-extended/sysstat/sysstat_11.7.4.bb | 8 - .../recipes-extended/sysstat/sysstat_12.2.1.bb | 8 + .../recipes-extended/tar/tar/CVE-2018-20482.patch | 405 - .../recipes-extended/tar/tar/CVE-2019-9923.patch | 38 - .../recipes-extended/tar/tar/remove-gets.patch | 29 - .../poky/meta/recipes-extended/tar/tar_1.30.bb | 72 - .../poky/meta/recipes-extended/tar/tar_1.32.bb | 66 + .../0001-Remove-fgets-extern-declaration.patch | 43 + .../tcp-wrappers-7.6/fix_warnings.patch | 25 + .../tcp-wrappers-7.6/fix_warnings2.patch | 200 + .../tcp-wrappers/tcp-wrappers_7.6.bb | 7 +- .../files/0001-Allow-compiling-out-of-source.patch | 39 - .../recipes-extended/texi2html/texi2html_5.0.bb | 31 - .../texinfo-dummy-native/texinfo-dummy-native.bb | 10 +- .../texinfo-dummy-native/texinfo-dummy/template.py | 86 +- ...need_charset_alias-when-building-for-musl.patch | 30 - .../texinfo/texinfo/dont-depend-on-help2man.patch | 23 +- .../texinfo/texinfo/link-zip.patch | 23 +- .../texinfo/texinfo/texinfo-4.12-zlib.patch | 38 +- .../meta/recipes-extended/texinfo/texinfo_6.5.bb | 90 - .../meta/recipes-extended/texinfo/texinfo_6.7.bb | 91 + .../meta/recipes-extended/timezone/timezone.inc | 12 +- .../poky/meta/recipes-extended/timezone/tzdata.bb | 25 +- .../poky/meta/recipes-extended/unzip/unzip_6.0.bb | 2 +- ...move-interdependencies-of-watchdog-and-wd.patch | 2 +- external/poky/meta/recipes-extended/wget/wget.inc | 22 +- ...need_charset_alias-when-building-for-musl.patch | 30 - .../wget/wget/0002-improve-reproducibility.patch | 9 +- .../wget/wget/CVE-2018-20483_p1.patch | 73 - .../wget/wget/CVE-2018-20483_p2.patch | 127 - .../recipes-extended/wget/wget/CVE-2019-5953.patch | 51 - .../poky/meta/recipes-extended/wget/wget_1.19.5.bb | 12 - .../poky/meta/recipes-extended/wget/wget_1.20.3.bb | 8 + .../recipes-extended/xdg-utils/xdg-utils_1.1.3.bb | 4 +- external/poky/meta/recipes-extended/xz/xz_5.2.4.bb | 8 +- .../zip/zip-3.0/10-remove-build-date.patch | 19 + .../zip-3.0/zipnote-crashes-with-segfault.patch | 22 + external/poky/meta/recipes-extended/zip/zip_3.0.bb | 5 +- .../recipes-gnome/epiphany/epiphany_3.28.3.1.bb | 22 - .../meta/recipes-gnome/epiphany/epiphany_3.34.4.bb | 21 + external/poky/meta/recipes-gnome/gcr/gcr_3.28.0.bb | 32 - external/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb | 35 + ...ple-of-decisions-around-cross-compilation.patch | 38 + ...-Fix-without-libtiff-not-having-an-effect.patch | 27 - ...-around-thumbnailer-cross-compile-failure.patch | 53 +- ...-Work-around-thumbnailer-cross-compile-fa.patch | 94 + .../0004-Do-not-run-tests-when-building.patch | 39 + ...humbnailer-and-tests-also-in-cross-builds.patch | 28 + .../extending-libinstall-dependencies.patch | 42 - .../gdk-pixbuf/gdk-pixbuf/fatal-loader.patch | 37 +- .../gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch | 33 - .../gdk-pixbuf/gdk-pixbuf/missing-test-data.patch | 30 + .../recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb | 102 - .../recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb | 132 + .../0001-Don-t-use-AC_CANONICAL_HOST.patch | 6 +- ...1-Run-installation-commands-as-shell-jobs.patch | 12 +- .../gnome/adwaita-icon-theme_3.28.0.bb | 38 - .../gnome/adwaita-icon-theme_3.34.3.bb | 41 + .../poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb | 10 +- ...t.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch | 40 - .../gnome/gnome-themes-standard_3.22.3.bb | 46 - .../libart_lgpl-2.3.21-crosscompile.patch | 84 - .../meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb | 22 - .../0001-Fix-build-reproducibility.patch | 50 + ...1-Port-cross-compilation-support-to-meson.patch | 163 + ...he-repository-directory-for-native-builds.patch | 22 +- ...ncomplete-upstream-attempt-at-cross-compi.patch | 48 - ...01-configure.ac-make-GIR_DIR-configurable.patch | 68 - ...ependency-for-g-ir-compiler-for-building-.patch | 33 + ...01-giscanner-add-a-lib-dirs-envvar-option.patch | 16 +- ...gnore-error-return-codes-from-ldd-wrapper.patch | 7 +- ....build-disable-tests-when-cross-compiling.patch | 26 + ...c-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch | 201 - .../0002-g-ir-tools-respect-gir_dir_prefix.patch | 76 - ...3-giscanner-add-use-binary-wrapper-option.patch | 8 +- ...04-giscanner-add-a-use-ldd-wrapper-option.patch | 10 +- ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch | 61 +- .../gobject-introspection_1.58.0.bb | 204 - .../gobject-introspection_1.62.0.bb | 210 + ...skip-gir-installation-for-cross-compiling.patch | 33 + .../gsettings-desktop-schemas_3.28.1.bb | 13 - .../gsettings-desktop-schemas_3.36.0.bb | 18 + external/poky/meta/recipes-gnome/gtk+/gtk+.inc | 107 - ...ok-into-HOME-when-looking-for-gtk-modules.patch | 29 - .../meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch | 22 - .../gtk+/gtk+/hardcoded_libtool.patch | 36 - .../gtk+/gtk+/strict-prototypes.patch | 24 - .../meta/recipes-gnome/gtk+/gtk+/toggle-font.diff | 102 - .../meta/recipes-gnome/gtk+/gtk+/xsettings.patch | 20 - external/poky/meta/recipes-gnome/gtk+/gtk+3.inc | 41 +- ...Do-not-try-to-initialize-GL-without-libGL.patch | 15 +- .../0003-Add-disable-opengl-configure-option.patch | 205 +- .../recipes-gnome/gtk+/gtk+3/link_fribidi.patch | 19 + .../recipes-gnome/gtk+/gtk+3/sort-resources.patch | 19 + .../poky/meta/recipes-gnome/gtk+/gtk+3_3.22.30.bb | 18 - .../poky/meta/recipes-gnome/gtk+/gtk+3_3.24.14.bb | 20 + .../poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb | 35 - .../gtk+/gtk-icon-utils-native_3.22.30.bb | 63 - ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 - .../gtk-doc/files/pkg-config-native.patch | 6 +- .../meta/recipes-gnome/gtk-doc/gtk-doc_1.29.bb | 50 - .../meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb | 62 + .../hicolor-icon-theme/hicolor-icon-theme_0.17.bb | 8 +- .../recipes-gnome/json-glib/json-glib/run-ptest | 3 + .../recipes-gnome/json-glib/json-glib_1.4.2.bb | 40 - .../recipes-gnome/json-glib/json-glib_1.4.4.bb | 33 + .../recipes-gnome/libdazzle/libdazzle_3.34.1.bb | 20 + .../meta/recipes-gnome/libgudev/libgudev_232.bb | 18 - .../meta/recipes-gnome/libgudev/libgudev_233.bb | 23 + .../recipes-gnome/libnotify/libnotify_0.7.7.bb | 21 - .../recipes-gnome/libnotify/libnotify_0.7.8.bb | 22 + ...detect-Bsymbolic-fixes-configure-on-macOS.patch | 35 + .../0001-Remove-non-reproducible-SRCDIR.patch | 30 + .../meta/recipes-gnome/librsvg/librsvg_2.40.20.bb | 17 +- .../recipes-gnome/libsecret/libsecret_0.18.6.bb | 22 - .../recipes-gnome/libsecret/libsecret_0.20.1.bb | 27 + .../cairo/cairo/0001-cairo-Fix-CVE-2017-9814.patch | 45 - .../cairo/cairo/CVE-2018-19876.patch | 34 + .../meta/recipes-graphics/cairo/cairo_1.14.12.bb | 89 - .../meta/recipes-graphics/cairo/cairo_1.16.0.bb | 96 + .../meta/recipes-graphics/clutter/clutter-1.0.inc | 9 +- .../recipes-graphics/clutter/clutter-gst-3.0.inc | 2 +- .../clutter/clutter-gst-3.0_3.0.26.bb | 7 - .../clutter/clutter-gst-3.0_3.0.27.bb | 7 + .../recipes-graphics/clutter/clutter-gtk-1.0.inc | 7 +- ...g-variable-for-enabling-disabling-introsp.patch | 37 + .../clutter/clutter-gtk-1.0_1.8.4.bb | 1 + .../poky/meta/recipes-graphics/cogl/cogl-1.0.inc | 15 +- ...Fix-an-incorrect-preprocessor-conditional.patch | 32 - ...ce-culling.c-fix-may-be-used-uninitialize.patch | 35 - .../meta/recipes-graphics/cogl/cogl-1.0_1.22.2.bb | 8 - .../meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb | 6 + .../recipes-graphics/drm/libdrm/musl-ioctl.patch | 35 - .../meta/recipes-graphics/drm/libdrm_2.4.101.bb | 59 + .../meta/recipes-graphics/drm/libdrm_2.4.94.bb | 60 - .../recipes-graphics/eglinfo/eglinfo-fb_1.0.0.bb | 7 - .../recipes-graphics/eglinfo/eglinfo-x11_1.0.0.bb | 13 - .../poky/meta/recipes-graphics/eglinfo/eglinfo.inc | 38 - ...GING_INCDIR-to-searchpath-for-egl-headers.patch | 34 - .../0001-Check-for-libegl-using-pkg-config.patch | 31 - .../poky/meta/recipes-graphics/eglinfo/files/waf | 169 - ...src-fcxml.c-avoid-double-free-of-filename.patch | 28 - .../fontconfig/revert-static-pkgconfig.patch | 12 +- .../fontconfig/fontconfig_2.12.6.bb | 64 - .../fontconfig/fontconfig_2.13.1.bb | 70 + .../freetype/freetype/use-right-libtool.patch | 2 +- .../recipes-graphics/freetype/freetype_2.10.1.bb | 47 + .../recipes-graphics/freetype/freetype_2.9.1.bb | 49 - .../poky/meta/recipes-graphics/glew/glew_2.1.0.bb | 44 - .../poky/meta/recipes-graphics/glew/glew_2.2.0.bb | 44 + .../recipes-graphics/harfbuzz/harfbuzz_1.8.8.bb | 46 - .../recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb | 41 + .../recipes-graphics/images/core-image-clutter.bb | 2 + .../recipes-graphics/images/core-image-weston.bb | 2 +- .../meta/recipes-graphics/images/core-image-x11.bb | 4 +- .../0001-libjpeg-turbo-fix-package_qa-error.patch | 28 +- ...bo-fix-wrongly-defined-define-HAVE_STDLIB.patch | 119 - .../jpeg/files/CVE-2020-13790.patch | 76 + .../recipes-graphics/jpeg/libjpeg-turbo_2.0.0.bb | 56 - .../recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb | 60 + ...-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch | 25 +- .../meta/recipes-graphics/kmscube/kmscube_git.bb | 11 +- ...-dispatch_common.h-define-also-EGL_NO_X11.patch | 26 + .../recipes-graphics/libepoxy/libepoxy_1.5.2.bb | 22 - .../recipes-graphics/libepoxy/libepoxy_1.5.4.bb | 43 + .../recipes-graphics/libfakekey/libfakekey_git.bb | 2 +- .../libmatchbox/libmatchbox_1.12.bb | 6 +- ...-Pass-tag-CC-explictly-when-using-libtool.patch | 73 - .../libsdl/libsdl-1.2.15/CVE-2019-7572.patch | 114 - .../libsdl/libsdl-1.2.15/CVE-2019-7574.patch | 68 - .../libsdl/libsdl-1.2.15/CVE-2019-7575.patch | 81 - .../libsdl/libsdl-1.2.15/CVE-2019-7576.patch | 80 - .../libsdl/libsdl-1.2.15/CVE-2019-7577.patch | 123 - .../libsdl/libsdl-1.2.15/CVE-2019-7578.patch | 64 - .../libsdl/libsdl-1.2.15/CVE-2019-7635.patch | 63 - .../libsdl/libsdl-1.2.15/CVE-2019-7637.patch | 192 - .../libsdl/libsdl-1.2.15/CVE-2019-7638.patch | 38 - .../libsdl-1.2.15/libsdl-1.2.15-xdata32.patch | 19 - .../libsdl/libsdl-1.2.15/pkgconfig.patch | 187 - .../meta/recipes-graphics/libsdl/libsdl_1.2.15.bb | 81 - ...01-GLES2-Get-sin-cos-out-of-vertex-shader.patch | 141 - .../libsdl2/libsdl2/more-gen-depends.patch | 37 +- .../recipes-graphics/libsdl2/libsdl2_2.0.12.bb | 81 + .../meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb | 69 - .../recipes-graphics/libva/libva-utils_2.2.0.bb | 32 - .../recipes-graphics/libva/libva-utils_2.6.0.bb | 32 + .../meta/recipes-graphics/libva/libva_2.2.0.bb | 46 - .../meta/recipes-graphics/libva/libva_2.6.1.bb | 43 + .../matchbox-session/matchbox-session_0.1.bb | 1 + .../matchbox-wm/0001-Fix-build-with-gcc-10.patch | 41 + .../matchbox-wm/matchbox-wm_1.2.2.bb | 3 +- .../files/0001-Support-gcc10-compilation.patch | 111 + .../menu-cache/menu-cache_1.0.2.bb | 18 - .../menu-cache/menu-cache_1.1.0.bb | 20 + .../0001-Simplify-wayland-scanner-lookup.patch | 39 - ...on-misdetects-64bit-atomics-on-mips-clang.patch | 27 + ...-check-for-all-linux-host_os-combinations.patch | 43 + .../0002-meson.build-make-TLS-ELF-optional.patch | 46 + .../0002-winsys-svga-drm-Include-sys-types.h.patch | 34 - ...0003-Allow-enable-DRI-without-DRI-drivers.patch | 46 + ...t-LLVM-version-when-using-LLVM-Git-releas.patch | 44 - ...-Enable-asm-unconditionally-now-that-gen_.patch | 147 + .../0004-Use-Python-3-to-execute-the-scripts.patch | 32 - .../0005-dri-i965-Add-missing-time.h-include.patch | 36 - ...max_t-for-formatted-output-of-timespec-me.patch | 53 + ...CK_VAR-for-defining-WAYLAND_PROTOCOLS_DAT.patch | 37 - .../meta/recipes-graphics/mesa/libglu_9.0.0.bb | 30 - .../meta/recipes-graphics/mesa/libglu_9.0.1.bb | 30 + .../0007-Install-few-more-test-programs.patch | 26 +- ...dd-few-missing-.glsl-.vert-.frag-files-to.patch | 20 +- ...glsl-perf-Install-.glsl-.vert-.frag-files.patch | 20 +- .../meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb | 59 - .../meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb | 59 + .../meta/recipes-graphics/mesa/mesa-gl_18.1.9.bb | 9 - .../meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb | 15 + external/poky/meta/recipes-graphics/mesa/mesa.inc | 161 +- .../poky/meta/recipes-graphics/mesa/mesa_18.1.9.bb | 21 - .../poky/meta/recipes-graphics/mesa/mesa_20.0.2.bb | 23 + external/poky/meta/recipes-graphics/mx/mx.inc | 2 +- .../packagegroups/packagegroup-core-clutter.bb | 2 +- .../packagegroups/packagegroup-core-x11-base.bb | 2 +- .../packagegroups/packagegroup-core-x11-xserver.bb | 2 +- .../packagegroups/packagegroup-core-x11.bb | 2 +- ...reation-of-docs-pango.types-it-is-build-c.patch | 147 - .../pango/0001-Fix-build-reproducibility.patch | 31 + .../pango/pango/CVE-2019-1010238.patch | 38 - .../meta/recipes-graphics/pango/pango_1.42.4.bb | 47 - .../meta/recipes-graphics/pango/pango_1.44.7.bb | 49 + ...e-FE_UPWARD-only-if-its-defined-in-fenv.h.patch | 54 - .../meta/recipes-graphics/piglit/piglit_git.bb | 31 +- .../recipes-graphics/pong-clock/pong-clock_1.0.bb | 2 +- .../startup-notification-0.12/time_t.patch | 108 + .../startup-notification_0.12.bb | 3 +- .../ttf-fonts/liberation-fonts_2.00.1.bb | 2 + .../ttf-fonts/ttf-bitstream-vera_1.10.bb | 2 +- ...Expand-libc-check-to-be-platform-OS-check.patch | 36 + ...son.build-use-python3-directly-for-python.patch | 27 + .../virglrenderer/virglrenderer_0.8.2.bb | 26 + ...-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch | 68 + ...s-github.com-assimp-assimp-issues-2733-up.patch | 1664 + .../meta/recipes-graphics/vulkan/assimp_4.1.0.bb | 20 - .../meta/recipes-graphics/vulkan/assimp_5.0.1.bb | 23 + ...ild-demos-with-questionably-licensed-data.patch | 21 +- .../recipes-graphics/vulkan/vulkan-demos_git.bb | 12 +- .../vulkan/vulkan-headers_1.1.126.0.bb | 18 + .../vulkan/vulkan-loader_1.1.126.0.bb | 38 + .../vulkan/vulkan-tools_1.1.126.0.bb | 31 + .../vulkan/demos-Don-t-build-tri-or-cube.patch | 128 - .../recipes-graphics/vulkan/vulkan_1.1.73.0.bb | 37 - ...-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch | 54 - .../meta/recipes-graphics/waffle/waffle_1.5.2.bb | 37 - .../meta/recipes-graphics/waffle/waffle_1.6.0.bb | 39 + .../wayland/libinput/determinism.patch | 21 + .../recipes-graphics/wayland/libinput_1.11.3.bb | 29 - .../recipes-graphics/wayland/libinput_1.15.2.bb | 40 + .../meta/recipes-graphics/wayland/mtdev_1.1.5.bb | 18 - .../meta/recipes-graphics/wayland/mtdev_1.1.6.bb | 18 + .../wayland/wayland-protocols_1.16.bb | 22 - .../wayland/wayland-protocols_1.20.bb | 22 + ...0001-build-Fix-strndup-detection-on-MinGW.patch | 34 + ...-add-missing-dependencies-on-protocol-hea.patch | 115 + ...-not-hardcode-the-path-to-wayland-scanner.patch | 26 + ...-find-the-native-wayland-scanner-directly.patch | 27 + .../wayland/wayland/fixpathinpcfiles.patch | 32 - .../recipes-graphics/wayland/wayland/run-ptest | 17 + .../recipes-graphics/wayland/wayland_1.16.0.bb | 44 - .../recipes-graphics/wayland/wayland_1.18.0.bb | 62 + .../meta/recipes-graphics/wayland/weston-conf.bb | 35 - .../meta/recipes-graphics/wayland/weston-init.bb | 38 +- .../wayland/weston-init/71-weston-drm.rules | 2 + .../wayland/weston-init/qemuall/weston.ini | 2 + .../wayland/weston-init/qemux86-64/weston.ini | 0 .../wayland/weston-init/qemux86/weston.ini | 0 .../wayland/weston-init/weston-start | 29 +- .../wayland/weston-init/weston.env | 0 .../wayland/weston-init/weston.ini | 75 + .../wayland/weston-init/weston.service | 13 - .../wayland/weston-init/weston@.service | 15 + .../wayland/weston/0001-make-error-portable.patch | 78 - ...ch-Provide-a-default-version-that-doesn-t.patch | 129 +- .../meta/recipes-graphics/wayland/weston_5.0.0.bb | 108 - .../meta/recipes-graphics/wayland/weston_8.0.0.bb | 112 + .../x11-common/xserver-nodm-init/capability.conf | 2 + .../x11-common/xserver-nodm-init/xserver-nodm | 8 + .../x11-common/xserver-nodm-init_3.0.bb | 9 +- ...rator.hh-Include-string-to-get-std-string.patch | 28 + .../xinput-calibrator/xinput-calibrator_git.bb | 6 +- .../recipes-graphics/xorg-app/mkfontdir_1.0.7.bb | 22 - .../recipes-graphics/xorg-app/mkfontscale_1.1.3.bb | 18 - .../recipes-graphics/xorg-app/mkfontscale_1.2.1.bb | 21 + .../recipes-graphics/xorg-app/x11perf_1.6.0.bb | 23 - .../recipes-graphics/xorg-app/x11perf_1.6.1.bb | 27 + .../meta/recipes-graphics/xorg-app/xauth_1.0.10.bb | 15 - .../meta/recipes-graphics/xorg-app/xauth_1.1.bb | 15 + .../recipes-graphics/xorg-app/xdpyinfo_1.3.2.bb | 2 +- .../recipes-graphics/xorg-app/xev/diet-x11.patch | 133 +- .../meta/recipes-graphics/xorg-app/xev_1.2.2.bb | 18 - .../meta/recipes-graphics/xorg-app/xev_1.2.3.bb | 18 + .../meta/recipes-graphics/xorg-app/xhost_1.0.7.bb | 20 - .../meta/recipes-graphics/xorg-app/xhost_1.0.8.bb | 20 + .../0001-Make-manpage-multilib-identical.patch | 28 + .../meta/recipes-graphics/xorg-app/xinit_1.4.0.bb | 20 - .../meta/recipes-graphics/xorg-app/xinit_1.4.1.bb | 22 + .../meta/recipes-graphics/xorg-app/xinput_1.6.2.bb | 12 - .../meta/recipes-graphics/xorg-app/xinput_1.6.3.bb | 12 + .../recipes-graphics/xorg-app/xkbcomp_1.4.2.bb | 17 - .../recipes-graphics/xorg-app/xkbcomp_1.4.3.bb | 19 + .../recipes-graphics/xorg-app/xmodmap_1.0.10.bb | 16 + .../recipes-graphics/xorg-app/xmodmap_1.0.9.bb | 17 - .../recipes-graphics/xorg-app/xorg-app-common.inc | 2 +- .../meta/recipes-graphics/xorg-app/xprop_1.2.3.bb | 18 - .../meta/recipes-graphics/xorg-app/xprop_1.2.4.bb | 18 + .../meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb | 15 - .../meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb | 17 + .../meta/recipes-graphics/xorg-app/xset_1.2.4.bb | 2 +- .../meta/recipes-graphics/xorg-app/xvinfo_1.1.3.bb | 14 - .../meta/recipes-graphics/xorg-app/xvinfo_1.1.4.bb | 14 + .../recipes-graphics/xorg-app/xwininfo_1.1.4.bb | 15 - .../recipes-graphics/xorg-app/xwininfo_1.1.5.bb | 15 + .../xorg-driver/xf86-input-libinput_0.28.0.bb | 11 - .../xorg-driver/xf86-input-libinput_0.29.0.bb | 11 + .../64bit_time_t_support.patch | 51 + .../xorg-driver/xf86-input-synaptics_1.9.1.bb | 2 + .../0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch | 116 - .../xorg-driver/xf86-video-intel/glibc.patch | 25 - .../xorg-driver/xf86-video-intel_git.bb | 9 +- .../0001-Refuse-to-run-on-UEFI-machines.patch | 52 + .../xorg-driver/xf86-video-vesa_2.4.0.bb | 4 + .../xorg-driver/xorg-driver-common.inc | 4 +- .../xorg-font/encodings/nocompiler.patch | 23 +- .../recipes-graphics/xorg-font/encodings_1.0.4.bb | 22 - .../recipes-graphics/xorg-font/encodings_1.0.5.bb | 25 + .../recipes-graphics/xorg-font/font-util_1.3.1.bb | 22 - .../recipes-graphics/xorg-font/font-util_1.3.2.bb | 22 + .../xorg-font/xorg-font-common.inc | 2 +- .../xorg-font/xorg-minimal-fonts.bb | 2 +- .../xorg-lib/files/libx11-whitespace.patch | 56 + .../recipes-graphics/xorg-lib/libfontenc_1.1.3.bb | 17 - .../recipes-graphics/xorg-lib/libfontenc_1.1.4.bb | 17 + .../xorg-lib/libice/CVE-2017-2626.patch | 149 - .../recipes-graphics/xorg-lib/libice_1.0.10.bb | 28 + .../meta/recipes-graphics/xorg-lib/libice_1.0.9.bb | 30 - .../0004-Don-t-include-sys-io.h-on-arm.patch | 28 - .../recipes-graphics/xorg-lib/libpciaccess_0.14.bb | 20 - .../recipes-graphics/xorg-lib/libpciaccess_0.16.bb | 19 + .../meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb | 31 - .../meta/recipes-graphics/xorg-lib/libsm_1.2.3.bb | 31 + .../0001-Drop-x11-dependencies.patch | 86 + .../xorg-lib/libx11-compose-data_1.6.8.bb | 36 + .../recipes-graphics/xorg-lib/libx11-diet_1.6.6.bb | 19 - .../poky/meta/recipes-graphics/xorg-lib/libx11.inc | 35 - .../libx11/Fix-hanging-issue-in-_XReply.patch | 28 +- .../xorg-lib/libx11/X18NCMSstubs.patch | 536 - .../xorg-lib/libx11/fix-disable-xlocale.patch | 33 - .../xorg-lib/libx11/fix-utf8-wrong-define.patch | 31 - .../meta/recipes-graphics/xorg-lib/libx11_1.6.6.bb | 14 - .../meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb | 46 + .../meta/recipes-graphics/xorg-lib/libxau_1.0.8.bb | 24 - .../meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb | 24 + .../libxcb/gcc-mips-pr68302-mips-workaround.patch | 22 - .../recipes-graphics/xorg-lib/libxcb_1.13.1.bb | 37 + .../meta/recipes-graphics/xorg-lib/libxcb_1.13.bb | 39 - .../xorg-lib/libxcomposite_0.4.4.bb | 28 - .../xorg-lib/libxcomposite_0.4.5.bb | 28 + .../recipes-graphics/xorg-lib/libxcursor_1.1.15.bb | 22 - .../recipes-graphics/xorg-lib/libxcursor_1.2.0.bb | 23 + .../recipes-graphics/xorg-lib/libxdamage_1.1.4.bb | 28 - .../recipes-graphics/xorg-lib/libxdamage_1.1.5.bb | 29 + .../recipes-graphics/xorg-lib/libxdmcp_1.1.2.bb | 29 - .../recipes-graphics/xorg-lib/libxdmcp_1.1.3.bb | 29 + .../recipes-graphics/xorg-lib/libxext_1.3.3.bb | 26 - .../recipes-graphics/xorg-lib/libxext_1.3.4.bb | 26 + .../recipes-graphics/xorg-lib/libxfont2_2.0.3.bb | 22 - .../recipes-graphics/xorg-lib/libxfont2_2.0.4.bb | 24 + .../meta/recipes-graphics/xorg-lib/libxft_2.3.2.bb | 33 - .../meta/recipes-graphics/xorg-lib/libxft_2.3.3.bb | 33 + .../meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb | 23 + .../meta/recipes-graphics/xorg-lib/libxi_1.7.9.bb | 22 - .../xorg-lib/libxkbcommon_0.10.0.bb | 27 + .../xorg-lib/libxkbcommon_0.8.2.bb | 22 - .../recipes-graphics/xorg-lib/libxkbfile_1.0.9.bb | 18 - .../recipes-graphics/xorg-lib/libxkbfile_1.1.0.bb | 18 + .../meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb | 35 - .../meta/recipes-graphics/xorg-lib/libxmu_1.1.3.bb | 34 + .../recipes-graphics/xorg-lib/libxpm_3.5.12.bb | 27 - .../recipes-graphics/xorg-lib/libxpm_3.5.13.bb | 27 + .../recipes-graphics/xorg-lib/libxrandr_1.5.1.bb | 23 - .../recipes-graphics/xorg-lib/libxrandr_1.5.2.bb | 23 + .../recipes-graphics/xorg-lib/libxshmfence_1.3.bb | 2 + ...il-don-t-link-makestrs-with-target-cflags.patch | 33 - .../xorg-lib/libxt/libxt_fix_for_x32.patch | 16 +- .../meta/recipes-graphics/xorg-lib/libxt_1.1.5.bb | 35 - .../meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb | 32 + .../recipes-graphics/xorg-lib/libxtst_1.2.3.bb | 1 + .../recipes-graphics/xorg-lib/libxvmc_1.0.10.bb | 19 - .../recipes-graphics/xorg-lib/libxvmc_1.0.12.bb | 19 + .../recipes-graphics/xorg-lib/libxxf86dga_1.1.4.bb | 19 - .../xorg-lib/libxxf86misc_1.0.4.bb | 19 - ...Check-for-FE_INVALID-definition-before-us.patch | 2 +- .../xorg-lib/pixman/asm_include.patch | 29 - .../recipes-graphics/xorg-lib/pixman_0.34.0.bb | 41 - .../recipes-graphics/xorg-lib/pixman_0.38.4.bb | 36 + .../meta/recipes-graphics/xorg-lib/xcb-util.inc | 2 +- .../xorg-lib/xkeyboard-config_2.24.bb | 32 - .../xorg-lib/xkeyboard-config_2.28.bb | 31 + .../recipes-graphics/xorg-lib/xorg-lib-common.inc | 3 +- .../meta/recipes-graphics/xorg-lib/xtrans_1.3.5.bb | 26 - .../meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb | 26 + .../recipes-graphics/xorg-proto/xcb-proto_1.13.bb | 26 +- .../xorg-proto/xorg-proto-common.inc | 26 - .../0001-Remove-libdir-specification.patch | 468 - .../xorg-proto/xorgproto/legacy.patch | 97 + .../xorg-proto/xorgproto_2018.4.bb | 16 - .../xorg-proto/xorgproto_2019.2.bb | 28 + .../recipes-graphics/xorg-util/makedepend_1.0.5.bb | 21 - .../recipes-graphics/xorg-util/makedepend_1.0.6.bb | 21 + .../xserver-xf86-config/qemumips/xorg.conf | 39 - .../xserver-xf86-config/qemumips64/xorg.conf | 39 - .../recipes-graphics/xorg-xserver/xserver-xorg.inc | 22 +- ...rmmode_display.c-add-missing-mi.h-include.patch | 23 + ...1-test-xtest-Initialize-array-with-braces.patch | 36 + .../xorg-xserver/xserver-xorg/CVE-2018-14665.patch | 62 - .../xserver-xorg/musl-arm-inb-outb.patch | 18 - .../xserver-xorg/sdksyms-no-build-path.patch | 50 + .../xorg-xserver/xserver-xorg_1.20.1.bb | 31 - .../xorg-xserver/xserver-xorg_1.20.7.bb | 34 + .../meta/recipes-graphics/xrestop/xrestop_0.4.bb | 2 +- .../xvideo-tests/xvideo-tests_git.bb | 18 - .../blktrace/make-btt-scripts-python3-ready.patch | 197 + .../meta/recipes-kernel/blktrace/blktrace_git.bb | 1 + .../cryptodev/cryptodev-linux_1.10.bb | 13 + .../cryptodev/cryptodev-linux_1.9.bb | 13 - .../cryptodev/cryptodev-module_1.10.bb | 17 + .../cryptodev/cryptodev-module_1.9.bb | 22 - .../cryptodev/cryptodev-tests_1.10.bb | 21 + .../cryptodev/cryptodev-tests_1.9.bb | 22 - .../meta/recipes-kernel/cryptodev/cryptodev.inc | 5 +- .../files/0001-Port-tests-to-openssl-1.1.patch | 103 - .../0001-ioctl.c-Fix-build-with-linux-4.13.patch | 49 - .../0001-ioctl.c-Fix-build-with-linux-4.17.patch | 43 - ...-split-big-function-to-simplify-maintaina.patch | 250 - ...g-relocate-code-to-simplify-later-patches.patch | 64 - ...ert-to-new-AEAD-interface-in-kernels-v4.2.patch | 102 - external/poky/meta/recipes-kernel/dtc/dtc.inc | 2 + external/poky/meta/recipes-kernel/dtc/dtc_1.4.7.bb | 10 - external/poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb | 10 + .../kern-tools/kern-tools-native_git.bb | 13 +- .../kexec-tools/0001-Disable-PIE-during-link.patch | 31 - ...or-Unhandled-rela-relocation-R_X86_64_PLT.patch | 41 - ...0001-powerpc-change-the-memory-size-limit.patch | 35 + .../0001-purgatory-Pass-r-directly-to-linker.patch | 32 - ...0002-powerpc-change-the-memory-size-limit.patch | 35 - .../0002-purgatory-Pass-r-directly-to-linker.patch | 29 + ...-ARM-Fix-add_buffer_phys_virt-align-issue.patch | 49 + ...support-to-build-kexec-tools-with-x32-ABI.patch | 93 + .../kexec-tools/0005-Disable-PIE-during-link.patch | 28 + ...arm-undefine-__NR_kexec_file_load-for-arm.patch | 40 + ...07-kexec-un-break-the-build-on-32-bit-x86.patch | 42 + ...-ARM-Fix-add_buffer_phys_virt-align-issue.patch | 52 - .../kexec/kexec-tools/kexec-x32.patch | 88 - .../recipes-kernel/kexec/kexec-tools_2.0.17.bb | 88 - .../recipes-kernel/kexec/kexec-tools_2.0.20.bb | 89 + .../meta/recipes-kernel/kmod/kmod-native_git.bb | 3 - external/poky/meta/recipes-kernel/kmod/kmod.inc | 12 +- .../kmod/kmod/0001-build-Stop-using-dolt.patch | 28 + ...alling-bswap_-instead-of-htobe-and-be-toh.patch | 39 - .../kmod/kmod/avoid_parallel_tests.patch | 20 +- .../recipes-kernel/kmod/kmod/fix-O_CLOEXEC.patch | 35 - .../linux-firmware/linux-firmware_20200619.bb | 951 + .../linux-firmware/linux-firmware_git.bb | 937 - .../linux-libc-headers/linux-libc-headers.inc | 4 +- ...move-muslc-ethhdr-protection-to-uapi-file.patch | 31 - ...all_headers.sh-Strip-_UAPI-from-if-define.patch | 38 + ...-fixed-input-and-output-files-instead-of-.patch | 67 + ...t.h-prevent-redefinition-of-struct-ethhdr.patch | 30 - .../linux-libc-headers/linux-libc-headers_4.18.bb | 13 - .../linux-libc-headers/linux-libc-headers_5.4.bb | 16 + .../meta/recipes-kernel/linux/kernel-devsrc.bb | 71 +- .../poky/meta/recipes-kernel/linux/linux-dtb.inc | 3 - .../poky/meta/recipes-kernel/linux/linux-dummy.bb | 5 + .../meta/recipes-kernel/linux/linux-yocto-dev.bb | 12 +- .../recipes-kernel/linux/linux-yocto-rt_4.14.bb | 41 - .../recipes-kernel/linux/linux-yocto-rt_4.18.bb | 43 - .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 44 + .../recipes-kernel/linux/linux-yocto-tiny_4.14.bb | 28 - .../recipes-kernel/linux/linux-yocto-tiny_4.18.bb | 32 - .../recipes-kernel/linux/linux-yocto-tiny_5.4.bb | 32 + .../poky/meta/recipes-kernel/linux/linux-yocto.inc | 25 +- .../meta/recipes-kernel/linux/linux-yocto_4.14.bb | 47 - .../meta/recipes-kernel/linux/linux-yocto_4.18.bb | 48 - .../meta/recipes-kernel/linux/linux-yocto_5.4.bb | 54 + .../meta/recipes-kernel/lttng/babeltrace/run-ptest | 9 + .../0001-Make-manpages-multilib-identical.patch | 28 + .../0001-fs.c-initialize-other_entry.patch | 33 + ...s-do-not-run-test-applications-from-.libs.patch | 28 + .../recipes-kernel/lttng/babeltrace2/run-ptest | 9 + .../meta/recipes-kernel/lttng/babeltrace2_2.0.2.bb | 94 + .../meta/recipes-kernel/lttng/babeltrace_1.5.6.bb | 20 - .../meta/recipes-kernel/lttng/babeltrace_1.5.8.bb | 98 + ...trfs-Remove-unnecessary-fs_info-parameter.patch | 116 - .../recipes-kernel/lttng/lttng-modules_2.10.9.bb | 36 - .../recipes-kernel/lttng/lttng-modules_2.11.2.bb | 43 + ...ow-multiple-attempts-to-connect-to-relayd.patch | 42 - .../0001-tests-do-not-strip-a-helper-library.patch | 27 + ...s-regression-disable-the-tools-live-tests.patch | 34 + .../recipes-kernel/lttng/lttng-tools/run-ptest | 2 +- .../recipes-kernel/lttng/lttng-tools/x32.patch | 28 +- .../recipes-kernel/lttng/lttng-tools_2.11.2.bb | 166 + .../recipes-kernel/lttng/lttng-tools_2.9.11.bb | 134 - ...gust-Makefile.am-Add-install-lib-to-setup.patch | 31 + .../lttng-ust/lttng-ust-doc-examples-disable.patch | 17 - .../meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb | 37 - .../meta/recipes-kernel/lttng/lttng-ust_2.11.1.bb | 51 + .../make-mod-scripts/make-mod-scripts_1.0.bb | 11 +- .../modutils-initscripts/modutils-initscripts.bb | 2 +- external/poky/meta/recipes-kernel/perf/perf.bb | 38 +- .../0001-wakeup_xxx.h-include-limits.h.patch | 55 + .../meta/recipes-kernel/powertop/powertop_2.10.bb | 31 + .../meta/recipes-kernel/powertop/powertop_2.9.bb | 33 - ...d-anything-in-help-as-it-requires-itstool.patch | 27 - ...0001-fix-non-literal-format-string-issues.patch | 34 - .../sysprof/files/define-NT_GNU_BUILD_ID.patch | 22 - .../recipes-kernel/sysprof/files/wordsize.patch | 38 - .../meta/recipes-kernel/sysprof/sysprof_3.30.0.bb | 35 - ...apbpf-don-t-support-installing-a-non-root.patch | 47 +- .../configure-allow-to-disable-libvirt.patch | 39 - .../systemtap/systemtap/monitor-option.patch | 37 - .../systemtap/systemtap/no-msgfmt-check.patch | 33 - .../systemtap/systemtap/x32_abi_time.patch | 34 - .../meta/recipes-kernel/systemtap/systemtap_git.bb | 11 +- .../recipes-kernel/systemtap/systemtap_git.inc | 8 +- .../wireless-regdb/wireless-regdb_2020.04.29.bb | 43 + ...1-Fix-alsa-sound-.h-for-external-programs.patch | 7104 + ...gure.ac-remove-an-unnecessary-libtool-fix.patch | 50 + ...001-uapi-Move-typedefs-from-uapi-to-sound.patch | 137 + ...e-strncmp-to-avoid-access-out-of-boundary.patch | 41 + ...always-at-least-NULL-if-no-list-is-availa.patch | 45 + .../0003-namehint-correct-the-args-check.patch | 34 + ...prove-the-previous-patch-check-the-return.patch | 31 + ...fail-to-parse-configs-on-cards-with-an-em.patch | 86 + .../meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb | 41 - .../recipes-multimedia/alsa/alsa-lib_1.2.1.2.bb | 52 + .../recipes-multimedia/alsa/alsa-plugins_1.1.6.bb | 103 - .../recipes-multimedia/alsa/alsa-plugins_1.2.1.bb | 173 + ...g-Wreserved-user-defined-literal-warnings.patch | 34 - .../recipes-multimedia/alsa/alsa-tools/musl.patch | 47 - .../recipes-multimedia/alsa/alsa-tools_1.1.6.bb | 87 - .../recipes-multimedia/alsa/alsa-tools_1.1.7.bb | 86 + .../alsa/alsa-topology-conf_1.2.1.bb | 22 + .../alsa/alsa-ucm-conf_1.2.1.2.bb | 23 + .../alsa/alsa-utils-scripts_1.1.6.bb | 25 - .../alsa/alsa-utils-scripts_1.2.1.bb | 25 + .../recipes-multimedia/alsa/alsa-utils_1.1.6.bb | 107 - .../recipes-multimedia/alsa/alsa-utils_1.2.1.bb | 105 + .../ffmpeg/ffmpeg/CVE-2018-15822.patch | 37 - .../meta/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb | 158 - .../meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.2.bb | 160 + .../flac/flac/CVE-2017-6888.patch | 37 - .../meta/recipes-multimedia/flac/flac_1.3.2.bb | 46 - .../meta/recipes-multimedia/flac/flac_1.3.3.bb | 46 + ...connect-has-a-different-signature-on-musl.patch | 38 - ...inloader.c-when-env-var-is-set-do-not-fal.patch | 35 - ...on.m4-prefix-pkgconfig-paths-with-PKG_CON.patch | 40 - .../files/add-a-target-to-compile-tests.patch | 69 - .../gstreamer/files/gtk-doc-tweaks.patch | 47 - .../recipes-multimedia/gstreamer/files/run-ptest | 3 - .../gstreamer/gst-examples_1.16.0.bb | 31 + .../gstreamer/gst-examples_git.bb | 32 - .../gstreamer/gst-plugins-package.inc | 56 - ...connect-has-a-different-signature-on-musl.patch | 38 + .../gstreamer/gst-validate_1.14.4.bb | 25 - .../gstreamer/gst-validate_1.16.2.bb | 25 + ...-Disable-yasm-for-libav-when-disable-yasm.patch | 33 - .../0001-configure-check-for-armv7ve-variant.patch | 35 - .../0001-fix-host-contamination.patch | 36 - .../gstreamer1.0-libav/mips64_cpu_detection.patch | 32 - ...ound-to-build-gst-libav-for-i586-with-gcc.patch | 26 - .../gstreamer/gstreamer1.0-libav_1.14.4.bb | 70 - .../gstreamer/gstreamer1.0-libav_1.16.2.bb | 35 + .../gstreamer/gstreamer1.0-omx_1.14.4.bb | 57 - .../gstreamer/gstreamer1.0-omx_1.16.2.bb | 47 + ...-don-t-hardcode-libtool-name-when-running.patch | 43 - ...-gir-even-when-cross-compiling-if-introsp.patch | 36 + .../avoid-including-sys-poll.h-directly.patch | 2 +- .../configure-allow-to-disable-libssh2.patch | 61 - ...valid-sentinels-for-gst_structure_get-etc.patch | 8 +- ...itialized-warnings-when-compiling-with-Os.patch | 2 +- ...lve-missing-opencv-data-dir-in-yocto-buil.patch | 49 + .../gstreamer/gstreamer1.0-plugins-bad_1.14.4.bb | 148 - .../gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb | 147 + ...-don-t-hardcode-libtool-name-when-running.patch | 167 - ...gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch | 29 - ...-gir-even-when-cross-compiling-if-introsp.patch | 36 + ...-prefix-calls-to-pkg-config-with-PKG_CONF.patch | 302 - .../0002-meson-Add-variables-for-gir-files.patch | 235 + ...ssing-include-directories-when-calling-in.patch | 26 - ...ncorrect-reference-to-gstreamer-sdp-in-Ma.patch | 25 - ...005-viv-fb-Make-sure-config.h-is-included.patch | 32 + .../0009-glimagesink-Downrank-to-marginal.patch | 2 +- ...ch-for-explicitely-enabling-disabling-GBM.patch | 70 - ...ches-for-explicitely-enabling-disabling-P.patch | 109 - .../gstreamer1.0-plugins-base/CVE-2019-9928.patch | 33 - .../link-with-libvchostif.patch | 45 - ...make-gio_unix_2_0-dependency-configurable.patch | 45 - .../gstreamer/gstreamer1.0-plugins-base_1.14.4.bb | 77 - .../gstreamer/gstreamer1.0-plugins-base_1.16.2.bb | 99 + .../gstreamer/gstreamer1.0-plugins-common.inc | 50 + ...ay-set-dafault-value-for-MPEG4-without-co.patch | 62 - ...e-Qt-defines-GLsync-to-fix-compile-on-som.patch | 70 + ...ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch | 56 + .../avoid-including-sys-poll.h-directly.patch | 44 - ...sure-valid-sentinel-for-gst_structure_get.patch | 40 - .../gstreamer/gstreamer1.0-plugins-good_1.14.4.bb | 79 - .../gstreamer/gstreamer1.0-plugins-good_1.16.2.bb | 70 + .../gstreamer/gstreamer1.0-plugins-packaging.inc | 70 + .../gstreamer/gstreamer1.0-plugins-ugly_1.14.4.bb | 40 - .../gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb | 39 + .../gstreamer/gstreamer1.0-plugins.inc | 41 - .../gstreamer/gstreamer1.0-ptest.inc | 23 + ...01-meson.build-fix-builds-with-python-3.8.patch | 24 + .../gstreamer/gstreamer1.0-python_1.14.4.bb | 39 - .../gstreamer/gstreamer1.0-python_1.16.2.bb | 37 + ...ode-libtool-name-when-using-introspection.patch | 27 - ...-gir-even-when-cross-compiling-if-introsp.patch | 36 + .../gstreamer/gstreamer1.0-rtsp-server_1.14.4.bb | 35 - .../gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb | 31 + ...akefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch | 33 - .../0001-vaapsink-downgrade-to-marginal.patch | 4 +- .../gstreamer/gstreamer1.0-vaapi_1.14.4.bb | 49 - .../gstreamer/gstreamer1.0-vaapi_1.16.2.bb | 57 + ...inloader.c-when-env-var-is-set-do-not-fal.patch | 35 + ...-gir-even-when-cross-compiling-if-introsp.patch | 36 + .../0003-meson-Add-valgrind-feature.patch | 74 + ...0004-meson-Add-option-for-installed-tests.patch | 257 + .../gstreamer/gstreamer1.0/capfix.patch | 37 + .../gstreamer/gstreamer1.0_1.14.4.bb | 90 - .../gstreamer/gstreamer1.0_1.16.2.bb | 77 + .../libid3tag/libid3tag/10_utf16.dpatch | 33 - .../libid3tag/libid3tag/10_utf16.patch | 34 + .../libid3tag/libid3tag/unknown-encoding.patch | 39 + .../libid3tag/libid3tag_0.15.1b.bb | 3 +- .../meta/recipes-multimedia/libogg/libogg_1.3.3.bb | 17 - .../meta/recipes-multimedia/libogg/libogg_1.3.4.bb | 17 + .../recipes-multimedia/libomxil/libomxil_0.9.3.bb | 2 + .../libpng/libpng/CVE-2019-7317.patch | 20 - .../recipes-multimedia/libpng/libpng_1.6.36.bb | 32 - .../recipes-multimedia/libpng/libpng_1.6.37.bb | 32 + .../libsndfile/libsndfile1_1.0.28.bb | 13 +- .../libtheora/libtheora_1.1.1.bb | 2 +- .../libtiff/files/CVE-2017-17095.patch | 46 - .../libtiff/files/CVE-2017-18013.patch | 42 - .../libtiff/files/CVE-2017-9935.patch | 160 - .../libtiff/files/CVE-2018-10963.patch | 39 - .../libtiff/files/CVE-2018-5784.patch | 135 - .../libtiff/files/CVE-2018-7456.patch | 178 - .../libtiff/files/CVE-2018-8905.patch | 61 - .../libtiff/files/libtool2.patch | 19 - .../meta/recipes-multimedia/libtiff/tiff_4.0.9.bb | 59 - .../meta/recipes-multimedia/libtiff/tiff_4.1.0.bb | 50 + .../libvorbis/libvorbis_1.3.6.bb | 2 +- ...ision-1206-from-upstream-to-fix-PIE-build.patch | 156 + .../mpeg2dec/files/61_global-symbol-test.patch | 70 + .../recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb | 2 + .../recipes-multimedia/mpg123/mpg123/sdl2.patch | 14 + .../recipes-multimedia/mpg123/mpg123_1.25.10.bb | 50 - .../recipes-multimedia/mpg123/mpg123_1.25.13.bb | 51 + .../recipes-multimedia/pulseaudio/pulseaudio.inc | 74 +- ...1-remap-arm-Adjust-inline-asm-constraints.patch | 114 + ...lay-CLFAGS-to-improve-reproducibility-bui.patch | 30 + .../pulseaudio/pulseaudio_12.2.bb | 13 - .../pulseaudio/pulseaudio_13.0.bb | 15 + .../poky/meta/recipes-multimedia/sbc/sbc_1.3.bb | 23 - .../poky/meta/recipes-multimedia/sbc/sbc_1.4.bb | 23 + .../meta/recipes-multimedia/speex/speex_1.2.0.bb | 2 +- ...ely-on-HAVE_STDINT_H-et-al.-being-defined.patch | 63 - .../recipes-multimedia/speex/speexdsp_1.2.0.bb | 27 + .../recipes-multimedia/speex/speexdsp_1.2rc3.bb | 39 - .../meta/recipes-multimedia/webp/libwebp_1.0.0.bb | 53 - .../meta/recipes-multimedia/webp/libwebp_1.1.0.bb | 56 + .../x264/x264/Fix-X32-build-by-disabling-asm.patch | 14 +- .../poky/meta/recipes-multimedia/x264/x264_git.bb | 8 +- .../meta/recipes-rt/images/core-image-rt-sdk.bb | 2 +- .../poky/meta/recipes-rt/images/core-image-rt.bb | 2 +- .../meta/recipes-rt/rt-tests/files/rt_bmark.py | 6 +- ...0001-gzip-with-n-for-build-reproducibilty.patch | 62 + .../poky/meta/recipes-rt/rt-tests/rt-tests.inc | 4 +- .../poky/meta/recipes-rt/rt-tests/rt-tests_1.1.bb | 7 +- .../images/core-image-sato-ptest-fast.bb | 19 + .../images/core-image-sato-sdk-ptest.bb | 16 +- .../meta/recipes-sato/images/core-image-sato.bb | 3 + .../poky/meta/recipes-sato/l3afpad/l3afpad_git.bb | 2 +- .../matchbox-config-gtk/matchbox-config-gtk_0.2.bb | 2 +- .../matchbox-desktop/matchbox-desktop_2.2.bb | 2 +- .../matchbox-keyboard/matchbox-keyboard_0.1.1.bb | 2 +- .../matchbox-panel-2/matchbox-panel-2_2.11.bb | 2 +- .../matchbox-sato/matchbox-session-sato_0.1.bb | 2 +- .../matchbox-terminal/matchbox-terminal_0.2.bb | 2 +- .../matchbox-theme-sato/matchbox-theme-sato.inc | 2 +- .../packagegroups/packagegroup-core-x11-sato.bb | 2 +- .../meta/recipes-sato/pcmanfm/pcmanfm_1.3.0.bb | 40 - .../meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb | 40 + .../files/0001-Use-labs-instead-of-abs.patch | 46 - ...1-palisade-Fix-warnings-with-clang-on-arm.patch | 24 +- ...hange-string-lenght-parameter-to-be-size_.patch | 34 + .../fix-compiling-failure-with-option-g-O.patch | 23 +- .../puzzles/files/fix-ki-uninitialized.patch | 25 + .../poky/meta/recipes-sato/puzzles/puzzles_git.bb | 9 +- .../sato-screenshot/sato-screenshot_0.3.bb | 2 +- .../settings-daemon/settings-daemon_0.0.2.bb | 2 +- .../meta/recipes-sato/webkit/libwpe_1.4.0.1.bb | 17 + .../0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch | 45 + ...gData-has-no-member-named-lightVector-on-.patch | 37 - .../webkitgtk/0001-Fix-build-with-musl.patch | 46 +- ...c-settings-so-that-gtkdoc-generation-work.patch | 37 +- ...bKitMacros-Append-to-I-and-not-to-isystem.patch | 125 - ...ng-introspection-files-add-CMAKE_C_FLAGS-.patch | 26 +- .../0001-webkitgtk-fix-CVE-2017-17821.patch | 44 - .../0012-soup-Forward-declare-URL-class.patch | 31 - .../webkit/webkitgtk/CVE-2020-13753.patch | 15 + .../webkit/webkitgtk/detect-gstreamer-gl.patch | 20 - .../webkit/webkitgtk/include_array.patch | 15 + .../webkit/webkitgtk/x32_support.patch | 30 - .../meta/recipes-sato/webkit/webkitgtk_2.20.5.bb | 124 - .../meta/recipes-sato/webkit/webkitgtk_2.28.2.bb | 133 + .../recipes-sato/webkit/wpebackend-fdo_1.4.1.bb | 17 + .../meta/recipes-support/apr/apr-util_1.6.1.bb | 11 +- ...d-option-to-disable-timed-dependant-tests.patch | 69 + ...d-buildcheck.sh-improve-libtool-detection.patch | 32 - ..._t-size-doesn-t-match-in-glibc-when-cross.patch | 26 +- .../apr/0008-apr-fix-ptest-hang-in-teststr.patch | 32 - .../recipes-support/apr/apr/libtoolize_check.patch | 28 + .../poky/meta/recipes-support/apr/apr_1.6.3.bb | 118 - .../poky/meta/recipes-support/apr/apr_1.7.0.bb | 120 + .../meta/recipes-support/aspell/aspell/gcc7.patch | 40 - .../meta/recipes-support/aspell/aspell_0.60.6.1.bb | 34 - .../meta/recipes-support/aspell/aspell_0.60.8.bb | 30 + ...est_util.h-add-missing-sys-time.h-include.patch | 61 + .../meta/recipes-support/atk/at-spi2-atk_2.26.2.bb | 20 - .../meta/recipes-support/atk/at-spi2-atk_2.34.1.bb | 22 + .../0001-Fix-source-reproducibility.patch | 32 + .../recipes-support/atk/at-spi2-core_2.28.0.bb | 39 - .../recipes-support/atk/at-spi2-core_2.34.0.bb | 37 + .../0001-Switch-from-filename-to-basename.patch | 38 - ...ld-enable-introspection-for-cross-compile.patch | 28 - .../poky/meta/recipes-support/atk/atk_2.28.1.bb | 37 - .../poky/meta/recipes-support/atk/atk_2.34.1.bb | 21 + .../acl/0001-test-patch-out-failing-bits.patch | 63 + ...t-hardcode-the-build-path-into-a-helper-l.patch | 24 + .../Makefile-libacl-should-depend-on-include.patch | 51 - ...x-the-order-of-expected-output-of-getfacl.patch | 198 - .../meta/recipes-support/attr/acl/configure.ac | 49 - .../poky/meta/recipes-support/attr/acl/run-ptest | 60 +- .../attr/acl/test-fix-directory-permissions.patch | 37 - .../acl/test-fix-insufficient-quoting-of.patch | 100 - ...ps-on-SELinux-machines-for-root-testcases.patch | 84 - .../poky/meta/recipes-support/attr/acl_2.2.52.bb | 55 - .../poky/meta/recipes-support/attr/acl_2.2.53.bb | 74 + external/poky/meta/recipes-support/attr/attr.inc | 57 +- .../attr/0001-Use-stdint-types-consistently.patch | 69 - .../attr/attr/attr-Missing-configure.ac.patch | 63 - .../attr/attr/dont-use-decl-macros.patch | 56 - .../poky/meta/recipes-support/attr/attr/run-ptest | 3 + .../poky/meta/recipes-support/attr/attr_2.4.47.bb | 15 - .../poky/meta/recipes-support/attr/attr_2.4.48.bb | 6 + external/poky/meta/recipes-support/attr/ea-acl.inc | 52 - ...gure-option-to-enable-disable-static-libr.patch | 70 - ...ve-the-attr.5-man-page-moved-to-man-pages.patch | 240 - .../files/Remove-the-section-2-man-pages.patch | 666 - .../attr/files/relative-libdir.patch | 25 - .../poky/meta/recipes-support/attr/files/run-ptest | 5 - .../bash-completion/bash-completion_2.10.bb | 37 + .../bash-completion/bash-completion_2.8.bb | 42 - .../recipes-support/bmap-tools/bmap-tools_3.4.bb | 24 - .../recipes-support/bmap-tools/bmap-tools_3.5.bb | 25 + .../recipes-support/boost/bjam-native_1.68.0.bb | 19 - .../recipes-support/boost/bjam-native_1.72.0.bb | 20 + .../meta/recipes-support/boost/boost-1.68.0.inc | 21 - .../meta/recipes-support/boost/boost-1.72.0.inc | 21 + external/poky/meta/recipes-support/boost/boost.inc | 12 +- ...p-arch-instruction-set-flags-we-do-that-o.patch | 153 + .../boost/0001-added-typedef-executor_type.patch | 54 + .../0001-dont-setup-compiler-flags-m32-m64.patch | 42 + ...p-arch-instruction-set-flags-we-do-that-o.patch | 151 - ...ucibility-add-file-directive-to-assembler.patch | 243 - .../meta/recipes-support/boost/boost_1.68.0.bb | 11 - .../meta/recipes-support/boost/boost_1.72.0.bb | 12 + .../files/0001-Build-debug-version-of-bjam.patch | 38 + ...build.sh-use-DNDEBUG-also-in-debug-builds.patch | 27 + .../0001-revert-cease-dependence-on-range.patch | 53 + .../boost/files/bjam-native-build-bjam.debug.patch | 50 - .../0001-certdata2pem.py-use-python3.patch | 37 + .../ca-certificates/ca-certificates_20190110.bb | 9 +- .../recipes-support/consolekit/consolekit_0.4.6.bb | 6 +- .../recipes-support/curl/curl/CVE-2018-14618.patch | 37 - .../recipes-support/curl/curl/CVE-2018-16839.patch | 35 - .../recipes-support/curl/curl/CVE-2018-16840.patch | 43 - .../recipes-support/curl/curl/CVE-2018-16842.patch | 35 - .../recipes-support/curl/curl/CVE-2018-16890.patch | 50 - .../recipes-support/curl/curl/CVE-2019-3822.patch | 47 - .../recipes-support/curl/curl/CVE-2019-3823.patch | 55 - .../recipes-support/curl/curl/CVE-2019-5435.patch | 200 - .../recipes-support/curl/curl/CVE-2019-5436.patch | 32 - .../recipes-support/curl/curl/CVE-2019-5482.patch | 68 - .../recipes-support/curl/curl/CVE-2020-8169.patch | 140 + .../recipes-support/curl/curl/CVE-2020-8177.patch | 67 + .../poky/meta/recipes-support/curl/curl_7.61.0.bb | 89 - .../poky/meta/recipes-support/curl/curl_7.69.1.bb | 82 + ...compatibility-by-renaming-atomic_init-API.patch | 147 + .../db/0001-clock-Do-not-define-own-timespec.patch | 45 + external/poky/meta/recipes-support/db/db_5.3.28.bb | 17 +- .../debianutils/debianutils_4.8.6.bb | 55 - .../debianutils/debianutils_4.9.1.bb | 55 + .../recipes-support/diffoscope/diffoscope_136.bb | 18 + .../recipes-support/dos2unix/dos2unix_7.4.0.bb | 35 - .../recipes-support/dos2unix/dos2unix_7.4.1.bb | 34 + .../meta/recipes-support/enchant/enchant2_2.2.8.bb | 29 + .../meta/recipes-support/enchant/enchant_1.6.0.bb | 34 - .../recipes-support/fribidi/fribidi/meson.patch | 44 - .../meta/recipes-support/fribidi/fribidi_1.0.5.bb | 17 - .../meta/recipes-support/fribidi/fribidi_1.0.9.bb | 17 + .../gdbm-fix-link-failure-against-gcc-10.patch | 47 + .../poky/meta/recipes-support/gdbm/gdbm_1.18.1.bb | 44 + .../poky/meta/recipes-support/gdbm/gdbm_1.18.bb | 43 - ...user-provided-flags-to-the-auto-detected-.patch | 61 - ...re.ac-Believe-the-cflags-from-environment.patch | 49 - .../meta/recipes-support/gmp/gmp-6.1.2/amd64.patch | 18 - .../gmp/gmp-6.1.2/use-includedir.patch | 15 - ...user-provided-flags-to-the-auto-detected-.patch | 61 + ...re.ac-Believe-the-cflags-from-environment.patch | 49 + .../recipes-support/gmp/gmp/use-includedir.patch | 18 + .../poky/meta/recipes-support/gmp/gmp_6.1.2.bb | 45 - .../poky/meta/recipes-support/gmp/gmp_6.2.0.bb | 44 + ...process.c-Enable-GNU-extensions-in-system.patch | 35 - .../update-output-syntax.patch | 27 - .../gnome-desktop-testing_2014.1.bb | 22 - .../gnome-desktop-testing_2018.1.bb | 18 + ...1-Woverride-init-is-not-needed-with-gcc-9.patch | 13 +- ...c-use-a-custom-value-for-the-location-of-.patch | 2 +- .../recipes-support/gnupg/gnupg/relocate.patch | 2 +- .../meta/recipes-support/gnupg/gnupg_2.2.12.bb | 56 - .../meta/recipes-support/gnupg/gnupg_2.2.20.bb | 81 + ...license-to-GPLv2.1-to-keep-with-LICENSE-f.patch | 90 + .../gnutls/gnutls/CVE-2019-3829_p1.patch | 39 - .../gnutls/gnutls/CVE-2019-3829_p2.patch | 871 - .../gnutls/gnutls/CVE-2019-3829_p3.patch | 36 - .../gnutls/gnutls/CVE-2019-3836.patch | 35 - .../meta/recipes-support/gnutls/gnutls_3.6.14.bb | 67 + .../meta/recipes-support/gnutls/gnutls_3.6.4.bb | 68 - ...reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch | 63 - .../meta/recipes-support/gnutls/libtasn1_4.13.bb | 23 - .../meta/recipes-support/gnutls/libtasn1_4.16.0.bb | 24 + ...d-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch | 134 + .../gpgme/gpgme/0001-pkgconfig.patch | 72 +- ...python-gpg-error-config-should-not-be-use.patch | 41 +- .../0003-Correctly-install-python-modules.patch | 6 +- .../gpgme/gpgme/0004-python-import.patch | 2 +- ...g-skip-all-lib-or-usr-lib-directories-in-.patch | 2 +- .../gpgme/gpgme/0006-fix-build-path-issue.patch | 6 +- .../gpgme/0007-python-Add-variables-to-tests.patch | 52 + .../0007-qt-python-Add-variables-to-tests.patch | 78 - .../gpgme/0008-do-not-auto-check-var-PYTHON.patch | 36 + .../meta/recipes-support/gpgme/gpgme_1.11.1.bb | 86 - .../meta/recipes-support/gpgme/gpgme_1.13.1.bb | 85 + external/poky/meta/recipes-support/icu/icu.inc | 11 +- .../icu/icu/0001-Fix-big-endian-build.patch | 28 + .../icu/icu/0001-icu-Added-armeb-support.patch | 30 + .../icu/icu/0002-Add-ARC-support.patch | 27 - .../recipes-support/icu/icu/CVE-2020-10531.patch | 128 + .../poky/meta/recipes-support/icu/icu/filter.json | 2 + .../recipes-support/icu/icu/fix-install-manx.patch | 21 +- external/poky/meta/recipes-support/icu/icu_62.1.bb | 29 - external/poky/meta/recipes-support/icu/icu_66.1.bb | 71 + .../recipes-support/iso-codes/iso-codes_4.1.bb | 19 - .../recipes-support/iso-codes/iso-codes_4.4.bb | 19 + ...t-use-build-time-hardcoded-python-binary-.patch | 35 + ...e-build-time-hardcoded-python-binary-path.patch | 29 + .../meta/recipes-support/itstool/itstool_2.0.6.bb | 21 + .../libassuan-add-pkgconfig-support.patch | 105 +- .../recipes-support/libassuan/libassuan_2.5.1.bb | 32 - .../recipes-support/libassuan/libassuan_2.5.3.bb | 36 + .../libatomic-ops/libatomic-ops_7.6.10.bb | 22 + .../libatomic-ops/libatomic-ops_7.6.8.bb | 21 - .../0001-flopen-Add-missing-fcntl.h-include.patch | 46 - .../meta/recipes-support/libbsd/libbsd_0.10.0.bb | 41 + .../meta/recipes-support/libbsd/libbsd_0.9.1.bb | 44 - .../libcap-ng/libcap-ng-python_0.7.10.bb | 29 + .../meta/recipes-support/libcap-ng/libcap-ng.inc | 19 + ...-configure.ac-add-library-if-header-found.patch | 31 + ...ap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch | 25 + .../recipes-support/libcap-ng/libcap-ng_0.7.10.bb | 17 + .../recipes-support/libcap-ng/libcap-ng_0.7.9.bb | 37 - .../files/0001-Fix-build-with-gperf-3.1.patch | 41 - .../0001-tests-do-not-statically-link-a-test.patch | 26 + .../0002-tests-do-not-run-target-executables.patch | 33 + .../meta/recipes-support/libcap/libcap_2.25.bb | 74 - .../meta/recipes-support/libcap/libcap_2.32.bb | 77 + .../recipes-support/libcheck/libcheck_0.12.0.bb | 24 - .../recipes-support/libcheck/libcheck_0.14.0.bb | 29 + .../libcroco/libcroco/CVE-2017-7960.patch | 56 - .../libcroco/libcroco/CVE-2017-7961.patch | 45 - .../recipes-support/libcroco/libcroco_0.6.12.bb | 24 - .../recipes-support/libcroco/libcroco_0.6.13.bb | 20 + .../libevdev/libevdev/determinism.patch | 34 + .../recipes-support/libevdev/libevdev_1.5.9.bb | 14 - .../recipes-support/libevdev/libevdev_1.8.0.bb | 16 + .../0001-test-fix-32bit-linux-regress.patch | 48 - ...s_dns.c-patch-out-tests-that-require-a-wo.patch | 37 + .../recipes-support/libevent/libevent/run-ptest | 41 +- .../recipes-support/libevent/libevent_2.1.11.bb | 57 + .../recipes-support/libevent/libevent_2.1.8.bb | 47 - .../libexif/libexif/CVE-2016-6328.patch | 64 - .../libexif/libexif/CVE-2017-7544.patch | 40 - .../libexif/libexif/CVE-2018-20030.patch | 115 - .../libexif/libexif/CVE-2020-13114.patch | 73 + .../meta/recipes-support/libexif/libexif_0.6.21.bb | 20 - .../meta/recipes-support/libexif/libexif_0.6.22.bb | 19 + ...-Address-platforms-with-no-__int128-part2.patch | 34 + .../0001-Address-platforms-with-no-__int128.patch | 27 + ...Fixed-missed-ifndef-for-__mips_soft_float.patch | 27 + ...powerpc.h-fix-build-failure-with-powerpc7.patch | 62 + .../0001-libffi-Support-musl-x32-build.patch | 30 - ...ps-Use-compiler-internal-define-for-linux.patch | 32 - .../0001-mips-fix-MIPS-softfloat-build-issue.patch | 177 - ...fix-build-failure-on-power7-and-older-532.patch | 38 + .../recipes-support/libffi/libffi/not-win32.patch | 23 +- .../meta/recipes-support/libffi/libffi_3.2.1.bb | 34 - .../poky/meta/recipes-support/libffi/libffi_3.3.bb | 41 + .../recipes-support/libfm/libfm-extra_1.3.0.2.bb | 23 - .../recipes-support/libfm/libfm-extra_1.3.1.bb | 23 + .../meta/recipes-support/libfm/libfm_1.3.0.2.bb | 54 - .../poky/meta/recipes-support/libfm/libfm_1.3.1.bb | 54 + ...-pkg-config-for-libgcrypt-instead-of-conf.patch | 183 - .../files/0001-Prefetch-GCM-look-up-tables.patch | 90 + .../0001-libgcrypt-fix-m4-file-for-oe-core.patch | 149 + ...ok-up-tables-to-.data-section-and-unshare.patch | 332 + ...ok-up-table-to-.data-section-and-unshare-.patch | 178 + .../libgcrypt/files/CVE-2019-12904_p1.patch | 176 - .../libgcrypt/files/CVE-2019-12904_p2.patch | 330 - .../libgcrypt/files/determinism.patch | 32 + .../recipes-support/libgcrypt/libgcrypt_1.8.4.bb | 56 - .../recipes-support/libgcrypt/libgcrypt_1.8.5.bb | 58 + ...1-Do-not-fail-when-testing-config-scripts.patch | 27 + ...port-ARC-CPUs-and-simplify-aliasing-table.patch | 298 - ...cfg-Add-support-for-arc-unknown-linux-gnu.patch | 35 - .../libgpg-error-1.35-gawk5-support.patch | 161 - .../libgpg-error/libgpg-error/pkgconfig.patch | 178 +- .../libgpg-error/libgpg-error_1.32.bb | 72 - .../libgpg-error/libgpg-error_1.37.bb | 72 + ...txt-libical.pc.in-fix-iculibs-remove-full.patch | 44 - ...1-Use-our-hand-build-native-src-generator.patch | 33 + .../libical/Remove-cmake-check-for-Perl.patch | 30 - .../meta/recipes-support/libical/libical_2.0.0.bb | 26 - .../meta/recipes-support/libical/libical_3.0.7.bb | 45 + .../files/0001-Make-man-pages-reproducible.patch | 30 + ...001-Makefile-cleanup-install-for-rebuilds.patch | 56 + .../libjitterentropy/libjitterentropy_2.2.0.bb | 29 + .../meta/recipes-support/libksba/libksba_1.3.5.bb | 6 +- .../meta/recipes-support/libmpc/libmpc_1.1.0.bb | 4 +- ...ATCH-fix-libnl-3.4.0-musl-compile-problem.patch | 38 - .../recipes-support/libnl/libnl/fix-pc-file.patch | 17 - .../poky/meta/recipes-support/libnl/libnl_3.4.0.bb | 46 - .../poky/meta/recipes-support/libnl/libnl_3.5.0.bb | 44 + .../libpcre/libpcre/pcre-cross.patch | 48 - .../meta/recipes-support/libpcre/libpcre2_10.31.bb | 61 - .../meta/recipes-support/libpcre/libpcre2_10.34.bb | 61 + .../meta/recipes-support/libpcre/libpcre_8.42.bb | 87 - .../meta/recipes-support/libpcre/libpcre_8.44.bb | 75 + ...01-get-pac-test-Fix-build-with-clang-libc.patch | 31 + .../recipes-support/libproxy/libproxy_0.4.15.bb | 4 +- ...m-use-PYTHON-when-invoking-psl-make-dafsa.patch | 50 + ...01-gtk-doc-do-not-include-tree_index.sgml.patch | 28 + .../meta/recipes-support/libpsl/libpsl_0.21.0.bb | 23 + .../recipes-support/libsoup/libsoup-2.4_2.62.3.bb | 34 - .../recipes-support/libsoup/libsoup-2.4_2.68.4.bb | 43 + .../meta/recipes-support/libunwind/libunwind.inc | 3 +- ...Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch | 62 + .../libunwind/0001-Fix-build-on-mips-musl.patch | 81 - .../0001-add-knobs-to-disable-enable-tests.patch | 69 - ...-backtrace-Use-only-with-glibc-and-uclibc.patch | 45 - ...der-ucontext-mismatches-between-glibc-and.patch | 248 - .../0001-x86-Stub-out-x86_local_resume.patch | 54 - ...-backtrace-Use-only-with-glibc-and-uclibc.patch | 45 + .../0003-x86-Stub-out-x86_local_resume.patch | 54 + .../libunwind/0004-Fix-build-on-mips-musl.patch | 84 + ...der-ucontext-mismatches-between-glibc-and.patch | 249 + .../libunwind/libunwind/0006-Fix-for-X32.patch | 32 + ...Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch | 59 - .../libunwind/libunwind/libunwind-1.1-x32.patch | 31 - .../recipes-support/libunwind/libunwind_1.2.1.bb | 25 - .../recipes-support/libunwind/libunwind_1.3.1.bb | 24 + .../Add-support-for-the-RISC-V-architecture.patch | 157 - .../meta/recipes-support/liburcu/liburcu_0.10.1.bb | 24 - .../meta/recipes-support/liburcu/liburcu_0.11.1.bb | 22 + .../meta/recipes-support/libusb/libusb1_1.0.22.bb | 7 +- .../libxslt/files/CVE-2019-13117.patch | 33 - .../libxslt/files/CVE-2019-13118.patch | 76 - .../libxslt/libxslt/CVE-2019-11068.patch | 128 - .../libxslt/libxslt/fix-rvts-handling.patch | 80 - .../meta/recipes-support/libxslt/libxslt_1.1.32.bb | 52 - .../meta/recipes-support/libxslt/libxslt_1.1.34.bb | 53 + .../meta/recipes-support/libyaml/libyaml_0.2.1.bb | 18 - .../meta/recipes-support/libyaml/libyaml_0.2.2.bb | 18 + .../poky/meta/recipes-support/lz4/lz4_1.8.2.bb | 27 - .../poky/meta/recipes-support/lz4/lz4_1.9.2.bb | 30 + ...inlines-as-the-external-inline-definition.patch | 100 - .../recipes-support/lzop/lzop/lzop-1.03-gcc6.patch | 37 - .../lzop/lzop/x32_abi_miniacc_h.patch | 36 - .../poky/meta/recipes-support/lzop/lzop_1.03.bb | 29 - .../poky/meta/recipes-support/lzop/lzop_1.04.bb | 26 + .../0001-Fix-obsolete-ARC-asm-constraints.patch | 45 - .../poky/meta/recipes-support/mpfr/mpfr_4.0.1.bb | 19 - .../poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb | 19 + ...d-target-to-only-build-tests-not-run-them.patch | 38 - ...k-header-files-of-openssl-only-if-enable_.patch | 36 - .../nettle/nettle-3.4/dlopen-test.patch | 20 - .../recipes-support/nettle/nettle-3.4/run-ptest | 36 - ...d-target-to-only-build-tests-not-run-them.patch | 38 + ...k-header-files-of-openssl-only-if-enable_.patch | 36 + .../nettle/nettle-3.5.1/dlopen-test.patch | 21 + .../recipes-support/nettle/nettle-3.5.1/run-ptest | 36 + .../poky/meta/recipes-support/nettle/nettle_3.4.bb | 51 - .../meta/recipes-support/nettle/nettle_3.5.1.bb | 55 + .../poky/meta/recipes-support/npth/npth_1.6.bb | 2 +- .../nspr/nspr/0001-md-Fix-build-with-musl.patch | 31 - .../nspr/nspr/0002-Add-nios2-support.patch | 105 - ...e-definitions-for-the-RISC-V-architecture.patch | 150 - .../nspr/nspr/0004-Add-ARC-support.patch | 88 - ...e.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch | 103 - .../nspr/nspr/fix-build-on-x86_64.patch | 52 - .../poky/meta/recipes-support/nspr/nspr/nspr.pc.in | 11 - .../nspr/nspr/remove-rpath-from-tests.patch | 26 - .../nspr/remove-srcdir-from-configure-in.patch | 19 - .../poky/meta/recipes-support/nspr/nspr_4.19.bb | 195 - ...tname-Check-for-nss.h-presense-before-use.patch | 53 - .../nss-myhostname/nss-myhostname_0.3.bb | 5 +- .../nss/0001-nss-fix-support-cross-compiling.patch | 48 - .../meta/recipes-support/nss/nss/blank-cert9.db | Bin 28672 -> 0 bytes .../meta/recipes-support/nss/nss/blank-key4.db | Bin 36864 -> 0 bytes .../nss/nss/disable-Wvarargs-with-clang.patch | 33 - .../nss/nss-fix-SHA_HTONL-bug-for-arm-32be.patch | 34 - .../nss/nss-fix-incorrect-shebang-of-perl.patch | 110 - .../nss/nss/nss-fix-nsinstall-build.patch | 36 - .../nss/nss/nss-no-rpath-for-cross-compiling.patch | 26 - .../poky/meta/recipes-support/nss/nss/nss.pc.in | 11 - .../recipes-support/nss/nss/pqg.c-ULL_addend.patch | 23 - .../poky/meta/recipes-support/nss/nss/signlibs.sh | 20 - .../meta/recipes-support/nss/nss/system-pkcs11.txt | 5 - external/poky/meta/recipes-support/nss/nss_3.39.bb | 265 - ...p-the-languages-for-which-upstream-does-n.patch | 29 - .../recipes-support/p11-kit/p11-kit_0.23.14.bb | 46 - .../recipes-support/p11-kit/p11-kit_0.23.20.bb | 29 + .../recipes-support/pinentry/pinentry_1.1.0.bb | 5 +- .../poky/meta/recipes-support/popt/popt_1.16.bb | 2 +- .../ptest-runner/ptest-runner_2.2.bb | 26 - .../ptest-runner/ptest-runner_2.3.2.bb | 28 + .../poky/meta/recipes-support/re2c/re2c_1.0.1.bb | 3 +- ...1-If-the-libc-is-lacking-argp-use-libargp.patch | 60 - ...rgument-to-control-the-libargp-dependency.patch | 92 - .../recipes-support/rng-tools/rng-tools/default | 3 +- .../meta/recipes-support/rng-tools/rng-tools/init | 21 +- .../rng-tools/rng-tools/read_error_msg.patch | 98 - .../rng-tools-5-fix-textrels-on-PIC-x86.patch | 103 - .../rng-tools/rng-tools/rngd.service | 7 +- .../rng-tools/rng-tools/underquote.patch | 33 - .../meta/recipes-support/rng-tools/rng-tools_5.bb | 48 - .../recipes-support/rng-tools/rng-tools_6.9.bb | 52 + ...irectories.without.sandbox-install.prefix.patch | 71 + .../poky/meta/recipes-support/serf/serf_1.3.9.bb | 26 +- .../shared-mime-info/shared-mime-info.inc | 35 - .../shared-mime-info/install-data-hook.patch | 25 - .../shared-mime-info/parallelmake.patch | 33 - .../shared-mime-info/shared-mime-info_1.10.bb | 7 - .../shared-mime-info/shared-mime-info_git.bb | 43 + ...light.pc.in-do-not-add-Boost-s-libraries-.patch | 30 - .../source-highlight/source-highlight_3.1.8.bb | 28 - .../sqlite/files/CVE-2018-20505.patch | 31 - .../sqlite/files/CVE-2018-20506.patch | 103 - .../sqlite/files/CVE-2019-8457.patch | 126 - .../sqlite/files/CVE-2020-11655.patch | 32 + .../sqlite/files/CVE-2020-11656.patch | 70 + .../sqlite/files/CVE-2020-15358.patch | 47 + .../sqlite/files/CVE-2020-9327.patch | 141 + .../poky/meta/recipes-support/sqlite/sqlite3.inc | 27 +- .../meta/recipes-support/sqlite/sqlite3_3.23.1.bb | 13 - .../meta/recipes-support/sqlite/sqlite3_3.31.1.bb | 16 + .../meta/recipes-support/taglib/taglib_1.11.1.bb | 2 +- ...0001-src-Makefile-improve-reproducibility.patch | 46 + .../vim/files/disable_acl_header_check.patch | 39 + .../recipes-support/vim/files/no-path-adjust.patch | 27 + .../vim-add-knob-whether-elf.h-are-checked.patch | 42 + .../poky/meta/recipes-support/vim/vim-tiny_8.2.bb | 12 + external/poky/meta/recipes-support/vim/vim.inc | 144 + external/poky/meta/recipes-support/vim/vim_8.2.bb | 15 + .../vte/vte/0001-Add-m4-vapigen.m4.patch | 119 - ...-Don-t-enable-stack-protection-by-default.patch | 29 - ...old-school-asignment-to-avoid-gcc-4.8-err.patch | 27 + ...dd-W_EXITCODE-macro-for-non-glibc-systems.patch | 59 + .../poky/meta/recipes-support/vte/vte_0.52.2.bb | 46 - .../poky/meta/recipes-support/vte/vte_0.58.3.bb | 56 + external/poky/meta/recipes.txt | 3 +- external/poky/meta/site/arm-common | 3 - external/poky/meta/site/common-glibc | 10 + external/poky/meta/site/common-linux | 5 + external/poky/meta/site/common-musl | 12 + external/poky/meta/site/ix86-common | 3 - external/poky/meta/site/nios2-linux | 3 - external/poky/meta/site/powerpc32-linux | 4 - external/poky/meta/site/sh-common | 4 - 3813 files changed, 276845 insertions(+), 181538 deletions(-) delete mode 100644 external/poky/meta/COPYING.GPLv2 delete mode 100644 external/poky/meta/classes/bluetooth.bbclass create mode 100644 external/poky/meta/classes/ccmake.bbclass delete mode 100644 external/poky/meta/classes/distrodata.bbclass delete mode 100644 external/poky/meta/classes/distutils-base.bbclass delete mode 100644 external/poky/meta/classes/distutils-tools.bbclass delete mode 100644 external/poky/meta/classes/distutils.bbclass create mode 100644 external/poky/meta/classes/features_check.bbclass delete mode 100644 external/poky/meta/classes/gnome.bbclass create mode 100644 external/poky/meta/classes/go-mod.bbclass create mode 100644 external/poky/meta/classes/go-ptest.bbclass delete mode 100644 external/poky/meta/classes/libc-common.bbclass create mode 100644 external/poky/meta/classes/mcextend.bbclass create mode 100644 external/poky/meta/classes/mime-xdg.bbclass create mode 100644 external/poky/meta/classes/package_pkgdata.bbclass delete mode 100644 external/poky/meta/classes/python-dir.bbclass delete mode 100644 external/poky/meta/classes/pythonnative.bbclass delete mode 100644 external/poky/meta/classes/setuptools.bbclass delete mode 100644 external/poky/meta/classes/tinderclient.bbclass create mode 100644 external/poky/meta/classes/xmlcatalog.bbclass create mode 100644 external/poky/meta/conf/ccache.conf create mode 100644 external/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc create mode 100644 external/poky/meta/conf/distro/include/init-manager-none.inc create mode 100644 external/poky/meta/conf/distro/include/init-manager-systemd.inc create mode 100644 external/poky/meta/conf/distro/include/init-manager-sysvinit.inc create mode 100644 external/poky/meta/conf/distro/include/ptest-packagelists.inc delete mode 100644 external/poky/meta/conf/distro/include/upstream_tracking.inc delete mode 100644 external/poky/meta/conf/distro/include/world-broken.inc create mode 100644 external/poky/meta/conf/image-uefi.conf delete mode 100644 external/poky/meta/conf/machine/include/arm/arch-armv8.inc create mode 100644 external/poky/meta/conf/machine/include/arm/arch-armv8a.inc create mode 100644 external/poky/meta/conf/machine/include/riscv/arch-riscv.inc create mode 100644 external/poky/meta/conf/machine/include/riscv/qemuriscv.inc create mode 100644 external/poky/meta/conf/machine/include/riscv/tune-riscv.inc create mode 100644 external/poky/meta/conf/machine/include/tune-arm1176jz-s.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa32.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa35.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa53.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc create mode 100644 external/poky/meta/conf/machine/include/tune-cortexa72.inc create mode 100644 external/poky/meta/conf/machine/include/tune-power9.inc create mode 100644 external/poky/meta/conf/machine/qemuarmv5.conf create mode 100644 external/poky/meta/conf/machine/qemuriscv64.conf create mode 100644 external/poky/meta/files/common-licenses/Apache-2.0-with-LLVM-exception create mode 100644 external/poky/meta/files/common-licenses/BSD-2-Clause-Patent delete mode 100644 external/poky/meta/files/common-licenses/Elfutils-Exception create mode 100644 external/poky/meta/files/common-licenses/Intel delete mode 100644 external/poky/meta/files/common-licenses/bzip2 create mode 100644 external/poky/meta/files/common-licenses/bzip2-1.0.6 create mode 100644 external/poky/meta/files/common-licenses/vim delete mode 100644 external/poky/meta/lib/oeqa/core/decorator/oeid.py delete mode 100644 external/poky/meta/lib/oeqa/core/decorator/oetag.py delete mode 100644 external/poky/meta/lib/oeqa/core/tests/cases/loader/invalid/oeid.py delete mode 100644 external/poky/meta/lib/oeqa/core/tests/cases/oeid.py delete mode 100644 external/poky/meta/lib/oeqa/manual/bsp-qemu.json delete mode 100644 external/poky/meta/lib/oeqa/manual/compliance-test.json create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/boot.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/gstreamer.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/ltp.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/ltp_compliance.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/scons.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/storage.py create mode 100644 external/poky/meta/lib/oeqa/runtime/cases/weston.py create mode 100644 external/poky/meta/lib/oeqa/runtime/files/SConstruct create mode 100644 external/poky/meta/lib/oeqa/runtime/files/hello.c create mode 100644 external/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/binutils.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/gcc.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/glibc.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/multiconfig.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/recipeutils.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/reproducible.py create mode 100644 external/poky/meta/lib/oeqa/selftest/cases/sysroot.py create mode 100644 external/poky/meta/lib/oeqa/utils/nfs.py delete mode 100644 external/poky/meta/recipes-bsp/acpid/acpid_2.0.30.bb create mode 100644 external/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb create mode 100644 external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch create mode 100644 external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch create mode 100644 external/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb create mode 100644 external/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch create mode 100644 external/poky/meta/recipes-bsp/efivar/efivar_37.bb delete mode 100644 external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gcc46-compatibility.patch create mode 100644 external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch create mode 100644 external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb delete mode 100644 external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.8.bb delete mode 100644 external/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch delete mode 100644 external/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch delete mode 100644 external/poky/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch delete mode 100644 external/poky/meta/recipes-bsp/grub/files/gcc8.patch delete mode 100644 external/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb create mode 100644 external/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb delete mode 100644 external/poky/meta/recipes-bsp/grub/grub_2.02.bb create mode 100644 external/poky/meta/recipes-bsp/grub/grub_2.04.bb delete mode 100644 external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch create mode 100644 external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch delete mode 100644 external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch create mode 100644 external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/include.patch delete mode 100644 external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch create mode 100644 external/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch create mode 100644 external/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc create mode 100644 external/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb delete mode 100644 external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb create mode 100644 external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb delete mode 100644 external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-1.patch delete mode 100644 external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-2.patch create mode 100644 external/poky/meta/recipes-bsp/u-boot/files/remove-redundant-yyloc-global.patch create mode 100644 external/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb create mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-common.inc delete mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-common_2018.07.inc delete mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2018.07.bb delete mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb create mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc create mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb delete mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot_2018.07.bb create mode 100644 external/poky/meta/recipes-bsp/u-boot/u-boot_2020.01.bb delete mode 100644 external/poky/meta/recipes-bsp/usbutils/usbutils/usb-devices-avoid-dependency-on-bash.patch delete mode 100644 external/poky/meta/recipes-bsp/usbutils/usbutils_010.bb create mode 100644 external/poky/meta/recipes-bsp/usbutils/usbutils_012.bb delete mode 100644 external/poky/meta/recipes-connectivity/bind/bind/0001-build-use-pkg-config-to-find-libxml2.patch delete mode 100644 external/poky/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch delete mode 100644 external/poky/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch create mode 100644 external/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb delete mode 100644 external/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb delete mode 100644 external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch delete mode 100644 external/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch delete mode 100644 external/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch delete mode 100644 external/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb create mode 100644 external/poky/meta/recipes-connectivity/bluez5/bluez5_5.54.bb delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch create mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0001-inet-Add-prefixlen-to-iproute_default_function.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman/includes.patch delete mode 100644 external/poky/meta/recipes-connectivity/connman/connman_1.35.bb create mode 100644 external/poky/meta/recipes-connectivity/connman/connman_1.37.bb delete mode 100644 external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch create mode 100644 external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch delete mode 100644 external/poky/meta/recipes-connectivity/dhcp/dhcp/0006-site.h-enable-gentle-shutdown.patch delete mode 100644 external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb create mode 100644 external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils/version.patch create mode 100644 external/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb delete mode 100644 external/poky/meta/recipes-connectivity/iproute2/iproute2/0001-ip-Remove-unneed-header.patch delete mode 100644 external/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch delete mode 100644 external/poky/meta/recipes-connectivity/iproute2/iproute2_4.19.0.bb create mode 100644 external/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb delete mode 100755 external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init delete mode 100644 external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/ldflags.patch delete mode 100644 external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/musl.patch delete mode 100644 external/poky/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb delete mode 100644 external/poky/meta/recipes-connectivity/iw/iw/0001-connect-fix-parsing-of-WEP-keys.patch delete mode 100644 external/poky/meta/recipes-connectivity/iw/iw_4.14.bb create mode 100644 external/poky/meta/recipes-connectivity/iw/iw_5.4.bb delete mode 100644 external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch delete mode 100644 external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb create mode 100644 external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap.inc delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap/0001-Fix-compiler_state_t.ai-usage-when-INET6-is-not-defi.patch delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap/0002-Add-missing-compiler_state_t-parameter.patch delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap/disable-remote.patch delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap/fix-grammar-deps.patch delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap/libpcap-pkgconfig-support.patch delete mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap_1.8.1.bb create mode 100644 external/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb delete mode 100644 external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/multilibfix.patch create mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch create mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch create mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch delete mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch delete mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch delete mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch delete mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.1.bb create mode 100644 external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb delete mode 100644 external/poky/meta/recipes-connectivity/ofono/ofono.inc create mode 100644 external/poky/meta/recipes-connectivity/ofono/ofono/0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch delete mode 100644 external/poky/meta/recipes-connectivity/ofono/ofono/use-python3.patch delete mode 100644 external/poky/meta/recipes-connectivity/ofono/ofono_1.24.bb create mode 100644 external/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb delete mode 100644 external/poky/meta/recipes-connectivity/openssh/openssh_7.8p1+git.bb create mode 100644 external/poky/meta/recipes-connectivity/openssh/openssh_8.2p1.bb delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl/CVE-2019-1543.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh create mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl/reproducible.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-BN_LLONG-breakage.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-DES_LONG-breakage.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-build-with-clang-using-external-assembler.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/0001-allow-manpages-to-be-disabled.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/0001-openssl-force-soft-link-to-avoid-rare-race.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/Makefiles-ptest.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/Use-SHA256-not-MD5-as-default-digest.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/configure-musl-target.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/configure-targets.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/c_rehash-compat.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/debian-targets.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-dir.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-section.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-rpath.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-symbolic.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian/pic.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_digicert_malaysia.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_diginotar.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/soname.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/version-script.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/engines-install-in-libdir-ssl.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/oe-ldflags.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-c_rehash.sh delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-fix-des.pod-error.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/openssl_fix_for_x32.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/parallel.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/ptest-deps.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/ptest_makefile_deps.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-cflags.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-mkbuildinf.patch delete mode 100755 external/poky/meta/recipes-connectivity/openssl/openssl10/run-ptest delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10/shared-libs.patch delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl10_1.0.2r.bb delete mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1b.bb create mode 100644 external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb create mode 100644 external/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch delete mode 100644 external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb create mode 100644 external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb delete mode 100644 external/poky/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch delete mode 100644 external/poky/meta/recipes-connectivity/socat/socat/0001-define-NETDB_INTERNAL-to-1-if-not-available.patch delete mode 100644 external/poky/meta/recipes-connectivity/socat/socat/Makefile.in-fix-for-parallel-build.patch delete mode 100644 external/poky/meta/recipes-connectivity/socat/socat_1.7.3.2.bb create mode 100644 external/poky/meta/recipes-connectivity/socat/socat_1.7.3.4.bb create mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch create mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch create mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch create mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple1.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple2.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple3.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple4.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple5.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple6.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple7.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple8.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/wpa_supplicant-CVE-2018-14526.patch delete mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb create mode 100644 external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb delete mode 100644 external/poky/meta/recipes-core/base-files/base-files/filesystems create mode 100644 external/poky/meta/recipes-core/base-files/base-files/hosts delete mode 100644 external/poky/meta/recipes-core/base-files/base-files/usbd create mode 100644 external/poky/meta/recipes-core/base-passwd/base-passwd/kvm.patch delete mode 100644 external/poky/meta/recipes-core/busybox/busybox-inittab_1.29.3.bb create mode 100644 external/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-du-l-works-fix-to-use-145-instead-of-144.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-check-uudecode-before-using-it.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-use-www.example.org-for-wget-test-cases.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch delete mode 100644 external/poky/meta/recipes-core/busybox/busybox/CVE-2018-20679.patch delete mode 100644 external/poky/meta/recipes-core/busybox/busybox/CVE-2019-5747.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/busybox-CVE-2018-1000500.patch create mode 100644 external/poky/meta/recipes-core/busybox/busybox/unicode.cfg delete mode 100644 external/poky/meta/recipes-core/busybox/busybox_1.29.3.bb create mode 100644 external/poky/meta/recipes-core/busybox/busybox_1.31.1.bb delete mode 100755 external/poky/meta/recipes-core/busybox/files/mount.busybox delete mode 100755 external/poky/meta/recipes-core/busybox/files/umount.busybox delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4 delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch delete mode 100644 external/poky/meta/recipes-core/console-tools/console-tools_0.3.2.bb create mode 100755 external/poky/meta/recipes-core/coreutils/coreutils/run-ptest create mode 100644 external/poky/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch delete mode 100644 external/poky/meta/recipes-core/coreutils/coreutils_8.30.bb create mode 100644 external/poky/meta/recipes-core/coreutils/coreutils_8.31.bb delete mode 100644 external/poky/meta/recipes-core/dbus/dbus-test_1.12.10.bb create mode 100644 external/poky/meta/recipes-core/dbus/dbus-test_1.12.16.bb delete mode 100644 external/poky/meta/recipes-core/dbus/dbus/CVE-2019-12749.patch create mode 100644 external/poky/meta/recipes-core/dbus/dbus/CVE-2020-12049.patch delete mode 100644 external/poky/meta/recipes-core/dbus/dbus_1.12.10.bb create mode 100644 external/poky/meta/recipes-core/dbus/dbus_1.12.16.bb delete mode 100644 external/poky/meta/recipes-core/dropbear/dropbear/CVE-2018-15599.patch create mode 100644 external/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch delete mode 100644 external/poky/meta/recipes-core/dropbear/dropbear_2018.76.bb create mode 100644 external/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb create mode 100644 external/poky/meta/recipes-core/ell/ell_0.32.bb delete mode 100644 external/poky/meta/recipes-core/expat/expat/CVE-2018-20843.patch delete mode 100644 external/poky/meta/recipes-core/expat/expat/autotools.patch delete mode 100644 external/poky/meta/recipes-core/expat/expat_2.2.6.bb create mode 100644 external/poky/meta/recipes-core/expat/expat_2.2.9.bb delete mode 100644 external/poky/meta/recipes-core/fts/fts.bb create mode 100644 external/poky/meta/recipes-core/fts/fts_1.2.7.bb delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-init-env.in-do-not-add-C-CXX-parameters.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/run-ptest create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch create mode 100644 external/poky/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz delete mode 100755 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/remove-potcdate.sin create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/COPYING create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/Makefile.in.in create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/iconv.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-link.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4 create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/progtest.m4 create mode 100755 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/remove-potcdate.sin delete mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb create mode 100644 external/poky/meta/recipes-core/gettext/gettext-minimal-native_0.20.1.bb delete mode 100644 external/poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb create mode 100644 external/poky/meta/recipes-core/gettext/gettext_0.20.1.bb create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-write-bindir-into-pkg-config-files.patch create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch delete mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb create mode 100644 external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb delete mode 100644 external/poky/meta/recipes-core/glib-networking/glib-networking_2.54.1.bb create mode 100644 external/poky/meta/recipes-core/glib-networking/glib-networking_2.62.4.bb delete mode 100644 external/poky/meta/recipes-core/glibc/cross-localedef-native_2.28.bb create mode 100644 external/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-initial.inc delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-initial_2.28.bb delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-locale_2.28.bb create mode 100644 external/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-mtrace_2.28.bb create mode 100644 external/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-scripts_2.28.bb create mode 100644 external/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb delete mode 100644 external/poky/meta/recipes-core/glibc/glibc-testing.inc create mode 100644 external/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb create mode 100644 external/poky/meta/recipes-core/glibc/glibc-version.inc create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/CVE-2016-10739.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/CVE-2018-19591.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/CVE-2019-6488.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/CVE-2019-7309.patch delete mode 100644 external/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch create mode 100644 external/poky/meta/recipes-core/glibc/glibc/check-test-wrapper delete mode 100644 external/poky/meta/recipes-core/glibc/glibc_2.28.bb create mode 100644 external/poky/meta/recipes-core/glibc/glibc_2.31.bb delete mode 100644 external/poky/meta/recipes-core/glibc/site_config/funcs delete mode 100644 external/poky/meta/recipes-core/glibc/site_config/headers delete mode 100644 external/poky/meta/recipes-core/glibc/site_config/types create mode 100644 external/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch create mode 100644 external/poky/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch delete mode 100644 external/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch create mode 100644 external/poky/meta/recipes-core/ifupdown/files/run-ptest create mode 100644 external/poky/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch delete mode 100644 external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb create mode 100644 external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb mode change 100644 => 100755 external/poky/meta/recipes-core/initrdscripts/files/init-live.sh create mode 100644 external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm create mode 100644 external/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh delete mode 100644 external/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh create mode 100644 external/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch create mode 100644 external/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch create mode 100644 external/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch delete mode 100644 external/poky/meta/recipes-core/kbd/kbd_2.0.4.bb create mode 100644 external/poky/meta/recipes-core/kbd/kbd_2.2.0.bb create mode 100644 external/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb create mode 100644 external/poky/meta/recipes-core/libxcrypt/libxcrypt.inc delete mode 100644 external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.1.1.bb create mode 100644 external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb delete mode 100644 external/poky/meta/recipes-core/libxml/libxml2/0001-Fix-infinite-loop-in-LZMA-decompression.patch create mode 100644 external/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch create mode 100644 external/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch delete mode 100644 external/poky/meta/recipes-core/libxml/libxml2/fix-CVE-2017-8872.patch delete mode 100644 external/poky/meta/recipes-core/libxml/libxml2/fix-CVE-2018-14404.patch create mode 100644 external/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb delete mode 100644 external/poky/meta/recipes-core/libxml/libxml2_2.9.8.bb create mode 100644 external/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb create mode 100644 external/poky/meta/recipes-core/musl/libucontext_git.bb create mode 100644 external/poky/meta/recipes-core/musl/musl-obstack.bb create mode 100644 external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch delete mode 100644 external/poky/meta/recipes-core/ncurses/ncurses_6.1+20180630.bb create mode 100644 external/poky/meta/recipes-core/ncurses/ncurses_6.2.bb delete mode 100644 external/poky/meta/recipes-core/netbase/netbase/hosts delete mode 100644 external/poky/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch delete mode 100644 external/poky/meta/recipes-core/netbase/netbase_5.4.bb create mode 100644 external/poky/meta/recipes-core/netbase/netbase_6.1.bb delete mode 100644 external/poky/meta/recipes-core/newlib/libgloss_3.0.0.bb create mode 100644 external/poky/meta/recipes-core/newlib/libgloss_3.2.0.bb delete mode 100644 external/poky/meta/recipes-core/newlib/newlib_3.0.0.bb create mode 100644 external/poky/meta/recipes-core/newlib/newlib_3.2.0.bb delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch create mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch create mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch create mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch create mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch delete mode 100644 external/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch create mode 100644 external/poky/meta/recipes-core/psplash/files/psplash-start.service create mode 100644 external/poky/meta/recipes-core/psplash/files/psplash-systemd.service delete mode 100644 external/poky/meta/recipes-core/readline/readline-7.0/configure-fix.patch delete mode 100644 external/poky/meta/recipes-core/readline/readline-7.0/norpath.patch create mode 100644 external/poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch create mode 100644 external/poky/meta/recipes-core/readline/readline-8.0/norpath.patch create mode 100644 external/poky/meta/recipes-core/readline/readline-8.0/rl-native.map delete mode 100644 external/poky/meta/recipes-core/readline/readline_7.0.bb create mode 100644 external/poky/meta/recipes-core/readline/readline_8.0.bb delete mode 100644 external/poky/meta/recipes-core/systemd/systemd-boot_239.bb create mode 100644 external/poky/meta/recipes-core/systemd/systemd-boot_244.3.bb delete mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf.bb create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf/journald.conf create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf/logind.conf create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf/system.conf create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf/system.conf-qemuall create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf/wired.network create mode 100644 external/poky/meta/recipes-core/systemd/systemd-conf_244.3.bb delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-Revert-sysctl.d-request-ECN-on-both-in-and-outgoing-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-chown-recursive-let-s-rework-the-recursive-logic-to-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-core-when-deserializing-state-always-use-read_line-L.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-dhcp6-make-sure-we-have-enough-space-for-the-DHCP6-o.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-meson-rename-Ddebug-to-Ddebug-extra.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-sd-bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-sysctl-Don-t-pass-null-directive-argument-to-s.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0001-timesync-changes-type-of-drift_freq-to-int64_t.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0002-core-Fix-use-after-free-case-in-load_from_path.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0005-Make-root-s-home-directory-configurable.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0006-remove-nobody-user-group-checking.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0006-src-basic-missing.h-check-for-missing-strndupa.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0007-Include-netinet-if_ether.h.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0007-rules-watch-metadata-changes-in-ide-devices.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0009-add-missing-FTW_-macros-for-musl.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0013-Use-uintmax_t-for-handling-rlim_t.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0023-resolvconf-fixes-for-the-compatibility-interface.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0024-journald-do-not-store-the-iovec-entry-for-process-co.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0025-journald-set-a-limit-on-the-number-of-fields.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/0026-journal-fix-out-of-bounds-read-CVE-2018-16866.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/99-default.preset delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/CVE-2019-6454.patch create mode 100644 external/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd/sd-bus-if-we-receive-an-invalid-dbus-message-ignore-.patch delete mode 100644 external/poky/meta/recipes-core/systemd/systemd_239.bb create mode 100644 external/poky/meta/recipes-core/systemd/systemd_244.3.bb delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/pidof-add-m-option.patch delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch create mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch create mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch create mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit/install.patch create mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch delete mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb create mode 100644 external/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb delete mode 100644 external/poky/meta/recipes-core/udev/eudev_3.2.7.bb create mode 100644 external/poky/meta/recipes-core/udev/eudev_3.2.9.bb create mode 100644 external/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch create mode 100644 external/poky/meta/recipes-core/util-linux/util-linux/0001-include-cleanup-pidfd-inckudes.patch create mode 100644 external/poky/meta/recipes-core/util-linux/util-linux/0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch create mode 100644 external/poky/meta/recipes-core/util-linux/util-linux/0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch delete mode 100644 external/poky/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch delete mode 100644 external/poky/meta/recipes-core/util-linux/util-linux_2.32.1.bb create mode 100644 external/poky/meta/recipes-core/util-linux/util-linux_2.35.1.bb delete mode 100644 external/poky/meta/recipes-devtools/apt/apt-native_1.2.24.bb create mode 100644 external/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb create mode 100644 external/poky/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch delete mode 100644 external/poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch delete mode 100644 external/poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch delete mode 100644 external/poky/meta/recipes-devtools/apt/apt_1.2.24.bb create mode 100644 external/poky/meta/recipes-devtools/apt/apt_1.2.31.bb delete mode 100644 external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb create mode 100644 external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-2.31.inc create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-2.34.inc delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.31.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-cross_2.31.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.31.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0022-Handle-ELF-compressed-header-alignment-correctly-by-.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/0023-gold-Get-alignment-of-uncompressed-section-from-ch_a.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-1000876.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17358.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17360.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18309.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18605.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18606.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18607.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20623.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20651.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20671.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils/clang-bfd-fix.patch delete mode 100644 external/poky/meta/recipes-devtools/binutils/binutils_2.31.bb create mode 100644 external/poky/meta/recipes-devtools/binutils/binutils_2.34.bb delete mode 100644 external/poky/meta/recipes-devtools/bison/bison/0001-Unset-need_charset_alias-when-building-for-musl.patch create mode 100644 external/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch delete mode 100644 external/poky/meta/recipes-devtools/bison/bison/0001-src-local.mk-fix-parallel-issue.patch delete mode 100644 external/poky/meta/recipes-devtools/bison/bison/gnulib.patch delete mode 100644 external/poky/meta/recipes-devtools/bison/bison_3.0.4.bb create mode 100644 external/poky/meta/recipes-devtools/bison/bison_3.5.3.bb create mode 100644 external/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch delete mode 100644 external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch delete mode 100644 external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Makefile-build-mktables-using-native-gcc.patch delete mode 100644 external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.17.1.bb create mode 100644 external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch delete mode 100644 external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch delete mode 100644 external/poky/meta/recipes-devtools/ccache/ccache_3.4.2.bb create mode 100644 external/poky/meta/recipes-devtools/ccache/ccache_3.7.7.bb delete mode 100644 external/poky/meta/recipes-devtools/ccache/files/0002-dev.mk.in-fix-file-name-too-long.patch create mode 100644 external/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch delete mode 100644 external/poky/meta/recipes-devtools/cmake/cmake-native_3.12.2.bb create mode 100644 external/poky/meta/recipes-devtools/cmake/cmake-native_3.16.5.bb delete mode 100644 external/poky/meta/recipes-devtools/cmake/cmake_3.12.2.bb create mode 100644 external/poky/meta/recipes-devtools/cmake/cmake_3.16.5.bb delete mode 100644 external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch delete mode 100644 external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-setup-of-logging-log-domains-RhBug-1645897.patch create mode 100644 external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb delete mode 100644 external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_git.bb create mode 100644 external/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb delete mode 100644 external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb create mode 100644 external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb create mode 100644 external/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch delete mode 100644 external/poky/meta/recipes-devtools/diffstat/diffstat_1.62.bb create mode 100644 external/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb delete mode 100644 external/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb create mode 100644 external/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb delete mode 100644 external/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop create mode 100644 external/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch create mode 100644 external/poky/meta/recipes-devtools/dmidecode/dmidecode/0001-Committing-changes-from-do_unpack_extra.patch delete mode 100644 external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.1.bb create mode 100644 external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.2.bb create mode 100644 external/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch create mode 100644 external/poky/meta/recipes-devtools/dnf/dnf/Fix-SyntaxWarning.patch delete mode 100644 external/poky/meta/recipes-devtools/dnf/dnf_2.7.5.bb create mode 100644 external/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb delete mode 100644 external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml.xml delete mode 100644 external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml delete mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/0001-arch-Add-support-for-riscv64-CPU.patch delete mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch delete mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service delete mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch create mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch create mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch delete mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg_1.18.24.bb create mode 100644 external/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch delete mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-don-t-try-to-rehash-a-deleted-directory.patch create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/CVE-2019-5188.patch delete mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsck-fix-use-after-free-in-calculate_tree.patch delete mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb create mode 100644 external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb delete mode 100644 external/poky/meta/recipes-devtools/elfutils/elfutils_0.175.bb create mode 100644 external/poky/meta/recipes-devtools/elfutils/elfutils_0.178.bb create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p1.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p2.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7149.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7150.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7664.patch delete mode 100644 external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7665.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/ptest.patch create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/run-ptest create mode 100644 external/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch delete mode 100644 external/poky/meta/recipes-devtools/file/file/CVE-2019-8904.patch delete mode 100644 external/poky/meta/recipes-devtools/file/file/CVE-2019-8905_CVE-2019-8907.patch delete mode 100644 external/poky/meta/recipes-devtools/file/file/CVE-2019-8906.patch delete mode 100644 external/poky/meta/recipes-devtools/file/file/debian-742262.patch delete mode 100644 external/poky/meta/recipes-devtools/file/file_5.34.bb create mode 100644 external/poky/meta/recipes-devtools/file/file_5.38.bb create mode 100644 external/poky/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch delete mode 100644 external/poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch delete mode 100644 external/poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch delete mode 100644 external/poky/meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch delete mode 100644 external/poky/meta/recipes-devtools/flex/flex_2.6.0.bb create mode 100644 external/poky/meta/recipes-devtools/flex/flex_2.6.4.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3.inc delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-internal-compiler-error-in-testcase.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-rtl-optimization-83030.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0009-gcc-poison-system-directories.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0010-gcc-poison-dir-extend.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0012-64-bit-multilib-hack.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0013-optional-libstdc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0015-COLLECT_GCC_OPTIONS.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0016-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0017-fortran-cross-compile-hack.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0018-cpp-honor-sysroot.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0019-MIPS64-Default-to-N64-ABI.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0020-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0021-gcc-Fix-argument-list-too-long-error.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0022-Disable-sdt.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0023-libtool.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0024-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0025-Use-the-multilib-config-files-from-B-instead-of-usin.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0027-export-CPP.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0030-Ensure-target-gcc-headers-can-be-included.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0033-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0034-aarch64-Add-support-for-musl-ldso.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0035-libcc1-fix-libcc1-s-install-path-and-rpath.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0036-handle-sysroot-support-for-nativesdk-gcc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0037-Search-target-sysroot-gcc-version-specific-dirs-with.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0038-Fix-various-_FOR_BUILD-and-related-variables.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0040-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0041-gcc-libcpp-support-ffile-prefix-map-old-new.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0042-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0043-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0044-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0047-sync-gcc-stddef.h-with-musl.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0048-gcc-Enable-static-PIE.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/fix-segmentation-fault-precompiled-hdr.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-7.3/no-sse-fix-test-case-failures.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2.inc delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0003-gcc-poison-system-directories.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0006-64-bit-multilib-hack.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0007-optional-libstdc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0009-COLLECT_GCC_OPTIONS.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0010-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0011-fortran-cross-compile-hack.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0012-cpp-honor-sysroot.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0013-MIPS64-Default-to-N64-ABI.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0015-gcc-Fix-argument-list-too-long-error.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0016-Disable-sdt.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0017-libtool.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0018-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0019-Use-the-multilib-config-files-from-B-instead-of-usin.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0020-Avoid-using-libdir-from-.la-which-usually-points-to-.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0021-export-CPP.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0022-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0023-Ensure-target-gcc-headers-can-be-included.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0024-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0025-Don-t-search-host-directory-during-relink-if-inst_pr.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0026-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0027-aarch64-Add-support-for-musl-ldso.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0028-libcc1-fix-libcc1-s-install-path-and-rpath.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0029-handle-sysroot-support-for-nativesdk-gcc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0030-Search-target-sysroot-gcc-version-specific-dirs-with.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0031-Fix-various-_FOR_BUILD-and-related-variables.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0033-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0034-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0035-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0036-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0037-sync-gcc-stddef.h-with-musl.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0038-fix-segmentation-fault-in-precompiled-header-generat.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0039-Fix-for-testsuite-failure.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0040-Re-introduce-spe-commandline-options.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/0041-ARC-fix-spec-gen.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-8.2/CVE-2019-14250.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3.inc create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0002-gcc-poison-system-directories.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0004-64-bit-multilib-hack.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0005-optional-libstdc.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0006-COLLECT_GCC_OPTIONS.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0008-fortran-cross-compile-hack.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0009-cpp-honor-sysroot.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0010-MIPS64-Default-to-N64-ABI.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0012-gcc-Fix-argument-list-too-long-error.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0013-Disable-sdt.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0014-libtool.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0018-export-CPP.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0019-Ensure-target-gcc-headers-can-be-included.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0023-aarch64-Add-support-for-musl-ldso.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0025-handle-sysroot-support-for-nativesdk-gcc.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0027-Fix-various-_FOR_BUILD-and-related-variables.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0030-ldbl128-config.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0033-sync-gcc-stddef.h-with-musl.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0034-fix-segmentation-fault-in-precompiled-header-generat.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0035-Fix-for-testsuite-failure.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0036-Re-introduce-spe-commandline-options.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-9.3/0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_8.2.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-cross_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_8.2.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-runtime_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-runtime_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-source_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-source_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-source_9.3.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/gcc_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/gcc_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc-initial_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc-initial_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc-initial_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/libgcc_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgfortran_7.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gcc/libgfortran_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gcc/libgfortran_9.3.bb delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-8.2.inc create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-9.1.inc delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-cross_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb-cross_9.1.bb create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch delete mode 100644 external/poky/meta/recipes-devtools/gdb/gdb_8.2.bb create mode 100644 external/poky/meta/recipes-devtools/gdb/gdb_9.1.bb delete mode 100644 external/poky/meta/recipes-devtools/git/git_2.18.1.bb create mode 100644 external/poky/meta/recipes-devtools/git/git_2.24.3.bb delete mode 100644 external/poky/meta/recipes-devtools/glide/glide_0.13.2.bb create mode 100644 external/poky/meta/recipes-devtools/glide/glide_0.13.3.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11.inc delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0001-allow-CC-and-CXX-to-have-multiple-words.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0004-ld-add-soname-to-shareable-objects.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0006-cmd-dist-separate-host-and-target-builds.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0007-cmd-go-make-GOROOT-precious-by-default.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0008-use-GOBUILDMODE-to-set-buildmode.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.11/0009-ld-replace-glibc-dynamic-linker-with-musl.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14.inc create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0001-allow-CC-and-CXX-to-have-multiple-words.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0004-ld-add-soname-to-shareable-objects.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0006-cmd-dist-separate-host-and-target-builds.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0007-cmd-go-make-GOROOT-precious-by-default.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0008-use-GOBUILDMODE-to-set-buildmode.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-1.14/0009-ld-replace-glibc-dynamic-linker-with-musl.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9.inc delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0001-make.bash-quote-CC_FOR_TARGET.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0002-cmd-go-fix-CC-and-CXX-environment-variable-construct.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0003-make.bash-better-separate-host-and-target-builds.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0004-cmd-go-allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0005-cmd-go-make-GOROOT-precious-by-default.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0006-make.bash-add-GOTOOLDIR_BOOTSTRAP-environment-variab.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0007-ld-add-soname-to-shareable-objects.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0008-make.bash-add-GOHOSTxx-indirection-for-cross-canadia.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0009-cmd-go-buildmode-pie-forces-external-linking-mode-on.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0010-make.bash-override-CC-when-building-dist-and-go_boot.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/0011-use-GOBUILDMODE-to-set-buildmode.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-1.9/set-external-linker.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-cross-canadian_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-cross-canadian_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-cross-canadian_1.9.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-cross_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-cross_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-cross_1.9.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-crosssdk_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-crosssdk_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-crosssdk_1.9.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch create mode 100644 external/poky/meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch delete mode 100644 external/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-native_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-native_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-native_1.9.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-runtime_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go-runtime_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go-runtime_1.9.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go_1.11.bb create mode 100644 external/poky/meta/recipes-devtools/go/go_1.14.bb delete mode 100644 external/poky/meta/recipes-devtools/go/go_1.9.bb create mode 100644 external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb delete mode 100644 external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.6.bb create mode 100644 external/poky/meta/recipes-devtools/jquery/jquery_3.4.1.bb create mode 100644 external/poky/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch create mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch delete mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch delete mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch create mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch delete mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch delete mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps/CVE-2019-3817.patch create mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb delete mode 100644 external/poky/meta/recipes-devtools/libcomps/libcomps_git.bb create mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch create mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch delete mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch delete mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch create mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf/fix-deprecation-warning.patch delete mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf_0.11.1.bb create mode 100644 external/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb create mode 100644 external/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch create mode 100644 external/poky/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb create mode 100644 external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch create mode 100644 external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb create mode 100644 external/poky/meta/recipes-devtools/librepo/librepo_1.11.2.bb delete mode 100644 external/poky/meta/recipes-devtools/librepo/librepo_1.8.1.bb create mode 100644 external/poky/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch create mode 100755 external/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch delete mode 100644 external/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch delete mode 100644 external/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch create mode 100644 external/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch create mode 100644 external/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch create mode 100644 external/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch delete mode 100644 external/poky/meta/recipes-devtools/m4/m4/remove-gets.patch create mode 100644 external/poky/meta/recipes-devtools/m4/m4/run-ptest create mode 100644 external/poky/meta/recipes-devtools/m4/m4/serial-tests-config.patch delete mode 100644 external/poky/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch delete mode 100644 external/poky/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch create mode 100644 external/poky/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch delete mode 100644 external/poky/meta/recipes-devtools/make/make_4.2.1.bb create mode 100644 external/poky/meta/recipes-devtools/make/make_4.3.bb delete mode 100644 external/poky/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch create mode 100644 external/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch delete mode 100644 external/poky/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch create mode 100644 external/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch create mode 100644 external/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch delete mode 100644 external/poky/meta/recipes-devtools/meson/meson/0002-Make-CPU-family-warnings-fatal.patch create mode 100644 external/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch create mode 100644 external/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch delete mode 100644 external/poky/meta/recipes-devtools/meson/meson/gi-flags.patch delete mode 100644 external/poky/meta/recipes-devtools/meson/meson/gtkdoc-flags.patch delete mode 100644 external/poky/meta/recipes-devtools/meson/meson_0.47.2.bb create mode 100644 external/poky/meta/recipes-devtools/meson/meson_0.53.2.bb delete mode 100644 external/poky/meta/recipes-devtools/meson/nativesdk-meson_0.47.2.bb create mode 100644 external/poky/meta/recipes-devtools/meson/nativesdk-meson_0.53.2.bb delete mode 100644 external/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.43.bb create mode 100644 external/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.44.bb delete mode 100644 external/poky/meta/recipes-devtools/mmc/mmc-utils/0001-lsmmc-replace-strncpy-with-memmove-on-overlapping-me.patch create mode 100644 external/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch delete mode 100644 external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch create mode 100644 external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch delete mode 100644 external/poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch delete mode 100644 external/poky/meta/recipes-devtools/mtools/mtools/0001-remove-LOCK_NB-to-use-blocking-request.patch delete mode 100644 external/poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb create mode 100644 external/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch create mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch create mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch create mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch create mode 100644 external/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch delete mode 100644 external/poky/meta/recipes-devtools/nasm/nasm_2.13.03.bb create mode 100644 external/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb create mode 100644 external/poky/meta/recipes-devtools/ninja/ninja_1.10.0.bb delete mode 100644 external/poky/meta/recipes-devtools/ninja/ninja_1.8.2.bb delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-update-alternatives-Fix-link-relocation-support.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch create mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pigz.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/threaded-xz.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb create mode 100644 external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb delete mode 100644 external/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch delete mode 100644 external/poky/meta/recipes-devtools/opkg/opkg/0001-remove_maintainer_scripts-use-strict-matching.patch create mode 100644 external/poky/meta/recipes-devtools/opkg/opkg/run-ptest delete mode 100644 external/poky/meta/recipes-devtools/opkg/opkg_0.3.6.bb create mode 100644 external/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb delete mode 100644 external/poky/meta/recipes-devtools/orc/orc_0.4.28.bb create mode 100644 external/poky/meta/recipes-devtools/orc/orc_0.4.31.bb delete mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch delete mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch delete mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf/avoidholes.patch create mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf/fix-phdrs.patch create mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf_0.10.bb delete mode 100644 external/poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/CVE-2020-10543.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_1.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_2.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/determinism.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/encodefix.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/errno_ver.diff create mode 100644 external/poky/meta/recipes-devtools/perl/files/native-perlinc.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/perl-configpm-switch.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt create mode 100644 external/poky/meta/recipes-devtools/perl/files/racefix.patch create mode 100644 external/poky/meta/recipes-devtools/perl/files/run-ptest delete mode 100644 external/poky/meta/recipes-devtools/perl/liberror-perl_0.17026.bb create mode 100644 external/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb create mode 100644 external/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest create mode 100644 external/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb delete mode 100644 external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002005.bb create mode 100644 external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb delete mode 100644 external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb create mode 100644 external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb delete mode 100644 external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb delete mode 100644 external/poky/meta/recipes-devtools/perl/perl-rdepends_5.24.4.inc delete mode 100644 external/poky/meta/recipes-devtools/perl/perl.inc delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/0001-Configure-Remove-fstack-protector-strong-for-native-.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/0001-Skip-various-tests-if-PERL_BUILD_PACKAGING-is-set.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/CVE-2018-12015.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18311.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18312.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18313.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18314.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/Configure-multilib.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/MM_Unix.pm.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/Makefile.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-32 delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-32-be delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-32-le delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-64 delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-64-be delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/config.sh-64-le delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/cross-generate_uudmap.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/cpan-missing-site-dirs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/cpan_definstalldirs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/db_file_ver.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/deprecate-with-apt.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/doc_info.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/enc2xs_inc.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/errno_ver.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/extutils_set_libperl_path.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fakeroot.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/find_html2text.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/fixes/respect_umask.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/instmodsh_doc.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/ld_run_path.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/libnet_config_path.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/libperl_embed_doc.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/locale-robustness.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/makemaker-pasthru.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/makemaker_customized.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/mod_paths.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/no_packlist_perllocal.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/patchlevel.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/perl5db-x-terminal-emulator.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/perlivp.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/pod2man-customized.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/prefix_changes.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/prune_libs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/regen-skip.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/skip-kfreebsd-crash.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/skip-upstream-git-tests.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/squelch-locale-warnings.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/debian/writable_site_dirs.diff delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/dynaloaderhack.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/ext-ODBM_File-hints-linux.pl-link-libgdbm_compat.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/ext-ODBM_File-t-odbm.t-fix-the-path-of-dbmt_common.p.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/generate-sh.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/installperl.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/letgcc-find-errno.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/make_ext.pl-fix-regenerate-makefile-failed-while-cc-.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/native-nopacklist.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/native-perlinc.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-5.26.1-guard_old_libcrypt_fix.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-PathTools-don-t-filter-out-blib-from-INC.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-archlib-exp.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-configpm-switch.patch delete mode 100755 external/poky/meta/recipes-devtools/perl/perl/perl-configure.sh delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-dynloader.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-errno-generation-gcc5.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/perl-moreconfig.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/run-ptest delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/t-run-switches.t-perl5-perl.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/test/dist-threads-t-join.t-adjust-ps-option.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl/test/ext-DynaLoader-t-DynaLoader.t-fix-calling-dl_findfil.patch delete mode 100644 external/poky/meta/recipes-devtools/perl/perl_5.24.4.bb create mode 100644 external/poky/meta/recipes-devtools/perl/perl_5.30.1.bb delete mode 100644 external/poky/meta/recipes-devtools/pkgconf/pkgconf_1.5.3.bb create mode 100644 external/poky/meta/recipes-devtools/pkgconf/pkgconf_1.6.3.bb create mode 100644 external/poky/meta/recipes-devtools/prelink/prelink/0001-Add-MIPS-gnu-hash-support.patch delete mode 100644 external/poky/meta/recipes-devtools/prelink/prelink/0001-src-arch-mips.c-check-info-resolvetls-before-use-its.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/seccomp.patch create mode 100644 external/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch create mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/0001-npy_cpu-Add-riscv-support.patch create mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/0001-numpy-random-setup.py-remove-the-detection-of-x86-ta.patch delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/arm/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/armeb/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/fix_shebang_f2py.patch delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32eb/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn32el/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64eb/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarchn64el/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32eb/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/mipsarcho32el/numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/riscv64/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/riscv64/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/x86/config.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/python-numpy_1.14.5.bb delete mode 100644 external/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.14.5.bb create mode 100644 external/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.17.4.bb create mode 100644 external/poky/meta/recipes-devtools/python/files/0001-bpo-39503-CVE-2020-8492-Fix-AbstractBasicAuthHandler.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-git.inc delete mode 100644 external/poky/meta/recipes-devtools/python/python-mako.inc delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/0001-python-native-fix-one-do_populate_sysroot-warning.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/10-distutils-fix-swig-parameter.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/11-distutils-never-modify-shebang-line.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/debug.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/multilib.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/nohostlibs.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/revert_use_of_sysconfigdata.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native/unixccompiler.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python-native_2.7.16.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python-nose_1.3.7.bb create mode 100644 external/poky/meta/recipes-devtools/python/python-pycryptodome.inc delete mode 100644 external/poky/meta/recipes-devtools/python/python-scons-native_3.0.1.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python-scons_3.0.1.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python-setuptools_40.0.0.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python.inc delete mode 100644 external/poky/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/03-fix-tkinter-detection.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/05-enable-ctypes-cross-build.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/add-md5module-support.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/avoid_warning_about_tkinter.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/avoid_warning_for_sunos_specific_module.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-30458-cve-2019-9740.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-35121-cve-2018-20852.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948-fix.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-35907-cve-2019-9948.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636-fix.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/bpo-36216-cve-2019-9636.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/builddir.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/cgi_py.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/check-if-target-is-64b-not-host.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/create_manifest2.py delete mode 100644 external/poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/float-endian.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/get_module_deps2.py delete mode 100644 external/poky/meta/recipes-devtools/python/python/host_include_contamination.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/multilib.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/parallel-makeinst-create-bindir.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/pass-missing-libraries-to-Extension-for-mul.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/python-2.7.3-remove-bsdb-rpath.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/python2-manifest.json delete mode 100644 external/poky/meta/recipes-devtools/python/python/run-ptest delete mode 100644 external/poky/meta/recipes-devtools/python/python/search_db_h_in_inc_dirs_and_avoid_warning.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/setup_py_skip_cross_import_check.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/setuptweaks.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/sitecustomize.py delete mode 100644 external/poky/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python/use_sysroot_ncurses_instead_of_host.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3-dbus_1.2.16.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-dbus_1.2.8.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-docutils_0.14.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-docutils_0.16.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-git_2.1.11.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-git_3.0.5.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-gitdb_2.0.4.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-gitdb_2.0.6.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-magic_0.4.15.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-mako_1.0.7.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-mako_1.1.1.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-native_3.5.6.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-pbr_4.2.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pbr_5.4.4.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-pip_18.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pip_20.0.2.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-pycairo_1.15.6.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pycairo_1.19.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pyelftools_0.26.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pygments_2.5.2.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pygobject/0001-Do-not-build-tests.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3-pygobject_3.28.3.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-pygobject_3.34.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-scons-native_3.1.2.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-scons_3.1.2.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-setuptools_40.0.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-setuptools_45.2.0.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-six_1.11.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-six_1.14.0.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python3-smmap_0.9.0.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-smmap_2.0.5.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3-testtools/no_traceback2.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3.inc create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Issue-28043-SSLContext-has-improved-default-settings.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Makefile-do-not-compile-.pyc-in-parallel.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-Use-FLAG_REF-always-for-interned-strings.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-configure.ac-fix-LIBPL.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-python3-Do-not-hardcode-lib-for-distutils.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0002-Makefile-add-target-to-split-profile-generation.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0002-bpo-29136-Add-TLS-1.3-cipher-suites-and-OP_NO_TLSv1_.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0003-bpo-32947-Fixes-for-TLS-1.3-and-OpenSSL-1.1.1-GH-876.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0004-bpo-33570-TLS-1.3-ciphers-for-OpenSSL-1.1.1-GH-6976.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/0005-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-2305.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0017-setup.py-do-not-report-missing-dependencies-for-disa.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/03-fix-tkinter-detection.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/030-fixup-include-dirs.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/080-distutils-dont_adjust_files.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/130-readline-setup.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/150-fix-setupterm.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2018-14647.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2018-20406.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2018-20852.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2019-9636.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2019-9740.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/CVE-2020-14422.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/Use-correct-CFLAGS-for-extensions-when-cross-compili.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/avoid-ncursesw-include-path.patch create mode 100755 external/poky/meta/recipes-devtools/python/python3/check_build_completeness.py delete mode 100644 external/poky/meta/recipes-devtools/python/python3/configure.ac-fix-LIBPL.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/float-endian.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/ftplib.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/host_include_contamination.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/pass-missing-libraries-to-Extension-for-mul.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch create mode 100644 external/poky/meta/recipes-devtools/python/python3/reformat_sysconfig.py delete mode 100644 external/poky/meta/recipes-devtools/python/python3/regen-all.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/setup.py-check-cross_compiling-when-get-FLAGS.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/setuptweaks.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/signal.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/sitecustomize.py delete mode 100644 external/poky/meta/recipes-devtools/python/python3/support_SOURCE_DATE_EPOCH_in_py_compile.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/sysconfig.py-add-_PYTHON_PROJECT_SRC.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/sysroot-include-headers.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/tweak-MULTIARCH-for-powerpc-linux-gnuspe.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3/unixccompiler.patch delete mode 100644 external/poky/meta/recipes-devtools/python/python3_3.5.6.bb create mode 100644 external/poky/meta/recipes-devtools/python/python3_3.8.2.bb delete mode 100644 external/poky/meta/recipes-devtools/python/python_2.7.16.bb create mode 100755 external/poky/meta/recipes-devtools/qemu/qemu-helper/qemu-oe-bridge-helper create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu-native.inc create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu-native_4.2.0.bb create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-assume-__NR_gettid-always-exists.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-linux-user-rename-gettid-to-sys_gettid-to-avoid-clas.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0001-sdl.c-allow-user-to-disable-pointer-grabs.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0002-qemu-Add-missing-wacom-HID-descriptor.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0003-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-Add-addition-environment-space-to-boot-loader-q.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-disable-Valgrind.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-Limit-paths-searched-during-user-mode-emulation.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0007-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0008-chardev-connect-socket-to-a-spawned-command.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0009-apic-fixup-fallthrough-to-PIC.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0011-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0011-hw-i386-pc-fix-regression-in-parsing-vga-cmdline-par.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-10839.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-15746.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-16867.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-16872.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-17962.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-17963.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-18849.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-18954.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-19364_p1.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-19364_p2.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-19489.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p1.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2018-20815_p2.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-15890.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-3812.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-6778.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-8934.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-9824.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10702.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-11102.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-11869.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13361.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-15863.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-1711.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-7039-1.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-7039-2.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-7039-3.patch create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-7211.patch delete mode 100644 external/poky/meta/recipes-devtools/qemu/qemu_3.0.0.bb create mode 100644 external/poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb delete mode 100644 external/poky/meta/recipes-devtools/quilt/quilt-native.inc delete mode 100644 external/poky/meta/recipes-devtools/quilt/quilt-native_0.65.bb create mode 100644 external/poky/meta/recipes-devtools/quilt/quilt-native_0.66.bb delete mode 100644 external/poky/meta/recipes-devtools/quilt/quilt_0.65.bb create mode 100644 external/poky/meta/recipes-devtools/quilt/quilt_0.66.bb create mode 100644 external/poky/meta/recipes-devtools/rpm/files/0001-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch create mode 100644 external/poky/meta/recipes-devtools/rpm/files/0001-mono-find-provides-requires-do-not-use-monodis-from-.patch create mode 100644 external/poky/meta/recipes-devtools/rpm/files/0001-rpmplugins.c-call-dlerror-prior-to-dlsym.patch create mode 100644 external/poky/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch create mode 100644 external/poky/meta/recipes-devtools/rpm/rpm_4.14.2.1.bb delete mode 100644 external/poky/meta/recipes-devtools/rpm/rpm_4.14.2.bb create mode 100644 external/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch create mode 100644 external/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch create mode 100644 external/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch create mode 100644 external/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch create mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch create mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/0001-extmk-fix-cross-compilation-of-external-gems.patch delete mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/extmk.patch create mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/remove_has_include_macros.patch delete mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9226.patch delete mode 100644 external/poky/meta/recipes-devtools/ruby/ruby/ruby-CVE-2017-9228.patch delete mode 100644 external/poky/meta/recipes-devtools/ruby/ruby_2.5.3.bb create mode 100644 external/poky/meta/recipes-devtools/ruby/ruby_2.7.1.bb create mode 100644 external/poky/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch delete mode 100644 external/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-mksquashfs.c-get-inline-functions-work-with-C99.patch delete mode 100644 external/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/0001-squashfs-tools-patch-for-CVE-2015-4645-6.patch delete mode 100644 external/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/fix-compat.patch delete mode 100644 external/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools/squashfs-tools-4.3-sysmacros.patch delete mode 100644 external/poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch create mode 100644 external/poky/meta/recipes-devtools/strace/strace/0001-strace-fix-reproducibilty-issues.patch delete mode 100644 external/poky/meta/recipes-devtools/strace/strace/0001-tests-sigaction-Check-for-mips-and-alpha-before-usin.patch delete mode 100644 external/poky/meta/recipes-devtools/strace/strace/more-robust-test-for-m32-mx32-compile-support.patch create mode 100644 external/poky/meta/recipes-devtools/strace/strace/ptest-spacesave.patch create mode 100644 external/poky/meta/recipes-devtools/strace/strace/uintptr_t.patch delete mode 100644 external/poky/meta/recipes-devtools/strace/strace_4.24.bb create mode 100644 external/poky/meta/recipes-devtools/strace/strace_5.5.bb delete mode 100644 external/poky/meta/recipes-devtools/subversion/subversion/serf.m4-Regex-modified-to-allow-D-in-paths.patch delete mode 100644 external/poky/meta/recipes-devtools/subversion/subversion_1.10.0.bb create mode 100644 external/poky/meta/recipes-devtools/subversion/subversion_1.13.0.bb create mode 100644 external/poky/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch create mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/0001-install-don-t-install-obsolete-file-com32.ld.patch create mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/0010-gcc46-compatibility.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/0011-mk-MMD-does-not-take-any-arguments.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/syslinux-6.03-sysmacros.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/syslinux-fix-parallel-building-issue.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux/syslinux-libupload-depend-lib.patch delete mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb create mode 100644 external/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb create mode 100644 external/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch create mode 100644 external/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/mips64.patch create mode 100644 external/poky/meta/recipes-devtools/tcltk/tcl/0001-Fix-abd4abedd2-Failed-to-build-tk-8.6.10-with-cross-.patch create mode 100644 external/poky/meta/recipes-devtools/tcltk/tcl_8.6.10.bb delete mode 100644 external/poky/meta/recipes-devtools/tcltk/tcl_8.6.8.bb create mode 100644 external/poky/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch delete mode 100644 external/poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb create mode 100644 external/poky/meta/recipes-devtools/unfs3/unfs3_git.bb delete mode 100644 external/poky/meta/recipes-devtools/unifdef/unifdef_2.11.bb create mode 100644 external/poky/meta/recipes-devtools/unifdef/unifdef_2.12.bb delete mode 100644 external/poky/meta/recipes-devtools/vala/vala/0001-Disable-valadoc.patch delete mode 100644 external/poky/meta/recipes-devtools/vala/vala/disable-graphviz.patch delete mode 100644 external/poky/meta/recipes-devtools/vala/vala_0.42.0.bb create mode 100644 external/poky/meta/recipes-devtools/vala/vala_0.46.6.bb create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-Return-a-valid-exit_code-from-vg_regtest.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-memcheck-tests-Fix-timerfd-syscall-test.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-tests-Make-pthread_detatch-call-portable-across-plat.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0001-valgrind-filter_xml_frames-do-not-filter-usr.patch delete mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/0006-pth_detached3.c-Dereference-pthread_t-before-adding-.patch create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind/s390x_vec_op_t.patch delete mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind_3.14.0.bb create mode 100644 external/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb delete mode 100644 external/poky/meta/recipes-devtools/xmlto/files/catalog.xml delete mode 100644 external/poky/meta/recipes-extended/acpica/acpica_20180508.bb create mode 100644 external/poky/meta/recipes-extended/acpica/acpica_20200430.bb delete mode 100644 external/poky/meta/recipes-extended/acpica/files/manipulate-fds-instead-of-FILE.patch delete mode 100644 external/poky/meta/recipes-extended/acpica/files/rename-yy_scan_string-manually.patch create mode 100644 external/poky/meta/recipes-extended/asciidoc/asciidoc/auto-catalogs.patch delete mode 100644 external/poky/meta/recipes-extended/at/at_3.1.20.bb create mode 100644 external/poky/meta/recipes-extended/at/at_3.1.23.bb delete mode 100644 external/poky/meta/recipes-extended/bash/bash/0001-help-fix-printf-format-security-warning.patch delete mode 100644 external/poky/meta/recipes-extended/bash/bash/fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch delete mode 100644 external/poky/meta/recipes-extended/bash/bash/pathexp-dep.patch create mode 100644 external/poky/meta/recipes-extended/bash/bash/run-bash-ptests delete mode 100644 external/poky/meta/recipes-extended/bash/bash_4.4.18.bb create mode 100644 external/poky/meta/recipes-extended/bash/bash_5.0.bb create mode 100644 external/poky/meta/recipes-extended/bc/bc/0001-dc-fix-exit-code-of-q-command.patch create mode 100644 external/poky/meta/recipes-extended/blktool/blktool/0004-fix-ftbfs-glibc-2.28.patch delete mode 100644 external/poky/meta/recipes-extended/blktool/blktool/blktool-gnulib-makedev.patch create mode 100644 external/poky/meta/recipes-extended/blktool/blktool_4-7.1.bb delete mode 100644 external/poky/meta/recipes-extended/blktool/blktool_4-7.bb delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2019-12900.patch delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/Makefile.am delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/configure.ac delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-bunzip2-qt-returns-0-for-corrupt-archives.patch delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/fix-regression-CVE-2019-12900.patch delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2-1.0.6/run-ptest create mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am create mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2/configure.ac create mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2/run-ptest delete mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb create mode 100644 external/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb delete mode 100644 external/poky/meta/recipes-extended/chkconfig/chkconfig-alternatives-native_1.3.59.bb delete mode 100644 external/poky/meta/recipes-extended/chkconfig/chkconfig/replace_caddr_t.patch delete mode 100644 external/poky/meta/recipes-extended/chkconfig/chkconfig_1.3.58.bb delete mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.12/0001-CVE-2016-2037-1-byte-out-of-bounds-write.patch delete mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-CVE-2015-1197.patch delete mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.12/0001-Fix-segfault-with-append.patch delete mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.12/0001-Unset-need_charset_alias-when-building-for-musl.patch create mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.13/0001-Unset-need_charset_alias-when-building-for-musl.patch create mode 100644 external/poky/meta/recipes-extended/cpio/cpio-2.13/0002-src-global.c-Remove-superfluous-declaration-of-progr.patch delete mode 100644 external/poky/meta/recipes-extended/cpio/cpio_2.12.bb create mode 100644 external/poky/meta/recipes-extended/cpio/cpio_2.13.bb delete mode 100644 external/poky/meta/recipes-extended/cronie/cronie_1.5.2.bb create mode 100644 external/poky/meta/recipes-extended/cronie/cronie_1.5.5.bb delete mode 100644 external/poky/meta/recipes-extended/cups/cups/0001-don-t-try-to-run-generated-binaries.patch create mode 100644 external/poky/meta/recipes-extended/cups/cups/0001-use-echo-only-in-init.patch create mode 100644 external/poky/meta/recipes-extended/cups/cups/0002-don-t-try-to-run-generated-binaries.patch create mode 100644 external/poky/meta/recipes-extended/cups/cups/0003-cups_1.4.6.bb-Fix-build-on-ppc64.patch create mode 100644 external/poky/meta/recipes-extended/cups/cups/0004-cups-fix-multilib-install-file-conflicts.patch delete mode 100644 external/poky/meta/recipes-extended/cups/cups/cups-avoid-install-file-conflicts.patch delete mode 100644 external/poky/meta/recipes-extended/cups/cups/cups_serverbin.patch delete mode 100644 external/poky/meta/recipes-extended/cups/cups/use_echo_only_in_init.patch delete mode 100644 external/poky/meta/recipes-extended/cups/cups_2.2.10.bb create mode 100644 external/poky/meta/recipes-extended/cups/cups_2.3.1.bb delete mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils-3.6/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils-3.6/0001-explicitly-disable-replacing-getopt.patch delete mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils-3.6/run-ptest create mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils/0001-Skip-strip-trailing-cr-test-case.patch create mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils/run-ptest delete mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils_3.6.bb create mode 100644 external/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb delete mode 100644 external/poky/meta/recipes-extended/ed/ed_1.14.2.bb create mode 100644 external/poky/meta/recipes-extended/ed/ed_1.15.bb delete mode 100644 external/poky/meta/recipes-extended/ethtool/ethtool_4.19.bb create mode 100644 external/poky/meta/recipes-extended/ethtool/ethtool_5.4.bb delete mode 100644 external/poky/meta/recipes-extended/findutils/findutils/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/findutils/findutils/0001-find-make-delete-honour-the-ignore_readdir_race-opti.patch delete mode 100644 external/poky/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-fflush.patch delete mode 100644 external/poky/meta/recipes-extended/findutils/findutils/findutils-4.6.0-gnulib-makedev.patch delete mode 100644 external/poky/meta/recipes-extended/findutils/findutils_4.6.0.bb create mode 100644 external/poky/meta/recipes-extended/findutils/findutils_4.7.0.bb delete mode 100644 external/poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch delete mode 100644 external/poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch delete mode 100644 external/poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb delete mode 100644 external/poky/meta/recipes-extended/gawk/gawk_4.2.1.bb create mode 100644 external/poky/meta/recipes-extended/gawk/gawk_5.0.1.bb create mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-14869-0001.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3835-0001.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3835-0002.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3835-0003.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3835-0004.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3838-0001.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-3838-0002.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0001.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0002.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0003.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0004.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0005.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0006.patch delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2019-6116-0007.patch create mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch create mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/microblaze/objarch.h delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/microblazeeb/objarch.h create mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript/powerpc64le/objarch.h delete mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript_9.26.bb create mode 100644 external/poky/meta/recipes-extended/ghostscript/ghostscript_9.50.bb delete mode 100644 external/poky/meta/recipes-extended/grep/grep/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/grep/grep_3.1.bb create mode 100644 external/poky/meta/recipes-extended/grep/grep_3.4.bb create mode 100644 external/poky/meta/recipes-extended/groff/files/0001-Include-config.h.patch create mode 100644 external/poky/meta/recipes-extended/groff/files/0001-Make-manpages-mulitlib-identical.patch create mode 100644 external/poky/meta/recipes-extended/groff/files/0001-replace-perl-w-with-use-warnings.patch create mode 100644 external/poky/meta/recipes-extended/groff/files/0001-support-musl.patch create mode 100644 external/poky/meta/recipes-extended/groff/files/groff-not-search-fonts-on-build-host.patch delete mode 100644 external/poky/meta/recipes-extended/groff/groff-1.22.3/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/groff/groff-1.22.3/0001-replace-perl-w-with-use-warnings.patch delete mode 100644 external/poky/meta/recipes-extended/groff/groff-1.22.3/groff-1.22.2-correct-man.local-install-path.patch delete mode 100644 external/poky/meta/recipes-extended/groff/groff-1.22.3/groff-not-search-fonts-on-build-host.patch delete mode 100644 external/poky/meta/recipes-extended/groff/groff_1.22.3.bb create mode 100644 external/poky/meta/recipes-extended/groff/groff_1.22.4.bb create mode 100644 external/poky/meta/recipes-extended/gzip/gzip-1.10/wrong-path-fix.patch delete mode 100644 external/poky/meta/recipes-extended/gzip/gzip-1.9/gnulib.patch delete mode 100644 external/poky/meta/recipes-extended/gzip/gzip-1.9/wrong-path-fix.patch create mode 100644 external/poky/meta/recipes-extended/gzip/gzip_1.10.bb delete mode 100644 external/poky/meta/recipes-extended/gzip/gzip_1.9.bb delete mode 100644 external/poky/meta/recipes-extended/hdparm/hdparm_9.56.bb create mode 100644 external/poky/meta/recipes-extended/hdparm/hdparm_9.58.bb delete mode 100644 external/poky/meta/recipes-extended/images/core-image-lsb-dev.bb delete mode 100644 external/poky/meta/recipes-extended/images/core-image-lsb-sdk.bb delete mode 100644 external/poky/meta/recipes-extended/images/core-image-lsb.bb create mode 100644 external/poky/meta/recipes-extended/iptables/iptables/ip6tables.rules create mode 100644 external/poky/meta/recipes-extended/iptables/iptables/ip6tables.service create mode 100644 external/poky/meta/recipes-extended/iptables/iptables/iptables.rules create mode 100644 external/poky/meta/recipes-extended/iptables/iptables/iptables.service delete mode 100644 external/poky/meta/recipes-extended/iptables/iptables_1.6.2.bb create mode 100644 external/poky/meta/recipes-extended/iptables/iptables_1.8.4.bb create mode 100644 external/poky/meta/recipes-extended/iputils/iputils/0001-iputils-Initialize-libgcrypt.patch create mode 100644 external/poky/meta/recipes-extended/iputils/iputils/0001-ninfod-change-variable-name-to-avoid-colliding-with-.patch create mode 100644 external/poky/meta/recipes-extended/iputils/iputils/0001-ninfod-fix-systemd-Documentation-url-error.patch create mode 100644 external/poky/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch delete mode 100644 external/poky/meta/recipes-extended/iputils/iputils/ai_canonidn.patch delete mode 100644 external/poky/meta/recipes-extended/iputils/iputils/install.patch delete mode 100644 external/poky/meta/recipes-extended/iputils/iputils_s20180629.bb create mode 100644 external/poky/meta/recipes-extended/iputils/iputils_s20190709.bb delete mode 100644 external/poky/meta/recipes-extended/less/less_530.bb create mode 100644 external/poky/meta/recipes-extended/less/less_551.bb delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000877.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000878.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000879.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2018-1000880.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000019.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/CVE-2019-1000020.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/bug1066.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive/non-recursive-extract-and-list.patch delete mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive_3.3.3.bb create mode 100644 external/poky/meta/recipes-extended/libarchive/libarchive_3.4.2.bb delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn/0001-idn-format-security-warnings.patch delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn2/Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn2_2.0.5.bb create mode 100644 external/poky/meta/recipes-extended/libidn/libidn2_2.3.0.bb delete mode 100644 external/poky/meta/recipes-extended/libidn/libidn_1.35.bb delete mode 100644 external/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.0.bb create mode 100644 external/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.2.bb delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0002-Fixes-to-internal-fopencookie-implementation.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0003-Fix-Dereference-of-null-pointer.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0004-Fix-Add-va_end-before-return.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0005-Fix-Memory-leaks.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0006-Fix-testsolv-segfault.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0007-Fix-testsolv-segfaults.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0008-Fix-Be-sure-that-NONBLOCK-is-set.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv/0009-Don-t-set-values-that-are-never-read.patch delete mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv_0.6.35.bb create mode 100644 external/poky/meta/recipes-extended/libsolv/libsolv_0.7.10.bb delete mode 100644 external/poky/meta/recipes-extended/libtirpc/libtirpc/libtirpc-1.0.4-rc1.patch delete mode 100644 external/poky/meta/recipes-extended/libtirpc/libtirpc/musl.patch delete mode 100644 external/poky/meta/recipes-extended/libtirpc/libtirpc_1.0.3.bb create mode 100644 external/poky/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb delete mode 100644 external/poky/meta/recipes-extended/lighttpd/lighttpd/fix-http-parseopts.patch delete mode 100644 external/poky/meta/recipes-extended/lighttpd/lighttpd/lighttpd.service delete mode 100644 external/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.51.bb create mode 100644 external/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.55.bb delete mode 100644 external/poky/meta/recipes-extended/logrotate/logrotate_3.14.0.bb create mode 100644 external/poky/meta/recipes-extended/logrotate/logrotate_3.15.1.bb create mode 100644 external/poky/meta/recipes-extended/lsb/lsb-release/0001-Remove-timestamp-from-manpage.patch create mode 100644 external/poky/meta/recipes-extended/lsb/lsb-release/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch create mode 100644 external/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb delete mode 100644 external/poky/meta/recipes-extended/lsb/lsb/0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch delete mode 100755 external/poky/meta/recipes-extended/lsb/lsb/init-functions delete mode 100755 external/poky/meta/recipes-extended/lsb/lsb/lsb_killproc delete mode 100755 external/poky/meta/recipes-extended/lsb/lsb/lsb_log_message delete mode 100755 external/poky/meta/recipes-extended/lsb/lsb/lsb_pidofproc delete mode 100755 external/poky/meta/recipes-extended/lsb/lsb/lsb_start_daemon delete mode 100644 external/poky/meta/recipes-extended/lsb/lsb_5.0.bb delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbinitscripts/functions.patch delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbinitscripts_9.79.bb delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbtest/packages_list delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbtest/session delete mode 100644 external/poky/meta/recipes-extended/lsb/lsbtest_1.0.bb create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-mmap15-mips64-return-EINVAL.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-netns_helper.sh-use-ping-6-when-ping6-is-not-avaliab.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-mmap24-2-Relax-condition-a-bit.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo01-recent-glibc-calls-syscall-directly.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-fcntl-make-OFD-command-use-fcntl64-syscall-.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch create mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0040-read_all-Define-FNM_EXTMATCH-if-not-already-like-und.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0041-cve-2017-5669-shmat-for-0-or-PAGESIZE-with-RND-flag-.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0042-fs-ftest-ftest06.c-Fix-too-small-name-string-and-rel.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp/0043-open-creat-skip-S_ISGID-check-on-files-created-by-no.patch delete mode 100644 external/poky/meta/recipes-extended/ltp/ltp_20180515.bb create mode 100644 external/poky/meta/recipes-extended/ltp/ltp_20200120.bb delete mode 100644 external/poky/meta/recipes-extended/lzip/lzip_1.20.bb create mode 100644 external/poky/meta/recipes-extended/lzip/lzip_1.21.bb delete mode 100644 external/poky/meta/recipes-extended/man-db/man-db_2.8.3.bb create mode 100644 external/poky/meta/recipes-extended/man-db/man-db_2.9.0.bb delete mode 100644 external/poky/meta/recipes-extended/man-pages/man-pages_4.16.bb create mode 100644 external/poky/meta/recipes-extended/man-pages/man-pages_5.05.bb create mode 100644 external/poky/meta/recipes-extended/mc/files/0001-Add-option-to-control-configure-args.patch create mode 100644 external/poky/meta/recipes-extended/mc/files/0001-Ticket-3629-configure.ac-drop-bundled-gettext.patch create mode 100644 external/poky/meta/recipes-extended/mc/files/nomandate.patch delete mode 100644 external/poky/meta/recipes-extended/mc/mc_4.8.21.bb create mode 100644 external/poky/meta/recipes-extended/mc/mc_4.8.23.bb create mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-Disable-gcc8-warnings.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-fix-gcc-8-format-truncation-warning.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-include-sys-sysmacros.h-for-major-minor-defintions.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-mdadm-Add-Wimplicit-fallthrough-0-in-Makefile.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0001-use-memmove-instead-of-memcpy-on-overlapping-region.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0002-mdadm-Specify-enough-length-when-write-to-buffer.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0003-Replace-snprintf-with-strncpy-at-some-places-to-avoi.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0004-mdadm-Forced-type-conversion-to-avoid-truncation.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/0005-Add-a-comment-to-indicate-valid-fallthrough.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/debian-no-Werror.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/gcc-4.9.patch create mode 100644 external/poky/meta/recipes-extended/mdadm/files/include_sysmacros.patch delete mode 100644 external/poky/meta/recipes-extended/mdadm/files/mdmonitor.service delete mode 100644 external/poky/meta/recipes-extended/mdadm/mdadm_4.0.bb create mode 100644 external/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb delete mode 100644 external/poky/meta/recipes-extended/msmtp/msmtp_1.6.6.bb create mode 100644 external/poky/meta/recipes-extended/msmtp/msmtp_1.8.7.bb create mode 100644 external/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch create mode 100644 external/poky/meta/recipes-extended/newt/files/0002-don-t-ignore-CFLAGS-when-building-snack.patch delete mode 100644 external/poky/meta/recipes-extended/newt/files/fix_SHAREDDIR.patch delete mode 100644 external/poky/meta/recipes-extended/newt/files/pie-flags.patch delete mode 100644 external/poky/meta/recipes-extended/newt/libnewt-python_0.52.20.bb delete mode 100644 external/poky/meta/recipes-extended/newt/libnewt_0.52.20.bb create mode 100644 external/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb create mode 100644 external/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb delete mode 100644 external/poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb delete mode 100644 external/poky/meta/recipes-extended/pam/libpam/fixsepbuild.patch delete mode 100644 external/poky/meta/recipes-extended/pam/libpam/libpam-xtests-remove-bash-dependency.patch delete mode 100644 external/poky/meta/recipes-extended/pam/libpam_1.3.0.bb create mode 100644 external/poky/meta/recipes-extended/pam/libpam_1.3.1.bb delete mode 100644 external/poky/meta/recipes-extended/parted/files/0001-Include-fcntl.h-in-platform_defs.h.patch delete mode 100644 external/poky/meta/recipes-extended/parted/files/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/parted/files/0001-libparted-Use-read-only-when-probing-devices-on-linu.patch create mode 100644 external/poky/meta/recipes-extended/parted/files/0001-libparted-fs-add-sourcedir-lib-to-include-paths.patch create mode 100644 external/poky/meta/recipes-extended/parted/files/0002-tests-use-skip_-rather-than-skip_test_-which-is-unde.patch delete mode 100644 external/poky/meta/recipes-extended/parted/files/Makefile delete mode 100644 external/poky/meta/recipes-extended/parted/files/fix-compile-failure-while-dis.patch delete mode 100644 external/poky/meta/recipes-extended/parted/files/syscalls.patch delete mode 100644 external/poky/meta/recipes-extended/parted/parted/parted-3.2-sysmacros.patch delete mode 100644 external/poky/meta/recipes-extended/parted/parted_3.2.bb create mode 100644 external/poky/meta/recipes-extended/parted/parted_3.3.bb delete mode 100644 external/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb create mode 100644 external/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb delete mode 100644 external/poky/meta/recipes-extended/procps/procps/0001-Fix-out-of-tree-builds.patch delete mode 100644 external/poky/meta/recipes-extended/procps/procps_3.3.15.bb create mode 100644 external/poky/meta/recipes-extended/procps/procps_3.3.16.bb delete mode 100644 external/poky/meta/recipes-extended/psmisc/psmisc/0001-Makefile.am-create-src-directory-before-attempting-t.patch delete mode 100644 external/poky/meta/recipes-extended/psmisc/psmisc_23.1.bb create mode 100644 external/poky/meta/recipes-extended/psmisc/psmisc_23.3.bb delete mode 100644 external/poky/meta/recipes-extended/quota/quota/remove_non_posix_types.patch delete mode 100644 external/poky/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch delete mode 100644 external/poky/meta/recipes-extended/quota/quota_4.04.bb create mode 100644 external/poky/meta/recipes-extended/quota/quota_4.05.bb delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/0001-rpcbind-pair-all-svc_getargs-calls-with-svc_freeargs.patch create mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/0001-systemd-use-EnvironmentFile.patch delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/pmapproc_dump-Fixed-typo-in-memory-leak-patch.patch delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind.service delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind.socket delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbproc_callit_com-Stop-freeing-a-static-pointer.patch delete mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind_0.2.4.bb create mode 100644 external/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb create mode 100644 external/poky/meta/recipes-extended/screen/screen/0001-Remove-more-compatibility-stuff.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen/0001-configure.ac-fix-configure-failed-while-build-dir-ha.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen/Avoid-mis-identifying-systems-as-SVR4.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen/Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen/Remove-redundant-compiler-sanity-checks.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen/Skip-host-file-system-checks-when-cross-compiling.patch delete mode 100644 external/poky/meta/recipes-extended/screen/screen_4.6.2.bb create mode 100644 external/poky/meta/recipes-extended/screen/screen_4.8.0.bb delete mode 100644 external/poky/meta/recipes-extended/sed/sed-4.2.2/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/sed/sed-4.2.2/run-ptest delete mode 100644 external/poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch create mode 100644 external/poky/meta/recipes-extended/sed/sed/run-ptest delete mode 100644 external/poky/meta/recipes-extended/sed/sed_4.2.2.bb create mode 100644 external/poky/meta/recipes-extended/sed/sed_4.8.bb delete mode 100644 external/poky/meta/recipes-extended/shadow/files/0001-useradd-copy-extended-attributes-of-home.patch delete mode 100644 external/poky/meta/recipes-extended/shadow/files/0001-useradd.c-create-parent-directories-when-necessary.patch create mode 100644 external/poky/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch delete mode 100644 external/poky/meta/recipes-extended/shadow/files/allow-for-setting-password-in-clear-text.patch delete mode 100644 external/poky/meta/recipes-extended/shadow/shadow_4.6.bb create mode 100644 external/poky/meta/recipes-extended/shadow/shadow_4.8.1.bb create mode 100644 external/poky/meta/recipes-extended/slang/slang/array_test.patch create mode 100644 external/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch create mode 100644 external/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.01.bb delete mode 100644 external/poky/meta/recipes-extended/stress/files/texinfo.patch delete mode 100644 external/poky/meta/recipes-extended/stress/stress_1.0.4.bb delete mode 100644 external/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287_p1.patch delete mode 100644 external/poky/meta/recipes-extended/sudo/sudo/CVE-2019-14287_p2.patch delete mode 100644 external/poky/meta/recipes-extended/sudo/sudo_1.8.23.bb create mode 100644 external/poky/meta/recipes-extended/sudo/sudo_1.8.31.bb delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/0001-Fix-build-with-musl.patch create mode 100644 external/poky/meta/recipes-extended/sysklogd/files/0001-fix-one-rarely-reproduced-parallel-build-problem.patch delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/0001-fix-problems-that-causes-a-segmentation-fault-under-.patch delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/0002-Make-way-for-respecting-flags-from-environment.patch delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/klogd.service delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/no-strip-install.patch delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/no-vectorization.patch delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/syslog.conf delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/syslogd.service delete mode 100644 external/poky/meta/recipes-extended/sysklogd/files/tmpfiles.sysklogd.conf delete mode 100644 external/poky/meta/recipes-extended/sysklogd/sysklogd_1.5.1.bb create mode 100644 external/poky/meta/recipes-extended/sysklogd/sysklogd_2.1.1.bb delete mode 100644 external/poky/meta/recipes-extended/sysstat/sysstat/0001-Include-needed-headers-explicitly.patch create mode 100644 external/poky/meta/recipes-extended/sysstat/sysstat/0001-configure.in-remove-check-for-chkconfig.patch delete mode 100644 external/poky/meta/recipes-extended/sysstat/sysstat_11.7.4.bb create mode 100644 external/poky/meta/recipes-extended/sysstat/sysstat_12.2.1.bb delete mode 100644 external/poky/meta/recipes-extended/tar/tar/CVE-2018-20482.patch delete mode 100644 external/poky/meta/recipes-extended/tar/tar/CVE-2019-9923.patch delete mode 100644 external/poky/meta/recipes-extended/tar/tar/remove-gets.patch delete mode 100644 external/poky/meta/recipes-extended/tar/tar_1.30.bb create mode 100644 external/poky/meta/recipes-extended/tar/tar_1.32.bb create mode 100644 external/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/0001-Remove-fgets-extern-declaration.patch create mode 100644 external/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/fix_warnings.patch create mode 100644 external/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/fix_warnings2.patch delete mode 100644 external/poky/meta/recipes-extended/texi2html/files/0001-Allow-compiling-out-of-source.patch delete mode 100644 external/poky/meta/recipes-extended/texi2html/texi2html_5.0.bb delete mode 100644 external/poky/meta/recipes-extended/texinfo/texinfo/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/texinfo/texinfo_6.5.bb create mode 100644 external/poky/meta/recipes-extended/texinfo/texinfo_6.7.bb delete mode 100644 external/poky/meta/recipes-extended/wget/wget/0001-Unset-need_charset_alias-when-building-for-musl.patch delete mode 100644 external/poky/meta/recipes-extended/wget/wget/CVE-2018-20483_p1.patch delete mode 100644 external/poky/meta/recipes-extended/wget/wget/CVE-2018-20483_p2.patch delete mode 100644 external/poky/meta/recipes-extended/wget/wget/CVE-2019-5953.patch delete mode 100644 external/poky/meta/recipes-extended/wget/wget_1.19.5.bb create mode 100644 external/poky/meta/recipes-extended/wget/wget_1.20.3.bb create mode 100644 external/poky/meta/recipes-extended/zip/zip-3.0/10-remove-build-date.patch create mode 100644 external/poky/meta/recipes-extended/zip/zip-3.0/zipnote-crashes-with-segfault.patch delete mode 100644 external/poky/meta/recipes-gnome/epiphany/epiphany_3.28.3.1.bb create mode 100644 external/poky/meta/recipes-gnome/epiphany/epiphany_3.34.4.bb delete mode 100644 external/poky/meta/recipes-gnome/gcr/gcr_3.28.0.bb create mode 100644 external/poky/meta/recipes-gnome/gcr/gcr_3.34.0.bb create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch delete mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-without-libtiff-not-having-an-effect.patch create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0004-Do-not-run-tests-when-building.patch create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch delete mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch delete mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/missing-test-data.patch delete mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb create mode 100644 external/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb delete mode 100644 external/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.28.0.bb create mode 100644 external/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb delete mode 100644 external/poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch delete mode 100644 external/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb delete mode 100644 external/poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch delete mode 100644 external/poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb create mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Fix-build-reproducibility.patch create mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Port-cross-compilation-support-to-meson.patch delete mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch delete mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-make-GIR_DIR-configurable.patch create mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-gir-add-a-dependency-for-g-ir-compiler-for-building-.patch create mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-disable-tests-when-cross-compiling.patch delete mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch delete mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-g-ir-tools-respect-gir_dir_prefix.patch delete mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.58.0.bb create mode 100644 external/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.62.0.bb create mode 100644 external/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas/0001-Do-not-skip-gir-installation-for-cross-compiling.patch delete mode 100644 external/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.28.1.bb create mode 100644 external/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.0.bb delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+.inc delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch create mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+3/link_fribidi.patch create mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+3/sort-resources.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.30.bb create mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.14.bb delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.30.bb delete mode 100644 external/poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch delete mode 100644 external/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.29.bb create mode 100644 external/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.32.bb create mode 100644 external/poky/meta/recipes-gnome/json-glib/json-glib/run-ptest delete mode 100644 external/poky/meta/recipes-gnome/json-glib/json-glib_1.4.2.bb create mode 100644 external/poky/meta/recipes-gnome/json-glib/json-glib_1.4.4.bb create mode 100644 external/poky/meta/recipes-gnome/libdazzle/libdazzle_3.34.1.bb delete mode 100644 external/poky/meta/recipes-gnome/libgudev/libgudev_232.bb create mode 100644 external/poky/meta/recipes-gnome/libgudev/libgudev_233.bb delete mode 100644 external/poky/meta/recipes-gnome/libnotify/libnotify_0.7.7.bb create mode 100644 external/poky/meta/recipes-gnome/libnotify/libnotify_0.7.8.bb create mode 100644 external/poky/meta/recipes-gnome/librsvg/librsvg/0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch create mode 100644 external/poky/meta/recipes-gnome/librsvg/librsvg/0001-Remove-non-reproducible-SRCDIR.patch delete mode 100644 external/poky/meta/recipes-gnome/libsecret/libsecret_0.18.6.bb create mode 100644 external/poky/meta/recipes-gnome/libsecret/libsecret_0.20.1.bb delete mode 100644 external/poky/meta/recipes-graphics/cairo/cairo/0001-cairo-Fix-CVE-2017-9814.patch create mode 100644 external/poky/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch delete mode 100644 external/poky/meta/recipes-graphics/cairo/cairo_1.14.12.bb create mode 100644 external/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb delete mode 100644 external/poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.26.bb create mode 100644 external/poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb create mode 100644 external/poky/meta/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch delete mode 100644 external/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-Fix-an-incorrect-preprocessor-conditional.patch delete mode 100644 external/poky/meta/recipes-graphics/cogl/cogl-1.0/test-backface-culling.c-fix-may-be-used-uninitialize.patch delete mode 100644 external/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.2.bb create mode 100644 external/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.4.bb delete mode 100644 external/poky/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch create mode 100644 external/poky/meta/recipes-graphics/drm/libdrm_2.4.101.bb delete mode 100644 external/poky/meta/recipes-graphics/drm/libdrm_2.4.94.bb delete mode 100644 external/poky/meta/recipes-graphics/eglinfo/eglinfo-fb_1.0.0.bb delete mode 100644 external/poky/meta/recipes-graphics/eglinfo/eglinfo-x11_1.0.0.bb delete mode 100644 external/poky/meta/recipes-graphics/eglinfo/eglinfo.inc delete mode 100644 external/poky/meta/recipes-graphics/eglinfo/files/0001-Add-STAGING_INCDIR-to-searchpath-for-egl-headers.patch delete mode 100644 external/poky/meta/recipes-graphics/eglinfo/files/0001-Check-for-libegl-using-pkg-config.patch delete mode 100755 external/poky/meta/recipes-graphics/eglinfo/files/waf delete mode 100644 external/poky/meta/recipes-graphics/fontconfig/fontconfig/0001-src-fcxml.c-avoid-double-free-of-filename.patch delete mode 100644 external/poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.6.bb create mode 100644 external/poky/meta/recipes-graphics/fontconfig/fontconfig_2.13.1.bb create mode 100644 external/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb delete mode 100644 external/poky/meta/recipes-graphics/freetype/freetype_2.9.1.bb delete mode 100644 external/poky/meta/recipes-graphics/glew/glew_2.1.0.bb create mode 100644 external/poky/meta/recipes-graphics/glew/glew_2.2.0.bb delete mode 100644 external/poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.8.8.bb create mode 100644 external/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.4.bb delete mode 100644 external/poky/meta/recipes-graphics/jpeg/files/0001-libjpeg-turbo-fix-wrongly-defined-define-HAVE_STDLIB.patch create mode 100644 external/poky/meta/recipes-graphics/jpeg/files/CVE-2020-13790.patch delete mode 100644 external/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.0.bb create mode 100644 external/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb create mode 100644 external/poky/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch delete mode 100644 external/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.2.bb create mode 100644 external/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch delete mode 100644 external/poky/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb delete mode 100644 external/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-GLES2-Get-sin-cos-out-of-vertex-shader.patch create mode 100644 external/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb delete mode 100644 external/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb delete mode 100644 external/poky/meta/recipes-graphics/libva/libva-utils_2.2.0.bb create mode 100644 external/poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb delete mode 100644 external/poky/meta/recipes-graphics/libva/libva_2.2.0.bb create mode 100644 external/poky/meta/recipes-graphics/libva/libva_2.6.1.bb create mode 100644 external/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm/0001-Fix-build-with-gcc-10.patch create mode 100644 external/poky/meta/recipes-graphics/menu-cache/files/0001-Support-gcc10-compilation.patch delete mode 100644 external/poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.2.bb create mode 100644 external/poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0001-Simplify-wayland-scanner-lookup.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0002-winsys-svga-drm-Include-sys-types.h.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0003-Properly-get-LLVM-version-when-using-LLVM-Git-releas.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0004-Use-Python-3-to-execute-the-scripts.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0005-dri-i965-Add-missing-time.h-include.patch create mode 100644 external/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/files/0006-use-PKG_CHECK_VAR-for-defining-WAYLAND_PROTOCOLS_DAT.patch delete mode 100644 external/poky/meta/recipes-graphics/mesa/libglu_9.0.0.bb create mode 100644 external/poky/meta/recipes-graphics/mesa/libglu_9.0.1.bb delete mode 100644 external/poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb create mode 100644 external/poky/meta/recipes-graphics/mesa/mesa-demos_8.4.0.bb delete mode 100644 external/poky/meta/recipes-graphics/mesa/mesa-gl_18.1.9.bb create mode 100644 external/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb delete mode 100644 external/poky/meta/recipes-graphics/mesa/mesa_18.1.9.bb create mode 100644 external/poky/meta/recipes-graphics/mesa/mesa_20.0.2.bb delete mode 100644 external/poky/meta/recipes-graphics/pango/pango/0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch create mode 100644 external/poky/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch delete mode 100644 external/poky/meta/recipes-graphics/pango/pango/CVE-2019-1010238.patch delete mode 100644 external/poky/meta/recipes-graphics/pango/pango_1.42.4.bb create mode 100644 external/poky/meta/recipes-graphics/pango/pango_1.44.7.bb delete mode 100644 external/poky/meta/recipes-graphics/piglit/piglit/0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch create mode 100644 external/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch create mode 100644 external/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch create mode 100644 external/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch create mode 100644 external/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb create mode 100644 external/poky/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch create mode 100644 external/poky/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch delete mode 100644 external/poky/meta/recipes-graphics/vulkan/assimp_4.1.0.bb create mode 100644 external/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb create mode 100644 external/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb create mode 100644 external/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb create mode 100644 external/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb delete mode 100644 external/poky/meta/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch delete mode 100644 external/poky/meta/recipes-graphics/vulkan/vulkan_1.1.73.0.bb delete mode 100644 external/poky/meta/recipes-graphics/waffle/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch delete mode 100644 external/poky/meta/recipes-graphics/waffle/waffle_1.5.2.bb create mode 100644 external/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/libinput/determinism.patch delete mode 100644 external/poky/meta/recipes-graphics/wayland/libinput_1.11.3.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/libinput_1.15.2.bb delete mode 100644 external/poky/meta/recipes-graphics/wayland/mtdev_1.1.5.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/mtdev_1.1.6.bb delete mode 100644 external/poky/meta/recipes-graphics/wayland/wayland-protocols_1.16.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch delete mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland/run-ptest delete mode 100644 external/poky/meta/recipes-graphics/wayland/wayland_1.16.0.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/wayland_1.18.0.bb delete mode 100644 external/poky/meta/recipes-graphics/wayland/weston-conf.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/71-weston-drm.rules create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/weston.env create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/weston.ini delete mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/weston.service create mode 100644 external/poky/meta/recipes-graphics/wayland/weston-init/weston@.service delete mode 100644 external/poky/meta/recipes-graphics/wayland/weston/0001-make-error-portable.patch delete mode 100644 external/poky/meta/recipes-graphics/wayland/weston_5.0.0.bb create mode 100644 external/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb create mode 100644 external/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf create mode 100644 external/poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-calibrator.hh-Include-string-to-get-std-string.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xauth_1.0.10.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xauth_1.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xev_1.2.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xev_1.2.3.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xhost_1.0.8.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xinit_1.4.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xinput_1.6.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xinput_1.6.3.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.10.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xmodmap_1.0.9.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xprop_1.2.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xprop_1.2.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xrandr_1.5.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xvinfo_1.1.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xvinfo_1.1.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.4.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-app/xwininfo_1.1.5.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.28.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.29.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-driver/xf86-video-vesa/0001-Refuse-to-run-on-UEFI-machines.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-font/encodings_1.0.5.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-font/font-util_1.3.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libfontenc_1.1.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libice/CVE-2017-2626.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libice_1.0.10.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libpciaccess/0004-Don-t-include-sys-io.h-on-arm.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.14.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libpciaccess_0.16.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libsm_1.2.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data/0001-Drop-x11-dependencies.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11-diet_1.6.6.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11.inc delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11/X18NCMSstubs.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11/fix-disable-xlocale.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11/fix-utf8-wrong-define.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.6.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.8.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxau_1.0.9.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcb/gcc-mips-pr68302-mips-workaround.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.1.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcb_1.13.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.4.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcomposite_0.4.5.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.15.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxcursor_1.2.0.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxdamage_1.1.4.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxdamage_1.1.5.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxdmcp_1.1.3.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxext_1.3.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxfont2_2.0.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxft_2.3.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxft_2.3.3.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.10.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxi_1.7.9.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.2.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxkbfile_1.0.9.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxkbfile_1.1.0.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.3.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxrandr_1.5.1.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxrandr_1.5.2.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxt/0001-libXt-util-don-t-link-makestrs-with-target-cflags.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxt_1.1.5.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxt_1.2.0.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.10.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxvmc_1.0.12.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxxf86dga_1.1.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/libxxf86misc_1.0.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/pixman/asm_include.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.24.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-lib/xtrans_1.3.5.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-lib/xtrans_1.4.0.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc delete mode 100644 external/poky/meta/recipes-graphics/xorg-proto/xorgproto/0001-Remove-libdir-specification.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-proto/xorgproto/legacy.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-proto/xorgproto_2018.4.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-util/makedepend_1.0.5.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-util/makedepend_1.0.6.bb delete mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf delete mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf create mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-test-xtest-Initialize-array-with-braces.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2018-14665.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/musl-arm-inb-outb.patch create mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/sdksyms-no-build-path.patch delete mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.1.bb create mode 100644 external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.7.bb delete mode 100644 external/poky/meta/recipes-graphics/xvideo-tests/xvideo-tests_git.bb create mode 100644 external/poky/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch create mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.9.bb create mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.9.bb create mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.9.bb delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0001-Port-tests-to-openssl-1.1.patch delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0001-ioctl.c-Fix-build-with-linux-4.13.patch delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0001-ioctl.c-Fix-build-with-linux-4.17.patch delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0001-refactoring-split-big-function-to-simplify-maintaina.patch delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0002-refactoring-relocate-code-to-simplify-later-patches.patch delete mode 100644 external/poky/meta/recipes-kernel/cryptodev/files/0003-convert-to-new-AEAD-interface-in-kernels-v4.2.patch delete mode 100644 external/poky/meta/recipes-kernel/dtc/dtc_1.4.7.bb create mode 100644 external/poky/meta/recipes-kernel/dtc/dtc_1.6.0.bb delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0001-Disable-PIE-during-link.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-fix-for-Unhandled-rela-relocation-R_X86_64_PLT.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0001-powerpc-change-the-memory-size-limit.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0001-purgatory-Pass-r-directly-to-linker.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0002-powerpc-change-the-memory-size-limit.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0002-purgatory-Pass-r-directly-to-linker.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0003-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0004-x86_64-Add-support-to-build-kexec-tools-with-x32-ABI.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0005-Disable-PIE-during-link.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0007-kexec-un-break-the-build-on-32-bit-x86.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/0010-kexec-ARM-Fix-add_buffer_phys_virt-align-issue.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools/kexec-x32.patch delete mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.17.bb create mode 100644 external/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb create mode 100644 external/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch delete mode 100644 external/poky/meta/recipes-kernel/kmod/kmod/Change-to-calling-bswap_-instead-of-htobe-and-be-toh.patch delete mode 100644 external/poky/meta/recipes-kernel/kmod/kmod/fix-O_CLOEXEC.patch create mode 100644 external/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb delete mode 100644 external/poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb delete mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch create mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch create mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch delete mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch delete mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb create mode 100644 external/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-dtb.inc delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.14.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.18.bb create mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.14.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.18.bb create mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto_4.14.bb delete mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto_4.18.bb create mode 100644 external/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb create mode 100755 external/poky/meta/recipes-kernel/lttng/babeltrace/run-ptest create mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace2/0001-Make-manpages-multilib-identical.patch create mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace2/0001-fs.c-initialize-other_entry.patch create mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace2/0001-tests-do-not-run-test-applications-from-.libs.patch create mode 100755 external/poky/meta/recipes-kernel/lttng/babeltrace2/run-ptest create mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace2_2.0.2.bb delete mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace_1.5.6.bb create mode 100644 external/poky/meta/recipes-kernel/lttng/babeltrace_1.5.8.bb delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-btrfs-Remove-unnecessary-fs_info-parameter.patch delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-modules_2.10.9.bb create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-modules_2.11.2.bb delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-tools/0001-Allow-multiple-attempts-to-connect-to-relayd.patch create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-do-not-strip-a-helper-library.patch create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-regression-disable-the-tools-live-tests.patch create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-tools_2.9.11.bb create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-ust/0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch delete mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb create mode 100644 external/poky/meta/recipes-kernel/lttng/lttng-ust_2.11.1.bb create mode 100644 external/poky/meta/recipes-kernel/powertop/powertop/0001-wakeup_xxx.h-include-limits.h.patch create mode 100644 external/poky/meta/recipes-kernel/powertop/powertop_2.10.bb delete mode 100644 external/poky/meta/recipes-kernel/powertop/powertop_2.9.bb delete mode 100644 external/poky/meta/recipes-kernel/sysprof/files/0001-Do-not-build-anything-in-help-as-it-requires-itstool.patch delete mode 100644 external/poky/meta/recipes-kernel/sysprof/files/0001-fix-non-literal-format-string-issues.patch delete mode 100644 external/poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch delete mode 100644 external/poky/meta/recipes-kernel/sysprof/files/wordsize.patch delete mode 100644 external/poky/meta/recipes-kernel/sysprof/sysprof_3.30.0.bb delete mode 100644 external/poky/meta/recipes-kernel/systemtap/systemtap/configure-allow-to-disable-libvirt.patch delete mode 100644 external/poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch delete mode 100644 external/poky/meta/recipes-kernel/systemtap/systemtap/no-msgfmt-check.patch delete mode 100644 external/poky/meta/recipes-kernel/systemtap/systemtap/x32_abi_time.patch create mode 100644 external/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-Fix-alsa-sound-.h-for-external-programs.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-configure.ac-remove-an-unnecessary-libtool-fix.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-uapi-Move-typedefs-from-uapi-to-sound.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0001-ucm-Use-strncmp-to-avoid-access-out-of-boundary.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0002-ucm-return-always-at-least-NULL-if-no-list-is-availa.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0003-namehint-correct-the-args-check.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0004-namehint-improve-the-previous-patch-check-the-return.patch create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib/0005-ucm-Do-not-fail-to-parse-configs-on-cards-with-an-em.patch delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.6.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.1.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.6.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-tools/0002-Fix-clang-Wreserved-user-defined-literal-warnings.patch delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-tools/musl.patch delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.6.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.7.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.1.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.6.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.1.bb delete mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.6.bb create mode 100644 external/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.1.bb delete mode 100644 external/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2018-15822.patch delete mode 100644 external/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.0.2.bb create mode 100644 external/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/flac/flac/CVE-2017-6888.patch delete mode 100644 external/poky/meta/recipes-multimedia/flac/flac_1.3.2.bb create mode 100644 external/poky/meta/recipes-multimedia/flac/flac_1.3.3.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/0001-connect-has-a-different-signature-on-musl.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/add-a-target-to-compile-tests.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/gtk-doc-tweaks.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/files/run-ptest create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-examples_git.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-validate/0001-connect-has-a-different-signature-on-musl.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gst-validate_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-configure-check-for-armv7ve-variant.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-fix-host-contamination.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/mips64_cpu_detection.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/workaround-to-build-gst-libav-for-i586-with-gcc.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/configure-allow-to-disable-libssh2.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0010-gl-Add-switch-for-explicitely-enabling-disabling-GBM.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0011-gl-Add-switches-for-explicitely-enabling-disabling-P.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/CVE-2019-9928.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/link-with-libvchostif.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/avoid-including-sys-poll.h-directly.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/ensure-valid-sentinel-for-gst_structure_get.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.2.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python/0001-meson.build-fix-builds-with-python-3.8.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi/0001-gst-vaapi-Makefile.am-Add-EGL_CFLAGS-to-libgstvaapi-.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.16.2.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch delete mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.14.4.bb create mode 100644 external/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.bb delete mode 100644 external/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.dpatch create mode 100644 external/poky/meta/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch create mode 100644 external/poky/meta/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch delete mode 100644 external/poky/meta/recipes-multimedia/libogg/libogg_1.3.3.bb create mode 100644 external/poky/meta/recipes-multimedia/libogg/libogg_1.3.4.bb delete mode 100644 external/poky/meta/recipes-multimedia/libpng/libpng/CVE-2019-7317.patch delete mode 100644 external/poky/meta/recipes-multimedia/libpng/libpng_1.6.36.bb create mode 100644 external/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2017-17095.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2017-18013.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2017-9935.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2018-10963.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2018-5784.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2018-7456.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/CVE-2018-8905.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/files/libtool2.patch delete mode 100644 external/poky/meta/recipes-multimedia/libtiff/tiff_4.0.9.bb create mode 100644 external/poky/meta/recipes-multimedia/libtiff/tiff_4.1.0.bb create mode 100644 external/poky/meta/recipes-multimedia/mpeg2dec/files/0001-Import-revision-1206-from-upstream-to-fix-PIE-build.patch create mode 100644 external/poky/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch create mode 100644 external/poky/meta/recipes-multimedia/mpg123/mpg123/sdl2.patch delete mode 100644 external/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.10.bb create mode 100644 external/poky/meta/recipes-multimedia/mpg123/mpg123_1.25.13.bb create mode 100644 external/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap-arm-Adjust-inline-asm-constraints.patch create mode 100644 external/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch delete mode 100644 external/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_12.2.bb create mode 100644 external/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb delete mode 100644 external/poky/meta/recipes-multimedia/sbc/sbc_1.3.bb create mode 100644 external/poky/meta/recipes-multimedia/sbc/sbc_1.4.bb delete mode 100644 external/poky/meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch create mode 100644 external/poky/meta/recipes-multimedia/speex/speexdsp_1.2.0.bb delete mode 100644 external/poky/meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb delete mode 100644 external/poky/meta/recipes-multimedia/webp/libwebp_1.0.0.bb create mode 100644 external/poky/meta/recipes-multimedia/webp/libwebp_1.1.0.bb create mode 100644 external/poky/meta/recipes-rt/rt-tests/rt-tests-1.1/0001-gzip-with-n-for-build-reproducibilty.patch create mode 100644 external/poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb delete mode 100644 external/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.0.bb create mode 100644 external/poky/meta/recipes-sato/pcmanfm/pcmanfm_1.3.1.bb delete mode 100644 external/poky/meta/recipes-sato/puzzles/files/0001-Use-labs-instead-of-abs.patch create mode 100644 external/poky/meta/recipes-sato/puzzles/files/0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch create mode 100644 external/poky/meta/recipes-sato/puzzles/files/fix-ki-uninitialized.patch create mode 100644 external/poky/meta/recipes-sato/webkit/libwpe_1.4.0.1.bb create mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-PaintingData-has-no-member-named-lightVector-on-.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/0001-webkitgtk-fix-CVE-2017-17821.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/0012-soup-Forward-declare-URL-class.patch create mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/CVE-2020-13753.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/detect-gstreamer-gl.patch create mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/include_array.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk/x32_support.patch delete mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk_2.20.5.bb create mode 100644 external/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb create mode 100644 external/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.4.1.bb create mode 100644 external/poky/meta/recipes-support/apr/apr/0001-Add-option-to-disable-timed-dependant-tests.patch delete mode 100644 external/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch delete mode 100644 external/poky/meta/recipes-support/apr/apr/0008-apr-fix-ptest-hang-in-teststr.patch create mode 100644 external/poky/meta/recipes-support/apr/apr/libtoolize_check.patch delete mode 100644 external/poky/meta/recipes-support/apr/apr_1.6.3.bb create mode 100644 external/poky/meta/recipes-support/apr/apr_1.7.0.bb delete mode 100644 external/poky/meta/recipes-support/aspell/aspell/gcc7.patch delete mode 100644 external/poky/meta/recipes-support/aspell/aspell_0.60.6.1.bb create mode 100644 external/poky/meta/recipes-support/aspell/aspell_0.60.8.bb create mode 100644 external/poky/meta/recipes-support/atk/at-spi2-atk/0001-atk_test_util.h-add-missing-sys-time.h-include.patch delete mode 100644 external/poky/meta/recipes-support/atk/at-spi2-atk_2.26.2.bb create mode 100644 external/poky/meta/recipes-support/atk/at-spi2-atk_2.34.1.bb create mode 100644 external/poky/meta/recipes-support/atk/at-spi2-core/0001-Fix-source-reproducibility.patch delete mode 100644 external/poky/meta/recipes-support/atk/at-spi2-core_2.28.0.bb create mode 100644 external/poky/meta/recipes-support/atk/at-spi2-core_2.34.0.bb delete mode 100644 external/poky/meta/recipes-support/atk/atk/0001-Switch-from-filename-to-basename.patch delete mode 100644 external/poky/meta/recipes-support/atk/atk/0001-meson.build-enable-introspection-for-cross-compile.patch delete mode 100644 external/poky/meta/recipes-support/atk/atk_2.28.1.bb create mode 100644 external/poky/meta/recipes-support/atk/atk_2.34.1.bb create mode 100644 external/poky/meta/recipes-support/attr/acl/0001-test-patch-out-failing-bits.patch create mode 100644 external/poky/meta/recipes-support/attr/acl/0001-tests-do-not-hardcode-the-build-path-into-a-helper-l.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl/Makefile-libacl-should-depend-on-include.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl/acl-fix-the-order-of-expected-output-of-getfacl.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl/configure.ac delete mode 100644 external/poky/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl/test-fix-insufficient-quoting-of.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl/test-fixups-on-SELinux-machines-for-root-testcases.patch delete mode 100644 external/poky/meta/recipes-support/attr/acl_2.2.52.bb create mode 100644 external/poky/meta/recipes-support/attr/acl_2.2.53.bb delete mode 100644 external/poky/meta/recipes-support/attr/attr/0001-Use-stdint-types-consistently.patch delete mode 100644 external/poky/meta/recipes-support/attr/attr/attr-Missing-configure.ac.patch delete mode 100644 external/poky/meta/recipes-support/attr/attr/dont-use-decl-macros.patch create mode 100644 external/poky/meta/recipes-support/attr/attr/run-ptest delete mode 100644 external/poky/meta/recipes-support/attr/attr_2.4.47.bb create mode 100644 external/poky/meta/recipes-support/attr/attr_2.4.48.bb delete mode 100644 external/poky/meta/recipes-support/attr/ea-acl.inc delete mode 100644 external/poky/meta/recipes-support/attr/files/0001-Added-configure-option-to-enable-disable-static-libr.patch delete mode 100644 external/poky/meta/recipes-support/attr/files/Remove-the-attr.5-man-page-moved-to-man-pages.patch delete mode 100644 external/poky/meta/recipes-support/attr/files/Remove-the-section-2-man-pages.patch delete mode 100644 external/poky/meta/recipes-support/attr/files/relative-libdir.patch delete mode 100644 external/poky/meta/recipes-support/attr/files/run-ptest create mode 100644 external/poky/meta/recipes-support/bash-completion/bash-completion_2.10.bb delete mode 100644 external/poky/meta/recipes-support/bash-completion/bash-completion_2.8.bb delete mode 100644 external/poky/meta/recipes-support/bmap-tools/bmap-tools_3.4.bb create mode 100644 external/poky/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb delete mode 100644 external/poky/meta/recipes-support/boost/bjam-native_1.68.0.bb create mode 100644 external/poky/meta/recipes-support/boost/bjam-native_1.72.0.bb delete mode 100644 external/poky/meta/recipes-support/boost/boost-1.68.0.inc create mode 100644 external/poky/meta/recipes-support/boost/boost-1.72.0.inc create mode 100644 external/poky/meta/recipes-support/boost/boost/0001-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch create mode 100644 external/poky/meta/recipes-support/boost/boost/0001-added-typedef-executor_type.patch create mode 100644 external/poky/meta/recipes-support/boost/boost/0001-dont-setup-compiler-flags-m32-m64.patch delete mode 100644 external/poky/meta/recipes-support/boost/boost/0003-Don-t-set-up-arch-instruction-set-flags-we-do-that-o.patch delete mode 100644 external/poky/meta/recipes-support/boost/boost/reproducibility-add-file-directive-to-assembler.patch delete mode 100644 external/poky/meta/recipes-support/boost/boost_1.68.0.bb create mode 100644 external/poky/meta/recipes-support/boost/boost_1.72.0.bb create mode 100644 external/poky/meta/recipes-support/boost/files/0001-Build-debug-version-of-bjam.patch create mode 100644 external/poky/meta/recipes-support/boost/files/0001-build.sh-use-DNDEBUG-also-in-debug-builds.patch create mode 100644 external/poky/meta/recipes-support/boost/files/0001-revert-cease-dependence-on-range.patch delete mode 100644 external/poky/meta/recipes-support/boost/files/bjam-native-build-bjam.debug.patch create mode 100644 external/poky/meta/recipes-support/ca-certificates/ca-certificates/0001-certdata2pem.py-use-python3.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2018-14618.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2018-16839.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2018-16840.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2018-16842.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2018-16890.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2019-3822.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2019-3823.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2019-5435.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2019-5436.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2019-5482.patch create mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2020-8169.patch create mode 100644 external/poky/meta/recipes-support/curl/curl/CVE-2020-8177.patch delete mode 100644 external/poky/meta/recipes-support/curl/curl_7.61.0.bb create mode 100644 external/poky/meta/recipes-support/curl/curl_7.69.1.bb create mode 100644 external/poky/meta/recipes-support/db/db/0001-Fix-libc-compatibility-by-renaming-atomic_init-API.patch create mode 100644 external/poky/meta/recipes-support/db/db/0001-clock-Do-not-define-own-timespec.patch delete mode 100644 external/poky/meta/recipes-support/debianutils/debianutils_4.8.6.bb create mode 100644 external/poky/meta/recipes-support/debianutils/debianutils_4.9.1.bb create mode 100644 external/poky/meta/recipes-support/diffoscope/diffoscope_136.bb delete mode 100644 external/poky/meta/recipes-support/dos2unix/dos2unix_7.4.0.bb create mode 100644 external/poky/meta/recipes-support/dos2unix/dos2unix_7.4.1.bb create mode 100644 external/poky/meta/recipes-support/enchant/enchant2_2.2.8.bb delete mode 100644 external/poky/meta/recipes-support/enchant/enchant_1.6.0.bb delete mode 100644 external/poky/meta/recipes-support/fribidi/fribidi/meson.patch delete mode 100644 external/poky/meta/recipes-support/fribidi/fribidi_1.0.5.bb create mode 100644 external/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb create mode 100644 external/poky/meta/recipes-support/gdbm/files/gdbm-fix-link-failure-against-gcc-10.patch create mode 100644 external/poky/meta/recipes-support/gdbm/gdbm_1.18.1.bb delete mode 100644 external/poky/meta/recipes-support/gdbm/gdbm_1.18.bb delete mode 100644 external/poky/meta/recipes-support/gmp/gmp-6.1.2/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch delete mode 100644 external/poky/meta/recipes-support/gmp/gmp-6.1.2/0001-confiure.ac-Believe-the-cflags-from-environment.patch delete mode 100644 external/poky/meta/recipes-support/gmp/gmp-6.1.2/amd64.patch delete mode 100644 external/poky/meta/recipes-support/gmp/gmp-6.1.2/use-includedir.patch create mode 100644 external/poky/meta/recipes-support/gmp/gmp/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch create mode 100644 external/poky/meta/recipes-support/gmp/gmp/0001-confiure.ac-Believe-the-cflags-from-environment.patch create mode 100644 external/poky/meta/recipes-support/gmp/gmp/use-includedir.patch delete mode 100644 external/poky/meta/recipes-support/gmp/gmp_6.1.2.bb create mode 100644 external/poky/meta/recipes-support/gmp/gmp_6.2.0.bb delete mode 100644 external/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch delete mode 100644 external/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/update-output-syntax.patch delete mode 100644 external/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb create mode 100644 external/poky/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2018.1.bb delete mode 100644 external/poky/meta/recipes-support/gnupg/gnupg_2.2.12.bb create mode 100644 external/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb create mode 100644 external/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch delete mode 100644 external/poky/meta/recipes-support/gnutls/gnutls/CVE-2019-3829_p1.patch delete mode 100644 external/poky/meta/recipes-support/gnutls/gnutls/CVE-2019-3829_p2.patch delete mode 100644 external/poky/meta/recipes-support/gnutls/gnutls/CVE-2019-3829_p3.patch delete mode 100644 external/poky/meta/recipes-support/gnutls/gnutls/CVE-2019-3836.patch create mode 100644 external/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb delete mode 100644 external/poky/meta/recipes-support/gnutls/gnutls_3.6.4.bb delete mode 100644 external/poky/meta/recipes-support/gnutls/libtasn1/0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch delete mode 100644 external/poky/meta/recipes-support/gnutls/libtasn1_4.13.bb create mode 100644 external/poky/meta/recipes-support/gnutls/libtasn1_4.16.0.bb create mode 100644 external/poky/meta/recipes-support/gpgme/gpgme/0001-Revert-build-Make-gpgme.m4-use-gpgrt-config-with-.pc.patch create mode 100644 external/poky/meta/recipes-support/gpgme/gpgme/0007-python-Add-variables-to-tests.patch delete mode 100644 external/poky/meta/recipes-support/gpgme/gpgme/0007-qt-python-Add-variables-to-tests.patch create mode 100644 external/poky/meta/recipes-support/gpgme/gpgme/0008-do-not-auto-check-var-PYTHON.patch delete mode 100644 external/poky/meta/recipes-support/gpgme/gpgme_1.11.1.bb create mode 100644 external/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb create mode 100644 external/poky/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch create mode 100644 external/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch delete mode 100644 external/poky/meta/recipes-support/icu/icu/0002-Add-ARC-support.patch create mode 100644 external/poky/meta/recipes-support/icu/icu/CVE-2020-10531.patch create mode 100644 external/poky/meta/recipes-support/icu/icu/filter.json delete mode 100644 external/poky/meta/recipes-support/icu/icu_62.1.bb create mode 100644 external/poky/meta/recipes-support/icu/icu_66.1.bb delete mode 100644 external/poky/meta/recipes-support/iso-codes/iso-codes_4.1.bb create mode 100644 external/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb create mode 100644 external/poky/meta/recipes-support/itstool/itstool/0001-Native-Don-t-use-build-time-hardcoded-python-binary-.patch create mode 100644 external/poky/meta/recipes-support/itstool/itstool/0002-Don-t-use-build-time-hardcoded-python-binary-path.patch create mode 100644 external/poky/meta/recipes-support/itstool/itstool_2.0.6.bb delete mode 100644 external/poky/meta/recipes-support/libassuan/libassuan_2.5.1.bb create mode 100644 external/poky/meta/recipes-support/libassuan/libassuan_2.5.3.bb create mode 100644 external/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.10.bb delete mode 100644 external/poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.6.8.bb delete mode 100644 external/poky/meta/recipes-support/libbsd/libbsd/0001-flopen-Add-missing-fcntl.h-include.patch create mode 100644 external/poky/meta/recipes-support/libbsd/libbsd_0.10.0.bb delete mode 100644 external/poky/meta/recipes-support/libbsd/libbsd_0.9.1.bb create mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.7.10.bb create mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng.inc create mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng/0001-configure.ac-add-library-if-header-found.patch create mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng/0002-Wrap-pthread_atfork-usage-in-HAVE_PTHREAD_H.patch create mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.10.bb delete mode 100644 external/poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.9.bb delete mode 100644 external/poky/meta/recipes-support/libcap/files/0001-Fix-build-with-gperf-3.1.patch create mode 100644 external/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch create mode 100644 external/poky/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch delete mode 100644 external/poky/meta/recipes-support/libcap/libcap_2.25.bb create mode 100644 external/poky/meta/recipes-support/libcap/libcap_2.32.bb delete mode 100644 external/poky/meta/recipes-support/libcheck/libcheck_0.12.0.bb create mode 100644 external/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb delete mode 100644 external/poky/meta/recipes-support/libcroco/libcroco/CVE-2017-7960.patch delete mode 100644 external/poky/meta/recipes-support/libcroco/libcroco/CVE-2017-7961.patch delete mode 100644 external/poky/meta/recipes-support/libcroco/libcroco_0.6.12.bb create mode 100644 external/poky/meta/recipes-support/libcroco/libcroco_0.6.13.bb create mode 100644 external/poky/meta/recipes-support/libevdev/libevdev/determinism.patch delete mode 100644 external/poky/meta/recipes-support/libevdev/libevdev_1.5.9.bb create mode 100644 external/poky/meta/recipes-support/libevdev/libevdev_1.8.0.bb delete mode 100644 external/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch create mode 100644 external/poky/meta/recipes-support/libevent/libevent/0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch create mode 100644 external/poky/meta/recipes-support/libevent/libevent_2.1.11.bb delete mode 100644 external/poky/meta/recipes-support/libevent/libevent_2.1.8.bb delete mode 100644 external/poky/meta/recipes-support/libexif/libexif/CVE-2016-6328.patch delete mode 100644 external/poky/meta/recipes-support/libexif/libexif/CVE-2017-7544.patch delete mode 100644 external/poky/meta/recipes-support/libexif/libexif/CVE-2018-20030.patch create mode 100644 external/poky/meta/recipes-support/libexif/libexif/CVE-2020-13114.patch delete mode 100644 external/poky/meta/recipes-support/libexif/libexif_0.6.21.bb create mode 100644 external/poky/meta/recipes-support/libexif/libexif_0.6.22.bb create mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128-part2.patch create mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-Address-platforms-with-no-__int128.patch create mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-Fixed-missed-ifndef-for-__mips_soft_float.patch create mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch delete mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch delete mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch delete mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch create mode 100644 external/poky/meta/recipes-support/libffi/libffi/0001-powerpc-fix-build-failure-on-power7-and-older-532.patch delete mode 100644 external/poky/meta/recipes-support/libffi/libffi_3.2.1.bb create mode 100644 external/poky/meta/recipes-support/libffi/libffi_3.3.bb delete mode 100644 external/poky/meta/recipes-support/libfm/libfm-extra_1.3.0.2.bb create mode 100644 external/poky/meta/recipes-support/libfm/libfm-extra_1.3.1.bb delete mode 100644 external/poky/meta/recipes-support/libfm/libfm_1.3.0.2.bb create mode 100644 external/poky/meta/recipes-support/libfm/libfm_1.3.1.bb delete mode 100644 external/poky/meta/recipes-support/libgcrypt/files/0001-Add-and-use-pkg-config-for-libgcrypt-instead-of-conf.patch create mode 100644 external/poky/meta/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch create mode 100644 external/poky/meta/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch create mode 100644 external/poky/meta/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch create mode 100644 external/poky/meta/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch delete mode 100644 external/poky/meta/recipes-support/libgcrypt/files/CVE-2019-12904_p1.patch delete mode 100644 external/poky/meta/recipes-support/libgcrypt/files/CVE-2019-12904_p2.patch create mode 100644 external/poky/meta/recipes-support/libgcrypt/files/determinism.patch delete mode 100644 external/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.4.bb create mode 100644 external/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb create mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-Do-not-fail-when-testing-config-scripts.patch delete mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-syscfg-Support-ARC-CPUs-and-simplify-aliasing-table.patch delete mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error/0002-syscfg-Add-support-for-arc-unknown-linux-gnu.patch delete mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error/libgpg-error-1.35-gawk5-support.patch delete mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error_1.32.bb create mode 100644 external/poky/meta/recipes-support/libgpg-error/libgpg-error_1.37.bb delete mode 100644 external/poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch create mode 100644 external/poky/meta/recipes-support/libical/libical/0001-Use-our-hand-build-native-src-generator.patch delete mode 100644 external/poky/meta/recipes-support/libical/libical/Remove-cmake-check-for-Perl.patch delete mode 100644 external/poky/meta/recipes-support/libical/libical_2.0.0.bb create mode 100644 external/poky/meta/recipes-support/libical/libical_3.0.7.bb create mode 100644 external/poky/meta/recipes-support/libjitterentropy/files/0001-Make-man-pages-reproducible.patch create mode 100644 external/poky/meta/recipes-support/libjitterentropy/files/0001-Makefile-cleanup-install-for-rebuilds.patch create mode 100644 external/poky/meta/recipes-support/libjitterentropy/libjitterentropy_2.2.0.bb delete mode 100644 external/poky/meta/recipes-support/libnl/libnl/0001-PATCH-fix-libnl-3.4.0-musl-compile-problem.patch delete mode 100644 external/poky/meta/recipes-support/libnl/libnl/fix-pc-file.patch delete mode 100644 external/poky/meta/recipes-support/libnl/libnl_3.4.0.bb create mode 100644 external/poky/meta/recipes-support/libnl/libnl_3.5.0.bb delete mode 100644 external/poky/meta/recipes-support/libpcre/libpcre/pcre-cross.patch delete mode 100644 external/poky/meta/recipes-support/libpcre/libpcre2_10.31.bb create mode 100644 external/poky/meta/recipes-support/libpcre/libpcre2_10.34.bb delete mode 100644 external/poky/meta/recipes-support/libpcre/libpcre_8.42.bb create mode 100644 external/poky/meta/recipes-support/libpcre/libpcre_8.44.bb create mode 100644 external/poky/meta/recipes-support/libproxy/libproxy/0001-get-pac-test-Fix-build-with-clang-libc.patch create mode 100644 external/poky/meta/recipes-support/libpsl/libpsl/0001-Makefile.am-use-PYTHON-when-invoking-psl-make-dafsa.patch create mode 100644 external/poky/meta/recipes-support/libpsl/libpsl/0001-gtk-doc-do-not-include-tree_index.sgml.patch create mode 100644 external/poky/meta/recipes-support/libpsl/libpsl_0.21.0.bb delete mode 100644 external/poky/meta/recipes-support/libsoup/libsoup-2.4_2.62.3.bb create mode 100644 external/poky/meta/recipes-support/libsoup/libsoup-2.4_2.68.4.bb create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-Fix-build-on-mips-musl.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-add-knobs-to-disable-enable-tests.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-backtrace-Use-only-with-glibc-and-uclibc.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0001-x86-Stub-out-x86_local_resume.patch create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0002-backtrace-Use-only-with-glibc-and-uclibc.patch create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0003-x86-Stub-out-x86_local_resume.patch create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0004-Fix-build-on-mips-musl.patch create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/0006-Fix-for-X32.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind/libunwind-1.1-x32.patch delete mode 100644 external/poky/meta/recipes-support/libunwind/libunwind_1.2.1.bb create mode 100644 external/poky/meta/recipes-support/libunwind/libunwind_1.3.1.bb delete mode 100644 external/poky/meta/recipes-support/liburcu/files/Add-support-for-the-RISC-V-architecture.patch delete mode 100644 external/poky/meta/recipes-support/liburcu/liburcu_0.10.1.bb create mode 100644 external/poky/meta/recipes-support/liburcu/liburcu_0.11.1.bb delete mode 100644 external/poky/meta/recipes-support/libxslt/files/CVE-2019-13117.patch delete mode 100644 external/poky/meta/recipes-support/libxslt/files/CVE-2019-13118.patch delete mode 100644 external/poky/meta/recipes-support/libxslt/libxslt/CVE-2019-11068.patch delete mode 100644 external/poky/meta/recipes-support/libxslt/libxslt/fix-rvts-handling.patch delete mode 100644 external/poky/meta/recipes-support/libxslt/libxslt_1.1.32.bb create mode 100644 external/poky/meta/recipes-support/libxslt/libxslt_1.1.34.bb delete mode 100644 external/poky/meta/recipes-support/libyaml/libyaml_0.2.1.bb create mode 100644 external/poky/meta/recipes-support/libyaml/libyaml_0.2.2.bb delete mode 100644 external/poky/meta/recipes-support/lz4/lz4_1.8.2.bb create mode 100644 external/poky/meta/recipes-support/lz4/lz4_1.9.2.bb delete mode 100644 external/poky/meta/recipes-support/lzop/lzop/0001-use-static-inlines-as-the-external-inline-definition.patch delete mode 100644 external/poky/meta/recipes-support/lzop/lzop/lzop-1.03-gcc6.patch delete mode 100644 external/poky/meta/recipes-support/lzop/lzop/x32_abi_miniacc_h.patch delete mode 100644 external/poky/meta/recipes-support/lzop/lzop_1.03.bb create mode 100644 external/poky/meta/recipes-support/lzop/lzop_1.04.bb delete mode 100644 external/poky/meta/recipes-support/mpfr/mpfr/0001-Fix-obsolete-ARC-asm-constraints.patch delete mode 100644 external/poky/meta/recipes-support/mpfr/mpfr_4.0.1.bb create mode 100644 external/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb delete mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.4/Add-target-to-only-build-tests-not-run-them.patch delete mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.4/check-header-files-of-openssl-only-if-enable_.patch delete mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.4/dlopen-test.patch delete mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.4/run-ptest create mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.5.1/Add-target-to-only-build-tests-not-run-them.patch create mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.5.1/check-header-files-of-openssl-only-if-enable_.patch create mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.5.1/dlopen-test.patch create mode 100644 external/poky/meta/recipes-support/nettle/nettle-3.5.1/run-ptest delete mode 100644 external/poky/meta/recipes-support/nettle/nettle_3.4.bb create mode 100644 external/poky/meta/recipes-support/nettle/nettle_3.5.1.bb delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/0002-Add-nios2-support.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/0003-Add-type-definitions-for-the-RISC-V-architecture.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/0004-Add-ARC-support.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/nspr.pc.in delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch delete mode 100644 external/poky/meta/recipes-support/nspr/nspr_4.19.bb delete mode 100644 external/poky/meta/recipes-support/nss-myhostname/nss-myhostname/0001-nss-myhostname-Check-for-nss.h-presense-before-use.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/blank-cert9.db delete mode 100644 external/poky/meta/recipes-support/nss/nss/blank-key4.db delete mode 100644 external/poky/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/nss-fix-SHA_HTONL-bug-for-arm-32be.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/nss.pc.in delete mode 100644 external/poky/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch delete mode 100644 external/poky/meta/recipes-support/nss/nss/signlibs.sh delete mode 100644 external/poky/meta/recipes-support/nss/nss/system-pkcs11.txt delete mode 100644 external/poky/meta/recipes-support/nss/nss_3.39.bb delete mode 100644 external/poky/meta/recipes-support/p11-kit/p11-kit/0001-LINGUAS-drop-the-languages-for-which-upstream-does-n.patch delete mode 100644 external/poky/meta/recipes-support/p11-kit/p11-kit_0.23.14.bb create mode 100644 external/poky/meta/recipes-support/p11-kit/p11-kit_0.23.20.bb delete mode 100644 external/poky/meta/recipes-support/ptest-runner/ptest-runner_2.2.bb create mode 100644 external/poky/meta/recipes-support/ptest-runner/ptest-runner_2.3.2.bb delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools/read_error_msg.patch delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch delete mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools_5.bb create mode 100644 external/poky/meta/recipes-support/rng-tools/rng-tools_6.9.bb create mode 100644 external/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch delete mode 100644 external/poky/meta/recipes-support/shared-mime-info/shared-mime-info.inc delete mode 100644 external/poky/meta/recipes-support/shared-mime-info/shared-mime-info/install-data-hook.patch delete mode 100644 external/poky/meta/recipes-support/shared-mime-info/shared-mime-info/parallelmake.patch delete mode 100644 external/poky/meta/recipes-support/shared-mime-info/shared-mime-info_1.10.bb create mode 100644 external/poky/meta/recipes-support/shared-mime-info/shared-mime-info_git.bb delete mode 100644 external/poky/meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch delete mode 100644 external/poky/meta/recipes-support/source-highlight/source-highlight_3.1.8.bb delete mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2018-20505.patch delete mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2018-20506.patch delete mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2019-8457.patch create mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2020-11655.patch create mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2020-11656.patch create mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2020-15358.patch create mode 100644 external/poky/meta/recipes-support/sqlite/files/CVE-2020-9327.patch delete mode 100644 external/poky/meta/recipes-support/sqlite/sqlite3_3.23.1.bb create mode 100644 external/poky/meta/recipes-support/sqlite/sqlite3_3.31.1.bb create mode 100644 external/poky/meta/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch create mode 100644 external/poky/meta/recipes-support/vim/files/disable_acl_header_check.patch create mode 100644 external/poky/meta/recipes-support/vim/files/no-path-adjust.patch create mode 100644 external/poky/meta/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch create mode 100644 external/poky/meta/recipes-support/vim/vim-tiny_8.2.bb create mode 100644 external/poky/meta/recipes-support/vim/vim.inc create mode 100644 external/poky/meta/recipes-support/vim/vim_8.2.bb delete mode 100644 external/poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch delete mode 100644 external/poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch create mode 100644 external/poky/meta/recipes-support/vte/vte/0001-app.cc-use-old-school-asignment-to-avoid-gcc-4.8-err.patch create mode 100644 external/poky/meta/recipes-support/vte/vte/0002-Add-W_EXITCODE-macro-for-non-glibc-systems.patch delete mode 100644 external/poky/meta/recipes-support/vte/vte_0.52.2.bb create mode 100644 external/poky/meta/recipes-support/vte/vte_0.58.3.bb (limited to 'external/poky/meta') diff --git a/external/poky/meta/COPYING.GPLv2 b/external/poky/meta/COPYING.GPLv2 deleted file mode 100644 index d511905c..00000000 --- a/external/poky/meta/COPYING.GPLv2 +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/external/poky/meta/classes/archiver.bbclass b/external/poky/meta/classes/archiver.bbclass index e321a0e3..1a3c1906 100644 --- a/external/poky/meta/classes/archiver.bbclass +++ b/external/poky/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,12 +50,20 @@ 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_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}" do_ar_original[dirs] = "${ARCHIVER_OUTDIR} ${ARCHIVER_WORKDIR}" @@ -75,6 +100,9 @@ python () { bb.debug(1, 'archiver: %s is excluded, covered by gcc-source' % pn) return + def hasTask(task): + return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False)) + ar_src = d.getVarFlag('ARCHIVER_MODE', 'src') ar_dumpdata = d.getVarFlag('ARCHIVER_MODE', 'dumpdata') ar_recipe = d.getVarFlag('ARCHIVER_MODE', 'recipe') @@ -95,14 +123,13 @@ python () { # There is a corner case with "gcc-source-${PV}" recipes, they don't have # the "do_configure" task, so we need to use "do_preconfigure" - def hasTask(task): - return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False)) - if hasTask("do_preconfigure"): d.appendVarFlag('do_ar_configured', 'depends', ' %s:do_preconfigure' % pn) 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) @@ -115,8 +142,15 @@ python () { # Output the SRPM package if d.getVarFlag('ARCHIVER_MODE', 'srpm') == "1" and d.getVar('PACKAGES'): - if "package_rpm" in d.getVar('PACKAGE_CLASSES'): + if "package_rpm" not in d.getVar('PACKAGE_CLASSES'): + bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES") + + # Some recipes do not have any packaging tasks + if hasTask("do_package_write_rpm"): d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_package_write_rpm' % pn) + d.appendVarFlag('do_package_write_rpm', 'dirs', ' ${ARCHIVER_RPMTOPDIR}') + d.appendVarFlag('do_package_write_rpm', 'sstate-inputdirs', ' ${ARCHIVER_RPMTOPDIR}') + d.appendVarFlag('do_package_write_rpm', 'sstate-outputdirs', ' ${DEPLOY_DIR_SRC}') if ar_dumpdata == "1": d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_dumpdata' % pn) if ar_recipe == "1": @@ -127,8 +161,6 @@ python () { d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_patched' % pn) elif ar_src == "configured": d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_configured' % pn) - else: - bb.fatal("ARCHIVER_MODE[srpm] needs package_rpm in PACKAGE_CLASSES") } # Take all the sources for a recipe and puts them in WORKDIR/archiver-work/. @@ -161,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("/"); @@ -213,9 +251,10 @@ python do_ar_patched() { # Get the ARCHIVER_OUTDIR before we reset the WORKDIR ar_outdir = d.getVar('ARCHIVER_OUTDIR') - ar_workdir = d.getVar('ARCHIVER_WORKDIR') + if not is_work_shared(d): + ar_workdir = d.getVar('ARCHIVER_WORKDIR') + d.setVar('WORKDIR', ar_workdir) bb.note('Archiving the patched source...') - d.setVar('WORKDIR', ar_workdir) create_tarball(d, d.getVar('S'), 'patched', ar_outdir) } @@ -272,6 +311,79 @@ 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 url in fetcher.urls: + if is_excluded(url): + bb.note('Skipping excluded url: %s' % (url)) + continue + + bb.note('Archiving url: %s' % (url)) + ud = fetcher.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' % (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' % (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'): @@ -432,9 +544,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) @@ -470,12 +583,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/external/poky/meta/classes/autotools.bbclass b/external/poky/meta/classes/autotools.bbclass index 8768a6ad..6c2a33ac 100644 --- a/external/poky/meta/classes/autotools.bbclass +++ b/external/poky/meta/classes/autotools.bbclass @@ -25,7 +25,9 @@ inherit siteinfo # Space separated list of shell scripts with variables defined to supply test # results for autoconf tests we cannot run at build time. -export CONFIG_SITE = "${@siteinfo_get_files(d)}" +# The value of this variable is filled in in a prefunc because it depends on +# the contents of the sysroot. +export CONFIG_SITE acpaths ?= "default" EXTRA_AUTORECONF = "--exclude=autopoint" @@ -88,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 ! ${CACHED_CONFIGUREVARS} CONFIG_SHELL=/bin/bash $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" @@ -132,6 +134,8 @@ EXTRACONFFUNCS ??= "" EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}" do_configure[prefuncs] += "autotools_preconfigure autotools_aclocals ${EXTRACONFFUNCS}" +do_compile[prefuncs] += "autotools_aclocals" +do_install[prefuncs] += "autotools_aclocals" do_configure[postfuncs] += "autotools_postconfigure" ACLOCALDIR = "${STAGING_DATADIR}/aclocal" @@ -140,7 +144,6 @@ ACLOCALEXTRAPATH_class-target = " -I ${STAGING_DATADIR_NATIVE}/aclocal/" ACLOCALEXTRAPATH_class-nativesdk = " -I ${STAGING_DATADIR_NATIVE}/aclocal/" python autotools_aclocals () { - # Refresh variable with cache files d.setVar("CONFIG_SITE", siteinfo_get_files(d, sysrootcache=True)) } diff --git a/external/poky/meta/classes/base.bbclass b/external/poky/meta/classes/base.bbclass index bc9b236b..7aa2e144 100644 --- a/external/poky/meta/classes/base.bbclass +++ b/external/poky/meta/classes/base.bbclass @@ -10,9 +10,13 @@ inherit utility-tasks inherit metadata_scm inherit logging -OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license" +OE_EXTRA_IMPORTS ?= "" + +OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license ${OE_EXTRA_IMPORTS}" OE_IMPORTS[type] = "list" +PACKAGECONFIG_CONFARGS ??= "" + def oe_import(d): import sys @@ -28,9 +32,11 @@ def oe_import(d): import oe.data for toimport in oe.data.typed_value("OE_IMPORTS", d): - imported = __import__(toimport) - inject(toimport.split(".", 1)[0], imported) - + try: + imported = __import__(toimport) + inject(toimport.split(".", 1)[0], imported) + except AttributeError as e: + bb.error("Error importing OE modules: %s" % str(e)) return "" # We need the oe module name space early (before INHERITs get added) @@ -121,18 +127,20 @@ 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) + # would return /usr/local/bin/ccache/gcc, but what we need is + # /usr/bin/gcc, this code can check and fix that. if "ccache" in srctool: srctool = bb.utils.which(path, tool, executable=True, direction=1) if srctool: 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)) @@ -216,7 +224,7 @@ def buildcfg_neededvars(d): bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) addhandler base_eventhandler -base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.runqueue.sceneQueueComplete bb.event.RecipeParsed" +base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed" python base_eventhandler() { import bb.runqueue @@ -224,6 +232,12 @@ python base_eventhandler() { if not d.getVar("NATIVELSBSTRING", False): d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d)) d.setVar('BB_VERSION', bb.__version__) + + # There might be no bb.event.ConfigParsed event if bitbake server is + # running, so check bb.event.BuildStarted too to make sure ${HOSTTOOLS_DIR} + # exists. + if isinstance(e, bb.event.ConfigParsed) or \ + (isinstance(e, bb.event.BuildStarted) and not os.path.exists(d.getVar('HOSTTOOLS_DIR'))): # Works with the line in layer.conf which changes PATH to point here setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d) setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False) @@ -260,23 +274,10 @@ python base_eventhandler() { if isinstance(e, bb.event.RecipePreFinalise): if d.getVar("TARGET_PREFIX") == d.getVar("SDK_PREFIX"): d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils") - d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial") d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc") d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++") d.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs") - if isinstance(e, bb.runqueue.sceneQueueComplete): - completions = d.expand("${STAGING_DIR}/sstatecompletions") - if os.path.exists(completions): - cmds = set() - with open(completions, "r") as f: - cmds = set(f) - d.setVar("completion_function", "\n".join(cmds)) - d.setVarFlag("completion_function", "func", "1") - bb.debug(1, "Executing SceneQueue Completion commands: %s" % "\n".join(cmds)) - bb.build.exec_func("completion_function", d) - os.remove(completions) - if isinstance(e, bb.event.RecipeParsed): # # If we have multiple providers of virtual/X and a PREFERRED_PROVIDER_virtual/X is set @@ -301,7 +302,6 @@ CLEANBROKEN = "0" addtask configure after do_patch do_configure[dirs] = "${B}" -do_prepare_recipe_sysroot[deptask] = "do_populate_sysroot" base_do_configure() { if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" ]; then @@ -393,7 +393,7 @@ python () { # These take the form: # # PACKAGECONFIG ??= "" - # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends,foo_runtime_recommends" + # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends,foo_runtime_recommends,foo_conflict_packageconfig" pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {} if pkgconfigflags: pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() @@ -440,8 +440,8 @@ python () { for flag, flagval in sorted(pkgconfigflags.items()): items = flagval.split(",") num = len(items) - if num > 5: - bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend,rrecommend can be specified!" + if num > 6: + bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend,rrecommend,conflict_packageconfig can be specified!" % (d.getVar('PN'), flag)) if flag in pkgconfig: @@ -455,6 +455,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) @@ -467,16 +481,20 @@ python () { if bb.data.inherits_class('license', d): check_license_format(d) - unmatched_license_flag = check_license_flags(d) - if unmatched_license_flag: - bb.debug(1, "Skipping %s because it has a restricted license not" - " whitelisted in LICENSE_FLAGS_WHITELIST" % pn) - raise bb.parse.SkipRecipe("because it has a restricted license not" - " whitelisted in LICENSE_FLAGS_WHITELIST") + unmatched_license_flags = check_license_flags(d) + if unmatched_license_flags: + if len(unmatched_license_flags) == 1: + message = "because it has a restricted license '{0}'. Which is not whitelisted in LICENSE_FLAGS_WHITELIST".format(unmatched_license_flags[0]) + else: + message = "because it has restricted licenses {0}. Which are not whitelisted in LICENSE_FLAGS_WHITELIST".format( + ", ".join("'{0}'".format(f) for f in unmatched_license_flags)) + bb.debug(1, "Skipping %s %s" % (pn, message)) + raise bb.parse.SkipRecipe(message) # 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') @@ -492,7 +510,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: @@ -501,7 +519,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: @@ -525,58 +543,46 @@ 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) + bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg]))) mlprefix = d.getVar('MLPREFIX') - d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1) + d.setVar('LICENSE_EXCLUSION-' + mlprefix + 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_) 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_ 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') @@ -600,6 +606,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}" @@ -640,6 +647,18 @@ python () { if needsrcrev: d.setVar("SRCPV", "${@bb.fetch2.get_srcrev(d)}") + # Gather all named SRCREVs to add to the sstate hash calculation + # This anonymous python snippet is called multiple times so we + # need to be careful to not double up the appends here and cause + # the base hash to mismatch the task hash + for uri in srcuri.split(): + parm = bb.fetch.decodeurl(uri)[5] + uri_names = parm.get("name", "").split(",") + for uri_name in filter(None, uri_names): + srcrev_name = "SRCREV_{}".format(uri_name) + if srcrev_name not in (d.getVarFlag("do_fetch", "vardeps") or "").split(): + d.appendVarFlag("do_fetch", "vardeps", " {}".format(srcrev_name)) + set_packagetriplet(d) # 'multimachine' handling diff --git a/external/poky/meta/classes/binconfig.bbclass b/external/poky/meta/classes/binconfig.bbclass index 133b9537..9112ed46 100644 --- a/external/poky/meta/classes/binconfig.bbclass +++ b/external/poky/meta/classes/binconfig.bbclass @@ -40,15 +40,6 @@ binconfig_package_preprocess () { -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \ $config done - for lafile in `find ${PKGD} -type f -name "*.la"` ; do - sed -i \ - -e 's:${STAGING_BASELIBDIR}:${base_libdir}:g;' \ - -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ - -e 's:${STAGING_INCDIR}:${includedir}:g;' \ - -e 's:${STAGING_DATADIR}:${datadir}:' \ - -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \ - $lafile - done } SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess" diff --git a/external/poky/meta/classes/bluetooth.bbclass b/external/poky/meta/classes/bluetooth.bbclass deleted file mode 100644 index f88b4ae5..00000000 --- a/external/poky/meta/classes/bluetooth.bbclass +++ /dev/null @@ -1,14 +0,0 @@ -# Avoid code duplication in bluetooth-dependent recipes. - -# Define a variable that expands to the recipe (package) providing core -# bluetooth support on the platform: -# "" if bluetooth is not in DISTRO_FEATURES -# else "bluez5" if bluez5 is in DISTRO_FEATURES -# else "bluez4" - -# Use this with: -# inherit bluetooth -# PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} -# PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4" - -BLUEZ ?= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5', 'bluez4', d), '', d)}" diff --git a/external/poky/meta/classes/buildhistory.bbclass b/external/poky/meta/classes/buildhistory.bbclass index 40b292b1..156324d3 100644 --- a/external/poky/meta/classes/buildhistory.bbclass +++ b/external/poky/meta/classes/buildhistory.bbclass @@ -40,6 +40,7 @@ BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/bblayers.conf conf/auto.conf con BUILDHISTORY_COMMIT ?= "1" BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory " 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: @@ -60,15 +61,34 @@ SSTATEPOSTUNPACKFUNCS[vardepvalueexclude] .= "| buildhistory_emit_outputsigs" # When extending build history, derive your class from buildhistory.bbclass # and extend this list here with the additional files created by the derived # class. -BUILDHISTORY_PRESERVE = "latest latest_srcrev" +BUILDHISTORY_PRESERVE = "latest latest_srcrev sysroot" PATCH_GIT_USER_EMAIL ?= "buildhistory@oe" PATCH_GIT_USER_NAME ?= "OpenEmbedded" +# +# Write out the contents of the sysroot +# +buildhistory_emit_sysroot() { + mkdir --parents ${BUILDHISTORY_DIR_PACKAGE} + case ${CLASSOVERRIDE} in + class-native|class-cross|class-crosssdk) + BASE=${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE} + ;; + *) + BASE=${SYSROOT_DESTDIR} + ;; + esac + buildhistory_list_files_no_owners $BASE ${BUILDHISTORY_DIR_PACKAGE}/sysroot +} + # # Write out metadata about this package for comparison when writing future packages # 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']: return 0 @@ -261,7 +281,7 @@ 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) @@ -406,8 +426,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) @@ -437,9 +457,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 @@ -448,8 +469,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. @@ -519,12 +540,28 @@ buildhistory_get_sdk_installed_target() { buildhistory_list_files() { # List the files in the specified directory, but exclude date/time etc. - # This awk script is somewhat messy, but handles where the size is not printed for device files under pseudo + # This is somewhat messy, but handles where the size is not printed for device files under pseudo + ( cd $1 + find_cmd='find . ! -path . -printf "%M %-10u %-10g %10s %p -> %l\n"' if [ "$3" = "fakeroot" ] ; then - ( cd $1 && ${FAKEROOTENV} ${FAKEROOTCMD} find . ! -path . -printf "%M %-10u %-10g %10s %p -> %l\n" | sort -k5 | sed 's/ * -> $//' > $2 ) + eval ${FAKEROOTENV} ${FAKEROOTCMD} $find_cmd else - ( cd $1 && find . ! -path . -printf "%M %-10u %-10g %10s %p -> %l\n" | sort -k5 | sed 's/ * -> $//' > $2 ) - fi + eval $find_cmd + fi | sort -k5 | sed 's/ * -> $//' > $2 ) +} + +buildhistory_list_files_no_owners() { + # List the files in the specified directory, but exclude date/time etc. + # Also don't output the ownership data, but instead output just - - so + # that the same parsing code as for _list_files works. + # This is somewhat messy, but handles where the size is not printed for device files under pseudo + ( cd $1 + find_cmd='find . ! -path . -printf "%M - - %10s %p -> %l\n"' + if [ "$3" = "fakeroot" ] ; then + eval ${FAKEROOTENV} ${FAKEROOTCMD} "$find_cmd" + else + eval "$find_cmd" + fi | sort -k5 | sed 's/ * -> $//' > $2 ) } buildhistory_list_pkg_files() { @@ -670,12 +707,29 @@ def buildhistory_get_build_id(d): statusheader = d.getVar('BUILDCFG_HEADER') return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines))) +def buildhistory_get_modified(path): + # copied from get_layer_git_status() in image-buildinfo.bbclass + import subprocess + try: + subprocess.check_output("""cd %s; export PSEUDO_UNLOAD=1; set -e; + git diff --quiet --no-ext-diff + git diff --quiet --no-ext-diff --cached""" % path, + shell=True, + stderr=subprocess.STDOUT) + return "" + except subprocess.CalledProcessError as ex: + # Silently treat errors as "modified", without checking for the + # (expected) return code 1 in a modified git repo. For example, we get + # output and a 129 return code when a layer isn't a git repo at all. + return " -- modified" + def buildhistory_get_metadata_revs(d): # We want an easily machine-readable format here, so get_layers_branch_rev isn't quite what we want layers = (d.getVar("BBLAYERS") or "").split() - medadata_revs = ["%-17s = %s:%s" % (os.path.basename(i), \ + medadata_revs = ["%-17s = %s:%s%s" % (os.path.basename(i), \ base_get_metadata_git_branch(i, None).strip(), \ - base_get_metadata_git_revision(i, None)) \ + base_get_metadata_git_revision(i, None), \ + buildhistory_get_modified(i)) \ for i in layers] return '\n'.join(medadata_revs) @@ -772,9 +826,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 @@ -820,11 +874,15 @@ python buildhistory_eventhandler() { if e.data.getVar("BUILDHISTORY_COMMIT") == "1": bb.note("Writing buildhistory") bb.build.exec_func("buildhistory_write_sigs", d) + import time + start=time.time() localdata = bb.data.createCopy(e.data) localdata.setVar('BUILDHISTORY_BUILD_FAILURES', str(e._failures)) interrupted = getattr(e, '_interrupted', 0) localdata.setVar('BUILDHISTORY_BUILD_INTERRUPTED', str(interrupted)) bb.build.exec_func("buildhistory_commit", localdata) + stop=time.time() + bb.note("Writing buildhistory took: %s seconds" % round(stop-start)) else: bb.note("No commit since BUILDHISTORY_COMMIT != '1'") } @@ -896,7 +954,7 @@ def write_latest_srcrev(d, pkghistdir): if orig_srcrev != 'INVALID': f.write('# SRCREV = "%s"\n' % orig_srcrev) if len(srcrevs) > 1: - for name, srcrev in srcrevs.items(): + for name, srcrev in sorted(srcrevs.items()): orig_srcrev = d.getVar('SRCREV_%s' % name, False) if orig_srcrev: f.write('# SRCREV_%s = "%s"\n' % (name, orig_srcrev)) @@ -904,7 +962,7 @@ def write_latest_srcrev(d, pkghistdir): else: f.write('SRCREV = "%s"\n' % next(iter(srcrevs.values()))) if len(tag_srcrevs) > 0: - for name, srcrev in tag_srcrevs.items(): + for name, srcrev in sorted(tag_srcrevs.items()): f.write('# tag_%s = "%s"\n' % (name, srcrev)) if name in old_tag_srcrevs and old_tag_srcrevs[name] != srcrev: pkg = d.getVar('PN') diff --git a/external/poky/meta/classes/buildstats.bbclass b/external/poky/meta/classes/buildstats.bbclass index 960653c7..2590c60c 100644 --- a/external/poky/meta/classes/buildstats.bbclass +++ b/external/poky/meta/classes/buildstats.bbclass @@ -100,7 +100,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") diff --git a/external/poky/meta/classes/ccache.bbclass b/external/poky/meta/classes/ccache.bbclass index 96090206..b5457359 100644 --- a/external/poky/meta/classes/ccache.bbclass +++ b/external/poky/meta/classes/ccache.bbclass @@ -1,5 +1,37 @@ -CCACHE = "${@bb.utils.which(d.getVar('PATH'), 'ccache') and 'ccache '}" -export CCACHE_DIR ?= "${TMPDIR}/ccache/${MULTIMACH_TARGET_SYS}/${PN}" +# +# Usage: +# - Enable ccache +# Add the following line to a conffile such as conf/local.conf: +# INHERIT += "ccache" +# +# - Disable ccache for a recipe +# Add the following line to the recipe if it can't be built with ccache: +# CCACHE_DISABLE = '1' +# +# - Share ccache files between different builds +# Set CCACHE_TOP_DIR to a shared dir +# CCACHE_TOP_DIR = /path/to/shared_ccache/ +# +# - TO debug ccahe +# export CCACHE_DEBUG = "1" +# export CCACHE_LOGFILE = "${CCACHE_DIR}/logfile.log" +# And also set PARALLEL_MAKE = "-j 1" to get make the log in order +# + +# Set it to a shared location for different builds, so that cache files can +# be shared between different builds. +CCACHE_TOP_DIR ?= "${TMPDIR}/ccache" + +# ccahe removes CCACHE_BASEDIR from file path, so that hashes will be the same +# in different builds. +export CCACHE_BASEDIR ?= "${TMPDIR}" + +# Used for sharing cache files after compiler is rebuilt +export CCACHE_COMPILERCHECK ?= "%compiler% -dumpspecs" + +export CCACHE_CONFIGPATH ?= "${COREBASE}/meta/conf/ccache.conf" + +export CCACHE_DIR ?= "${CCACHE_TOP_DIR}/${MULTIMACH_TARGET_SYS}/${PN}" # We need to stop ccache considering the current directory or the # debug-prefix-map target directory to be significant when calculating @@ -7,5 +39,28 @@ export CCACHE_DIR ?= "${TMPDIR}/ccache/${MULTIMACH_TARGET_SYS}/${PN}" # ${PV} or ${PR} change. export CCACHE_NOHASHDIR ?= "1" -DEPENDS_append_class-target = " ccache-native" -DEPENDS[vardepvalueexclude] = " ccache-native" +python() { + """ + Enable ccache for the recipe + """ + pn = d.getVar('PN') + # quilt-native doesn't need ccache since no c files + if not (pn in ('ccache-native', 'quilt-native') or + bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))): + d.appendVar('DEPENDS', ' ccache-native') + d.setVar('CCACHE', 'ccache ') +} + +addtask cleanccache after do_clean +python do_cleanccache() { + import shutil + + ccache_dir = d.getVar('CCACHE_DIR') + if os.path.exists(ccache_dir): + bb.note("Removing %s" % ccache_dir) + shutil.rmtree(ccache_dir) + else: + bb.note("%s doesn't exist" % ccache_dir) +} +addtask cleanall after do_cleanccache +do_cleanccache[nostamp] = "1" diff --git a/external/poky/meta/classes/ccmake.bbclass b/external/poky/meta/classes/ccmake.bbclass new file mode 100644 index 00000000..df5134a1 --- /dev/null +++ b/external/poky/meta/classes/ccmake.bbclass @@ -0,0 +1,97 @@ +inherit terminal + +python do_ccmake() { + import shutil + + # copy current config for diffing + config = os.path.join(d.getVar("B"), "CMakeCache.txt") + if os.path.exists(config): + shutil.copy(config, config + ".orig") + + oe_terminal(d.expand("ccmake ${OECMAKE_GENERATOR_ARGS} ${OECMAKE_SOURCEPATH} -Wno-dev"), + d.getVar("PN") + " - ccmake", d) + + if os.path.exists(config) and os.path.exists(config + ".orig"): + if bb.utils.md5_file(config) != bb.utils.md5_file(config + ".orig"): + # the cmake class uses cmake --build, which will by default + # regenerate configuration, simply mark the compile step as tainted + # to ensure it is re-run + bb.note("Configuration changed, recompile will be forced") + bb.build.write_taint('do_compile', d) + +} +do_ccmake[depends] += "cmake-native:do_populate_sysroot" +do_ccmake[nostamp] = "1" +do_ccmake[dirs] = "${B}" +addtask ccmake after do_configure + +def cmake_parse_config_cache(path): + with open(path, "r") as f: + for i in f: + i = i.rstrip("\n") + if len(i) == 0 or i.startswith("//") or i.startswith("#"): + continue # empty or comment + key, value = i.split("=", 1) + key, keytype = key.split(":") + if keytype in ["INTERNAL", "STATIC"]: + continue # skip internal and static config options + yield key, keytype, value + +def cmake_diff_config_vars(a, b): + removed, added = [], [] + + for ak, akt, av in a: + found = False + for bk, bkt, bv in b: + if bk == ak: + found = True + if bkt != akt or bv != av: # changed + removed.append((ak, akt, av)) + added.append((bk, bkt, bv)) + break + # remove any missing from b + if not found: + removed.append((ak, akt, av)) + + # add any missing from a + for bk, bkt, bv in b: + if not any(bk == ak for ak, akt, av in a): + added.append((bk, bkt, bv)) + + return removed, added + +python do_ccmake_diffconfig() { + import shutil + config = os.path.join(d.getVar("B"), "CMakeCache.txt") + if os.path.exists(config) and os.path.exists(config + ".orig"): + if bb.utils.md5_file(config) != bb.utils.md5_file(config + ".orig"): + # scan the changed options + old = list(cmake_parse_config_cache(config + ".orig")) + new = list(cmake_parse_config_cache(config)) + _, added = cmake_diff_config_vars(old, new) + + if len(added) != 0: + with open(d.expand("${WORKDIR}/configuration.inc"), "w") as f: + f.write("EXTRA_OECMAKE += \" \\\n") + for k, kt, v in added: + escaped = v if " " not in v else "\"{0}\"".format(v) + f.write(" -D{0}:{1}={2} \\\n".format(k, kt, escaped)) + f.write(" \"\n") + bb.plain("Configuration recipe fragment written to: {0}".format(d.expand("${WORKDIR}/configuration.inc"))) + + with open(d.expand("${WORKDIR}/site-file.cmake"), "w") as f: + for k, kt, v in added: + f.write("SET({0} \"{1}\" CACHE {2} \"\")\n".format(k, v, kt)) + bb.plain("Configuration cmake fragment written to: {0}".format(d.expand("${WORKDIR}/site-file.cmake"))) + + # restore the original config + shutil.copy(config + ".orig", config) + else: + bb.plain("No configuration differences, skipping configuration fragment generation.") + else: + bb.fatal("No config files found. Did you run ccmake?") +} +do_ccmake_diffconfig[nostamp] = "1" +do_ccmake_diffconfig[dirs] = "${B}" +addtask ccmake_diffconfig + diff --git a/external/poky/meta/classes/chrpath.bbclass b/external/poky/meta/classes/chrpath.bbclass index ad3c3975..26b984c4 100644 --- a/external/poky/meta/classes/chrpath.bbclass +++ b/external/poky/meta/classes/chrpath.bbclass @@ -1,17 +1,20 @@ CHRPATH_BIN ?= "chrpath" PREPROCESS_RELOCATE_DIRS ?= "" -def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d): - import subprocess as sub - - 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: +def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False): + import subprocess, oe.qa + + with oe.qa.ELFFile(fpath) as elf: + try: + elf.open() + except oe.qa.NotELFFileError: + return + + try: + out = subprocess.check_output([cmd, "-l", fpath], universal_newlines=True) + except subprocess.CalledProcessError: return - out = out.decode('utf-8') - # Handle RUNPATH as well as RPATH out = out.replace("RUNPATH=","RPATH=") # Throw away everything other than the rpath list @@ -39,14 +42,18 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d): # if we have modified some rpaths call chrpath to update the binary if modified: + if break_hardlinks: + bb.utils.break_hardlinks(fpath) + 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): +def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = False): import subprocess as sub p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE) @@ -61,11 +68,18 @@ def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d): if baseprefix not in rpath: continue + if break_hardlinks: + bb.utils.break_hardlinks(fpath) + newpath = "@loader_path/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/"))) p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, newpath, fpath],stdout=sub.PIPE,stderr=sub.PIPE) out, err = p.communicate() -def process_dir (rootdir, directory, d): +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) @@ -74,10 +88,6 @@ def process_dir (rootdir, directory, d): 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: @@ -95,7 +105,7 @@ def process_dir (rootdir, directory, d): continue if os.path.isdir(fpath): - process_dir(rootdir, fpath, d) + process_dir(rootdir, fpath, d, break_hardlinks = break_hardlinks) else: #bb.note("Testing %s for relocatability" % fpath) @@ -108,8 +118,9 @@ def process_dir (rootdir, directory, d): else: # Temporarily make the file writeable so we can chrpath it os.chmod(fpath, perms|stat.S_IRWXU) - process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d) - + + process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d, break_hardlinks = break_hardlinks) + if perms: os.chmod(fpath, perms) diff --git a/external/poky/meta/classes/clutter.bbclass b/external/poky/meta/classes/clutter.bbclass index 5edab0e5..24b53a13 100644 --- a/external/poky/meta/classes/clutter.bbclass +++ b/external/poky/meta/classes/clutter.bbclass @@ -14,4 +14,5 @@ REALNAME = "${@get_real_name("${BPN}")}" SRC_URI = "${GNOME_MIRROR}/${REALNAME}/${VERMINOR}/${REALNAME}-${PV}.tar.xz;name=archive" S = "${WORKDIR}/${REALNAME}-${PV}" -inherit autotools pkgconfig gtk-doc gettext +CLUTTERBASEBUILDCLASS ??= "autotools" +inherit ${CLUTTERBASEBUILDCLASS} pkgconfig gtk-doc gettext diff --git a/external/poky/meta/classes/cmake.bbclass b/external/poky/meta/classes/cmake.bbclass index b364d2bc..8243f7ce 100644 --- a/external/poky/meta/classes/cmake.bbclass +++ b/external/poky/meta/classes/cmake.bbclass @@ -4,29 +4,41 @@ OECMAKE_SOURCEPATH ??= "${S}" DEPENDS_prepend = "cmake-native " B = "${WORKDIR}/build" -# We need to unset CCACHE otherwise cmake gets too confused -CCACHE = "" - # What CMake generator to use. # The supported options are "Unix Makefiles" or "Ninja". OECMAKE_GENERATOR ?= "Ninja" python() { generator = d.getVar("OECMAKE_GENERATOR") - if generator == "Unix Makefiles": - args = "-G 'Unix Makefiles' -DCMAKE_MAKE_PROGRAM=" + d.getVar("MAKE") + if "Unix Makefiles" in generator: + args = "-G '" + generator + "' -DCMAKE_MAKE_PROGRAM=" + d.getVar("MAKE") d.setVar("OECMAKE_GENERATOR_ARGS", args) d.setVarFlag("do_compile", "progress", "percent") - elif generator == "Ninja": + elif "Ninja" in generator: + args = "-G '" + generator + "' -DCMAKE_MAKE_PROGRAM=ninja" d.appendVar("DEPENDS", " ninja-native") - d.setVar("OECMAKE_GENERATOR_ARGS", "-G Ninja -DCMAKE_MAKE_PROGRAM=ninja") + d.setVar("OECMAKE_GENERATOR_ARGS", args) 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]) } -# C/C++ Compiler (without cpu arch/tune arguments) -OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" -OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" OECMAKE_AR ?= "${AR}" # Compiler flags @@ -39,6 +51,9 @@ 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 ?= "" + OECMAKE_RPATH ?= "" OECMAKE_PERLNATIVE_DIR ??= "" OECMAKE_EXTRA_ROOT_PATH ?= "" @@ -48,21 +63,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 @@ -72,10 +95,12 @@ 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} ) +set( CMAKE_CXX_COMPILER_LAUNCHER ${OECMAKE_CXX_COMPILER_LAUNCHER} ) set( CMAKE_ASM_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_AR ${OECMAKE_AR} CACHE FILEPATH "Archiver" ) set( CMAKE_C_FLAGS "${OECMAKE_C_FLAGS}" CACHE STRING "CFLAGS" ) @@ -89,11 +114,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 ) @@ -102,12 +128,19 @@ set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf ) # directory as rpath by default set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} ) -# Use native cmake modules +# 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/") # add for non /usr/lib libdir, e.g. /usr/lib64 set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir}) +# add include dir to implicit includes in case it differs from /usr/include +list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES ${includedir}) +list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES ${includedir}) + EOF } @@ -140,26 +173,38 @@ cmake_do_configure() { $oecmake_sitefile \ ${OECMAKE_SOURCEPATH} \ -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ - -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix'))} \ - -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix'))} \ - -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir'), d.getVar('prefix'))} \ + -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir'), d.getVar('prefix') + '/')} \ + -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir'), d.getVar('prefix') + '/')} \ + -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir'), d.getVar('prefix') + '/')} \ -DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \ - -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir'), d. getVar('prefix'))} \ + -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir'), d. getVar('prefix') + '/')} \ -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \ - -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'))} \ + -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_VERBOSE_MAKEFILE=1 \ -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \ ${EXTRA_OECMAKE} \ -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/external/poky/meta/classes/cml1.bbclass b/external/poky/meta/classes/cml1.bbclass index 926747f2..c7f6723c 100644 --- a/external/poky/meta/classes/cml1.bbclass +++ b/external/poky/meta/classes/cml1.bbclass @@ -1,7 +1,7 @@ cml1_do_configure() { set -e unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake oldconfig + yes '' | oe_runmake oldconfig } EXPORT_FUNCTIONS do_configure @@ -26,7 +26,7 @@ python do_menuconfig() { except OSError: mtime = 0 - oe_terminal("${SHELL} -c \"make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'), + oe_terminal("sh -c \"make %s; if [ \\$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'), d.getVar('PN') + ' Configuration', d) # FIXME this check can be removed when the minimum bitbake version has been bumped diff --git a/external/poky/meta/classes/compress_doc.bbclass b/external/poky/meta/classes/compress_doc.bbclass index 45bb8fff..d6d11fad 100644 --- a/external/poky/meta/classes/compress_doc.bbclass +++ b/external/poky/meta/classes/compress_doc.bbclass @@ -160,6 +160,7 @@ def _is_compress_doc(file, compress_format_list): return False, '' def compress_doc(topdir, compress_mode, compress_cmds): + import subprocess hardlink_dict = {} for root, dirs, files in os.walk(topdir): for f in files: @@ -187,6 +188,7 @@ def compress_doc(topdir, compress_mode, compress_cmds): # Decompress doc files which format is not compress_mode def decompress_doc(topdir, compress_mode, decompress_cmds): + import subprocess hardlink_dict = {} decompress = True for root, dirs, files in os.walk(topdir): diff --git a/external/poky/meta/classes/core-image.bbclass b/external/poky/meta/classes/core-image.bbclass index a9a2cec6..88ca2721 100644 --- a/external/poky/meta/classes/core-image.bbclass +++ b/external/poky/meta/classes/core-image.bbclass @@ -26,12 +26,15 @@ # - 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 # - doc-pkgs - documentation packages for all installed packages in the rootfs +# - 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/external/poky/meta/classes/cpan-base.bbclass b/external/poky/meta/classes/cpan-base.bbclass index 577fcd63..867edf87 100644 --- a/external/poky/meta/classes/cpan-base.bbclass +++ b/external/poky/meta/classes/cpan-base.bbclass @@ -2,7 +2,7 @@ # cpan-base providers various perl related information needed for building # cpan modules # -FILES_${PN} += "${libdir}/perl ${datadir}/perl" +FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5" DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}" RDEPENDS_${PN} += "${@["perl", ""][(bb.data.inherits_class('native', d))]}" @@ -14,5 +14,5 @@ def is_target(d): return "yes" return "no" -PERLLIBDIRS = "${libdir}/perl" -PERLLIBDIRS_class-native = "${libdir}/perl-native" +PERLLIBDIRS = "${libdir}/perl5" +PERLLIBDIRS_class-native = "${libdir}/perl5" diff --git a/external/poky/meta/classes/cpan.bbclass b/external/poky/meta/classes/cpan.bbclass index a5bc3018..e9908ae4 100644 --- a/external/poky/meta/classes/cpan.bbclass +++ b/external/poky/meta/classes/cpan.bbclass @@ -10,13 +10,14 @@ EXTRA_PERLFLAGS ?= "" export PERLCONFIGTARGET = "${@is_target(d)}" # Env var which tells perl where the perl include files are -export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}/CORE" -export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" -export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" -export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_version(d)}/" +export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE" +export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}" +export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}" +export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/" +export PERLHOSTARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/${@get_perl_hostarch(d)}/" cpan_do_configure () { - yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL INSTALLDIRS=vendor NO_PERLLOCAL=1 NO_PACKLIST=1 ${EXTRA_CPANFLAGS} + yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL INSTALLDIRS=vendor NO_PERLLOCAL=1 NO_PACKLIST=1 PERL=$(which perl) ${EXTRA_CPANFLAGS} # Makefile.PLs can exit with success without generating a # Makefile, e.g. in cases of missing configure time @@ -27,7 +28,7 @@ cpan_do_configure () { [ -e Makefile ] || bbfatal "No Makefile was generated by Makefile.PL" if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then - . ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh + . ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh # Use find since there can be a Makefile generated for each Makefile.PL for f in `find -name Makefile.PL`; do f2=`echo $f | sed -e 's/.PL//'` diff --git a/external/poky/meta/classes/cpan_build.bbclass b/external/poky/meta/classes/cpan_build.bbclass index 9a2ad895..f3fb4666 100644 --- a/external/poky/meta/classes/cpan_build.bbclass +++ b/external/poky/meta/classes/cpan_build.bbclass @@ -7,14 +7,15 @@ EXTRA_CPAN_BUILD_FLAGS ?= "" # Env var which tells perl if it should use host (no) or target (yes) settings export PERLCONFIGTARGET = "${@is_target(d)}" -export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}" -export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_version(d)}/" +export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}" +export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/" +export PERLHOSTARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/${@get_perl_hostarch(d)}/" export LD = "${CCLD}" cpan_build_do_configure () { if [ "${@is_target(d)}" = "yes" ]; then # build for target - . ${STAGING_LIBDIR}/perl/config.sh + . ${STAGING_LIBDIR}/perl5/config.sh fi perl Build.PL --installdirs vendor --destdir ${D} \ diff --git a/external/poky/meta/classes/cross-canadian.bbclass b/external/poky/meta/classes/cross-canadian.bbclass index acde331e..f5c9f615 100644 --- a/external/poky/meta/classes/cross-canadian.bbclass +++ b/external/poky/meta/classes/cross-canadian.bbclass @@ -8,6 +8,8 @@ # SDK packages are built either explicitly by the user, # or indirectly via dependency. No need to be in 'world'. EXCLUDE_FROM_WORLD = "1" +NATIVESDKLIBC ?= "libc-glibc" +LIBCOVERRIDE = ":${NATIVESDKLIBC}" CLASSOVERRIDE = "class-cross-canadian" STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}:${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" diff --git a/external/poky/meta/classes/cross.bbclass b/external/poky/meta/classes/cross.bbclass index 34d7951f..bfec91d0 100644 --- a/external/poky/meta/classes/cross.bbclass +++ b/external/poky/meta/classes/cross.bbclass @@ -17,6 +17,9 @@ HOST_CC_ARCH = "${BUILD_CC_ARCH}" HOST_LD_ARCH = "${BUILD_LD_ARCH}" HOST_AS_ARCH = "${BUILD_AS_ARCH}" +# No strip sysroot when DEBUG_BUILD is enabled +INHIBIT_SYSROOT_STRIP ?= "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}" + export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir} /lib /lib64 /usr/lib /usr/lib64" STAGING_DIR_HOST = "${RECIPE_SYSROOT_NATIVE}" @@ -67,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 () { @@ -94,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/external/poky/meta/classes/crosssdk.bbclass b/external/poky/meta/classes/crosssdk.bbclass index fdaaac84..04aecb69 100644 --- a/external/poky/meta/classes/crosssdk.bbclass +++ b/external/poky/meta/classes/crosssdk.bbclass @@ -1,11 +1,19 @@ inherit cross CLASSOVERRIDE = "class-crosssdk" +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}" @@ -35,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/external/poky/meta/classes/cve-check.bbclass b/external/poky/meta/classes/cve-check.bbclass index 19ed5548..514897e8 100644 --- a/external/poky/meta/classes/cve-check.bbclass +++ b/external/poky/meta/classes/cve-check.bbclass @@ -26,7 +26,7 @@ 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_LOG ?= "${T}/cve.log" CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check" @@ -52,17 +52,20 @@ python do_cve_check () { """ 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 before do_build +addtask cve_check before do_build after do_fetch do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db" do_cve_check[nostamp] = "1" @@ -129,6 +132,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: @@ -172,13 +179,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: @@ -214,7 +221,7 @@ def check_cves(d, patched_cves): (_, _, _, version_start, operator_start, version_end, operator_end) = row #bb.debug(2, "Evaluating row " + str(row)) - if (operator_start == '=' and pv == version_start): + if (operator_start == '=' and pv == version_start) or version_start == '-': vulnerable = True else: if operator_start: @@ -256,7 +263,7 @@ def check_cves(d, patched_cves): conn.close() - return (list(patched_cves), cves_unpatched) + return (list(cve_whitelist), list(patched_cves), cves_unpatched) def get_cve_info(d, cves): """ @@ -280,7 +287,7 @@ def get_cve_info(d, cves): conn.close() return cve_data -def cve_write_data(d, patched, unpatched, cve_data): +def cve_write_data(d, patched, unpatched, whitelisted, cve_data): """ Write CVE information in WORKDIR; and to CVE_CHECK_DIR, and CVE manifest if enabled. @@ -294,9 +301,11 @@ def cve_write_data(d, patched, unpatched, cve_data): for cve in sorted(cve_data): 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 cve in patched: write_string += "CVE STATUS: Patched\n" else: unpatched_cves.append(cve) diff --git a/external/poky/meta/classes/debian.bbclass b/external/poky/meta/classes/debian.bbclass index 989ea8f8..6f8a599c 100644 --- a/external/poky/meta/classes/debian.bbclass +++ b/external/poky/meta/classes/debian.bbclass @@ -29,11 +29,11 @@ python debian_package_name_hook () { pkgdest = d.getVar("PKGDEST") packages = d.getVar('PACKAGES') - so_re = re.compile("lib.*\.so") + so_re = re.compile(r"lib.*\.so") def socrunch(s): s = s.lower().replace('_', '-') - m = re.match("^(.*)(.)\.so\.(.*)$", s) + m = re.match(r"^(.*)(.)\.so\.(.*)$", s) if m is None: return None if m.group(2) in '0123456789': @@ -79,7 +79,7 @@ python debian_package_name_hook () { try: cmd = [d.expand("${TARGET_PREFIX}objdump"), "-p", f] output = subprocess.check_output(cmd).decode("utf-8") - for m in re.finditer("\s+SONAME\s+([^\s]+)", output): + for m in re.finditer(r"\s+SONAME\s+([^\s]+)", output): if m.group(1) not in sonames: sonames.append(m.group(1)) except subprocess.CalledProcessError: diff --git a/external/poky/meta/classes/devicetree.bbclass b/external/poky/meta/classes/devicetree.bbclass index 8fe5a5ed..c772ab2a 100644 --- a/external/poky/meta/classes/devicetree.bbclass +++ b/external/poky/meta/classes/devicetree.bbclass @@ -27,6 +27,8 @@ inherit deploy kernel-arch COMPATIBLE_MACHINE ?= "^$" +PROVIDES = "virtual/dtb" + PACKAGE_ARCH = "${MACHINE_ARCH}" SYSROOT_DIRS += "/boot/devicetree" @@ -57,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 () { @@ -114,15 +116,18 @@ def devicetree_compile(dtspath, includes, d): dtcargs += ["-o", "{0}.{1}".format(dtname, "dtbo" if isoverlay else "dtb")] dtcargs += ["-I", "dts", "-O", "dtb", "{0}.pp".format(dts)] bb.note("Running {0}".format(" ".join(dtcargs))) - subprocess.run(dtcargs, check = True) + subprocess.run(dtcargs, check = True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) python devicetree_do_compile() { includes = expand_includes("DT_INCLUDE", d) listpath = d.getVar("DT_FILES_PATH") for dts in os.listdir(listpath): - if not dts.endswith(".dts"): - continue # skip non-.dts files dtspath = os.path.join(listpath, dts) + try: + if not(os.path.isfile(dtspath)) or not(dts.endswith(".dts") or devicetree_source_is_overlay(dtspath)): + continue # skip non-.dts files and non-overlay files + except: + continue # skip if can't determine if overlay devicetree_compile(dtspath, includes, d) } diff --git a/external/poky/meta/classes/devtool-source.bbclass b/external/poky/meta/classes/devtool-source.bbclass index 1372e32c..280d6009 100644 --- a/external/poky/meta/classes/devtool-source.bbclass +++ b/external/poky/meta/classes/devtool-source.bbclass @@ -97,15 +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'): - local_files[line[-1]] = os.path.join(os.path.dirname(local_files[key]), line[-1]) - shutil.copy2(os.path.join(os.path.dirname(local_files[key]), line[-1]), workdir) - sccfile.close() + cfg = os.path.join(os.path.dirname(local_files[key]), line[-1]) + if cfg not in local_files.values(): + local_files[line[-1]] = cfg + shutil.copy2(cfg, workdir) # Ignore local files with subdir={BP} srcabspath = os.path.abspath(srcsubdir) diff --git a/external/poky/meta/classes/distro_features_check.bbclass b/external/poky/meta/classes/distro_features_check.bbclass index 9b78b03e..8124a8ca 100644 --- a/external/poky/meta/classes/distro_features_check.bbclass +++ b/external/poky/meta/classes/distro_features_check.bbclass @@ -1,37 +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 = (d.getVar('DISTRO_FEATURES') or "").split() - - any_of_distro_features = d.getVar('ANY_OF_DISTRO_FEATURES') - if any_of_distro_features: - any_of_distro_features = any_of_distro_features.split() - if set.isdisjoint(set(any_of_distro_features),set(distro_features)): - raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % any_of_distro_features) - - required_distro_features = d.getVar('REQUIRED_DISTRO_FEATURES') - if required_distro_features: - required_distro_features = required_distro_features.split() - for f in required_distro_features: - if f in distro_features: - continue - else: - raise bb.parse.SkipRecipe("missing required distro feature '%s' (not in DISTRO_FEATURES)" % f) - - conflict_distro_features = d.getVar('CONFLICT_DISTRO_FEATURES') - if conflict_distro_features: - conflict_distro_features = conflict_distro_features.split() - for f in conflict_distro_features: - if f in distro_features: - raise bb.parse.SkipRecipe("conflicting distro feature '%s' (in DISTRO_FEATURES)" % f) +python __anonymous() { + bb.warn("distro_features_check.bbclass is deprecated, please use features_check.bbclass instead") } + +inherit features_check diff --git a/external/poky/meta/classes/distrodata.bbclass b/external/poky/meta/classes/distrodata.bbclass deleted file mode 100644 index 59ee8cea..00000000 --- a/external/poky/meta/classes/distrodata.bbclass +++ /dev/null @@ -1,427 +0,0 @@ -include conf/distro/include/upstream_tracking.inc -include conf/distro/include/distro_alias.inc -include conf/distro/include/maintainers.inc - -addhandler distro_eventhandler -distro_eventhandler[eventmask] = "bb.event.BuildStarted" -python distro_eventhandler() { - import oe.distro_check as dc - import csv - logfile = dc.create_log_file(e.data, "distrodata.csv") - - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - writer = csv.writer(f) - writer.writerow(['Package', 'Description', 'Owner', 'License', - 'VerMatch', 'Version', 'Upstream', 'Reason', 'Recipe Status', - 'Distro 1', 'Distro 2', 'Distro 3']) - f.close() - bb.utils.unlockfile(lf) - - return -} - -addtask distrodata_np -do_distrodata_np[nostamp] = "1" -python do_distrodata_np() { - localdata = bb.data.createCopy(d) - pn = d.getVar("PN") - bb.note("Package Name: %s" % pn) - - import oe.distro_check as dist_check - tmpdir = d.getVar('TMPDIR') - distro_check_dir = os.path.join(tmpdir, "distro_check") - datetime = localdata.getVar('DATETIME') - dist_check.update_distro_data(distro_check_dir, datetime, localdata) - - if pn.find("-native") != -1: - pnstripped = pn.split("-native") - bb.note("Native Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.find("-cross") != -1: - pnstripped = pn.split("-cross") - bb.note("cross Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.find("-crosssdk") != -1: - pnstripped = pn.split("-crosssdk") - bb.note("cross Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.startswith("nativesdk-"): - pnstripped = pn.replace("nativesdk-", "") - bb.note("NativeSDK Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped + ":" + d.getVar('OVERRIDES')) - - - if pn.find("-initial") != -1: - pnstripped = pn.split("-initial") - bb.note("initial Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - """generate package information from .bb file""" - pname = localdata.getVar('PN') - pcurver = localdata.getVar('PV') - pdesc = localdata.getVar('DESCRIPTION') - if pdesc is not None: - pdesc = pdesc.replace(',','') - pdesc = pdesc.replace('\n','') - - pgrp = localdata.getVar('SECTION') - plicense = localdata.getVar('LICENSE').replace(',','_') - - rstatus = localdata.getVar('RECIPE_COLOR') - if rstatus is not None: - rstatus = rstatus.replace(',','') - - pupver = localdata.getVar('RECIPE_UPSTREAM_VERSION') - if pcurver == pupver: - vermatch="1" - else: - vermatch="0" - noupdate_reason = localdata.getVar('RECIPE_NO_UPDATE_REASON') - if noupdate_reason is None: - noupdate="0" - else: - noupdate="1" - noupdate_reason = noupdate_reason.replace(',','') - - maintainer = localdata.getVar('RECIPE_MAINTAINER') - rlrd = localdata.getVar('RECIPE_UPSTREAM_DATE') - result = dist_check.compare_in_distro_packages_list(distro_check_dir, localdata) - - bb.note("DISTRO: %s,%s,%s,%s,%s,%s,%s,%s,%s\n" % \ - (pname, pdesc, maintainer, plicense, vermatch, pcurver, pupver, noupdate_reason, rstatus)) - line = pn - for i in result: - line = line + "," + i - bb.note("%s\n" % line) -} -do_distrodata_np[vardepsexclude] = "DATETIME" - -addtask distrodata -do_distrodata[nostamp] = "1" -python do_distrodata() { - import csv - logpath = d.getVar('LOG_DIR') - bb.utils.mkdirhier(logpath) - logfile = os.path.join(logpath, "distrodata.csv") - - import oe.distro_check as dist_check - localdata = bb.data.createCopy(d) - tmpdir = d.getVar('TMPDIR') - distro_check_dir = os.path.join(tmpdir, "distro_check") - datetime = localdata.getVar('DATETIME') - dist_check.update_distro_data(distro_check_dir, datetime, localdata) - - pn = d.getVar("PN") - bb.note("Package Name: %s" % pn) - - if pn.find("-native") != -1: - pnstripped = pn.split("-native") - bb.note("Native Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.startswith("nativesdk-"): - pnstripped = pn.replace("nativesdk-", "") - bb.note("NativeSDK Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped + ":" + d.getVar('OVERRIDES')) - - if pn.find("-cross") != -1: - pnstripped = pn.split("-cross") - bb.note("cross Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.find("-crosssdk") != -1: - pnstripped = pn.split("-crosssdk") - bb.note("cross Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pn.find("-initial") != -1: - pnstripped = pn.split("-initial") - bb.note("initial Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - """generate package information from .bb file""" - pname = localdata.getVar('PN') - pcurver = localdata.getVar('PV') - pdesc = localdata.getVar('DESCRIPTION') - if pdesc is not None: - pdesc = pdesc.replace(',','') - pdesc = pdesc.replace('\n','') - - pgrp = localdata.getVar('SECTION') - plicense = localdata.getVar('LICENSE').replace(',','_') - - rstatus = localdata.getVar('RECIPE_COLOR') - if rstatus is not None: - rstatus = rstatus.replace(',','') - - pupver = localdata.getVar('RECIPE_UPSTREAM_VERSION') - if pcurver == pupver: - vermatch="1" - else: - vermatch="0" - - noupdate_reason = localdata.getVar('RECIPE_NO_UPDATE_REASON') - if noupdate_reason is None: - noupdate="0" - else: - noupdate="1" - noupdate_reason = noupdate_reason.replace(',','') - - maintainer = localdata.getVar('RECIPE_MAINTAINER') - rlrd = localdata.getVar('RECIPE_UPSTREAM_DATE') - # do the comparison - result = dist_check.compare_in_distro_packages_list(distro_check_dir, localdata) - - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - row = [pname, pdesc, maintainer, plicense, vermatch, pcurver, pupver, noupdate_reason, rstatus] - row.extend(result) - - writer = csv.writer(f) - writer.writerow(row) - f.close() - bb.utils.unlockfile(lf) -} -do_distrodata[vardepsexclude] = "DATETIME" - -addhandler checkpkg_eventhandler -checkpkg_eventhandler[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted" -python checkpkg_eventhandler() { - import csv - - def parse_csv_file(filename): - package_dict = {} - - with open(filename, "r") as f: - reader = csv.reader(f, delimiter='\t') - for row in reader: - pn = row[0] - - if reader.line_num == 1: - header = row - continue - - if not pn in package_dict.keys(): - package_dict[pn] = row - f.close() - - with open(filename, "w") as f: - writer = csv.writer(f, delimiter='\t') - writer.writerow(header) - for pn in package_dict.keys(): - writer.writerow(package_dict[pn]) - f.close() - - del package_dict - - if bb.event.getName(e) == "BuildStarted": - import oe.distro_check as dc - logfile = dc.create_log_file(e.data, "checkpkg.csv") - - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - writer = csv.writer(f, delimiter='\t') - headers = ['Package', 'Version', 'Upver', 'License', 'Section', - 'Home', 'Release', 'Depends', 'BugTracker', 'PE', 'Description', - 'Status', 'Tracking', 'URI', 'MAINTAINER', 'NoUpReason'] - writer.writerow(headers) - f.close() - bb.utils.unlockfile(lf) - elif bb.event.getName(e) == "BuildCompleted": - import os - filename = "tmp/log/checkpkg.csv" - if os.path.isfile(filename): - lf = bb.utils.lockfile("%s.lock"%filename) - parse_csv_file(filename) - bb.utils.unlockfile(lf) - return -} - -addtask checkpkg -do_checkpkg[nostamp] = "1" -python do_checkpkg() { - localdata = bb.data.createCopy(d) - import csv - import re - import tempfile - import subprocess - import oe.recipeutils - from bb.utils import vercmp_string - from bb.fetch2 import FetchError, NoMethodError, decodeurl - - def get_upstream_version_and_status(): - - # set if the upstream check fails reliably, e.g. absent git tags, or weird version format used on our or on upstream side. - upstream_version_unknown = localdata.getVar('UPSTREAM_VERSION_UNKNOWN') - # set if the upstream check cannot be reliably performed due to transient network failures, or server behaving weirdly. - # This one should be used sparingly, as it completely excludes a recipe from upstream checking. - upstream_check_unreliable = localdata.getVar('UPSTREAM_CHECK_UNRELIABLE') - - if upstream_check_unreliable == "1": - return "N/A", "CHECK_IS_UNRELIABLE" - - uv = oe.recipeutils.get_recipe_upstream_version(localdata) - pupver = uv['version'] if uv['version'] else "N/A" - pversion = uv['current_version'] - revision = uv['revision'] if uv['revision'] else "N/A" - - if pupver == "N/A": - pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" - else: - cmp = vercmp_string(pversion, pupver) - if cmp == -1: - pstatus = "UPDATE" if not upstream_version_unknown else "KNOWN_BROKEN" - elif cmp == 0: - pstatus = "MATCH" if not upstream_version_unknown else "KNOWN_BROKEN" - else: - pstatus = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" - - return pversion, pupver, pstatus, revision - - - """initialize log files.""" - logpath = d.getVar('LOG_DIR') - bb.utils.mkdirhier(logpath) - logfile = os.path.join(logpath, "checkpkg.csv") - - """generate package information from .bb file""" - pname = d.getVar('PN') - - if pname.find("-native") != -1: - if d.getVar('BBCLASSEXTEND'): - return - pnstripped = pname.split("-native") - bb.note("Native Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pname.startswith("nativesdk-"): - if d.getVar('BBCLASSEXTEND'): - return - pnstripped = pname.replace("nativesdk-", "") - bb.note("NativeSDK Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped + ":" + d.getVar('OVERRIDES')) - - if pname.find("-cross") != -1: - pnstripped = pname.split("-cross") - bb.note("cross Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - if pname.find("-initial") != -1: - pnstripped = pname.split("-initial") - bb.note("initial Split: %s" % pnstripped) - localdata.setVar('OVERRIDES', "pn-" + pnstripped[0] + ":" + d.getVar('OVERRIDES')) - - pdesc = localdata.getVar('DESCRIPTION') - pgrp = localdata.getVar('SECTION') - plicense = localdata.getVar('LICENSE') - psection = localdata.getVar('SECTION') - phome = localdata.getVar('HOMEPAGE') - prelease = localdata.getVar('PR') - pdepends = localdata.getVar('DEPENDS') - pbugtracker = localdata.getVar('BUGTRACKER') - ppe = localdata.getVar('PE') - psrcuri = localdata.getVar('SRC_URI') - maintainer = localdata.getVar('RECIPE_MAINTAINER') - - pversion, pupver, pstatus, prevision = get_upstream_version_and_status() - - if psrcuri: - psrcuri = psrcuri.split()[0] - else: - psrcuri = "none" - pdepends = "".join(pdepends.split("\t")) - pdesc = "".join(pdesc.split("\t")) - no_upgr_reason = d.getVar('RECIPE_NO_UPDATE_REASON') - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - writer = csv.writer(f, delimiter='\t') - writer.writerow([pname, pversion, pupver, plicense, psection, phome, - prelease, pdepends, pbugtracker, ppe, pdesc, pstatus, prevision, - psrcuri, maintainer, no_upgr_reason]) - f.close() - bb.utils.unlockfile(lf) -} - -addhandler distro_check_eventhandler -distro_check_eventhandler[eventmask] = "bb.event.BuildStarted" -python distro_check_eventhandler() { - """initialize log files.""" - import oe.distro_check as dc - result_file = dc.create_log_file(e.data, "distrocheck.csv") - return -} - -addtask distro_check -do_distro_check[nostamp] = "1" -do_distro_check[vardepsexclude] += "DATETIME" -python do_distro_check() { - """checks if the package is present in other public Linux distros""" - import oe.distro_check as dc - import shutil - if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('sdk', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk',d): - return - - localdata = bb.data.createCopy(d) - tmpdir = d.getVar('TMPDIR') - distro_check_dir = os.path.join(tmpdir, "distro_check") - logpath = d.getVar('LOG_DIR') - bb.utils.mkdirhier(logpath) - result_file = os.path.join(logpath, "distrocheck.csv") - datetime = localdata.getVar('DATETIME') - dc.update_distro_data(distro_check_dir, datetime, localdata) - - # do the comparison - result = dc.compare_in_distro_packages_list(distro_check_dir, d) - - # save the results - dc.save_distro_check_result(result, datetime, result_file, d) -} - -# -#Check Missing License Text. -#Use this task to generate the missing license text data for pkg-report system, -#then we can search those recipes which license text isn't exsit in common-licenses directory -# -addhandler checklicense_eventhandler -checklicense_eventhandler[eventmask] = "bb.event.BuildStarted" -python checklicense_eventhandler() { - """initialize log files.""" - import csv - import oe.distro_check as dc - logfile = dc.create_log_file(e.data, "missinglicense.csv") - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - writer = csv.writer(f, delimiter='\t') - writer.writerow(['Package', 'License', 'MissingLicense']) - f.close() - bb.utils.unlockfile(lf) - return -} - -addtask checklicense -do_checklicense[nostamp] = "1" -python do_checklicense() { - import csv - import shutil - logpath = d.getVar('LOG_DIR') - bb.utils.mkdirhier(logpath) - pn = d.getVar('PN') - logfile = os.path.join(logpath, "missinglicense.csv") - generic_directory = d.getVar('COMMON_LICENSE_DIR') - license_types = d.getVar('LICENSE') - for license_type in ((license_types.replace('+', '').replace('|', '&') - .replace('(', '').replace(')', '').replace(';', '') - .replace(',', '').replace(" ", "").split("&"))): - if not os.path.isfile(os.path.join(generic_directory, license_type)): - lf = bb.utils.lockfile("%s.lock" % logfile) - with open(logfile, "a") as f: - writer = csv.writer(f, delimiter='\t') - writer.writerow([pn, license_types, license_type]) - f.close() - bb.utils.unlockfile(lf) - return -} diff --git a/external/poky/meta/classes/distutils-base.bbclass b/external/poky/meta/classes/distutils-base.bbclass deleted file mode 100644 index 9f398d70..00000000 --- a/external/poky/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/external/poky/meta/classes/distutils-tools.bbclass b/external/poky/meta/classes/distutils-tools.bbclass deleted file mode 100644 index 6f2880ea..00000000 --- a/external/poky/meta/classes/distutils-tools.bbclass +++ /dev/null @@ -1,73 +0,0 @@ -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 ?= "--prefix=${D}/${prefix} \ - --install-data=${D}/${datadir}" - -distutils_do_compile() { - 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_ext 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 execution 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 (stage) execution failed." -} - -distutils_do_install() { - echo "Beginning ${PN} Install ..." - install -d ${D}${PYTHON_SITEPACKAGES_DIR} - echo "Step 2 of ${PN} Install ..." - STAGING_INCDIR=${STAGING_INCDIR} \ - STAGING_LIBDIR=${STAGING_LIBDIR} \ - PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \ - ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${DISTUTILS_INSTALL_ARGS} || \ - bbfatal_log "${PYTHON_PN} setup.py install execution failed." - - echo "Step 3 of ${PN} Install ..." - # support filenames with *spaces* - find ${D} -name "*.py" -print0 | while read -d $'\0' i ; do \ - sed -i -e s:${D}::g $i - done - - echo "Step 4 of ${PN} Install ..." - if test -e ${D}${bindir} ; then - for i in ${D}${bindir}/* ; do \ - sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i - done - fi - - echo "Step 4 of ${PN} Install ..." - if test -e ${D}${sbindir}; then - for i in ${D}${sbindir}/* ; do \ - sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i - done - fi - - echo "Step 5 of ${PN} Install ..." - rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth - - # - # FIXME: Bandaid against wrong datadir computation - # - if [ -e ${D}${datadir}/share ]; then - mv -f ${D}${datadir}/share/* ${D}${datadir}/ - fi -} - -#EXPORT_FUNCTIONS do_compile do_install - -export LDSHARED="${CCLD} -shared" diff --git a/external/poky/meta/classes/distutils.bbclass b/external/poky/meta/classes/distutils.bbclass deleted file mode 100644 index 98627314..00000000 --- a/external/poky/meta/classes/distutils.bbclass +++ /dev/null @@ -1,92 +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_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 {} \; - - if test -e ${D}${bindir} ; then - for i in ${D}${bindir}/* ; do \ - if [ ${PN} != "${BPN}-native" ]; then - sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${USRBINPATH}/env\ python:g $i - fi - sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i - done - fi - - if [ -e ${D}${sbindir} ]; then - for i in ${D}${sbindir}/* ; do \ - if [ ${PN} != "${BPN}-native" ]; then - sed -i -e s:${STAGING_BINDIR_NATIVE}/python-native/python:${USRBINPATH}/env\ python:g $i - fi - sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i - done - fi - - 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/external/poky/meta/classes/distutils3.bbclass b/external/poky/meta/classes/distutils3.bbclass index 834e3224..7356b524 100644 --- a/external/poky/meta/classes/distutils3.bbclass +++ b/external/poky/meta/classes/distutils3.bbclass @@ -1,76 +1,55 @@ 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} \ --install-data=${datadir}" +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* - find ${D} -name "*.py" -exec grep -q ${D} {} \; -exec sed -i -e s:${D}::g {} \; - - if test -e ${D}${bindir} ; then - for i in ${D}${bindir}/* ; do \ - sed -i -e s:${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}:${USRBINPATH}/env\ ${PYTHON_PN}:g $i - sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i - done - fi + find ${D} -name "*.py" -exec grep -q ${D} {} \; \ + -exec sed -i -e s:${D}::g {} \; - if test -e ${D}${sbindir}; then - for i in ${D}${sbindir}/* ; do \ - sed -i -e s:${STAGING_BINDIR_NATIVE}/python-${PYTHON_PN}/${PYTHON_PN}:${USRBINPATH}/env\ ${PYTHON_PN}:g $i + 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 - done - fi + fi + done rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth - + # # FIXME: Bandaid against wrong datadir computation # diff --git a/external/poky/meta/classes/externalsrc.bbclass b/external/poky/meta/classes/externalsrc.bbclass index 3618b99a..d2001299 100644 --- a/external/poky/meta/classes/externalsrc.bbclass +++ b/external/poky/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', '') @@ -203,7 +202,7 @@ def srctree_hash_files(d, srcdir=None): ret = " " if git_dir is not None: - oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1') + oe_hash_file = os.path.join(git_dir, 'oe-devtool-tree-sha1-%s' % d.getVar('PN')) with tempfile.NamedTemporaryFile(prefix='oe-devtool-index') as tmp_index: # Clone index shutil.copyfile(os.path.join(git_dir, 'index'), tmp_index.name) diff --git a/external/poky/meta/classes/extrausers.bbclass b/external/poky/meta/classes/extrausers.bbclass index 7709407b..32569e97 100644 --- a/external/poky/meta/classes/extrausers.bbclass +++ b/external/poky/meta/classes/extrausers.bbclass @@ -1,18 +1,17 @@ -# This bbclass is mainly used for image level user/group configuration. +# This bbclass is used for image level user/group configuration. # Inherit this class if you want to make EXTRA_USERS_PARAMS effective. # Below is an example showing how to use this functionality. -# INHERIT += "extrausers" +# IMAGE_CLASSES += "extrausers" # EXTRA_USERS_PARAMS = "\ -# useradd -p '' tester; \ -# groupadd developers; \ -# userdel nobody; \ -# groupdel -g video; \ -# groupmod -g 1020 developers; \ -# usermod -s /bin/sh tester; \ +# useradd -p '' tester; \ +# groupadd developers; \ +# userdel nobody; \ +# groupdel -g video; \ +# groupmod -g 1020 developers; \ +# usermod -s /bin/sh tester; \ # " - inherit useradd_base PACKAGE_INSTALL_append = " ${@['', 'base-passwd shadow'][bool(d.getVar('EXTRA_USERS_PARAMS'))]}" diff --git a/external/poky/meta/classes/features_check.bbclass b/external/poky/meta/classes/features_check.bbclass new file mode 100644 index 00000000..876d32e3 --- /dev/null +++ b/external/poky/meta/classes/features_check.bbclass @@ -0,0 +1,88 @@ +# 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. +# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included +# in MACHINE_FEATURES. +# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included +# in MACHINE_FEATURES. +# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in +# MACHINE_FEATURES. +# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included +# in COMBINED_FEATURES. +# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included +# in COMBINED_FEATURES. +# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in +# COMBINED_FEATURES. +# +# Copyright 2019 (C) Texas Instruments Inc. +# Copyright 2013 (C) O.S. Systems Software LTDA. + +python () { + if d.getVar('PARSE_ALL_RECIPES', False): + return + + # Assume at least one var is set. + distro_features = set((d.getVar('DISTRO_FEATURES') or '').split()) + + any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split()) + if any_of_distro_features: + if set.isdisjoint(any_of_distro_features, distro_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features)) + + required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split()) + if required_distro_features: + missing = set.difference(required_distro_features, distro_features) + if missing: + raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split()) + if conflict_distro_features: + conflicts = set.intersection(conflict_distro_features, distro_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) + + # Assume at least one var is set. + machine_features = set((d.getVar('MACHINE_FEATURES') or '').split()) + + any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split()) + if any_of_machine_features: + if set.isdisjoint(any_of_machine_features, machine_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features)) + + required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split()) + if required_machine_features: + missing = set.difference(required_machine_features, machine_features) + if missing: + raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split()) + if conflict_machine_features: + conflicts = set.intersection(conflict_machine_features, machine_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) + + # Assume at least one var is set. + combined_features = set((d.getVar('COMBINED_FEATURES') or '').split()) + + any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split()) + if any_of_combined_features: + if set.isdisjoint(any_of_combined_features, combined_features): + raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features)) + + required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split()) + if required_combined_features: + missing = set.difference(required_combined_features, combined_features) + if missing: + raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing))) + + conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split()) + if conflict_combined_features: + conflicts = set.intersection(conflict_combined_features, combined_features) + if conflicts: + raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts))) +} diff --git a/external/poky/meta/classes/fontcache.bbclass b/external/poky/meta/classes/fontcache.bbclass index f71a754a..97e7f17f 100644 --- a/external/poky/meta/classes/fontcache.bbclass +++ b/external/poky/meta/classes/fontcache.bbclass @@ -20,6 +20,7 @@ if [ -n "$D" ] ; then $INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} \ 'bindir="${bindir}"' \ 'libdir="${libdir}"' \ + 'libexecdir="${libexecdir}"' \ 'base_libdir="${base_libdir}"' \ 'fontconfigcachedir="${FONTCONFIG_CACHE_DIR}"' \ 'fontconfigcacheparams="${FONTCONFIG_CACHE_PARAMS}"' \ diff --git a/external/poky/meta/classes/gconf.bbclass b/external/poky/meta/classes/gconf.bbclass index 4e0ee2e7..3e3c509d 100644 --- a/external/poky/meta/classes/gconf.bbclass +++ b/external/poky/meta/classes/gconf.bbclass @@ -49,7 +49,7 @@ python populate_packages_append () { for pkg in packages: schema_dir = '%s/%s/etc/gconf/schemas' % (pkgdest, pkg) schemas = [] - schema_re = re.compile(".*\.schemas$") + schema_re = re.compile(r".*\.schemas$") if os.path.exists(schema_dir): for f in os.listdir(schema_dir): if schema_re.match(f): diff --git a/external/poky/meta/classes/gnome.bbclass b/external/poky/meta/classes/gnome.bbclass deleted file mode 100644 index c6202bbb..00000000 --- a/external/poky/meta/classes/gnome.bbclass +++ /dev/null @@ -1 +0,0 @@ -inherit gnomebase gtk-icon-cache gconf mime diff --git a/external/poky/meta/classes/go-mod.bbclass b/external/poky/meta/classes/go-mod.bbclass new file mode 100644 index 00000000..5871d025 --- /dev/null +++ b/external/poky/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. +export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -modcacherw" + +inherit go + +GO_WORKDIR ?= "${GO_IMPORT}" +do_compile[dirs] += "${B}/src/${GO_WORKDIR}" diff --git a/external/poky/meta/classes/go-ptest.bbclass b/external/poky/meta/classes/go-ptest.bbclass new file mode 100644 index 00000000..e230a805 --- /dev/null +++ b/external/poky/meta/classes/go-ptest.bbclass @@ -0,0 +1,54 @@ +inherit go ptest + +do_compile_ptest_base() { + export TMPDIR="${GOTMPDIR}" + rm -f ${B}/.go_compiled_tests.list + go_list_package_tests | while read pkg; do + cd ${B}/src/$pkg + ${GO} test ${GOPTESTBUILDFLAGS} $pkg + find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \ + sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list + done + do_compile_ptest +} + +do_compile_ptest_base[dirs] =+ "${GOTMPDIR}" + +go_make_ptest_wrapper() { + cat >${D}${PTEST_PATH}/run-ptest <&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1 + exit \$?) +EOF + +} + +do_install_ptest_base() { + test -f "${B}/.go_compiled_tests.list" || exit 0 + install -d ${D}${PTEST_PATH} + go_stage_testdata + go_make_ptest_wrapper + havetests="" + while read test; do + testdir=`dirname $test` + testprog=`basename $test` + install -d ${D}${PTEST_PATH}/$testdir + install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test + echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest + havetests="yes" + done < ${B}/.go_compiled_tests.list + if [ -n "$havetests" ]; then + echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest + chmod +x ${D}${PTEST_PATH}/run-ptest + else + rm -rf ${D}${PTEST_PATH} + fi + do_install_ptest + chown -R root:root ${D}${PTEST_PATH} +} + +INSANE_SKIP_${PN}-ptest += "ldflags" + diff --git a/external/poky/meta/classes/go.bbclass b/external/poky/meta/classes/go.bbclass index af331f80..a9e31b50 100644 --- a/external/poky/meta/classes/go.bbclass +++ b/external/poky/meta/classes/go.bbclass @@ -1,4 +1,4 @@ -inherit goarch ptest +inherit goarch GO_PARALLEL_BUILD ?= "${@oe.utils.parallel_make_argument(d, '-p %d')}" @@ -7,6 +7,24 @@ GOROOT_class-nativesdk = "${STAGING_DIR_TARGET}${libdir}/go" GOROOT = "${STAGING_LIBDIR}/go" export GOROOT export GOROOT_FINAL = "${libdir}/go" +export GOCACHE = "${B}/.cache" + +export GOARCH = "${TARGET_GOARCH}" +export GOOS = "${TARGET_GOOS}" +export GOHOSTARCH="${BUILD_GOARCH}" +export GOHOSTOS="${BUILD_GOOS}" + +GOARM[export] = "0" +GOARM_arm_class-target = "${TARGET_GOARM}" +GOARM_arm_class-target[export] = "1" + +GO386[export] = "0" +GO386_x86_class-target = "${TARGET_GO386}" +GO386_x86_class-target[export] = "1" + +GOMIPS[export] = "0" +GOMIPS_mips_class-target = "${TARGET_GOMIPS}" +GOMIPS_mips_class-target[export] = "1" DEPENDS_GOLANG_class-target = "virtual/${TUNE_PKGARCH}-go virtual/${TARGET_PREFIX}go-runtime" DEPENDS_GOLANG_class-native = "go-native" @@ -23,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 ?= "" @@ -35,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}" @@ -45,7 +64,6 @@ GO_INSTALL_FILTEROUT ?= "${GO_IMPORT}/vendor/" B = "${WORKDIR}/build" export GOPATH = "${B}" -export GOCACHE = "off" export GOTMPDIR ?= "${WORKDIR}/go-tmp" GOTMPDIR[vardepvalue] = "" @@ -54,17 +72,13 @@ python go_do_unpack() { if len(src_uri) == 0: return - try: - fetcher = bb.fetch2.Fetch(src_uri, d) - for url in fetcher.urls: - if fetcher.ud[url].type == 'git': - if fetcher.ud[url].parm.get('destsuffix') is None: - s_dirname = os.path.basename(d.getVar('S')) - fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', - d.getVar('GO_IMPORT')) + '/' - fetcher.unpack(d.getVar('WORKDIR')) - except bb.fetch2.BBFetchException as e: - raise bb.build.FuncFailed(e) + fetcher = bb.fetch2.Fetch(src_uri, d) + for url in fetcher.urls: + if fetcher.ud[url].type == 'git': + if fetcher.ud[url].parm.get('destsuffix') is None: + s_dirname = os.path.basename(d.getVar('S')) + fetcher.ud[url].parm['destsuffix'] = os.path.join(s_dirname, 'src', d.getVar('GO_IMPORT')) + '/' + fetcher.unpack(d.getVar('WORKDIR')) } go_list_packages() { @@ -97,24 +111,11 @@ go_do_compile() { do_compile[dirs] =+ "${GOTMPDIR}" do_compile[cleandirs] = "${B}/bin ${B}/pkg" -do_compile_ptest_base() { - export TMPDIR="${GOTMPDIR}" - rm -f ${B}/.go_compiled_tests.list - go_list_package_tests | while read pkg; do - cd ${B}/src/$pkg - ${GO} test ${GOPTESTBUILDFLAGS} $pkg - find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \ - sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list - done - do_compile_ptest -} -do_compile_ptest_base[dirs] =+ "${GOTMPDIR}" - go_do_install() { install -d ${D}${libdir}/go/src/${GO_IMPORT} tar -C ${S}/src/${GO_IMPORT} -cf - --exclude-vcs --exclude '*.test' --exclude 'testdata' . | \ tar -C ${D}${libdir}/go/src/${GO_IMPORT} --no-same-owner -xf - - tar -C ${B} -cf - pkg | tar -C ${D}${libdir}/go --no-same-owner -xf - + tar -C ${B} -cf - --exclude-vcs pkg | tar -C ${D}${libdir}/go --no-same-owner -xf - if [ -n "`ls ${B}/${GO_BUILD_BINDIR}/`" ]; then install -d ${D}${bindir} @@ -122,18 +123,6 @@ go_do_install() { fi } -go_make_ptest_wrapper() { - cat >${D}${PTEST_PATH}/run-ptest <&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1 - exit \$?) -EOF - -} - go_stage_testdata() { oldwd="$PWD" cd ${S}/src @@ -148,43 +137,18 @@ go_stage_testdata() { cd "$oldwd" } -do_install_ptest_base() { - test -f "${B}/.go_compiled_tests.list" || exit 0 - install -d ${D}${PTEST_PATH} - go_stage_testdata - go_make_ptest_wrapper - havetests="" - while read test; do - testdir=`dirname $test` - testprog=`basename $test` - install -d ${D}${PTEST_PATH}/$testdir - install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test - echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest - havetests="yes" - done < ${B}/.go_compiled_tests.list - if [ -n "$havetests" ]; then - echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest - chmod +x ${D}${PTEST_PATH}/run-ptest - else - rm -rf ${D}${PTEST_PATH} - fi - do_install_ptest - chown -R root:root ${D}${PTEST_PATH} -} - EXPORT_FUNCTIONS do_unpack do_configure do_compile do_install FILES_${PN}-dev = "${libdir}/go/src" FILES_${PN}-staticdev = "${libdir}/go/pkg" INSANE_SKIP_${PN} += "ldflags" -INSANE_SKIP_${PN}-ptest += "ldflags" # Add -buildmode=pie to GOBUILDFLAGS 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'): + 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/external/poky/meta/classes/goarch.bbclass b/external/poky/meta/classes/goarch.bbclass index b2c94fad..1099b957 100644 --- a/external/poky/meta/classes/goarch.bbclass +++ b/external/poky/meta/classes/goarch.bbclass @@ -3,18 +3,32 @@ BUILD_GOARCH = "${@go_map_arch(d.getVar('BUILD_ARCH'), d)}" BUILD_GOTUPLE = "${BUILD_GOOS}_${BUILD_GOARCH}" HOST_GOOS = "${@go_map_os(d.getVar('HOST_OS'), d)}" HOST_GOARCH = "${@go_map_arch(d.getVar('HOST_ARCH'), d)}" -HOST_GOARM = "${@go_map_arm(d.getVar('HOST_ARCH'), d.getVar('TUNE_FEATURES'), 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.getVar('TUNE_FEATURES'), 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')]}" +# Use the MACHINEOVERRIDES to map ARM CPU architecture passed to GO via GOARM. +# This is combined with *_ARCH to set HOST_GOARM and TARGET_GOARM. +BASE_GOARM = '' +BASE_GOARM_armv7ve = '7' +BASE_GOARM_armv7a = '7' +BASE_GOARM_armv6 = '6' +BASE_GOARM_armv5 = '5' + # Go supports dynamic linking on a limited set of architectures. # See the supportsDynlink function in go/src/cmd/compile/internal/gc/main.go GO_DYNLINK = "" @@ -23,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 = "" @@ -32,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" @@ -39,9 +55,12 @@ 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: +# gcc: fatal error: no input files +CCACHE_DISABLE ?= "1" + def go_map_arch(a, d): import re if re.match('i.86', a): @@ -64,18 +83,14 @@ def go_map_arch(a, d): return 'ppc64' elif re.match('p(pc|owerpc)(64el)', a): return 'ppc64le' + elif a == 'riscv64': + return 'riscv64' else: raise bb.parse.SkipRecipe("Unsupported CPU architecture: %s" % a) -def go_map_arm(a, f, d): - import re - if re.match('arm.*', a): - if 'armv7' in f: - return '7' - elif 'armv6' in f: - return '6' - elif 'armv5' in f: - return '5' +def go_map_arm(a, d): + if a.startswith("arm"): + return d.getVar('BASE_GOARM') return '' def go_map_386(a, f, d): diff --git a/external/poky/meta/classes/gobject-introspection.bbclass b/external/poky/meta/classes/gobject-introspection.bbclass index a323c1fc..504f75e2 100644 --- a/external/poky/meta/classes/gobject-introspection.bbclass +++ b/external/poky/meta/classes/gobject-introspection.bbclass @@ -6,14 +6,24 @@ # This also sets up autoconf-based recipes to build introspection data (or not), # depending on distro and machine features (see gobject-introspection-data class). inherit python3native gobject-introspection-data + +# meson: default option name to enable/disable introspection. This matches most +# project's configuration. In doubts - check meson_options.txt in project's +# source path. +GIR_MESON_OPTION ?= 'introspection' +GIR_MESON_ENABLE_FLAG ?= 'true' +GIR_MESON_DISABLE_FLAG ?= 'false' + +# Auto enable/disable based on GI_DATA_ENABLED EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection', '--disable-introspection', d)} " +EXTRA_OEMESON_prepend_class-target = "-D${GIR_MESON_OPTION}=${@bb.utils.contains('GI_DATA_ENABLED', 'True', '${GIR_MESON_ENABLE_FLAG}', '${GIR_MESON_DISABLE_FLAG}', d)} " # When building native recipes, disable introspection, as it is not necessary, # pulls in additional dependencies, and makes build times longer EXTRA_OECONF_prepend_class-native = "--disable-introspection " EXTRA_OECONF_prepend_class-nativesdk = "--disable-introspection " - -UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection" +EXTRA_OEMESON_prepend_class-native = "-D${GIR_MESON_OPTION}=${GIR_MESON_DISABLE_FLAG} " +EXTRA_OEMESON_prepend_class-nativesdk = "-D${GIR_MESON_OPTION}=${GIR_MESON_DISABLE_FLAG} " # Generating introspection data depends on a combination of native and target # introspection tools, and qemu to run the target tools. @@ -25,7 +35,7 @@ DEPENDS_append_class-native = " gobject-introspection-native" DEPENDS_append_class-nativesdk = " gobject-introspection-native" # This is used by introspection tools to find .gir includes -export XDG_DATA_DIRS = "${STAGING_DATADIR}" +export XDG_DATA_DIRS = "${STAGING_DATADIR}:${STAGING_LIBDIR}" do_configure_prepend_class-target () { # introspection.m4 pre-packaged with upstream tarballs does not yet diff --git a/external/poky/meta/classes/grub-efi-cfg.bbclass b/external/poky/meta/classes/grub-efi-cfg.bbclass index 5eeee6c2..3a2cdd69 100644 --- a/external/poky/meta/classes/grub-efi-cfg.bbclass +++ b/external/poky/meta/classes/grub-efi-cfg.bbclass @@ -23,10 +23,12 @@ GRUB_TIMEOUT ?= "10" #FIXME: build this from the machine config GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" -EFIDIR = "/EFI/BOOT" GRUB_ROOT ?= "${ROOT}" APPEND ?= "" +# Uses MACHINE specific KERNEL_IMAGETYPE +PACKAGE_ARCH = "${MACHINE_ARCH}" + # Need UUID utility code. inherit fs-uuid @@ -86,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/external/poky/meta/classes/grub-efi.bbclass b/external/poky/meta/classes/grub-efi.bbclass index 90badc03..8fc6999e 100644 --- a/external/poky/meta/classes/grub-efi.bbclass +++ b/external/poky/meta/classes/grub-efi.bbclass @@ -1,39 +1,8 @@ inherit grub-efi-cfg +require conf/image-uefi.conf efi_populate() { - # DEST must be the root of the image so that EFIDIR is not - # nested under a top level directory. - DEST=$1 - - install -d ${DEST}${EFIDIR} - - GRUB_IMAGE="grub-efi-bootia32.efi" - DEST_IMAGE="bootia32.efi" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - GRUB_IMAGE="grub-efi-bootx64.efi" - DEST_IMAGE="bootx64.efi" - fi - install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} ${DEST}${EFIDIR}/${DEST_IMAGE} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_IMAGE" >${DEST}/startup.nsh + efi_populate_common "$1" grub-efi install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg } - -efi_iso_populate() { - iso_dir=$1 - efi_populate $iso_dir - # Build a EFI directory to create efi.img - mkdir -p ${EFIIMGDIR}/${EFIDIR} - cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} - cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" > ${EFIIMGDIR}/startup.nsh - if [ -f "$iso_dir/initrd" ] ; then - cp $iso_dir/initrd ${EFIIMGDIR} - fi -} - -efi_hddimg_populate() { - efi_populate $1 -} diff --git a/external/poky/meta/classes/gsettings.bbclass b/external/poky/meta/classes/gsettings.bbclass index eae3dc79..33afc96a 100644 --- a/external/poky/meta/classes/gsettings.bbclass +++ b/external/poky/meta/classes/gsettings.bbclass @@ -7,32 +7,36 @@ # TODO use a trigger so that this runs once per package operation run - -RDEPENDS_${PN} += "glib-2.0-utils" - -FILES_${PN} += "${datadir}/glib-2.0/schemas" - -PACKAGE_WRITE_DEPS += "glib-2.0-native" +GSETTINGS_PACKAGE ?= "${PN}" + +python __anonymous() { + pkg = d.getVar("GSETTINGS_PACKAGE") + if pkg: + d.appendVar("PACKAGE_WRITE_DEPS", " glib-2.0-native") + d.appendVar("RDEPENDS_" + pkg, " ${MLPREFIX}glib-2.0-utils") + d.appendVar("FILES_" + pkg, " ${datadir}/glib-2.0/schemas") +} gsettings_postinstrm () { glib-compile-schemas $D${datadir}/glib-2.0/schemas } python populate_packages_append () { - pkg = d.getVar('PN') - bb.note("adding gsettings postinst scripts to %s" % pkg) - - postinst = d.getVar('pkg_postinst_%s' % pkg) or d.getVar('pkg_postinst') - if not postinst: - postinst = '#!/bin/sh\n' - postinst += d.getVar('gsettings_postinstrm') - d.setVar('pkg_postinst_%s' % pkg, postinst) - - bb.note("adding gsettings postrm scripts to %s" % pkg) - - postrm = d.getVar('pkg_postrm_%s' % pkg) or d.getVar('pkg_postrm') - if not postrm: - postrm = '#!/bin/sh\n' - postrm += d.getVar('gsettings_postinstrm') - d.setVar('pkg_postrm_%s' % pkg, postrm) + pkg = d.getVar('GSETTINGS_PACKAGE') + if pkg: + bb.note("adding gsettings postinst scripts to %s" % pkg) + + postinst = d.getVar('pkg_postinst_%s' % pkg) or d.getVar('pkg_postinst') + if not postinst: + postinst = '#!/bin/sh\n' + postinst += d.getVar('gsettings_postinstrm') + d.setVar('pkg_postinst_%s' % pkg, postinst) + + bb.note("adding gsettings postrm scripts to %s" % pkg) + + postrm = d.getVar('pkg_postrm_%s' % pkg) or d.getVar('pkg_postrm') + if not postrm: + postrm = '#!/bin/sh\n' + postrm += d.getVar('gsettings_postinstrm') + d.setVar('pkg_postrm_%s' % pkg, postrm) } diff --git a/external/poky/meta/classes/gtk-doc.bbclass b/external/poky/meta/classes/gtk-doc.bbclass index b4f67549..7dd662bf 100644 --- a/external/poky/meta/classes/gtk-doc.bbclass +++ b/external/poky/meta/classes/gtk-doc.bbclass @@ -10,13 +10,24 @@ GTKDOC_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', \ bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}" +# meson: default option name to enable/disable gtk-doc. This matches most +# project's configuration. In doubts - check meson_options.txt in project's +# source path. +GTKDOC_MESON_OPTION ?= 'docs' +GTKDOC_MESON_ENABLE_FLAG ?= 'true' +GTKDOC_MESON_DISABLE_FLAG ?= 'false' + +# Auto enable/disable based on GTKDOC_ENABLED EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-gtk-doc --enable-gtk-doc-html --disable-gtk-doc-pdf', \ '--disable-gtk-doc', d)} " +EXTRA_OEMESON_prepend_class-target = "-D${GTKDOC_MESON_OPTION}=${@bb.utils.contains('GTKDOC_ENABLED', 'True', '${GTKDOC_MESON_ENABLE_FLAG}', '${GTKDOC_MESON_DISABLE_FLAG}', 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-gtk-doc " EXTRA_OECONF_prepend_class-nativesdk = "--disable-gtk-doc " +EXTRA_OEMESON_prepend_class-native = "-D${GTKDOC_MESON_OPTION}=${GTKDOC_MESON_DISABLE_FLAG} " +EXTRA_OEMESON_prepend_class-nativesdk = "-D${GTKDOC_MESON_OPTION}=${GTKDOC_MESON_DISABLE_FLAG} " # Even though gtkdoc is disabled on -native, gtk-doc package is still # needed for m4 macros. @@ -41,7 +52,7 @@ do_compile_prepend_class-target () { if [ ${GTKDOC_ENABLED} = True ]; then # Write out a qemu wrapper that will be given to gtkdoc-scangobj so that it # can run target helper binaries through that. - qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" + qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" cat > ${B}/gtkdoc-qemuwrapper << EOF #!/bin/sh # Use a modules directory which doesn't exist so we don't load random things @@ -51,6 +62,9 @@ export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy GIR_EXTRA_LIBS_PATH=\`find ${B} -name *.so -printf "%h\n"|sort|uniq| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH GIR_EXTRA_LIBS_PATH=\`find ${B} -name .libs| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH +# meson sets this wrongly (only to libs in build-dir), qemu-wrapper_cmdline() and GIR_EXTRA_LIBS_PATH take care of it properly +unset LD_LIBRARY_PATH + if [ -d ".libs" ]; then $qemu_binary ".libs/\$@" else diff --git a/external/poky/meta/classes/gtk-icon-cache.bbclass b/external/poky/meta/classes/gtk-icon-cache.bbclass index d87167ae..91cb4ad4 100644 --- a/external/poky/meta/classes/gtk-icon-cache.bbclass +++ b/external/poky/meta/classes/gtk-icon-cache.bbclass @@ -1,12 +1,12 @@ FILES_${PN} += "${datadir}/icons/hicolor" -DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk-icon-utils-native" +DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+3-native" -PACKAGE_WRITE_DEPS += "gtk-icon-utils-native gdk-pixbuf-native" +PACKAGE_WRITE_DEPS += "gtk+3-native gdk-pixbuf-native" gtk_icon_cache_postinst() { if [ "x$D" != "x" ]; then - $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \ + $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ mlprefix=${MLPREFIX} \ libdir_native=${libdir_native} else @@ -24,7 +24,7 @@ fi gtk_icon_cache_postrm() { if [ "x$D" != "x" ]; then - $INTERCEPT_DIR/postinst_intercept update_icon_cache ${PKG} \ + $INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \ mlprefix=${MLPREFIX} \ libdir=${libdir} else diff --git a/external/poky/meta/classes/gtk-immodules-cache.bbclass b/external/poky/meta/classes/gtk-immodules-cache.bbclass index 9bb0af8b..8e783fb4 100644 --- a/external/poky/meta/classes/gtk-immodules-cache.bbclass +++ b/external/poky/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/external/poky/meta/classes/icecc.bbclass b/external/poky/meta/classes/icecc.bbclass index 7d94525d..d095305e 100644 --- a/external/poky/meta/classes/icecc.bbclass +++ b/external/poky/meta/classes/icecc.bbclass @@ -34,6 +34,7 @@ BB_HASHBASE_WHITELIST += "ICECC_PARALLEL_MAKE ICECC_DISABLED ICECC_USER_PACKAGE_ ICECC_DEBUG ICECC_LOGFILE ICECC_REPEAT_RATE ICECC_PREFERRED_HOST \ ICECC_CLANG_REMOTE_CPP ICECC_IGNORE_UNVERIFIED ICECC_TEST_SOCKET \ ICECC_ENV_DEBUG ICECC_SYSTEM_PACKAGE_BL ICECC_SYSTEM_CLASS_BL \ + ICECC_REMOTE_CPP \ " ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env" @@ -56,6 +57,8 @@ ICECC_ENV_VERSION = "2" # See: https://github.com/icecc/icecream/issues/190 export ICECC_CARET_WORKAROUND ??= "0" +export ICECC_REMOTE_CPP ??= "0" + ICECC_CFLAGS = "" CFLAGS += "${ICECC_CFLAGS}" CXXFLAGS += "${ICECC_CFLAGS}" @@ -70,10 +73,16 @@ ICECC_ENV_DEBUG ??= "" # # libgcc-initial - fails with CPP sanity check error if host sysroot contains # cross gcc built for another target tune/variant +# pixman - prng_state: TLS reference mismatches non-TLS reference, possibly due to +# pragma omp threadprivate(prng_state) +# systemtap - _HelperSDT.c undefs macros and uses the identifiers in macros emitting +# inline assembly # target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL # prefix" error. ICECC_SYSTEM_PACKAGE_BL += "\ libgcc-initial \ + pixman \ + systemtap \ target-sdk-provides-dummy \ " @@ -96,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): @@ -129,7 +138,18 @@ def use_icecc(bb,d): if icecc_is_cross_canadian(bb, d): return "no" + if d.getVar('INHIBIT_DEFAULT_DEPS', False): + # We don't have a compiler, so no icecc + return "no" + pn = d.getVar('PN') + bpn = d.getVar('BPN') + + # Blacklist/whitelist checks are made against BPN, because there is a good + # chance that if icecc should be skipped for a recipe, it should be skipped + # for all the variants of that recipe. PN is still checked in case a user + # specified a more specific recipe. + check_pn = set([pn, bpn]) system_class_blacklist = (d.getVar('ICECC_SYSTEM_CLASS_BL') or "").split() user_class_blacklist = (d.getVar('ICECC_USER_CLASS_BL') or "none").split() @@ -145,11 +165,11 @@ def use_icecc(bb,d): user_package_whitelist = (d.getVar('ICECC_USER_PACKAGE_WL') or "").split() package_blacklist = system_package_blacklist + user_package_blacklist - if pn in package_blacklist: + if check_pn & set(package_blacklist): bb.debug(1, "%s: found in blacklist, disable icecc" % pn) return "no" - if pn in user_package_whitelist: + if check_pn & set(user_package_whitelist): bb.debug(1, "%s: found in whitelist, enable icecc" % pn) return "yes" @@ -233,7 +253,11 @@ def icecc_get_external_tool(bb, d, tool): def icecc_get_tool_link(tool, d): import subprocess - return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1] + try: + return subprocess.check_output("readlink -f %s" % tool, shell=True).decode("utf-8")[:-1] + except subprocess.CalledProcessError as e: + bb.note("icecc: one of the tools probably disappeared during recipe parsing, cmd readlink -f %s returned %d:\n%s" % (tool, e.returncode, e.output.decode("utf-8"))) + return tool def icecc_get_path_tool(tool, d): # This is a little ugly, but we want to make sure we add an actual @@ -302,6 +326,7 @@ def set_icecc_env(): # dummy python version of set_icecc_env return +set_icecc_env[vardepsexclude] += "KERNEL_CC" set_icecc_env() { if [ "${@use_icecc(bb, d)}" = "no" ] then @@ -331,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 @@ -360,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 @@ -379,7 +413,7 @@ set_icecc_env() { ${ICECC_ENV_EXEC} ${ICECC_ENV_DEBUG} "${ICECC_CC}" "${ICECC_CXX}" "${ICECC_AS}" "${ICECC_VERSION}" then touch "${ICECC_VERSION}.done" - elif ! wait_for_file "${ICECC_VERSION}.done" 30 + elif ! wait_for_file "${ICECC_VERSION}.done" 30 then # locking failed so wait for ${ICECC_VERSION}.done to appear bbwarn "Timeout waiting for ${ICECC_VERSION}.done" @@ -392,10 +426,10 @@ 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" + bbnote "Using icecc path: $ICE_PATH" + bbnote "Using icecc tarball: $ICECC_VERSION" } do_configure_prepend() { diff --git a/external/poky/meta/classes/image-buildinfo.bbclass b/external/poky/meta/classes/image-buildinfo.bbclass index 87a6a1a4..94c585d4 100644 --- a/external/poky/meta/classes/image-buildinfo.bbclass +++ b/external/poky/meta/classes/image-buildinfo.bbclass @@ -16,9 +16,8 @@ IMAGE_BUILDINFO_VARS ?= "DISTRO DISTRO_VERSION" IMAGE_BUILDINFO_FILE ??= "${sysconfdir}/build" # From buildhistory.bbclass -def image_buildinfo_outputvars(vars, listvars, d): +def image_buildinfo_outputvars(vars, d): vars = vars.split() - listvars = listvars.split() ret = "" for var in vars: value = d.getVar(var) or "" @@ -59,8 +58,7 @@ def buildinfo_target(d): return "" # Single and list variables to be read vars = (d.getVar("IMAGE_BUILDINFO_VARS") or "") - listvars = (d.getVar("IMAGE_BUILDINFO_LVARS") or "") - return image_buildinfo_outputvars(vars, listvars, d) + return image_buildinfo_outputvars(vars, d) # Write build information to target filesystem python buildinfo () { diff --git a/external/poky/meta/classes/image-live.bbclass b/external/poky/meta/classes/image-live.bbclass index af71be50..54058b35 100644 --- a/external/poky/meta/classes/image-live.bbclass +++ b/external/poky/meta/classes/image-live.bbclass @@ -37,7 +37,7 @@ do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ LABELS_LIVE ?= "boot install" ROOT_LIVE ?= "root=/dev/ram0" INITRD_IMAGE_LIVE ?= "${MLPREFIX}core-image-minimal-initramfs" -INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.cpio.gz" +INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.${INITRAMFS_FSTYPES}" LIVE_ROOTFS_TYPE ?= "ext4" ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${LIVE_ROOTFS_TYPE}" diff --git a/external/poky/meta/classes/image-prelink.bbclass b/external/poky/meta/classes/image-prelink.bbclass index 04dd57c9..ebf6e6d7 100644 --- a/external/poky/meta/classes/image-prelink.bbclass +++ b/external/poky/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/external/poky/meta/classes/image.bbclass b/external/poky/meta/classes/image.bbclass index 2ff574be..6620a9e9 100644 --- a/external/poky/meta/classes/image.bbclass +++ b/external/poky/meta/classes/image.bbclass @@ -24,7 +24,7 @@ POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_sysroot_relativelinks; " LICENSE ?= "MIT" PACKAGES = "" DEPENDS += "${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross depmodwrapper-cross cross-localedef-native" -RDEPENDS += "${PACKAGE_INSTALL} ${LINGUAS_INSTALL}" +RDEPENDS += "${PACKAGE_INSTALL} ${LINGUAS_INSTALL} ${IMAGE_INSTALL_DEBUGFS}" RRECOMMENDS += "${PACKAGE_INSTALL_ATTEMPTONLY}" PATH_prepend = "${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:" @@ -33,7 +33,7 @@ INHIBIT_DEFAULT_DEPS = "1" # IMAGE_FEATURES may contain any available package group IMAGE_FEATURES ?= "" IMAGE_FEATURES[type] = "list" -IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" +IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs stateless-rootfs empty-root-password allow-empty-password allow-root-login post-install-logging" # Generate companion debugfs? IMAGE_GEN_DEBUGFS ?= "0" @@ -124,7 +124,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', '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'] @@ -305,11 +305,8 @@ fakeroot python do_image_qa () { bb.build.exec_func(cmd, d) except oe.utils.ImageQAFailed as e: qamsg = qamsg + '\tImage QA function %s failed: %s\n' % (e.name, e.description) - except bb.build.FuncFailed as e: - qamsg = qamsg + '\tImage QA function %s failed' % e.name - if e.logfile: - qamsg = qamsg + ' (log file is located at %s)' % e.logfile - qamsg = qamsg + '\n' + except Exception as e: + qamsg = qamsg + '\tImage QA function %s failed\n' % cmd if qamsg: imgname = d.getVar('IMAGE_NAME') @@ -328,7 +325,8 @@ addtask do_image_qa_setscene def setup_debugfs_variables(d): d.appendVar('IMAGE_ROOTFS', '-dbg') - d.appendVar('IMAGE_LINK_NAME', '-dbg') + if d.getVar('IMAGE_LINK_NAME'): + d.appendVar('IMAGE_LINK_NAME', '-dbg') d.appendVar('IMAGE_NAME','-dbg') d.setVar('IMAGE_BUILDING_DEBUGFS', 'true') debugfs_image_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS') @@ -500,7 +498,7 @@ python () { d.prependVarFlag(task, 'postfuncs', 'create_symlinks ') d.appendVarFlag(task, 'subimages', ' ' + ' '.join(subimages)) d.appendVarFlag(task, 'vardeps', ' ' + ' '.join(vardeps)) - d.appendVarFlag(task, 'vardepsexclude', 'DATETIME DATE ' + ' '.join(vardepsexclude)) + d.appendVarFlag(task, 'vardepsexclude', ' DATETIME DATE ' + ' '.join(vardepsexclude)) bb.debug(2, "Adding task %s before %s, after %s" % (task, 'do_image_complete', after)) bb.build.addtask(task, 'do_image_complete', after, d) @@ -528,7 +526,7 @@ def get_rootfs_size(d): base_size = size_kb * overhead_factor bb.debug(1, '%f = %d * %f' % (base_size, size_kb, overhead_factor)) base_size2 = max(base_size, rootfs_req_size) + rootfs_extra_space - bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), overhead_factor)) + bb.debug(1, '%f = max(%f, %d)[%f] + %d' % (base_size2, base_size, rootfs_req_size, max(base_size, rootfs_req_size), rootfs_extra_space)) base_size = base_size2 if base_size != int(base_size): @@ -553,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") @@ -611,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 @@ -664,6 +663,13 @@ reproducible_final_image_task () { find ${IMAGE_ROOTFS} -exec touch -h --date=@$REPRODUCIBLE_TIMESTAMP_ROOTFS {} \; fi } -IMAGE_PREPROCESS_COMMAND_append = " reproducible_final_image_task; " + +systemd_preset_all () { + if [ -e ${IMAGE_ROOTFS}${root_prefix}/lib/systemd/systemd ]; then + systemctl --root="${IMAGE_ROOTFS}" --preset-mode=enable-only preset-all + fi +} + +IMAGE_PREPROCESS_COMMAND_append = " ${@ 'systemd_preset_all;' if bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d) and not bb.utils.contains('IMAGE_FEATURES', 'stateless-rootfs', True, False, d) else ''} reproducible_final_image_task; " CVE_PRODUCT = "" diff --git a/external/poky/meta/classes/image_types.bbclass b/external/poky/meta/classes/image_types.bbclass index c7d9b8d9..f82f1d88 100644 --- a/external/poky/meta/classes/image_types.bbclass +++ b/external/poky/meta/classes/image_types.bbclass @@ -54,12 +54,13 @@ def imagetypes_getdepends(d): # Sort the set so that ordering is consistant return " ".join(sorted(deps)) -XZ_COMPRESSION_LEVEL ?= "-3" +XZ_COMPRESSION_LEVEL ?= "-9" XZ_INTEGRITY_CHECK ?= "crc32" -XZ_THREADS ?= "-T 0" 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}" @@ -129,7 +130,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 @@ -270,7 +271,7 @@ 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 \ container \ @@ -283,14 +284,15 @@ 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 ${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 = "pigz -f -9 -n -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz" +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}" -CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_THREADS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz" +CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_DEFAULTS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz" 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" @@ -303,6 +305,7 @@ CONVERSION_CMD_u-boot = "mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C none -n CONVERSION_CMD_vmdk = "qemu-img convert -O vmdk ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vmdk" CONVERSION_CMD_vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi" CONVERSION_CMD_qcow2 = "qemu-img convert -O qcow2 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.qcow2" +CONVERSION_CMD_base64 = "base64 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.base64" CONVERSION_DEPENDS_lzma = "xz-native" CONVERSION_DEPENDS_gz = "pigz-native" CONVERSION_DEPENDS_bz2 = "pbzip2-native" @@ -310,12 +313,14 @@ 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-mkimage-native" -CONVERSION_DEPENDS_vmdk = "qemu-native" -CONVERSION_DEPENDS_vdi = "qemu-native" -CONVERSION_DEPENDS_qcow2 = "qemu-native" +CONVERSION_DEPENDS_u-boot = "u-boot-tools-native" +CONVERSION_DEPENDS_vmdk = "qemu-system-native" +CONVERSION_DEPENDS_vdi = "qemu-system-native" +CONVERSION_DEPENDS_qcow2 = "qemu-system-native" +CONVERSION_DEPENDS_base64 = "coreutils-native" RUNNABLE_IMAGE_TYPES ?= "ext2 ext3 ext4" RUNNABLE_MACHINE_PATTERNS ?= "qemu" @@ -323,7 +328,7 @@ RUNNABLE_MACHINE_PATTERNS ?= "qemu" DEPLOYABLE_IMAGE_TYPES ?= "hddimg iso" # The IMAGE_TYPES_MASKED variable will be used to mask out from the IMAGE_FSTYPES, -# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hdddirect, hddimg, iso, etc. +# images that will not be built at do_rootfs time: vmdk, vdi, qcow2, hddimg, iso, etc. IMAGE_TYPES_MASKED ?= "" # bmap requires python3 to be in the PATH diff --git a/external/poky/meta/classes/image_types_wic.bbclass b/external/poky/meta/classes/image_types_wic.bbclass index 5b40a9e9..b83308b4 100644 --- a/external/poky/meta/classes/image_types_wic.bbclass +++ b/external/poky/meta/classes/image_types_wic.bbclass @@ -3,7 +3,10 @@ WICVARS ?= "\ BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME 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" + ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS \ + KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE INITRAMFS_LINK_NAME APPEND" + +inherit ${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', 'kernel-artifact-names', '', d)} WKS_FILE ??= "${IMAGE_BASENAME}.${MACHINE}.wks" WKS_FILES ?= "${WKS_FILE} ${IMAGE_BASENAME}.wks" @@ -24,16 +27,17 @@ 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}" 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" # 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)}" @@ -43,8 +47,10 @@ 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 = "syslinux-native bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native" +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" WKS_FILE_DEPENDS_BOOTLOADERS = "" WKS_FILE_DEPENDS_BOOTLOADERS_x86 = "syslinux grub-efi systemd-boot" WKS_FILE_DEPENDS_BOOTLOADERS_x86-64 = "syslinux grub-efi systemd-boot" @@ -73,6 +79,11 @@ python do_write_wks_template () { wks_file = d.getVar('WKS_FULL_PATH') with open(wks_file, 'w') as f: f.write(template_body) + f.close() + # Copy the finalized wks file to the deploy directory for later use + depdir = d.getVar('IMGDEPLOYDIR') + basename = d.getVar('IMAGE_BASENAME') + bb.utils.copyfile(wks_file, "%s/%s" % (depdir, basename + '-' + os.path.basename(wks_file))) } python () { @@ -101,7 +112,7 @@ python () { # file in process_wks_template as well, so just put it in # a variable and let the metadata deal with the deps. d.setVar('_WKS_TEMPLATE', body) - bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d) + bb.build.addtask('do_write_wks_template', 'do_image_wic', 'do_image', d) bb.build.addtask('do_image_wic', 'do_image_complete', None, d) } @@ -123,6 +134,10 @@ python do_rootfs_wicenv () { value = d.getVar(var) if value: envf.write('%s="%s"\n' % (var, value.strip())) + envf.close() + # Copy .env file to deploy directory for later use with stand alone wic + depdir = d.getVar('IMGDEPLOYDIR') + bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env') } addtask do_rootfs_wicenv after do_image before do_image_wic do_rootfs_wicenv[vardeps] += "${WICVARS}" diff --git a/external/poky/meta/classes/insane.bbclass b/external/poky/meta/classes/insane.bbclass index 295feb8a..1d76ae7c 100644 --- a/external/poky/meta/classes/insane.bbclass +++ b/external/poky/meta/classes/insane.bbclass @@ -25,15 +25,17 @@ QA_SANE = "True" 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 \ + pn-overrides infodir build-deps src-uri-bad \ unknown-configure-option symlink-to-sysroot multilib \ - invalid-packageconfig host-user-contaminated uppercase-pn \ + invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \ + mime mime-xdg unlisted-pkg-lics \ " 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 \ + license-checksum dev-elf file-rdeps configure-unsafe \ + configure-gettext perllocalpod shebang-size \ " # Add usrmerge QA check based on distro feature ERROR_QA_append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}" @@ -81,6 +83,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): @@ -180,10 +205,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 @@ -258,13 +323,6 @@ def package_qa_check_dbg(path, name, d, elf, messages): package_qa_add_message(messages, "debug-files", "non debug package contains .debug directory: %s path %s" % \ (name, package_qa_clean_path(path,d))) -QAPATHTEST[perms] = "package_qa_check_perm" -def package_qa_check_perm(path,name,d, elf, messages): - """ - Check the permission of files - """ - return - QAPATHTEST[arch] = "package_qa_check_arch" def package_qa_check_arch(path,name,d, elf, messages): """ @@ -307,10 +365,10 @@ def package_qa_check_arch(path,name,d, elf, messages): 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))) - elif not ((bits == elf.abiSize()) or is_32): + 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))) - elif not littleendian == elf.isLittleEndian(): + 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))) @@ -346,9 +404,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): @@ -377,11 +437,10 @@ 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" 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) @@ -399,15 +458,12 @@ 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() if tmpdir in file_content: - package_qa_add_message(messages, "buildpaths", "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d)) + trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "") + package_qa_add_message(messages, "buildpaths", "File %s in package %s contains reference to TMPDIR" % (trimmed, name)) QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi" @@ -457,7 +513,6 @@ python populate_lic_qa_checksum() { """ Check for changes in the license files. """ - import tempfile sane = True lic_files = d.getVar('LIC_FILES_CHKSUM') or '' @@ -495,61 +550,45 @@ python populate_lic_qa_checksum() { if (not beginline) and (not endline): md5chksum = bb.utils.md5_file(srclicfile) - with open(srclicfile, 'rb') as f: - license = f.read() + with open(srclicfile, 'r', errors='replace') as f: + license = f.read().splitlines() else: - fi = open(srclicfile, 'rb') - fo = tempfile.NamedTemporaryFile(mode='wb', prefix='poky.', suffix='.tmp', delete=False) - tmplicfile = fo.name; - lineno = 0 - linesout = 0 - license = [] - for line in fi: - lineno += 1 - if (lineno >= beginline): - if ((lineno <= endline) or not endline): - fo.write(line) - license.append(line) - linesout += 1 - else: - break - fo.flush() - fo.close() - fi.close() - md5chksum = bb.utils.md5_file(tmplicfile) - license = b''.join(license) - os.unlink(tmplicfile) - + with open(srclicfile, 'rb') as f: + import hashlib + lineno = 0 + license = [] + m = hashlib.md5() + for line in f: + lineno += 1 + if (lineno >= beginline): + if ((lineno <= endline) or not endline): + m.update(line) + license.append(line.decode('utf-8', errors='replace').rstrip()) + else: + break + md5chksum = m.hexdigest() if recipemd5 == md5chksum: bb.note (pn + ": md5 checksum matched for ", url) else: if recipemd5: msg = pn + ": The LIC_FILES_CHKSUM does not match for " + url msg = msg + "\n" + pn + ": The new md5 checksum is " + md5chksum - try: - license_lines = license.decode('utf-8').split('\n') - except: - # License text might not be valid UTF-8, in which - # case we don't know how to include it in our output - # and have to skip it. - pass - else: - max_lines = int(d.getVar('QA_MAX_LICENSE_LINES') or 20) - if not license_lines or license_lines[-1] != '': - # Ensure that our license text ends with a line break - # (will be added with join() below). - license_lines.append('') - remove = len(license_lines) - max_lines - if remove > 0: - start = max_lines // 2 - end = start + remove - 1 - del license_lines[start:end] - license_lines.insert(start, '...') - msg = msg + "\n" + pn + ": Here is the selected license text:" + \ - "\n" + \ - "{:v^70}".format(" beginline=%d " % beginline if beginline else "") + \ - "\n" + "\n".join(license_lines) + \ - "{:^^70}".format(" endline=%d " % endline if endline else "") + max_lines = int(d.getVar('QA_MAX_LICENSE_LINES') or 20) + if not license or license[-1] != '': + # Ensure that our license text ends with a line break + # (will be added with join() below). + license.append('') + remove = len(license) - max_lines + if remove > 0: + start = max_lines // 2 + end = start + remove - 1 + del license[start:end] + license.insert(start, '...') + msg = msg + "\n" + pn + ": Here is the selected license text:" + \ + "\n" + \ + "{:v^70}".format(" beginline=%d " % beginline if beginline else "") + \ + "\n" + "\n".join(license) + \ + "{:^^70}".format(" endline=%d " % endline if endline else "") if beginline: if endline: srcfiledesc = "%s (lines %d through to %d)" % (srclicfile, beginline, endline) @@ -570,7 +609,7 @@ python populate_lic_qa_checksum() { bb.fatal("Fatal QA errors found, failing task.") } -def package_qa_check_staged(path,d): +def qa_check_staged(path,d): """ Check staged la and pc files for common problems like references to the work directory. @@ -589,20 +628,31 @@ def package_qa_check_staged(path,d): else: pkgconfigcheck = tmpdir + skip = (d.getVar('INSANE_SKIP') or "").split() + skip_la = False + if 'la' in skip: + bb.note("Recipe %s skipping qa checking: la" % d.getVar('PN')) + skip_la = True + + skip_pkgconfig = False + if 'pkgconfig' in skip: + bb.note("Recipe %s skipping qa checking: pkgconfig" % d.getVar('PN')) + skip_pkgconfig = True + # find all .la and .pc files # read the content # and check for stuff that looks wrong for root, dirs, files in os.walk(path): for file in files: path = os.path.join(root,file) - if file.endswith(".la"): + if file.endswith(".la") and not skip_la: with open(path) as f: file_content = f.read() file_content = file_content.replace(recipesysroot, "") if workdir in file_content: error_msg = "%s failed sanity test (workdir) in path %s" % (file,root) sane &= package_qa_handle_error("la", error_msg, d) - elif file.endswith(".pc"): + elif file.endswith(".pc") and not skip_pkgconfig: with open(path) as f: file_content = f.read() file_content = file_content.replace(recipesysroot, "") @@ -733,25 +783,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d): filerdepends[subkey] = key[13:] if filerdepends: - next = rdepends done = rdepends[:] - # Find all the rdepends on the dependency chain - while next: - new = [] - for rdep in next: - rdep_data = oe.packagedata.read_subpkgdata(rdep, d) - sub_rdeps = rdep_data.get("RDEPENDS_" + rdep) - if not sub_rdeps: - continue - for sub_rdep in bb.utils.explode_deps(sub_rdeps): - if sub_rdep in done: - continue - if oe.packagedata.has_subpkgdata(sub_rdep, d): - # It's a new rdep - done.append(sub_rdep) - new.append(sub_rdep) - next = new - # Add the rprovides of itself if pkg not in done: done.insert(0, pkg) @@ -824,6 +856,23 @@ def package_qa_check_usrmerge(pkg, d, messages): return False return True +QAPKGTEST[perllocalpod] = "package_qa_check_perllocalpod" +def package_qa_check_perllocalpod(pkg, d, messages): + """ + Check that the recipe didn't ship a perlocal.pod file, which shouldn't be + installed in a distribution package. cpan.bbclass sets NO_PERLLOCAL=1 to + handle this for most recipes. + """ + import glob + pkgd = oe.path.join(d.getVar('PKGDEST'), pkg) + podpath = oe.path.join(pkgd, d.getVar("libdir"), "perl*", "*", "*", "perllocal.pod") + + matches = glob.glob(podpath) + if matches: + matches = [package_qa_clean_path(path, d, pkg) for path in matches] + msg = "%s contains perllocal.pod (%s), should not be installed" % (pkg, " ".join(matches)) + package_qa_add_message(messages, "perllocalpod", msg) + QAPKGTEST[expanded-d] = "package_qa_check_expanded_d" def package_qa_check_expanded_d(package, d, messages): """ @@ -844,6 +893,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 @@ -885,18 +953,28 @@ def package_qa_check_host_user(path, name, d, elf, messages): if exc.errno != errno.ENOENT: raise else: - rootfs_path = path[len(dest):] check_uid = int(d.getVar('HOST_USER_UID')) if stat.st_uid == check_uid: - package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_uid)) + package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_uid)) return False check_gid = int(d.getVar('HOST_USER_GID')) if stat.st_gid == check_gid: - package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_gid)) + package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, package_qa_clean_path(path, d, name), check_gid)) return False return True +QARECIPETEST[src-uri-bad] = "package_qa_check_src_uri" +def package_qa_check_src_uri(pn, d, messages): + import re + + if "${PN}" in d.getVar("SRC_URI", False): + package_qa_handle_error("src-uri-bad", "%s: SRC_URI uses PN not BPN" % 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) + # The PACKAGE FUNC to scan each package python do_package_qa () { @@ -937,14 +1015,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: @@ -1017,6 +1101,13 @@ do_package_qa[vardepsexclude] = "BB_TASKDEPDATA" do_package_qa[rdeptask] = "do_packagedata" addtask do_package_qa after do_packagedata do_package before do_build +# Add the package specific INSANE_SKIPs to the sstate dependencies +python() { + pkgs = (d.getVar('PACKAGES') or '').split() + for pkg in pkgs: + d.appendVarFlag("do_package_qa", "vardeps", " INSANE_SKIP_{}".format(pkg)) +} + SSTATETASKS += "do_package_qa" do_package_qa[sstate-inputdirs] = "" do_package_qa[sstate-outputdirs] = "" @@ -1027,11 +1118,58 @@ addtask do_package_qa_setscene python do_qa_staging() { bb.note("QA checking staging") - - if not package_qa_check_staged(d.expand('${SYSROOT_DESTDIR}${libdir}'), d): + if not qa_check_staged(d.expand('${SYSROOT_DESTDIR}${libdir}'), d): bb.fatal("QA staging was broken by the package built above") } +python do_qa_patch() { + import subprocess + + ########################################################################### + # Check patch.log for fuzz warnings + # + # Further information on why we check for patch fuzz warnings: + # http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html + # https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450 + ########################################################################### + + logdir = d.getVar('T') + patchlog = os.path.join(logdir,"log.do_patch") + + if os.path.exists(patchlog): + fuzzheader = '--- Patch fuzz start ---' + fuzzfooter = '--- Patch fuzz end ---' + statement = "grep -e '%s' %s > /dev/null" % (fuzzheader, patchlog) + if subprocess.call(statement, shell=True) == 0: + msg = "Fuzz detected:\n\n" + fuzzmsg = "" + inFuzzInfo = False + f = open(patchlog, "r") + for line in f: + if fuzzheader in line: + inFuzzInfo = True + fuzzmsg = "" + elif fuzzfooter in line: + fuzzmsg = fuzzmsg.replace('\n\n', '\n') + msg += fuzzmsg + msg += "\n" + inFuzzInfo = False + elif inFuzzInfo and not 'Now at patch' in line: + fuzzmsg += line + f.close() + msg += "The context lines in the patches can be updated with devtool:\n" + msg += "\n" + msg += " devtool modify %s\n" % d.getVar('PN') + msg += " devtool finish --force-patch-refresh %s \n\n" % d.getVar('PN') + msg += "Don't forget to review changes done by devtool!\n" + if 'patch-fuzz' in d.getVar('ERROR_QA'): + bb.error(msg) + elif 'patch-fuzz' in d.getVar('WARN_QA'): + bb.warn(msg) + msg = "Patch log indicates that patches do not apply cleanly." + package_qa_handle_error("patch-fuzz", msg, d) +} + python do_qa_configure() { import subprocess @@ -1042,15 +1180,22 @@ python do_qa_configure() { configs = [] workdir = d.getVar('WORKDIR') - if bb.data.inherits_class('autotools', d): + skip = (d.getVar('INSANE_SKIP') or "").split() + skip_configure_unsafe = False + if 'configure-unsafe' in skip: + bb.note("Recipe %s skipping qa checking: configure-unsafe" % d.getVar('PN')) + skip_configure_unsafe = True + + if bb.data.inherits_class('autotools', d) and not skip_configure_unsafe: bb.note("Checking autotools environment for common misconfiguration") for root, dirs, files in os.walk(workdir): statement = "grep -q -F -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s" % \ os.path.join(root,"config.log") if "config.log" in files: if subprocess.call(statement, shell=True) == 0: - bb.fatal("""This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. -Rerun configure task after fixing this.""") + error_msg = """This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. +Rerun configure task after fixing this.""" + package_qa_handle_error("configure-unsafe", error_msg, d) if "configure.ac" in files: configs.append(os.path.join(root,"configure.ac")) @@ -1061,8 +1206,14 @@ Rerun configure task after fixing this.""") # Check gettext configuration and dependencies are correct ########################################################################### + skip_configure_gettext = False + if 'configure-gettext' in skip: + bb.note("Recipe %s skipping qa checking: configure-gettext" % d.getVar('PN')) + skip_configure_gettext = True + cnf = d.getVar('EXTRA_OECONF') or "" - if "gettext" not in d.getVar('P') and "gcc-runtime" not in d.getVar('P') and "--disable-nls" not in cnf: + if not ("gettext" in d.getVar('P') or "gcc-runtime" in d.getVar('P') or \ + "--disable-nls" in cnf or skip_configure_gettext): ml = d.getVar("MLPREFIX") or "" if bb.data.inherits_class('cross-canadian', d): gt = "nativesdk-gettext" @@ -1073,18 +1224,22 @@ Rerun configure task after fixing this.""") for config in configs: gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config if subprocess.call(gnu, shell=True) == 0: - bb.fatal("""%s required but not in DEPENDS for file %s. -Missing inherit gettext?""" % (gt, config)) + error_msg = "AM_GNU_GETTEXT used but no inherit gettext" + package_qa_handle_error("configure-gettext", error_msg, d) ########################################################################### # Check unrecognised configure options (with a white list) ########################################################################### - if bb.data.inherits_class("autotools", d): + if bb.data.inherits_class("autotools", d) or bb.data.inherits_class("meson", d): bb.note("Checking configure output for unrecognised options") try: - flag = "WARNING: unrecognized options:" - log = os.path.join(d.getVar('B'), 'config.log') - output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ') + if bb.data.inherits_class("autotools", d): + flag = "WARNING: unrecognized options:" + log = os.path.join(d.getVar('B'), 'config.log') + if bb.data.inherits_class("meson", d): + flag = "WARNING: Unknown options:" + log = os.path.join(d.getVar('T'), 'log.do_configure') + output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ').replace('"', '') options = set() for line in output.splitlines(): options |= set(line.partition(flag)[2].split()) @@ -1123,6 +1278,9 @@ python do_qa_unpack() { #addtask qa_staging after do_populate_sysroot before do_build do_populate_sysroot[postfuncs] += "do_qa_staging " +# Check for patch fuzz +do_patch[postfuncs] += "do_qa_patch " + # Check broken config.log files, for packages requiring Gettext which # don't have it in DEPENDS. #addtask qa_configure after do_configure before do_compile @@ -1164,6 +1322,11 @@ python () { if prog.search(pn): package_qa_handle_error("uppercase-pn", 'PN: %s is upper case, this can result in unexpected behavior.' % pn, d) + # Some people mistakenly use DEPENDS_${PN} instead of DEPENDS and wonder + # why it doesn't work. + if (d.getVar(d.expand('DEPENDS_${PN}'))): + package_qa_handle_error("pkgvarcheck", "recipe uses DEPENDS_${PN}, should use DEPENDS", d) + issues = [] if (d.getVar('PACKAGES') or "").split(): for dep in (d.getVar('QADEPENDS') or "").split(): diff --git a/external/poky/meta/classes/kernel-devicetree.bbclass b/external/poky/meta/classes/kernel-devicetree.bbclass index 867b776a..81dda800 100644 --- a/external/poky/meta/classes/kernel-devicetree.bbclass +++ b/external/poky/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/external/poky/meta/classes/kernel-fitimage.bbclass b/external/poky/meta/classes/kernel-fitimage.bbclass index 4c4fd99f..72b05ff8 100644 --- a/external/poky/meta/classes/kernel-fitimage.bbclass +++ b/external/poky/meta/classes/kernel-fitimage.bbclass @@ -4,12 +4,14 @@ python __anonymous () { kerneltypes = d.getVar('KERNEL_IMAGETYPES') or "" if 'fitImage' in kerneltypes.split(): depends = d.getVar("DEPENDS") - depends = "%s u-boot-mkimage-native dtc-native" % depends + depends = "%s u-boot-tools-native dtc-native" % depends d.setVar("DEPENDS", depends) uarch = d.getVar("UBOOT_ARCH") if uarch == "arm64": replacementtype = "Image" + elif uarch == "riscv": + replacementtype = "Image" elif uarch == "mips": replacementtype = "vmlinuz.bin" elif uarch == "x86": @@ -19,9 +21,9 @@ python __anonymous () { else: replacementtype = "zImage" - # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal - # to kernel.bbclass . We have to override it, since we pack zImage - # (at least for now) into the fitImage . + # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal + # to kernel.bbclass . We have to override it, since we pack zImage + # (at least for now) into the fitImage . typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE") or "" if 'fitImage' in typeformake.split(): d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', replacementtype)) @@ -30,17 +32,30 @@ python __anonymous () { if image: d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') + #check if there are any dtb providers + providerdtb = d.getVar("PREFERRED_PROVIDER_virtual/dtb") + if providerdtb: + d.appendVarFlag('do_assemble_fitimage', 'depends', ' virtual/dtb:do_populate_sysroot') + d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' virtual/dtb:do_populate_sysroot') + d.setVar('EXTERNAL_KERNEL_DEVICETREE', "${RECIPE_SYSROOT}/boot/devicetree") + # Verified boot will sign the fitImage and append the public key to # U-Boot dtb. We ensure the U-Boot dtb is deployed before assembling # the fitImage: - if d.getVar('UBOOT_SIGN_ENABLE') == "1": + if d.getVar('UBOOT_SIGN_ENABLE') == "1" and d.getVar('UBOOT_DTB_BINARY'): uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot' - d.appendVarFlag('do_assemble_fitimage', 'depends', ' %s:do_deploy' % uboot_pn) + d.appendVarFlag('do_assemble_fitimage', 'depends', ' %s:do_populate_sysroot' % uboot_pn) } # Options for the device tree compiler passed to mkimage '-D' feature: UBOOT_MKIMAGE_DTCOPTS ??= "" +# fitImage Hash Algo +FIT_HASH_ALG ?= "sha256" + +# fitImage Signature Algo +FIT_SIGN_ALG ?= "rsa2048" + # # Emit the fitImage ITS header # @@ -100,7 +115,7 @@ EOF # $4 ... Compression type fitimage_emit_section_kernel() { - kernel_csum="sha1" + kernel_csum="${FIT_HASH_ALG}" ENTRYPOINT="${UBOOT_ENTRYPOINT}" if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then @@ -133,7 +148,7 @@ EOF # $3 ... Path to DTB image fitimage_emit_section_dtb() { - dtb_csum="sha1" + dtb_csum="${FIT_HASH_ALG}" dtb_loadline="" dtb_ext=${DTB##*.} @@ -167,7 +182,7 @@ EOF # $3 ... Path to setup image fitimage_emit_section_setup() { - setup_csum="sha1" + setup_csum="${FIT_HASH_ALG}" cat << EOF >> ${1} setup@${2} { @@ -194,8 +209,7 @@ EOF # $3 ... Path to ramdisk image fitimage_emit_section_ramdisk() { - ramdisk_csum="sha1" - ramdisk_ctype="none" + ramdisk_csum="${FIT_HASH_ALG}" ramdisk_loadline="" ramdisk_entryline="" @@ -206,24 +220,6 @@ fitimage_emit_section_ramdisk() { ramdisk_entryline="entry = <${UBOOT_RD_ENTRYPOINT}>;" fi - case $3 in - *.gz) - ramdisk_ctype="gzip" - ;; - *.bz2) - ramdisk_ctype="bzip2" - ;; - *.lzma) - ramdisk_ctype="lzma" - ;; - *.lzo) - ramdisk_ctype="lzo" - ;; - *.lz4) - ramdisk_ctype="lz4" - ;; - esac - cat << EOF >> ${1} ramdisk@${2} { description = "${INITRAMFS_IMAGE}"; @@ -231,7 +227,7 @@ fitimage_emit_section_ramdisk() { type = "ramdisk"; arch = "${UBOOT_ARCH}"; os = "linux"; - compression = "${ramdisk_ctype}"; + compression = "none"; ${ramdisk_loadline} ${ramdisk_entryline} hash@1 { @@ -252,7 +248,8 @@ EOF # $6 ... default flag fitimage_emit_section_config() { - conf_csum="sha1" + conf_csum="${FIT_HASH_ALG}" + conf_sign_algo="${FIT_SIGN_ALG}" if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then conf_sign_keyname="${UBOOT_SIGN_KEYNAME}" fi @@ -334,7 +331,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} }; @@ -373,7 +370,8 @@ fitimage_assemble() { # # Step 2: Prepare a DTB image section # - if [ -n "${KERNEL_DEVICETREE}" ]; then + + if [ -z "${EXTERNAL_KERNEL_DEVICETREE}" ] && [ -n "${KERNEL_DEVICETREE}" ]; then dtbcount=1 for DTB in ${KERNEL_DEVICETREE}; do if echo ${DTB} | grep -q '/dts/'; then @@ -391,6 +389,15 @@ fitimage_assemble() { done fi + if [ -n "${EXTERNAL_KERNEL_DEVICETREE}" ]; then + dtbcount=1 + 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} "${EXTERNAL_KERNEL_DEVICETREE}/${DTB}" + done + fi + # # Step 3: Prepare a setup section. (For x86) # @@ -456,10 +463,17 @@ fitimage_assemble() { # Step 7: Sign the image and add public key to U-Boot dtb # if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then + add_key_to_u_boot="" + if [ -n "${UBOOT_DTB_BINARY}" ]; then + # The u-boot.dtb is a symlink to UBOOT_DTB_IMAGE, so we need copy + # both of them, and don't dereference the symlink. + cp -P ${STAGING_DATADIR}/u-boot*.dtb ${B} + add_key_to_u_boot="-K ${B}/${UBOOT_DTB_BINARY}" + fi uboot-mkimage \ ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \ -F -k "${UBOOT_SIGN_KEYDIR}" \ - ${@'-K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}"' if len('${UBOOT_DTB_BINARY}') else ''} \ + $add_key_to_u_boot \ -r arch/${ARCH}/boot/${2} fi } @@ -481,7 +495,7 @@ do_assemble_fitimage_initramfs() { fi } -addtask assemble_fitimage_initramfs before do_deploy after do_install +addtask assemble_fitimage_initramfs before do_deploy after do_bundle_initramfs kernel_do_deploy[vardepsexclude] = "DATETIME" @@ -489,21 +503,27 @@ 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/" fi fi } diff --git a/external/poky/meta/classes/kernel-module-split.bbclass b/external/poky/meta/classes/kernel-module-split.bbclass index 67ab4161..221022b7 100644 --- a/external/poky/meta/classes/kernel-module-split.bbclass +++ b/external/poky/meta/classes/kernel-module-split.bbclass @@ -44,15 +44,32 @@ python split_kernel_module_packages () { def extract_modinfo(file): import tempfile, subprocess tempfile.tempdir = d.getVar("WORKDIR") + compressed = re.match( r'.*\.([xg])z$', file) tf = tempfile.mkstemp() tmpfile = tf[1] - cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile) + if compressed: + tmpkofile = tmpfile + ".ko" + if compressed.group(1) == 'g': + cmd = "gunzip -dc %s > %s" % (file, tmpkofile) + subprocess.check_call(cmd, shell=True) + elif compressed.group(1) == 'x': + cmd = "xz -dc %s > %s" % (file, tmpkofile) + subprocess.check_call(cmd, shell=True) + else: + msg = "Cannot decompress '%s'" % file + raise msg + cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", tmpkofile, tmpfile) + else: + cmd = "%sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("HOST_PREFIX") or "", file, tmpfile) subprocess.check_call(cmd, shell=True) - f = open(tmpfile) + # errors='replace': Some old kernel versions contain invalid utf-8 characters in mod descriptions (like 0xf6, 'ö') + f = open(tmpfile, errors='replace') l = f.read().split("\000") f.close() os.close(tf[0]) os.unlink(tmpfile) + if compressed: + os.unlink(tmpkofile) vals = {} for i in l: m = modinfoexp.match(i) @@ -132,7 +149,7 @@ python split_kernel_module_packages () { kernel_package_name = d.getVar("KERNEL_PACKAGE_NAME") or "kernel" kernel_version = d.getVar("KERNEL_VERSION") - module_regex = '^(.*)\.k?o$' + module_regex = r'^(.*)\.k?o(?:\.[xg]z)?$' module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX') module_pattern_suffix = d.getVar('KERNEL_MODULE_PACKAGE_SUFFIX') diff --git a/external/poky/meta/classes/kernel-uboot.bbclass b/external/poky/meta/classes/kernel-uboot.bbclass index 2364053f..87f02654 100644 --- a/external/poky/meta/classes/kernel-uboot.bbclass +++ b/external/poky/meta/classes/kernel-uboot.bbclass @@ -3,10 +3,6 @@ uboot_prep_kimage() { vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux" linux_suffix="" linux_comp="none" - elif [ -e arch/${ARCH}/boot/Image ] ; then - vmlinux_path="vmlinux" - linux_suffix="" - linux_comp="none" elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then rm -f linux.bin cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin diff --git a/external/poky/meta/classes/kernel-uimage.bbclass b/external/poky/meta/classes/kernel-uimage.bbclass index c2de6bb4..cedb4fa0 100644 --- a/external/poky/meta/classes/kernel-uimage.bbclass +++ b/external/poky/meta/classes/kernel-uimage.bbclass @@ -3,7 +3,7 @@ inherit kernel-uboot python __anonymous () { if "uImage" in d.getVar('KERNEL_IMAGETYPES'): depends = d.getVar("DEPENDS") - depends = "%s u-boot-mkimage-native" % depends + depends = "%s u-boot-tools-native" % depends d.setVar("DEPENDS", depends) # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal diff --git a/external/poky/meta/classes/kernel-yocto.bbclass b/external/poky/meta/classes/kernel-yocto.bbclass index 496c8a7f..3311f6e8 100644 --- a/external/poky/meta/classes/kernel-yocto.bbclass +++ b/external/poky/meta/classes/kernel-yocto.bbclass @@ -1,16 +1,41 @@ # 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" + # returns local (absolute) path names for all valid patches in the # src_uri -def find_patches(d): +def find_patches(d,subdir): patches = src_patches(d) patch_list=[] for p in patches: - _, _, local, _, _, _ = bb.fetch.decodeurl(p) - patch_list.append(local) + _, _, local, _, _, parm = bb.fetch.decodeurl(p) + # if patchdir has been passed, we won't be able to apply it so skip + # the patch for now, and special processing happens later + patchdir = '' + if "patchdir" in parm: + patchdir = parm["patchdir"] + if subdir: + if subdir == patchdir: + patch_list.append(local) + else: + patch_list.append(local) return patch_list @@ -22,7 +47,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 @@ -74,13 +99,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 @@ -113,24 +131,47 @@ do_kernel_metadata() { 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" 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 + sccs_from_src_uri="${@" ".join(find_sccs(d))}" - patches="${@" ".join(find_patches(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 @@ -138,10 +179,10 @@ do_kernel_metadata() { for f in ${feat_dirs}; do if [ -d "${WORKDIR}/$f/meta" ]; then includes="$includes -I${WORKDIR}/$f/kernel-meta" - elif [ -d "${WORKDIR}/$f" ]; then - includes="$includes -I${WORKDIR}/$f" elif [ -d "${WORKDIR}/../oe-local-files/$f" ]; then includes="$includes -I${WORKDIR}/../oe-local-files/$f" + elif [ -d "${WORKDIR}/$f" ]; then + includes="$includes -I${WORKDIR}/$f" fi done for s in ${sccs} ${patches}; do @@ -157,23 +198,37 @@ 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}`" + elements="`echo -n ${bsp_definition} $sccs_defconfig ${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} + scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} if [ $? -ne 0 ]; then bbfatal_log "Could not generate configuration queue for ${KMACHINE}." fi fi + # 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 + # 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 @@ -272,7 +327,7 @@ 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_validate_branches[depends] = "kern-tools-native:do_populate_sysroot" @@ -280,10 +335,9 @@ 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 - # translate the kconfig_mode into something that merge_config.sh # understands case ${KCONFIG_MODE} in @@ -309,13 +363,20 @@ 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 @@ -334,6 +395,7 @@ python do_kernel_configcheck() { env = os.environ.copy() env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/") + env['LD'] = "${KERNEL_LD}" try: configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8') @@ -437,4 +499,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/external/poky/meta/classes/kernel.bbclass b/external/poky/meta/classes/kernel.bbclass index c72d1fe7..9e3c34ad 100644 --- a/external/poky/meta/classes/kernel.bbclass +++ b/external/poky/meta/classes/kernel.bbclass @@ -5,9 +5,11 @@ KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") 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 += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}" PACKAGE_WRITE_DEPS += "depmodwrapper-cross" do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot" +do_clean[depends] += "make-mod-scripts:do_clean" CVE_PRODUCT ?= "linux_kernel" @@ -95,6 +97,9 @@ python __anonymous () { d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') image = d.getVar('INITRAMFS_IMAGE') + # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0, + # the do_bundle_initramfs does nothing, but the INITRAMFS_IMAGE is built + # standalone for use by wic and other tools. if image: d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') @@ -130,7 +135,7 @@ inherit ${KERNEL_CLASSES} # the symlink. do_unpack[cleandirs] += " ${S} ${STAGING_KERNEL_DIR} ${B} ${STAGING_KERNEL_BUILDDIR}" do_clean[cleandirs] += " ${S} ${STAGING_KERNEL_DIR} ${B} ${STAGING_KERNEL_BUILDDIR}" -base_do_unpack_append () { +python do_symlink_kernsrc () { s = d.getVar("S") if s[-1] == '/': # drop trailing slash, so that os.symlink(kernsrc, s) doesn't use s as directory name and fail @@ -147,6 +152,7 @@ base_do_unpack_append () { shutil.move(s, kernsrc) os.symlink(kernsrc, s) } +addtask symlink_kernsrc before do_configure after do_unpack inherit kernel-arch deploy @@ -205,7 +211,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) @@ -289,14 +295,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` @@ -330,6 +332,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} @@ -447,7 +464,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 @@ -487,6 +504,15 @@ do_shared_workdir () { mkdir -p $kerneldir/arch/${ARCH}/include/generated/ cp -fR arch/${ARCH}/include/generated/* $kerneldir/arch/${ARCH}/include/generated/ fi + + if (grep -q -i -e '^CONFIG_UNWINDER_ORC=y$' $kerneldir/.config); then + # With CONFIG_UNWINDER_ORC (the default in 4.14), objtool is required for + # out-of-tree modules to be able to generate object files. + if [ -x tools/objtool/objtool ]; then + mkdir -p ${kerneldir}/tools/objtool + cp tools/objtool/objtool ${kerneldir}/tools/objtool/ + fi + fi } # We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware @@ -494,7 +520,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') @@ -547,7 +573,7 @@ EXPORT_FUNCTIONS do_compile do_install do_configure # kernel-image becomes kernel-image-${KERNEL_VERSION} PACKAGES = "${KERNEL_PACKAGE_NAME} ${KERNEL_PACKAGE_NAME}-base ${KERNEL_PACKAGE_NAME}-vmlinux ${KERNEL_PACKAGE_NAME}-image ${KERNEL_PACKAGE_NAME}-dev ${KERNEL_PACKAGE_NAME}-modules" FILES_${PN} = "" -FILES_${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin" +FILES_${KERNEL_PACKAGE_NAME}-base = "${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.order ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/modules.builtin.modinfo" FILES_${KERNEL_PACKAGE_NAME}-image = "" FILES_${KERNEL_PACKAGE_NAME}-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} ${nonarch_base_libdir}/modules/${KERNEL_VERSION}/build" FILES_${KERNEL_PACKAGE_NAME}-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}" @@ -556,9 +582,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" @@ -580,7 +606,7 @@ pkg_postinst_${KERNEL_PACKAGE_NAME}-base () { PACKAGESPLITFUNCS_prepend = "split_kernel_packages " python split_kernel_packages () { - do_split_packages(d, root='${nonarch_base_libdir}/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='${KERNEL_PACKAGE_NAME}-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') + do_split_packages(d, root='${nonarch_base_libdir}/firmware', file_regex=r'^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='${KERNEL_PACKAGE_NAME}-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='') } # Many scripts want to look in arch/$arch/boot for the bootable @@ -599,6 +625,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 diff --git a/external/poky/meta/classes/kernelsrc.bbclass b/external/poky/meta/classes/kernelsrc.bbclass index 675d40ec..a951ba33 100644 --- a/external/poky/meta/classes/kernelsrc.bbclass +++ b/external/poky/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/external/poky/meta/classes/libc-common.bbclass b/external/poky/meta/classes/libc-common.bbclass deleted file mode 100644 index 0e351b67..00000000 --- a/external/poky/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/external/poky/meta/classes/libc-package.bbclass b/external/poky/meta/classes/libc-package.bbclass index 345ec298..de3b4250 100644 --- a/external/poky/meta/classes/libc-package.bbclass +++ b/external/poky/meta/classes/libc-package.bbclass @@ -37,16 +37,11 @@ python __anonymous () { d.setVar("DEPENDS", depends) d.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile") break - - # try to fix disable charsets/locales/locale-code compile fail - if bb.utils.contains('DISTRO_FEATURES', 'libc-charsets', True, False, d) and \ - bb.utils.contains('DISTRO_FEATURES', 'libc-locales', True, False, d) and \ - bb.utils.contains('DISTRO_FEATURES', 'libc-locale-code', True, False, d): - d.setVar('PACKAGE_NO_GCONV', '0') - else: - d.setVar('PACKAGE_NO_GCONV', '1') } +# try to fix disable charsets/locales/locale-code compile fail +PACKAGE_NO_GCONV ?= "0" + OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}" locale_base_postinst_ontarget() { @@ -69,9 +64,14 @@ do_prep_locale_tree() { for i in $treedir/${datadir}/i18n/charmaps/*gz; do gunzip $i done - tar -cf - -C ${LOCALETREESRC}${base_libdir} -p . | tar -xf - -C $treedir/${base_libdir} - if [ -f ${STAGING_DIR_NATIVE}${prefix_native}/lib/libgcc_s.* ]; then - tar -cf - -C ${STAGING_DIR_NATIVE}/${prefix_native}/${base_libdir} -p libgcc_s.* | tar -xf - -C $treedir/${base_libdir} + # The extract pattern "./l*.so*" is carefully selected so that it will + # match ld*.so and lib*.so*, but not any files in the gconv directory + # (if it exists). This makes sure we only unpack the files we need. + # This is important in case usrmerge is set in DISTRO_FEATURES, which + # means ${base_libdir} == ${libdir}. + tar -cf - -C ${LOCALETREESRC}${base_libdir} -p . | tar -xf - -C $treedir/${base_libdir} --wildcards './l*.so*' + if [ -f ${STAGING_LIBDIR_NATIVE}/libgcc_s.* ]; then + tar -cf - -C ${STAGING_LIBDIR_NATIVE} -p libgcc_s.* | tar -xf - -C $treedir/${base_libdir} fi install -m 0755 ${LOCALETREESRC}${bindir}/localedef $treedir/${base_bindir} } @@ -82,6 +82,9 @@ do_collect_bins_from_locale_tree() { parent=$(dirname ${localedir}) mkdir -p ${PKGD}/$parent tar -cf - -C $treedir/$parent -p $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent + + # Finalize tree by chaning all duplicate files into hard links + cross-localedef-hardlink -c -v ${WORKDIR}/locale-tree } inherit qemu @@ -115,8 +118,8 @@ python package_do_split_gconvs () { def calc_gconv_deps(fn, pkg, file_regex, output_pattern, group): deps = [] f = open(fn, "rb") - c_re = re.compile('^copy "(.*)"') - i_re = re.compile('^include "(\w+)".*') + c_re = re.compile(r'^copy "(.*)"') + i_re = re.compile(r'^include "(\w+)".*') for l in f.readlines(): l = l.decode("latin-1") m = c_re.match(l) or i_re.match(l) @@ -130,15 +133,15 @@ python package_do_split_gconvs () { if bpn != 'glibc': d.setVar('RPROVIDES_%s' % pkg, pkg.replace(bpn, 'glibc')) - do_split_packages(d, gconv_libdir, file_regex='^(.*)\.so$', output_pattern=bpn+'-gconv-%s', \ + do_split_packages(d, gconv_libdir, file_regex=r'^(.*)\.so$', output_pattern=bpn+'-gconv-%s', \ description='gconv module for character set %s', hook=calc_gconv_deps, \ extra_depends=bpn+'-gconv') def calc_charmap_deps(fn, pkg, file_regex, output_pattern, group): deps = [] f = open(fn, "rb") - c_re = re.compile('^copy "(.*)"') - i_re = re.compile('^include "(\w+)".*') + c_re = re.compile(r'^copy "(.*)"') + i_re = re.compile(r'^include "(\w+)".*') for l in f.readlines(): l = l.decode("latin-1") m = c_re.match(l) or i_re.match(l) @@ -152,14 +155,14 @@ python package_do_split_gconvs () { if bpn != 'glibc': d.setVar('RPROVIDES_%s' % pkg, pkg.replace(bpn, 'glibc')) - do_split_packages(d, charmap_dir, file_regex='^(.*)\.gz$', output_pattern=bpn+'-charmap-%s', \ + do_split_packages(d, charmap_dir, file_regex=r'^(.*)\.gz$', output_pattern=bpn+'-charmap-%s', \ description='character map for %s encoding', hook=calc_charmap_deps, extra_depends='') def calc_locale_deps(fn, pkg, file_regex, output_pattern, group): deps = [] f = open(fn, "rb") - c_re = re.compile('^copy "(.*)"') - i_re = re.compile('^include "(\w+)".*') + c_re = re.compile(r'^copy "(.*)"') + i_re = re.compile(r'^include "(\w+)".*') for l in f.readlines(): l = l.decode("latin-1") m = c_re.match(l) or i_re.match(l) @@ -173,13 +176,13 @@ python package_do_split_gconvs () { if bpn != 'glibc': d.setVar('RPROVIDES_%s' % pkg, pkg.replace(bpn, 'glibc')) - do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern=bpn+'-localedata-%s', \ + do_split_packages(d, locales_dir, file_regex=r'(.*)', output_pattern=bpn+'-localedata-%s', \ description='locale definition for %s', hook=calc_locale_deps, extra_depends='') d.setVar('PACKAGES', d.getVar('PACKAGES', False) + ' ' + d.getVar('MLPREFIX', False) + bpn + '-gconv') use_bin = d.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE") - dot_re = re.compile("(.*)\.(.*)") + dot_re = re.compile(r"(.*)\.(.*)") # Read in supported locales and associated encodings supported = {} @@ -236,6 +239,8 @@ python package_do_split_gconvs () { if use_cross_localedef == "1": target_arch = d.getVar('TARGET_ARCH') 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 ", \ @@ -243,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 ", \ @@ -263,7 +269,7 @@ python package_do_split_gconvs () { bb.error("locale_arch_options not found for target_arch=" + target_arch) bb.fatal("unknown arch:" + target_arch + " for locale_arch_options") - localedef_opts += " --force --no-archive --prefix=%s \ + localedef_opts += " --force --no-hard-links --no-archive --prefix=%s \ --inputfile=%s/%s/i18n/locales/%s --charmap=%s %s/%s" \ % (treedir, treedir, datadir, locale, encoding, outputpath, name) @@ -271,14 +277,14 @@ python package_do_split_gconvs () { (path, i18npath, gconvpath, localedef_opts) else: # earlier slower qemu way qemu = qemu_target_binary(d) - localedef_opts = "--force --no-archive --prefix=%s \ + localedef_opts = "--force --no-hard-links --no-archive --prefix=%s \ --inputfile=%s/i18n/locales/%s --charmap=%s %s" \ % (treedir, datadir, locale, encoding, name) qemu_options = d.getVar('QEMU_OPTIONS') cmd = "PSEUDO_RELOADED=YES PATH=\"%s\" I18NPATH=\"%s\" %s -L %s \ - -E LD_LIBRARY_PATH=%s %s %s/bin/localedef %s" % \ + -E LD_LIBRARY_PATH=%s %s %s${base_bindir}/localedef %s" % \ (path, i18npath, qemu, treedir, ldlibdir, qemu_options, treedir, localedef_opts) commands["%s/%s" % (outputpath, name)] = cmd @@ -290,7 +296,7 @@ python package_do_split_gconvs () { d.setVar('ALLOW_EMPTY_%s' % pkgname, '1') d.setVar('PACKAGES', '%s %s' % (pkgname, d.getVar('PACKAGES'))) rprovides = ' %svirtual-locale-%s' % (mlprefix, legitimize_package_name(name)) - m = re.match("(.*)_(.*)", name) + m = re.match(r"(.*)_(.*)", name) if m: rprovides += ' %svirtual-locale-%s' % (mlprefix, m.group(1)) d.setVar('RPROVIDES_%s' % pkgname, rprovides) @@ -341,13 +347,15 @@ 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())) - for cmd in commands: - m.write(cmd + ":\n") - 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") bb.build.exec_func("oe_runmake", d) bb.note("collecting binary locales from locale tree") @@ -356,12 +364,12 @@ python package_do_split_gconvs () { if use_bin in ('compile', 'precompiled'): lcsplit = d.getVar('GLIBC_SPLIT_LC_PACKAGES') if lcsplit and int(lcsplit): - do_split_packages(d, binary_locales_dir, file_regex='^(.*/LC_\w+)', \ + do_split_packages(d, binary_locales_dir, file_regex=r'^(.*/LC_\w+)', \ output_pattern=bpn+'-binary-localedata-%s', \ description='binary locale definition for %s', recursive=True, hook=metapkg_hook, extra_depends='', allow_dirs=True, match_path=True) else: - do_split_packages(d, binary_locales_dir, file_regex='(.*)', \ + do_split_packages(d, binary_locales_dir, file_regex=r'(.*)', \ output_pattern=bpn+'-binary-localedata-%s', \ description='binary locale definition for %s', extra_depends='', allow_dirs=True) else: diff --git a/external/poky/meta/classes/license.bbclass b/external/poky/meta/classes/license.bbclass index aec6999d..f90176d6 100644 --- a/external/poky/meta/classes/license.bbclass +++ b/external/poky/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,19 +262,38 @@ 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 = [] + licenses = wildcard_licenses[:] spdxmapkeys = d.getVarFlags('SPDXLICENSEMAP').keys() for wld_lic in 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,26 +337,15 @@ 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): """ This function checks if a recipe has any LICENSE_FLAGS that aren't whitelisted. - If it does, it returns the first LICENSE_FLAGS item missing from the - whitelist, or all of the LICENSE_FLAGS if there is no whitelist. + If it does, it returns the all LICENSE_FLAGS missing from the whitelist, or + all of the LICENSE_FLAGS if there is no whitelist. If everything is is properly whitelisted, it returns None. """ @@ -354,22 +382,23 @@ def check_license_flags(d): return False def all_license_flags_match(license_flags, whitelist): - """ Return first unmatched flag, None if all flags match """ + """ Return all unmatched flags, None if all flags match """ pn = d.getVar('PN') split_whitelist = whitelist.split() + flags = [] for flag in license_flags.split(): if not license_flag_matches(flag, split_whitelist, pn): - return flag - return None + flags.append(flag) + return flags if flags else None license_flags = d.getVar('LICENSE_FLAGS') if license_flags: whitelist = d.getVar('LICENSE_FLAGS_WHITELIST') if not whitelist: - return license_flags - unmatched_flag = all_license_flags_match(license_flags, whitelist) - if unmatched_flag: - return unmatched_flag + return license_flags.split() + unmatched_flags = all_license_flags_match(license_flags, whitelist) + if unmatched_flags: + return unmatched_flags return None def check_license_format(d): diff --git a/external/poky/meta/classes/license_image.bbclass b/external/poky/meta/classes/license_image.bbclass index b65ff56f..a8c72da3 100644 --- a/external/poky/meta/classes/license_image.bbclass +++ b/external/poky/meta/classes/license_image.bbclass @@ -32,20 +32,28 @@ python license_create_manifest() { rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'), d.getVar('IMAGE_NAME'), 'license.manifest') - write_license_files(d, rootfs_license_manifest, pkg_dic) + write_license_files(d, rootfs_license_manifest, pkg_dic, rootfs=True) } -def write_license_files(d, license_manifest, pkg_dic): +def write_license_files(d, license_manifest, pkg_dic, rootfs=True): import re + import stat bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split() - bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses) + 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) @@ -55,6 +63,8 @@ def write_license_files(d, license_manifest, pkg_dic): 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 @@ -94,14 +104,14 @@ def write_license_files(d, license_manifest, pkg_dic): # With both options set we see a .5 M increase in core-image-minimal copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST') copy_lic_dirs = d.getVar('COPY_LIC_DIRS') - if copy_lic_manifest == "1": + if rootfs and copy_lic_manifest == "1": rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'), 'usr', 'share', 'common-licenses') bb.utils.mkdirhier(rootfs_license_dir) rootfs_license_manifest = os.path.join(rootfs_license_dir, os.path.split(license_manifest)[1]) if not os.path.exists(rootfs_license_manifest): - os.link(license_manifest, rootfs_license_manifest) + oe.path.copyhardlink(license_manifest, rootfs_license_manifest) if copy_lic_dirs == "1": for pkg in sorted(pkg_dic): @@ -135,7 +145,7 @@ def write_license_files(d, license_manifest, pkg_dic): continue if not os.path.exists(rootfs_license): - os.link(pkg_license, rootfs_license) + oe.path.copyhardlink(pkg_license, rootfs_license) if not os.path.exists(pkg_rootfs_license): os.symlink(os.path.join('..', lic), pkg_rootfs_license) @@ -145,7 +155,19 @@ def write_license_files(d, license_manifest, pkg_dic): os.path.exists(pkg_rootfs_license)): continue - os.link(pkg_license, pkg_rootfs_license) + oe.path.copyhardlink(pkg_license, pkg_rootfs_license) + # Fixup file ownership and permissions + for walkroot, dirs, files in os.walk(rootfs_license_dir): + for f in files: + p = os.path.join(walkroot, f) + os.lchown(p, 0, 0) + if not os.path.islink(p): + os.chmod(p, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) + for dir in dirs: + p = os.path.join(walkroot, dir) + os.lchown(p, 0, 0) + os.chmod(p, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + def license_deployed_manifest(d): @@ -176,7 +198,7 @@ def license_deployed_manifest(d): d.getVar('IMAGE_NAME')) bb.utils.mkdirhier(lic_manifest_dir) image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest') - write_license_files(d, image_license_manifest, man_dic) + write_license_files(d, image_license_manifest, man_dic, rootfs=False) def get_deployed_dependencies(d): """ @@ -185,10 +207,6 @@ def get_deployed_dependencies(d): deploy = {} # Get all the dependencies for the current task (rootfs). - # Also get EXTRA_IMAGEDEPENDS because the bootloader is - # usually in this var and not listed in rootfs. - # At last, get the dependencies from boot classes because - # it might contain the bootloader. taskdata = d.getVar("BB_TASKDEPDATA", False) depends = list(set([dep[0] for dep in list(taskdata.values()) diff --git a/external/poky/meta/classes/linuxloader.bbclass b/external/poky/meta/classes/linuxloader.bbclass index b4c41349..ec0e0556 100644 --- a/external/poky/meta/classes/linuxloader.bbclass +++ b/external/poky/meta/classes/linuxloader.bbclass @@ -1,25 +1,31 @@ -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" - return dynamic_loader + ldso_arch = "aarch64${ARMPKGSFX_ENDIAN_64}" + elif targetarch.startswith("riscv64"): + ldso_arch = "riscv64${@['', '-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 @@ -39,9 +45,11 @@ 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"): + dynamic_loader = "${base_libdir}/ld-linux-riscv64-lp64${@['d', ''][d.getVar('TARGET_FPU') == 'soft']}.so.1" return dynamic_loader def get_linuxloader(d): @@ -58,4 +66,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/external/poky/meta/classes/live-vm-common.bbclass b/external/poky/meta/classes/live-vm-common.bbclass index 68105d9b..74e7074a 100644 --- a/external/poky/meta/classes/live-vm-common.bbclass +++ b/external/poky/meta/classes/live-vm-common.bbclass @@ -29,6 +29,39 @@ def pcbios(d): PCBIOS = "${@pcbios(d)}" PCBIOS_CLASS = "${@['','syslinux'][d.getVar('PCBIOS') == '1']}" +# efi_populate_common DEST BOOTLOADER +efi_populate_common() { + # DEST must be the root of the image so that EFIDIR is not + # nested under a top level directory. + DEST=$1 + + install -d ${DEST}${EFIDIR} + + install -m 0644 ${DEPLOY_DIR_IMAGE}/$2-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE} + EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') + printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh +} + +efi_iso_populate() { + iso_dir=$1 + efi_populate $iso_dir + # Build a EFI directory to create efi.img + mkdir -p ${EFIIMGDIR}/${EFIDIR} + cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} + cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} + + EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') + printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${EFIIMGDIR}/startup.nsh + + if [ -f "$iso_dir/initrd" ] ; then + cp $iso_dir/initrd ${EFIIMGDIR} + fi +} + +efi_hddimg_populate() { + efi_populate $1 +} + inherit ${EFI_CLASS} inherit ${PCBIOS_CLASS} diff --git a/external/poky/meta/classes/manpages.bbclass b/external/poky/meta/classes/manpages.bbclass index 50c25476..1e667806 100644 --- a/external/poky/meta/classes/manpages.bbclass +++ b/external/poky/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/external/poky/meta/classes/mcextend.bbclass b/external/poky/meta/classes/mcextend.bbclass new file mode 100644 index 00000000..0f8f9622 --- /dev/null +++ b/external/poky/meta/classes/mcextend.bbclass @@ -0,0 +1,16 @@ +python mcextend_virtclass_handler () { + cls = e.data.getVar("BBEXTENDCURR") + variant = e.data.getVar("BBEXTENDVARIANT") + if cls != "mcextend" or not variant: + return + + override = ":virtclass-mcextend-" + variant + + e.data.setVar("PN", e.data.getVar("PN", False) + "-" + variant) + e.data.setVar("MCNAME", variant) + e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override) +} + +addhandler mcextend_virtclass_handler +mcextend_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" + diff --git a/external/poky/meta/classes/meson.bbclass b/external/poky/meta/classes/meson.bbclass index 3cbdcf18..ff52d20e 100644 --- a/external/poky/meta/classes/meson.bbclass +++ b/external/poky/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)} \ @@ -25,15 +26,7 @@ MESONOPTS = " --prefix ${prefix} \ --sysconfdir ${sysconfdir} \ --localstatedir ${localstatedir} \ --sharedstatedir ${sharedstatedir} \ - -Dc_args='${BUILD_CPPFLAGS} ${BUILD_CFLAGS}' \ - -Dc_link_args='${BUILD_LDFLAGS}' \ - -Dcpp_args='${BUILD_CPPFLAGS} ${BUILD_CXXFLAGS}' \ - -Dcpp_link_args='${BUILD_LDFLAGS}'" - -MESON_TOOLCHAIN_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}" + --wrap-mode nodownload" EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}" @@ -52,15 +45,35 @@ 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' + elif arch == 'aarch64_be': + return 'aarch64' elif arch == 'mipsel': return 'mips' + elif arch == 'mips64el': + return 'mips64' elif re.match(r"i[3-6]86", arch): return "x86" + 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) @@ -72,7 +85,7 @@ def meson_endian(prefix, d): bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) addtask write_config before do_configure -do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" +do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS" do_write_config() { # This needs to be Py to split the args into single-element lists cat >${WORKDIR}/meson.cross <" + return base_get_metadata_git_revision(path, d) def base_detect_branch(d): path = base_get_scmbasepath(d) - - scms = [base_get_metadata_git_branch] - - for scm in scms: - rev = scm(path, d) - if rev != "": - return rev.strip() - - return "" + return base_get_metadata_git_branch(path, d) def base_get_scmbasepath(d): return os.path.join(d.getVar('COREBASE'), 'meta') -def base_get_metadata_monotone_branch(path, d): - monotone_branch = "" - try: - with open("%s/_MTN/options" % path) as f: - monotone_branch = f.read().strip() - if monotone_branch.startswith( "database" ): - monotone_branch_words = monotone_branch.split() - monotone_branch = monotone_branch_words[ monotone_branch_words.index( "branch" )+1][1:-1] - except: - pass - return monotone_branch - -def base_get_metadata_monotone_revision(path, d): - monotone_revision = "" - try: - with open("%s/_MTN/revision" % path) as f: - monotone_revision = f.read().strip() - if monotone_revision.startswith( "format_version" ): - monotone_revision_words = monotone_revision.split() - monotone_revision = monotone_revision_words[ monotone_revision_words.index( "old_revision" )+1][1:-1] - except IOError: - pass - return monotone_revision - def base_get_metadata_svn_revision(path, d): # This only works with older subversion. For newer versions # this function will need to be fixed by someone interested diff --git a/external/poky/meta/classes/mime-xdg.bbclass b/external/poky/meta/classes/mime-xdg.bbclass new file mode 100644 index 00000000..642a5b75 --- /dev/null +++ b/external/poky/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/external/poky/meta/classes/mime.bbclass b/external/poky/meta/classes/mime.bbclass index 6c7b868f..bb99bc35 100644 --- a/external/poky/meta/classes/mime.bbclass +++ b/external/poky/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/external/poky/meta/classes/module.bbclass b/external/poky/meta/classes/module.bbclass index e3449602..c0dfa350 100644 --- a/external/poky/meta/classes/module.bbclass +++ b/external/poky/meta/classes/module.bbclass @@ -48,6 +48,7 @@ module_do_compile() { module_do_install() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS oe_runmake DEPMOD=echo MODLIB="${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}" \ + INSTALL_FW_PATH="${D}${nonarch_base_libdir}/firmware" \ CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ O=${STAGING_KERNEL_BUILDDIR} \ ${MODULES_INSTALL_TARGET} diff --git a/external/poky/meta/classes/multilib.bbclass b/external/poky/meta/classes/multilib.bbclass index 6c6499a2..ee677da1 100644 --- a/external/poky/meta/classes/multilib.bbclass +++ b/external/poky/meta/classes/multilib.bbclass @@ -33,6 +33,8 @@ python multilib_virtclass_handler () { e.data.setVar("MLPREFIX", variant + "-") e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False)) e.data.setVar('SDKTARGETSYSROOT', e.data.getVar('SDKTARGETSYSROOT')) + override = ":virtclass-multilib-" + variant + e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override) target_vendor = e.data.getVar("TARGET_VENDOR_" + "virtclass-multilib-" + variant, False) if target_vendor: e.data.setVar("TARGET_VENDOR", target_vendor) @@ -88,8 +90,6 @@ python multilib_virtclass_handler () { addhandler multilib_virtclass_handler multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" -STAGINGCC_prepend = "${BBEXTENDVARIANT}-" - python __anonymous () { variant = d.getVar("BBEXTENDVARIANT") @@ -125,8 +125,55 @@ python __anonymous () { clsextend.map_variable("USERADD_PACKAGES") clsextend.map_variable("SYSTEMD_PACKAGES") clsextend.map_variable("UPDATERCPN") + + reset_alternative_priority(d) } +def reset_alternative_priority(d): + if not bb.data.inherits_class('update-alternatives', d): + return + + # There might be multiple multilibs at the same time, e.g., lib32 and + # lib64, each of them should have a different priority. + multilib_variants = d.getVar('MULTILIB_VARIANTS') + bbextendvariant = d.getVar('BBEXTENDVARIANT') + reset_gap = multilib_variants.split().index(bbextendvariant) + 1 + + # ALTERNATIVE_PRIORITY = priority + alt_priority_recipe = d.getVar('ALTERNATIVE_PRIORITY') + # Reset ALTERNATIVE_PRIORITY when found + if alt_priority_recipe: + reset_priority = int(alt_priority_recipe) - reset_gap + bb.debug(1, '%s: Setting ALTERNATIVE_PRIORITY to %s' % (d.getVar('PN'), reset_priority)) + d.setVar('ALTERNATIVE_PRIORITY', reset_priority) + + handled_pkgs = [] + for pkg in (d.getVar('PACKAGES') or "").split(): + # ALTERNATIVE_PRIORITY_pkg = priority + alt_priority_pkg = d.getVar('ALTERNATIVE_PRIORITY_%s' % pkg) + # Reset ALTERNATIVE_PRIORITY_pkg when found + if alt_priority_pkg: + reset_priority = int(alt_priority_pkg) - reset_gap + if not pkg in handled_pkgs: + handled_pkgs.append(pkg) + bb.debug(1, '%s: Setting ALTERNATIVE_PRIORITY_%s to %s' % (pkg, pkg, reset_priority)) + d.setVar('ALTERNATIVE_PRIORITY_%s' % pkg, reset_priority) + + for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): + # ALTERNATIVE_PRIORITY_pkg[tool] = priority + alt_priority_pkg_name = d.getVarFlag('ALTERNATIVE_PRIORITY_%s' % pkg, alt_name) + # ALTERNATIVE_PRIORITY[tool] = priority + alt_priority_name = d.getVarFlag('ALTERNATIVE_PRIORITY', alt_name) + + if alt_priority_pkg_name: + reset_priority = int(alt_priority_pkg_name) - reset_gap + bb.debug(1, '%s: Setting ALTERNATIVE_PRIORITY_%s[%s] to %s' % (pkg, pkg, alt_name, reset_priority)) + d.setVarFlag('ALTERNATIVE_PRIORITY_%s' % pkg, alt_name, reset_priority) + elif alt_priority_name: + reset_priority = int(alt_priority_name) - reset_gap + bb.debug(1, '%s: Setting ALTERNATIVE_PRIORITY[%s] to %s' % (pkg, alt_name, reset_priority)) + d.setVarFlag('ALTERNATIVE_PRIORITY', alt_name, reset_priority) + PACKAGEFUNCS_append = " do_package_qa_multilib" python do_package_qa_multilib() { @@ -137,11 +184,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")): + + 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/external/poky/meta/classes/multilib_global.bbclass b/external/poky/meta/classes/multilib_global.bbclass index 649cc096..98f65c8a 100644 --- a/external/poky/meta/classes/multilib_global.bbclass +++ b/external/poky/meta/classes/multilib_global.bbclass @@ -118,6 +118,9 @@ def preferred_ml_updates(d): d.renameVar(prov, provexp) def translate_provide(prefix, prov): + # Really need to know if kernel modules class is inherited somehow + if prov == "lttng-modules": + return prov if not prov.startswith("virtual/"): return prefix + "-" + prov if prov == "virtual/kernel": @@ -169,21 +172,27 @@ python multilib_virtclass_handler_global () { if bb.data.inherits_class('kernel', e.data) or \ bb.data.inherits_class('module-base', e.data) or \ d.getVar('BPN') in non_ml_recipes: + + # We need to avoid expanding KERNEL_VERSION which we can do by deleting it + # from a copy of the datastore + localdata = bb.data.createCopy(d) + localdata.delVar("KERNEL_VERSION") + variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() import oe.classextend clsextends = [] for variant in variants: - clsextends.append(oe.classextend.ClassExtender(variant, e.data)) + clsextends.append(oe.classextend.ClassExtender(variant, localdata)) # Process PROVIDES - origprovs = provs = e.data.getVar("PROVIDES") or "" + origprovs = provs = localdata.getVar("PROVIDES") or "" for clsextend in clsextends: provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) e.data.setVar("PROVIDES", provs) # Process RPROVIDES - origrprovs = rprovs = e.data.getVar("RPROVIDES") or "" + origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" for clsextend in clsextends: rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) if rprovs.strip(): @@ -191,7 +200,7 @@ python multilib_virtclass_handler_global () { # Process RPROVIDES_${PN}... for pkg in (e.data.getVar("PACKAGES") or "").split(): - origrprovs = rprovs = e.data.getVar("RPROVIDES_%s" % pkg) or "" + origrprovs = rprovs = localdata.getVar("RPROVIDES_%s" % pkg) or "" for clsextend in clsextends: rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False) rprovs = rprovs + " " + clsextend.extname + "-" + pkg @@ -199,5 +208,4 @@ python multilib_virtclass_handler_global () { } addhandler multilib_virtclass_handler_global -multilib_virtclass_handler_global[eventmask] = "bb.event.RecipeParsed" - +multilib_virtclass_handler_global[eventmask] = "bb.event.RecipeTaskPreProcess" diff --git a/external/poky/meta/classes/multilib_script.bbclass b/external/poky/meta/classes/multilib_script.bbclass index dc166d06..b11efc1e 100644 --- a/external/poky/meta/classes/multilib_script.bbclass +++ b/external/poky/meta/classes/multilib_script.bbclass @@ -17,18 +17,18 @@ multilibscript_rename() { python () { # Do nothing if multilib isn't being used if not d.getVar("MULTILIB_VARIANTS"): - return + return # Do nothing for native/cross if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d): - return + return for entry in (d.getVar("MULTILIB_SCRIPTS", False) or "").split(): - pkg, script = entry.split(":") - epkg = d.expand(pkg) - scriptname = os.path.basename(script) - d.appendVar("ALTERNATIVE_" + epkg, " " + scriptname + " ") - d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script) - d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}") - d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}") - d.appendVar("FILES_" + epkg, " " + script + "-${MULTILIB_SUFFIX}") + pkg, script = entry.split(":") + epkg = d.expand(pkg) + scriptname = os.path.basename(script) + d.appendVar("ALTERNATIVE_" + epkg, " " + scriptname + " ") + d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script) + d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}") + d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}") + d.appendVar("FILES_" + epkg, " " + script + "-${MULTILIB_SUFFIX}") } diff --git a/external/poky/meta/classes/native.bbclass b/external/poky/meta/classes/native.bbclass index ddccfe2e..08106e34 100644 --- a/external/poky/meta/classes/native.bbclass +++ b/external/poky/meta/classes/native.bbclass @@ -89,6 +89,7 @@ export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir} /lib /lib64 NATIVE_PACKAGE_PATH_SUFFIX ?= "" bindir .= "${NATIVE_PACKAGE_PATH_SUFFIX}" +sbindir .= "${NATIVE_PACKAGE_PATH_SUFFIX}" base_libdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}" libdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}" libexecdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}" @@ -119,6 +120,9 @@ PATH_prepend = "${COREBASE}/scripts/native-intercept:" # reused if we manipulate the paths. SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" +# No strip sysroot when DEBUG_BUILD is enabled +INHIBIT_SYSROOT_STRIP ?= "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}" + python native_virtclass_handler () { pn = e.data.getVar("PN") if not pn.endswith("-native"): @@ -182,10 +186,13 @@ 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" + +RECIPERDEPTASK = "do_populate_sysroot" +do_populate_sysroot[rdeptask] = "${RECIPERDEPTASK}" diff --git a/external/poky/meta/classes/nativesdk.bbclass b/external/poky/meta/classes/nativesdk.bbclass index f25b0c31..7f2692c5 100644 --- a/external/poky/meta/classes/nativesdk.bbclass +++ b/external/poky/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 @@ -100,12 +101,13 @@ python () { clsextend.map_packagevars() clsextend.map_variable("PROVIDES") clsextend.map_regexp_variable("PACKAGES_DYNAMIC") + d.setVar("LIBCEXTENSION", "") + d.setVar("ABIEXTENSION", "") } 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/external/poky/meta/classes/npm.bbclass b/external/poky/meta/classes/npm.bbclass index 6dbae6bc..068032a1 100644 --- a/external/poky/meta/classes/npm.bbclass +++ b/external/poky/meta/classes/npm.bbclass @@ -1,91 +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/${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 - npm pack . - npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${NPMPN}-${PV}.tgz - mv ${D}${libdir}/node_modules ${D}${libdir}/node - 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} += " \ - ${NPM_INSTALLDIR} \ + ${bindir} \ + ${nonarch_libdir} \ " -EXPORT_FUNCTIONS do_compile do_install +EXPORT_FUNCTIONS do_configure do_compile do_install diff --git a/external/poky/meta/classes/package.bbclass b/external/poky/meta/classes/package.bbclass index 66e423e9..099d0459 100644 --- a/external/poky/meta/classes/package.bbclass +++ b/external/poky/meta/classes/package.bbclass @@ -40,6 +40,7 @@ inherit packagedata inherit chrpath +inherit package_pkgdata # Need the package_qa_handle_error() in insane.bbclass inherit insane @@ -75,7 +76,7 @@ def legitimize_package_name(s): return ('\\u%s' % cp).encode('latin-1').decode('unicode_escape') # Handle unicode codepoints encoded as , as in glibc locale files. - s = re.sub('', fixutf, s) + s = re.sub(r'', fixutf, s) # Remaining package name validity fixes return s.lower().replace('_', '-').replace('@', '+').replace(',', '+').replace('/', '-') @@ -344,7 +345,7 @@ def parse_debugsources_from_dwarfsrcfiles_output(dwarfsrcfiles_output): return debugfiles.keys() -def append_source_info(file, sourcefile, d, fatal=True): +def source_info(file, d, fatal=True): import subprocess cmd = ["dwarfsrcfiles", file] @@ -363,22 +364,15 @@ def append_source_info(file, sourcefile, d, fatal=True): bb.note(msg) debugsources = parse_debugsources_from_dwarfsrcfiles_output(output) - # filenames are null-separated - this is an artefact of the previous use - # of rpm's debugedit, which was writing them out that way, and the code elsewhere - # is still assuming that. - debuglistoutput = '\0'.join(debugsources) + '\0' - lf = bb.utils.lockfile(sourcefile + ".lock") - with open(sourcefile, 'a') as sf: - sf.write(debuglistoutput) - bb.utils.unlockfile(lf) + return list(debugsources) -def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, sourcefile, d): +def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d): # Function to split a single file into two components, one is the stripped # target system binary, the other contains any debugging information. The # two files are linked to reference each other. # - # sourcefile is also generated containing a list of debugsources + # return a mapping of files:debugsources import stat import subprocess @@ -386,6 +380,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, src = file[len(dvar):] dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend debugfile = dvar + dest + sources = [] # Split the file... bb.utils.mkdirhier(os.path.dirname(debugfile)) @@ -397,7 +392,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # We ignore kernel modules, we don't generate debug info files. if file.find("/lib/modules/") != -1 and file.endswith(".ko"): - return 1 + return (file, sources) newmode = None if not os.access(file, os.W_OK) or os.access(file, os.R_OK): @@ -407,7 +402,7 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, # We need to extract the debug src information here... if debugsrcdir: - append_source_info(file, sourcefile, d) + sources = source_info(file, d) bb.utils.mkdirhier(os.path.dirname(debugfile)) @@ -419,17 +414,69 @@ def splitdebuginfo(file, dvar, debugdir, debuglibdir, debugappend, debugsrcdir, if newmode: os.chmod(file, origmode) - return 0 + return (file, sources) -def copydebugsources(debugsrcdir, d): +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 copydebugsources(debugsrcdir, sources, d): # The debug src information written out to sourcefile is further processed # and copied to the destination here. import stat import subprocess - sourcefile = d.expand("${WORKDIR}/debugsources.list") - if debugsrcdir and os.path.isfile(sourcefile): + if debugsrcdir and sources: + sourcefile = d.expand("${WORKDIR}/debugsources.list") + bb.utils.remove(sourcefile) + + # filenames are null-separated - this is an artefact of the previous use + # of rpm's debugedit, which was writing them out that way, and the code elsewhere + # is still assuming that. + debuglistoutput = '\0'.join(sources) + '\0' + with open(sourcefile, 'a') as sf: + sf.write(debuglistoutput) + dvar = d.getVar('PKGD') strip = d.getVar("STRIP") objcopy = d.getVar("OBJCOPY") @@ -471,7 +518,8 @@ def copydebugsources(debugsrcdir, d): # cpio seems to have a bug with -lL together and symbolic links are just copied, not dereferenced. # Work around this by manually finding and copying any symbolic links that made it through. - cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)" % (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir) + cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s')" % \ + (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir) subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT) # The copy by cpio may have resulted in some empty directories! Remove these @@ -821,8 +869,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 @@ -843,7 +892,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: @@ -902,7 +950,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) @@ -911,30 +959,39 @@ 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" - sourcefile = d.expand("${WORKDIR}/debugsources.list") - bb.utils.remove(sourcefile) - # # First lets figure out all of the files we may have to process ... do this only once! # @@ -953,12 +1010,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): @@ -969,6 +1020,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) @@ -1004,6 +1062,12 @@ python split_and_strip_files () { symlinks[file] = target results = oe.utils.multiprocess_launch(oe.package.is_elf, checkelf.keys(), d) + + # Sort results by file path. This ensures that the files are always + # processed in the same order, which is important to make sure builds + # are reproducible when dealing with hardlinks + results.sort(key=lambda x: x[0]) + for (file, elf_file) in results: # It's a file (or hardlink), not a link # ...but is it ELF, and is it already stripped? @@ -1039,11 +1103,18 @@ python split_and_strip_files () { # First lets process debug splitting # if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'): - oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, sourcefile, d)) + results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d)) + + 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)) ) - if debugsrcdir and not targetos.startswith("mingw"): - for file in staticlibs: - append_source_info(file, sourcefile, d, fatal=False) + sources = set() + for r in results: + sources.update(r[1]) # Hardlink our debug symbols to the other hardlink copies for ref in inodes: @@ -1091,7 +1162,7 @@ python split_and_strip_files () { # Process the debugsrcdir if requested... # This copies and places the referenced sources for later debugging... - copydebugsources(debugsrcdir, d) + copydebugsources(debugsrcdir, sources, d) # # End of debug splitting # @@ -1108,6 +1179,9 @@ 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) @@ -1123,7 +1197,7 @@ python populate_packages () { workdir = d.getVar('WORKDIR') outdir = d.getVar('DEPLOY_DIR') dvar = d.getVar('PKGD') - packages = d.getVar('PACKAGES') + packages = d.getVar('PACKAGES').split() pn = d.getVar('PN') bb.utils.mkdirhier(outdir) @@ -1133,32 +1207,34 @@ python populate_packages () { split_source_package = (d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-with-srcpkg') - # If debug-with-srcpkg mode is enabled then the src package is added - # into the package list and the source directory as its main content + # If debug-with-srcpkg mode is enabled then add the source package if it + # doesn't exist and add the source file contents to the source package. if split_source_package: src_package_name = ('%s-src' % d.getVar('PN')) - packages += (' ' + src_package_name) + if not src_package_name in packages: + packages.append(src_package_name) d.setVar('FILES_%s' % src_package_name, '/usr/src/debug') # Sanity check PACKAGES for duplicates # Sanity should be moved to sanity.bbclass once we have the infrastructure package_dict = {} - for i, pkg in enumerate(packages.split()): + for i, pkg in enumerate(packages): if pkg in package_dict: msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg package_qa_handle_error("packages-list", msg, d) - # If debug-with-srcpkg mode is enabled then the src package will have - # priority over dbg package when assigning the files. - # This allows src package to include source files and remove them from dbg. - elif split_source_package and pkg.endswith("-src"): + # Ensure the source package gets the chance to pick up the source files + # before the debug package by ordering it first in PACKAGES. Whether it + # actually picks up any source files is controlled by + # PACKAGE_DEBUG_SPLIT_STYLE. + elif pkg.endswith("-src"): package_dict[pkg] = (10, i) elif autodebug and pkg.endswith("-dbg"): package_dict[pkg] = (30, i) else: package_dict[pkg] = (50, i) - package_list = sorted(package_dict.keys(), key=package_dict.get) - d.setVar('PACKAGES', ' '.join(package_list)) + packages = sorted(package_dict.keys(), key=package_dict.get) + d.setVar('PACKAGES', ' '.join(packages)) pkgdest = d.getVar('PKGDEST') seen = [] @@ -1173,10 +1249,10 @@ 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 package_list: + for pkg in packages: root = os.path.join(pkgdest, pkg) bb.utils.mkdirhier(root) @@ -1203,7 +1279,8 @@ python populate_packages () { src = os.path.join(src, p) dest = os.path.join(dest, p) fstat = cpath.stat(src) - os.mkdir(dest, fstat.st_mode) + os.mkdir(dest) + os.chmod(dest, fstat.st_mode) os.chown(dest, fstat.st_uid, fstat.st_gid) if p not in seen: seen.append(p) @@ -1247,9 +1324,10 @@ python populate_packages () { # Handle LICENSE_EXCLUSION package_list = [] - for pkg in packages.split(): - if d.getVar('LICENSE_EXCLUSION-' + pkg): - msg = "%s has an incompatible license. Excluding from packaging." % pkg + for pkg in packages: + 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) @@ -1336,17 +1414,23 @@ 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" + python emit_pkgdata() { from glob import glob import json def process_postinst_on_target(pkg, mlprefix): + pkgval = d.getVar('PKG_%s' % pkg) + if pkgval is None: + pkgval = pkg + defer_fragment = """ if [ -n "$D" ]; then $INTERCEPT_DIR/postinst_intercept delay_to_first_boot %s mlprefix=%s exit 0 fi -""" % (pkg, mlprefix) +""" % (pkgval, mlprefix) postinst = d.getVar('pkg_postinst_%s' % pkg) postinst_ontarget = d.getVar('pkg_postinst_ontarget_%s' % pkg) @@ -1403,10 +1487,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() @@ -1438,50 +1521,28 @@ fi if fstat.st_ino not in seen: seen.add(fstat.st_ino) total_size += fstat.st_size - d.setVar('FILES_INFO', json.dumps(files)) + d.setVar('FILES_INFO', json.dumps(files, sort_keys=True)) - subdata_file = pkgdatadir + "/runtime/%s" % pkg - sf = open(subdata_file, 'w') - write_if_exists(sf, pkg, 'PN') - write_if_exists(sf, pkg, 'PE') - write_if_exists(sf, pkg, 'PV') - write_if_exists(sf, pkg, 'PR') - write_if_exists(sf, pkg, 'PKGE') - write_if_exists(sf, pkg, 'PKGV') - write_if_exists(sf, pkg, 'PKGR') - write_if_exists(sf, pkg, 'LICENSE') - write_if_exists(sf, pkg, 'DESCRIPTION') - write_if_exists(sf, pkg, 'SUMMARY') - write_if_exists(sf, pkg, 'RDEPENDS') - rprov = write_if_exists(sf, pkg, 'RPROVIDES') - write_if_exists(sf, pkg, 'RRECOMMENDS') - write_if_exists(sf, pkg, 'RSUGGESTS') - write_if_exists(sf, pkg, 'RREPLACES') - write_if_exists(sf, pkg, 'RCONFLICTS') - write_if_exists(sf, pkg, 'SECTION') - write_if_exists(sf, pkg, 'PKG') - write_if_exists(sf, pkg, 'ALLOW_EMPTY') - write_if_exists(sf, pkg, 'FILES') - write_if_exists(sf, pkg, 'CONFFILES') process_postinst_on_target(pkg, d.getVar("MLPREFIX")) add_set_e_to_scriptlets(pkg) - write_if_exists(sf, pkg, 'pkg_postinst') - write_if_exists(sf, pkg, 'pkg_postrm') - write_if_exists(sf, pkg, 'pkg_preinst') - write_if_exists(sf, pkg, 'pkg_prerm') - write_if_exists(sf, pkg, 'FILERPROVIDESFLIST') - write_if_exists(sf, pkg, 'FILES_INFO') - for dfile in (d.getVar('FILERPROVIDESFLIST_' + pkg) or "").split(): - write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile) - - write_if_exists(sf, pkg, 'FILERDEPENDSFLIST') - for dfile in (d.getVar('FILERDEPENDSFLIST_' + pkg) or "").split(): - write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile) - - sf.write('%s_%s: %d\n' % ('PKGSIZE', pkg, total_size)) - sf.close() + + subdata_file = pkgdatadir + "/runtime/%s" % pkg + with open(subdata_file, 'w') as sf: + for var in (d.getVar('PKGDATA_VARS') or "").split(): + val = write_if_exists(sf, pkg, var) + + write_if_exists(sf, pkg, 'FILERPROVIDESFLIST') + for dfile in (d.getVar('FILERPROVIDESFLIST_' + pkg) or "").split(): + write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile) + + write_if_exists(sf, pkg, 'FILERDEPENDSFLIST') + for dfile in (d.getVar('FILERDEPENDSFLIST_' + pkg) or "").split(): + write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile) + + sf.write('%s_%s: %d\n' % ('PKGSIZE', pkg, total_size)) # Symlinks needed for rprovides lookup + rprov = d.getVar('RPROVIDES_%s' % pkg) or d.getVar('RPROVIDES') if rprov: for p in rprov.strip().split(): subdata_sym = pkgdatadir + "/runtime-rprovides/%s/%s" % (p, pkg) @@ -1561,12 +1622,12 @@ python package_do_filedeps() { if pkg not in requires_files: requires_files[pkg] = [] - for file in provides: + for file in sorted(provides): provides_files[pkg].append(file) key = "FILERPROVIDES_" + file + "_" + pkg d.appendVar(key, " " + " ".join(provides[file])) - for file in requires: + for file in sorted(requires): requires_files[pkg].append(file) key = "FILERDEPENDS_" + file + "_" + pkg d.appendVar(key, " " + " ".join(requires[file])) @@ -1577,10 +1638,11 @@ python package_do_filedeps() { d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files[pkg])) } -SHLIBSDIRS = "${PKGDATA_DIR}/${MLPREFIX}shlibs2" +SHLIBSDIRS = "${WORKDIR_PKGDATA}/${MLPREFIX}shlibs2" SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs2" python package_do_shlibs() { + import itertools import re, pipes import subprocess @@ -1589,8 +1651,8 @@ python package_do_shlibs() { bb.note("not generating shlibs") return - lib_re = re.compile("^.*\.so") - libdir_re = re.compile(".*/%s$" % d.getVar('baselib')) + lib_re = re.compile(r"^.*\.so") + libdir_re = re.compile(r".*/%s$" % d.getVar('baselib')) packages = d.getVar('PACKAGES') @@ -1605,7 +1667,7 @@ python package_do_shlibs() { else: shlib_pkgs = packages.split() - targetos = d.getVar('TARGET_OS') + hostos = d.getVar('HOST_OS') workdir = d.getVar('WORKDIR') @@ -1631,23 +1693,24 @@ python package_do_shlibs() { fd.close() rpath = tuple() for l in lines: - m = re.match("\s+RPATH\s+([^\s]*)", l) + m = re.match(r"\s+RPATH\s+([^\s]*)", l) if m: rpaths = m.group(1).replace("$ORIGIN", ldir).split(":") rpath = tuple(map(os.path.normpath, rpaths)) for l in lines: - m = re.match("\s+NEEDED\s+([^\s]*)", l) + m = re.match(r"\s+NEEDED\s+([^\s]*)", l) if m: dep = m.group(1) if dep not in needed: needed.add((dep, file, rpath)) - m = re.match("\s+SONAME\s+([^\s]*)", l) + m = re.match(r"\s+SONAME\s+([^\s]*)", l) if m: this_soname = m.group(1) prov = (this_soname, ldir, pkgver) if not prov in sonames: # if library is private (only used by package) then do not build shlib for it - if not private_libs or this_soname not in private_libs: + import fnmatch + if not private_libs or len([i for i in private_libs if fnmatch.fnmatch(this_soname, i)]) == 0: sonames.add(prov) if libdir_re.match(os.path.dirname(file)): needs_ldconfig = True @@ -1721,7 +1784,7 @@ python package_do_shlibs() { out, err = p.communicate() # process the output, grabbing all .dll names if p.returncode == 0: - for m in re.finditer("DLL Name: (.*?\.dll)$", out.decode(), re.MULTILINE | re.IGNORECASE): + for m in re.finditer(r"DLL Name: (.*?\.dll)$", out.decode(), re.MULTILINE | re.IGNORECASE): dllname = m.group(1) if dllname: needed[pkg].add((dllname, file, tuple())) @@ -1731,14 +1794,9 @@ python package_do_shlibs() { else: snap_symlinks = False - use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d) - needed = {} - # Take shared lock since we're only reading, not writing - lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True) shlib_provider = oe.package.read_shlib_providers(d) - bb.utils.unlockfile(lf) for pkg in shlib_pkgs: private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or "" @@ -1760,9 +1818,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) @@ -1780,22 +1838,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 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: @@ -1833,20 +1890,21 @@ python package_do_shlibs() { # /opt/abc/lib/libfoo.so.1 and contains /usr/bin/abc depending on system library libfoo.so.1 # but skipping it is still better alternative than providing own # version and then adding runtime dependency for the same system library - if private_libs and n[0] in private_libs: + import fnmatch + if private_libs and len([i for i in private_libs if fnmatch.fnmatch(n[0], i)]) > 0: bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0])) continue if n[0] in shlib_provider.keys(): - shlib_provider_path = [] - for k in shlib_provider[n[0]].keys(): - shlib_provider_path.append(k) - match = None - for p in list(n[2]) + shlib_provider_path + libsearchpath: - if p in shlib_provider[n[0]]: - match = p - break - if match: - (dep_pkg, ver_needed) = shlib_provider[n[0]][match] + shlib_provider_map = shlib_provider[n[0]] + matches = set() + for p in itertools.chain(list(n[2]), sorted(shlib_provider_map.keys()), libsearchpath): + if p in shlib_provider_map: + matches.add(p) + if len(matches) > 1: + matchpkgs = ', '.join([shlib_provider_map[match][0] for match in matches]) + bb.error("%s: Multiple shlib providers for %s: %s (used by files: %s)" % (pkg, n[0], matchpkgs, n[1])) + elif len(matches) == 1: + (dep_pkg, ver_needed) = shlib_provider_map[matches.pop()] bb.debug(2, '%s: Dependency %s requires package %s (used by files: %s)' % (pkg, n[0], dep_pkg, n[1])) @@ -1865,11 +1923,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 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 () { @@ -1882,9 +1939,9 @@ python package_do_pkgconfig () { shlibs_dirs = d.getVar('SHLIBSDIRS').split() shlibswork_dir = d.getVar('SHLIBSWORKDIR') - pc_re = re.compile('(.*)\.pc$') - var_re = re.compile('(.*)=(.*)') - field_re = re.compile('(.*): (.*)') + pc_re = re.compile(r'(.*)\.pc$') + var_re = re.compile(r'(.*)=(.*)') + field_re = re.compile(r'(.*): (.*)') pkgconfig_provided = {} pkgconfig_needed = {} @@ -1899,9 +1956,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: @@ -1919,31 +1975,24 @@ 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() - - # Take shared lock since we're only reading, not writing - lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True) + 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): if not os.path.exists(dir): continue - for file in os.listdir(dir): - m = re.match('^(.*)\.pclist$', file) + for file in sorted(os.listdir(dir)): + 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()) - bb.utils.unlockfile(lf) - for pkg in packages.split(): deps = [] for n in pkgconfig_needed[pkg]: @@ -1957,10 +2006,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): @@ -1971,9 +2019,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) @@ -1988,7 +2035,7 @@ python read_shlibdeps () { packages = d.getVar('PACKAGES').split() for pkg in packages: rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg) or "") - for dep in pkglibdeps[pkg]: + for dep in sorted(pkglibdeps[pkg]): # Add the dep if it's not already there, or if no comparison is set if dep not in rdepends: rdepends[dep] = [] @@ -2021,7 +2068,7 @@ python package_depchains() { #bb.note('depends for %s is %s' % (base, depends)) rreclist = bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "") - for depend in depends: + for depend in sorted(depends): if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'): #bb.note("Skipping %s" % depend) continue @@ -2042,7 +2089,7 @@ python package_depchains() { #bb.note('rdepends for %s is %s' % (base, rdepends)) rreclist = bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "") - for depend in rdepends: + for depend in sorted(rdepends): if depend.find('virtual-locale-') != -1: #bb.note("Skipping %s" % depend) continue @@ -2124,10 +2171,12 @@ python package_depchains() { # 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" -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) @@ -2140,6 +2189,7 @@ def gen_packagevar(d): PACKAGE_PREPROCESS_FUNCS ?= "" # Functions for setting up PKGD PACKAGEBUILDPKGD ?= " \ + package_prepare_pkgdata \ perform_packagecopy \ ${PACKAGE_PREPROCESS_FUNCS} \ split_and_strip_files \ @@ -2260,19 +2310,19 @@ python do_package_setscene () { } addtask do_package_setscene -do_packagedata () { - : +# 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 () { + src = d.expand("${PKGDESTWORK}") + dest = d.expand("${WORKDIR}/pkgdata-pdata-input") + oe.path.copyhardlinktree(src, dest) } addtask packagedata before do_build after do_package SSTATETASKS += "do_packagedata" -# PACKAGELOCK protects readers of PKGDATA_DIR against writes -# whilst code is reading in do_package -PACKAGELOCK = "${STAGING_DIR}/package-output.lock" -do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}" +do_packagedata[sstate-inputdirs] = "${WORKDIR}/pkgdata-pdata-input" do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}" -do_packagedata[sstate-lockfile] = "${PACKAGELOCK}" do_packagedata[stamp-extra-info] = "${MACHINE_ARCH}" python do_packagedata_setscene () { diff --git a/external/poky/meta/classes/package_deb.bbclass b/external/poky/meta/classes/package_deb.bbclass index 6f815916..790b26ae 100644 --- a/external/poky/meta/classes/package_deb.bbclass +++ b/external/poky/meta/classes/package_deb.bbclass @@ -6,6 +6,8 @@ inherit package IMAGE_PKGTYPE ?= "deb" +DPKG_BUILDCMD ??= "dpkg-deb" + DPKG_ARCH ?= "${@debian_arch_map(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'))}" DPKG_ARCH[vardepvalue] = "${DPKG_ARCH}" @@ -269,7 +271,8 @@ def deb_write_pkg(pkg, d): conffiles.close() os.chdir(basedir) - subprocess.check_output("PATH=\"%s\" dpkg-deb -b %s %s" % (localdata.getVar("PATH"), root, pkgoutdir), + subprocess.check_output("PATH=\"%s\" %s -b %s %s" % (localdata.getVar("PATH"), localdata.getVar("DPKG_BUILDCMD"), + root, pkgoutdir), stderr=subprocess.STDOUT, shell=True) diff --git a/external/poky/meta/classes/package_ipk.bbclass b/external/poky/meta/classes/package_ipk.bbclass index 5eb910ca..c008559e 100644 --- a/external/poky/meta/classes/package_ipk.bbclass +++ b/external/poky/meta/classes/package_ipk.bbclass @@ -8,13 +8,13 @@ IPKGCONF_SDK = "${WORKDIR}/opkg-sdk.conf" PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks" # Program to be used to build opkg packages -OPKGBUILDCMD ??= "opkg-build -Z xz" +OPKGBUILDCMD ??= 'opkg-build -Z xz -a "${XZ_DEFAULTS}"' OPKG_ARGS += "--force_postinstall --prefer-arch-to-version" OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}" OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE') or "").split())][(d.getVar("PACKAGE_EXCLUDE") or "").strip() != ""]}" -OPKGLIBDIR = "${localstatedir}/lib" +OPKGLIBDIR ??= "${localstatedir}/lib" python do_package_ipk () { workdir = d.getVar('WORKDIR') @@ -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_ that aren't in pkgdata here +IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE" +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/external/poky/meta/classes/package_pkgdata.bbclass b/external/poky/meta/classes/package_pkgdata.bbclass new file mode 100644 index 00000000..18b7ed62 --- /dev/null +++ b/external/poky/meta/classes/package_pkgdata.bbclass @@ -0,0 +1,167 @@ +WORKDIR_PKGDATA = "${WORKDIR}/pkgdata-sysroot" + +def package_populate_pkgdata_dir(pkgdatadir, d): + import glob + + postinsts = [] + seendirs = set() + stagingdir = d.getVar("PKGDATA_DIR") + pkgarchs = ['${MACHINE_ARCH}'] + pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split())) + pkgarchs.append('allarch') + + bb.utils.mkdirhier(pkgdatadir) + for pkgarch in pkgarchs: + for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.packagedata" % pkgarch)): + with open(manifest, "r") as f: + for l in f: + l = l.strip() + dest = l.replace(stagingdir, "") + if l.endswith("/"): + staging_copydir(l, pkgdatadir, dest, seendirs) + continue + try: + staging_copyfile(l, pkgdatadir, dest, postinsts, seendirs) + except FileExistsError: + continue + +python package_prepare_pkgdata() { + import copy + import glob + + taskdepdata = d.getVar("BB_TASKDEPDATA", False) + mytaskname = d.getVar("BB_RUNTASK") + if mytaskname.endswith("_setscene"): + mytaskname = mytaskname.replace("_setscene", "") + workdir = d.getVar("WORKDIR") + pn = d.getVar("PN") + stagingdir = d.getVar("PKGDATA_DIR") + pkgdatadir = d.getVar("WORKDIR_PKGDATA") + + # Detect bitbake -b usage + nodeps = d.getVar("BB_LIMITEDDEPS") or False + if nodeps: + staging_package_populate_pkgdata_dir(pkgdatadir, d) + return + + start = None + configuredeps = [] + 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?") + + # We need to figure out which sysroot files we need to expose to this task. + # This needs to match what would get restored from sstate, which is controlled + # ultimately by calls from bitbake to setscene_depvalid(). + # That function expects a setscene dependency tree. We build a dependency tree + # condensed to inter-sstate task dependencies, similar to that used by setscene + # tasks. We can then call into setscene_depvalid() and decide + # which dependencies we can "see" and should expose in the recipe specific sysroot. + setscenedeps = copy.deepcopy(taskdepdata) + + start = set([start]) + + sstatetasks = d.getVar("SSTATETASKS").split() + # Add recipe specific tasks referenced by setscene_depvalid() + sstatetasks.append("do_stash_locale") + + # If start is an sstate task (like do_package) we need to add in its direct dependencies + # else the code below won't recurse into them. + for dep in set(start): + for dep2 in setscenedeps[dep][3]: + start.add(dep2) + start.remove(dep) + + # Create collapsed do_populate_sysroot -> do_populate_sysroot tree + for dep in taskdepdata: + data = setscenedeps[dep] + if data[1] not in sstatetasks: + for dep2 in setscenedeps: + data2 = setscenedeps[dep2] + if dep in data2[3]: + data2[3].update(setscenedeps[dep][3]) + data2[3].remove(dep) + if dep in start: + start.update(setscenedeps[dep][3]) + start.remove(dep) + del setscenedeps[dep] + + # Remove circular references + for dep in setscenedeps: + if dep in setscenedeps[dep][3]: + setscenedeps[dep][3].remove(dep) + + # Direct dependencies should be present and can be depended upon + for dep in set(start): + if setscenedeps[dep][1] == "do_packagedata": + if dep not in configuredeps: + configuredeps.append(dep) + + msgbuf = [] + # Call into setscene_depvalid for each sub-dependency and only copy sysroot files + # for ones that would be restored from sstate. + done = list(start) + next = list(start) + while next: + new = [] + for dep in next: + data = setscenedeps[dep] + for datadep in data[3]: + if datadep in done: + continue + taskdeps = {} + taskdeps[dep] = setscenedeps[dep][:2] + taskdeps[datadep] = setscenedeps[datadep][:2] + retval = setscene_depvalid(datadep, taskdeps, [], d, msgbuf) + done.append(datadep) + new.append(datadep) + if retval: + msgbuf.append("Skipping setscene dependency %s" % datadep) + continue + if datadep not in configuredeps and setscenedeps[datadep][1] == "do_packagedata": + configuredeps.append(datadep) + msgbuf.append("Adding dependency on %s" % setscenedeps[datadep][0]) + else: + msgbuf.append("Following dependency on %s" % setscenedeps[datadep][0]) + next = new + + # This logging is too verbose for day to day use sadly + #bb.debug(2, "\n".join(msgbuf)) + + seendirs = set() + postinsts = [] + multilibs = {} + manifests = {} + + msg_adding = [] + + for dep in configuredeps: + c = setscenedeps[dep][0] + msg_adding.append(c) + + manifest, d2 = oe.sstatesig.find_sstate_manifest(c, setscenedeps[dep][2], "packagedata", d, multilibs) + destsysroot = pkgdatadir + + if manifest: + targetdir = destsysroot + with open(manifest, "r") as f: + manifests[dep] = manifest + for l in f: + l = l.strip() + dest = targetdir + l.replace(stagingdir, "") + if l.endswith("/"): + staging_copydir(l, targetdir, dest, seendirs) + continue + staging_copyfile(l, targetdir, dest, postinsts, seendirs) + + bb.note("Installed into pkgdata-sysroot: %s" % str(msg_adding)) + +} +package_prepare_pkgdata[cleandirs] = "${WORKDIR_PKGDATA}" +package_prepare_pkgdata[vardepsexclude] += "MACHINE_ARCH PACKAGE_EXTRA_ARCHS SDK_ARCH BUILD_ARCH SDK_OS BB_TASKDEPDATA" + + diff --git a/external/poky/meta/classes/package_rpm.bbclass b/external/poky/meta/classes/package_rpm.bbclass index 21ada348..9145717f 100644 --- a/external/poky/meta/classes/package_rpm.bbclass +++ b/external/poky/meta/classes/package_rpm.bbclass @@ -36,7 +36,7 @@ def write_rpm_perfiledata(srcname, d): pkgd = d.getVar('PKGD') def dump_filerdeps(varname, outfile, d): - outfile.write("#!/usr/bin/env python\n\n") + outfile.write("#!/usr/bin/env python3\n\n") outfile.write("# Dependency table\n") outfile.write('deps = {\n') for pkg in packages.split(): @@ -113,6 +113,10 @@ python write_specfile () { source_list = os.listdir(ar_outdir) source_number = 0 for source in source_list: + # do_deploy_archives may have already run (from sstate) meaning a .src.rpm may already + # exist in ARCHIVER_OUTDIR so skip if present. + if source.endswith(".src.rpm"): + continue # The rpmbuild doesn't need the root permission, but it needs # to know the file's user and group name, the only user and # group in fakeroot is "root" when working in fakeroot. @@ -405,7 +409,6 @@ python write_specfile () { if not file_list and localdata.getVar('ALLOW_EMPTY', False) != "1": bb.note("Not creating empty RPM package for %s" % splitname) else: - bb.note("Creating RPM package for %s" % splitname) spec_files_top.append('%files') if extra_pkgdata: package_rpm_extra_pkgdata(splitname, spec_files_top, localdata) @@ -414,7 +417,7 @@ python write_specfile () { bb.note("Creating RPM package for %s" % splitname) spec_files_top.extend(file_list) else: - bb.note("Creating EMPTY RPM Package for %s" % splitname) + bb.note("Creating empty RPM package for %s" % splitname) spec_files_top.append('') continue @@ -506,7 +509,7 @@ python write_specfile () { bb.note("Creating RPM package for %s" % splitname) spec_files_bottom.extend(file_list) else: - bb.note("Creating EMPTY RPM Package for %s" % splitname) + bb.note("Creating empty RPM package for %s" % splitname) spec_files_bottom.append('') del localdata @@ -690,7 +693,7 @@ python do_package_rpm () { cmd = cmd + " --define '_tmppath " + workdir + "'" if d.getVarFlag('ARCHIVER_MODE', 'srpm') == '1' and bb.data.inherits_class('archiver', d): cmd = cmd + " --define '_sourcedir " + d.getVar('ARCHIVER_OUTDIR') + "'" - cmdsrpm = cmd + " --define '_srcrpmdir " + d.getVar('ARCHIVER_OUTDIR') + "'" + cmdsrpm = cmd + " --define '_srcrpmdir " + d.getVar('ARCHIVER_RPMOUTDIR') + "'" cmdsrpm = cmdsrpm + " -bs " + outspecfile # Build the .src.rpm d.setVar('SBUILDSPEC', cmdsrpm + "\n") diff --git a/external/poky/meta/classes/packagegroup.bbclass b/external/poky/meta/classes/packagegroup.bbclass index d540d421..1541c8fb 100644 --- a/external/poky/meta/classes/packagegroup.bbclass +++ b/external/poky/meta/classes/packagegroup.bbclass @@ -8,7 +8,7 @@ PACKAGES = "${PN}" # By default, packagegroup packages do not depend on a certain architecture. # Only if dependencies are modified by MACHINE_FEATURES, packages -# need to be set to MACHINE_ARCH after inheriting packagegroup.bbclass +# need to be set to MACHINE_ARCH before inheriting packagegroup.bbclass PACKAGE_ARCH ?= "all" # Fully expanded - so it applies the overrides as well @@ -48,6 +48,8 @@ deltask do_compile deltask do_install deltask do_populate_sysroot +INHIBIT_DEFAULT_DEPS = "1" + python () { if bb.data.inherits_class('nativesdk', d): return diff --git a/external/poky/meta/classes/patch.bbclass b/external/poky/meta/classes/patch.bbclass index cd241f1c..25ec089a 100644 --- a/external/poky/meta/classes/patch.bbclass +++ b/external/poky/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/external/poky/meta/classes/perl-version.bbclass b/external/poky/meta/classes/perl-version.bbclass index bafd9651..84b67b81 100644 --- a/external/poky/meta/classes/perl-version.bbclass +++ b/external/poky/meta/classes/perl-version.bbclass @@ -1,4 +1,4 @@ -PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}" +PERL_OWN_DIR = "" # Determine the staged version of perl from the perl configuration file # Assign vardepvalue, because otherwise signature is changed before and after @@ -6,7 +6,7 @@ PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}" get_perl_version[vardepvalue] = "${PERL_OWN_DIR}" def get_perl_version(d): import re - cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh') + cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh') try: f = open(cfg, 'r') except IOError: @@ -22,3 +22,45 @@ def get_perl_version(d): PERLVERSION := "${@get_perl_version(d)}" PERLVERSION[vardepvalue] = "" + + +# Determine the staged arch of perl from the perl configuration file +# Assign vardepvalue, because otherwise signature is changed before and after +# perl is built (from None to real version in config.sh). +def get_perl_arch(d): + import re + cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh') + try: + f = open(cfg, 'r') + except IOError: + return None + l = f.readlines(); + f.close(); + r = re.compile("^archname='([^']*)'") + for s in l: + m = r.match(s) + if m: + return m.group(1) + return None + +PERLARCH := "${@get_perl_arch(d)}" +PERLARCH[vardepvalue] = "" + +# Determine the staged arch of perl-native from the perl configuration file +# Assign vardepvalue, because otherwise signature is changed before and after +# perl is built (from None to real version in config.sh). +def get_perl_hostarch(d): + import re + cfg = d.expand('${STAGING_LIBDIR_NATIVE}/perl5/config.sh') + try: + f = open(cfg, 'r') + except IOError: + return None + l = f.readlines(); + f.close(); + r = re.compile("^archname='([^']*)'") + for s in l: + m = r.match(s) + if m: + return m.group(1) + return None diff --git a/external/poky/meta/classes/pixbufcache.bbclass b/external/poky/meta/classes/pixbufcache.bbclass index 3378ff2c..b07f51ed 100644 --- a/external/poky/meta/classes/pixbufcache.bbclass +++ b/external/poky/meta/classes/pixbufcache.bbclass @@ -3,7 +3,7 @@ # packages. # -DEPENDS += "qemu-native" +DEPENDS_append_class-target = " qemu-native" inherit qemu PIXBUF_PACKAGES ??= "${PN}" @@ -54,7 +54,6 @@ GDK_PIXBUF_FATAL_LOADER=1 ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-que DEPENDS_append_class-native = " gdk-pixbuf-native" SYSROOT_PREPROCESS_FUNCS_append_class-native = " pixbufcache_sstate_postinst" -# See base.bbclass for the other half of this pixbufcache_sstate_postinst() { mkdir -p ${SYSROOT_DESTDIR}${bindir} dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN} diff --git a/external/poky/meta/classes/populate_sdk_base.bbclass b/external/poky/meta/classes/populate_sdk_base.bbclass index 677ba3cf..3e5b1359 100644 --- a/external/poky/meta/classes/populate_sdk_base.bbclass +++ b/external/poky/meta/classes/populate_sdk_base.bbclass @@ -6,7 +6,9 @@ COMPLEMENTARY_GLOB[dev-pkgs] = '*-dev' COMPLEMENTARY_GLOB[staticdev-pkgs] = '*-staticdev' COMPLEMENTARY_GLOB[doc-pkgs] = '*-doc' COMPLEMENTARY_GLOB[dbg-pkgs] = '*-dbg' +COMPLEMENTARY_GLOB[src-pkgs] = '*-src' COMPLEMENTARY_GLOB[ptest-pkgs] = '*-ptest' +COMPLEMENTARY_GLOB[bash-completion-pkgs] = '*-bash-completion' def complementary_globs(featurevar, d): all_globs = d.getVarFlags('COMPLEMENTARY_GLOB') @@ -17,8 +19,9 @@ def complementary_globs(featurevar, d): globs.append(glob) return ' '.join(globs) -SDKIMAGE_FEATURES ??= "dev-pkgs dbg-pkgs ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'doc-pkgs', '', 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}" @@ -44,10 +47,27 @@ TOOLCHAIN_TARGET_TASK ?= "${@multilib_pkg_extend(d, 'packagegroup-core-standalon TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= "" 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 () { + if d.getVar('SDK_ARCHIVE_TYPE') == 'zip': + 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 -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 ${SDK_XZ_OPTIONS} > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE}') +} + SDK_RDEPENDS = "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}" -SDK_DEPENDS = "virtual/fakeroot-native xz-native cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross" +SDK_DEPENDS = "virtual/fakeroot-native ${SDK_ARCHIVE_DEPENDS} cross-localedef-native nativesdk-qemuwrapper-cross ${@' '.join(["%s-qemuwrapper-cross" % m for m in d.getVar("MULTILIB_VARIANTS").split()])} qemuwrapper-cross" PATH_prepend = "${STAGING_DIR_HOST}${SDKPATHNATIVE}${bindir}/crossscripts:${@":".join(all_multilib_tune_values(d, 'STAGING_BINDIR_CROSS').split())}:" -SDK_DEPENDS_append_libc-glibc = " nativesdk-glibc-locale" +SDK_DEPENDS += "nativesdk-glibc-locale" # We want the MULTIARCH_TARGET_SYS to point to the TUNE_PKGARCH, not PACKAGE_ARCH as it # could be set to the MACHINE_ARCH @@ -103,7 +123,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " write_sdk_test_data ; " POPULATE_SDK_POST_TARGET_COMMAND_append_task-populate-sdk = " write_target_sdk_manifest ; " POPULATE_SDK_POST_HOST_COMMAND_append_task-populate-sdk = " write_host_sdk_manifest; " SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}" -SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} " +SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; archive_sdk; ${SDK_PACKAGING_COMMAND} " def populate_sdk_common(d): from oe.sdk import populate_sdk @@ -221,11 +241,10 @@ python check_sdk_sysroots() { SDKTAROPTS = "--owner=root --group=root" -fakeroot tar_sdk() { +fakeroot archive_sdk() { # Package it up mkdir -p ${SDKDEPLOYDIR} - cd ${SDK_OUTPUT}/${SDKPATH} - tar ${SDKTAROPTS} -cf - . | xz -T 0 > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz + ${SDK_ARCHIVE_CMD} } TOOLCHAIN_SHAR_EXT_TMPL ?= "${COREBASE}/meta/files/toolchain-shar-extract.sh" @@ -257,21 +276,22 @@ EOF -e 's#@SDKEXTPATH@#${SDKEXTPATH}#g' \ -e 's#@OLDEST_KERNEL@#${SDK_OLDEST_KERNEL}#g' \ -e 's#@REAL_MULTIMACH_TARGET_SYS@#${REAL_MULTIMACH_TARGET_SYS}#g' \ - -e 's#@SDK_TITLE@#${@d.getVar("SDK_TITLE").replace('&', '\&')}#g' \ + -e 's#@SDK_TITLE@#${@d.getVar("SDK_TITLE").replace('&', '\\&')}#g' \ -e 's#@SDK_VERSION@#${SDK_VERSION}#g' \ -e '/@SDK_PRE_INSTALL_COMMAND@/d' \ -e '/@SDK_POST_INSTALL_COMMAND@/d' \ -e 's#@SDK_GCC_VER@#${@oe.utils.host_gcc_version(d, taskcontextonly=True)}#g' \ + -e 's#@SDK_ARCHIVE_TYPE@#${SDK_ARCHIVE_TYPE}#g' \ ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh # add execution permission chmod +x ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh # append the SDK tarball - cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh + cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh # delete the old tarball, we don't need it anymore - rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz + rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.${SDK_ARCHIVE_TYPE} } populate_sdk_log_check() { diff --git a/external/poky/meta/classes/populate_sdk_ext.bbclass b/external/poky/meta/classes/populate_sdk_ext.bbclass index 40b0375e..fd0da16e 100644 --- a/external/poky/meta/classes/populate_sdk_ext.bbclass +++ b/external/poky/meta/classes/populate_sdk_ext.bbclass @@ -20,6 +20,8 @@ SDK_EXT_task-populate-sdk-ext = "-ext" 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 ?= "" @@ -93,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(':') @@ -121,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): @@ -176,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 @@ -378,9 +383,18 @@ python copy_buildsystem () { f.write('require conf/locked-sigs.inc\n') f.write('require conf/unlocked-sigs.inc\n') - # Write a templateconf.cfg - with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f: - f.write('meta/conf\n') + if os.path.exists(builddir + '/cache/bb_unihashes.dat'): + bb.parse.siggen.save_unitaskhashes() + bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache')) + shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat') + + # 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 @@ -401,9 +415,27 @@ python copy_buildsystem () { excluded_targets = get_sdk_install_targets(d, images_only=True) sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc' lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc' + #nativesdk-only sigfile to merge into locked-sigs.inc + sdk_include_nativesdk = (d.getVar("SDK_INCLUDE_NATIVESDK") == '1') + nativesigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc' + nativesigfile_pruned = d.getVar('WORKDIR') + '/locked-sigs_nativesdk_pruned.inc' + + if sdk_include_nativesdk: + oe.copy_buildsystem.prune_lockedsigs([], + excluded_targets.split(), + nativesigfile, + True, + nativesigfile_pruned) + + oe.copy_buildsystem.merge_lockedsigs([], + sigfile, + nativesigfile_pruned, + sigfile) + oe.copy_buildsystem.prune_lockedsigs([], excluded_targets.split(), sigfile, + False, lockedsigs_pruned) sstate_out = baseoutpath + '/sstate-cache' @@ -414,13 +446,18 @@ python copy_buildsystem () { sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1') sdk_ext_type = d.getVar('SDK_EXT_TYPE') - if sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative: + if (sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative) and not sdk_include_nativesdk: # Create the filtered task list used to generate the sstate cache shipped with the SDK tasklistfn = d.getVar('WORKDIR') + '/tasklist.txt' create_filtered_tasklist(d, baseoutpath, tasklistfn, conf_initpath) else: tasklistfn = None + if os.path.exists(builddir + '/cache/bb_unihashes.dat'): + bb.parse.siggen.save_unitaskhashes() + bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache')) + shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat') + # Add packagedata if enabled if d.getVar('SDK_INCLUDE_PKGDATA') == '1': lockedsigs_base = d.getVar('WORKDIR') + '/locked-sigs-base.inc' @@ -506,8 +543,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') @@ -550,7 +591,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} } @@ -574,8 +617,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="" @@ -589,11 +632,8 @@ sdk_ext_preinst() { exit 1 fi SDK_EXTENSIBLE="1" - if [ "$publish" = "1" ] ; then - EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py" - if [ "${SDK_EXT_TYPE}" = "minimal" ] ; then - EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache" - fi + if [ "$publish" = "1" ] && [ "${SDK_EXT_TYPE}" = "minimal" ] ; then + EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache" fi } SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}" @@ -603,16 +643,18 @@ 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 ; } + 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 + # 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 + # 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 + fi # Allow bitbake environment setup to be ran as part of this sdk. echo "export OE_SKIP_SDK_CHECK=1" >> $env_setup_script @@ -628,13 +670,15 @@ 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 fi echo done @@ -652,15 +696,25 @@ 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}') # ESDKs have a libc from the buildtools so ensure we don't ship linguas twice d.delVar('SDKIMAGE_LINGUAS') + if d.getVar("SDK_INCLUDE_NATIVESDK") == '1': + generate_nativesdk_lockedsigs(d) populate_sdk_common(d) } +def generate_nativesdk_lockedsigs(d): + import oe.copy_buildsystem + sigfile = d.getVar('WORKDIR') + '/locked-sigs_nativesdk.inc' + oe.copy_buildsystem.generate_locked_sigs(sigfile, d) + def get_ext_sdk_depends(d): # Note: the deps varflag is a list not a string, so we need to specify expand=False deps = d.getVarFlag('do_image_complete', 'deps', False) @@ -696,7 +750,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/external/poky/meta/classes/ptest.bbclass b/external/poky/meta/classes/ptest.bbclass index 9d8a7985..47611ede 100644 --- a/external/poky/meta/classes/ptest.bbclass +++ b/external/poky/meta/classes/ptest.bbclass @@ -3,13 +3,17 @@ DESCRIPTION_${PN}-ptest ?= "${DESCRIPTION} \ This package contains a test directory ${PTEST_PATH} for package test purposes." PTEST_PATH ?= "${libdir}/${BPN}/ptest" -FILES_${PN}-ptest = "${PTEST_PATH}" +PTEST_BUILD_HOST_FILES ?= "Makefile" +PTEST_BUILD_HOST_PATTERN ?= "" + +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)}" PTEST_ENABLED_class-native = "" PTEST_ENABLED_class-nativesdk = "" PTEST_ENABLED_class-cross-canadian = "" +RDEPENDS_${PN}-ptest += "${PN}" RDEPENDS_${PN}-ptest_class-native = "" RDEPENDS_${PN}-ptest_class-nativesdk = "" RRECOMMENDS_${PN}-ptest += "ptest-runner" @@ -45,6 +49,53 @@ do_install_ptest_base() { fi do_install_ptest chown -R root:root ${D}${PTEST_PATH} + + # Strip build host paths from any installed Makefile + for filename in ${PTEST_BUILD_HOST_FILES}; do + for installed_ptest_file in $(find ${D}${PTEST_PATH} -type f -name $filename); do + bbnote "Stripping host paths from: $installed_ptest_file" + sed -e 's#${HOSTTOOLS_DIR}/*##g' \ + -e 's#${WORKDIR}/*=#.=#g' \ + -e 's#${WORKDIR}/*##g' \ + -i $installed_ptest_file + if [ -n "${PTEST_BUILD_HOST_PATTERN}" ]; then + sed -E '/${PTEST_BUILD_HOST_PATTERN}/d' \ + -i $installed_ptest_file + fi + done + done +} + +PTEST_BINDIR_PKGD_PATH = "${PKGD}${PTEST_PATH}/bin" + +# This function needs to run after apply_update_alternative_renames because the +# aforementioned function will update the ALTERNATIVE_LINK_NAME flag. Append is +# used here to make this function to run as late as possible. +PACKAGE_PREPROCESS_FUNCS_append = "${@bb.utils.contains('PTEST_BINDIR', '1', \ + bb.utils.contains('PTEST_ENABLED', '1', ' ptest_update_alternatives', '', d), '', d)}" + +python ptest_update_alternatives() { + """ + This function will generate the symlinks in the PTEST_BINDIR_PKGD_PATH + to match the renamed binaries by update-alternatives. + """ + + if not bb.data.inherits_class('update-alternatives', d) \ + or not update_alternatives_enabled(d): + return + + bb.note("Generating symlinks for ptest") + bin_paths = { d.getVar("bindir"), d.getVar("base_bindir"), + d.getVar("sbindir"), d.getVar("base_sbindir") } + ptest_bindir = d.getVar("PTEST_BINDIR_PKGD_PATH") + os.mkdir(ptest_bindir) + for pkg in (d.getVar('PACKAGES') or "").split(): + alternatives = update_alternatives_alt_targets(d, pkg) + for alt_name, alt_link, alt_target, _ in alternatives: + # Some alternatives are for man pages, + # check if the alternative is in PATH + if os.path.dirname(alt_link) in bin_paths: + os.symlink(alt_target, os.path.join(ptest_bindir, alt_name)) } do_configure_ptest_base[dirs] = "${B}" diff --git a/external/poky/meta/classes/pypi.bbclass b/external/poky/meta/classes/pypi.bbclass index e5d7ab3c..87b4c85f 100644 --- a/external/poky/meta/classes/pypi.bbclass +++ b/external/poky/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(\d+[\.\-_]*)+)" +UPSTREAM_CHECK_URI ?= "https://pypi.org/project/${PYPI_PACKAGE}/" +UPSTREAM_CHECK_REGEX ?= "/${PYPI_PACKAGE}/(?P(\d+[\.\-_]*)+)/" diff --git a/external/poky/meta/classes/python-dir.bbclass b/external/poky/meta/classes/python-dir.bbclass deleted file mode 100644 index a11dc350..00000000 --- a/external/poky/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/external/poky/meta/classes/python3-dir.bbclass b/external/poky/meta/classes/python3-dir.bbclass index 06bb046d..036d7140 100644 --- a/external/poky/meta/classes/python3-dir.bbclass +++ b/external/poky/meta/classes/python3-dir.bbclass @@ -1,5 +1,5 @@ -PYTHON_BASEVERSION = "3.5" -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/external/poky/meta/classes/python3native.bbclass b/external/poky/meta/classes/python3native.bbclass index da12a714..d98fb4c7 100644 --- a/external/poky/meta/classes/python3native.bbclass +++ b/external/poky/meta/classes/python3native.bbclass @@ -9,6 +9,16 @@ DEPENDS_append = " python3-native " 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}" + +export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata" + # suppress host user's site-packages dirs. export PYTHONNOUSERSITE = "1" diff --git a/external/poky/meta/classes/pythonnative.bbclass b/external/poky/meta/classes/pythonnative.bbclass deleted file mode 100644 index ae6600cd..00000000 --- a/external/poky/meta/classes/pythonnative.bbclass +++ /dev/null @@ -1,19 +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 - -# suppress host user's site-packages dirs. -export PYTHONNOUSERSITE = "1" - -# autoconf macros will use their internal default preference otherwise -export PYTHON diff --git a/external/poky/meta/classes/qemu.bbclass b/external/poky/meta/classes/qemu.bbclass index f5c57801..55bdff81 100644 --- a/external/poky/meta/classes/qemu.bbclass +++ b/external/poky/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/external/poky/meta/classes/qemuboot.bbclass b/external/poky/meta/classes/qemuboot.bbclass index 15a9e63f..99da543f 100644 --- a/external/poky/meta/classes/qemuboot.bbclass +++ b/external/poky/meta/classes/qemuboot.bbclass @@ -36,6 +36,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 +46,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 +65,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 @@ -63,6 +79,9 @@ QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}" QB_DEFAULT_FSTYPE ?= "ext4" QB_OPT_APPEND ?= "-show-cursor" 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" diff --git a/external/poky/meta/classes/relocatable.bbclass b/external/poky/meta/classes/relocatable.bbclass index 582812c1..af04be5c 100644 --- a/external/poky/meta/classes/relocatable.bbclass +++ b/external/poky/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/external/poky/meta/classes/report-error.bbclass b/external/poky/meta/classes/report-error.bbclass index 1c55abfb..1a12db12 100644 --- a/external/poky/meta/classes/report-error.bbclass +++ b/external/poky/meta/classes/report-error.bbclass @@ -25,6 +25,19 @@ def errorreport_savedata(e, newdata, file): json.dump(newdata, f, indent=4, sort_keys=True) return datafile +def get_conf_data(e, filename): + builddir = e.data.getVar('TOPDIR') + filepath = os.path.join(builddir, "conf", filename) + jsonstring = "" + if os.path.exists(filepath): + with open(filepath, 'r') as f: + for line in f.readlines(): + if line.startswith("#") or len(line.strip()) == 0: + continue + else: + jsonstring=jsonstring + line + return jsonstring + python errorreport_handler () { import json import codecs @@ -51,6 +64,8 @@ python errorreport_handler () { data['failures'] = [] data['component'] = " ".join(e.getPkgs()) data['branch_commit'] = str(base_detect_branch(e.data)) + ": " + str(base_detect_revision(e.data)) + data['local_conf'] = get_conf_data(e, 'local.conf') + data['auto_conf'] = get_conf_data(e, 'auto.conf') lock = bb.utils.lockfile(datafile + '.lock') errorreport_savedata(e, data, "error-report.txt") bb.utils.unlockfile(lock) @@ -63,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/external/poky/meta/classes/reproducible_build.bbclass b/external/poky/meta/classes/reproducible_build.bbclass index 8788ad71..8da40f65 100644 --- a/external/poky/meta/classes/reproducible_build.bbclass +++ b/external/poky/meta/classes/reproducible_build.bbclass @@ -39,19 +39,34 @@ inherit ${@oe.utils.ifelse(d.getVar('BUILD_REPRODUCIBLE_BINARIES') == '1', 'repr SDE_DIR ="${WORKDIR}/source-date-epoch" SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" +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 } python do_deploy_source_date_epoch_setscene () { sstate_setscene(d) + 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): + 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_DIR}" -do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DIR}" +do_deploy_source_date_epoch[dirs] = "${SDE_DEPLOYDIR}" +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 @@ -135,11 +150,12 @@ 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() { +python 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 = ( @@ -155,16 +171,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/external/poky/meta/classes/reproducible_build_simple.bbclass b/external/poky/meta/classes/reproducible_build_simple.bbclass index 8a60deef..39337299 100644 --- a/external/poky/meta/classes/reproducible_build_simple.bbclass +++ b/external/poky/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/external/poky/meta/classes/rm_work.bbclass b/external/poky/meta/classes/rm_work.bbclass index c478f4a1..01c2ab1c 100644 --- a/external/poky/meta/classes/rm_work.bbclass +++ b/external/poky/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} @@ -121,7 +111,7 @@ do_rm_work_all () { } do_rm_work_all[recrdeptask] = "do_rm_work" do_rm_work_all[noexec] = "1" -addtask rm_work_all after before do_build +addtask rm_work_all before do_build do_populate_sdk[postfuncs] += "rm_work_populatesdk" rm_work_populatesdk () { diff --git a/external/poky/meta/classes/rootfs-postcommands.bbclass b/external/poky/meta/classes/rootfs-postcommands.bbclass index bde58ad6..c43b9a98 100644 --- a/external/poky/meta/classes/rootfs-postcommands.bbclass +++ b/external/poky/meta/classes/rootfs-postcommands.bbclass @@ -29,7 +29,7 @@ APPEND_append = '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data ; " # Write manifest -IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.manifest" +IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest" ROOTFS_POSTUNINSTALL_COMMAND =+ "write_image_manifest ; " # Set default postinst log file POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log" @@ -95,6 +95,11 @@ read_only_rootfs_hook () { sed -i -e '/^[#[:space:]]*\/dev\/root/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]\)\([[:space:]]*\)[[:digit:]]$/\1\20/}' ${IMAGE_ROOTFS}/etc/fstab fi + # Tweak the "mount -o remount,rw /" command in busybox-inittab inittab + if [ -f ${IMAGE_ROOTFS}/etc/inittab ]; then + sed -i 's|/bin/mount -o remount,rw /|/bin/mount -o remount,ro /|' ${IMAGE_ROOTFS}/etc/inittab + fi + # If we're using openssh and the /etc/ssh directory has no pre-generated keys, # we should configure openssh to use the configuration file /etc/ssh/sshd_config_readonly # and the keys under /var/run/ssh. @@ -126,6 +131,12 @@ read_only_rootfs_hook () { ${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh fi fi + + if ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "true", "false", d)}; then + # Create machine-id + # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable + touch ${IMAGE_ROOTFS}${sysconfdir}/machine-id + fi } # @@ -254,7 +265,7 @@ python write_image_manifest () { with open(manifest_name, 'w+') as image_manifest: image_manifest.write(format_pkg_list(pkgs, "ver")) - if os.path.exists(manifest_name): + 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) @@ -297,12 +308,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 } @@ -322,7 +337,7 @@ python write_image_test_data() { searchString = "%s/"%(d.getVar("TOPDIR")).replace("//","/") export2json(d, testdata_name, searchString=searchString, replaceString="") - if os.path.exists(testdata_name): + if os.path.exists(testdata_name) and link_name: testdata_link = os.path.join(deploy_dir, "%s.testdata.json" % link_name) if os.path.lexists(testdata_link): os.remove(testdata_link) @@ -350,7 +365,9 @@ rootfs_reproducible () { echo $sformatted > ${IMAGE_ROOTFS}/etc/version bbnote "rootfs_reproducible: set /etc/version to $sformatted" - find ${IMAGE_ROOTFS}/etc/gconf -name '%gconf.xml' -print0 | xargs -0r \ - sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g' + if [ -d ${IMAGE_ROOTFS}${sysconfdir}/gconf ]; then + find ${IMAGE_ROOTFS}${sysconfdir}/gconf -name '%gconf.xml' -print0 | xargs -0r \ + sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g' + fi fi } diff --git a/external/poky/meta/classes/rootfs_ipk.bbclass b/external/poky/meta/classes/rootfs_ipk.bbclass index aabc370c..e73d2bfd 100644 --- a/external/poky/meta/classes/rootfs_ipk.bbclass +++ b/external/poky/meta/classes/rootfs_ipk.bbclass @@ -21,7 +21,7 @@ OPKG_PREPROCESS_COMMANDS = "" OPKG_POSTPROCESS_COMMANDS = "" -OPKGLIBDIR = "${localstatedir}/lib" +OPKGLIBDIR ??= "${localstatedir}/lib" MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg|/usr/lib/opkg" diff --git a/external/poky/meta/classes/sanity.bbclass b/external/poky/meta/classes/sanity.bbclass index 374dacf4..5ddde9cc 100644 --- a/external/poky/meta/classes/sanity.bbclass +++ b/external/poky/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): @@ -338,7 +338,7 @@ def check_path_length(filepath, pathname, limit): def get_filesystem_id(path): import subprocess try: - return subprocess.check_output(["stat", "-f", "-c", "%t", path]).decode('utf-8') + return subprocess.check_output(["stat", "-f", "-c", "%t", path]).decode('utf-8').strip() except subprocess.CalledProcessError: bb.warn("Can't get filesystem id of: %s" % path) return None @@ -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 5.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("5.0"): + return "Your version of gcc is older than 5.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 @@ -560,7 +585,7 @@ def check_perl_modules(sanity_data): try: subprocess.check_output(["perl", "-e", "use %s" % m]) except subprocess.CalledProcessError as e: - errresult += e.output + errresult += bytes.decode(e.output) ret += "%s " % m if ret: return "Required perl module(s) not found: %s\n\n%s\n" % (ret, errresult) @@ -573,7 +598,7 @@ def sanity_check_conffiles(d): if check_conf_exists(conffile, d) and d.getVar(current_version) is not None and \ d.getVar(current_version) != d.getVar(required_version): try: - bb.build.exec_func(func, d, pythonexception=True) + bb.build.exec_func(func, d) except NotImplementedError as e: bb.fatal(str(e)) d.setVar("BB_INVALIDCONF", True) @@ -622,14 +647,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 +691,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 @@ -756,6 +784,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 +832,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) @@ -876,7 +915,7 @@ def check_sanity_everybuild(status, d): with open(checkfile, "r") as f: saved_tmpdir = f.read().strip() if (saved_tmpdir != tmpdir): - status.addresult("Error, TMPDIR has changed location. You need to either move it back to %s or rebuild\n" % saved_tmpdir) + status.addresult("Error, TMPDIR has changed location. You need to either move it back to %s or delete it and rebuild\n" % saved_tmpdir) else: bb.utils.mkdirhier(tmpdir) # Remove setuid, setgid and sticky bits from TMPDIR @@ -919,7 +958,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/external/poky/meta/classes/scons.bbclass b/external/poky/meta/classes/scons.bbclass index b9ae19d5..6b171ca8 100644 --- a/external/poky/meta/classes/scons.bbclass +++ b/external/poky/meta/classes/scons.bbclass @@ -1,17 +1,31 @@ -DEPENDS += "python-scons-native" +inherit python3native + +DEPENDS += "python3-scons-native" EXTRA_OESCONS ?= "" -do_configure[noexec] = "1" +do_configure() { + unset _PYTHON_SYSCONFIGDATA_NAME + if [ -n "${CONFIGURESTAMPFILE}" ]; then + if [ -e "${CONFIGURESTAMPFILE}" -a "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${CLEANBROKEN}" != "1" ]; then + ${STAGING_BINDIR_NATIVE}/scons --clean PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} + fi + + mkdir -p `dirname ${CONFIGURESTAMPFILE}` + echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE} + fi +} scons_do_compile() { - ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \ - die "scons build execution failed." + unset _PYTHON_SYSCONFIGDATA_NAME + ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \ + die "scons build execution failed." } scons_do_install() { - ${STAGING_BINDIR_NATIVE}/scons install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \ - die "scons install execution failed." + unset _PYTHON_SYSCONFIGDATA_NAME + ${STAGING_BINDIR_NATIVE}/scons install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \ + die "scons install execution failed." } EXPORT_FUNCTIONS do_compile do_install diff --git a/external/poky/meta/classes/setuptools.bbclass b/external/poky/meta/classes/setuptools.bbclass deleted file mode 100644 index a923ea3c..00000000 --- a/external/poky/meta/classes/setuptools.bbclass +++ /dev/null @@ -1,3 +0,0 @@ -inherit distutils - -DEPENDS += "python-setuptools-native" diff --git a/external/poky/meta/classes/siteinfo.bbclass b/external/poky/meta/classes/siteinfo.bbclass index 411e7047..1a048c05 100644 --- a/external/poky/meta/classes/siteinfo.bbclass +++ b/external/poky/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", @@ -48,6 +47,7 @@ def siteinfo_data_for_machine(arch, os, d): "powerpc": "endian-big 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", @@ -88,8 +88,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", @@ -106,8 +104,10 @@ def siteinfo_data_for_machine(arch, os, d): "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/external/poky/meta/classes/sstate.bbclass b/external/poky/meta/classes/sstate.bbclass index edbfba5d..375196ef 100644 --- a/external/poky/meta/classes/sstate.bbclass +++ b/external/poky/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_TASKHASH'), 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}" @@ -23,6 +45,7 @@ PV[vardepvalue] = "${PV}" # We don't want the sstate to depend on things like the distro string # of the system, we let the sstate paths take care of this. SSTATE_EXTRAPATH[vardepvalue] = "" +SSTATE_EXTRAPATHWILDCARD[vardepvalue] = "" # For multilib rpm the allarch packagegroup files can overwrite (in theory they're identical) SSTATE_DUPWHITELIST = "${DEPLOY_DIR}/licenses/" @@ -61,6 +84,7 @@ SSTATE_ARCHS = " \ SSTATE_MANMACH ?= "${SSTATE_PKGARCH}" SSTATECREATEFUNCS = "sstate_hardcode_path" +SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES" SSTATEPOSTCREATEFUNCS = "" SSTATEPREINSTFUNCS = "" SSTATEPOSTUNPACKFUNCS = "sstate_hardcode_path_unpack" @@ -82,6 +106,18 @@ SSTATE_SIG_PASSPHRASE ?= "" # Whether to verify the GnUPG signatures when extracting sstate archives SSTATE_VERIFY_SIG ?= "0" +SSTATE_HASHEQUIV_METHOD ?= "oe.sstatesig.OEOuthashBasic" +SSTATE_HASHEQUIV_METHOD[doc] = "The fully-qualified function used to calculate \ + the output hash for a task, which in turn is used to determine equivalency. \ + " + +SSTATE_HASHEQUIV_REPORT_TASKDATA ?= "0" +SSTATE_HASHEQUIV_REPORT_TASKDATA[doc] = "Report additional useful data to the \ + hash equivalency server, such as PN, PV, taskname, etc. This information \ + is very useful for developers looking at task data, but may leak sensitive \ + data if the equivalence server is public. \ + " + python () { if bb.data.inherits_class('native', d): d.setVar('SSTATE_PKGARCH', d.getVar('BUILD_ARCH', False)) @@ -101,7 +137,7 @@ python () { if bb.data.inherits_class('native', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('cross', d): d.setVar('SSTATE_EXTRAPATH', "${NATIVELSBSTRING}/") d.setVar('BB_HASHFILENAME', "True ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}") - d.setVar('SSTATE_EXTRAPATHWILDCARD', "*/") + d.setVar('SSTATE_EXTRAPATHWILDCARD', "${NATIVELSBSTRING}/") unique_tasks = sorted(set((d.getVar('SSTATETASKS') or "").split())) d.setVar('SSTATETASKS', " ".join(unique_tasks)) @@ -303,25 +339,29 @@ 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) if not os.path.isfile(sstatepkg): - bb.note("Staging package %s does not exist" % sstatepkg) + bb.note("Sstate package %s does not exist" % sstatepkg) return False 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" % sstatepkg) + bb.warn("Cannot verify signature on sstate package %s, skipping acceleration..." % sstatepkg) + return False # Empty sstateinst directory, ensure its clean if os.path.exists(sstateinst): @@ -425,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) @@ -597,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 @@ -633,19 +673,30 @@ 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': return + sstate_create_package = ['sstate_report_unihash', 'sstate_create_package'] + if d.getVar('SSTATE_SIG_KEY'): + sstate_create_package.append('sstate_sign_package') + for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \ - ['sstate_create_package', 'sstate_sign_package'] + \ + sstate_create_package + \ (d.getVar('SSTATEPOSTCREATEFUNCS') or '').split(): # 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 @@ -670,7 +721,8 @@ def pstaging_fetch(sstatefetch, d): # if BB_NO_NETWORK is set but we also have SSTATE_MIRROR_ALLOW_NETWORK, # we'll want to allow network access for the current set of fetches. - if localdata.getVar('BB_NO_NETWORK') == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK') == "1": + if bb.utils.to_boolean(localdata.getVar('BB_NO_NETWORK')) and \ + bb.utils.to_boolean(localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK')): localdata.delVar('BB_NO_NETWORK') # Try a fetch from the sstate mirror, if it fails just return and @@ -684,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) @@ -728,13 +781,20 @@ sstate_task_postfunc[dirs] = "${WORKDIR}" # set as SSTATE_BUILDDIR. Will be run from within SSTATE_BUILDDIR. # sstate_create_package () { + # Exit early if it already exists + if [ -e ${SSTATE_PKG} ]; then + [ ! -w ${SSTATE_PKG} ] || touch ${SSTATE_PKG} + return + fi + + mkdir -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 + # 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 @@ -749,19 +809,35 @@ sstate_create_package () { tar $OPT --file=$TFILE --files-from=/dev/null fi chmod 0664 $TFILE - mv -f $TFILE ${SSTATE_PKG} + # Skip if it was already created by some other process + if [ ! -e ${SSTATE_PKG} ]; then + # 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 () { from oe.gpg_sign import get_signer - if d.getVar('SSTATE_SIG_KEY'): - signer = get_signer(d, 'local') - sstate_pkg = d.getVar('SSTATE_PKG') - if os.path.exists(sstate_pkg + '.sig'): - os.unlink(sstate_pkg + '.sig') - signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None, - d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False) + + signer = get_signer(d, 'local') + sstate_pkg = d.getVar('SSTATE_PKG') + if os.path.exists(sstate_pkg + '.sig'): + os.unlink(sstate_pkg + '.sig') + signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None, + d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False) +} + +python sstate_report_unihash() { + report_unihash = getattr(bb.parse.siggen, 'report_unihash', None) + + if report_unihash: + ss = sstate_state_fromvars(d) + report_unihash(os.getcwd(), ss['task'], d) } # @@ -780,24 +856,23 @@ sstate_unpack_package () { BB_HASHCHECK_FUNCTION = "sstate_checkhashes" -def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): +def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, **kwargs): + found = set() + missed = set() - ret = [] - missed = [] - extension = ".tgz" - if siginfo: - extension = extension + ".siginfo" + def gethash(task): + return sq_data['unihash'][task] def getpathcomponents(task, d): # Magic data from BB_HASHFILENAME - splithashfn = sq_hashfn[task].split(" ") + splithashfn = sq_data['hashfn'][task].split(" ") spec = splithashfn[1] if splithashfn[0] == "True": extrapath = d.getVar("NATIVELSBSTRING") + "/" else: extrapath = "" - - tname = sq_task[task][3:] + + tname = bb.runqueue.taskname_from_tid(task)[3:] if tname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and splithashfn[2]: spec = splithashfn[2] @@ -806,18 +881,18 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): return spec, extrapath, tname - for task in range(len(sq_fn)): + for tid in sq_data['hash']: - spec, extrapath, tname = getpathcomponents(task, d) + spec, extrapath, tname = getpathcomponents(tid, d) - sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, sq_hash[task], 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) - ret.append(task) + found.add(tid) continue else: - missed.append(task) + missed.add(tid) bb.debug(2, "SState: Looked for but didn't find file %s" % sstatefile) mirrors = d.getVar("SSTATE_MIRRORS") @@ -835,7 +910,8 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): # if BB_NO_NETWORK is set but we also have SSTATE_MIRROR_ALLOW_NETWORK, # we'll want to allow network access for the current set of fetches. - if localdata.getVar('BB_NO_NETWORK') == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK') == "1": + if bb.utils.to_boolean(localdata.getVar('BB_NO_NETWORK')) and \ + bb.utils.to_boolean(localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK')): localdata.delVar('BB_NO_NETWORK') from bb.fetch2 import FetchConnectionCache @@ -846,7 +922,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): thread_worker.connection_cache.close_connections() def checkstatus(thread_worker, arg): - (task, sstatefile) = arg + (tid, sstatefile) = arg localdata2 = bb.data.createCopy(localdata) srcuri = "file://" + sstatefile @@ -858,26 +934,29 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): connection_cache=thread_worker.connection_cache) fetcher.checkstatus() bb.debug(2, "SState: Successful fetch test for %s" % srcuri) - ret.append(task) - if task in missed: - missed.remove(task) + found.add(tid) + if tid in missed: + missed.remove(tid) except: - missed.append(task) + 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 = [] - for task in range(len(sq_fn)): - if task in ret: + min_tasks = 100 + for tid in sq_data['hash']: + if tid in found: continue - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + extension) - tasklist.append((task, sstatefile)) + spec, extrapath, tname = getpathcomponents(tid, d) + 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)) @@ -891,37 +970,38 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False): pool.wait_completion() bb.event.disable_threadlock() - bb.event.fire(bb.event.ProcessFinished(msg), d) + 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 task in missed: - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + ".tgz") - evdata['missed'].append( (sq_fn[task], sq_task[task], sq_hash[task], sstatefile ) ) - for task in ret: - spec, extrapath, tname = getpathcomponents(task, d) - sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + ".tgz") - evdata['found'].append( (sq_fn[task], sq_task[task], sq_hash[task], sstatefile ) ) + for tid in missed: + spec, extrapath, tname = getpathcomponents(tid, d) + 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), 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_fn) - currentcount = d.getVar("BB_SETSCENE_STAMPCURRENT_COUNT") or 0 - complete = 0 - if currentcount: - complete = (len(ret) + currentcount) / (total + currentcount) * 100 - match = 0 - if total: - match = len(ret) / total * 100 - bb.plain("Sstate summary: Wanted %d Found %d Missed %d Current %d (%d%% match, %d%% complete)" % (total, len(ret), 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(missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d) + bb.parse.siggen.checkhashes(sq_data, missed, found, d) - return ret + return found BB_SETSCENE_DEPVALID = "setscene_depvalid" @@ -1036,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" @@ -1087,12 +1174,15 @@ python sstate_eventhandler2() { with open(i, "r") as f: lines = f.readlines() for l in lines: - (stamp, manifest, workdir) = l.split() - if stamp not in stamps and stamp not in preservestamps and stamp in machineindex: - toremove.append(l) - if stamp not in seen: - bb.debug(2, "Stamp %s is not reachable, removing related manifests" % stamp) - seen.append(stamp) + try: + (stamp, manifest, workdir) = l.split() + if stamp not in stamps and stamp not in preservestamps and stamp in machineindex: + toremove.append(l) + if stamp not in seen: + bb.debug(2, "Stamp %s is not reachable, removing related manifests" % stamp) + seen.append(stamp) + except ValueError: + bb.fatal("Invalid line '%s' in sstate manifest '%s'" % (l, i)) if toremove: msg = "Removing %d recipes from the %s sysroot" % (len(toremove), a) diff --git a/external/poky/meta/classes/staging.bbclass b/external/poky/meta/classes/staging.bbclass index 84e13bab..5b04f88b 100644 --- a/external/poky/meta/classes/staging.bbclass +++ b/external/poky/meta/classes/staging.bbclass @@ -27,11 +27,12 @@ SYSROOT_DIRS_BLACKLIST = " \ ${mandir} \ ${docdir} \ ${infodir} \ - ${datadir}/locale \ ${datadir}/applications \ ${datadir}/fonts \ + ${datadir}/gtk-doc/html \ + ${datadir}/locale \ ${datadir}/pixmaps \ - ${libdir}/${PN}/ptest \ + ${libdir}/${BPN}/ptest \ " sysroot_stage_dir() { @@ -74,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") @@ -167,7 +168,7 @@ def staging_processfixme(fixme, target, recipesysroot, recipesysrootnative, d): if not fixme: return cmd = "sed -e 's:^[^/]*/:%s/:g' %s | xargs sed -i -e 's:FIXMESTAGINGDIRTARGET:%s:g; s:FIXMESTAGINGDIRHOST:%s:g'" % (target, " ".join(fixme), recipesysroot, recipesysrootnative) - for fixmevar in ['COMPONENTS_DIR', 'HOSTTOOLS_DIR', 'PKGDATA_DIR', 'PSEUDO_LOCALSTATEDIR', 'LOGFIFO']: + for fixmevar in ['PSEUDO_SYSROOT', 'HOSTTOOLS_DIR', 'PKGDATA_DIR', 'PSEUDO_LOCALSTATEDIR', 'LOGFIFO']: fixme_path = d.getVar(fixmevar) cmd += " -e 's:FIXME_%s:%s:g'" % (fixmevar, fixme_path) bb.debug(2, cmd) @@ -196,7 +197,11 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d): for pkgarch in pkgarchs: for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.populate_sysroot" % pkgarch)): if manifest.endswith("-initial.populate_sysroot"): - # skip glibc-initial and libgcc-initial due to file overlap + # skip libgcc-initial due to file overlap + continue + if not native and (manifest.endswith("-native.populate_sysroot") or "nativesdk-" in manifest): + continue + if native and not (manifest.endswith("-native.populate_sysroot") or manifest.endswith("-cross.populate_sysroot") or "-cross-" in manifest): continue tmanifest = targetdir + "/" + os.path.basename(manifest) if os.path.exists(tmanifest): @@ -256,12 +261,10 @@ python extend_recipe_sysroot() { workdir = d.getVar("WORKDIR") #bb.warn(str(taskdepdata)) pn = d.getVar("PN") - mc = d.getVar("BB_CURRENT_MC") stagingdir = d.getVar("STAGING_DIR") sharedmanifests = d.getVar("COMPONENTS_DIR") + "/manifests" recipesysroot = d.getVar("RECIPE_SYSROOT") recipesysrootnative = d.getVar("RECIPE_SYSROOT_NATIVE") - current_variant = d.getVar("BBEXTENDVARIANT") # Detect bitbake -b usage nodeps = d.getVar("BB_LIMITEDDEPS") or False @@ -274,11 +277,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?") @@ -424,7 +429,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.*"): @@ -432,6 +437,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) @@ -446,12 +456,8 @@ python extend_recipe_sysroot() { msg_exists = [] msg_adding = [] + # Handle all removals first since files may move between recipes for dep in configuredeps: - if mc != 'default': - # We should not care about other multiconfigs - depmc = dep.split(':')[1] - if depmc != mc: - continue c = setscenedeps[dep][0] if c not in installed: continue @@ -461,7 +467,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)) @@ -472,6 +477,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) @@ -550,7 +570,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)) @@ -566,6 +595,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") @@ -573,22 +603,12 @@ python extend_recipe_sysroot() { } extend_recipe_sysroot[vardepsexclude] += "MACHINE_ARCH PACKAGE_EXTRA_ARCHS SDK_ARCH BUILD_ARCH SDK_OS BB_TASKDEPDATA" +do_prepare_recipe_sysroot[deptask] = "do_populate_sysroot" python do_prepare_recipe_sysroot () { bb.build.exec_func("extend_recipe_sysroot", d) } addtask do_prepare_recipe_sysroot before do_configure after do_fetch -# Clean out the recipe specific sysroots before do_fetch -# (use a prefunc so we can order before extend_recipe_sysroot if it gets added) -python clean_recipe_sysroot() { - # We remove these stamps since we're removing any content they'd have added with - # cleandirs. This removes the sigdata too, likely not a big deal, - oe.path.remove(d.getVar("STAMP") + "*addto_recipe_sysroot*") - return -} -clean_recipe_sysroot[cleandirs] += "${RECIPE_SYSROOT} ${RECIPE_SYSROOT_NATIVE}" -do_fetch[prefuncs] += "clean_recipe_sysroot" - python staging_taskhandler() { bbtasks = e.tasklist for task in bbtasks: diff --git a/external/poky/meta/classes/syslinux.bbclass b/external/poky/meta/classes/syslinux.bbclass index 031dacbf..894f6b37 100644 --- a/external/poky/meta/classes/syslinux.bbclass +++ b/external/poky/meta/classes/syslinux.bbclass @@ -75,11 +75,6 @@ syslinux_hddimg_install() { syslinux ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg } -syslinux_hdddirect_install() { - DEST=$1 - syslinux $DEST -} - python build_syslinux_cfg () { import copy import sys diff --git a/external/poky/meta/classes/systemd-boot-cfg.bbclass b/external/poky/meta/classes/systemd-boot-cfg.bbclass index 021c9f93..b3e0e6ad 100644 --- a/external/poky/meta/classes/systemd-boot-cfg.bbclass +++ b/external/poky/meta/classes/systemd-boot-cfg.bbclass @@ -2,6 +2,9 @@ SYSTEMD_BOOT_CFG ?= "${S}/loader.conf" SYSTEMD_BOOT_ENTRIES ?= "" SYSTEMD_BOOT_TIMEOUT ?= "10" +# Uses MACHINE specific KERNEL_IMAGETYPE +PACKAGE_ARCH = "${MACHINE_ARCH}" + # Need UUID utility code. inherit fs-uuid diff --git a/external/poky/meta/classes/systemd-boot.bbclass b/external/poky/meta/classes/systemd-boot.bbclass index 3cd6811a..336c4c2f 100644 --- a/external/poky/meta/classes/systemd-boot.bbclass +++ b/external/poky/meta/classes/systemd-boot.bbclass @@ -11,50 +11,25 @@ do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy" -EFIDIR = "/EFI/BOOT" +require conf/image-uefi.conf # Need UUID utility code. inherit fs-uuid efi_populate() { - DEST=$1 + efi_populate_common "$1" systemd - EFI_IMAGE="systemd-bootia32.efi" - DEST_EFI_IMAGE="bootia32.efi" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - EFI_IMAGE="systemd-bootx64.efi" - DEST_EFI_IMAGE="bootx64.efi" - fi - - install -d ${DEST}${EFIDIR} # systemd-boot requires these paths for configuration files # they are not customizable so no point in new vars install -d ${DEST}/loader install -d ${DEST}/loader/entries - install -m 0644 ${DEPLOY_DIR_IMAGE}/${EFI_IMAGE} ${DEST}${EFIDIR}/${DEST_EFI_IMAGE} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_EFI_IMAGE" >${DEST}/startup.nsh install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf for i in ${SYSTEMD_BOOT_ENTRIES}; do install -m 0644 ${i} ${DEST}/loader/entries done } -efi_iso_populate() { - iso_dir=$1 - efi_populate $iso_dir - mkdir -p ${EFIIMGDIR}/${EFIDIR} - cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} +efi_iso_populate_append() { cp -r $iso_dir/loader ${EFIIMGDIR} - cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR} - EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g') - echo "fs0:${EFIPATH}\\${DEST_EFI_IMAGE}" > ${EFIIMGDIR}/startup.nsh - if [ -f "$iso_dir/initrd" ] ; then - cp $iso_dir/initrd ${EFIIMGDIR} - fi -} - -efi_hddimg_populate() { - efi_populate $1 } inherit systemd-boot-cfg diff --git a/external/poky/meta/classes/systemd.bbclass b/external/poky/meta/classes/systemd.bbclass index c8f4fdec..9e8a82c9 100644 --- a/external/poky/meta/classes/systemd.bbclass +++ b/external/poky/meta/classes/systemd.bbclass @@ -23,38 +23,37 @@ python __anonymous() { } systemd_postinst() { -OPTS="" +if type systemctl >/dev/null 2>/dev/null; then + OPTS="" -if [ -n "$D" ]; then - OPTS="--root=$D" -fi + if [ -n "$D" ]; then + OPTS="--root=$D" + fi -if type systemctl >/dev/null 2>/dev/null; then - if [ -z "$D" ]; then - systemctl daemon-reload + if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then + for service in ${SYSTEMD_SERVICE_ESCAPED}; do + systemctl ${OPTS} enable "$service" + done fi - systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE_ESCAPED} + if [ -z "$D" ]; then + systemctl daemon-reload + systemctl preset ${SYSTEMD_SERVICE_ESCAPED} - if [ -z "$D" -a "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then - systemctl --no-block restart ${SYSTEMD_SERVICE_ESCAPED} + if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then + systemctl --no-block restart ${SYSTEMD_SERVICE_ESCAPED} + fi fi fi } systemd_prerm() { -OPTS="" - -if [ -n "$D" ]; then - OPTS="--root=$D" -fi - if type systemctl >/dev/null 2>/dev/null; then if [ -z "$D" ]; then systemctl stop ${SYSTEMD_SERVICE_ESCAPED} - fi - systemctl $OPTS disable ${SYSTEMD_SERVICE_ESCAPED} + systemctl disable ${SYSTEMD_SERVICE_ESCAPED} + fi fi } @@ -177,12 +176,25 @@ python systemd_populate_packages() { else: bb.fatal("SYSTEMD_SERVICE_%s value %s does not exist" % (pkg_systemd, service)) + def systemd_create_presets(pkg, action): + presetf = oe.path.join(d.getVar("PKGD"), d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg) + bb.utils.mkdirhier(os.path.dirname(presetf)) + with open(presetf, 'a') as fd: + for service in d.getVar('SYSTEMD_SERVICE_%s' % pkg).split(): + fd.write("%s %s\n" % (action,service)) + d.appendVar("FILES_%s" % pkg, ' ' + oe.path.join(d.getVar("systemd_unitdir"), "system-preset/98-%s.preset" % pkg)) + # Run all modifications once when creating package if os.path.exists(d.getVar("D")): for pkg in d.getVar('SYSTEMD_PACKAGES').split(): systemd_check_package(pkg) if d.getVar('SYSTEMD_SERVICE_' + pkg): systemd_generate_package_scripts(pkg) + action = get_package_var(d, 'SYSTEMD_AUTO_ENABLE', pkg) + if action in ("enable", "disable"): + systemd_create_presets(pkg, action) + elif action not in ("mask", "preset"): + bb.fatal("SYSTEMD_AUTO_ENABLE_%s '%s' is not 'enable', 'disable', 'mask' or 'preset'" % (pkg, action)) systemd_check_services() } @@ -198,7 +210,6 @@ python rm_systemd_unitdir (){ if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)): os.rmdir(systemd_libdir) } -do_install[postfuncs] += "rm_systemd_unitdir " python rm_sysvinit_initddir (){ import shutil @@ -213,4 +224,9 @@ python rm_sysvinit_initddir (){ if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)): shutil.rmtree(sysv_initddir) } -do_install[postfuncs] += "rm_sysvinit_initddir " + +do_install[postfuncs] += "${RMINITDIR} " +RMINITDIR_class-target = " rm_sysvinit_initddir rm_systemd_unitdir " +RMINITDIR_class-nativesdk = " rm_sysvinit_initddir rm_systemd_unitdir " +RMINITDIR = "" + diff --git a/external/poky/meta/classes/terminal.bbclass b/external/poky/meta/classes/terminal.bbclass index 73e765d5..6059ae95 100644 --- a/external/poky/meta/classes/terminal.bbclass +++ b/external/poky/meta/classes/terminal.bbclass @@ -14,6 +14,7 @@ def oe_terminal_prioritized(): return " ".join(o.name for o in oe.terminal.prioritized()) def emit_terminal_func(command, envdata, d): + import bb.build cmd_func = 'do_terminal' envdata.setVar(cmd_func, 'exec ' + command) @@ -25,8 +26,7 @@ def emit_terminal_func(command, envdata, d): bb.utils.mkdirhier(os.path.dirname(runfile)) with open(runfile, 'w') as script: - script.write('#!/usr/bin/env %s\n' % d.getVar('SHELL')) - script.write('set -e\n') + script.write(bb.build.shell_trap_code()) bb.data.emit_func(cmd_func, script, envdata) script.write(cmd_func) script.write("\n") diff --git a/external/poky/meta/classes/testimage.bbclass b/external/poky/meta/classes/testimage.bbclass index 34792283..00f0c298 100644 --- a/external/poky/meta/classes/testimage.bbclass +++ b/external/poky/meta/classes/testimage.bbclass @@ -31,7 +31,20 @@ 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[] 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" @@ -45,7 +58,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}" @@ -63,8 +76,12 @@ 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" @@ -148,6 +165,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 @@ -166,7 +206,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) @@ -205,10 +249,14 @@ 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)) - rootfs = '%s.%s' % (image_name, fstypes[0]) + qfstype = fstypes[0] + qdeffstype = d.getVar("QB_DEFAULT_FSTYPE") + if qdeffstype: + qfstype = qdeffstype + rootfs = '%s.%s' % (image_name, qfstype) # Get tmpdir (not really used, just for compatibility) tmpdir = d.getVar("TMPDIR") @@ -233,11 +281,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, @@ -250,12 +301,35 @@ 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 "" + + 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) @@ -294,11 +368,16 @@ def testimage_main(d): try: # We need to check if runqemu ends unexpectedly # or if the worker send us a SIGTERM - tc.target.start(params=d.getVar("TEST_QEMUPARAMS")) + 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/external/poky/meta/classes/texinfo.bbclass b/external/poky/meta/classes/texinfo.bbclass index 6b0def0e..f46bacab 100644 --- a/external/poky/meta/classes/texinfo.bbclass +++ b/external/poky/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/external/poky/meta/classes/tinderclient.bbclass b/external/poky/meta/classes/tinderclient.bbclass deleted file mode 100644 index 00f453ce..00000000 --- a/external/poky/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 = " 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/external/poky/meta/classes/toaster.bbclass b/external/poky/meta/classes/toaster.bbclass index 6cef0b8f..9518ddf7 100644 --- a/external/poky/meta/classes/toaster.bbclass +++ b/external/poky/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/external/poky/meta/classes/toolchain-scripts.bbclass b/external/poky/meta/classes/toolchain-scripts.bbclass index 1a2ec4f3..db1d3215 100644 --- a/external/poky/meta/classes/toolchain-scripts.bbclass +++ b/external/poky/meta/classes/toolchain-scripts.bbclass @@ -90,6 +90,7 @@ toolchain_shared_env_script () { echo 'export RANLIB=${TARGET_PREFIX}ranlib' >> $script echo 'export OBJCOPY=${TARGET_PREFIX}objcopy' >> $script echo 'export OBJDUMP=${TARGET_PREFIX}objdump' >> $script + echo 'export READELF=${TARGET_PREFIX}readelf' >> $script echo 'export AR=${TARGET_PREFIX}ar' >> $script echo 'export NM=${TARGET_PREFIX}nm' >> $script echo 'export M4=m4' >> $script diff --git a/external/poky/meta/classes/uboot-extlinux-config.bbclass b/external/poky/meta/classes/uboot-extlinux-config.bbclass index c65c421b..f4bf94be 100644 --- a/external/poky/meta/classes/uboot-extlinux-config.bbclass +++ b/external/poky/meta/classes/uboot-extlinux-config.bbclass @@ -104,13 +104,16 @@ python do_create_extlinux_config() { if default: cfgfile.write('DEFAULT %s\n' % (default)) - for label in labels.split(): + # Need to deconflict the labels with existing overrides + label_overrides = labels.split() + default_overrides = localdata.getVar('OVERRIDES').split(':') + # We're keeping all the existing overrides that aren't used as a label + # an override for that label will be added back in while we're processing that label + keep_overrides = list(filter(lambda x: x not in label_overrides, default_overrides)) - overrides = localdata.getVar('OVERRIDES') - if not overrides: - bb.fatal('OVERRIDES not defined') + for label in labels.split(): - localdata.setVar('OVERRIDES', label + ':' + overrides) + localdata.setVar('OVERRIDES', ':'.join(keep_overrides + [label])) extlinux_console = localdata.getVar('UBOOT_EXTLINUX_CONSOLE') @@ -148,5 +151,7 @@ python do_create_extlinux_config() { except OSError: bb.fatal('Unable to open %s' % (cfile)) } +UBOOT_EXTLINUX_VARS = "CONSOLE MENU_DESCRIPTION ROOT KERNEL_IMAGE FDTDIR FDT KERNEL_ARGS INITRD" +do_create_extlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s_%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_LABELS').split()])}" addtask create_extlinux_config before do_install do_deploy after do_compile diff --git a/external/poky/meta/classes/uboot-sign.bbclass b/external/poky/meta/classes/uboot-sign.bbclass index afaf46fe..982ed46d 100644 --- a/external/poky/meta/classes/uboot-sign.bbclass +++ b/external/poky/meta/classes/uboot-sign.bbclass @@ -19,11 +19,15 @@ # The tasks sequence is set as below, using DEPLOY_IMAGE_DIR as common place to # treat the device tree blob: # -# u-boot:do_deploy_dtb -# u-boot:do_deploy -# virtual/kernel:do_assemble_fitimage -# u-boot:do_concat_dtb -# u-boot:do_install +# * u-boot:do_install_append +# Install UBOOT_DTB_BINARY to datadir, so that kernel can use it for +# signing, and kernel will deploy UBOOT_DTB_BINARY after signs it. +# +# * virtual/kernel:do_assemble_fitimage +# Sign the image +# +# * u-boot:do_deploy[postfuncs] +# Deploy files like UBOOT_DTB_IMAGE, UBOOT_DTB_SYMLINK and others. # # For more details on signature process, please refer to U-Boot documentation. @@ -38,58 +42,90 @@ UBOOT_NODTB_IMAGE ?= "u-boot-nodtb-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}" UBOOT_NODTB_BINARY ?= "u-boot-nodtb.${UBOOT_SUFFIX}" UBOOT_NODTB_SYMLINK ?= "u-boot-nodtb-${MACHINE}.${UBOOT_SUFFIX}" -# -# Following is relevant only for u-boot recipes: -# - -do_deploy_dtb () { - mkdir -p ${DEPLOYDIR} - cd ${DEPLOYDIR} +# Functions in this bbclass is for u-boot only +UBOOT_PN = "${@d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot'}" - if [ -f ${B}/${UBOOT_DTB_BINARY} ]; then - install ${B}/${UBOOT_DTB_BINARY} ${DEPLOYDIR}/${UBOOT_DTB_IMAGE} - rm -f ${UBOOT_DTB_BINARY} ${UBOOT_DTB_SYMLINK} - ln -sf ${UBOOT_DTB_IMAGE} ${UBOOT_DTB_SYMLINK} - ln -sf ${UBOOT_DTB_IMAGE} ${UBOOT_DTB_BINARY} +concat_dtb_helper() { + if [ -e "${UBOOT_DTB_BINARY}" ]; then + ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_BINARY} + ln -sf ${UBOOT_DTB_IMAGE} ${DEPLOYDIR}/${UBOOT_DTB_SYMLINK} fi - if [ -f ${B}/${UBOOT_NODTB_BINARY} ]; then - install ${B}/${UBOOT_NODTB_BINARY} ${DEPLOYDIR}/${UBOOT_NODTB_IMAGE} - rm -f ${UBOOT_NODTB_BINARY} ${UBOOT_NODTB_SYMLINK} - ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_SYMLINK} - ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_BINARY} + + if [ -f "${UBOOT_NODTB_BINARY}" ]; then + install ${UBOOT_NODTB_BINARY} ${DEPLOYDIR}/${UBOOT_NODTB_IMAGE} + ln -sf ${UBOOT_NODTB_IMAGE} ${DEPLOYDIR}/${UBOOT_NODTB_SYMLINK} + ln -sf ${UBOOT_NODTB_IMAGE} ${DEPLOYDIR}/${UBOOT_NODTB_BINARY} fi -} -do_concat_dtb () { # Concatenate U-Boot w/o DTB & DTB with public key # (cf. kernel-fitimage.bbclass for more details) - if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ]; then - if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \ - [ -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then + deployed_uboot_dtb_binary='${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_IMAGE}' + if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \ + [ -e "$deployed_uboot_dtb_binary" ]; then + oe_runmake EXT_DTB=$deployed_uboot_dtb_binary + install ${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} + elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "$deployed_uboot_dtb_binary" ]; then + cd ${DEPLOYDIR} + cat ${UBOOT_NODTB_IMAGE} $deployed_uboot_dtb_binary | tee ${B}/${CONFIG_B_PATH}/${UBOOT_BINARY} > ${UBOOT_IMAGE} + else + bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available." + fi +} + +concat_dtb() { + if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" -a -n "${UBOOT_DTB_BINARY}" ]; then + mkdir -p ${DEPLOYDIR} + if [ -n "${UBOOT_CONFIG}" ]; then + for config in ${UBOOT_MACHINE}; do + CONFIG_B_PATH="${config}" + cd ${B}/${config} + concat_dtb_helper + done + else + CONFIG_B_PATH="" cd ${B} - oe_runmake EXT_DTB=${DEPLOYDIR}/${UBOOT_DTB_IMAGE} - install ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE} - install ${B}/${UBOOT_BINARY} ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE} - elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then - cd ${DEPLOYDIR} - cat ${UBOOT_NODTB_IMAGE} ${UBOOT_DTB_IMAGE} | tee ${B}/${UBOOT_BINARY} > ${UBOOT_IMAGE} + concat_dtb_helper + fi + fi +} + +# Install UBOOT_DTB_BINARY to datadir, so that kernel can use it for +# signing, and kernel will deploy UBOOT_DTB_BINARY after signs it. +install_helper() { + if [ -f "${UBOOT_DTB_BINARY}" ]; then + install -d ${D}${datadir} + # UBOOT_DTB_BINARY is a symlink to UBOOT_DTB_IMAGE, so we + # need both of them. + install ${UBOOT_DTB_BINARY} ${D}${datadir}/${UBOOT_DTB_IMAGE} + ln -sf ${UBOOT_DTB_IMAGE} ${D}${datadir}/${UBOOT_DTB_BINARY} + else + bbwarn "${UBOOT_DTB_BINARY} not found" + fi +} + +do_install_append() { + if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${PN}" = "${UBOOT_PN}" -a -n "${UBOOT_DTB_BINARY}" ]; then + if [ -n "${UBOOT_CONFIG}" ]; then + for config in ${UBOOT_MACHINE}; do + cd ${B}/${config} + install_helper + done else - bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available." + cd ${B} + install_helper fi fi } python () { - uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot') or 'u-boot' - if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == uboot_pn: + 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') - # u-boot.dtb and u-boot-nodtb.bin are deployed _before_ do_deploy - # Thus, do_deploy_setscene will also populate them in DEPLOY_IMAGE_DIR - bb.build.addtask('do_deploy_dtb', 'do_deploy', 'do_compile', d) + # Make "bitbake u-boot -cdeploy" deploys the signed u-boot.dtb + d.appendVarFlag('do_deploy', 'depends', ' %s:do_deploy' % kernel_pn) - # do_concat_dtb is scheduled _before_ do_install as it overwrite the - # u-boot.bin in both DEPLOYDIR and DEPLOY_IMAGE_DIR. - bb.build.addtask('do_concat_dtb', 'do_install', None, d) - d.appendVarFlag('do_concat_dtb', 'depends', ' %s:do_assemble_fitimage' % 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/external/poky/meta/classes/uninative.bbclass b/external/poky/meta/classes/uninative.bbclass index 3326c0db..316c0f06 100644 --- a/external/poky/meta/classes/uninative.bbclass +++ b/external/poky/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() diff --git a/external/poky/meta/classes/update-alternatives.bbclass b/external/poky/meta/classes/update-alternatives.bbclass index a7f1a6fd..8c2b66e7 100644 --- a/external/poky/meta/classes/update-alternatives.bbclass +++ b/external/poky/meta/classes/update-alternatives.bbclass @@ -89,15 +89,21 @@ def ua_extend_depends(d): if not 'virtual/update-alternatives' in d.getVar('PROVIDES'): d.appendVar('DEPENDS', ' virtual/${MLPREFIX}update-alternatives') -python __anonymous() { +def update_alternatives_enabled(d): # Update Alternatives only works on target packages... if bb.data.inherits_class('native', d) or \ bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or \ bb.data.inherits_class('cross-canadian', d): - return + return False # Disable when targeting mingw32 (no target support) if d.getVar("TARGET_OS") == "mingw32": + return False + + return True + +python __anonymous() { + if not update_alternatives_enabled(d): return # compute special vardeps @@ -125,9 +131,21 @@ def gen_updatealternativesvars(d): populate_packages[vardeps] += "${UPDALTVARS} ${@gen_updatealternativesvars(d)}" # We need to do the rename after the image creation step, but before -# the split and strip steps.. packagecopy seems to be the earliest reasonable -# place. -python perform_packagecopy_append () { +# the split and strip steps.. PACKAGE_PREPROCESS_FUNCS is the right +# place for that. +PACKAGE_PREPROCESS_FUNCS += "apply_update_alternative_renames" +python apply_update_alternative_renames () { + if not update_alternatives_enabled(d): + return + + import re + + def update_files(alt_target, alt_target_rename, pkg, d): + f = d.getVar('FILES_' + pkg) + if f: + f = re.sub(r'(^|\s)%s(\s|$)' % re.escape (alt_target), r'\1%s\2' % alt_target_rename, f) + d.setVar('FILES_' + pkg, f) + # Check for deprecated usage... pn = d.getVar('BPN') if d.getVar('ALTERNATIVE_LINKS') != None: @@ -137,7 +155,7 @@ python perform_packagecopy_append () { pkgdest = d.getVar('PKGD') for pkg in (d.getVar('PACKAGES') or "").split(): # If the src == dest, we know we need to rename the dest by appending ${BPN} - link_rename = {} + link_rename = [] for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name) if not alt_link: @@ -163,10 +181,11 @@ python perform_packagecopy_append () { elif os.path.lexists(src): if os.path.islink(src): # Delay rename of links - link_rename[alt_target] = alt_target_rename + link_rename.append((alt_target, alt_target_rename)) else: bb.note('%s: Rename %s -> %s' % (pn, alt_target, alt_target_rename)) os.rename(src, dest) + update_files(alt_target, alt_target_rename, pkg, d) else: bb.warn("%s: alternative target (%s or %s) does not exist, skipping..." % (pn, alt_target, alt_target_rename)) continue @@ -174,61 +193,85 @@ python perform_packagecopy_append () { # Process delayed link names # Do these after other renames so we can correct broken links - for alt_target in link_rename: + for (alt_target, alt_target_rename) in link_rename: src = '%s/%s' % (pkgdest, alt_target) - dest = '%s/%s' % (pkgdest, link_rename[alt_target]) - link = os.readlink(src) + dest = '%s/%s' % (pkgdest, alt_target_rename) link_target = oe.path.realpath(src, pkgdest, True) if os.path.lexists(link_target): # Ok, the link_target exists, we can rename - bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, link_rename[alt_target])) + bb.note('%s: Rename (link) %s -> %s' % (pn, alt_target, alt_target_rename)) os.rename(src, dest) else: # Try to resolve the broken link to link.${BPN} link_maybe = '%s.%s' % (os.readlink(src), pn) if os.path.lexists(os.path.join(os.path.dirname(src), link_maybe)): # Ok, the renamed link target exists.. create a new link, and remove the original - bb.note('%s: Creating new link %s -> %s' % (pn, link_rename[alt_target], link_maybe)) + bb.note('%s: Creating new link %s -> %s' % (pn, alt_target_rename, link_maybe)) os.symlink(link_maybe, dest) os.unlink(src) else: bb.warn('%s: Unable to resolve dangling symlink: %s' % (pn, alt_target)) + continue + update_files(alt_target, alt_target_rename, pkg, d) } +def update_alternatives_alt_targets(d, pkg): + """ + Returns the update-alternatives metadata for a package. + + The returned format is a list of tuples where the tuple contains: + alt_name: The binary name + alt_link: The path for the binary (Shared by different packages) + alt_target: The path for the renamed binary (Unique per package) + alt_priority: The priority of the alt_target + + All the alt_targets will be installed into the sysroot. The alt_link is + a symlink pointing to the alt_target with the highest priority. + """ + + pn = d.getVar('BPN') + pkgdest = d.getVar('PKGD') + updates = list() + for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): + alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name) + alt_target = d.getVarFlag('ALTERNATIVE_TARGET_%s' % pkg, alt_name) or \ + d.getVarFlag('ALTERNATIVE_TARGET', alt_name) or \ + d.getVar('ALTERNATIVE_TARGET_%s' % pkg) or \ + d.getVar('ALTERNATIVE_TARGET') or \ + alt_link + alt_priority = d.getVarFlag('ALTERNATIVE_PRIORITY_%s' % pkg, alt_name) or \ + d.getVarFlag('ALTERNATIVE_PRIORITY', alt_name) or \ + d.getVar('ALTERNATIVE_PRIORITY_%s' % pkg) or \ + d.getVar('ALTERNATIVE_PRIORITY') + + # This shouldn't trigger, as it should have been resolved earlier! + if alt_link == alt_target: + bb.note('alt_link == alt_target: %s == %s -- correcting, this should not happen!' % (alt_link, alt_target)) + alt_target = '%s.%s' % (alt_target, pn) + + if not os.path.lexists('%s/%s' % (pkgdest, alt_target)): + bb.warn('%s: NOT adding alternative provide %s: %s does not exist' % (pn, alt_link, alt_target)) + continue + + alt_target = os.path.normpath(alt_target) + updates.append( (alt_name, alt_link, alt_target, alt_priority) ) + + return updates + PACKAGESPLITFUNCS_prepend = "populate_packages_updatealternatives " python populate_packages_updatealternatives () { - pn = d.getVar('BPN') + if not update_alternatives_enabled(d): + return # Do actual update alternatives processing - pkgdest = d.getVar('PKGD') for pkg in (d.getVar('PACKAGES') or "").split(): # Create post install/removal scripts alt_setup_links = "" alt_remove_links = "" - for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): - alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name) - alt_target = d.getVarFlag('ALTERNATIVE_TARGET_%s' % pkg, alt_name) or d.getVarFlag('ALTERNATIVE_TARGET', alt_name) - alt_target = alt_target or d.getVar('ALTERNATIVE_TARGET_%s' % pkg) or d.getVar('ALTERNATIVE_TARGET') or alt_link - # Sometimes alt_target is specified as relative to the link name. - alt_target = os.path.join(os.path.dirname(alt_link), alt_target) - - alt_priority = d.getVarFlag('ALTERNATIVE_PRIORITY_%s' % pkg, alt_name) or d.getVarFlag('ALTERNATIVE_PRIORITY', alt_name) - alt_priority = alt_priority or d.getVar('ALTERNATIVE_PRIORITY_%s' % pkg) or d.getVar('ALTERNATIVE_PRIORITY') - - # This shouldn't trigger, as it should have been resolved earlier! - if alt_link == alt_target: - bb.note('alt_link == alt_target: %s == %s -- correcting, this should not happen!' % (alt_link, alt_target)) - alt_target = '%s.%s' % (alt_target, pn) - - if not os.path.lexists('%s/%s' % (pkgdest, alt_target)): - bb.warn('%s: NOT adding alternative provide %s: %s does not exist' % (pn, alt_link, alt_target)) - continue - - # Default to generate shell script.. eventually we may want to change this... - alt_target = os.path.normpath(alt_target) - + updates = update_alternatives_alt_targets(d, pkg) + for alt_name, alt_link, alt_target, alt_priority in updates: alt_setup_links += '\tupdate-alternatives --install %s %s %s %s\n' % (alt_link, alt_name, alt_target, alt_priority) alt_remove_links += '\tupdate-alternatives --remove %s %s\n' % (alt_name, alt_target) @@ -241,8 +284,11 @@ python populate_packages_updatealternatives () { bb.note('adding update-alternatives calls to postinst/prerm for %s' % pkg) bb.note('%s' % alt_setup_links) - postinst = d.getVar('pkg_postinst_%s' % pkg) or '#!/bin/sh\n' - postinst += alt_setup_links + postinst = d.getVar('pkg_postinst_%s' % pkg) + if postinst: + postinst = alt_setup_links + postinst + else: + postinst = '#!/bin/sh\n' + alt_setup_links d.setVar('pkg_postinst_%s' % pkg, postinst) bb.note('%s' % alt_remove_links) @@ -252,10 +298,15 @@ python populate_packages_updatealternatives () { } python package_do_filedeps_append () { + if update_alternatives_enabled(d): + apply_update_alternative_provides(d) +} + +def apply_update_alternative_provides(d): pn = d.getVar('BPN') pkgdest = d.getVar('PKGDEST') - for pkg in packages.split(): + for pkg in d.getVar('PACKAGES').split(): for alt_name in (d.getVar('ALTERNATIVE_%s' % pkg) or "").split(): alt_link = d.getVarFlag('ALTERNATIVE_LINK_NAME', alt_name) alt_target = d.getVarFlag('ALTERNATIVE_TARGET_%s' % pkg, alt_name) or d.getVarFlag('ALTERNATIVE_TARGET', alt_name) @@ -273,5 +324,4 @@ python package_do_filedeps_append () { d.appendVar('FILERPROVIDES_%s_%s' % (trans_target, pkg), " " + alt_link) if not trans_target in (d.getVar('FILERPROVIDESFLIST_%s' % pkg) or ""): d.appendVar('FILERPROVIDESFLIST_%s' % pkg, " " + trans_target) -} diff --git a/external/poky/meta/classes/update-rc.d.bbclass b/external/poky/meta/classes/update-rc.d.bbclass index 265c4be9..1366fee6 100644 --- a/external/poky/meta/classes/update-rc.d.bbclass +++ b/external/poky/meta/classes/update-rc.d.bbclass @@ -20,28 +20,14 @@ def use_updatercd(d): return '[ -n "$D" -o ! -d /run/systemd/system ]' return 'true' -updatercd_preinst() { -if ${@use_updatercd(d)} && [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then - ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || : -fi -if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then - if [ -n "$D" ]; then - OPT="-f -r $D" - else - OPT="-f" - fi - update-rc.d $OPT ${INITSCRIPT_NAME} remove -fi -} - PACKAGE_WRITE_DEPS += "update-rc.d-native" updatercd_postinst() { if ${@use_updatercd(d)} && type update-rc.d >/dev/null 2>/dev/null; then if [ -n "$D" ]; then - OPT="-f -r $D" + OPT="-r $D" else - OPT="-f -s" + OPT="-s" fi update-rc.d $OPT ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS} fi @@ -79,7 +65,7 @@ python __anonymous() { PACKAGESPLITFUNCS_prepend = "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'populate_packages_updatercd ', '', d)}" PACKAGESPLITFUNCS_remove_class-nativesdk = "populate_packages_updatercd " -populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst" +populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_postinst" populate_packages_updatercd[vardepsexclude] += "OVERRIDES" python populate_packages_updatercd () { @@ -95,7 +81,7 @@ python populate_packages_updatercd () { d.appendVar('RDEPENDS_' + pkg, ' %sinitd-functions' % (mlprefix)) def update_rcd_package(pkg): - bb.debug(1, 'adding update-rc.d calls to preinst/postinst/prerm/postrm for %s' % pkg) + bb.debug(1, 'adding update-rc.d calls to postinst/prerm/postrm for %s' % pkg) localdata = bb.data.createCopy(d) overrides = localdata.getVar("OVERRIDES") @@ -103,12 +89,6 @@ python populate_packages_updatercd () { update_rcd_auto_depend(pkg) - preinst = d.getVar('pkg_preinst_%s' % pkg) - if not preinst: - preinst = '#!/bin/sh\n' - preinst += localdata.getVar('updatercd_preinst') - d.setVar('pkg_preinst_%s' % pkg, preinst) - postinst = d.getVar('pkg_postinst_%s' % pkg) if not postinst: postinst = '#!/bin/sh\n' diff --git a/external/poky/meta/classes/useradd-staticids.bbclass b/external/poky/meta/classes/useradd-staticids.bbclass index 70d59e55..3a1b5f13 100644 --- a/external/poky/meta/classes/useradd-staticids.bbclass +++ b/external/poky/meta/classes/useradd-staticids.bbclass @@ -76,8 +76,8 @@ def update_useradd_static_config(d): for param in oe.useradd.split_commands(params): try: uaargs = parser.parse_args(oe.useradd.split_args(param)) - except: - bb.fatal("%s: Unable to parse arguments for USERADD_PARAM_%s: '%s'" % (d.getVar('PN'), pkg, param)) + except Exception as e: + bb.fatal("%s: Unable to parse arguments for USERADD_PARAM_%s '%s': %s" % (d.getVar('PN'), pkg, param, e)) # Read all passwd files specified in USERADD_UID_TABLES or files/passwd # Use the standard passwd layout: @@ -197,8 +197,8 @@ def update_useradd_static_config(d): try: # If we're processing multiple lines, we could have left over values here... gaargs = parser.parse_args(oe.useradd.split_args(param)) - except: - bb.fatal("%s: Unable to parse arguments for GROUPADD_PARAM_%s: '%s'" % (d.getVar('PN'), pkg, param)) + except Exception as e: + bb.fatal("%s: Unable to parse arguments for GROUPADD_PARAM_%s '%s': %s" % (d.getVar('PN'), pkg, param, e)) # Read all group files specified in USERADD_GID_TABLES or files/group # Use the standard group layout: diff --git a/external/poky/meta/classes/useradd.bbclass b/external/poky/meta/classes/useradd.bbclass index 124becd0..e5f3ba24 100644 --- a/external/poky/meta/classes/useradd.bbclass +++ b/external/poky/meta/classes/useradd.bbclass @@ -100,6 +100,8 @@ useradd_sysroot () { # Pseudo may (do_prepare_recipe_sysroot) or may not (do_populate_sysroot_setscene) be running # at this point so we're explicit about the environment so pseudo can load if # not already present. + # PSEUDO_SYSROOT can contain references to the build architecture and COMPONENT_DIR + # so needs the STAGING_FIXME below export PSEUDO="${FAKEROOTENV} ${PSEUDO_SYSROOT}${bindir_native}/pseudo" # Explicitly set $D since it isn't set to anything @@ -134,10 +136,10 @@ useradd_sysroot () { } # The export of PSEUDO in useradd_sysroot() above contains references to -# ${COMPONENTS_DIR} and ${PSEUDO_LOCALSTATEDIR}. Additionally, the logging +# ${PSEUDO_SYSROOT} and ${PSEUDO_LOCALSTATEDIR}. Additionally, the logging # shell functions use ${LOGFIFO}. These need to be handled when restoring # postinst-useradd-${PN} from the sstate cache. -EXTRA_STAGING_FIXMES += "COMPONENTS_DIR PSEUDO_LOCALSTATEDIR LOGFIFO" +EXTRA_STAGING_FIXMES += "PSEUDO_SYSROOT PSEUDO_LOCALSTATEDIR LOGFIFO" python useradd_sysroot_sstate () { scriptfile = None @@ -182,6 +184,7 @@ def update_useradd_after_parse(d): bb.fatal("%s inherits useradd but doesn't set USERADD_PACKAGES" % d.getVar('FILE', False)) for pkg in useradd_packages.split(): + d.appendVarFlag("do_populate_sysroot", "vardeps", "USERADD_PARAM_%s GROUPADD_PARAM_%s GROUPMEMS_PARAM_%s" % (pkg, pkg, pkg)) if not d.getVar('USERADD_PARAM_%s' % pkg) and not d.getVar('GROUPADD_PARAM_%s' % pkg) and not d.getVar('GROUPMEMS_PARAM_%s' % pkg): bb.fatal("%s inherits useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM or GROUPMEMS_PARAM for package %s" % (d.getVar('FILE', False), pkg)) diff --git a/external/poky/meta/classes/utils.bbclass b/external/poky/meta/classes/utils.bbclass index 0016e5c4..cd3d0570 100644 --- a/external/poky/meta/classes/utils.bbclass +++ b/external/poky/meta/classes/utils.bbclass @@ -264,7 +264,7 @@ create_wrapper () { realpath=\`readlink -fn \$0\` realdir=\`dirname \$realpath\` export $exportstring -exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real "\$@" +exec -a "\$0" \$realdir/$cmdname.real "\$@" END chmod +x $cmd } diff --git a/external/poky/meta/classes/vala.bbclass b/external/poky/meta/classes/vala.bbclass index 615eb379..bcaf68c5 100644 --- a/external/poky/meta/classes/vala.bbclass +++ b/external/poky/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/external/poky/meta/classes/waf.bbclass b/external/poky/meta/classes/waf.bbclass index 19e93761..90024400 100644 --- a/external/poky/meta/classes/waf.bbclass +++ b/external/poky/meta/classes/waf.bbclass @@ -1,8 +1,36 @@ # avoids build breaks when using no-static-libs.inc DISABLE_STATIC = "" +B = "${WORKDIR}/build" + EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}" +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 + # that the full paths for ${B} and ${S} are used; this is OK and desired + # because a change to either of these should create a unique lock file + # to prevent collisions. + import hashlib + h = hashlib.sha512() + def update(name): + val = d.getVar(name) + if val is not None: + h.update(val.encode('utf-8')) + update('S') + update('B') + update('prefix') + update('EXTRA_OECONF') + return h.hexdigest() + +# Use WAFLOCK to specify a separate lock file. The build is already +# sufficiently isolated by setting the output directory, this ensures that +# bitbake won't step on toes of any other configured context in the source +# directory (e.g. if the source is coming from externalsrc and was previously +# configured elsewhere). +export WAFLOCK = ".lock-waf_oe_${@waflock_hash(d)}_build" +BB_HASHBASE_WHITELIST += "WAFLOCK" + python waf_preconfigure() { import subprocess from distutils.version import StrictVersion @@ -22,16 +50,16 @@ python waf_preconfigure() { do_configure[prefuncs] += "waf_preconfigure" waf_do_configure() { - ${S}/waf configure --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF} + (cd ${S} && ./waf configure -o ${B} --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF}) } do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+" waf_do_compile() { - ${S}/waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)} + (cd ${S} && ./waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}) } waf_do_install() { - ${S}/waf install --destdir=${D} + (cd ${S} && ./waf install --destdir=${D}) } EXPORT_FUNCTIONS do_configure do_compile do_install diff --git a/external/poky/meta/classes/xmlcatalog.bbclass b/external/poky/meta/classes/xmlcatalog.bbclass new file mode 100644 index 00000000..ae4811fd --- /dev/null +++ b/external/poky/meta/classes/xmlcatalog.bbclass @@ -0,0 +1,26 @@ +DEPENDS = "libxml2-native" + +# A whitespace-separated list of XML catalogs to be registered, for example +# "${sysconfdir}/xml/docbook-xml.xml". +XMLCATALOGS ?= "" + +SYSROOT_PREPROCESS_FUNCS_append = " xmlcatalog_sstate_postinst" + +xmlcatalog_complete() { + ROOTCATALOG="${STAGING_ETCDIR_NATIVE}/xml/catalog" + if [ ! -f $ROOTCATALOG ]; then + mkdir --parents $(dirname $ROOTCATALOG) + xmlcatalog --noout --create $ROOTCATALOG + fi + for CATALOG in ${XMLCATALOGS}; do + xmlcatalog --noout --add nextCatalog unused file://$CATALOG $ROOTCATALOG + done +} + +xmlcatalog_sstate_postinst() { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN}-xmlcatalog + echo '#!/bin/sh' > $dest + echo '${xmlcatalog_complete}' >> $dest + chmod 0755 $dest +} diff --git a/external/poky/meta/conf/abi_version.conf b/external/poky/meta/conf/abi_version.conf index 49648801..2bdc5569 100644 --- a/external/poky/meta/conf/abi_version.conf +++ b/external/poky/meta/conf/abi_version.conf @@ -5,3 +5,11 @@ # with general agreement from the core team. # OELAYOUT_ABI = "12" + +# +# 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 = "1" diff --git a/external/poky/meta/conf/bitbake.conf b/external/poky/meta/conf/bitbake.conf index dcf20078..bdade79a 100644 --- a/external/poky/meta/conf/bitbake.conf +++ b/external/poky/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 = "" @@ -123,13 +124,13 @@ TUNE_ASARGS ??= "" TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}" LIBCEXTENSION ??= "" ABIEXTENSION ??= "" -USE_NLS ??= "${@bb.utils.contains('DISTRO_FEATURES', 'libc-locale-code', 'yes', 'no', d)}" +USE_NLS ??= "yes" 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" @@ -199,9 +200,9 @@ ASSUME_PROVIDED = "\ # Package default variables. ################################################################## -PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" -PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}" -PR = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}" +PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" +PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}" +PR = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}" PE = "" PF = "${PN}-${EXTENDPE}${PV}-${PR}" EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}" @@ -237,6 +238,10 @@ DESCRIPTION ?= "${SUMMARY}." #SUMMARY_${PN} ?= "${SUMMARY}" #DESCRIPTION_${PN} ?= "${DESCRIPTION}" +SUMMARY_${PN}-src ?= "${SUMMARY} - Source files" +DESCRIPTION_${PN}-src ?= "${DESCRIPTION} \ +This package contains sources for debugging purposes." + SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files" DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \ This package contains ELF symbols and related sources for debugging purposes." @@ -282,8 +287,10 @@ SOLIBSDEV = ".so" # at least means builds aren't completely broken and symlinks don't take up much space. SOLIBSDEV_darwin = ".dylibbroken" +PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg" + PACKAGE_BEFORE_PN ?= "" -PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" +PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" PACKAGES_DYNAMIC = "^${PN}-locale-.*" FILES = "" @@ -318,10 +325,15 @@ 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" +# The files list for source packages are dynamically set based on +# PACKAGE_DEBUG_SPLIT_STYLE +FILES_${PN}-src = "" +SECTION_${PN}-src = "devel" + FILES_${PN}-locale = "${datadir}/locale" # File manifest @@ -349,12 +361,6 @@ CACHE = "${TMPDIR}/cache${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('M # The persistent cache should be shared by all builds PERSISTENT_DIR = "${TOPDIR}/cache" LOG_DIR = "${TMPDIR}/log" -CO_DIR = "${DL_DIR}" -CVSDIR = "${CO_DIR}/cvs" -SVNDIR = "${CO_DIR}/svn" -GITDIR = "${CO_DIR}/git2" -BZRDIR = "${CO_DIR}/bzr" -HGDIR = "${CO_DIR}/hg" STAMPS_DIR ?= "${TMPDIR}/stamps" STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" @@ -424,7 +430,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 @@ -476,14 +483,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 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 rm rmdir rpcgen sed 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 \ " @@ -492,7 +499,7 @@ HOSTTOOLS += " \ HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}" # Link to these if present -HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo" +HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo" # Temporary add few more detected in bitbake world HOSTTOOLS_NONFATAL += "join nl size yes zcat" @@ -503,11 +510,10 @@ HOSTTOOLS_NONFATAL += "bzr" # Used by ssh fetcher HOSTTOOLS_NONFATAL += "scp" +# Link to git-lfs if present +HOSTTOOLS_NONFATAL += "git-lfs" + CCACHE ??= "" -# ccache < 3.1.10 will create CCACHE_DIR on startup even if disabled, and -# autogen sets HOME=/dev/null so in certain situations builds can fail. -# Explicitly export CCACHE_DIR until we can assume ccache >3.1.10 on the host. -export CCACHE_DIR ??= "${@os.getenv('HOME')}/.ccache" TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" @@ -517,9 +523,9 @@ export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" export CCLD = "${CC}" -export AR = "${HOST_PREFIX}ar" +export AR = "${HOST_PREFIX}gcc-ar" export AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" -export RANLIB = "${HOST_PREFIX}ranlib" +export RANLIB = "${HOST_PREFIX}gcc-ranlib" export STRIP = "${HOST_PREFIX}strip" export OBJCOPY = "${HOST_PREFIX}objcopy" export OBJDUMP = "${HOST_PREFIX}objdump" @@ -559,20 +565,21 @@ PATCHRESOLVE = "noop" export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}" BUILDSDK_CPPFLAGS = "" export CPPFLAGS = "${TARGET_CPPFLAGS}" -export TARGET_CPPFLAGS = "" +TARGET_CPPFLAGS = "" export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}" -BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}" +BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION} ${DEBUG_PREFIX_MAP}" export CFLAGS = "${TARGET_CFLAGS}" -export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" +TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}" export BUILD_CXXFLAGS = "${BUILD_CFLAGS}" BUILDSDK_CXXFLAGS = "${BUILDSDK_CFLAGS}" export CXXFLAGS = "${TARGET_CXXFLAGS}" -export TARGET_CXXFLAGS = "${TARGET_CFLAGS}" +TARGET_CXXFLAGS = "${TARGET_CFLAGS}" export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \ -L${STAGING_BASE_LIBDIR_NATIVE} \ + -Wl,--enable-new-dtags \ -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \ -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} \ -Wl,-rpath,${STAGING_LIBDIR_NATIVE} \ @@ -582,15 +589,15 @@ 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']}" ASNEEDED ?= "-Wl,--as-needed" export LDFLAGS = "${TARGET_LDFLAGS}" -export TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" +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} " @@ -602,7 +609,8 @@ EXTRA_OEMAKE_prepend_task-install = "${PARALLEL_MAKEINST} " # Optimization flags. ################################################################## # Beware: applied last to first -DEBUG_PREFIX_MAP ?= "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ +DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ + -fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ -fdebug-prefix-map=${STAGING_DIR_HOST}= \ -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ " @@ -610,36 +618,37 @@ DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}" # Disabled until the option works properly -feliminate-dwarf2-dups FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}" -DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe" +DEBUG_OPTIMIZATION = "-Og ${DEBUG_FLAGS} -pipe" SELECTED_OPTIMIZATION = "${@d.getVar(oe.utils.vartrue('DEBUG_BUILD', 'DEBUG_OPTIMIZATION', 'FULL_OPTIMIZATION', d))}" -SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION" -BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-O -g -feliminate-unused-debug-types -fno-omit-frame-pointer', '-O2', d)} -pipe" +SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION DEBUG_BUILD" +BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-Og -g -feliminate-unused-debug-types', '-O2', d)} -pipe" +BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD" ################################################################## # Settings used by bitbake-layers. ################################################################## -BBLAYERS_LAYERINDEX_URL ??= "http://layers.openembedded.org/layerindex/" +BBLAYERS_LAYERINDEX_URL ??= "https://layers.openembedded.org/layerindex/" BBLAYERS_FETCH_DIR ??= "${COREBASE}" ################################################################## # Download locations and utilities. ################################################################## -APACHE_MIRROR = "http://archive.apache.org/dist" +APACHE_MIRROR = "https://archive.apache.org/dist" DEBIAN_MIRROR = "http://ftp.debian.org/debian/pool" GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles" GNOME_GIT = "git://gitlab.gnome.org/GNOME" -GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources" -GNU_MIRROR = "http://ftp.gnu.org/gnu" +GNOME_MIRROR = "https://ftp.gnome.org/pub/GNOME/sources" +GNU_MIRROR = "https://ftp.gnu.org/gnu" GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt" GPE_MIRROR = "http://gpe.linuxtogo.org/download/source" -KERNELORG_MIRROR = "http://cdn.kernel.org/pub" -SOURCEFORGE_MIRROR = "http://downloads.sourceforge.net" -XLIBS_MIRROR = "http://xlibs.freedesktop.org/release" -XORG_MIRROR = "http://xorg.freedesktop.org/releases" -SAVANNAH_GNU_MIRROR = "http://download.savannah.gnu.org/releases" -SAVANNAH_NONGNU_MIRROR = "http://download.savannah.nongnu.org/releases" -CPAN_MIRROR = "http://search.cpan.org/CPAN" +KERNELORG_MIRROR = "https://cdn.kernel.org/pub" +SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net" +XLIBS_MIRROR = "https://xlibs.freedesktop.org/release" +XORG_MIRROR = "https://www.x.org/releases/" +SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases" +SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases" +CPAN_MIRROR = "https://search.cpan.org/CPAN" SRC_URI[vardepsexclude] += "\ APACHE_MIRROR \ @@ -663,12 +672,6 @@ SRC_URI[vardepsexclude] += "\ # export DEBIAN_MIRROR = "http://ftp.de.debian.org/debian/pool" # into your local.conf -FETCHCMD_svn = "/usr/bin/env svn --non-interactive --trust-server-cert" -FETCHCMD_cvs = "/usr/bin/env cvs" -FETCHCMD_wget = "/usr/bin/env wget -t 2 -T 30 --passive-ftp --no-check-certificate" -FETCHCMD_bzr = "/usr/bin/env bzr" -FETCHCMD_hg = "/usr/bin/env hg" - SRCDATE = "${DATE}" SRCREV ??= "INVALID" AUTOREV = "${@bb.fetch2.get_autorev(d)}" @@ -715,6 +718,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 ### @@ -791,6 +798,12 @@ BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}" # Default to setting automatically based on cpu count PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}" +# Default parallelism and resource usage for xz +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 ################################################################## @@ -816,14 +829,14 @@ IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" # Native distro features (will always be used for -native, even if they # are not enabled for target) DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr" -DISTRO_FEATURES_NATIVESDK ?= "x11 libc-charsets libc-locales libc-locale-code" +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_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig" +DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" @@ -832,7 +845,7 @@ COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES" SERIAL_CONSOLE ??= "" SERIAL_CONSOLES ??= "${@d.getVar('SERIAL_CONSOLE').replace(' ', ';')}" -NO_RECOMMENDATIONS ?= "" +NO_RECOMMENDATIONS ??= "" BAD_RECOMMENDATIONS ?= "" # Make sure MACHINE isn't exported @@ -867,7 +880,9 @@ BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI 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 extend_recipe_sysroot DEPLOY_DIR" + 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 GIT_CEILING_DIRECTORIES" BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} 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 \ @@ -879,7 +894,13 @@ 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 ??= "" + +# Older versions of bitbake (< 1.42) don't set BB_UNIHASH. For compatibility with these +# versions, set BB_UNIHASH equivalent to BB_TASKHASH if unspecified, which is +# what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't +# support unihashes. +BB_UNIHASH ?= "${BB_TASKHASH}" diff --git a/external/poky/meta/conf/ccache.conf b/external/poky/meta/conf/ccache.conf new file mode 100644 index 00000000..931012de --- /dev/null +++ b/external/poky/meta/conf/ccache.conf @@ -0,0 +1,2 @@ +max_size = 0 +cache_dir_levels = 1 diff --git a/external/poky/meta/conf/conf-notes.txt b/external/poky/meta/conf/conf-notes.txt index f1a4f4da..5af13a83 100644 --- a/external/poky/meta/conf/conf-notes.txt +++ b/external/poky/meta/conf/conf-notes.txt @@ -9,4 +9,9 @@ Common targets are: meta-toolchain meta-ide-support -You can also run generated qemu images with a command like 'runqemu qemux86' +You can also run generated qemu images with a command like 'runqemu qemux86'. + +Other commonly useful commands are: + - 'devtool' and 'recipetool' handle common recipe tasks + - 'bitbake-layers' handles common layer tasks + - 'oe-pkgdata-util' handles common target package tasks diff --git a/external/poky/meta/conf/distro/defaultsetup.conf b/external/poky/meta/conf/distro/defaultsetup.conf index ca2f9178..66fd2465 100644 --- a/external/poky/meta/conf/distro/defaultsetup.conf +++ b/external/poky/meta/conf/distro/defaultsetup.conf @@ -1,7 +1,7 @@ include conf/distro/include/default-providers.inc include conf/distro/include/default-versions.inc include conf/distro/include/default-distrovars.inc -include conf/distro/include/world-broken.inc +include conf/distro/include/maintainers.inc TCMODE ?= "default" require conf/distro/include/tcmode-${TCMODE}.inc @@ -22,3 +22,6 @@ PACKAGE_CLASSES ?= "package_ipk" INHERIT_BLACKLIST = "blacklist" INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool" INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}" + +INIT_MANAGER ??= "none" +require conf/distro/include/init-manager-${INIT_MANAGER}.inc diff --git a/external/poky/meta/conf/distro/include/default-distrovars.inc b/external/poky/meta/conf/distro/include/default-distrovars.inc index f5ec6cef..433d4b66 100644 --- a/external/poky/meta/conf/distro/include/default-distrovars.inc +++ b/external/poky/meta/conf/distro/include/default-distrovars.inc @@ -10,17 +10,8 @@ LOCALE_UTF8_ONLY ?= "0" LOCALE_UTF8_IS_DEFAULT ?= "1" LOCALE_UTF8_IS_DEFAULT_class-nativesdk = "0" -DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11" -DISTRO_FEATURES_LIBC_DEFAULT ?= "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt \ - libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse \ - libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code \ - libc-memusage libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams \ - libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \ - libc-posix-wchar-io" -DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}" -DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}" -DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC}" - +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 ?= "" WHITELIST_GPL-3.0 ?= "" @@ -52,3 +43,9 @@ ARCH_DEFAULT_KERNELIMAGETYPE_x86 = "bzImage" ARCH_DEFAULT_KERNELIMAGETYPE_x86-64 = "bzImage" KERNEL_IMAGETYPE ??= "${ARCH_DEFAULT_KERNELIMAGETYPE}" KERNEL_IMAGETYPES ??= "${KERNEL_IMAGETYPE}" + +# The CONNECTIVITY_CHECK_URIS are used to test whether we can succesfully +# fetch from the network (and warn you if not). To disable the test set +# the variable to be empty. +# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master +CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/" diff --git a/external/poky/meta/conf/distro/include/default-providers.inc b/external/poky/meta/conf/distro/include/default-providers.inc index 019ceeb2..ea88bd48 100644 --- a/external/poky/meta/conf/distro/include/default-providers.inc +++ b/external/poky/meta/conf/distro/include/default-providers.inc @@ -5,6 +5,8 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/egl ?= "mesa" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgl-native ?= "mesa-native" +PREFERRED_PROVIDER_virtual/nativesdk-libgl ?= "nativesdk-mesa" PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" PREFERRED_PROVIDER_virtual/mesa ?= "mesa" @@ -42,8 +44,8 @@ PREFERRED_PROVIDER_opkg ?= "opkg" PREFERRED_PROVIDER_opkg-native ?= "opkg-native" PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg" PREFERRED_PROVIDER_console-tools ?= "kbd" +PREFERRED_PROVIDER_gzip-native ?= "pigz-native" PREFERRED_PROVIDER_udev ?= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','eudev',d)}" -PREFERRED_RPROVIDER_bluez-hcidump ?= "${@bb.utils.contains('DISTRO_FEATURES','bluetooth bluez5','bluez5','bluez-hcidump',d)}" # Alternative is ltp-ddt in meta-oe: meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_0.0.4.bb PREFERRED_PROVIDER_ltp ?= "ltp" PREFERRED_PROVIDER_getopt ?= "util-linux-getopt" @@ -54,3 +56,5 @@ PREFERRED_PROVIDER_pkgconfig ?= "pkgconfig" PREFERRED_PROVIDER_nativesdk-pkgconfig ?= "nativesdk-pkgconfig" PREFERRED_PROVIDER_pkgconfig-native ?= "pkgconfig-native" PREFERRED_RPROVIDER_initd-functions ?= "initscripts" + +PREFERRED_PROVIDER_nativesdk-mesa ?= "nativesdk-mesa" diff --git a/external/poky/meta/conf/distro/include/distro_alias.inc b/external/poky/meta/conf/distro/include/distro_alias.inc index 7502542e..0e4a9a9f 100644 --- a/external/poky/meta/conf/distro/include/distro_alias.inc +++ b/external/poky/meta/conf/distro/include/distro_alias.inc @@ -15,7 +15,8 @@ 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" @@ -43,9 +44,6 @@ DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-full-cmdline = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-kernel-dev = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb-dev = "OE-Core" -DISTRO_PN_ALIAS_pn-core-image-lsb-sdk = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal-dev = "OE-Core" DISTRO_PN_ALIAS_pn-core-image-minimal-initramfs = "OE-Core" @@ -80,8 +78,6 @@ DISTRO_PN_ALIAS_pn-docbook-xml-dtd4-native = "Ubuntu=docbook-xml Fedora=docbook- DISTRO_PN_ALIAS_pn-docbook-xsl-stylesheets = "Fedora=docbook-xsl-stylesheets Opensuse=docbook-xsl-stylesheets" DISTRO_PN_ALIAS_pn-dropbear = "Debian=dropbear Ubuntu=dropbear" DISTRO_PN_ALIAS_pn-dtc = "Fedora=dtc Ubuntu=dtc" -DISTRO_PN_ALIAS_pn-eglinfo-fb = "OE-Core" -DISTRO_PN_ALIAS_pn-eglinfo-x11 = "OE-Core" DISTRO_PN_ALIAS_pn-encodings = "Ubuntu=xfonts-encodings Mandriva=x11-font-encodings Debian=xfonts-encodings" 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" @@ -135,7 +131,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" @@ -181,7 +177,6 @@ DISTRO_PN_ALIAS_pn-libpcre2 = "Fedora=pcre2 Debian=pcre2 Clear=pcre2" DISTRO_PN_ALIAS_pn-libpng12 = "Debian=libpng12-0 Fedora=libpng" DISTRO_PN_ALIAS_pn-libpod-plainer-perl = "OSPDT" DISTRO_PN_ALIAS_pn-libsamplerate0 = "Meego=libsamplerate Fedora=libsamplerate OpenSuSE=libsamplerate Ubuntu=libsamplerate Mandriva=libsamplerate Debian=libsamplerate" -DISTRO_PN_ALIAS_pn-libsdl = "Fedora=SDL Opensuse=SDL" DISTRO_PN_ALIAS_pn-libsdl2 = "Fedora=sdl2 Opensuse=libsdl2 Ubuntu=libsdl2 Debian=libsdl2" DISTRO_PN_ALIAS_pn-libsndfile1 = "Meego=libsndfile Fedora=libsndfile OpenSuSE=libsndfile Ubuntu=libsndfile Mandriva=libsndfile Debian=libsndfile" DISTRO_PN_ALIAS_pn-libsoup-2.4 = "Meego=libsoup Fedora=libsoup OpenSuSE=libsoup Ubuntu=libsoup2.4 Mandriva=libsoup Debian=libsoup2.4" @@ -196,7 +191,6 @@ DISTRO_PN_ALIAS_pn-libxft = "Mandriva=libxft Debian=libxft2 Ubuntu=libxft2" DISTRO_PN_ALIAS_pn-libxi = "Ubuntu=libxi Fedora=libXi" DISTRO_PN_ALIAS_pn-libxkbcommon = "Fedora=libxkbcommon Debian=libxkbcommon" DISTRO_PN_ALIAS_pn-libxscrnsaver = "Fedora=libXScrnSaver Ubuntu=libxss1 Mandriva=libxscrnsaver" -DISTRO_PN_ALIAS_pn-libxxf86misc = "Mandriva=libxxf86misc Fedora=libXxf86misc" DISTRO_PN_ALIAS_pn-linux-dummy = "Intel" DISTRO_PN_ALIAS_pn-linux-firmware = "Fedora=linux-firmware Ubuntu=linux-firmware" DISTRO_PN_ALIAS_pn-linux-libc-headers = "Debian=linux-kernel-headers Ubuntu=linux-kernel-headers" @@ -204,8 +198,6 @@ DISTRO_PN_ALIAS_pn-linux-libc-headers-yocto = "Debian=linux-kernel-headers Ubunt DISTRO_PN_ALIAS_pn-linux-yocto = "Debian=linux-base Ubuntu=linux" DISTRO_PN_ALIAS_pn-linux-yocto-rt = "Debian=linux-base Ubuntu=linux" DISTRO_PN_ALIAS_pn-linux-yocto-tiny = "OSPDT" -DISTRO_PN_ALIAS_pn-lsbinitscripts = "Windriver" -DISTRO_PN_ALIAS_pn-lsbtest = "Windriver" DISTRO_PN_ALIAS_pn-ltp = "Mandriva=ltp Ubuntu=ltp" DISTRO_PN_ALIAS_pn-lttng-modules = "OSPDT upstream=http://lttng.org/" DISTRO_PN_ALIAS_pn-lttng-tools = "OSPDT upstream=http://lttng.org/" @@ -267,7 +259,6 @@ DISTRO_PN_ALIAS_pn-packagegroup-core-clutter = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-device-devel = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-eclipse-debug = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-full-cmdline = "OE-Core" -DISTRO_PN_ALIAS_pn-packagegroup-core-lsb = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-nfs = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-sdk = "OE-Core" DISTRO_PN_ALIAS_pn-packagegroup-core-ssh-dropbear = "OE-Core" @@ -354,7 +345,7 @@ DISTRO_PN_ALIAS_pn-tremor = "OSPDT upstream=http://www.xiph.org/vorbis/" DISTRO_PN_ALIAS_pn-ttf-bitstream-vera = "Debian=ttf-bitstream-vera Ubuntu=ttf-bitstream-vera" DISTRO_PN_ALIAS_pn-tzcode = "OSPDT" DISTRO_PN_ALIAS_pn-u-boot-fw-utils = "Ubuntu=u-boot-tools Debian=u-boot-tools" -DISTRO_PN_ALIAS_pn-u-boot-mkimage = "Ubuntu=uboot-mkimage Debian=uboot-mkimage" +DISTRO_PN_ALIAS_pn-u-boot-tools = "Ubuntu=u-boot-tools Debian=uboot-tools" DISTRO_PN_ALIAS_pn-udev = "Mandriva=udev Fedora=udev" DISTRO_PN_ALIAS_pn-udev-extraconf = "OE-Core" DISTRO_PN_ALIAS_pn-unfs3 = "Debian=unfs3 Fedora=unfs3" @@ -410,6 +401,5 @@ DISTRO_PN_ALIAS_pn-xserver-xf86-lite = "Fedora=xorg-x11-server Ubuntu=xserver-xo DISTRO_PN_ALIAS_pn-xserver-xorg = "Fedora=xorg-x11-server Ubuntu=xserver-xorg" DISTRO_PN_ALIAS_pn-xset = "Fedora=xorg-x11-server-utils Ubuntu=x11-xserver-utils Debian=x11-xserver-utils Opensuse=xorg-x11" DISTRO_PN_ALIAS_pn-xuser-account = "OE-Core" -DISTRO_PN_ALIAS_pn-xvideo-tests = "OpenedHand" DISTRO_PN_ALIAS_pn-xvinfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils" DISTRO_PN_ALIAS_pn-xwininfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils" diff --git a/external/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc b/external/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc new file mode 100644 index 00000000..4e3be14a --- /dev/null +++ b/external/poky/meta/conf/distro/include/init-manager-mdev-busybox.inc @@ -0,0 +1,7 @@ +# enable mdev/busybox for init +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " systemd sysvinit" +VIRTUAL-RUNTIME_dev_manager ??= "busybox-mdev" +VIRTUAL-RUNTIME_init_manager ??= "busybox" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_keymaps ??= "keymaps" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/external/poky/meta/conf/distro/include/init-manager-none.inc b/external/poky/meta/conf/distro/include/init-manager-none.inc new file mode 100644 index 00000000..bbedf898 --- /dev/null +++ b/external/poky/meta/conf/distro/include/init-manager-none.inc @@ -0,0 +1,3 @@ +VIRTUAL-RUNTIME_init_manager ??= "sysvinit" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/external/poky/meta/conf/distro/include/init-manager-systemd.inc b/external/poky/meta/conf/distro/include/init-manager-systemd.inc new file mode 100644 index 00000000..1558b852 --- /dev/null +++ b/external/poky/meta/conf/distro/include/init-manager-systemd.inc @@ -0,0 +1,6 @@ +# Use systemd for system initialization +DISTRO_FEATURES_append = " systemd" +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit" +VIRTUAL-RUNTIME_init_manager ??= "systemd" +VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" +VIRTUAL-RUNTIME_login_manager ??= "shadow-base" diff --git a/external/poky/meta/conf/distro/include/init-manager-sysvinit.inc b/external/poky/meta/conf/distro/include/init-manager-sysvinit.inc new file mode 100644 index 00000000..6b662d60 --- /dev/null +++ b/external/poky/meta/conf/distro/include/init-manager-sysvinit.inc @@ -0,0 +1,6 @@ +# Use sysvinit for system initialization +DISTRO_FEATURES_append = " sysvinit" +DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " systemd" +VIRTUAL-RUNTIME_init_manager ??= "sysvinit" +VIRTUAL-RUNTIME_initscripts ??= "initscripts" +VIRTUAL-RUNTIME_login_manager ??= "busybox" diff --git a/external/poky/meta/conf/distro/include/maintainers.inc b/external/poky/meta/conf/distro/include/maintainers.inc index c027901f..4570fac4 100644 --- a/external/poky/meta/conf/distro/include/maintainers.inc +++ b/external/poky/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,13 +28,15 @@ # Please keep this list in alphabetical order. # RECIPE_MAINTAINER_pn-acl = "Chen Qi " -RECIPE_MAINTAINER_pn-acpica = "Fathi Boudra " -RECIPE_MAINTAINER_pn-acpid = "Ross Burton " -RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton " +RECIPE_MAINTAINER_pn-acpica = "Ross Burton " +RECIPE_MAINTAINER_pn-acpid = "Ross Burton " +RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton " RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-alsa-plugins = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-alsa-state = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-alsa-tools = "Tanu Kaskinen " +RECIPE_MAINTAINER_pn-alsa-topology-conf = "Tanu Kaskinen " +RECIPE_MAINTAINER_pn-alsa-ucm-conf = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-alsa-utils = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-alsa-utils-scripts = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-apmd = "Anuj Mittal " @@ -47,9 +49,9 @@ RECIPE_MAINTAINER_pn-asciidoc = "Yi Zhao " RECIPE_MAINTAINER_pn-aspell = "Anuj Mittal " RECIPE_MAINTAINER_pn-assimp = "Anuj Mittal " RECIPE_MAINTAINER_pn-at = "Chen Qi " -RECIPE_MAINTAINER_pn-at-spi2-atk = "Anuj Mittal " -RECIPE_MAINTAINER_pn-at-spi2-core = "Anuj Mittal " -RECIPE_MAINTAINER_pn-atk = "Anuj Mittal " +RECIPE_MAINTAINER_pn-at-spi2-atk = "Tim Orling " +RECIPE_MAINTAINER_pn-at-spi2-core = "Tim Orling " +RECIPE_MAINTAINER_pn-atk = "Tim Orling " RECIPE_MAINTAINER_pn-attr = "Chen Qi " RECIPE_MAINTAINER_pn-autoconf = "Robert Yang " RECIPE_MAINTAINER_pn-autoconf-archive = "Robert Yang " @@ -57,6 +59,7 @@ RECIPE_MAINTAINER_pn-automake = "Robert Yang " RECIPE_MAINTAINER_pn-avahi = "Yi Zhao " RECIPE_MAINTAINER_pn-avahi-ui = "Yi Zhao " RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-babeltrace2 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-base-files = "Anuj Mittal " RECIPE_MAINTAINER_pn-base-passwd = "Anuj Mittal " RECIPE_MAINTAINER_pn-bash = "Hongxu Jia " @@ -64,9 +67,10 @@ RECIPE_MAINTAINER_pn-bash-completion = "Alexander Kanavin " RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie " RECIPE_MAINTAINER_pn-builder = "Richard Purdie " +RECIPE_MAINTAINER_pn-buildtools-extended-tarball = "Richard Purdie " RECIPE_MAINTAINER_pn-buildtools-tarball = "Richard Purdie " RECIPE_MAINTAINER_pn-busybox = "Andrej Valek " RECIPE_MAINTAINER_pn-busybox-inittab = "Denys Dmytriyenko " @@ -90,20 +95,35 @@ RECIPE_MAINTAINER_pn-cairo = "Anuj Mittal " RECIPE_MAINTAINER_pn-cantarell-fonts = "Alexander Kanavin " RECIPE_MAINTAINER_pn-ccache = "Robert Yang " RECIPE_MAINTAINER_pn-cdrtools-native = "Yi Zhao " -RECIPE_MAINTAINER_pn-chkconfig = "Yi Zhao " -RECIPE_MAINTAINER_pn-chkconfig-alternatives-native = "Yi Zhao " RECIPE_MAINTAINER_pn-chrpath = "Yi Zhao " -RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton " -RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Ross Burton " -RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton " +RECIPE_MAINTAINER_pn-clutter-1.0 = "Ross Burton " +RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Ross Burton " +RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Ross Burton " RECIPE_MAINTAINER_pn-cmake = "Pascal Bach " RECIPE_MAINTAINER_pn-cmake-native = "Pascal Bach " -RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton " -RECIPE_MAINTAINER_pn-connman = "Changhyeok Bae " -RECIPE_MAINTAINER_pn-connman-conf = "Ross Burton " -RECIPE_MAINTAINER_pn-connman-gnome = "Ross Burton " -RECIPE_MAINTAINER_pn-console-tools = "Chen Qi " +RECIPE_MAINTAINER_pn-cogl-1.0 = "Ross Burton " +RECIPE_MAINTAINER_pn-connman = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-connman-conf = "Ross Burton " +RECIPE_MAINTAINER_pn-connman-gnome = "Ross Burton " RECIPE_MAINTAINER_pn-consolekit = "Chen Qi " +RECIPE_MAINTAINER_pn-core-image-base = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-minimal = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-minimal-dev = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-minimal-initramfs = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-minimal-mtdutils = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-tiny-initramfs = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-full-cmdline = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-kernel-dev = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-sato = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-sato-sdk = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-testmaster = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-clutter = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-weston = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-x11 = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-sato-dev = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-sato-ptest-fast = "Richard Purdie " +RECIPE_MAINTAINER_pn-core-image-sato-sdk-ptest = "Richard Purdie " RECIPE_MAINTAINER_pn-coreutils = "Chen Qi " RECIPE_MAINTAINER_pn-cpio = "Denys Dmytriyenko " RECIPE_MAINTAINER_pn-cracklib = "Armin Kuster " @@ -115,18 +135,19 @@ RECIPE_MAINTAINER_pn-cryptodev-module = "Robert Yang RECIPE_MAINTAINER_pn-cryptodev-tests = "Robert Yang " RECIPE_MAINTAINER_pn-cups = "Chen Qi " RECIPE_MAINTAINER_pn-curl = "Armin Kuster " -RECIPE_MAINTAINER_pn-cve-check-tool = "Ross Burton " -RECIPE_MAINTAINER_pn-cve-update-db-native = "Ross Burton " -RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton " +RECIPE_MAINTAINER_pn-cve-update-db-native = "Ross Burton " +RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton " RECIPE_MAINTAINER_pn-db = "Mark Hatle " RECIPE_MAINTAINER_pn-dbus = "Chen Qi " RECIPE_MAINTAINER_pn-dbus-glib = "Chen Qi " RECIPE_MAINTAINER_pn-dbus-test = "Chen Qi " RECIPE_MAINTAINER_pn-dbus-wait = "Chen Qi " RECIPE_MAINTAINER_pn-debianutils = "Yi Zhao " +RECIPE_MAINTAINER_pn-dejagnu = "Nathan Rossi " RECIPE_MAINTAINER_pn-depmodwrapper-cross = "Mark Hatle " RECIPE_MAINTAINER_pn-desktop-file-utils = "Alexander Kanavin " RECIPE_MAINTAINER_pn-dhcp = "Hongxu Jia " +RECIPE_MAINTAINER_pn-diffoscope = "Joshua Watt " RECIPE_MAINTAINER_pn-diffstat = "Chen Qi " RECIPE_MAINTAINER_pn-diffutils = "Chen Qi " RECIPE_MAINTAINER_pn-distcc = "Hongxu Jia " @@ -143,13 +164,14 @@ RECIPE_MAINTAINER_pn-dtc = "Alexander Kanavin " RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin " RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang " RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-eglinfo-fb = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-eglinfo-x11 = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-efivar = "Ross Burton " +RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton " RECIPE_MAINTAINER_pn-elfutils = "Hongxu Jia " -RECIPE_MAINTAINER_pn-enchant = "Anuj Mittal " +RECIPE_MAINTAINER_pn-ell = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal " RECIPE_MAINTAINER_pn-encodings = "Armin Kuster " RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-ethtool = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-ethtool = "Changhyeok Bae " RECIPE_MAINTAINER_pn-eudev = "Anuj Mittal " RECIPE_MAINTAINER_pn-expat = "Yi Zhao " RECIPE_MAINTAINER_pn-expect = "Alexander Kanavin " @@ -160,30 +182,26 @@ RECIPE_MAINTAINER_pn-flac = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-flex = "Chen Qi " RECIPE_MAINTAINER_pn-font-alias = "Armin Kuster " RECIPE_MAINTAINER_pn-font-util = "Armin Kuster " -RECIPE_MAINTAINER_pn-fontconfig = "Ross Burton " -RECIPE_MAINTAINER_pn-foomatic-filters = "Chen Qi " -RECIPE_MAINTAINER_pn-formfactor = "Ross Burton " -RECIPE_MAINTAINER_pn-freetype = "Ross Burton " -RECIPE_MAINTAINER_pn-fribidi = "Ross Burton " +RECIPE_MAINTAINER_pn-fontconfig = "Ross Burton " +RECIPE_MAINTAINER_pn-formfactor = "Ross Burton " +RECIPE_MAINTAINER_pn-freetype = "Ross Burton " +RECIPE_MAINTAINER_pn-fribidi = "Ross Burton " RECIPE_MAINTAINER_pn-fts = "Khem Raj " RECIPE_MAINTAINER_pn-gawk = "Chen Qi " RECIPE_MAINTAINER_pn-gcc = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-cross = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-cross-canadian = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-cross-initial = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-crosssdk = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-crosssdk-initial = "Khem Raj " +RECIPE_MAINTAINER_pn-gcc-cross-${TARGET_ARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj " RECIPE_MAINTAINER_pn-gcc-runtime = "Khem Raj " RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj " -RECIPE_MAINTAINER_pn-gcc-source = "Khem Raj " -RECIPE_MAINTAINER_pn-gccmakedep = "Khem Raj " -RECIPE_MAINTAINER_pn-gconf = "Ross Burton " +RECIPE_MAINTAINER_pn-gcc-source-9.3.0 = "Khem Raj " +RECIPE_MAINTAINER_pn-gconf = "Ross Burton " RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin " RECIPE_MAINTAINER_pn-gdb = "Khem Raj " -RECIPE_MAINTAINER_pn-gdb-cross = "Khem Raj " -RECIPE_MAINTAINER_pn-gdb-cross-canadian = "Khem Raj " +RECIPE_MAINTAINER_pn-gdb-cross-${TARGET_ARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj " RECIPE_MAINTAINER_pn-gdbm = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-gdk-pixbuf = "Ross Burton " +RECIPE_MAINTAINER_pn-gdk-pixbuf = "Ross Burton " RECIPE_MAINTAINER_pn-gettext = "Robert Yang " RECIPE_MAINTAINER_pn-gettext-minimal-native = "Robert Yang " RECIPE_MAINTAINER_pn-ghostscript = "Hongxu Jia " @@ -192,23 +210,25 @@ RECIPE_MAINTAINER_pn-glew = "Anuj Mittal " RECIPE_MAINTAINER_pn-glib-2.0 = "Anuj Mittal " RECIPE_MAINTAINER_pn-glib-networking = "Anuj Mittal " RECIPE_MAINTAINER_pn-glibc = "Khem Raj " -RECIPE_MAINTAINER_pn-glibc-initial = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-locale = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-mtrace = "Khem Raj " RECIPE_MAINTAINER_pn-glibc-scripts = "Khem Raj " +RECIPE_MAINTAINER_pn-glibc-testsuite = "Khem Raj " RECIPE_MAINTAINER_pn-glide = "Otavio Salvador " RECIPE_MAINTAINER_pn-gmp = "Khem Raj " -RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Ross Burton " -RECIPE_MAINTAINER_pn-gnome-themes-standard = "Ross Burton " +RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Ross Burton " RECIPE_MAINTAINER_pn-gnu-config = "Robert Yang " RECIPE_MAINTAINER_pn-gnu-efi = "Yi Zhao " RECIPE_MAINTAINER_pn-gnupg = "Hongxu Jia " RECIPE_MAINTAINER_pn-gnutls = "Armin Kuster " RECIPE_MAINTAINER_pn-go = "Khem Raj " -RECIPE_MAINTAINER_pn-go-cross = "Khem Raj " +RECIPE_MAINTAINER_pn-go-cross-${TUNE_PKGARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-go-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj " +RECIPE_MAINTAINER_pn-go-crosssdk-${SDK_SYS} = "Khem Raj " RECIPE_MAINTAINER_pn-go-dep = "Otavio Salvador " RECIPE_MAINTAINER_pn-go-helloworld = "Khem Raj " RECIPE_MAINTAINER_pn-go-native = "Khem Raj " +RECIPE_MAINTAINER_pn-go-runtime = "Khem Raj " RECIPE_MAINTAINER_pn-gobject-introspection = "Alexander Kanavin " RECIPE_MAINTAINER_pn-gperf = "Alexander Kanavin " RECIPE_MAINTAINER_pn-gpgme = "Hongxu Jia " @@ -232,10 +252,8 @@ RECIPE_MAINTAINER_pn-gstreamer1.0-plugins-ugly = "Anuj Mittal " RECIPE_MAINTAINER_pn-initscripts = "Anuj Mittal " RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae " -RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae " -RECIPE_MAINTAINER_pn-iputils = "Changhyeok Bae " -RECIPE_MAINTAINER_pn-irda-utils = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-iputils = "Changhyeok Bae " RECIPE_MAINTAINER_pn-iso-codes = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae " +RECIPE_MAINTAINER_pn-itstool = "Andreas Müller " +RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae " RECIPE_MAINTAINER_pn-libjpeg-turbo = "Anuj Mittal " RECIPE_MAINTAINER_pn-json-c = "Yi Zhao " RECIPE_MAINTAINER_pn-json-glib = "Yi Zhao " +RECIPE_MAINTAINER_pn-jquery = "Joshua Watt " RECIPE_MAINTAINER_pn-kbd = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-kern-tools-native = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-kernel-devsrc = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-kern-tools-native = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-kernel-devsrc = "Bruce Ashfield " RECIPE_MAINTAINER_pn-kexec-tools = "Armin Kuster " RECIPE_MAINTAINER_pn-keymaps = "Alexander Kanavin " RECIPE_MAINTAINER_pn-kmod = "Chen Qi " @@ -282,21 +302,23 @@ RECIPE_MAINTAINER_pn-liba52 = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libacpi = "Anuj Mittal " RECIPE_MAINTAINER_pn-libaio = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libarchive = "Otavio Salvador " -RECIPE_MAINTAINER_pn-libart-lgpl = "Anuj Mittal " RECIPE_MAINTAINER_pn-libassuan = "Armin Kuster " RECIPE_MAINTAINER_pn-libatomic-ops = "Anuj Mittal " RECIPE_MAINTAINER_pn-libbsd = "Yi Zhao " RECIPE_MAINTAINER_pn-libcap = "Yi Zhao " RECIPE_MAINTAINER_pn-libcap-ng = "Yi Zhao " +RECIPE_MAINTAINER_pn-libcap-ng-python = "Yi Zhao " RECIPE_MAINTAINER_pn-libcgroup = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libcheck = "Yi Zhao " RECIPE_MAINTAINER_pn-libcomps = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libcroco = "Anuj Mittal " RECIPE_MAINTAINER_pn-libdaemon = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libdazzle = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libdmx = "Armin Kuster " RECIPE_MAINTAINER_pn-libdnf = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libdrm = "Otavio Salvador " +RECIPE_MAINTAINER_pn-libedit = "Khem Raj " RECIPE_MAINTAINER_pn-libepoxy = "Anuj Mittal " RECIPE_MAINTAINER_pn-liberation-fonts = "Alexander Kanavin " RECIPE_MAINTAINER_pn-liberror-perl = "Tim Orling " @@ -313,21 +335,22 @@ RECIPE_MAINTAINER_pn-libgcc-initial = "Khem Raj " RECIPE_MAINTAINER_pn-libgcrypt = "Hongxu Jia " RECIPE_MAINTAINER_pn-libgfortran = "Khem Raj " RECIPE_MAINTAINER_pn-libgloss = "Alejandro Hernandez " -RECIPE_MAINTAINER_pn-libglu = "Ross Burton " +RECIPE_MAINTAINER_pn-libglu = "Ross Burton " RECIPE_MAINTAINER_pn-libgpg-error = "Hongxu Jia " -RECIPE_MAINTAINER_pn-libgudev = "Ross Burton " -RECIPE_MAINTAINER_pn-libical = "Ross Burton " +RECIPE_MAINTAINER_pn-libgudev = "Ross Burton " +RECIPE_MAINTAINER_pn-libical = "Ross Burton " RECIPE_MAINTAINER_pn-libice = "Armin Kuster " RECIPE_MAINTAINER_pn-libid3tag = "Tanu Kaskinen " -RECIPE_MAINTAINER_pn-libidn = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-libidn2 = "Ross Burton " -RECIPE_MAINTAINER_pn-libinput = "Ross Burton " +RECIPE_MAINTAINER_pn-libidn2 = "Ross Burton " +RECIPE_MAINTAINER_pn-libinput = "Ross Burton " +RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton " RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton " +RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton " RECIPE_MAINTAINER_pn-libmnl = "Khem Raj " RECIPE_MAINTAINER_pn-libmpc = "Khem Raj " +RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling " +RECIPE_MAINTAINER_pn-libmodulemd-v1 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia " -RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia " RECIPE_MAINTAINER_pn-libnl = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libnotify = "Anuj Mittal " RECIPE_MAINTAINER_pn-libnsl2 = "Khem Raj " @@ -344,16 +367,17 @@ RECIPE_MAINTAINER_pn-libpipeline = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libpng = "Anuj Mittal " RECIPE_MAINTAINER_pn-libproxy = "Anuj Mittal " RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal " RECIPE_MAINTAINER_pn-librepo = "Alexander Kanavin " RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal " RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen " -RECIPE_MAINTAINER_pn-libsdl = "Yi Zhao " RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao " RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libsm = "Armin Kuster " RECIPE_MAINTAINER_pn-libsndfile1 = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libsolv = "Anuj Mittal " RECIPE_MAINTAINER_pn-libsoup-2.4 = "Anuj Mittal " +RECIPE_MAINTAINER_pn-libssp-nonshared = "Khem Raj " RECIPE_MAINTAINER_pn-libtasn1 = "Anuj Mittal " RECIPE_MAINTAINER_pn-libtest-needs-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libtheora = "Alexander Kanavin " @@ -362,21 +386,25 @@ RECIPE_MAINTAINER_pn-libtirpc = "Anuj Mittal " RECIPE_MAINTAINER_pn-libtool = "Robert Yang " RECIPE_MAINTAINER_pn-libtool-cross = "Robert Yang " RECIPE_MAINTAINER_pn-libtool-native = "Robert Yang " +RECIPE_MAINTAINER_pn-libucontext = "Khem Raj " RECIPE_MAINTAINER_pn-libunistring = "Anuj Mittal " -RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield " RECIPE_MAINTAINER_pn-liburcu = "Alexander Kanavin " RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal " +RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic " RECIPE_MAINTAINER_pn-libva = "Anuj Mittal " RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal " RECIPE_MAINTAINER_pn-libvorbis = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libwpe = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster " -RECIPE_MAINTAINER_pn-libx11-diet = "Armin Kuster " RECIPE_MAINTAINER_pn-libxau = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcb = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcomposite = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcursor = "Armin Kuster " +RECIPE_MAINTAINER_pn-libxcrypt = "Khem Raj " +RECIPE_MAINTAINER_pn-libxcrypt-compat = "Khem Raj " RECIPE_MAINTAINER_pn-libxdamage = "Armin Kuster " RECIPE_MAINTAINER_pn-libxdmcp = "Armin Kuster " RECIPE_MAINTAINER_pn-libxext = "Armin Kuster " @@ -407,25 +435,21 @@ RECIPE_MAINTAINER_pn-libxt = "Armin Kuster " RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster " RECIPE_MAINTAINER_pn-libxv = "Armin Kuster " RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster " -RECIPE_MAINTAINER_pn-libxxf86dga = "Armin Kuster " -RECIPE_MAINTAINER_pn-libxxf86misc = "Armin Kuster " RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster " RECIPE_MAINTAINER_pn-libyaml = "Alexander Kanavin " RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-linux-dummy = "Alexander Kanavin " RECIPE_MAINTAINER_pn-linux-firmware = "Otavio Salvador " -RECIPE_MAINTAINER_pn-linux-libc-headers = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-linux-yocto = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-linux-yocto-dev = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-linux-yocto-rt = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-linux-yocto-tiny = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-linux-libc-headers = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-linux-yocto = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-linux-yocto-dev = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-linux-yocto-rt = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-linux-yocto-tiny = "Bruce Ashfield " RECIPE_MAINTAINER_pn-llvm = "Khem Raj " RECIPE_MAINTAINER_pn-logrotate = "Yi Zhao " RECIPE_MAINTAINER_pn-lrzsz = "Anuj Mittal " -RECIPE_MAINTAINER_pn-lsb = "Hongxu Jia " -RECIPE_MAINTAINER_pn-lsbinitscripts = "Ross Burton " -RECIPE_MAINTAINER_pn-lsbtest = "Yi Zhao " -RECIPE_MAINTAINER_pn-lsof = "Ross Burton " +RECIPE_MAINTAINER_pn-lsb-release = "Hongxu Jia " +RECIPE_MAINTAINER_pn-lsof = "Ross Burton " RECIPE_MAINTAINER_pn-ltp = "Yi Zhao " RECIPE_MAINTAINER_pn-lttng-modules = "Richard Purdie " RECIPE_MAINTAINER_pn-lttng-tools = "Richard Purdie " @@ -439,35 +463,35 @@ RECIPE_MAINTAINER_pn-m4-native = "Robert Yang " RECIPE_MAINTAINER_pn-make = "Robert Yang " RECIPE_MAINTAINER_pn-makedepend = "Robert Yang " RECIPE_MAINTAINER_pn-makedevs = "Chen Qi " -RECIPE_MAINTAINER_pn-make-mod-scripts = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-make-mod-scripts = "Bruce Ashfield " RECIPE_MAINTAINER_pn-man-db = "Hongxu Jia " RECIPE_MAINTAINER_pn-man-pages = "Hongxu Jia " -RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-desktop = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-keyboard = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-panel-2 = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-session = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-session-sato = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-terminal = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-theme-sato = "Ross Burton " -RECIPE_MAINTAINER_pn-matchbox-wm = "Ross Burton " -RECIPE_MAINTAINER_pn-mc = "Ross Burton " -RECIPE_MAINTAINER_pn-mdadm = "Ross Burton " -RECIPE_MAINTAINER_pn-menu-cache = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-config-gtk = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-desktop = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-keyboard = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-panel-2 = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-session = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-session-sato = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-terminal = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-theme-sato = "Ross Burton " +RECIPE_MAINTAINER_pn-matchbox-wm = "Ross Burton " +RECIPE_MAINTAINER_pn-mc = "Ross Burton " +RECIPE_MAINTAINER_pn-mdadm = "Ross Burton " +RECIPE_MAINTAINER_pn-menu-cache = "Ross Burton " RECIPE_MAINTAINER_pn-mesa = "Otavio Salvador " RECIPE_MAINTAINER_pn-mesa-demos = "Otavio Salvador " RECIPE_MAINTAINER_pn-mesa-gl = "Otavio Salvador " RECIPE_MAINTAINER_pn-meson = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-meta-environment = "Richard Purdie " -RECIPE_MAINTAINER_pn-meta-environment-extsdk = "Richard Purdie " +RECIPE_MAINTAINER_pn-meta-environment-${MACHINE} = "Richard Purdie " +RECIPE_MAINTAINER_pn-meta-environment-extsdk-${MACHINE} = "Richard Purdie " RECIPE_MAINTAINER_pn-meta-extsdk-toolchain = "Richard Purdie " +RECIPE_MAINTAINER_pn-meta-go-toolchain = "Richard Purdie " RECIPE_MAINTAINER_pn-meta-ide-support = "Richard Purdie " RECIPE_MAINTAINER_pn-meta-toolchain = "Richard Purdie " RECIPE_MAINTAINER_pn-meta-world-pkgdata = "Richard Purdie " RECIPE_MAINTAINER_pn-mingetty = "Yi Zhao " RECIPE_MAINTAINER_pn-mini-x-session = "Armin Kuster " RECIPE_MAINTAINER_pn-minicom = "Anuj Mittal " -RECIPE_MAINTAINER_pn-mkfontdir = "Armin Kuster " RECIPE_MAINTAINER_pn-mkfontscale = "Armin Kuster " RECIPE_MAINTAINER_pn-mklibs-native = "Robert Yang " RECIPE_MAINTAINER_pn-mmc-utils = "Anuj Mittal " @@ -481,13 +505,17 @@ RECIPE_MAINTAINER_pn-mtd-utils = "Denys Dmytriyenko " RECIPE_MAINTAINER_pn-mtdev = "Anuj Mittal " RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal " RECIPE_MAINTAINER_pn-musl = "Khem Raj " +RECIPE_MAINTAINER_pn-musl-obstack = "Khem Raj " RECIPE_MAINTAINER_pn-musl-utils = "Khem Raj " RECIPE_MAINTAINER_pn-mx-1.0 = "Anuj Mittal " RECIPE_MAINTAINER_pn-nasm = "Richard Purdie " RECIPE_MAINTAINER_pn-nativesdk-buildtools-perl-dummy = "Richard Purdie " +RECIPE_MAINTAINER_pn-nativesdk-icecc-toolchain = "Joshua Watt " RECIPE_MAINTAINER_pn-nativesdk-libtool = "Richard Purdie " -RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton " +RECIPE_MAINTAINER_pn-nativesdk-meson = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton " RECIPE_MAINTAINER_pn-nativesdk-qemu-helper = "Richard Purdie " +RECIPE_MAINTAINER_pn-nativesdk-sdk-provides-dummy = "Richard Purdie " RECIPE_MAINTAINER_pn-newlib = "Alejandro Hernandez " RECIPE_MAINTAINER_pn-ncurses = "Hongxu Jia " RECIPE_MAINTAINER_pn-neard = "Anuj Mittal " @@ -498,40 +526,37 @@ RECIPE_MAINTAINER_pn-nfs-export-root = "Robert Yang " RECIPE_MAINTAINER_pn-nfs-utils = "Robert Yang " RECIPE_MAINTAINER_pn-ninja = "Khem Raj " RECIPE_MAINTAINER_pn-npth = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-nspr = "Armin Kuster " -RECIPE_MAINTAINER_pn-nss = "Armin Kuster " RECIPE_MAINTAINER_pn-nss-myhostname = "Anuj Mittal " -RECIPE_MAINTAINER_pn-ofono = "Ross Burton " +RECIPE_MAINTAINER_pn-ofono = "Ross Burton " +RECIPE_MAINTAINER_pn-opensbi = "Alistair Francis " RECIPE_MAINTAINER_pn-openssh = "Armin Kuster " RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-openssl10 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-opkg = "Alejandro del Castillo " RECIPE_MAINTAINER_pn-opkg-arch-config = "Alejandro del Castillo " RECIPE_MAINTAINER_pn-opkg-keyrings = "Alejandro del Castillo " RECIPE_MAINTAINER_pn-opkg-utils = "Alejandro del Castillo " RECIPE_MAINTAINER_pn-orc = "Anuj Mittal " -RECIPE_MAINTAINER_pn-os-release = "Ross Burton " +RECIPE_MAINTAINER_pn-os-release = "Ross Burton " RECIPE_MAINTAINER_pn-ovmf = "Ricardo Neri " RECIPE_MAINTAINER_pn-ovmf-shell-image = "Ricardo Neri " RECIPE_MAINTAINER_pn-p11-kit = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-package-index = "Ross Burton " -RECIPE_MAINTAINER_pn-pango = "Ross Burton " +RECIPE_MAINTAINER_pn-package-index = "Ross Burton " +RECIPE_MAINTAINER_pn-pango = "Ross Burton " RECIPE_MAINTAINER_pn-parted = "Hongxu Jia " RECIPE_MAINTAINER_pn-patch = "Hongxu Jia " RECIPE_MAINTAINER_pn-patchelf = "Richard Purdie " RECIPE_MAINTAINER_pn-pbzip2 = "Denys Dmytriyenko " RECIPE_MAINTAINER_pn-pciutils = "Chen Qi " RECIPE_MAINTAINER_pn-pcmanfm = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-perf = "Bruce Ashfield " -RECIPE_MAINTAINER_pn-perl = "Ross Burton " -RECIPE_MAINTAINER_pn-perl-native = "Ross Burton " -RECIPE_MAINTAINER_pn-piglit = "Ross Burton " +RECIPE_MAINTAINER_pn-perf = "Bruce Ashfield " +RECIPE_MAINTAINER_pn-perl = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-piglit = "Ross Burton " RECIPE_MAINTAINER_pn-pigz = "Hongxu Jia " RECIPE_MAINTAINER_pn-pinentry = "Armin Kuster " RECIPE_MAINTAINER_pn-pixman = "Anuj Mittal " -RECIPE_MAINTAINER_pn-pkgconf = "Ross Burton " -RECIPE_MAINTAINER_pn-pkgconfig = "Ross Burton " -RECIPE_MAINTAINER_pn-pm-utils = "Ross Burton " +RECIPE_MAINTAINER_pn-pkgconf = "Ross Burton " +RECIPE_MAINTAINER_pn-pkgconfig = "Ross Burton " +RECIPE_MAINTAINER_pn-pm-utils = "Ross Burton " RECIPE_MAINTAINER_pn-pointercal-xinput = "Alexander Kanavin " RECIPE_MAINTAINER_pn-pong-clock = "Anuj Mittal " RECIPE_MAINTAINER_pn-popt = "Yi Zhao " @@ -543,41 +568,42 @@ RECIPE_MAINTAINER_pn-procps = "Alexander Kanavin " RECIPE_MAINTAINER_pn-pseudo = "Mark Hatle " RECIPE_MAINTAINER_pn-psmisc = "Alexander Kanavin " RECIPE_MAINTAINER_pn-psplash = "Yi Zhao " -RECIPE_MAINTAINER_pn-ptest-runner = "Ross Burton " +RECIPE_MAINTAINER_pn-ptest-runner = "Ross Burton " RECIPE_MAINTAINER_pn-pulseaudio = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-puzzles = "Anuj Mittal " -RECIPE_MAINTAINER_pn-python = "Derek Straka " -RECIPE_MAINTAINER_pn-python-native = "Derek Straka " -RECIPE_MAINTAINER_pn-python-nose = "Derek Straka " -RECIPE_MAINTAINER_pn-python-numpy = "Derek Straka " -RECIPE_MAINTAINER_pn-python-scons = "Derek Straka " -RECIPE_MAINTAINER_pn-python-scons-native = "Derek Straka " -RECIPE_MAINTAINER_pn-python-setuptools = "Derek Straka " -RECIPE_MAINTAINER_pn-python3 = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-async = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-dbus = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-docutils = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-extras = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-file-utils = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-git = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-gitdb = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-iniparse = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-mako = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-native = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-nose = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-numpy = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-pbr = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-pip = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-pycairo = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-pygobject = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-setuptools = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-six = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-smmap = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-subunit = "Derek Straka " -RECIPE_MAINTAINER_pn-python3-testtools = "Derek Straka " +RECIPE_MAINTAINER_pn-python3 = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-dbus = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt " +RECIPE_MAINTAINER_pn-python3-pycryptodomex = "Joshua Watt " +RECIPE_MAINTAINER_pn-python3-extras = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-git = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-gitdb = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-iniparse = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-libarchive-c = "Joshua Watt " +RECIPE_MAINTAINER_pn-python3-magic = "Joshua Watt " +RECIPE_MAINTAINER_pn-python3-mako = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-numpy = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pbr = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pip = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pycairo = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt " +RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-pygobject = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling " +RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-six = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-testtools = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-qemu = "Richard Purdie " RECIPE_MAINTAINER_pn-qemu-helper-native = "Richard Purdie " +RECIPE_MAINTAINER_pn-qemu-native = "Richard Purdie " +RECIPE_MAINTAINER_pn-qemu-system-native = "Richard Purdie " RECIPE_MAINTAINER_pn-qemuwrapper-cross = "Richard Purdie " RECIPE_MAINTAINER_pn-quilt = "Robert Yang " RECIPE_MAINTAINER_pn-quilt-native = "Robert Yang " @@ -592,10 +618,10 @@ RECIPE_MAINTAINER_pn-rpcsvc-proto = "Khem Raj " RECIPE_MAINTAINER_pn-rpm = "Mark Hatle " RECIPE_MAINTAINER_pn-rsync = "Yi Zhao " RECIPE_MAINTAINER_pn-rt-tests = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-ruby = "Ross Burton " -RECIPE_MAINTAINER_pn-run-postinsts = "Ross Burton " +RECIPE_MAINTAINER_pn-ruby = "Ross Burton " +RECIPE_MAINTAINER_pn-run-postinsts = "Ross Burton " RECIPE_MAINTAINER_pn-rxvt-unicode = "Armin Kuster " -RECIPE_MAINTAINER_pn-sato-screenshot = "Ross Burton " +RECIPE_MAINTAINER_pn-sato-screenshot = "Ross Burton " RECIPE_MAINTAINER_pn-sbc = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-screen = "Anuj Mittal " RECIPE_MAINTAINER_pn-sed = "Chen Qi " @@ -610,21 +636,19 @@ RECIPE_MAINTAINER_pn-shutdown-desktop = "Alexander Kanavin = "" -# RECIPE_UPSTREAM_DATE_pn- = "Mmm dd, YYYY" -# - This is the latest upstream version and date -# RECIPE_NO_UPDATE_REASON_pn- = "" -# - Used to note why a recipe should not be upgraded to a newer versoin -# CHECK_DATE_pn- = "Mmm dd, YYYY" -# - This is the date that upstream was last manually checked over time -# this should be removed as we automate this checking -# -# These entries will slowly be removed as we can automatically determine -# the information in this file. So for existing recipes that we can get -# from the Recipe reporting system, the entries here can be removed. -# diff --git a/external/poky/meta/conf/distro/include/world-broken.inc b/external/poky/meta/conf/distro/include/world-broken.inc deleted file mode 100644 index 42cacfdf..00000000 --- a/external/poky/meta/conf/distro/include/world-broken.inc +++ /dev/null @@ -1,27 +0,0 @@ -# -# Exclude known broken packages -# - -# rt-tests needs PI mutex support in libc -EXCLUDE_FROM_WORLD_pn-rt-tests_libc-musl = "1" - -# error: use of undeclared identifier '_STAT_VER' -EXCLUDE_FROM_WORLD_pn-pseudo_libc-musl = "1" - -# error: error.h: No such file or directory -EXCLUDE_FROM_WORLD_pn-prelink_libc-musl = "1" - -# error: obstack.h: No such file or directory -EXCLUDE_FROM_WORLD_pn-systemtap_libc-musl = "1" -EXCLUDE_FROM_WORLD_pn-systemtap-uprobes_libc-musl = "1" - -# error: a parameter list without types is only allowed in a function definition -# void (*_function)(sigval_t); -EXCLUDE_FROM_WORLD_pn-qemu_libc-musl = "1" - -# error: format '%s' expects argument of type 'char *', but argument 4 has type 'int' [-Werror=format=] -# snprintf(buf, size, "%s", strerror_r(err, sbuf, sizeof(sbuf))); -EXCLUDE_FROM_WORLD_pn-perf_libc-musl = "1" - -# error: 'RTLD_NEXT' was not declared in this scope -EXCLUDE_FROM_WORLD_pn-gcc-sanitizers_libc-musl = "1" diff --git a/external/poky/meta/conf/distro/include/yocto-uninative.inc b/external/poky/meta/conf/distro/include/yocto-uninative.inc index ad75d3e2..889695ea 100644 --- a/external/poky/meta/conf/distro/include/yocto-uninative.inc +++ b/external/poky/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.31" -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.8/" +UNINATIVE_CHECKSUM[aarch64] ?= "989187344bf9539b464fb7ed9c223e51f4bdb4c7a677d2c314e6fed393176efe" +UNINATIVE_CHECKSUM[i686] ?= "cc3e45bc8594488b407363e3fa9af5a099279dab2703c64342098719bd674990" +UNINATIVE_CHECKSUM[x86_64] ?= "a09922172c3a439105e0ae6b943daad2d83505b17da0aba97961ff433b8c21ab" diff --git a/external/poky/meta/conf/documentation.conf b/external/poky/meta/conf/documentation.conf index fc6d0088..b48cbd4a 100644 --- a/external/poky/meta/conf/documentation.conf +++ b/external/poky/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 @@ -125,7 +130,7 @@ D[doc] = "The destination directory." DATE[doc] = "The date the build was started using YMD format." DATETIME[doc] = "The date and time the build was started." DEBUG_BUILD[doc] = "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable." -DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe'." +DEBUG_OPTIMIZATION[doc] = "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-Og ${DEBUG_FLAGS} -pipe'." DEFAULT_PREFERENCE[doc] = "Specifies a weak bias for recipe selection priority." DEPENDS[doc] = "Lists a recipe's build-time dependencies (i.e. other recipe files)." DEPLOY_DIR[doc] = "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system." @@ -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." @@ -346,7 +350,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 +398,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." @@ -413,7 +418,7 @@ TARGET_FPU[doc] = "Specifies the method for handling FPU code. For FPU-less targ TARGET_OS[doc] = "Specifies the target's operating system." TARGET_PREFIX[doc] = "The prefix for the cross-compile toolchain (e.g. arm-linux-)." TARGET_SYS[doc] = "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS." -TCLIBC[doc] = "Specifies C library (libc) variant to use during the build process. You can select 'baremetal', 'glibc' or 'musl'." +TCLIBC[doc] = "Specifies C library (libc) variant to use during the build process. You can select 'baremetal', 'glibc', 'musl' or 'newlib'." TCMODE[doc] = "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'." TESTIMAGE_AUTO[doc] = "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images each time an image is built." TEST_QEMUBOOT_TIMEOUT[doc] = "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image." diff --git a/external/poky/meta/conf/image-uefi.conf b/external/poky/meta/conf/image-uefi.conf new file mode 100644 index 00000000..aaeff12c --- /dev/null +++ b/external/poky/meta/conf/image-uefi.conf @@ -0,0 +1,16 @@ +# Location of EFI files inside EFI System Partition +EFIDIR ?= "/EFI/BOOT" + +# Prefix where ESP is mounted inside rootfs. Set to empty if package is going +# to be installed to ESP directly +EFI_PREFIX ?= "/boot" + +# Location inside rootfs. +EFI_FILES_PATH = "${EFI_PREFIX}${EFIDIR}" + +# Determine name of bootloader image +EFI_BOOT_IMAGE ?= "bootINVALID.efi" +EFI_BOOT_IMAGE_x86-64 = "bootx64.efi" +EFI_BOOT_IMAGE_x86 = "bootia32.efi" +EFI_BOOT_IMAGE_aarch64 = "bootaa64.efi" +EFI_BOOT_IMAGE_arm = "bootarm.efi" diff --git a/external/poky/meta/conf/layer.conf b/external/poky/meta/conf/layer.conf index c67dec49..0249f21d 100644 --- a/external/poky/meta/conf/layer.conf +++ b/external/poky/meta/conf/layer.conf @@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core" BBFILE_PATTERN_core = "^${LAYERDIR}/" BBFILE_PRIORITY_core = "5" -LAYERSERIES_CORENAMES = "thud" +LAYERSERIES_CORENAMES = "dunfell" # This should only be incremented on significant changes that will # cause compatibility issues with other layers -LAYERVERSION_core = "11" -LAYERSERIES_COMPAT_core = "thud" +LAYERVERSION_core = "12" +LAYERSERIES_COMPAT_core = "dunfell" BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core" @@ -43,15 +43,15 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \ opkg-utils \ gstreamer1.0-meta-base \ ca-certificates \ + shared-mime-info \ + desktop-file-utils \ " SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ *->quilt-native \ *->subversion-native \ *->git-native \ - *->ccache-native \ *->icecc-create-env-native \ - gcc-cross-${TARGET_ARCH}->virtual/${TARGET_PREFIX}libc-for-gcc \ gcc-cross-${TARGET_ARCH}->linux-libc-headers \ ppp-dialin->ppp \ resolvconf->bash \ @@ -71,13 +71,16 @@ 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 \ systemd->systemd-conf \ - weston->weston-conf \ + weston->weston-init \ weston-init->weston \ weston-init->kbd \ + connman->xl2tpd \ + lttng-tools->lttng-modules \ " # Avoid adding bison-native to the sysroot without a specific diff --git a/external/poky/meta/conf/licenses.conf b/external/poky/meta/conf/licenses.conf index 1058084d..751424d1 100644 --- a/external/poky/meta/conf/licenses.conf +++ b/external/poky/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 += "Elfutils-Exception 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. @@ -188,5 +147,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/external/poky/meta/conf/machine/include/arm/arch-armv4.inc b/external/poky/meta/conf/machine/include/arm/arch-armv4.inc index 813ed159..47a7ad28 100644 --- a/external/poky/meta/conf/machine/include/arm/arch-armv4.inc +++ b/external/poky/meta/conf/machine/include/arm/arch-armv4.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv4" TUNEVALID[arm] = "Enable ARM instruction set" TUNEVALID[armv4] = "Enable instructions for ARMv4" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4t', '', d)}" # enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb # maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does # checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc b/external/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc index 1f16085f..d117af15 100644 --- a/external/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc +++ b/external/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc @@ -1,4 +1,4 @@ -ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'armv5', 'dsp' ], 'e', '', d)}" +ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}" TUNEVALID[dsp] = "ARM DSP functionality" require conf/machine/include/arm/arch-armv5.inc diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv5.inc b/external/poky/meta/conf/machine/include/arm/arch-armv5.inc index 46f631c8..f9068af9 100644 --- a/external/poky/meta/conf/machine/include/arm/arch-armv5.inc +++ b/external/poky/meta/conf/machine/include/arm/arch-armv5.inc @@ -2,7 +2,7 @@ DEFAULTTUNE ?= "armv5" TUNEVALID[armv5] = "Enable instructions for ARMv5" TUNECONFLICTS[armv5] = "armv4" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}', '', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5t${ARMPKGSFX_DSP}', '', d)}" MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '' ,d)}" require conf/machine/include/arm/arch-armv4.inc diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv7a.inc b/external/poky/meta/conf/machine/include/arm/arch-armv7a.inc index a2663d80..199e63f9 100644 --- a/external/poky/meta/conf/machine/include/arm/arch-armv7a.inc +++ b/external/poky/meta/conf/machine/include/arm/arch-armv7a.inc @@ -10,13 +10,15 @@ require conf/machine/include/arm/arch-armv6.inc require conf/machine/include/arm/feature-arm-neon.inc # Little Endian base configs -AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4" +AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-vfpv4d16 armv7at-vfpv4d16 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4" ARMPKGARCH_tune-armv7a ?= "armv7a" ARMPKGARCH_tune-armv7at ?= "armv7a" ARMPKGARCH_tune-armv7a-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7at-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7a-vfpv3 ?= "armv7a" ARMPKGARCH_tune-armv7at-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7a-vfpv4d16 ?= "armv7a" +ARMPKGARCH_tune-armv7at-vfpv4d16 ?= "armv7a" ARMPKGARCH_tune-armv7a-neon ?= "armv7a" ARMPKGARCH_tune-armv7at-neon ?= "armv7a" ARMPKGARCH_tune-armv7a-neon-vfpv4 ?= "armv7a" @@ -27,6 +29,8 @@ TUNE_FEATURES_tune-armv7a-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a} vfpv3d16" TUNE_FEATURES_tune-armv7at-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at} vfpv3d16" TUNE_FEATURES_tune-armv7a-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} vfpv3" TUNE_FEATURES_tune-armv7at-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7a-vfpv4d16 = "${TUNE_FEATURES_tune-armv7a} vfpv4d16" +TUNE_FEATURES_tune-armv7at-vfpv4d16 = "${TUNE_FEATURES_tune-armv7at} vfpv4d16" TUNE_FEATURES_tune-armv7a-neon = "${TUNE_FEATURES_tune-armv7a} neon" TUNE_FEATURES_tune-armv7at-neon = "${TUNE_FEATURES_tune-armv7at} neon" TUNE_FEATURES_tune-armv7a-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon} vfpv4" @@ -37,19 +41,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfpv3d16 armv7at2-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16} armv7a-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16} armv7a-vfpv3 armv7at2-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfpv4d16 armv7at2-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-neon" PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-neon armv7at2-neon" PACKAGE_EXTRA_ARCHS_tune-armv7a-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} armv7a-neon-vfpv4" PACKAGE_EXTRA_ARCHS_tune-armv7at-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} armv7a-neon-vfpv4 armv7at2-neon-vfpv4" # HF Tunes -AVAILTUNES += "armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4" +AVAILTUNES += "armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-vfpv4d16 armv7athf-vfpv4d16 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4" ARMPKGARCH_tune-armv7ahf ?= "armv7a" ARMPKGARCH_tune-armv7athf ?= "armv7a" ARMPKGARCH_tune-armv7ahf-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7athf-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7ahf-vfpv3 ?= "armv7a" ARMPKGARCH_tune-armv7athf-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ahf-vfpv4d16 ?= "armv7a" +ARMPKGARCH_tune-armv7athf-vfpv4d16 ?= "armv7a" ARMPKGARCH_tune-armv7ahf-neon ?= "armv7a" ARMPKGARCH_tune-armv7athf-neon ?= "armv7a" ARMPKGARCH_tune-armv7ahf-neon-vfpv4 ?= "armv7a" @@ -60,6 +68,8 @@ TUNE_FEATURES_tune-armv7ahf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} TUNE_FEATURES_tune-armv7athf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} callconvention-hard" TUNE_FEATURES_tune-armv7ahf-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} callconvention-hard" TUNE_FEATURES_tune-armv7athf-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7ahf-vfpv4d16 = "${TUNE_FEATURES_tune-armv7a-vfpv4d16} callconvention-hard" +TUNE_FEATURES_tune-armv7athf-vfpv4d16 = "${TUNE_FEATURES_tune-armv7at-vfpv4d16} callconvention-hard" TUNE_FEATURES_tune-armv7ahf-neon = "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard" TUNE_FEATURES_tune-armv7athf-neon = "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard" TUNE_FEATURES_tune-armv7ahf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} callconvention-hard" @@ -70,19 +80,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16} armv7ahf-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfpv3 armv7at2hf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfpv4d16 armv7at2hf-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-neon" PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-neon armv7at2hf-neon" PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-neon-vfpv4" PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-neon-vfpv4 armv7at2hf-neon-vfpv4" # Big Endian -AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4" +AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-vfpv4d16 armv7atb-vfpv4d16 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4" ARMPKGARCH_tune-armv7ab ?= "armv7a" ARMPKGARCH_tune-armv7atb ?= "armv7a" ARMPKGARCH_tune-armv7ab-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7atb-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7ab-vfpv3 ?= "armv7a" ARMPKGARCH_tune-armv7atb-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ab-vfpv4d16 ?= "armv7a" +ARMPKGARCH_tune-armv7atb-vfpv4d16 ?= "armv7a" ARMPKGARCH_tune-armv7ab-neon ?= "armv7a" ARMPKGARCH_tune-armv7atb-neon ?= "armv7a" ARMPKGARCH_tune-armv7ab-neon-vfpv4 ?= "armv7a" @@ -93,6 +107,8 @@ TUNE_FEATURES_tune-armv7ab-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} TUNE_FEATURES_tune-armv7atb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} bigendian" TUNE_FEATURES_tune-armv7ab-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} bigendian" TUNE_FEATURES_tune-armv7atb-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7ab-vfpv4d16 = "${TUNE_FEATURES_tune-armv7a-vfpv4d16} bigendian" +TUNE_FEATURES_tune-armv7atb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7at-vfpv4d16} bigendian" TUNE_FEATURES_tune-armv7ab-neon = "${TUNE_FEATURES_tune-armv7a-neon} bigendian" TUNE_FEATURES_tune-armv7atb-neon = "${TUNE_FEATURES_tune-armv7at-neon} bigendian" TUNE_FEATURES_tune-armv7ab-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} bigendian" @@ -103,19 +119,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7 PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv3d16 armv7at2b-vfpv3d16" 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-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" PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon} armv7ab-neon-vfpv4 armv7at2b-neon-vfpv4" # Big Endian + HF -AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4" +AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-vfpv4d16 armv7athfb-vfpv4d16 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4" ARMPKGARCH_tune-armv7ahfb ?= "armv7a" ARMPKGARCH_tune-armv7athfb ?= "armv7a" ARMPKGARCH_tune-armv7ahfb-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7athfb-vfpv3d16 ?= "armv7a" ARMPKGARCH_tune-armv7ahfb-vfpv3 ?= "armv7a" ARMPKGARCH_tune-armv7athfb-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ahfb-vfpv4d16 ?= "armv7a" +ARMPKGARCH_tune-armv7athfb-vfpv4d16 ?= "armv7a" ARMPKGARCH_tune-armv7ahfb-neon ?= "armv7a" ARMPKGARCH_tune-armv7athfb-neon ?= "armv7a" ARMPKGARCH_tune-armv7ahfb-neon-vfpv4 ?= "armv7a" @@ -126,6 +146,8 @@ TUNE_FEATURES_tune-armv7ahfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3d TUNE_FEATURES_tune-armv7athfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7athf-vfpv3d16} bigendian" TUNE_FEATURES_tune-armv7ahfb-vfpv3 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3} bigendian" TUNE_FEATURES_tune-armv7athfb-vfpv3 = "${TUNE_FEATURES_tune-armv7athf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7ahfb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7ahf-vfpv4d16} bigendian" +TUNE_FEATURES_tune-armv7athfb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7athf-vfpv4d16} bigendian" TUNE_FEATURES_tune-armv7ahfb-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian" TUNE_FEATURES_tune-armv7athfb-neon = "${TUNE_FEATURES_tune-armv7athf-neon} bigendian" TUNE_FEATURES_tune-armv7ahfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} bigendian" @@ -136,6 +158,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-arm PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16} armv7ahfb-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16} armv7ahfb-vfpv3 armv7at2hfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfpv4d16 armv7at2hfb-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-neon" PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-neon armv7at2hfb-neon" PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon} armv7ahfb-neon-vfpv4" diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv7ve.inc b/external/poky/meta/conf/machine/include/arm/arch-armv7ve.inc index 4d9260fe..fc172d0c 100644 --- a/external/poky/meta/conf/machine/include/arm/arch-armv7ve.inc +++ b/external/poky/meta/conf/machine/include/arm/arch-armv7ve.inc @@ -8,13 +8,15 @@ MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:' require conf/machine/include/arm/arch-armv7a.inc # Little Endian base configs -AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4" +AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-vfpv4d16 armv7vet-vfpv4d16 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4" ARMPKGARCH_tune-armv7ve ?= "armv7ve" ARMPKGARCH_tune-armv7vet ?= "armv7ve" ARMPKGARCH_tune-armv7ve-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vet-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7ve-vfpv3 ?= "armv7ve" ARMPKGARCH_tune-armv7vet-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7ve-vfpv4d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vet-vfpv4d16 ?= "armv7ve" ARMPKGARCH_tune-armv7ve-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vet-neon ?= "armv7ve" ARMPKGARCH_tune-armv7ve-neon-vfpv4 ?= "armv7ve" @@ -25,6 +27,8 @@ TUNE_FEATURES_tune-armv7ve-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve} vfpv3d16 TUNE_FEATURES_tune-armv7vet-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet} vfpv3d16" TUNE_FEATURES_tune-armv7ve-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} vfpv3" TUNE_FEATURES_tune-armv7vet-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7ve-vfpv4d16 = "${TUNE_FEATURES_tune-armv7ve} vfpv4d16" +TUNE_FEATURES_tune-armv7vet-vfpv4d16 = "${TUNE_FEATURES_tune-armv7vet} vfpv4d16" TUNE_FEATURES_tune-armv7ve-neon = "${TUNE_FEATURES_tune-armv7ve} neon" TUNE_FEATURES_tune-armv7vet-neon = "${TUNE_FEATURES_tune-armv7vet} neon" TUNE_FEATURES_tune-armv7ve-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4" @@ -35,19 +39,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7 PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16} armv7ve-vfpv3 armv7vet2-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv4d16 armv7vet2-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-neon armv7vet2-neon" PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} armv7ve-neon-vfpv4" PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4" # HF Tunes -AVAILTUNES += "armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4" +AVAILTUNES += "armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-vfpv4d16 armv7vethf-vfpv4d16 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4" ARMPKGARCH_tune-armv7vehf ?= "armv7ve" ARMPKGARCH_tune-armv7vethf ?= "armv7ve" ARMPKGARCH_tune-armv7vehf-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vethf-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vehf-vfpv3 ?= "armv7ve" ARMPKGARCH_tune-armv7vethf-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehf-vfpv4d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf-vfpv4d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vehf-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vethf-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vehf-neon-vfpv4 ?= "armv7ve" @@ -58,6 +66,8 @@ TUNE_FEATURES_tune-armv7vehf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d1 TUNE_FEATURES_tune-armv7vethf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} callconvention-hard" TUNE_FEATURES_tune-armv7vehf-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3} callconvention-hard" TUNE_FEATURES_tune-armv7vethf-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7vehf-vfpv4d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv4d16} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf-vfpv4d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv4d16} callconvention-hard" TUNE_FEATURES_tune-armv7vehf-neon = "${TUNE_FEATURES_tune-armv7ve-neon} callconvention-hard" TUNE_FEATURES_tune-armv7vethf-neon = "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard" TUNE_FEATURES_tune-armv7vehf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard" @@ -68,19 +78,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-arm PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16} armv7vehf-vfpv3 armv7vet2hf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv4d16 armv7vet2hf-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-neon armv7vet2hf-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} armv7vehf-neon-vfpv4" PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4" # Big Endian -AVAILTUNES += "armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4" +AVAILTUNES += "armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-vfpv4d16 armv7vetb-vfpv4d16 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4" ARMPKGARCH_tune-armv7veb ?= "armv7ve" ARMPKGARCH_tune-armv7vetb ?= "armv7ve" ARMPKGARCH_tune-armv7veb-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vetb-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7veb-vfpv3 ?= "armv7ve" ARMPKGARCH_tune-armv7vetb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7veb-vfpv4d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb-vfpv4d16 ?= "armv7ve" ARMPKGARCH_tune-armv7veb-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vetb-neon ?= "armv7ve" ARMPKGARCH_tune-armv7veb-neon-vfpv4 ?= "armv7ve" @@ -91,6 +105,8 @@ TUNE_FEATURES_tune-armv7veb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d16 TUNE_FEATURES_tune-armv7vetb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} bigendian" TUNE_FEATURES_tune-armv7veb-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3} bigendian" TUNE_FEATURES_tune-armv7vetb-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7veb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv4d16} bigendian" +TUNE_FEATURES_tune-armv7vetb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv4d16} bigendian" TUNE_FEATURES_tune-armv7veb-neon = "${TUNE_FEATURES_tune-armv7ve-neon} bigendian" TUNE_FEATURES_tune-armv7vetb-neon = "${TUNE_FEATURES_tune-armv7vet-neon} bigendian" TUNE_FEATURES_tune-armv7veb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian" @@ -101,19 +117,23 @@ PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16} armv7veb-vfpv3 armv7vet2b-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv4d16 armv7vet2b-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-neon armv7vet2b-neon" PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon} armv7veb-neon-vfpv4" PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon} armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4" # Big Endian + HF -AVAILTUNES += "armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4" +AVAILTUNES += "armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-vfpv4d16 armv7vethfb-vfpv4d16 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4" ARMPKGARCH_tune-armv7vehfb ?= "armv7ve" ARMPKGARCH_tune-armv7vethfb ?= "armv7ve" ARMPKGARCH_tune-armv7vehfb-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vethfb-vfpv3d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vehfb-vfpv3 ?= "armv7ve" ARMPKGARCH_tune-armv7vethfb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehfb-vfpv4d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb-vfpv4d16 ?= "armv7ve" ARMPKGARCH_tune-armv7vehfb-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vethfb-neon ?= "armv7ve" ARMPKGARCH_tune-armv7vehfb-neon-vfpv4 ?= "armv7ve" @@ -124,6 +144,8 @@ TUNE_FEATURES_tune-armv7vehfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vehf-vfpv TUNE_FEATURES_tune-armv7vethfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vethf-vfpv3d16} bigendian" TUNE_FEATURES_tune-armv7vehfb-vfpv3 = "${TUNE_FEATURES_tune-armv7vehf-vfpv3} bigendian" TUNE_FEATURES_tune-armv7vethfb-vfpv3 = "${TUNE_FEATURES_tune-armv7vethf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7vehfb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7vehf-vfpv4d16} bigendian" +TUNE_FEATURES_tune-armv7vethfb-vfpv4d16 = "${TUNE_FEATURES_tune-armv7vethf-vfpv4d16} bigendian" TUNE_FEATURES_tune-armv7vehfb-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} bigendian" TUNE_FEATURES_tune-armv7vethfb-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian" TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian" @@ -134,6 +156,8 @@ PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-ar PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16" PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3" PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16} armv7vehfb-vfpv3 armv7vet2hfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv4d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv4d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv4d16 armv7vet2hfb-vfpv4d16" PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-neon armv7vet2hfb-neon" PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon} armv7vehfb-neon-vfpv4" diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv8.inc b/external/poky/meta/conf/machine/include/arm/arch-armv8.inc deleted file mode 100644 index 5e832fae..00000000 --- a/external/poky/meta/conf/machine/include/arm/arch-armv8.inc +++ /dev/null @@ -1 +0,0 @@ -require conf/machine/include/arm/arch-arm64.inc diff --git a/external/poky/meta/conf/machine/include/arm/arch-armv8a.inc b/external/poky/meta/conf/machine/include/arm/arch-armv8a.inc new file mode 100644 index 00000000..f810a1e8 --- /dev/null +++ b/external/poky/meta/conf/machine/include/arm/arch-armv8a.inc @@ -0,0 +1,30 @@ +DEFAULTTUNE ?= "armv8a-crc" + +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}" +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)}" + +require conf/machine/include/arm/arch-arm64.inc + +# Little Endian base configs +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto" +ARMPKGARCH_tune-armv8a ?= "armv8a" +ARMPKGARCH_tune-armv8a-crc ?= "armv8a" +ARMPKGARCH_tune-armv8a-crypto ?= "armv8a" +ARMPKGARCH_tune-armv8a-crc-crypto ?= "armv8a" +TUNE_FEATURES_tune-armv8a = "aarch64 armv8a" +TUNE_FEATURES_tune-armv8a-crc = "${TUNE_FEATURES_tune-armv8a} crc" +TUNE_FEATURES_tune-armv8a-crypto = "${TUNE_FEATURES_tune-armv8a} crypto" +TUNE_FEATURES_tune-armv8a-crc-crypto = "${TUNE_FEATURES_tune-armv8a-crc} crypto" +PACKAGE_EXTRA_ARCHS_tune-armv8a = "aarch64 armv8a" +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc" +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto" +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto" +BASE_LIB_tune-armv8a = "lib64" +BASE_LIB_tune-armv8a-crc = "lib64" +BASE_LIB_tune-armv8a-crypto = "lib64" +BASE_LIB_tune-armv8a-crc-crypto = "lib64" diff --git a/external/poky/meta/conf/machine/include/arm/feature-arm-neon.inc b/external/poky/meta/conf/machine/include/arm/feature-arm-neon.inc index b34af8e7..eaddd054 100644 --- a/external/poky/meta/conf/machine/include/arm/feature-arm-neon.inc +++ b/external/poky/meta/conf/machine/include/arm/feature-arm-neon.inc @@ -16,3 +16,6 @@ TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit." TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4', ' vfpv4', '', d)}" TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], ' neon-vfpv4', '', d)}" + +TUNEVALID[vfpv4d16] = "Enable Vector Floating Point Version 4 with 16 registers (vfpv4-d16) unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4d16', ' vfpv4-d16', '', d)}" diff --git a/external/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc b/external/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc index 0b47ccad..bae169da 100644 --- a/external/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc +++ b/external/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc @@ -1,8 +1,6 @@ TUNEVALID[thumb] = "Support Thumb instructions" -ARM_THUMB_SUFFIX = "${@bb.utils.contains_any('TUNE_FEATURES', 'armv4 armv5 armv6', 't', 't2', d)}" - # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb") # If the device doesn't support ARM, then always set "thumb" even when # some recipe explicitly sets ARM_INSTRUCTION_SET to "arm" @@ -23,6 +21,11 @@ python () { TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}" +ARM_THUMB_SUFFIX = "t2" +ARM_THUMB_SUFFIX_armv4 = "t" +ARM_THUMB_SUFFIX_armv5 = "t" +ARM_THUMB_SUFFIX_armv6 = "t" + # Add suffix from ARM_THUMB_SUFFIX only if after all this we still set ARM_M_OPT to thumb ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d) if d.getVar('ARM_M_OPT') == 'thumb' else ''}" diff --git a/external/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc b/external/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc index 7ae74566..678888e6 100644 --- a/external/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc +++ b/external/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc @@ -6,7 +6,8 @@ TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit." TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}" TUNE_CCARGS .= "${@ (' -mfpu=%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" -ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" +# The following deals with both vfpv3-d16 and vfpv4-d16 +ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('-d16', 'd16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP." TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '') else '' }" diff --git a/external/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc b/external/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc index eab7171c..4f58076a 100644 --- a/external/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc +++ b/external/poky/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/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc b/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc index a3151665..cba0ae67 100644 --- a/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc +++ b/external/poky/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/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc b/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc index 955674ff..5c37f49a 100644 --- a/external/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc +++ b/external/poky/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/external/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc b/external/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc index 9cf6b88f..ef18e9ac 100644 --- a/external/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc +++ b/external/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc @@ -8,9 +8,15 @@ DEFAULTTUNE ?= "powerpc" TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" ABIEXTENSION ?= "" +# Endian +TUNEVALID[bigendian] = "Use PowerPC Big Endian" + +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mbig-endian", " -mlittle-endian", d)}" + 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)}" @@ -22,13 +28,24 @@ TARGET_FPU .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', 'soft', '', d)} TUNEVALID[altivec] = "Altivec" # Basic tune definitions -AVAILTUNES += "powerpc powerpc-nf" -TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft" +AVAILTUNES += "powerpc powerpc-nf powerpcle powerpcle-nf" + +TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft bigendian" BASE_LIB_tune-powerpc-nf = "lib" TUNE_PKGARCH_tune-powerpc-nf = "powerpc-nf" PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf" -TUNE_FEATURES_tune-powerpc = "m32 fpu-hard" +TUNE_FEATURES_tune-powerpc = "m32 fpu-hard bigendian" BASE_LIB_tune-powerpc = "lib" TUNE_PKGARCH_tune-powerpc = "powerpc" PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc" + +TUNE_FEATURES_tune-powerpcle-nf = "m32 fpu-soft" +BASE_LIB_tune-powerpcle-nf = "lib" +TUNE_PKGARCH_tune-powerpcle-nf = "powerpcle-nf" +PACKAGE_EXTRA_ARCHS_tune-powerpcle-nf = "powerpcle-nf" + +TUNE_FEATURES_tune-powerpcle = "m32 fpu-hard" +BASE_LIB_tune-powerpcle = "lib" +TUNE_PKGARCH_tune-powerpcle = "powerpcle" +PACKAGE_EXTRA_ARCHS_tune-powerpcle = "powerpcle" diff --git a/external/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/external/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc index f751c6b7..cf5c3ef8 100644 --- a/external/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc +++ b/external/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc @@ -5,13 +5,22 @@ 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(':')]}" # user mode qemu doesn't support ppc64 MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}" -AVAILTUNES += "powerpc64" -TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard" +AVAILTUNES += "powerpc64 powerpc64le" + +TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard bigendian" BASE_LIB_tune-powerpc64 = "lib64" TUNE_PKGARCH_tune-powerpc64 = "powerpc64" PACKAGE_EXTRA_ARCHS_tune-powerpc64 = "powerpc64" + +TUNE_FEATURES_tune-powerpc64le = "m64 fpu-hard" +BASE_LIB_tune-powerpc64le = "lib64" +TUNE_PKGARCH_tune-powerpc64le = "powerpc64le" +PACKAGE_EXTRA_ARCHS_tune-powerpc64le = "powerpc64le" diff --git a/external/poky/meta/conf/machine/include/qemu.inc b/external/poky/meta/conf/machine/include/qemu.inc index 5050e410..8dedb1a4 100644 --- a/external/poky/meta/conf/machine/include/qemu.inc +++ b/external/poky/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/external/poky/meta/conf/machine/include/qemuboot-mips.inc b/external/poky/meta/conf/machine/include/qemuboot-mips.inc index 7d9fa52d..f1f7c2ae 100644 --- a/external/poky/meta/conf/machine/include/qemuboot-mips.inc +++ b/external/poky/meta/conf/machine/include/qemuboot-mips.inc @@ -1,8 +1,10 @@ # For runqemu IMAGE_CLASSES += "qemuboot" -QB_MEM = "-m 256" 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 = "-vga cirrus -show-cursor -usb -device usb-tablet -device virtio-rng-pci" -QB_SYSTEM_NAME = "qemu-system-${TUNE_ARCH}" +QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" + +# 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/external/poky/meta/conf/machine/include/qemuboot-x86.inc b/external/poky/meta/conf/machine/include/qemuboot-x86.inc index 1456bf7e..5dcc8b6f 100644 --- a/external/poky/meta/conf/machine/include/qemuboot-x86.inc +++ b/external/poky/meta/conf/machine/include/qemuboot-x86.inc @@ -1,17 +1,15 @@ # For runqemu IMAGE_CLASSES += "qemuboot" -QB_SYSTEM_NAME_x86 = "qemu-system-i386" -QB_CPU_x86 = "-cpu pentium2" -QB_CPU_KVM_x86 = "-cpu pentium2" +QB_CPU_x86 = "-cpu core2duo" +QB_CPU_KVM_x86 = "-cpu core2duo" -QB_SYSTEM_NAME_x86-64 = "qemu-system-x86_64" QB_CPU_x86-64 = "-cpu core2duo" 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_KERNEL_CMDLINE_APPEND = "oprofile.timer=1" +QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet" # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy -QB_OPT_APPEND = "-vga vmware -show-cursor -usb -device usb-tablet -device virtio-rng-pci" +QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" -UVESA_MODE ?= "640x480-32" diff --git a/external/poky/meta/conf/machine/include/riscv/arch-riscv.inc b/external/poky/meta/conf/machine/include/riscv/arch-riscv.inc new file mode 100644 index 00000000..e3dbef7f --- /dev/null +++ b/external/poky/meta/conf/machine/include/riscv/arch-riscv.inc @@ -0,0 +1,16 @@ +# RISCV Architecture definition + +DEFAULTTUNE ?= "riscv64" + +TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" +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/external/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/external/poky/meta/conf/machine/include/riscv/qemuriscv.inc new file mode 100644 index 00000000..a42346f3 --- /dev/null +++ b/external/poky/meta/conf/machine/include/riscv/qemuriscv.inc @@ -0,0 +1,38 @@ +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" + +require conf/machine/include/qemu.inc +require conf/machine/include/riscv/tune-riscv.inc + +MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" + +KERNEL_IMAGETYPE = "Image" +KERNEL_IMAGETYPES += "uImage" +KEEPUIMAGE = "no" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" + +IMAGE_FSTYPES += "ext4 wic.qcow2" + +WKS_FILE ?= "qemuriscv.wks" + +MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" + +EXTRA_IMAGEDEPENDS += "opensbi" +RISCV_SBI_PLAT ?= "qemu/virt" +RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" + +UBOOT_ENTRYPOINT_riscv32 = "0x80400000" +UBOOT_ENTRYPOINT_riscv64 = "0x80200000" + +# qemuboot options +QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" +QB_MACHINE = "-machine virt" +QB_DEFAULT_BIOS = "fw_jump.elf" +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +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/external/poky/meta/conf/machine/include/riscv/tune-riscv.inc b/external/poky/meta/conf/machine/include/riscv/tune-riscv.inc new file mode 100644 index 00000000..741eeb34 --- /dev/null +++ b/external/poky/meta/conf/machine/include/riscv/tune-riscv.inc @@ -0,0 +1,33 @@ +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 riscv64nf riscv32nf" + +# Default +TUNE_FEATURES_tune-riscv64 = "riscv64" +TUNE_ARCH_tune-riscv64 = "riscv64" +TUNE_PKGARCH_tune-riscv64 = "riscv64" +PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64" + +TUNE_FEATURES_tune-riscv32 = "riscv32" +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 = "riscv64" +PACKAGE_EXTRA_ARCHS_tune-riscv64nf = "riscv64nf" + +TUNE_FEATURES_tune-riscv32nf = "${TUNE_FEATURES_tune-riscv32} riscv32nf" +TUNE_ARCH_tune-riscv32nf = "riscv32" +TUNE_PKGARCH_tune-riscv32nf = "riscv32" +PACKAGE_EXTRA_ARCHS_tune-riscv32nf = "riscv32nf" diff --git a/external/poky/meta/conf/machine/include/tune-arm1136jf-s.inc b/external/poky/meta/conf/machine/include/tune-arm1136jf-s.inc index c5de63e1..173cb468 100644 --- a/external/poky/meta/conf/machine/include/tune-arm1136jf-s.inc +++ b/external/poky/meta/conf/machine/include/tune-arm1136jf-s.inc @@ -4,8 +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)}" -AVAILTUNES += "arm1136jfs" +AVAILTUNES += "arm1136jfs arm1136jfshf" ARMPKGARCH_tune-arm1136jfs = "arm1136jfs" -TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs" +ARMPKGARCH_tune-arm1136jfshf = "arm1136jfs" +# mcpu is used so don't use armv6 as we don't want march +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/external/poky/meta/conf/machine/include/tune-arm1176jz-s.inc b/external/poky/meta/conf/machine/include/tune-arm1176jz-s.inc new file mode 100644 index 00000000..a63d5856 --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-arm1176jz-s.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "arm1176jzs" + +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)}" + +AVAILTUNES += "arm1176jzs" +ARMPKGARCH_tune-arm1176jzs = "arm1176jzs" +TUNE_FEATURES_tune-arm1176jzs = "arm thumb arm1176jzs" +PACKAGE_EXTRA_ARCHS_tune-arm1176jzs = "${PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp} arm1176jzs arm1176jzst" + +AVAILTUNES += "arm1176jzs-be" +ARMPKGARCH_tune-arm1176jzs-be = "${ARMPKGARCH_tune-arm1176jzs}" +TUNE_FEATURES_tune-arm1176jzs-be = "${TUNE_FEATURES_tune-arm1176jzs} bigendian" +PACKAGE_EXTRA_ARCHS_tune-arm1176jzs-be = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp} arm1176jzsb arm1176jzstb" diff --git a/external/poky/meta/conf/machine/include/tune-arm920t.inc b/external/poky/meta/conf/machine/include/tune-arm920t.inc index c6e74b67..42e8ed2b 100644 --- a/external/poky/meta/conf/machine/include/tune-arm920t.inc +++ b/external/poky/meta/conf/machine/include/tune-arm920t.inc @@ -4,8 +4,10 @@ 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)}" AVAILTUNES += "arm920t" ARMPKGARCH_tune-arm920t = "arm920t" -TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t" +# mcpu is used so don't use armv4t as we don't want march +TUNE_FEATURES_tune-arm920t = "arm thumb arm920t" PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm920t arm920tt" diff --git a/external/poky/meta/conf/machine/include/tune-arm926ejs.inc b/external/poky/meta/conf/machine/include/tune-arm926ejs.inc index 81bcda33..563d53bc 100644 --- a/external/poky/meta/conf/machine/include/tune-arm926ejs.inc +++ b/external/poky/meta/conf/machine/include/tune-arm926ejs.inc @@ -4,8 +4,10 @@ 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)}" AVAILTUNES += "arm926ejs" ARMPKGARCH_tune-arm926ejs = "arm926ejs" -TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs" +# mcpu is used so don't use armv5te as we don't want march +TUNE_FEATURES_tune-arm926ejs = "arm thumb dsp arm926ejs" PACKAGE_EXTRA_ARCHS_tune-arm926ejs = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} arm926ejste arm926ejse" diff --git a/external/poky/meta/conf/machine/include/tune-arm9tdmi.inc b/external/poky/meta/conf/machine/include/tune-arm9tdmi.inc index e9c2b8fc..e03a8b86 100644 --- a/external/poky/meta/conf/machine/include/tune-arm9tdmi.inc +++ b/external/poky/meta/conf/machine/include/tune-arm9tdmi.inc @@ -4,8 +4,10 @@ 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)}" AVAILTUNES += "arm9tdmi" ARMPKGARCH_tune-arm9tdmi = "arm9tdmi" -TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi" +# mcpu is used so don't use armv4t as we don't want march +TUNE_FEATURES_tune-arm9tdmi = "arm thumb arm9tdmi" PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm9tdmit" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa15.inc b/external/poky/meta/conf/machine/include/tune-cortexa15.inc index 25e99f93..d53403af 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa15.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa15.inc @@ -4,6 +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)}" # Little Endian base configs AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon cortexa15-neon-vfpv4 cortexa15t-neon-vfpv4" @@ -13,12 +14,13 @@ ARMPKGARCH_tune-cortexa15-neon = "cortexa15" ARMPKGARCH_tune-cortexa15t-neon = "cortexa15" ARMPKGARCH_tune-cortexa15-neon-vfpv4 = "cortexa15" ARMPKGARCH_tune-cortexa15t-neon-vfpv4 = "cortexa15" -TUNE_FEATURES_tune-cortexa15 = "${TUNE_FEATURES_tune-armv7ve} cortexa15" -TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-armv7vet} cortexa15" -TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa15" -TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa15" -TUNE_FEATURES_tune-cortexa15-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa15" -TUNE_FEATURES_tune-cortexa15t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa15" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa15 = "arm vfp cortexa15" +TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-cortexa15} thumb" +TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-cortexa15} neon" +TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-cortexa15-neon} thumb" +TUNE_FEATURES_tune-cortexa15-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa15-neon} vfpv4" +TUNE_FEATURES_tune-cortexa15t-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa15-neon-vfpv4} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa15 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa15-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa15t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa15-vfp cortexa15t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa15-vfp cortexa15-neon" @@ -34,12 +36,13 @@ ARMPKGARCH_tune-cortexa15hf-neon = "cortexa15" ARMPKGARCH_tune-cortexa15thf-neon = "cortexa15" ARMPKGARCH_tune-cortexa15hf-neon-vfpv4 = "cortexa15" ARMPKGARCH_tune-cortexa15thf-neon-vfpv4 = "cortexa15" -TUNE_FEATURES_tune-cortexa15hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa15" -TUNE_FEATURES_tune-cortexa15thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa15" -TUNE_FEATURES_tune-cortexa15hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa15" -TUNE_FEATURES_tune-cortexa15thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa15" -TUNE_FEATURES_tune-cortexa15hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa15" -TUNE_FEATURES_tune-cortexa15thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa15" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa15hf = "${TUNE_FEATURES_tune-cortexa15} callconvention-hard" +TUNE_FEATURES_tune-cortexa15thf = "${TUNE_FEATURES_tune-cortexa15t} callconvention-hard" +TUNE_FEATURES_tune-cortexa15hf-neon = "${TUNE_FEATURES_tune-cortexa15-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa15thf-neon = "${TUNE_FEATURES_tune-cortexa15t-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa15hf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa15-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-cortexa15thf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa15t-neon-vfpv4} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa15hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa15hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa15thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa15hf-vfp cortexa15t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa15hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa15hf-vfp cortexa15hf-neon" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa17.inc b/external/poky/meta/conf/machine/include/tune-cortexa17.inc index 40392f9b..3ffc02bf 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa17.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa17.inc @@ -4,6 +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)}" # Little Endian base configs AVAILTUNES += "cortexa17 cortexa17t cortexa17-neon cortexa17t-neon cortexa17-neon-vfpv4 cortexa17t-neon-vfpv4" @@ -13,12 +14,13 @@ ARMPKGARCH_tune-cortexa17-neon = "cortexa17" ARMPKGARCH_tune-cortexa17t-neon = "cortexa17" ARMPKGARCH_tune-cortexa17-neon-vfpv4 = "cortexa17" ARMPKGARCH_tune-cortexa17t-neon-vfpv4 = "cortexa17" -TUNE_FEATURES_tune-cortexa17 = "${TUNE_FEATURES_tune-armv7ve} cortexa17" -TUNE_FEATURES_tune-cortexa17t = "${TUNE_FEATURES_tune-armv7vet} cortexa17" -TUNE_FEATURES_tune-cortexa17-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa17" -TUNE_FEATURES_tune-cortexa17t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa17" -TUNE_FEATURES_tune-cortexa17-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa17" -TUNE_FEATURES_tune-cortexa17t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa17" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa17 = "arm vfp cortexa17" +TUNE_FEATURES_tune-cortexa17t = "${TUNE_FEATURES_tune-cortexa17} thumb" +TUNE_FEATURES_tune-cortexa17-neon = "${TUNE_FEATURES_tune-cortexa17} neon" +TUNE_FEATURES_tune-cortexa17t-neon = "${TUNE_FEATURES_tune-cortexa17-neon} thumb" +TUNE_FEATURES_tune-cortexa17-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa17-neon} vfpv4" +TUNE_FEATURES_tune-cortexa17t-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa17-neon-vfpv4} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa17 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa17-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa17t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa17-vfp cortexa17t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa17-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa17-vfp cortexa17-neon" @@ -34,12 +36,13 @@ ARMPKGARCH_tune-cortexa17hf-neon = "cortexa17" ARMPKGARCH_tune-cortexa17thf-neon = "cortexa17" ARMPKGARCH_tune-cortexa17hf-neon-vfpv4 = "cortexa17" ARMPKGARCH_tune-cortexa17thf-neon-vfpv4 = "cortexa17" -TUNE_FEATURES_tune-cortexa17hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa17" -TUNE_FEATURES_tune-cortexa17thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa17" -TUNE_FEATURES_tune-cortexa17hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa17" -TUNE_FEATURES_tune-cortexa17thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa17" -TUNE_FEATURES_tune-cortexa17hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa17" -TUNE_FEATURES_tune-cortexa17thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa17" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa17hf = "${TUNE_FEATURES_tune-cortexa17} callconvention-hard" +TUNE_FEATURES_tune-cortexa17thf = "${TUNE_FEATURES_tune-cortexa17t} callconvention-hard" +TUNE_FEATURES_tune-cortexa17hf-neon = "${TUNE_FEATURES_tune-cortexa17-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa17thf-neon = "${TUNE_FEATURES_tune-cortexa17t-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa17hf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa17-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-cortexa17thf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa17t-neon-vfpv4} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa17hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa17hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa17thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa17hf-vfp cortexa17t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa17hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa17hf-vfp cortexa17hf-neon" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa32.inc b/external/poky/meta/conf/machine/include/tune-cortexa32.inc new file mode 100644 index 00000000..3ab1addd --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa32.inc @@ -0,0 +1,18 @@ +DEFAULTTUNE ?= "cortexa32" + + +TUNEVALID[cortexa32] = "Enable Cortex-A32 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa32', ' -mcpu=cortex-a32', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "cortexa32 cortexa32-crypto" +ARMPKGARCH_tune-cortexa32 = "cortexa32" +ARMPKGARCH_tune-cortexa32-crypto = "cortexa32" +TUNE_FEATURES_tune-cortexa32 = "armv8a cortexa32 crc" +TUNE_FEATURES_tune-cortexa32-crypto = "armv8a cortexa32 crc crypto" +PACKAGE_EXTRA_ARCHS_tune-cortexa32 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32" +PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto" +BASE_LIB_tune-cortexa32 = "lib" +BASE_LIB_tune-cortexa32-crypto = "lib" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa35.inc b/external/poky/meta/conf/machine/include/tune-cortexa35.inc new file mode 100644 index 00000000..d6df6cd6 --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa35.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "cortexa35" + +TUNEVALID[cortexa35] = "Enable Cortex-A35 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa35', ' -mcpu=cortex-a35', '', d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +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" +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" +BASE_LIB_tune-cortexa35-crypto = "lib64" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa5.inc b/external/poky/meta/conf/machine/include/tune-cortexa5.inc index 1f0cda66..496739e4 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa5.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa5.inc @@ -4,33 +4,48 @@ 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)}" # Little Endian base configs -AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon" +AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon cortexa5-neon-vfpv4 cortexa5t-neon-vfpv4" ARMPKGARCH_tune-cortexa5 = "cortexa5" ARMPKGARCH_tune-cortexa5t = "cortexa5" ARMPKGARCH_tune-cortexa5-neon = "cortexa5" ARMPKGARCH_tune-cortexa5t-neon = "cortexa5" -TUNE_FEATURES_tune-cortexa5 = "${TUNE_FEATURES_tune-armv7a} cortexa5" -TUNE_FEATURES_tune-cortexa5t = "${TUNE_FEATURES_tune-armv7at} cortexa5" -TUNE_FEATURES_tune-cortexa5-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa5" -TUNE_FEATURES_tune-cortexa5t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa5" +ARMPKGARCH_tune-cortexa5-neon-vfpv4 = "cortexa5" +ARMPKGARCH_tune-cortexa5t-neon-vfpv4 = "cortexa5" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa5 = "arm vfp cortexa5" +TUNE_FEATURES_tune-cortexa5t = "${TUNE_FEATURES_tune-cortexa5} thumb" +TUNE_FEATURES_tune-cortexa5-neon = "${TUNE_FEATURES_tune-cortexa5} neon" +TUNE_FEATURES_tune-cortexa5t-neon = "${TUNE_FEATURES_tune-cortexa5-neon} thumb" +TUNE_FEATURES_tune-cortexa5-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa5-neon} vfpv4" +TUNE_FEATURES_tune-cortexa5t-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa5-neon-vfpv4} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa5 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa5-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa5t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa5-vfp cortexa5t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa5-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa5-vfp cortexa5-neon" PACKAGE_EXTRA_ARCHS_tune-cortexa5t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa5-vfp cortexa5-neon cortexa5t2-vfp cortexa5t2-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa5-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon-vfpv4} cortexa5-vfp cortexa5-neon cortexa5-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa5t-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon-vfpv4} cortexa5-vfp cortexa5-neon cortexa5-neon-vfpv4 cortexa5t2-vfp cortexa5t2-neon cortexa5t2-neon-vfpv4" # HF Tunes -AVAILTUNES += "cortexa5hf cortexa5thf cortexa5hf-neon cortexa5thf-neon" +AVAILTUNES += "cortexa5hf cortexa5thf cortexa5hf-neon cortexa5thf-neon cortexa5hf-neon-vfpv4 cortexa5thf-neon-vfpv4" ARMPKGARCH_tune-cortexa5hf = "cortexa5" ARMPKGARCH_tune-cortexa5thf = "cortexa5" ARMPKGARCH_tune-cortexa5hf-neon = "cortexa5" ARMPKGARCH_tune-cortexa5thf-neon = "cortexa5" -TUNE_FEATURES_tune-cortexa5hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa5" -TUNE_FEATURES_tune-cortexa5thf = "${TUNE_FEATURES_tune-armv7athf} cortexa5" -TUNE_FEATURES_tune-cortexa5hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa5" -TUNE_FEATURES_tune-cortexa5thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa5" +ARMPKGARCH_tune-cortexa5hf-neon-vfpv4 = "cortexa5" +ARMPKGARCH_tune-cortexa5thf-neon-vfpv4 = "cortexa5" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa5hf = "${TUNE_FEATURES_tune-cortexa5} callconvention-hard" +TUNE_FEATURES_tune-cortexa5thf = "${TUNE_FEATURES_tune-cortexa5t} callconvention-hard" +TUNE_FEATURES_tune-cortexa5hf-neon = "${TUNE_FEATURES_tune-cortexa5-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa5thf-neon = "${TUNE_FEATURES_tune-cortexa5t-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa5hf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa5-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-cortexa5thf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa5t-neon-vfpv4} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa5hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa5hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa5thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa5hf-vfp cortexa5t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa5hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa5hf-vfp cortexa5hf-neon" PACKAGE_EXTRA_ARCHS_tune-cortexa5thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa5hf-vfp cortexa5hf-neon cortexa5t2hf-vfp cortexa5t2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa5hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4} cortexa5hf-vfp cortexa5hf-neon cortexa5hf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa5thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4} cortexa5hf-vfp cortexa5hf-neon cortexa5hf-neon-vfpv4 cortexa5t2hf-vfp cortexa5t2hf-neon cortexa5t2hf-neon-vfpv4" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa53.inc b/external/poky/meta/conf/machine/include/tune-cortexa53.inc new file mode 100644 index 00000000..6c0b443e --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa53.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "cortexa53" + +TUNEVALID[cortexa53] = "Enable Cortex-A53 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', ' -mcpu=cortex-a53', '', d)}" + +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" +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" +BASE_LIB_tune-cortexa53-crypto = "lib64" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/external/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc new file mode 100644 index 00000000..d05e93f5 --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc @@ -0,0 +1,18 @@ +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)}" + +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)}" + +# 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" +BASE_LIB_tune-cortexa57-cortexa53 = "lib64" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa7.inc b/external/poky/meta/conf/machine/include/tune-cortexa7.inc index 52415d9c..34a77b47 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa7.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa7.inc @@ -4,6 +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)}" # Little Endian base configs AVAILTUNES += "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4" @@ -13,12 +14,13 @@ ARMPKGARCH_tune-cortexa7-neon = "cortexa7" ARMPKGARCH_tune-cortexa7t-neon = "cortexa7" ARMPKGARCH_tune-cortexa7-neon-vfpv4 = "cortexa7" ARMPKGARCH_tune-cortexa7t-neon-vfpv4 = "cortexa7" -TUNE_FEATURES_tune-cortexa7 = "${TUNE_FEATURES_tune-armv7ve} cortexa7" -TUNE_FEATURES_tune-cortexa7t = "${TUNE_FEATURES_tune-armv7vet} cortexa7" -TUNE_FEATURES_tune-cortexa7-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa7" -TUNE_FEATURES_tune-cortexa7t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa7" -TUNE_FEATURES_tune-cortexa7-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa7" -TUNE_FEATURES_tune-cortexa7t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa7" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa7 = "arm vfp cortexa7" +TUNE_FEATURES_tune-cortexa7t = "${TUNE_FEATURES_tune-cortexa7} thumb" +TUNE_FEATURES_tune-cortexa7-neon = "${TUNE_FEATURES_tune-cortexa7} neon" +TUNE_FEATURES_tune-cortexa7t-neon = "${TUNE_FEATURES_tune-cortexa7-neon} thumb" +TUNE_FEATURES_tune-cortexa7-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa7-neon} vfpv4" +TUNE_FEATURES_tune-cortexa7t-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa7-neon-vfpv4} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa7 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa7t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa7-vfp cortexa7t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa7-vfp cortexa7-neon" @@ -34,12 +36,13 @@ ARMPKGARCH_tune-cortexa7hf-neon = "cortexa7" ARMPKGARCH_tune-cortexa7thf-neon = "cortexa7" ARMPKGARCH_tune-cortexa7hf-neon-vfpv4 = "cortexa7" ARMPKGARCH_tune-cortexa7thf-neon-vfpv4 = "cortexa7" -TUNE_FEATURES_tune-cortexa7hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa7" -TUNE_FEATURES_tune-cortexa7thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa7" -TUNE_FEATURES_tune-cortexa7hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa7" -TUNE_FEATURES_tune-cortexa7thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa7" -TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa7" -TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa7" +# mcpu is used so don't use armv7ve as we don't want march +TUNE_FEATURES_tune-cortexa7hf = "${TUNE_FEATURES_tune-cortexa7} callconvention-hard" +TUNE_FEATURES_tune-cortexa7thf = "${TUNE_FEATURES_tune-cortexa7t} callconvention-hard" +TUNE_FEATURES_tune-cortexa7hf-neon = "${TUNE_FEATURES_tune-cortexa7-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa7thf-neon = "${TUNE_FEATURES_tune-cortexa7t-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa7-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4 = "${TUNE_FEATURES_tune-cortexa7t-neon-vfpv4} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa7hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa7hf-vfp cortexa7t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa7hf-vfp cortexa7hf-neon" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/external/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc new file mode 100644 index 00000000..f208b98e --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc @@ -0,0 +1,23 @@ +DEFAULTTUNE ?= "cortexa72-cortexa53" + +require conf/machine/include/arm/arch-armv8a.inc + +TUNEVALID[cortexa72-cortexa53] = "Enable big.LITTLE Cortex-A72.Cortex-A53 specific processor optimizations" + +TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a" + +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "" ,d)}" + +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mtune=cortex-a72.cortex-a53", "", d)}" + +# cortexa72.cortexa53 implies crc support +AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto" +ARMPKGARCH_tune-cortexa72-cortexa53 = "cortexa72-cortexa53" +ARMPKGARCH_tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53" +TUNE_FEATURES_tune-cortexa72-cortexa53 = "${TUNE_FEATURES_tune-armv8a-crc} cortexa72-cortexa53" +TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES_tune-armv8a-crc-crypto} cortexa72-cortexa53" +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/external/poky/meta/conf/machine/include/tune-cortexa72.inc b/external/poky/meta/conf/machine/include/tune-cortexa72.inc new file mode 100644 index 00000000..00f7745a --- /dev/null +++ b/external/poky/meta/conf/machine/include/tune-cortexa72.inc @@ -0,0 +1,13 @@ +DEFAULTTUNE ?= "cortexa72" + +TUNEVALID[cortexa72] = "Enable Cortex-A72 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa72', ' -mcpu=cortex-a72', '', d)}" + +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" +PACKAGE_EXTRA_ARCHS_tune-cortexa72 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72" +BASE_LIB_tune-cortexa72 = "lib64" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa8.inc b/external/poky/meta/conf/machine/include/tune-cortexa8.inc index 8ee8de97..6551ba49 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa8.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa8.inc @@ -4,6 +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)}" # Little Endian base configs AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon cortexa8t-neon" @@ -11,10 +12,11 @@ ARMPKGARCH_tune-cortexa8 = "cortexa8" ARMPKGARCH_tune-cortexa8t = "cortexa8" ARMPKGARCH_tune-cortexa8-neon = "cortexa8" ARMPKGARCH_tune-cortexa8t-neon = "cortexa8" -TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8" -TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8" -TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa8" -TUNE_FEATURES_tune-cortexa8t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa8" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa8 = "arm vfp cortexa8" +TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-cortexa8} thumb" +TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-cortexa8} neon" +TUNE_FEATURES_tune-cortexa8t-neon = "${TUNE_FEATURES_tune-cortexa8-neon} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa8-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa8-vfp cortexa8t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa8-vfp cortexa8-neon" @@ -26,10 +28,11 @@ ARMPKGARCH_tune-cortexa8hf = "cortexa8" ARMPKGARCH_tune-cortexa8thf = "cortexa8" ARMPKGARCH_tune-cortexa8hf-neon = "cortexa8" ARMPKGARCH_tune-cortexa8thf-neon = "cortexa8" -TUNE_FEATURES_tune-cortexa8hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa8" -TUNE_FEATURES_tune-cortexa8thf = "${TUNE_FEATURES_tune-armv7athf} cortexa8" -TUNE_FEATURES_tune-cortexa8hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa8" -TUNE_FEATURES_tune-cortexa8thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa8" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa8hf = "${TUNE_FEATURES_tune-cortexa8} callconvention-hard" +TUNE_FEATURES_tune-cortexa8thf = "${TUNE_FEATURES_tune-cortexa8t} callconvention-hard" +TUNE_FEATURES_tune-cortexa8hf-neon = "${TUNE_FEATURES_tune-cortexa8-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa8thf-neon = "${TUNE_FEATURES_tune-cortexa8t-neon} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa8hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa8hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa8thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa8hf-vfp cortexa8t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa8hf-vfp cortexa8hf-neon" diff --git a/external/poky/meta/conf/machine/include/tune-cortexa9.inc b/external/poky/meta/conf/machine/include/tune-cortexa9.inc index 0cf323c9..ecc7908c 100644 --- a/external/poky/meta/conf/machine/include/tune-cortexa9.inc +++ b/external/poky/meta/conf/machine/include/tune-cortexa9.inc @@ -4,6 +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)}" # Little Endian base configs AVAILTUNES += "cortexa9 cortexa9t cortexa9-neon cortexa9t-neon" @@ -11,10 +12,11 @@ ARMPKGARCH_tune-cortexa9 = "cortexa9" ARMPKGARCH_tune-cortexa9t = "cortexa9" ARMPKGARCH_tune-cortexa9-neon = "cortexa9" ARMPKGARCH_tune-cortexa9t-neon = "cortexa9" -TUNE_FEATURES_tune-cortexa9 = "${TUNE_FEATURES_tune-armv7a} cortexa9" -TUNE_FEATURES_tune-cortexa9t = "${TUNE_FEATURES_tune-armv7at} cortexa9" -TUNE_FEATURES_tune-cortexa9-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa9" -TUNE_FEATURES_tune-cortexa9t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa9" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa9 = "arm vfp cortexa9" +TUNE_FEATURES_tune-cortexa9t = "${TUNE_FEATURES_tune-cortexa9} thumb" +TUNE_FEATURES_tune-cortexa9-neon = "${TUNE_FEATURES_tune-cortexa9} neon" +TUNE_FEATURES_tune-cortexa9t-neon = "${TUNE_FEATURES_tune-cortexa9-neon} thumb" PACKAGE_EXTRA_ARCHS_tune-cortexa9 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa9-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa9t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa9-vfp cortexa9t2-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa9-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa9-vfp cortexa9-neon" @@ -26,10 +28,11 @@ ARMPKGARCH_tune-cortexa9hf = "cortexa9" ARMPKGARCH_tune-cortexa9thf = "cortexa9" ARMPKGARCH_tune-cortexa9hf-neon = "cortexa9" ARMPKGARCH_tune-cortexa9thf-neon = "cortexa9" -TUNE_FEATURES_tune-cortexa9hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa9" -TUNE_FEATURES_tune-cortexa9thf = "${TUNE_FEATURES_tune-armv7athf} cortexa9" -TUNE_FEATURES_tune-cortexa9hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa9" -TUNE_FEATURES_tune-cortexa9thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa9" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa9hf = "${TUNE_FEATURES_tune-cortexa9} callconvention-hard" +TUNE_FEATURES_tune-cortexa9thf = "${TUNE_FEATURES_tune-cortexa9t} callconvention-hard" +TUNE_FEATURES_tune-cortexa9hf-neon = "${TUNE_FEATURES_tune-cortexa9-neon} callconvention-hard" +TUNE_FEATURES_tune-cortexa9thf-neon = "${TUNE_FEATURES_tune-cortexa9t-neon} callconvention-hard" PACKAGE_EXTRA_ARCHS_tune-cortexa9hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa9hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa9thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa9hf-vfp cortexa9t2hf-vfp" PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa9hf-vfp cortexa9hf-neon" @@ -41,10 +44,11 @@ ARMPKGARCH_tune-cortexa9-vfpv3 = "cortexa9" ARMPKGARCH_tune-cortexa9t-vfpv3 = "cortexa9" ARMPKGARCH_tune-cortexa9hf-vfpv3 = "cortexa9" ARMPKGARCH_tune-cortexa9thf-vfpv3 = "cortexa9" -TUNE_FEATURES_tune-cortexa9-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} cortexa9" -TUNE_FEATURES_tune-cortexa9t-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} cortexa9" -TUNE_FEATURES_tune-cortexa9hf-vfpv3 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3} cortexa9" -TUNE_FEATURES_tune-cortexa9thf-vfpv3 = "${TUNE_FEATURES_tune-armv7athf-vfpv3} cortexa9" +# mcpu is used so don't use armv7a as we don't want march +TUNE_FEATURES_tune-cortexa9-vfpv3 = "${TUNE_FEATURES_tune-cortexa9} vfpv3" +TUNE_FEATURES_tune-cortexa9t-vfpv3 = "${TUNE_FEATURES_tune-cortexa9t} vfpv3" +TUNE_FEATURES_tune-cortexa9hf-vfpv3 = "${TUNE_FEATURES_tune-cortexa9hf} vfpv3" +TUNE_FEATURES_tune-cortexa9thf-vfpv3 = "${TUNE_FEATURES_tune-cortexa9thf} vfpv3" PACKAGE_EXTRA_ARCHS_tune-cortexa9-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3} cortexa9-vfp cortexa9-vfpv3" PACKAGE_EXTRA_ARCHS_tune-cortexa9t-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3} cortexa9-vfp cortexa9-vfpv3 cortexa9t2-vfp cortexa9t2-vfpv3" PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3} cortexa9hf-vfp cortexa9hf-vfpv3" diff --git a/external/poky/meta/conf/machine/include/tune-ep9312.inc b/external/poky/meta/conf/machine/include/tune-ep9312.inc index 84ca528d..be20eb36 100644 --- a/external/poky/meta/conf/machine/include/tune-ep9312.inc +++ b/external/poky/meta/conf/machine/include/tune-ep9312.inc @@ -2,8 +2,9 @@ DEFAULTTUNE ?= "ep9312" require conf/machine/include/arm/arch-armv4.inc -TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations" +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)}" AVAILTUNES += "ep9312" ARMPKGARCH_tune-ep9312 = "ep9312" diff --git a/external/poky/meta/conf/machine/include/tune-iwmmxt.inc b/external/poky/meta/conf/machine/include/tune-iwmmxt.inc index f27423cb..9a6cd23c 100644 --- a/external/poky/meta/conf/machine/include/tune-iwmmxt.inc +++ b/external/poky/meta/conf/machine/include/tune-iwmmxt.inc @@ -6,7 +6,8 @@ DEFAULTTUNE ?= "iwmmxt" 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', ' -march=iwmmxt -mcpu=iwmmxt', '', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', ' -mcpu=iwmmxt', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', 'armv5:', '' ,d)}" AVAILTUNES += "iwmmxt" ARMPKGARCH_tune-iwmmxt = "iwmmxt" diff --git a/external/poky/meta/conf/machine/include/tune-power5.inc b/external/poky/meta/conf/machine/include/tune-power5.inc index a346c309..48c33fb2 100644 --- a/external/poky/meta/conf/machine/include/tune-power5.inc +++ b/external/poky/meta/conf/machine/include/tune-power5.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "ppc64p5" +DEFAULTTUNE ?= "ppcp5" require conf/machine/include/powerpc/arch-powerpc64.inc @@ -6,12 +6,12 @@ TUNEVALID[power5] = "Enable IBM Power5 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power5', ' -mcpu=power5', '', d)}" AVAILTUNES += "ppcp5 ppc64p5" -TUNE_FEATURES_tune-ppcp5 = "m32 fpu-hard power5 altivec" +TUNE_FEATURES_tune-ppcp5 = "m32 fpu-hard power5 altivec bigendian" BASE_LIB_tune-ppcp5 = "lib" TUNE_PKGARCH_tune-ppcp5 = "ppcp5" PACKAGE_EXTRA_ARCHS_tune-ppcp5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp5" -TUNE_FEATURES_tune-ppc64p5 = "m64 fpu-hard power5 altivec" +TUNE_FEATURES_tune-ppc64p5 = "m64 fpu-hard power5 altivec bigendian" BASE_LIB_tune-ppc64p5 = "lib64" TUNE_PKGARCH_tune-ppc64p5 = "ppc64p5" PACKAGE_EXTRA_ARCHS_tune-ppc64p5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p5" @@ -19,3 +19,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppc64p5 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p # glibc configure options to get power5 specific library GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power5', '--with-cpu=power5', '', d)}" GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power5', '--with-cpu=power5', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'power5', ' qemu-usermode', '', d)}" diff --git a/external/poky/meta/conf/machine/include/tune-power6.inc b/external/poky/meta/conf/machine/include/tune-power6.inc index ee200f97..b7086602 100644 --- a/external/poky/meta/conf/machine/include/tune-power6.inc +++ b/external/poky/meta/conf/machine/include/tune-power6.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "ppcpr6" +DEFAULTTUNE ?= "ppcp6" require conf/machine/include/powerpc/arch-powerpc64.inc @@ -6,12 +6,12 @@ TUNEVALID[power6] = "Enable IBM Power6 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power6', ' -mcpu=power6', '', d)}" AVAILTUNES += "ppcp6 ppc64p6" -TUNE_FEATURES_tune-ppcp6 = "m32 fpu-hard power6 altivec" +TUNE_FEATURES_tune-ppcp6 = "m32 fpu-hard power6 altivec bigendian" BASE_LIB_tune-ppcp6 = "lib" TUNE_PKGARCH_tune-ppcp6 = "ppcp6" PACKAGE_EXTRA_ARCHS_tune-ppcp6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp6" -TUNE_FEATURES_tune-ppc64p6 = "m64 fpu-hard power6 altivec" +TUNE_FEATURES_tune-ppc64p6 = "m64 fpu-hard power6 altivec bigendian" BASE_LIB_tune-ppc64p6 = "lib64" TUNE_PKGARCH_tune-ppc64p6 = "ppc64p6" PACKAGE_EXTRA_ARCHS_tune-ppc64p6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p6" @@ -19,3 +19,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppc64p6 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p # glibc configure options to get power6 specific library GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power6', '--with-cpu=power6', '', d)}" GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power6', '--with-cpu=power6', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'power6', ' qemu-usermode', '', d)}" diff --git a/external/poky/meta/conf/machine/include/tune-power7.inc b/external/poky/meta/conf/machine/include/tune-power7.inc index 3a27719b..e976cc04 100644 --- a/external/poky/meta/conf/machine/include/tune-power7.inc +++ b/external/poky/meta/conf/machine/include/tune-power7.inc @@ -1,4 +1,4 @@ -DEFAULTTUNE ?= "ppcpr7" +DEFAULTTUNE ?= "ppcp7" require conf/machine/include/powerpc/arch-powerpc64.inc @@ -6,12 +6,12 @@ TUNEVALID[power7] = "Enable IBM Power7 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power7', ' -mcpu=power7', '', d)}" AVAILTUNES += "ppcp7 ppc64p7" -TUNE_FEATURES_tune-ppcp7 = "m32 fpu-hard power7 altivec" +TUNE_FEATURES_tune-ppcp7 = "m32 fpu-hard power7 altivec bigendian" BASE_LIB_tune-ppcp7 = "lib" TUNE_PKGARCH_tune-ppcp7 = "ppcp7" PACKAGE_EXTRA_ARCHS_tune-ppcp7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppcp7" -TUNE_FEATURES_tune-ppc64p7 = "m64 fpu-hard power7 altivec" +TUNE_FEATURES_tune-ppc64p7 = "m64 fpu-hard power7 altivec bigendian" BASE_LIB_tune-ppc64p7 = "lib64" TUNE_PKGARCH_tune-ppc64p7 = "ppc64p7" PACKAGE_EXTRA_ARCHS_tune-ppc64p7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p7" @@ -19,3 +19,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppc64p7 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64p # glibc configure options to get power7 specific library GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power7', '--with-cpu=power7', '', d)}" GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power7', '--with-cpu=power7', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'power7', ' qemu-usermode', '', d)}" diff --git a/external/poky/meta/conf/machine/include/tune-power9.inc b/external/poky/meta/conf/machine/include/tune-power9.inc new file mode 100644 index 00000000..81d6e8e9 --- /dev/null +++ b/external/poky/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/external/poky/meta/conf/machine/include/tune-ppc476.inc b/external/poky/meta/conf/machine/include/tune-ppc476.inc index d0011ff2..31eecc43 100644 --- a/external/poky/meta/conf/machine/include/tune-ppc476.inc +++ b/external/poky/meta/conf/machine/include/tune-ppc476.inc @@ -6,7 +6,7 @@ TUNEVALID[ppc476] = "Enable ppc476 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc476', ' -mcpu=476', '', d)}" AVAILTUNES += "ppc476" -TUNE_FEATURES_tune-ppc476 = "m32 fpu-hard ppc476" +TUNE_FEATURES_tune-ppc476 = "m32 fpu-hard ppc476 bigendian" TUNE_PKGARCH_tune-ppc476 = "ppc476" PACKAGE_EXTRA_ARCHS_tune-ppc476 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc476" diff --git a/external/poky/meta/conf/machine/include/tune-ppc603e.inc b/external/poky/meta/conf/machine/include/tune-ppc603e.inc index 13f60dd0..b110f138 100644 --- a/external/poky/meta/conf/machine/include/tune-ppc603e.inc +++ b/external/poky/meta/conf/machine/include/tune-ppc603e.inc @@ -6,7 +6,7 @@ TUNEVALID[ppc603e] = "Enable ppc603e specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc603e', ' -mcpu=603e', '', d)}" AVAILTUNES += "ppc603e" -TUNE_FEATURES_tune-ppc603e = "m32 fpu-hard ppc603e" +TUNE_FEATURES_tune-ppc603e = "m32 fpu-hard ppc603e bigendian" TUNE_PKGARCH_tune-ppc603e = "ppc603e" PACKAGE_EXTRA_ARCHS_tune-ppc603e = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc603e" diff --git a/external/poky/meta/conf/machine/include/tune-ppc7400.inc b/external/poky/meta/conf/machine/include/tune-ppc7400.inc index 425e8bd2..92d90299 100644 --- a/external/poky/meta/conf/machine/include/tune-ppc7400.inc +++ b/external/poky/meta/conf/machine/include/tune-ppc7400.inc @@ -6,7 +6,7 @@ TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', ' -mcpu=7400 -mno-spe', '', d)}" AVAILTUNES += "ppc7400" -TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec" +TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec bigendian" TUNE_PKGARCH_tune-ppc7400 = "ppc7400" PACKAGE_EXTRA_ARCHS_tune-ppc7400 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc7400" diff --git a/external/poky/meta/conf/machine/include/tune-ppce300c2.inc b/external/poky/meta/conf/machine/include/tune-ppce300c2.inc index af21f601..6adeb4bd 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce300c2.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce300c2.inc @@ -6,6 +6,6 @@ TUNEVALID[ppce300c2] = "Enable ppce300c2 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c2', ' -mcpu=e300c2', '', d)}" AVAILTUNES += "ppce300c2" -TUNE_FEATURES_tune-ppce300c2 = "m32 fpu-soft ppce300c2" +TUNE_FEATURES_tune-ppce300c2 = "m32 fpu-soft ppce300c2 bigendian" TUNE_PKGARCH_tune-ppce300c2 = "ppce300c2" PACKAGE_EXTRA_ARCHS_tune-ppce300c2 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c2" diff --git a/external/poky/meta/conf/machine/include/tune-ppce500.inc b/external/poky/meta/conf/machine/include/tune-ppce500.inc index 89ec3f38..abf81b90 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce500.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce500.inc @@ -15,6 +15,6 @@ SPEABIEXTENSION = "${@bb.utils.filter('TUNE_FEATURES', 'spe', d)}" ABIEXTENSION .= "${SPEABIEXTENSION}" AVAILTUNES += "ppce500" -TUNE_FEATURES_tune-ppce500 = "m32 spe ppce500" +TUNE_FEATURES_tune-ppce500 = "m32 spe ppce500 bigendian" TUNE_PKGARCH_tune-ppce500 = "ppce500" PACKAGE_EXTRA_ARCHS_tune-ppce500 = "ppce500" diff --git a/external/poky/meta/conf/machine/include/tune-ppce500mc.inc b/external/poky/meta/conf/machine/include/tune-ppce500mc.inc index bc26a0f8..9f8a1728 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce500mc.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce500mc.inc @@ -6,7 +6,7 @@ TUNEVALID[ppce500mc] = "Enable ppce500mc specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce500mc', ' -mcpu=e500mc', '', d)}" AVAILTUNES += "ppce500mc" -TUNE_FEATURES_tune-ppce500mc = "m32 fpu-hard ppce500mc" +TUNE_FEATURES_tune-ppce500mc = "m32 fpu-hard ppce500mc bigendian" TUNE_PKGARCH_tune-ppce500mc = "ppce500mc" PACKAGE_EXTRA_ARCHS_tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce500mc" diff --git a/external/poky/meta/conf/machine/include/tune-ppce500v2.inc b/external/poky/meta/conf/machine/include/tune-ppce500v2.inc index 3a006e2c..f6c7c176 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce500v2.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce500v2.inc @@ -15,6 +15,6 @@ SPEABIEXTENSION = "${@bb.utils.filter('TUNE_FEATURES', 'spe', d)}" ABIEXTENSION .= "${SPEABIEXTENSION}" AVAILTUNES += "ppce500v2" -TUNE_FEATURES_tune-ppce500v2 = "m32 spe ppce500v2" +TUNE_FEATURES_tune-ppce500v2 = "m32 ppce500v2 bigendian" TUNE_PKGARCH_tune-ppce500v2 = "ppce500v2" PACKAGE_EXTRA_ARCHS_tune-ppce500v2 = "ppce500v2" diff --git a/external/poky/meta/conf/machine/include/tune-ppce5500.inc b/external/poky/meta/conf/machine/include/tune-ppce5500.inc index cebb2440..acc6a50f 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce5500.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce5500.inc @@ -6,12 +6,12 @@ TUNEVALID[e5500] = "Enable Freescale e5500 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'e5500', ' -mcpu=e5500', '', d)}" AVAILTUNES += "ppce5500 ppc64e5500" -TUNE_FEATURES_tune-ppce5500 = "m32 fpu-hard e5500" +TUNE_FEATURES_tune-ppce5500 = "m32 fpu-hard e5500 bigendian" BASE_LIB_tune-ppce5500 = "lib" TUNE_PKGARCH_tune-ppce5500 = "ppce5500" PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce5500" -TUNE_FEATURES_tune-ppc64e5500 = "m64 fpu-hard e5500" +TUNE_FEATURES_tune-ppc64e5500 = "m64 fpu-hard e5500 bigendian" BASE_LIB_tune-ppc64e5500 = "lib64" TUNE_PKGARCH_tune-ppc64e5500 = "ppc64e5500" PACKAGE_EXTRA_ARCHS_tune-ppc64e5500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64e5500" diff --git a/external/poky/meta/conf/machine/include/tune-ppce6500.inc b/external/poky/meta/conf/machine/include/tune-ppce6500.inc index 5db7e760..d12d218d 100644 --- a/external/poky/meta/conf/machine/include/tune-ppce6500.inc +++ b/external/poky/meta/conf/machine/include/tune-ppce6500.inc @@ -6,12 +6,12 @@ TUNEVALID[e6500] = "Enable Freescale e6500 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' -mcpu=e6500', '', d)}" AVAILTUNES += "ppce6500 ppc64e6500" -TUNE_FEATURES_tune-ppce6500 = "m32 fpu-hard e6500 altivec" +TUNE_FEATURES_tune-ppce6500 = "m32 fpu-hard e6500 altivec bigendian" BASE_LIB_tune-ppce6500 = "lib" TUNE_PKGARCH_tune-ppce6500 = "ppce6500" PACKAGE_EXTRA_ARCHS_tune-ppce6500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce6500" -TUNE_FEATURES_tune-ppc64e6500 = "m64 fpu-hard e6500 altivec" +TUNE_FEATURES_tune-ppc64e6500 = "m64 fpu-hard e6500 altivec bigendian" BASE_LIB_tune-ppc64e6500 = "lib64" TUNE_PKGARCH_tune-ppc64e6500 = "ppc64e6500" PACKAGE_EXTRA_ARCHS_tune-ppc64e6500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64e6500" diff --git a/external/poky/meta/conf/machine/include/tune-strongarm1100.inc b/external/poky/meta/conf/machine/include/tune-strongarm1100.inc index 80cfb8ab..e978e925 100644 --- a/external/poky/meta/conf/machine/include/tune-strongarm1100.inc +++ b/external/poky/meta/conf/machine/include/tune-strongarm1100.inc @@ -4,8 +4,9 @@ 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)}" AVAILTUNES += "strongarm" ARMPKGARCH_tune-strongarm = "strongarm" -TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm" +TUNE_FEATURES_tune-strongarm = "arm strongarm" PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4} strongarm" diff --git a/external/poky/meta/conf/machine/include/tune-thunderx.inc b/external/poky/meta/conf/machine/include/tune-thunderx.inc index 3d43b0f7..aa4d0501 100644 --- a/external/poky/meta/conf/machine/include/tune-thunderx.inc +++ b/external/poky/meta/conf/machine/include/tune-thunderx.inc @@ -1,11 +1,11 @@ -require conf/machine/include/arm/arch-armv8.inc - DEFAULTTUNE ?= "thunderx" AVAILTUNES += "thunderx thunderx_be" TUNEVALID[thunderx] = "Enable instructions for Cavium ThunderX" -TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx ', '',d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx', '',d)}" + +require conf/machine/include/arm/arch-armv8a.inc ARMPKGARCH_tune-thunderx ?= "thunderx" ARMPKGARCH_tune-thunderx_be ?= "thunderx_be" @@ -15,5 +15,5 @@ TUNE_FEATURES_tune-thunderx_be = "${TUNE_FEATURES_tune-thunderx} bigendian" BASE_LIB_tune-thunderx = "lib64" BASE_LIB_tune-thunderx_be = "lib64" -PACKAGE_EXTRA_ARCHS_tune-thunderx = "aarch64 thunderx" +PACKAGE_EXTRA_ARCHS_tune-thunderx = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} thunderx" PACKAGE_EXTRA_ARCHS_tune-thunderx_be = "aarch64_be thunderx_be" diff --git a/external/poky/meta/conf/machine/include/tune-xscale.inc b/external/poky/meta/conf/machine/include/tune-xscale.inc index 0d073339..19d5e13e 100644 --- a/external/poky/meta/conf/machine/include/tune-xscale.inc +++ b/external/poky/meta/conf/machine/include/tune-xscale.inc @@ -4,13 +4,16 @@ 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)}" AVAILTUNES += "xscale" ARMPKGARCH_tune-xscale = "xscale" -TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale" +# mcpu is used so don't use armv5te as we don't want march +TUNE_FEATURES_tune-xscale = "arm thumb dsp xscale" PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} xscale xscalet xscalee xscalete" AVAILTUNES += "xscale-be" ARMPKGARCH_tune-xscale-be = "xscale" -TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-armv5teb} xscale bigendian" +# mcpu is used so don't use armv5te as we don't want march +TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-xscale} bigendian" PACKAGE_EXTRA_ARCHS_tune-xscale-be = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} xscaleb xscaletb xscaleeb xscaleteb" diff --git a/external/poky/meta/conf/machine/include/x86-base.inc b/external/poky/meta/conf/machine/include/x86-base.inc index c2927920..a7271471 100644 --- a/external/poky/meta/conf/machine/include/x86-base.inc +++ b/external/poky/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 ??= "4.18%" +PREFERRED_VERSION_linux-yocto ??= "5.4%" # # XSERVER subcomponents, used to build the XSERVER variable diff --git a/external/poky/meta/conf/machine/qemuarm.conf b/external/poky/meta/conf/machine/qemuarm.conf index d2f2c85c..4e605d3a 100644 --- a/external/poky/meta/conf/machine/qemuarm.conf +++ b/external/poky/meta/conf/machine/qemuarm.conf @@ -1,20 +1,33 @@ #@TYPE: Machine -#@NAME: arm_versatile_926ejs -#@DESCRIPTION: arm_versatile_926ejs +#@NAME: QEMU Arm Cortex-A15 machine +#@DESCRIPTION: Machine configuration for running an ARMv7 system on QEMU +require conf/machine/include/tune-cortexa15.inc require conf/machine/include/qemu.inc -require conf/machine/include/tune-arm926ejs.inc -#require conf/machine/include/tune-arm1136jf-s.inc KERNEL_IMAGETYPE = "zImage" -SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" # For runqemu QB_SYSTEM_NAME = "qemu-system-arm" -QB_MACHINE = "-machine versatilepb" -QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty" -# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy -QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet -device virtio-rng-pci" -PREFERRED_VERSION_linux-yocto ??= "4.18%" -QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" +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 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@" +# Virtio block device +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +# Virtio serial console +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" + +KMACHINE_qemuarm = "qemuarma15" diff --git a/external/poky/meta/conf/machine/qemuarm64.conf b/external/poky/meta/conf/machine/qemuarm64.conf index 242889ac..2cf1a020 100644 --- a/external/poky/meta/conf/machine/qemuarm64.conf +++ b/external/poky/meta/conf/machine/qemuarm64.conf @@ -1,24 +1,32 @@ #@TYPE: Machine -#@NAME: generic armv8 machine -#@DESCRIPTION: Machine configuration for running a generic armv8 +#@NAME: QEMU ARMv8 machine +#@DESCRIPTION: Machine configuration for running an ARMv8 system on QEMU -require conf/machine/include/arm/arch-armv8.inc +require conf/machine/include/arm/arch-armv8a.inc require conf/machine/include/qemu.inc KERNEL_IMAGETYPE = "Image" -SERIAL_CONSOLES ?= "38400;ttyAMA0 38400;hvc0" +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" # For runqemu QB_SYSTEM_NAME = "qemu-system-aarch64" -QB_MEM = "-m 512" QB_MACHINE = "-machine virt" QB_CPU = "-cpu cortex-a57" -QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,38400" +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 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 = "-show-cursor -device virtio-rng-pci -monitor null" +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@" +# Virtio block device QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +# Virtio serial console 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" +QB_TCPSERIAL_OPT = "-device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" diff --git a/external/poky/meta/conf/machine/qemuarmv5.conf b/external/poky/meta/conf/machine/qemuarmv5.conf new file mode 100644 index 00000000..e7f24fe1 --- /dev/null +++ b/external/poky/meta/conf/machine/qemuarmv5.conf @@ -0,0 +1,22 @@ +#@TYPE: Machine +#@NAME: QEMU ARM9 machine +#@DESCRIPTION: Machine configuration for running an ARMv5 system on QEMU + +require conf/machine/include/qemu.inc +require conf/machine/include/tune-arm926ejs.inc + +KERNEL_IMAGETYPE = "zImage" + +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" + +# For runqemu +QB_SYSTEM_NAME = "qemu-system-arm" +QB_MACHINE = "-machine versatilepb" +QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty" +QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" +PREFERRED_VERSION_linux-yocto ??= "5.4%" +QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" + +KMACHINE_qemuarmv5 = "qemuarm" diff --git a/external/poky/meta/conf/machine/qemumips.conf b/external/poky/meta/conf/machine/qemumips.conf index a60f67aa..4617c3c7 100644 --- a/external/poky/meta/conf/machine/qemumips.conf +++ b/external/poky/meta/conf/machine/qemumips.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: mti_malta32_be MIPS -#@DESCRIPTION: mti_malta32_be +#@NAME: QEMU MIPS32 machine +#@DESCRIPTION: Machine configuration for running a MIPS system on QEMU require conf/machine/include/qemu.inc require conf/machine/include/tune-mips32r2.inc @@ -10,3 +10,7 @@ KERNEL_IMAGETYPE = "vmlinux" KERNEL_ALT_IMAGETYPE = "vmlinux.bin" SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1" + +QB_SYSTEM_NAME = "qemu-system-mips" + +QB_CPU = "-cpu 34Kf" diff --git a/external/poky/meta/conf/machine/qemumips64.conf b/external/poky/meta/conf/machine/qemumips64.conf index a166a103..6d517466 100644 --- a/external/poky/meta/conf/machine/qemumips64.conf +++ b/external/poky/meta/conf/machine/qemumips64.conf @@ -1,12 +1,16 @@ #@TYPE: Machine -#@NAME: mti-malta64-be MIPS64 -#@DESCRIPTION: mti-malta64-be +#@NAME: QEMU MIPS64 machine +#@DESCRIPTION: Machine configuration for running a MIPS64 system on QEMU require conf/machine/include/qemu.inc -require conf/machine/include/tune-mips64.inc +require conf/machine/include/tune-mips64r2.inc require conf/machine/include/qemuboot-mips.inc +QB_CPU = "-cpu MIPS64R2-generic" + KERNEL_IMAGETYPE = "vmlinux" KERNEL_ALT_IMAGETYPE = "vmlinux.bin" SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1" + +QB_SYSTEM_NAME = "qemu-system-mips64" diff --git a/external/poky/meta/conf/machine/qemuppc.conf b/external/poky/meta/conf/machine/qemuppc.conf index 537b2f67..bd88eeb1 100644 --- a/external/poky/meta/conf/machine/qemuppc.conf +++ b/external/poky/meta/conf/machine/qemuppc.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: qemu PPC Emulator setup -#@DESCRIPTION: Machine configuration for running an PPC system under qemu emulation +#@NAME: QEMU PPC machine +#@DESCRIPTION: Machine configuration for running a PPC system on QEMU require conf/machine/include/qemu.inc require conf/machine/include/tune-ppc7400.inc @@ -16,6 +16,7 @@ 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 = "-show-cursor -usb -device usb-tablet -device virtio-rng-pci" +QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" diff --git a/external/poky/meta/conf/machine/qemuriscv64.conf b/external/poky/meta/conf/machine/qemuriscv64.conf new file mode 100644 index 00000000..a753af05 --- /dev/null +++ b/external/poky/meta/conf/machine/qemuriscv64.conf @@ -0,0 +1,11 @@ +#@TYPE: Machine +#@NAME: generic riscv64 machine +#@DESCRIPTION: Machine configuration for running a generic riscv64 + +require conf/machine/include/riscv/qemuriscv.inc + +XVISOR_PLAT = "riscv/virt64" + +EXTRA_IMAGEDEPENDS += "u-boot" +UBOOT_MACHINE = "qemu-riscv64_smode_defconfig" +UBOOT_ELF = "u-boot" diff --git a/external/poky/meta/conf/machine/qemux86-64.conf b/external/poky/meta/conf/machine/qemux86-64.conf index 9966d1a0..db9004ee 100644 --- a/external/poky/meta/conf/machine/qemux86-64.conf +++ b/external/poky/meta/conf/machine/qemux86-64.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: common_pc -#@DESCRIPTION: Machine configuration for running a common x86 +#@NAME: QEMU x86-64 machine +#@DESCRIPTION: Machine configuration for running an x86-64 system on QEMU PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" @@ -18,12 +18,16 @@ KERNEL_IMAGETYPE = "bzImage" SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1" +# Install swrast and glx if opengl is in DISTRO_FEATURES and x32 is not in use. +# This is because gallium swrast driver was found to crash X server on startup in qemu x32. XSERVER = "xserver-xorg \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', \ + bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'mesa-driver-swrast xserver-xorg-extension-glx', d), '', d)} \ xf86-video-cirrus \ xf86-video-fbdev \ xf86-video-vmware \ xf86-video-modesetting \ + xf86-video-vesa \ xserver-xorg-module-libint10 \ " @@ -33,9 +37,8 @@ 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" + +#For runqemu +QB_SYSTEM_NAME = "qemu-system-x86_64" diff --git a/external/poky/meta/conf/machine/qemux86.conf b/external/poky/meta/conf/machine/qemux86.conf index e78fb6e8..7e6723b8 100644 --- a/external/poky/meta/conf/machine/qemux86.conf +++ b/external/poky/meta/conf/machine/qemux86.conf @@ -1,6 +1,6 @@ #@TYPE: Machine -#@NAME: common_pc -#@DESCRIPTION: Machine configuration for running a common x86 +#@NAME: QEMU x86 machine +#@DESCRIPTION: Machine configuration for running an x86 system on QEMU PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" PREFERRED_PROVIDER_virtual/libgl ?= "mesa" @@ -8,7 +8,8 @@ PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" require conf/machine/include/qemu.inc -require conf/machine/include/tune-i586.inc +DEFAULTTUNE ?= "core2-32" +require conf/machine/include/tune-corei7.inc require conf/machine/include/qemuboot-x86.inc UBOOT_MACHINE ?= "qemu-x86_defconfig" @@ -23,6 +24,7 @@ XSERVER = "xserver-xorg \ xf86-video-fbdev \ xf86-video-vmware \ xf86-video-modesetting \ + xf86-video-vesa \ xserver-xorg-module-libint10 \ " @@ -32,9 +34,8 @@ 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" + +#For runqemu +QB_SYSTEM_NAME = "qemu-system-i386" diff --git a/external/poky/meta/conf/multilib.conf b/external/poky/meta/conf/multilib.conf index 65a28ddb..58f2ac5c 100644 --- a/external/poky/meta/conf/multilib.conf +++ b/external/poky/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" +NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf" diff --git a/external/poky/meta/conf/sanity.conf b/external/poky/meta/conf/sanity.conf index 45e67525..8b2f6553 100644 --- a/external/poky/meta/conf/sanity.conf +++ b/external/poky/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.39.1" +BB_MIN_VERSION = "1.43.2" SANITY_ABIFILE = "${TMPDIR}/abi_version" diff --git a/external/poky/meta/files/common-licenses/Apache-2.0-with-LLVM-exception b/external/poky/meta/files/common-licenses/Apache-2.0-with-LLVM-exception new file mode 100644 index 00000000..f9dc5061 --- /dev/null +++ b/external/poky/meta/files/common-licenses/Apache-2.0-with-LLVM-exception @@ -0,0 +1,219 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. + diff --git a/external/poky/meta/files/common-licenses/BSD-2-Clause b/external/poky/meta/files/common-licenses/BSD-2-Clause index ade0f34d..f1917d6b 100644 --- a/external/poky/meta/files/common-licenses/BSD-2-Clause +++ b/external/poky/meta/files/common-licenses/BSD-2-Clause @@ -1,13 +1,10 @@ -The FreeBSD Copyright - -Copyright 1992-2010 The FreeBSD Project. All rights reserved. +Copyright Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``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 FREEBSD PROJECT 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. +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE 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 HOLDER 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/external/poky/meta/files/common-licenses/BSD-2-Clause-Patent b/external/poky/meta/files/common-licenses/BSD-2-Clause-Patent new file mode 100644 index 00000000..1184c029 --- /dev/null +++ b/external/poky/meta/files/common-licenses/BSD-2-Clause-Patent @@ -0,0 +1,47 @@ +Copyright (c) + +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/external/poky/meta/files/common-licenses/Elfutils-Exception b/external/poky/meta/files/common-licenses/Elfutils-Exception deleted file mode 100644 index 627d7691..00000000 --- a/external/poky/meta/files/common-licenses/Elfutils-Exception +++ /dev/null @@ -1,12 +0,0 @@ - This file describes the limits of the Exception under which you are allowed - to distribute Non-GPL Code in linked combination with Red Hat elfutils. - For the full text of the license, please see one of the header files - included with the source distribution or the file COPYING found in the - top level directory of the source. - - The Approved Interfaces are the functions declared in the files: - - libelf.h - libdw.h - libdwfl.h - diff --git a/external/poky/meta/files/common-licenses/Intel b/external/poky/meta/files/common-licenses/Intel new file mode 100644 index 00000000..29ddf57a --- /dev/null +++ b/external/poky/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/external/poky/meta/files/common-licenses/bzip2 b/external/poky/meta/files/common-licenses/bzip2 deleted file mode 100644 index 8ec599dc..00000000 --- a/external/poky/meta/files/common-licenses/bzip2 +++ /dev/null @@ -1,41 +0,0 @@ --------------------------------------------------------------------------- - -This program, "bzip2", the associated library "libbzip2", and all -documentation, are copyright (C) 1996-2010 Julian R Seward. All -rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - -4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Julian Seward, jseward@bzip.org -bzip2/libbzip2 version 1.0.6 of 6 September 2010 - --------------------------------------------------------------------------- diff --git a/external/poky/meta/files/common-licenses/bzip2-1.0.6 b/external/poky/meta/files/common-licenses/bzip2-1.0.6 new file mode 100644 index 00000000..8ec599dc --- /dev/null +++ b/external/poky/meta/files/common-licenses/bzip2-1.0.6 @@ -0,0 +1,41 @@ +-------------------------------------------------------------------------- + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2010 Julian R Seward. All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Julian Seward, jseward@bzip.org +bzip2/libbzip2 version 1.0.6 of 6 September 2010 + +-------------------------------------------------------------------------- diff --git a/external/poky/meta/files/common-licenses/vim b/external/poky/meta/files/common-licenses/vim new file mode 100644 index 00000000..4aa818eb --- /dev/null +++ b/external/poky/meta/files/common-licenses/vim @@ -0,0 +1,81 @@ +VIM LICENSE + +I) There are no restrictions on distributing unmodified copies of Vim except + that they must include this license text. You can also distribute + unmodified parts of Vim, likewise unrestricted except that they must + include this license text. You are also allowed to include executables + that you made from the unmodified Vim sources, plus your own usage + examples and Vim scripts. + +II) It is allowed to distribute a modified (or extended) version of Vim, + including executables and/or source code, when the following four + conditions are met: + 1) This license text must be included unmodified. + 2) The modified Vim must be distributed in one of the following five ways: + a) If you make changes to Vim yourself, you must clearly describe in + the distribution how to contact you. When the maintainer asks you + (in any way) for a copy of the modified Vim you distributed, you + must make your changes, including source code, available to the + maintainer without fee. The maintainer reserves the right to + include your changes in the official version of Vim. What the + maintainer will do with your changes and under what license they + will be distributed is negotiable. If there has been no negotiation + then this license, or a later version, also applies to your changes. + The current maintainer is Bram Moolenaar . If this + changes it will be announced in appropriate places (most likely + vim.sf.net, www.vim.org and/or comp.editors). When it is completely + impossible to contact the maintainer, the obligation to send him + your changes ceases. Once the maintainer has confirmed that he has + received your changes they will not have to be sent again. + b) If you have received a modified Vim that was distributed as + mentioned under a) you are allowed to further distribute it + unmodified, as mentioned at I). If you make additional changes the + text under a) applies to those changes. + c) Provide all the changes, including source code, with every copy of + the modified Vim you distribute. This may be done in the form of a + context diff. You can choose what license to use for new code you + add. The changes and their license must not restrict others from + making their own changes to the official version of Vim. + d) When you have a modified Vim which includes changes as mentioned + under c), you can distribute it without the source code for the + changes if the following three conditions are met: + - The license that applies to the changes permits you to distribute + the changes to the Vim maintainer without fee or restriction, and + permits the Vim maintainer to include the changes in the official + version of Vim without fee or restriction. + - You keep the changes for at least three years after last + distributing the corresponding modified Vim. When the maintainer + or someone who you distributed the modified Vim to asks you (in + any way) for the changes within this period, you must make them + available to him. + - You clearly describe in the distribution how to contact you. This + contact information must remain valid for at least three years + after last distributing the corresponding modified Vim, or as long + as possible. + e) When the GNU General Public License (GPL) applies to the changes, + you can distribute the modified Vim under the GNU GPL version 2 or + any later version. + 3) A message must be added, at least in the output of the ":version" + command and in the intro screen, such that the user of the modified Vim + is able to see that it was modified. When distributing as mentioned + under 2)e) adding the message is only required for as far as this does + not conflict with the license used for the changes. + 4) The contact information as required under 2)a) and 2)d) must not be + removed or changed, except that the person himself can make + corrections. + +III) If you distribute a modified version of Vim, you are encouraged to use + the Vim license for your changes and make them available to the + maintainer, including the source code. The preferred way to do this is + by e-mail or by uploading the files to a server and e-mailing the URL. + If the number of changes is small (e.g., a modified Makefile) e-mailing a + context diff will do. The e-mail address to be used is + + +IV) It is not allowed to remove this license from the distribution of the Vim + sources, parts of it or from a modified version. You may use this + license for previous Vim releases instead of the license that they came + with, at your option. + +=== +Read more about this license at http://vimdoc.sourceforge.net/htmldoc/uganda.html#license diff --git a/external/poky/meta/files/ext-sdk-prepare.py b/external/poky/meta/files/ext-sdk-prepare.py index 96c5212a..163d5e99 100644 --- a/external/poky/meta/files/ext-sdk-prepare.py +++ b/external/poky/meta/files/ext-sdk-prepare.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Prepare the build system within the extensible SDK diff --git a/external/poky/meta/files/toolchain-shar-extract.sh b/external/poky/meta/files/toolchain-shar-extract.sh index 9eabd626..04527f89 100644 --- a/external/poky/meta/files/toolchain-shar-extract.sh +++ b/external/poky/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 @@ -113,7 +113,16 @@ done payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1)) if [ "$listcontents" = "1" ] ; then - tail -n +$payload_offset $0| tar tvJ || exit 1 + if [ @SDK_ARCHIVE_TYPE@ = "zip" ]; then + tail -n +$payload_offset $0 > sdk.zip + if unzip -l sdk.zip;then + rm sdk.zip + else + rm sdk.zip && exit 1 + fi + else + tail -n +$payload_offset $0| tar tvJ || exit 1 + fi exit fi @@ -185,11 +194,11 @@ fi if [ -e "$target_sdk_dir/environment-setup-@REAL_MULTIMACH_TARGET_SYS@" ]; then echo "The directory \"$target_sdk_dir\" already contains a SDK for this architecture." - printf "If you continue, existing files will be overwritten! Proceed[y/N]? " + printf "If you continue, existing files will be overwritten! Proceed [y/N]? " default_answer="n" else - printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed[Y/n]? " + printf "You are about to install the SDK to \"$target_sdk_dir\". Proceed [Y/n]? " default_answer="y" fi @@ -232,7 +241,16 @@ if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; the fi printf "Extracting SDK..." -tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1 +if [ @SDK_ARCHIVE_TYPE@ = "zip" ]; then + tail -n +$payload_offset $0 > sdk.zip + if $SUDO_EXEC unzip $EXTRA_TAR_OPTIONS sdk.zip -d $target_sdk_dir;then + rm sdk.zip + else + rm sdk.zip && exit 1 + fi +else + tail -n +$payload_offset $0| $SUDO_EXEC tar mxJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1 +fi echo "done" printf "Setting it up..." diff --git a/external/poky/meta/lib/bblayers/create.py b/external/poky/meta/lib/bblayers/create.py index 2ebf151a..542f31fc 100644 --- a/external/poky/meta/lib/bblayers/create.py +++ b/external/poky/meta/lib/bblayers/create.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import logging import os import sys diff --git a/external/poky/meta/lib/buildstats.py b/external/poky/meta/lib/buildstats.py index c5d4c73c..8627ed3c 100644 --- a/external/poky/meta/lib/buildstats.py +++ b/external/poky/meta/lib/buildstats.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# # Implements system state sampling. Called by buildstats.bbclass. # Because it is a real Python module, it can hold persistent state, # like open log files and the time of the last sampling. diff --git a/external/poky/meta/lib/oe/__init__.py b/external/poky/meta/lib/oe/__init__.py index 3ad9513f..4e7c09da 100644 --- a/external/poky/meta/lib/oe/__init__.py +++ b/external/poky/meta/lib/oe/__init__.py @@ -1,2 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + from pkgutil import extend_path __path__ = extend_path(__path__, __name__) diff --git a/external/poky/meta/lib/oe/buildhistory_analysis.py b/external/poky/meta/lib/oe/buildhistory_analysis.py index d3cde4f6..5b28774c 100644 --- a/external/poky/meta/lib/oe/buildhistory_analysis.py +++ b/external/poky/meta/lib/oe/buildhistory_analysis.py @@ -3,6 +3,8 @@ # Copyright (C) 2012-2013, 2016-2017 Intel Corporation # Author: Paul Eggleton # +# SPDX-License-Identifier: GPL-2.0-only +# # Note: requires GitPython 0.3.1+ # # You can use this from the command line by running scripts/buildhistory-diff @@ -179,7 +181,7 @@ class ChangeRecord: diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='') out += '\n '.join(list(diff)[2:]) out += '\n --' - elif self.fieldname in img_monitor_files or '/image-files/' in self.path: + elif self.fieldname in img_monitor_files or '/image-files/' in self.path or self.fieldname == "sysroot": if self.filechanges or (self.oldvalue and self.newvalue): fieldname = self.fieldname if '/image-files/' in self.path: @@ -280,7 +282,7 @@ def file_list_to_dict(lines): return adict -def compare_file_lists(alines, blines): +def compare_file_lists(alines, blines, compare_ownership=True): adict = file_list_to_dict(alines) bdict = file_list_to_dict(blines) filechanges = [] @@ -292,16 +294,20 @@ def compare_file_lists(alines, blines): newvalue = newsplitv[0][0] if oldvalue != newvalue: filechanges.append(FileChange(path, FileChange.changetype_type, oldvalue, newvalue)) + # Check permissions oldvalue = splitv[0][1:] newvalue = newsplitv[0][1:] if oldvalue != newvalue: filechanges.append(FileChange(path, FileChange.changetype_perms, oldvalue, newvalue)) - # Check owner/group - oldvalue = '%s/%s' % (splitv[1], splitv[2]) - newvalue = '%s/%s' % (newsplitv[1], newsplitv[2]) - if oldvalue != newvalue: - filechanges.append(FileChange(path, FileChange.changetype_ownergroup, oldvalue, newvalue)) + + if compare_ownership: + # Check owner/group + oldvalue = '%s/%s' % (splitv[1], splitv[2]) + newvalue = '%s/%s' % (newsplitv[1], newsplitv[2]) + if oldvalue != newvalue: + filechanges.append(FileChange(path, FileChange.changetype_ownergroup, oldvalue, newvalue)) + # Check symlink target if newsplitv[0][0] == 'l': if len(splitv) > 3: @@ -407,7 +413,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) @@ -569,6 +575,15 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep elif filename.startswith('latest.'): chg = ChangeRecord(path, filename, d.a_blob.data_stream.read().decode('utf-8'), d.b_blob.data_stream.read().decode('utf-8'), True) changes.append(chg) + elif filename == 'sysroot': + alines = d.a_blob.data_stream.read().decode('utf-8').splitlines() + blines = d.b_blob.data_stream.read().decode('utf-8').splitlines() + filechanges = compare_file_lists(alines,blines, compare_ownership=False) + if filechanges: + chg = ChangeRecord(path, filename, None, None, True) + chg.filechanges = filechanges + changes.append(chg) + elif path.startswith('images/'): filename = os.path.basename(d.a_blob.path) if filename in img_monitor_files: diff --git a/external/poky/meta/lib/oe/cachedpath.py b/external/poky/meta/lib/oe/cachedpath.py index 0840cc4c..254257a8 100644 --- a/external/poky/meta/lib/oe/cachedpath.py +++ b/external/poky/meta/lib/oe/cachedpath.py @@ -1,4 +1,6 @@ # +# SPDX-License-Identifier: GPL-2.0-only +# # Based on standard python library functions but avoid # repeated stat calls. Its assumed the files will not change from under us # so we can cache stat calls. diff --git a/external/poky/meta/lib/oe/classextend.py b/external/poky/meta/lib/oe/classextend.py index d2eeaf0e..f02fbe9f 100644 --- a/external/poky/meta/lib/oe/classextend.py +++ b/external/poky/meta/lib/oe/classextend.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import collections class ClassExtender(object): @@ -20,6 +24,8 @@ class ClassExtender(object): if not subs.startswith(self.extname): return "virtual/" + self.extname + "-" + subs return name + if name.startswith("/"): + return name if not name.startswith(self.extname): return self.extname + "-" + name return name @@ -114,7 +120,7 @@ class NativesdkClassExtender(ClassExtender): def map_depends(self, dep): if dep.startswith(self.extname): return dep - if dep.endswith(("-gcc-initial", "-gcc", "-g++")): + if dep.endswith(("-gcc", "-g++")): return dep + "-crosssdk" elif dep.endswith(("-native", "-native-runtime")) or ('nativesdk-' in dep) or ('-cross-' in dep) or ('-crosssdk-' in dep): return dep diff --git a/external/poky/meta/lib/oe/classutils.py b/external/poky/meta/lib/oe/classutils.py index 45cd5249..08bb66b3 100644 --- a/external/poky/meta/lib/oe/classutils.py +++ b/external/poky/meta/lib/oe/classutils.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# class ClassRegistryMeta(type): """Give each ClassRegistry their own registry""" diff --git a/external/poky/meta/lib/oe/copy_buildsystem.py b/external/poky/meta/lib/oe/copy_buildsystem.py index 7cb784cf..31a84f5b 100644 --- a/external/poky/meta/lib/oe/copy_buildsystem.py +++ b/external/poky/meta/lib/oe/copy_buildsystem.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# # This class should provide easy access to the different aspects of the # buildsystem such as layers, bitbake location, etc. # @@ -42,6 +45,9 @@ class BuildSystem(object): corebase = os.path.abspath(self.d.getVar('COREBASE')) layers.append(corebase) + # Get relationship between TOPDIR and COREBASE + # Layers should respect it + corebase_relative = os.path.dirname(os.path.relpath(os.path.abspath(self.d.getVar('TOPDIR')), corebase)) # The bitbake build system uses the meta-skeleton layer as a layout # for common recipies, e.g: the recipetool script to create kernel recipies # Add the meta-skeleton layer to be included as part of the eSDK installation @@ -95,7 +101,10 @@ class BuildSystem(object): if corebase == os.path.dirname(layer): layerdestpath += '/' + os.path.basename(corebase) else: - layer_relative = os.path.basename(corebase) + '/' + os.path.relpath(layer, corebase) + layer_relative = os.path.relpath(layer, corebase) + if os.path.dirname(layer_relative) == corebase_relative: + layer_relative = os.path.dirname(corebase_relative) + '/' + layernewname + layer_relative = os.path.basename(corebase) + '/' + layer_relative if os.path.dirname(layer_relative) != layernewname: layerdestpath += '/' + os.path.dirname(layer_relative) @@ -165,10 +174,10 @@ class BuildSystem(object): def generate_locked_sigs(sigfile, d): bb.utils.mkdirhier(os.path.dirname(sigfile)) depd = d.getVar('BB_TASKDEPDATA', False) - tasks = ['%s.%s' % (v[2], v[1]) for v in depd.values()] + tasks = ['%s:%s' % (v[2], v[1]) for v in depd.values()] bb.parse.siggen.dump_lockedsigs(sigfile, tasks) -def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output): +def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, onlynative, pruned_output): with open(lockedsigs, 'r') as infile: bb.utils.mkdirhier(os.path.dirname(pruned_output)) with open(pruned_output, 'w') as f: @@ -178,7 +187,11 @@ def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output if line.endswith('\\\n'): splitval = line.strip().split(':') if not splitval[1] in excluded_tasks and not splitval[0] in excluded_targets: - f.write(line) + if onlynative: + if 'nativesdk' in splitval[0]: + f.write(line) + else: + f.write(line) else: f.write(line) invalue = False diff --git a/external/poky/meta/lib/oe/data.py b/external/poky/meta/lib/oe/data.py index b8901e63..602130a9 100644 --- a/external/poky/meta/lib/oe/data.py +++ b/external/poky/meta/lib/oe/data.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import json import oe.maketype diff --git a/external/poky/meta/lib/oe/distro_check.py b/external/poky/meta/lib/oe/distro_check.py index e775c3a6..88e46c35 100644 --- a/external/poky/meta/lib/oe/distro_check.py +++ b/external/poky/meta/lib/oe/distro_check.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + def create_socket(url, d): import urllib from bb.utils import export_proxies diff --git a/external/poky/meta/lib/oe/elf.py b/external/poky/meta/lib/oe/elf.py index 0ed59ae0..df0a4593 100644 --- a/external/poky/meta/lib/oe/elf.py +++ b/external/poky/meta/lib/oe/elf.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + def machine_dict(d): # TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian, 32bit? machdata = { @@ -11,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), @@ -30,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), @@ -54,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" : { @@ -63,6 +67,8 @@ def machine_dict(d): "arm" : ( 40, 97, 0, True, 32), "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), @@ -73,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/external/poky/meta/lib/oe/gpg_sign.py b/external/poky/meta/lib/oe/gpg_sign.py index ccd5aee4..7634d7ef 100644 --- a/external/poky/meta/lib/oe/gpg_sign.py +++ b/external/poky/meta/lib/oe/gpg_sign.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + """Helper module for GPG signing""" import os import bb -import oe.utils import subprocess import shlex @@ -11,21 +14,27 @@ class LocalSigner(object): def __init__(self, d): self.gpg_bin = d.getVar('GPG_BIN') or \ bb.utils.which(os.getenv('PATH'), 'gpg') + self.gpg_cmd = [self.gpg_bin] + self.gpg_agent_bin = bb.utils.which(os.getenv('PATH'), "gpg-agent") + # Without this we see "Cannot allocate memory" errors when running processes in parallel + # It needs to be set for any gpg command since any agent launched can stick around in memory + # and this parameter must be set. + if self.gpg_agent_bin: + self.gpg_cmd += ["--agent-program=%s|--auto-expand-secmem" % (self.gpg_agent_bin)] self.gpg_path = d.getVar('GPG_PATH') - self.gpg_version = self.get_gpg_version() self.rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmsign") - self.gpg_agent_bin = bb.utils.which(os.getenv('PATH'), "gpg-agent") + self.gpg_version = self.get_gpg_version() + def export_pubkey(self, output_file, keyid, armor=True): """Export GPG public key to a file""" - cmd = '%s --no-permission-warning --batch --yes --export -o %s ' % \ - (self.gpg_bin, output_file) + cmd = self.gpg_cmd + ["--no-permission-warning", "--batch", "--yes", "--export", "-o", output_file] if self.gpg_path: - cmd += "--homedir %s " % self.gpg_path + cmd += ["--homedir", self.gpg_path] if armor: - cmd += "--armor " - cmd += keyid - subprocess.check_output(shlex.split(cmd), stderr=subprocess.STDOUT) + cmd += ["--armor"] + cmd += [keyid] + subprocess.check_output(cmd, stderr=subprocess.STDOUT) def sign_rpms(self, files, keyid, passphrase, digest, sign_chunk, fsk=None, fsk_password=None): """Sign RPM files""" @@ -55,7 +64,7 @@ class LocalSigner(object): if passphrase_file and passphrase: raise Exception("You should use either passphrase_file of passphrase, not both") - cmd = [self.gpg_bin, '--detach-sign', '--no-permission-warning', '--batch', + cmd = self.gpg_cmd + ['--detach-sign', '--no-permission-warning', '--batch', '--no-tty', '--yes', '--passphrase-fd', '0', '-u', keyid] if self.gpg_path: @@ -68,9 +77,6 @@ class LocalSigner(object): if self.gpg_version > (2,1,): cmd += ['--pinentry-mode', 'loopback'] - if self.gpg_agent_bin: - cmd += ["--agent-program=%s|--auto-expand-secmem" % (self.gpg_agent_bin)] - cmd += [input_file] try: @@ -82,8 +88,7 @@ class LocalSigner(object): (_, stderr) = job.communicate(passphrase.encode("utf-8")) if job.returncode: - raise bb.build.FuncFailed("GPG exited with code %d: %s" % - (job.returncode, stderr.decode("utf-8"))) + bb.fatal("GPG exited with code %d: %s" % (job.returncode, stderr.decode("utf-8"))) except IOError as e: bb.error("IO error (%s): %s" % (e.errno, e.strerror)) @@ -97,19 +102,21 @@ class LocalSigner(object): def get_gpg_version(self): """Return the gpg version as a tuple of ints""" try: - ver_str = subprocess.check_output((self.gpg_bin, "--version", "--no-permission-warning")).split()[2].decode("utf-8") + cmd = self.gpg_cmd + ["--version", "--no-permission-warning"] + ver_str = subprocess.check_output(cmd).split()[2].decode("utf-8") return tuple([int(i) for i in ver_str.split("-")[0].split('.')]) except subprocess.CalledProcessError as e: - raise bb.build.FuncFailed("Could not get gpg version: %s" % e) + bb.fatal("Could not get gpg version: %s" % e) def verify(self, sig_file): """Verify signature""" - cmd = self.gpg_bin + " --verify --no-permission-warning " + cmd = self.gpg_cmd + [" --verify", "--no-permission-warning"] if self.gpg_path: - cmd += "--homedir %s " % self.gpg_path - cmd += sig_file - status = subprocess.call(shlex.split(cmd)) + cmd += ["--homedir", self.gpg_path] + + cmd += [sig_file] + status = subprocess.call(cmd) ret = False if status else True return ret diff --git a/external/poky/meta/lib/oe/license.py b/external/poky/meta/lib/oe/license.py index ca385d51..c1274a61 100644 --- a/external/poky/meta/lib/oe/license.py +++ b/external/poky/meta/lib/oe/license.py @@ -1,4 +1,6 @@ -# vi:sts=4:sw=4:et +# +# SPDX-License-Identifier: GPL-2.0-only +# """Code for parsing OpenEmbedded license strings""" import ast @@ -13,8 +15,8 @@ def license_ok(license, dont_want_licenses): # will exclude a trailing '+' character from LICENSE in # case INCOMPATIBLE_LICENSE is not a 'X+' license. lic = license - if not re.search('\+$', dwl): - lic = re.sub('\+', '', license) + if not re.search(r'\+$', dwl): + lic = re.sub(r'\+', '', license) if fnmatch(lic, dwl): return False return True @@ -40,8 +42,8 @@ class InvalidLicense(LicenseError): return "invalid characters in license '%s'" % self.license license_operator_chars = '&|() ' -license_operator = re.compile('([' + license_operator_chars + '])') -license_pattern = re.compile('[a-zA-Z0-9.+_\-]+$') +license_operator = re.compile(r'([' + license_operator_chars + '])') +license_pattern = re.compile(r'[a-zA-Z0-9.+_\-]+$') class LicenseVisitor(ast.NodeVisitor): """Get elements based on OpenEmbedded license strings""" diff --git a/external/poky/meta/lib/oe/lsb.py b/external/poky/meta/lib/oe/lsb.py index 71c0992c..43e46380 100644 --- a/external/poky/meta/lib/oe/lsb.py +++ b/external/poky/meta/lib/oe/lsb.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + def get_os_release(): """Get all key-value pairs from /etc/os-release as a dict""" from collections import OrderedDict @@ -106,12 +110,12 @@ def distro_identifier(adjust_hook=None): if adjust_hook: distro_id, release = adjust_hook(distro_id, release) if not distro_id: - return "Unknown" - # Filter out any non-alphanumerics - distro_id = re.sub(r'\W', '', distro_id) + return "unknown" + # Filter out any non-alphanumerics and convert to lowercase + distro_id = re.sub(r'\W', '', distro_id).lower() if release: - id_str = '{0}-{1}'.format(distro_id.lower(), release) + id_str = '{0}-{1}'.format(distro_id, release) else: id_str = distro_id return id_str.replace(' ','-').replace('/','-') diff --git a/external/poky/meta/lib/oe/maketype.py b/external/poky/meta/lib/oe/maketype.py index c36e7b56..d929c8b3 100644 --- a/external/poky/meta/lib/oe/maketype.py +++ b/external/poky/meta/lib/oe/maketype.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# """OpenEmbedded variable typing support Types are defined in the metadata by name, using the 'type' flag on a diff --git a/external/poky/meta/lib/oe/manifest.py b/external/poky/meta/lib/oe/manifest.py index 674303c8..f7c88f9a 100644 --- a/external/poky/meta/lib/oe/manifest.py +++ b/external/poky/meta/lib/oe/manifest.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + from abc import ABCMeta, abstractmethod import os import re diff --git a/external/poky/meta/lib/oe/package.py b/external/poky/meta/lib/oe/package.py index efd36b37..dd700cbb 100644 --- a/external/poky/meta/lib/oe/package.py +++ b/external/poky/meta/lib/oe/package.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import stat import mmap import subprocess @@ -255,13 +259,13 @@ def read_shlib_providers(d): shlib_provider = {} shlibs_dirs = d.getVar('SHLIBSDIRS').split() - list_re = re.compile('^(.*)\.list$') + list_re = re.compile(r'^(.*)\.list$') # Go from least to most specific since the last one found wins for dir in reversed(shlibs_dirs): bb.debug(2, "Reading shlib providers in %s" % (dir)) if not os.path.exists(dir): continue - for file in os.listdir(dir): + for file in sorted(os.listdir(dir)): m = list_re.match(file) if m: dep_pkg = m.group(1) @@ -279,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/external/poky/meta/lib/oe/package_manager.py b/external/poky/meta/lib/oe/package_manager.py index 882e7c42..b0660411 100644 --- a/external/poky/meta/lib/oe/package_manager.py +++ b/external/poky/meta/lib/oe/package_manager.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + from abc import ABCMeta, abstractmethod import os import glob @@ -29,15 +33,16 @@ def opkg_query(cmd_output): a dictionary with the information of the packages. This is used when the packages are in deb or ipk format. """ - verregex = re.compile(' \([=<>]* [^ )]*\)') + verregex = re.compile(r' \([=<>]* [^ )]*\)') output = dict() pkg = "" arch = "" ver = "" filename = "" dep = [] + prov = [] pkgarch = "" - for line in cmd_output.splitlines(): + for line in cmd_output.splitlines()+['']: line = line.rstrip() if ':' in line: if line.startswith("Package: "): @@ -60,6 +65,10 @@ def opkg_query(cmd_output): 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: @@ -68,20 +77,15 @@ def opkg_query(cmd_output): filename = "%s_%s_%s.ipk" % (pkg, ver, arch) if pkg: output[pkg] = {"arch":arch, "ver":ver, - "filename":filename, "deps": dep, "pkgarch":pkgarch } + "filename":filename, "deps": dep, "pkgarch":pkgarch, "provs": prov} pkg = "" arch = "" ver = "" filename = "" dep = [] + prov = [] 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): @@ -94,6 +98,8 @@ 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"], @@ -101,6 +107,7 @@ def generate_locale_archive(d, rootfs, target_arch, localedir): "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"], @@ -125,7 +132,7 @@ def generate_locale_archive(d, rootfs, target_arch, localedir): env = dict(os.environ) env["LOCALEARCHIVE"] = oe.path.join(localedir, "locale-archive") - for name in os.listdir(localedir): + for name in sorted(os.listdir(localedir)): path = os.path.join(localedir, name) if os.path.isdir(path): cmd = ["cross-localedef", "--verbose"] @@ -211,7 +218,7 @@ class OpkgIndexer(Indexer): if not os.path.exists(pkgs_file): open(pkgs_file, "w").close() - index_cmds.add('%s -r %s -p %s -m %s' % + 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) @@ -250,8 +257,8 @@ class DpkgIndexer(Indexer): 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("#ROOTFS#", "/dev/null", line) - line = re.sub("#APTCONF#", self.apt_conf_dir, line) + 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): @@ -292,7 +299,7 @@ class DpkgIndexer(Indexer): release.write("Label: %s\n" % arch) cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive - + index_cmds.append(cmd) deb_dirs_found = True @@ -318,7 +325,7 @@ class PkgsList(object, metaclass=ABCMeta): class RpmPkgsList(PkgsList): def list_pkgs(self): - return RpmPM(self.d, self.rootfs_dir, self.d.getVar('TARGET_VENDOR')).list_installed() + 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): @@ -354,7 +361,7 @@ class DpkgPkgsList(PkgsList): "--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") + 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") @@ -406,7 +413,7 @@ class PackageManager(object, metaclass=ABCMeta): with open(postinst_intercept_hook) as intercept: registered_pkgs = None for line in intercept.read().split("\n"): - m = re.match("^##PKGS:(.*)", line) + m = re.match(r"^##PKGS:(.*)", line) if m is not None: registered_pkgs = m.group(1).strip() break @@ -437,6 +444,11 @@ class PackageManager(object, metaclass=ABCMeta): 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: @@ -445,10 +457,10 @@ class PackageManager(object, metaclass=ABCMeta): 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.warn("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + 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.warn("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s" + 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'))) @@ -559,6 +571,8 @@ class PackageManager(object, metaclass=ABCMeta): 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 @@ -567,6 +581,11 @@ class PackageManager(object, metaclass=ABCMeta): # 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() @@ -578,10 +597,15 @@ class PackageManager(object, metaclass=ABCMeta): 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) + 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" % @@ -644,7 +668,7 @@ def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencie pn = d.getVar("PN") seendirs = set() multilibs = {} - + bb.utils.remove(subrepo_dir, recurse=True) bb.utils.mkdirhier(subrepo_dir) @@ -722,7 +746,8 @@ class RpmPM(PackageManager): arch_var=None, os_var=None, rpm_repo_workdir="oe-rootfs-repo", - filterbydependencies=True): + filterbydependencies=True, + needfeed=True): super(RpmPM, self).__init__(d, target_rootfs) self.target_vendor = target_vendor self.task_name = task_name @@ -735,8 +760,9 @@ class RpmPM(PackageManager): else: self.primary_arch = self.d.getVar('MACHINE_ARCH') - 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) + 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')): @@ -753,6 +779,8 @@ class RpmPM(PackageManager): # 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)) @@ -860,7 +888,7 @@ class RpmPM(PackageManager): failed_scriptlets_pkgnames = collections.OrderedDict() for line in output.splitlines(): - if line.startswith("Non-fatal POSTIN scriptlet failure in rpm package"): + if line.startswith("Error in POSTIN scriptlet in rpm package"): failed_scriptlets_pkgnames[line.split()[-1]] = True if len(failed_scriptlets_pkgnames) > 0: @@ -962,13 +990,14 @@ class RpmPM(PackageManager): os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf") - standard_dnf_args = ["-v", "--rpmverbosity=debug", "-y", + 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")), - "--repofrompath=oe-repo,%s" % (self.rpm_repo_dir), "--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: @@ -992,8 +1021,8 @@ class RpmPM(PackageManager): def load_old_install_solution(self): if not os.path.exists(self.solution_manifest): return [] - - return open(self.solution_manifest, 'r').read().split() + with open(self.solution_manifest, 'r') as fd: + return fd.read().split() def _script_num_prefix(self, path): files = os.listdir(path) @@ -1108,10 +1137,7 @@ class OpkgDpkgPM(PackageManager): tmp_dir = tempfile.mkdtemp() current_dir = os.getcwd() os.chdir(tmp_dir) - if self.d.getVar('IMAGE_PKGTYPE') == 'deb': - data_tar = 'data.tar.xz' - else: - data_tar = 'data.tar.gz' + data_tar = 'data.tar.xz' try: cmd = [ar_cmd, 'x', pkg_path] @@ -1212,7 +1238,7 @@ class OpkgPM(OpkgDpkgPM): priority += 5 for line in (self.d.getVar('IPK_FEED_URIS') or "").split(): - feed_match = re.match("^[ \t]*(.*)##([^ \t]*)[ \t]*$", line) + feed_match = re.match(r"^[ \t]*(.*)##([^ \t]*)[ \t]*$", line) if feed_match is not None: feed_name = feed_match.group(1) @@ -1286,6 +1312,8 @@ class OpkgPM(OpkgDpkgPM): 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() @@ -1329,6 +1357,8 @@ class OpkgPM(OpkgDpkgPM): 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) @@ -1397,45 +1427,6 @@ class OpkgPM(OpkgDpkgPM): def list_installed(self): return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs() - def handle_bad_recommendations(self): - bad_recommendations = self.d.getVar("BAD_RECOMMENDATIONS") or "" - if bad_recommendations.strip() == "": - return - - status_file = os.path.join(self.opkg_dir, "status") - - # If status file existed, it means the bad recommendations has already - # been handled - if os.path.exists(status_file): - return - - cmd = "%s %s info " % (self.opkg_cmd, self.opkg_args) - - with open(status_file, "w+") as status: - for pkg in bad_recommendations.split(): - pkg_info = cmd + pkg - - try: - output = subprocess.check_output(pkg_info.split(), stderr=subprocess.STDOUT).strip().decode("utf-8") - except subprocess.CalledProcessError as e: - bb.fatal("Cannot get package info. Command '%s' " - "returned %d:\n%s" % (pkg_info, e.returncode, e.output.decode("utf-8"))) - - if output == "": - bb.note("Ignored bad recommendation: '%s' is " - "not a package" % pkg) - continue - - for line in output.split('\n'): - if line.startswith("Status:"): - status.write("Status: deinstall hold not-installed\n") - else: - status.write(line + "\n") - - # Append a blank line after each package entry to ensure that it - # is separated from the following entry - status.write("\n") - def dummy_install(self, pkgs): """ The following function dummy installs pkgs and returns the log of output. @@ -1520,7 +1511,7 @@ class OpkgPM(OpkgDpkgPM): "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.gz")) + bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz")) return tmp_dir @@ -1592,7 +1583,7 @@ class DpkgPM(OpkgDpkgPM): with open(status_file, "r") as status: for line in status.read().split('\n'): - m = re.match("^Package: (.*)", line) + m = re.match(r"^Package: (.*)", line) if m is not None: installed_pkgs.append(m.group(1)) @@ -1643,7 +1634,7 @@ class DpkgPM(OpkgDpkgPM): os.environ['APT_CONFIG'] = self.apt_conf_file - cmd = "%s %s install --force-yes --allow-unauthenticated %s" % \ + cmd = "%s %s install --force-yes --allow-unauthenticated --no-remove %s" % \ (self.apt_get_cmd, self.apt_args, ' '.join(pkgs)) try: @@ -1657,13 +1648,13 @@ class DpkgPM(OpkgDpkgPM): # rename *.dpkg-new files/dirs for root, dirs, files in os.walk(self.target_rootfs): for dir in dirs: - new_dir = re.sub("\.dpkg-new", "", dir) + 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("\.dpkg-new", "", file) + 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)) @@ -1728,7 +1719,7 @@ class DpkgPM(OpkgDpkgPM): sources_file.write("deb %s ./\n" % uri) def _create_configs(self, archs, base_archs): - base_archs = re.sub("_", "-", 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) @@ -1782,7 +1773,7 @@ class DpkgPM(OpkgDpkgPM): 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(" Architecture \".*\";$", line) + match_arch = re.match(r" Architecture \".*\";$", line) architectures = "" if match_arch: for base_arch in base_arch_list: @@ -1790,8 +1781,8 @@ class DpkgPM(OpkgDpkgPM): apt_conf.write(" Architectures {%s};\n" % architectures); apt_conf.write(" Architecture \"%s\";\n" % base_archs) else: - line = re.sub("#ROOTFS#", self.target_rootfs, line) - line = re.sub("#APTCONF#", self.apt_conf_dir, line) + 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 @@ -1805,8 +1796,7 @@ class DpkgPM(OpkgDpkgPM): 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 + self.d.getVar('opkglibdir'), True) bb.utils.remove(self.target_rootfs + "/var/lib/dpkg/", True) def fix_broken_dependencies(self): diff --git a/external/poky/meta/lib/oe/packagedata.py b/external/poky/meta/lib/oe/packagedata.py index 32e5c82a..a82085a7 100644 --- a/external/poky/meta/lib/oe/packagedata.py +++ b/external/poky/meta/lib/oe/packagedata.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import codecs import os @@ -13,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/external/poky/meta/lib/oe/packagegroup.py b/external/poky/meta/lib/oe/packagegroup.py index 4bc5d3e4..2419cbb6 100644 --- a/external/poky/meta/lib/oe/packagegroup.py +++ b/external/poky/meta/lib/oe/packagegroup.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import itertools def is_optional(feature, d): diff --git a/external/poky/meta/lib/oe/patch.py b/external/poky/meta/lib/oe/patch.py index e0f06042..2b1eee10 100644 --- a/external/poky/meta/lib/oe/patch.py +++ b/external/poky/meta/lib/oe/patch.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import oe.path import oe.types @@ -38,21 +42,10 @@ def runcmd(args, dir = None): if exitstatus != 0: raise CmdError(cmd, exitstatus >> 8, output) if " fuzz " in output: - bb.warn(""" -Some of the context lines in patches were ignored. This can lead to incorrectly applied patches. -The context lines in the patches can be updated with devtool: - - devtool modify - devtool finish --force-patch-refresh - -Then the updated patches and the source tree (in devtool's workspace) -should be reviewed to make sure the patches apply in the correct place -and don't introduce duplicate lines (which can, and does happen -when some of the context is ignored). Further information: -http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html -https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450 -Details: -{}""".format(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)) + return output finally: @@ -334,8 +327,8 @@ class GitApplyTree(PatchTree): @staticmethod def interpretPatchHeader(headerlines): import re - author_re = re.compile('[\S ]+ <\S+@\S+\.\S+>') - from_commit_re = re.compile('^From [a-z0-9]{40} .*') + author_re = re.compile(r'[\S ]+ <\S+@\S+\.\S+>') + from_commit_re = re.compile(r'^From [a-z0-9]{40} .*') outlines = [] author = None date = None @@ -790,9 +783,11 @@ class UserResolver(Resolver): def patch_path(url, fetch, workdir, expand=True): - """Return the local path of a patch, or None if this isn't a patch""" + """Return the local path of a patch, or return nothing if this isn't a patch""" local = fetch.localpath(url) + if os.path.isdir(local): + return base, ext = os.path.splitext(os.path.basename(local)) if ext in ('.gz', '.bz2', '.xz', '.Z'): if expand: @@ -856,6 +851,7 @@ def src_patches(d, all=False, expand=True): def should_apply(parm, d): + import bb.utils if "mindate" in parm or "maxdate" in parm: pn = d.getVar('PN') srcdate = d.getVar('SRCDATE_%s' % pn) @@ -892,5 +888,15 @@ def should_apply(parm, d): if srcrev and parm["notrev"] in srcrev: return False, "doesn't apply to revision" + if "maxver" in parm: + pv = d.getVar('PV') + if bb.utils.vercmp_string_op(pv, parm["maxver"], ">"): + return False, "applies to earlier version" + + if "minver" in parm: + pv = d.getVar('PV') + if bb.utils.vercmp_string_op(pv, parm["minver"], "<"): + return False, "applies to later version" + return True, None diff --git a/external/poky/meta/lib/oe/path.py b/external/poky/meta/lib/oe/path.py index 1e24d058..08297245 100644 --- a/external/poky/meta/lib/oe/path.py +++ b/external/poky/meta/lib/oe/path.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import errno import glob import shutil @@ -90,12 +94,27 @@ def copytree(src, dst): subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT) def copyhardlinktree(src, dst): - """ Make the hard link when possible, otherwise copy. """ + """Make a tree of hard links when possible, otherwise copy.""" bb.utils.mkdirhier(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) @@ -114,6 +133,14 @@ def copyhardlinktree(src, dst): else: copytree(src, dst) +def copyhardlink(src, dst): + """Make a hard link when possible, otherwise copy.""" + + try: + os.link(src, dst) + except OSError: + shutil.copy(src, dst) + def remove(path, recurse=True): """ Equivalent to rm -f or rm -rf diff --git a/external/poky/meta/lib/oe/prservice.py b/external/poky/meta/lib/oe/prservice.py index 32dfc15e..2d3c9c7e 100644 --- a/external/poky/meta/lib/oe/prservice.py +++ b/external/poky/meta/lib/oe/prservice.py @@ -1,5 +1,12 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# 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: @@ -76,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/external/poky/meta/lib/oe/qa.py b/external/poky/meta/lib/oe/qa.py index 59c72ce5..ea831b93 100644 --- a/external/poky/meta/lib/oe/qa.py +++ b/external/poky/meta/lib/oe/qa.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import os, struct, mmap class NotELFFileError(Exception): @@ -37,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/external/poky/meta/lib/oe/recipeutils.py b/external/poky/meta/lib/oe/recipeutils.py index aa64553c..fde1ad3d 100644 --- a/external/poky/meta/lib/oe/recipeutils.py +++ b/external/poky/meta/lib/oe/recipeutils.py @@ -4,6 +4,8 @@ # # Copyright (C) 2013-2017 Intel Corporation # +# SPDX-License-Identifier: GPL-2.0-only +# import sys import os @@ -16,40 +18,40 @@ import shutil import re import fnmatch import glob -from collections import OrderedDict, defaultdict +import bb.tinfoil +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', 'SRC_URI\[(.+\.)?md5sum\]', 'SRC_URI\[(.+\.)?sha256sum\]'] +nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', r'SRC_URI\[(.+\.)?md5sum\]', r'SRC_URI\[(.+\.)?sha256sum\]'] list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM'] meta_vars = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION'] -def pn_to_recipe(cooker, pn, mc=''): - """Convert a recipe name (PN) to the path to the recipe file""" - - best = cooker.findBestProvider(pn, mc) - return best[3] - - -def get_unavailable_reasons(cooker, pn): - """If a recipe could not be found, find out why if possible""" - import bb.taskdata - taskdata = bb.taskdata.TaskData(None, skiplist=cooker.skiplist) - return taskdata.get_reasons(pn) - - -def parse_recipe(cooker, fn, appendfiles): +def simplify_history(history, d): """ - Parse an individual recipe file, optionally with a list of - bbappend files. + Eliminate any irrelevant events from a variable history """ - import bb.cache - parser = bb.cache.NoCache(cooker.databuilder) - envdata = parser.loadDataFull(fn, appendfiles) - return envdata + ret_history = [] + has_set = False + # Go backwards through the history and remove any immediate operations + # before the most recent set + for event in reversed(history): + if 'flag' in event or not 'file' in event: + continue + if event['op'] == 'set': + if has_set: + continue + has_set = True + elif event['op'] in ('append', 'prepend', 'postdot', 'predot'): + # Reminder: "append" and "prepend" mean += and =+ respectively, NOT _append / _prepend + if has_set: + continue + ret_history.insert(0, event) + return ret_history def get_var_files(fn, varlist, d): @@ -58,11 +60,19 @@ def get_var_files(fn, varlist, d): """ varfiles = {} for v in varlist: - history = d.varhistory.variable(v) files = [] - for event in history: - if 'file' in event and not 'flag' in event: - files.append(event['file']) + if '[' in v: + varsplit = v.split('[') + varflag = varsplit[1].split(']')[0] + history = d.varhistory.variable(varsplit[0]) + for event in history: + if 'file' in event and event.get('flag', '') == varflag: + files.append(event['file']) + else: + history = d.varhistory.variable(v) + for event in history: + if 'file' in event and not 'flag' in event: + files.append(event['file']) if files: actualfile = files[-1] else: @@ -153,7 +163,7 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True): key = item[:-2] else: key = item - restr = '%s(_[a-zA-Z0-9-_$(){}]+|\[[^\]]*\])?' % key + restr = r'%s(_[a-zA-Z0-9-_$(){}]+|\[[^\]]*\])?' % key if item.endswith('()'): recipe_progression_restrs.append(restr + '()') else: @@ -176,7 +186,14 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True): def outputvalue(name, lines, rewindcomments=False): if values[name] is None: return - rawtext = '%s = "%s"%s' % (name, values[name], newline) + if isinstance(values[name], tuple): + op, value = values[name] + if op == '+=' and value.strip() == '': + return + else: + value = values[name] + op = '=' + rawtext = '%s %s "%s"%s' % (name, op, value, newline) addlines = [] nowrap = False for nowrap_re in nowrap_vars_res: @@ -186,10 +203,10 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True): if nowrap: addlines.append(rawtext) elif name in list_vars: - splitvalue = split_var_value(values[name], assignment=False) + splitvalue = split_var_value(value, assignment=False) if len(splitvalue) > 1: linesplit = ' \\\n' + (' ' * (len(name) + 4)) - addlines.append('%s = "%s%s"%s' % (name, linesplit.join(splitvalue), linesplit, newline)) + addlines.append('%s %s "%s%s"%s' % (name, op, linesplit.join(splitvalue), linesplit, newline)) else: addlines.append(rawtext) else: @@ -321,12 +338,47 @@ def patch_recipe(d, fn, varvalues, patch=False, relpath='', redirect_output=None """Modify a list of variable values in the specified recipe. Handles inc files if used by the recipe. """ + overrides = d.getVar('OVERRIDES').split(':') + def override_applicable(hevent): + op = hevent['op'] + if '[' in op: + opoverrides = op.split('[')[1].split(']')[0].split('_') + for opoverride in opoverrides: + if not opoverride in overrides: + return False + return True + varlist = varvalues.keys() + fn = os.path.abspath(fn) varfiles = get_var_files(fn, varlist, d) locs = localise_file_vars(fn, varfiles, varlist) patches = [] for f,v in locs.items(): vals = {k: varvalues[k] for k in v} + f = os.path.abspath(f) + if f == fn: + extravals = {} + for var, value in vals.items(): + if var in list_vars: + history = simplify_history(d.varhistory.variable(var), d) + recipe_set = False + for event in history: + if os.path.abspath(event['file']) == fn: + if event['op'] == 'set': + recipe_set = True + if not recipe_set: + for event in history: + if event['op'].startswith('_remove'): + continue + if not override_applicable(event): + continue + newvalue = value.replace(event['detail'], '') + if newvalue == value and os.path.abspath(event['file']) == fn and event['op'].startswith('_'): + op = event['op'].replace('[', '_').replace(']', '') + extravals[var + op] = None + value = newvalue + vals[var] = ('+=', value) + vals.update(extravals) patchdata = patch_recipe_file(f, vals, patch, relpath, redirect_output) if patch: patches.append(patchdata) @@ -369,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) @@ -432,7 +486,14 @@ def get_recipe_local_files(d, patches=False, archives=False): unpack = fetch.ud[uri].parm.get('unpack', True) if unpack: continue - ret[fname] = localpath + if os.path.isdir(localpath): + for root, dirs, files in os.walk(localpath): + for fname in files: + fileabspath = os.path.join(root,fname) + srcdir = os.path.dirname(localpath) + ret[os.path.relpath(fileabspath,srcdir)] = fileabspath + else: + ret[fname] = localpath return ret @@ -875,7 +936,7 @@ def get_recipe_pv_without_srcpv(pv, uri_type): sfx = '' if uri_type == 'git': - git_regex = re.compile("(?Pv?)(?P[^\+]*)((?P\+(git)?r?(AUTOINC\+))(?P.*))?") + git_regex = re.compile(r"(?Pv?)(?P.*?)(?P\+[^\+]*(git)?r?(AUTOINC\+))(?P.*)") m = git_regex.match(pv) if m: @@ -883,7 +944,7 @@ def get_recipe_pv_without_srcpv(pv, uri_type): pfx = m.group('pfx') sfx = m.group('sfx') else: - regex = re.compile("(?P(v|r)?)(?P.*)") + regex = re.compile(r"(?P(v|r)?)(?P.*)") m = regex.match(pv) if m: pv = m.group('ver') @@ -969,3 +1030,86 @@ def get_recipe_upstream_version(rd): ru['datetime'] = datetime.now() return ru + +def _get_recipe_upgrade_status(data): + uv = get_recipe_upstream_version(data) + + pn = data.getVar('PN') + cur_ver = uv['current_version'] + + upstream_version_unknown = data.getVar('UPSTREAM_VERSION_UNKNOWN') + if not uv['version']: + status = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" + else: + cmp = vercmp_string(uv['current_version'], uv['version']) + if cmp == -1: + status = "UPDATE" if not upstream_version_unknown else "KNOWN_BROKEN" + elif cmp == 0: + status = "MATCH" if not upstream_version_unknown else "KNOWN_BROKEN" + else: + status = "UNKNOWN" if upstream_version_unknown else "UNKNOWN_BROKEN" + + next_ver = uv['version'] if uv['version'] else "N/A" + revision = uv['revision'] if uv['revision'] else "N/A" + maintainer = data.getVar('RECIPE_MAINTAINER') + no_upgrade_reason = data.getVar('RECIPE_NO_UPDATE_REASON') + + return (pn, status, cur_ver, next_ver, maintainer, revision, no_upgrade_reason) + +def get_recipe_upgrade_status(recipes=None): + pkgs_list = [] + data_copy_list = [] + copy_vars = ('SRC_URI', + 'PV', + 'DL_DIR', + 'PN', + 'CACHE', + 'PERSISTENT_DIR', + 'BB_URI_HEADREVS', + 'UPSTREAM_CHECK_COMMITS', + 'UPSTREAM_CHECK_GITTAGREGEX', + 'UPSTREAM_CHECK_REGEX', + 'UPSTREAM_CHECK_URI', + 'UPSTREAM_VERSION_UNKNOWN', + 'RECIPE_MAINTAINER', + 'RECIPE_NO_UPDATE_REASON', + 'RECIPE_UPSTREAM_VERSION', + 'RECIPE_UPSTREAM_DATE', + 'CHECK_DATE', + ) + + with bb.tinfoil.Tinfoil() as tinfoil: + tinfoil.prepare(config_only=False) + + if not recipes: + recipes = tinfoil.all_recipe_files(variants=False) + + for fn in recipes: + try: + if fn.startswith("/"): + data = tinfoil.parse_recipe_file(fn) + else: + data = tinfoil.parse_recipe(fn) + except bb.providers.NoProvider: + bb.note(" No provider for %s" % fn) + continue + + unreliable = data.getVar('UPSTREAM_CHECK_UNRELIABLE') + if unreliable == "1": + bb.note(" Skip package %s as upstream check unreliable" % pn) + continue + + data_copy = bb.data.init() + for var in copy_vars: + data_copy.setVar(var, data.getVar(var)) + for k in data: + if k.startswith('SRCREV'): + data_copy.setVar(k, data.getVar(k)) + + data_copy_list.append(data_copy) + + from concurrent.futures import ProcessPoolExecutor + with ProcessPoolExecutor(max_workers=utils.cpu_count()) as executor: + pkgs_list = executor.map(_get_recipe_upgrade_status, data_copy_list) + + return pkgs_list diff --git a/external/poky/meta/lib/oe/rootfs.py b/external/poky/meta/lib/oe/rootfs.py index e5512d09..cd65e620 100644 --- a/external/poky/meta/lib/oe/rootfs.py +++ b/external/poky/meta/lib/oe/rootfs.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# from abc import ABCMeta, abstractmethod from oe.utils import execute_pre_post_process from oe.package_manager import * @@ -123,17 +126,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: @@ -354,9 +356,9 @@ class Rootfs(object, metaclass=ABCMeta): 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 = '(unpacking of archive failed|Cannot find package'\ - '|exit 1|ERROR: |Error: |Error |ERROR '\ - '|Failed |Failed: |Failed$|Failed\(\d+\):)' + 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, @@ -499,7 +501,7 @@ class DpkgOpkgRootfs(Rootfs): pkg_depends_list = [] # filter version requirements like libc (>= 1.1) for dep in pkg_depends.split(', '): - m_dep = re.match("^(.*) \(.*\)$", dep) + m_dep = re.match(r"^(.*) \(.*\)$", dep) if m_dep: dep = m_dep.group(1) pkg_depends_list.append(dep) @@ -515,21 +517,33 @@ class DpkgOpkgRootfs(Rootfs): data = status.read() status.close() for line in data.split('\n'): - m_pkg = re.match("^Package: (.*)", line) - m_status = re.match("^Status:.*unpacked", line) - m_depends = re.match("^Depends: (.*)", line) + 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: - if pkg_name and pkg_status_match: - pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends) - + #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()) @@ -632,6 +646,7 @@ class DpkgRootfs(DpkgOpkgRootfs): 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 @@ -735,15 +750,16 @@ class OpkgRootfs(DpkgOpkgRootfs): if filecmp.cmp(f1, f2): return True - if self.image_rootfs not in f1: - self._prelink_file(f1.replace(key, ''), f1) + 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) + 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 + # Both of them are prelinked + if filecmp.cmp(f1, f2): + return True # Not equal return False @@ -759,7 +775,7 @@ class OpkgRootfs(DpkgOpkgRootfs): if allow_replace is None: allow_replace = "" - allow_rep = re.compile(re.sub("\|$", "", allow_replace)) + allow_rep = re.compile(re.sub(r"\|$", r"", allow_replace)) error_prompt = "Multilib check error:" files = {} @@ -879,8 +895,6 @@ class OpkgRootfs(DpkgOpkgRootfs): self.pm.update() - self.pm.handle_bad_recommendations() - if self.progress_reporter: self.progress_reporter.next_stage() diff --git a/external/poky/meta/lib/oe/sdk.py b/external/poky/meta/lib/oe/sdk.py index ef81f8cf..d02a2748 100644 --- a/external/poky/meta/lib/oe/sdk.py +++ b/external/poky/meta/lib/oe/sdk.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + from abc import ABCMeta, abstractmethod from oe.utils import execute_pre_post_process from oe.manifest import * @@ -91,8 +95,8 @@ class Sdk(object, metaclass=ABCMeta): if linguas == "all": pm.install_glob("nativesdk-glibc-binary-localedata-*.utf-8", sdk=True) else: - for lang in linguas.split(): - pm.install("nativesdk-glibc-binary-localedata-%s.utf-8" % lang) + pm.install(["nativesdk-glibc-binary-localedata-%s.utf-8" % \ + lang for lang in linguas.split()]) # Generate a locale archive of them target_arch = self.d.getVar('SDK_ARCH') rootfs = oe.path.join(self.sdk_host_sysroot, self.sdk_native_path) diff --git a/external/poky/meta/lib/oe/sstatesig.py b/external/poky/meta/lib/oe/sstatesig.py index 18c5a353..d24e3738 100644 --- a/external/poky/meta/lib/oe/sstatesig.py +++ b/external/poky/meta/lib/oe/sstatesig.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# import bb.siggen import oe @@ -56,7 +59,7 @@ 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] + 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: @@ -87,8 +90,7 @@ class SignatureGeneratorOEBasic(bb.siggen.SignatureGeneratorBasic): def rundep_check(self, fn, recipename, task, dep, depname, dataCache = None): return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache) -class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): - name = "OEBasicHash" +class SignatureGeneratorOEBasicHashMixIn(object): 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() @@ -101,6 +103,8 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): 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): @@ -126,12 +130,11 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): return sstate_rundepfilter(self, fn, recipename, task, dep, depname, dataCache) def get_taskdata(self): - data = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskdata() - return (data, self.lockedpnmap, self.lockedhashfn) + return (self.lockedpnmap, self.lockedhashfn, self.lockedhashes) + super().get_taskdata() def set_taskdata(self, data): - coredata, self.lockedpnmap, self.lockedhashfn = data - super(bb.siggen.SignatureGeneratorBasicHash, self).set_taskdata(coredata) + self.lockedpnmap, self.lockedhashfn, self.lockedhashes = data[:3] + super().set_taskdata(data[3:]) def dump_sigs(self, dataCache, options): sigfile = os.getcwd() + "/locked-sigs.inc" @@ -139,8 +142,29 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): self.dump_lockedsigs(sigfile) return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options) - def get_taskhash(self, fn, task, deps, dataCache): - h = super(bb.siggen.SignatureGeneratorBasicHash, self).get_taskhash(fn, task, deps, dataCache) + def prep_taskhash(self, tid, deps, dataCache): + super().prep_taskhash(tid, deps, dataCache) + if hasattr(self, "extramethod"): + (_, _, _, fn) = bb.runqueue.split_tid_mcfn(tid) + inherits = " ".join(dataCache.inherits[fn]) + if inherits.find("/native.bbclass") != -1 or inherits.find("/cross.bbclass") != -1: + self.extramethod[tid] = ":" + self.buildarch + + def get_taskhash(self, tid, deps, dataCache): + if tid in self.lockedhashes: + if self.lockedhashes[tid]: + return self.lockedhashes[tid] + else: + return super().get_taskhash(tid, deps, dataCache) + + # get_taskhash will call get_unihash internally in the parent class, we + # need to disable our filter of it whilst this runs else + # incorrect hashes can be calculated. + self._internal = True + h = super().get_taskhash(tid, deps, dataCache) + self._internal = False + + (mc, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) recipename = dataCache.pkg_fn[fn] self.lockedpnmap[fn] = recipename @@ -150,75 +174,77 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): if recipename in self.unlockedrecipes: unlocked = True else: - def get_mc(tid): - tid = tid.rsplit('.', 1)[0] - if tid.startswith('multiconfig:'): - elems = tid.split(':') - return elems[1] def recipename_from_dep(dep): - # The dep entry will look something like - # /path/path/recipename.bb.task, virtual:native:/p/foo.bb.task, - # ... - - fn = dep.rsplit('.', 1)[0] + fn = bb.runqueue.fn_from_tid(dep) return dataCache.pkg_fn[fn] - mc = get_mc(fn) # If any unlocked recipe is in the direct dependencies then the # current recipe should be unlocked as well. - depnames = [ recipename_from_dep(x) for x in deps if mc == get_mc(x)] + depnames = [ recipename_from_dep(x) for x in deps if mc == bb.runqueue.mc_from_tid(x)] if any(x in y for y in depnames for x in self.unlockedrecipes): self.unlockedrecipes[recipename] = '' unlocked = True if not unlocked and recipename in self.lockedsigs: if task in self.lockedsigs[recipename]: - k = fn + "." + task h_locked = self.lockedsigs[recipename][task][0] var = self.lockedsigs[recipename][task][1] - self.lockedhashes[k] = h_locked - self.taskhash[k] = h_locked + self.lockedhashes[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: + if h != h_locked and h_locked != unihash: self.mismatch_msgs.append('The %s:%s sig is computed to be %s, but the sig is locked to %s in %s' % (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 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): - k = fn + "." + task - if k in self.lockedhashes: + tid = fn + ":" + task + if tid in self.lockedhashes and self.lockedhashes[tid]: return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime) def dump_lockedsigs(self, sigfile, taskfilter=None): types = {} - for k in self.runtaskdeps: + for tid in self.runtaskdeps: if taskfilter: - if not k in taskfilter: + if not tid in taskfilter: continue - fn = k.rsplit(".",1)[0] + fn = bb.runqueue.fn_from_tid(tid) t = self.lockedhashfn[fn].split(" ")[1].split(":")[5] t = 't-' + t.replace('_', '-') if t not in types: types[t] = [] - types[t].append(k) + types[t].append(tid) with open(sigfile, "w") as f: l = sorted(types) for t in l: f.write('SIGGEN_LOCKEDSIGS_%s = "\\\n' % t) types[t].sort() - sortedk = sorted(types[t], key=lambda k: self.lockedpnmap[k.rsplit(".",1)[0]]) - for k in sortedk: - fn = k.rsplit(".",1)[0] - task = k.rsplit(".",1)[1] - if k not in self.taskhash: + sortedtid = sorted(types[t], key=lambda tid: self.lockedpnmap[bb.runqueue.fn_from_tid(tid)]) + for tid in sortedtid: + (_, _, task, fn) = bb.runqueue.split_tid_mcfn(tid) + if tid not in self.taskhash: continue - f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.taskhash[k] + " \\\n") + f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.get_unihash(tid) + " \\\n") f.write(' "\n') f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(l))) @@ -226,25 +252,26 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): with open(sigfile, "w") as f: tasks = [] for taskitem in self.taskhash: - (fn, task) = taskitem.rsplit(".", 1) + (fn, task) = taskitem.rsplit(":", 1) pn = self.lockedpnmap[fn] tasks.append((pn, task, fn, self.taskhash[taskitem])) for (pn, task, fn, taskhash) in sorted(tasks): - f.write('%s.%s %s %s\n' % (pn, task, fn, taskhash)) + f.write('%s:%s %s %s\n' % (pn, task, fn, taskhash)) - def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): + def checkhashes(self, sq_data, missed, found, d): warn_msgs = [] error_msgs = [] sstate_missing_msgs = [] - for task in range(len(sq_fn)): - if task not in ret: + for tid in sq_data['hash']: + if tid not in found: for pn in self.lockedsigs: - if sq_hash[task] in iter(self.lockedsigs[pn].values()): - if sq_task[task] == 'do_shared_workdir': + taskname = bb.runqueue.taskname_from_tid(tid) + if sq_data['hash'][tid] in iter(self.lockedsigs[pn].values()): + if taskname == 'do_shared_workdir': continue sstate_missing_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?" - % (pn, sq_task[task], sq_hash[task])) + % (pn, taskname, sq_data['hash'][tid])) checklevel = d.getVar("SIGGEN_LOCKEDSIGS_TASKSIG_CHECK") if checklevel == 'warn': @@ -263,10 +290,25 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): if error_msgs: bb.fatal("\n".join(error_msgs)) +class SignatureGeneratorOEBasicHash(SignatureGeneratorOEBasicHashMixIn, bb.siggen.SignatureGeneratorBasicHash): + name = "OEBasicHash" + +class SignatureGeneratorOEEquivHash(SignatureGeneratorOEBasicHashMixIn, bb.siggen.SignatureGeneratorUniHashMixIn, bb.siggen.SignatureGeneratorBasicHash): + name = "OEEquivHash" + + def init_rundepcheck(self, data): + super().init_rundepcheck(data) + self.server = data.getVar('BB_HASHSERVE') + if not self.server: + bb.fatal("OEEquivHash requires BB_HASHSERVE to be set") + self.method = data.getVar('SSTATE_HASHEQUIV_METHOD') + if not self.method: + bb.fatal("OEEquivHash requires SSTATE_HASHEQUIV_METHOD to be set") # Insert these classes into siggen's namespace so it can see and select them bb.siggen.SignatureGeneratorOEBasic = SignatureGeneratorOEBasic bb.siggen.SignatureGeneratorOEBasicHash = SignatureGeneratorOEBasicHash +bb.siggen.SignatureGeneratorOEEquivHash = SignatureGeneratorOEEquivHash def find_siginfo(pn, taskname, taskhashlist, d): @@ -278,7 +320,7 @@ def find_siginfo(pn, taskname, taskhashlist, d): if not taskname: # We have to derive pn and taskname key = pn - splitit = key.split('.bb.') + splitit = key.split('.bb:') taskname = splitit[1] pn = os.path.basename(splitit[0]).split('_')[0] if key.startswith('virtual:native:'): @@ -327,7 +369,7 @@ def find_siginfo(pn, taskname, taskhashlist, d): if not taskhashlist or (len(filedates) < 2 and not foundall): # That didn't work, look in sstate-cache - hashes = taskhashlist or ['?' * 32] + hashes = taskhashlist or ['?' * 64] localdata = bb.data.createCopy(d) for hashval in hashes: localdata.setVar('PACKAGE_ARCH', '*') @@ -414,4 +456,140 @@ def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache): bb.warn("Manifest %s not found in %s (variant '%s')?" % (manifest, d2.expand(" ".join(pkgarchs)), variant)) return None, d2 +def OEOuthashBasic(path, sigfile, task, d): + """ + Basic output hash function + + Calculates the output hash of a task by hashing all output file metadata, + and file contents. + """ + import hashlib + import stat + import pwd + import grp + + def update_hash(s): + s = s.encode('utf-8') + h.update(s) + if sigfile: + sigfile.write(s) + + h = hashlib.sha256() + prev_dir = os.getcwd() + include_owners = os.environ.get('PSEUDO_DISABLED') == '0' + 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 + # SSTATE_PKGSPEC and the task name, those should be included in the + # output hash calculation. + update_hash("SSTATE_PKGSPEC=%s\n" % d.getVar('SSTATE_PKGSPEC')) + update_hash("task=%s\n" % task) + + for root, dirs, files in os.walk('.', topdown=True): + # Sort directories to ensure consistent ordering when recursing + dirs.sort() + files.sort() + + def process(path): + s = os.lstat(path) + + if stat.S_ISDIR(s.st_mode): + update_hash('d') + elif stat.S_ISCHR(s.st_mode): + update_hash('c') + elif stat.S_ISBLK(s.st_mode): + update_hash('b') + elif stat.S_ISSOCK(s.st_mode): + update_hash('s') + elif stat.S_ISLNK(s.st_mode): + update_hash('l') + elif stat.S_ISFIFO(s.st_mode): + update_hash('p') + else: + update_hash('-') + + def add_perm(mask, on, off='-'): + if mask & s.st_mode: + update_hash(on) + else: + update_hash(off) + + add_perm(stat.S_IRUSR, 'r') + add_perm(stat.S_IWUSR, 'w') + if stat.S_ISUID & s.st_mode: + add_perm(stat.S_IXUSR, 's', 'S') + else: + add_perm(stat.S_IXUSR, 'x') + + add_perm(stat.S_IRGRP, 'r') + add_perm(stat.S_IWGRP, 'w') + if stat.S_ISGID & s.st_mode: + add_perm(stat.S_IXGRP, 's', 'S') + else: + add_perm(stat.S_IXGRP, 'x') + + add_perm(stat.S_IROTH, 'r') + add_perm(stat.S_IWOTH, 'w') + if stat.S_ISVTX & s.st_mode: + update_hash('t') + else: + add_perm(stat.S_IXOTH, 'x') + + if include_owners: + 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): + update_hash("%9s" % ("%d.%d" % (os.major(s.st_rdev), os.minor(s.st_rdev)))) + else: + update_hash(" " * 9) + + update_hash(" ") + if stat.S_ISREG(s.st_mode): + update_hash("%10d" % s.st_size) + else: + update_hash(" " * 10) + + update_hash(" ") + fh = hashlib.sha256() + if stat.S_ISREG(s.st_mode): + # Hash file contents + with open(path, 'rb') as d: + for chunk in iter(lambda: d.read(4096), b""): + fh.update(chunk) + update_hash(fh.hexdigest()) + else: + update_hash(" " * len(fh.hexdigest())) + + update_hash(" %s" % path) + + if stat.S_ISLNK(s.st_mode): + update_hash(" -> %s" % os.readlink(path)) + + update_hash("\n") + + # Process this directory and all its child files + process(root) + for f in files: + if f == 'fixmepath': + continue + process(os.path.join(root, f)) + finally: + os.chdir(prev_dir) + + return h.hexdigest() + diff --git a/external/poky/meta/lib/oe/terminal.py b/external/poky/meta/lib/oe/terminal.py index caeb5e31..eb10a6e3 100644 --- a/external/poky/meta/lib/oe/terminal.py +++ b/external/poky/meta/lib/oe/terminal.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# import logging import oe.classutils import shlex @@ -39,7 +42,7 @@ class Terminal(Popen, metaclass=Registry): raise def format_command(self, sh_cmd, title): - fmt = {'title': title or 'Terminal', 'command': sh_cmd} + fmt = {'title': title or 'Terminal', 'command': sh_cmd, 'cwd': os.getcwd() } if isinstance(self.command, str): return shlex.split(self.command.format(**fmt)) else: @@ -52,7 +55,7 @@ class XTerminal(Terminal): raise UnsupportedTerminal(self.name) class Gnome(XTerminal): - command = 'gnome-terminal -t "{title}" -x {command}' + command = 'gnome-terminal -t "{title}" -- {command}' priority = 2 def __init__(self, sh_cmd, title=None, env=None, d=None): @@ -117,7 +120,7 @@ class Screen(Terminal): class TmuxRunning(Terminal): """Open a new pane in the current running tmux window""" name = 'tmux-running' - command = 'tmux split-window "{command}"' + command = 'tmux split-window -c "{cwd}" "{command}"' priority = 2.75 def __init__(self, sh_cmd, title=None, env=None, d=None): @@ -135,7 +138,7 @@ class TmuxRunning(Terminal): class TmuxNewWindow(Terminal): """Open a new window in the current running tmux session""" name = 'tmux-new-window' - command = 'tmux new-window -n "{title}" "{command}"' + command = 'tmux new-window -c "{cwd}" -n "{title}" "{command}"' priority = 2.70 def __init__(self, sh_cmd, title=None, env=None, d=None): @@ -149,7 +152,7 @@ class TmuxNewWindow(Terminal): class Tmux(Terminal): """Start a new tmux session and window""" - command = 'tmux new -d -s devshell -n devshell "{command}"' + command = 'tmux new -c "{cwd}" -d -s devshell -n devshell "{command}"' priority = 0.75 def __init__(self, sh_cmd, title=None, env=None, d=None): @@ -160,7 +163,7 @@ class Tmux(Terminal): # devshells, if it's already there, add a new window to it. window_name = 'devshell-%i' % os.getpid() - self.command = 'tmux new -d -s {0} -n {0} "{{command}}"'.format(window_name) + self.command = 'tmux new -c "{{cwd}}" -d -s {0} -n {0} "{{command}}"'.format(window_name) Terminal.__init__(self, sh_cmd, title, env, d) attach_cmd = 'tmux att -t {0}'.format(window_name) @@ -204,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()) @@ -296,6 +302,8 @@ def check_terminal_version(terminalName): vernum = ver.split(' ')[-1] if ver.startswith('tmux'): vernum = ver.split()[-1] + if ver.startswith('tmux next-'): + vernum = ver.split()[-1][5:] return vernum def distro_name(): diff --git a/external/poky/meta/lib/oe/types.py b/external/poky/meta/lib/oe/types.py index 1eebba5a..bbbabafb 100644 --- a/external/poky/meta/lib/oe/types.py +++ b/external/poky/meta/lib/oe/types.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import errno import re import os @@ -150,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))) @@ -179,4 +184,3 @@ def qemu_use_kvm(kvm, target_arch): elif build_arch == target_arch: use_kvm = True return use_kvm - diff --git a/external/poky/meta/lib/oe/useradd.py b/external/poky/meta/lib/oe/useradd.py index 179ac76b..8fc77568 100644 --- a/external/poky/meta/lib/oe/useradd.py +++ b/external/poky/meta/lib/oe/useradd.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# import argparse import re @@ -11,7 +14,7 @@ class myArgumentParser(argparse.ArgumentParser): error(message) def error(self, message): - raise bb.build.FuncFailed(message) + bb.fatal(message) def split_commands(params): params = re.split('''[ \t]*;[ \t]*(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', params.strip()) diff --git a/external/poky/meta/lib/oe/utils.py b/external/poky/meta/lib/oe/utils.py index 8a584d6d..13f4271d 100644 --- a/external/poky/meta/lib/oe/utils.py +++ b/external/poky/meta/lib/oe/utils.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import subprocess import multiprocessing import traceback @@ -78,12 +82,12 @@ def prune_suffix(var, suffixes, d): # See if var ends with any of the suffixes listed and # remove it if found for suffix in suffixes: - if var.endswith(suffix): - var = var.replace(suffix, "") + if suffix and var.endswith(suffix): + var = var[:-len(suffix)] prefix = d.getVar("MLPREFIX") if prefix and var.startswith(prefix): - var = var.replace(prefix, "") + var = var[len(prefix):] return var @@ -165,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 @@ -173,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) @@ -188,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. @@ -201,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) @@ -214,7 +221,7 @@ def packages_filter_out_system(d): PN-dbg PN-doc PN-locale-eb-gb removed. """ pn = d.getVar('PN') - blacklist = [pn + suffix for suffix in ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev')] + blacklist = [pn + suffix for suffix in ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev', '-src')] localepkg = pn + "-locale-" pkgs = [] @@ -241,9 +248,10 @@ def trim_version(version, num_parts=2): trimmed = ".".join(parts[:num_parts]) return trimmed -def cpu_count(): +def cpu_count(at_least=1): import multiprocessing - return multiprocessing.cpu_count() + cpus = multiprocessing.cpu_count() + return max(cpus, at_least) def execute_pre_post_process(d, cmds): if cmds is None: @@ -307,6 +315,10 @@ def multiprocess_launch(target, items, d, extraargs=None): p.start() launched.append(p) for q in launched: + # Have to manually call update() to avoid deadlocks. The pipe can be full and + # transfer stalled until we try and read the results object but the subprocess won't exit + # as it still has data to write (https://bugs.python.org/issue8426) + q.update() # The finished processes are joined when calling is_alive() if not q.is_alive(): if q.exception: @@ -320,13 +332,18 @@ def multiprocess_launch(target, items, d, extraargs=None): if errors: msg = "" for (e, tb) in errors: - msg = msg + str(e) + ": " + str(tb) + "\n" + if isinstance(e, subprocess.CalledProcessError) and e.output: + msg = msg + str(e) + "\n" + msg = msg + "Subprocess output:" + msg = msg + e.output.decode("utf-8", errors="ignore") + else: + msg = msg + str(e) + ": " + str(tb) + "\n" bb.fatal("Fatal errors occurred in subprocesses:\n%s" % msg) return results def squashspaces(string): import re - return re.sub("\s+", " ", string).strip() + return re.sub(r"\s+", " ", string).strip() def format_pkg_list(pkg_dict, ret_format=None): output = [] @@ -356,6 +373,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 @@ -363,14 +411,18 @@ def host_gcc_version(d, taskcontextonly=False): 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() env["PATH"] = d.getVar("PATH") - output = subprocess.check_output("%s --version" % compiler, shell=True, env=env).decode("utf-8") + 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(".* (\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) @@ -469,7 +521,7 @@ def write_ld_so_conf(d): f.write(d.getVar("base_libdir") + '\n') f.write(d.getVar("libdir") + '\n') -class ImageQAFailed(bb.build.FuncFailed): +class ImageQAFailed(Exception): def __init__(self, description, name=None, logfile=None): self.description = description self.name = name @@ -482,3 +534,6 @@ class ImageQAFailed(bb.build.FuncFailed): return msg +def sh_quote(string): + import shlex + return shlex.quote(string) diff --git a/external/poky/meta/lib/oeqa/buildperf/__init__.py b/external/poky/meta/lib/oeqa/buildperf/__init__.py index 605f429e..b7ebd036 100644 --- a/external/poky/meta/lib/oeqa/buildperf/__init__.py +++ b/external/poky/meta/lib/oeqa/buildperf/__init__.py @@ -1,13 +1,7 @@ # Copyright (c) 2016, Intel Corporation. # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. # -# This program is distributed in the hope 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. +# SPDX-License-Identifier: GPL-2.0-only # """Build performance tests""" from .base import (BuildPerfTestCase, diff --git a/external/poky/meta/lib/oeqa/buildperf/base.py b/external/poky/meta/lib/oeqa/buildperf/base.py index ac6ee15d..5f1805d8 100644 --- a/external/poky/meta/lib/oeqa/buildperf/base.py +++ b/external/poky/meta/lib/oeqa/buildperf/base.py @@ -1,13 +1,6 @@ # Copyright (c) 2016, Intel Corporation. # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope 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. +# SPDX-License-Identifier: GPL-2.0-only # """Build performance test base classes and functionality""" import json @@ -469,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/external/poky/meta/lib/oeqa/buildperf/test_basic.py b/external/poky/meta/lib/oeqa/buildperf/test_basic.py index 6d6b01b0..2104617b 100644 --- a/external/poky/meta/lib/oeqa/buildperf/test_basic.py +++ b/external/poky/meta/lib/oeqa/buildperf/test_basic.py @@ -1,13 +1,6 @@ # Copyright (c) 2016, Intel Corporation. # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope 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. +# SPDX-License-Identifier: GPL-2.0-only # """Basic set of build performance tests""" import os diff --git a/external/poky/meta/lib/oeqa/controllers/__init__.py b/external/poky/meta/lib/oeqa/controllers/__init__.py index 8eda9276..cc3836c4 100644 --- a/external/poky/meta/lib/oeqa/controllers/__init__.py +++ b/external/poky/meta/lib/oeqa/controllers/__init__.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# # Enable other layers to have modules in the same named directory from pkgutil import extend_path __path__ = extend_path(__path__, __name__) diff --git a/external/poky/meta/lib/oeqa/controllers/masterimage.py b/external/poky/meta/lib/oeqa/controllers/masterimage.py index a2912fc5..0bf5917e 100644 --- a/external/poky/meta/lib/oeqa/controllers/masterimage.py +++ b/external/poky/meta/lib/oeqa/controllers/masterimage.py @@ -1,7 +1,7 @@ # Copyright (C) 2014 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) - +# SPDX-License-Identifier: MIT +# # This module adds support to testimage.bbclass to deploy images and run # tests using a "master image" - this is a "known good" image that is # installed onto the device as part of initial setup and will be booted into @@ -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)) @@ -197,43 +197,3 @@ class SystemdbootTarget(MasterImageHardwareTarget): self.power_cycle(self.master) # there are better ways than a timeout but this should work for now time.sleep(120) - - -class SystemdbootTarget(MasterImageHardwareTarget): - - def __init__(self, d): - super(SystemdbootTarget, self).__init__(d) - # this the value we need to set in the LoaderEntryOneShot EFI variable - # so the system boots the 'test' bootloader label and not the default - # The first four bytes are EFI bits, and the rest is an utf-16le string - # (EFI vars values need to be utf-16) - # $ echo -en "test\0" | iconv -f ascii -t utf-16le | hexdump -C - # 00000000 74 00 65 00 73 00 74 00 00 00 |t.e.s.t...| - self.efivarvalue = r'\x07\x00\x00\x00\x74\x00\x65\x00\x73\x00\x74\x00\x00\x00' - self.deploy_cmds = [ - 'mount -L boot /boot', - 'mkdir -p /mnt/testrootfs', - 'mount -L testrootfs /mnt/testrootfs', - 'modprobe efivarfs', - 'mount -t efivarfs efivarfs /sys/firmware/efi/efivars', - 'cp ~/test-kernel /boot', - 'rm -rf /mnt/testrootfs/*', - 'tar xvf ~/test-rootfs.%s -C /mnt/testrootfs' % self.image_fstype, - 'printf "%s" > /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f' % self.efivarvalue - ] - - def _deploy(self): - # make sure these aren't mounted - self.master.run("umount /boot; umount /mnt/testrootfs; umount /sys/firmware/efi/efivars;") - # from now on, every deploy cmd should return 0 - # else an exception will be thrown by sshcontrol - self.master.ignore_status = False - self.master.copy_to(self.rootfs, "~/test-rootfs." + self.image_fstype) - self.master.copy_to(self.kernel, "~/test-kernel") - for cmd in self.deploy_cmds: - self.master.run(cmd) - - def _start(self, params=None): - self.power_cycle(self.master) - # there are better ways than a timeout but this should work for now - time.sleep(120) diff --git a/external/poky/meta/lib/oeqa/controllers/testtargetloader.py b/external/poky/meta/lib/oeqa/controllers/testtargetloader.py index b51d04b2..23101c73 100644 --- a/external/poky/meta/lib/oeqa/controllers/testtargetloader.py +++ b/external/poky/meta/lib/oeqa/controllers/testtargetloader.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import types import bb import os diff --git a/external/poky/meta/lib/oeqa/core/case.py b/external/poky/meta/lib/oeqa/core/case.py index 917a2aa3..aae451fe 100644 --- a/external/poky/meta/lib/oeqa/core/case.py +++ b/external/poky/meta/lib/oeqa/core/case.py @@ -1,6 +1,11 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# +import base64 +import zlib import unittest from oeqa.core.exception import OEQAMissingVariable @@ -29,6 +34,8 @@ class OETestCase(unittest.TestCase): @classmethod def _oeSetUpClass(clss): _validate_td_vars(clss.td, clss.td_vars, "class") + if hasattr(clss, 'setUpHooker') and callable(getattr(clss, 'setUpHooker')): + clss.setUpHooker() clss.setUpClassMethod() @classmethod @@ -44,3 +51,50 @@ class OETestCase(unittest.TestCase): for d in self.decorators: d.tearDownDecorator() self.tearDownMethod() + +class OEPTestResultTestCase: + """ + Mix-in class to provide functions to make interacting with extraresults for + the purposes of storing ptestresult data. + """ + @staticmethod + def _compress_log(log): + logdata = log.encode("utf-8") if isinstance(log, str) else log + logdata = zlib.compress(logdata) + logdata = base64.b64encode(logdata).decode("utf-8") + return {"compressed" : logdata} + + def ptest_rawlog(self, log): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + self.extraresults["ptestresult.rawlogs"] = {"log" : self._compress_log(log)} + + def ptest_section(self, section, duration = None, log = None, logfile = None, exitcode = None): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + + sections = self.extraresults.get("ptestresult.sections") + if section not in sections: + sections[section] = {} + + if log is not None: + sections[section]["log"] = self._compress_log(log) + elif logfile is not None: + with open(logfile, "rb") as f: + sections[section]["log"] = self._compress_log(f.read()) + + if duration is not None: + sections[section]["duration"] = duration + if exitcode is not None: + sections[section]["exitcode"] = exitcode + + def ptest_result(self, section, test, result): + if not hasattr(self, "extraresults"): + self.extraresults = {"ptestresult.sections" : {}} + + sections = self.extraresults.get("ptestresult.sections") + if section not in sections: + sections[section] = {} + resultname = "ptestresult.{}.{}".format(section, test) + self.extraresults[resultname] = {"status" : result} + diff --git a/external/poky/meta/lib/oeqa/core/cases/example/test_basic.py b/external/poky/meta/lib/oeqa/core/cases/example/test_basic.py index 11cf3800..d77edcdc 100644 --- a/external/poky/meta/lib/oeqa/core/cases/example/test_basic.py +++ b/external/poky/meta/lib/oeqa/core/cases/example/test_basic.py @@ -1,5 +1,7 @@ # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase from oeqa.core.decorator.depends import OETestDepends diff --git a/external/poky/meta/lib/oeqa/core/context.py b/external/poky/meta/lib/oeqa/core/context.py index 821aec88..4705d608 100644 --- a/external/poky/meta/lib/oeqa/core/context.py +++ b/external/poky/meta/lib/oeqa/core/context.py @@ -1,5 +1,7 @@ -# Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +## Copyright (C) 2016 Intel Corporation +# +# SPDX-License-Identifier: MIT +# import os import sys @@ -7,6 +9,7 @@ import json import time import logging import collections +import unittest from oeqa.core.loader import OETestLoader from oeqa.core.runner import OETestRunner @@ -43,20 +46,35 @@ class OETestContext(object): def skipTests(self, skips): if not skips: return + def skipfuncgen(skipmsg): + def func(): + raise unittest.SkipTest(skipmsg) + return func + class_ids = {} for test in self.suites: + if test.__class__ not in class_ids: + class_ids[test.__class__] = '.'.join(test.id().split('.')[:-1]) for skip in skips: - if test.id().startswith(skip): - setattr(test, 'setUp', lambda: test.skipTest('Skip by the command line argument "%s"' % skip)) + if (test.id()+'.').startswith(skip+'.'): + setattr(test, 'setUp', skipfuncgen('Skip by the command line argument "%s"' % skip)) + for tclass in class_ids: + cid = class_ids[tclass] + for skip in skips: + if (cid + '.').startswith(skip + '.'): + setattr(tclass, 'setUpHooker', skipfuncgen('Skip by the command line argument "%s"' % skip)) def loadTests(self, module_paths, modules=[], tests=[], - modules_manifest="", modules_required=[], filters={}): + modules_manifest="", modules_required=[], **kwargs): if modules_manifest: modules = self._read_modules_from_manifest(modules_manifest) self.loader = self.loaderClass(self, module_paths, modules, tests, - modules_required, filters) + 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) @@ -64,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 @@ -87,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, @@ -165,6 +183,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 @@ -183,7 +217,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/external/poky/meta/lib/oeqa/core/decorator/__init__.py b/external/poky/meta/lib/oeqa/core/decorator/__init__.py index 14d7bfcd..1a82518a 100644 --- a/external/poky/meta/lib/oeqa/core/decorator/__init__.py +++ b/external/poky/meta/lib/oeqa/core/decorator/__init__.py @@ -1,8 +1,12 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from functools import wraps from abc import abstractmethod, ABCMeta +from oeqa.core.utils.misc import strToList decoratorClasses = set() @@ -60,12 +64,16 @@ class OETestDiscover(OETestDecorator): def discover(registry): return registry['cases'] -class OETestFilter(OETestDecorator): +def OETestTag(*tags): + expandedtags = [] + for tag in tags: + expandedtags += strToList(tag) + def decorator(item): + if hasattr(item, "__oeqa_testtags"): + # do not append, create a new list (to handle classes with inheritance) + item.__oeqa_testtags = list(item.__oeqa_testtags) + expandedtags + else: + item.__oeqa_testtags = expandedtags + return item + return decorator - # OETestLoader call it while loading the tests - # in loadTestsFromTestCase method, it needs to - # return a bool, True if needs to be filtered. - # This method must consume the filter used. - @abstractmethod - def filtrate(self, filters): - return False diff --git a/external/poky/meta/lib/oeqa/core/decorator/data.py b/external/poky/meta/lib/oeqa/core/decorator/data.py index f0f65abb..bc4939e8 100644 --- a/external/poky/meta/lib/oeqa/core/decorator/data.py +++ b/external/poky/meta/lib/oeqa/core/decorator/data.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.exception import OEQAMissingVariable @@ -15,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): """ @@ -110,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/external/poky/meta/lib/oeqa/core/decorator/depends.py b/external/poky/meta/lib/oeqa/core/decorator/depends.py index 950dbaa6..33f0841c 100644 --- a/external/poky/meta/lib/oeqa/core/decorator/depends.py +++ b/external/poky/meta/lib/oeqa/core/decorator/depends.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from unittest import SkipTest diff --git a/external/poky/meta/lib/oeqa/core/decorator/oeid.py b/external/poky/meta/lib/oeqa/core/decorator/oeid.py deleted file mode 100644 index ea8017a5..00000000 --- a/external/poky/meta/lib/oeqa/core/decorator/oeid.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) - -from . import OETestFilter, registerDecorator -from oeqa.core.utils.misc import intToList - -def _idFilter(oeid, filters): - return False if oeid in filters else True - -@registerDecorator -class OETestID(OETestFilter): - attrs = ('oeid',) - - def bind(self, registry, case): - super(OETestID, self).bind(registry, case) - - def filtrate(self, filters): - if filters.get('oeid'): - filterx = intToList(filters['oeid'], 'oeid') - del filters['oeid'] - if _idFilter(self.oeid, filterx): - return True - return False diff --git a/external/poky/meta/lib/oeqa/core/decorator/oetag.py b/external/poky/meta/lib/oeqa/core/decorator/oetag.py deleted file mode 100644 index ad38ab78..00000000 --- a/external/poky/meta/lib/oeqa/core/decorator/oetag.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) - -from . import OETestFilter, registerDecorator -from oeqa.core.utils.misc import strToList - -def _tagFilter(tags, filters): - return False if set(tags) & set(filters) else True - -@registerDecorator -class OETestTag(OETestFilter): - attrs = ('oetag',) - - def bind(self, registry, case): - super(OETestTag, self).bind(registry, case) - self.oetag = strToList(self.oetag, 'oetag') - - def filtrate(self, filters): - if filters.get('oetag'): - filterx = strToList(filters['oetag'], 'oetag') - del filters['oetag'] - if _tagFilter(self.oetag, filterx): - return True - return False diff --git a/external/poky/meta/lib/oeqa/core/decorator/oetimeout.py b/external/poky/meta/lib/oeqa/core/decorator/oetimeout.py index a247583f..df90d1c7 100644 --- a/external/poky/meta/lib/oeqa/core/decorator/oetimeout.py +++ b/external/poky/meta/lib/oeqa/core/decorator/oetimeout.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import signal from . import OETestDecorator, registerDecorator diff --git a/external/poky/meta/lib/oeqa/core/exception.py b/external/poky/meta/lib/oeqa/core/exception.py index 732f2efd..05be0ed2 100644 --- a/external/poky/meta/lib/oeqa/core/exception.py +++ b/external/poky/meta/lib/oeqa/core/exception.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# class OEQAException(Exception): pass diff --git a/external/poky/meta/lib/oeqa/core/loader.py b/external/poky/meta/lib/oeqa/core/loader.py index e66de32c..11978213 100644 --- a/external/poky/meta/lib/oeqa/core/loader.py +++ b/external/poky/meta/lib/oeqa/core/loader.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import re @@ -13,7 +16,7 @@ from oeqa.core.utils.test import getSuiteModules, getCaseID from oeqa.core.exception import OEQATestNotFound from oeqa.core.case import OETestCase from oeqa.core.decorator import decoratorClasses, OETestDecorator, \ - OETestFilter, OETestDiscover + OETestDiscover # When loading tests, the unittest framework stores any exceptions and # displays them only when the run method is called. @@ -43,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 @@ -65,7 +68,7 @@ class OETestLoader(unittest.TestLoader): '_top_level_dir'] def __init__(self, tc, module_paths, modules, tests, modules_required, - filters, *args, **kwargs): + *args, **kwargs): self.tc = tc self.modules = _built_modules_dict(modules) @@ -73,13 +76,7 @@ class OETestLoader(unittest.TestLoader): self.tests = tests self.modules_required = modules_required - self.filters = filters - self.decorator_filters = [d for d in decoratorClasses if \ - issubclass(d, OETestFilter)] - self._validateFilters(self.filters, self.decorator_filters) - self.used_filters = [d for d in self.decorator_filters - for f in self.filters - if f in d.attrs] + self.tags_filter = kwargs.get("tags_filter", None) if isinstance(module_paths, str): module_paths = [module_paths] @@ -101,28 +98,6 @@ class OETestLoader(unittest.TestLoader): setattr(testCaseClass, 'td', self.tc.td) setattr(testCaseClass, 'logger', self.tc.logger) - def _validateFilters(self, filters, decorator_filters): - # Validate if filter isn't empty - for key,value in filters.items(): - if not value: - raise TypeError("Filter %s specified is empty" % key) - - # Validate unique attributes - attr_filters = [attr for clss in decorator_filters \ - for attr in clss.attrs] - dup_attr = [attr for attr in attr_filters - if attr_filters.count(attr) > 1] - if dup_attr: - raise TypeError('Detected duplicated attribute(s) %s in filter' - ' decorators' % ' ,'.join(dup_attr)) - - # Validate if filter is supported - for f in filters: - if f not in attr_filters: - classes = ', '.join([d.__name__ for d in decorator_filters]) - raise TypeError('Found "%s" filter but not declared in any of ' - '%s decorators' % (f, classes)) - def _registerTestCase(self, case): case_id = case.id() self.tc._registry['cases'][case_id] = case @@ -185,19 +160,20 @@ class OETestLoader(unittest.TestLoader): return True # Decorator filters - if self.filters and isinstance(case, OETestCase): - filters = self.filters.copy() - case_decorators = [cd for cd in case.decorators - if cd.__class__ in self.used_filters] - - # Iterate over case decorators to check if needs to be filtered. - for cd in case_decorators: - if cd.filtrate(filters): - return True - - # Case is missing one or more decorators for all the filters - # being used, so filter test case. - if filters: + if self.tags_filter is not None and callable(self.tags_filter): + alltags = set() + # pull tags from the case class + if hasattr(case, "__oeqa_testtags"): + for t in getattr(case, "__oeqa_testtags"): + alltags.add(t) + # pull tags from the method itself + if hasattr(case, test_name): + method = getattr(case, test_name) + if hasattr(method, "__oeqa_testtags"): + for t in getattr(method, "__oeqa_testtags"): + alltags.add(t) + + if self.tags_filter(alltags): return True return False diff --git a/external/poky/meta/lib/oeqa/core/runner.py b/external/poky/meta/lib/oeqa/core/runner.py index 65be679b..d50690ab 100644 --- a/external/poky/meta/lib/oeqa/core/runner.py +++ b/external/poky/meta/lib/oeqa/core/runner.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import time @@ -40,6 +43,7 @@ class OETestResult(_TestResult): self.starttime = {} self.endtime = {} self.progressinfo = {} + self.extraresults = {} # Inject into tc so that TestDepends decorator can see results tc.results = self @@ -126,41 +130,85 @@ class OETestResult(_TestResult): return 'UNKNOWN', None - def addSuccess(self, test): + def extractExtraResults(self, test, details = None): + extraresults = None + if details is not None and "extraresults" in details: + extraresults = details.get("extraresults", {}) + elif hasattr(test, "extraresults"): + extraresults = test.extraresults + + if extraresults is not None: + for k, v in extraresults.items(): + # handle updating already existing entries (e.g. ptestresults.sections) + if k in self.extraresults: + self.extraresults[k].update(v) + else: + self.extraresults[k] = v + + def addError(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addError(test, *args) + + def addFailure(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addFailure(test, *args) + + def addSuccess(self, test, details = None): #Added so we can keep track of successes too self.successes.append((test, None)) - super(OETestResult, self).addSuccess(test) + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addSuccess(test) + + def addExpectedFailure(self, test, *args, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addExpectedFailure(test, *args) + + def addUnexpectedSuccess(self, test, details = None): + self.extractExtraResults(test, details = details) + return super(OETestResult, self).addUnexpectedSuccess(test) def logDetails(self, json_file_dir=None, configuration=None, result_id=None, dump_streams=False): self.tc.logger.info("RESULTS:") - result = {} + result = self.extraresults logs = {} if hasattr(self.tc, "extraresults"): - result = self.tc.extraresults + result.update(self.tc.extraresults) for case_name in self.tc._registry['cases']: case = self.tc._registry['cases'][case_name] (status, log) = self._getTestResultDetails(case) - oeid = -1 - if hasattr(case, 'decorators'): - for d in case.decorators: - if hasattr(d, 'oeid'): - oeid = d.oeid - 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] = [] - logs[status].append("RESULTS - %s - Testcase %s: %s%s" % (case.id(), oeid, status, t)) + logs[status].append("RESULTS - %s: %s%s" % (case.id(), status, t)) 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 @@ -208,42 +256,20 @@ class OETestRunner(_TestRunner): self._walked_cases = self._walked_cases + 1 def _list_tests_name(self, suite): - from oeqa.core.decorator.oeid import OETestID - from oeqa.core.decorator.oetag import OETestTag - self._walked_cases = 0 - def _list_cases_without_id(logger, case): - - found_id = False - if hasattr(case, 'decorators'): - for d in case.decorators: - if isinstance(d, OETestID): - found_id = True - - if not found_id: - logger.info('oeid missing for %s' % case.id()) - def _list_cases(logger, case): - oeid = None - oetag = None - - if hasattr(case, 'decorators'): - for d in case.decorators: - if isinstance(d, OETestID): - oeid = d.oeid - elif isinstance(d, OETestTag): - oetag = d.oetag - - logger.info("%s\t%s\t\t%s" % (oeid, oetag, case.id())) - - self.tc.logger.info("Listing test cases that don't have oeid ...") - self._walk_suite(suite, _list_cases_without_id) - self.tc.logger.info("-" * 80) + oetags = [] + if hasattr(case, '__oeqa_testtags'): + oetags = getattr(case, '__oeqa_testtags') + if oetags: + logger.info("%s (%s)" % (case.id(), ",".join(oetags))) + else: + logger.info("%s" % (case.id())) self.tc.logger.info("Listing all available tests:") self._walked_cases = 0 - self.tc.logger.info("id\ttag\t\ttest") + self.tc.logger.info("test (tags)") self.tc.logger.info("-" * 80) self._walk_suite(suite, _list_cases) self.tc.logger.info("-" * 80) @@ -311,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/external/poky/meta/lib/oeqa/core/target/__init__.py b/external/poky/meta/lib/oeqa/core/target/__init__.py index d2468bc2..1382aa9b 100644 --- a/external/poky/meta/lib/oeqa/core/target/__init__.py +++ b/external/poky/meta/lib/oeqa/core/target/__init__.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from abc import abstractmethod diff --git a/external/poky/meta/lib/oeqa/core/target/qemu.py b/external/poky/meta/lib/oeqa/core/target/qemu.py index 538bf12b..295e8765 100644 --- a/external/poky/meta/lib/oeqa/core/target/qemu.py +++ b/external/poky/meta/lib/oeqa/core/target/qemu.py @@ -1,10 +1,14 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import sys import signal import time +from collections import defaultdict from .ssh import OESSHTarget from oeqa.utils.qemurunner import QemuRunner @@ -13,29 +17,51 @@ supported_fstypes = ['ext3', 'ext4', 'cpio.gz', 'wic'] class OEQemuTarget(OESSHTarget): def __init__(self, logger, server_ip, timeout=300, user='root', - port=None, machine='', rootfs='', kernel='', kvm=False, + 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, dump_dir=dump_dir, - dump_host_cmds=dump_host_cmds, logger=logger) + use_kvm=kvm, use_slirp=slirp, dump_dir=dump_dir, + dump_host_cmds=dump_host_cmds, logger=logger, + serial_ports=serial_ports, boot_patterns = boot_patterns, + use_ovmf=ovmf) - def start(self, params=None, extra_bootparams=None): - if self.runner.start(params, extra_bootparams=extra_bootparams): + def start(self, params=None, extra_bootparams=None, runqemuparams=''): + if self.use_slirp and not self.server_ip: + self.logger.error("Could not start qemu with slirp without server ip - provide 'TEST_SERVER_IP'") + raise RuntimeError("FAILED to start qemu - check the task log and the boot log") + if self.runner.start(params, extra_bootparams=extra_bootparams, runqemuparams=runqemuparams): self.ip = self.runner.ip - self.server_ip = self.runner.server_ip + if self.use_slirp: + target_ip_port = self.runner.ip.split(':') + if len(target_ip_port) == 2: + target_ip = target_ip_port[0] + port = target_ip_port[1] + self.ip = target_ip + self.ssh = self.ssh + ['-p', port] + self.scp = self.scp + ['-P', port] + else: + self.logger.error("Could not get host machine port to connect qemu with slirp, ssh will not be " + "able to connect to qemu with slirp") + if self.runner.server_ip: + self.server_ip = self.runner.server_ip else: self.stop() raise RuntimeError("FAILED to start qemu - check the task log and the boot log") diff --git a/external/poky/meta/lib/oeqa/core/target/ssh.py b/external/poky/meta/lib/oeqa/core/target/ssh.py index 0c09ddf5..aefb5768 100644 --- a/external/poky/meta/lib/oeqa/core/target/ssh.py +++ b/external/poky/meta/lib/oeqa/core/target/ssh.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import time @@ -12,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) @@ -27,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 = [ @@ -103,13 +107,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): """ @@ -243,7 +250,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/external/poky/meta/lib/oeqa/core/tests/cases/data.py b/external/poky/meta/lib/oeqa/core/tests/cases/data.py index 88003a6a..61f88547 100644 --- a/external/poky/meta/lib/oeqa/core/tests/cases/data.py +++ b/external/poky/meta/lib/oeqa/core/tests/cases/data.py @@ -1,8 +1,11 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase -from oeqa.core.decorator.oetag import OETestTag +from oeqa.core.decorator import OETestTag from oeqa.core.decorator.data import OETestDataDepends class DataTest(OETestCase): diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/depends.py b/external/poky/meta/lib/oeqa/core/tests/cases/depends.py index 17cdd90b..46e7db90 100644 --- a/external/poky/meta/lib/oeqa/core/tests/cases/depends.py +++ b/external/poky/meta/lib/oeqa/core/tests/cases/depends.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase from oeqa.core.decorator.depends import OETestDepends diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/loader/invalid/oeid.py b/external/poky/meta/lib/oeqa/core/tests/cases/loader/invalid/oeid.py deleted file mode 100644 index 038d4459..00000000 --- a/external/poky/meta/lib/oeqa/core/tests/cases/loader/invalid/oeid.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) - -from oeqa.core.case import OETestCase - -class AnotherIDTest(OETestCase): - - def testAnotherIdGood(self): - self.assertTrue(True, msg='How is this possible?') - - def testAnotherIdOther(self): - self.assertTrue(True, msg='How is this possible?') - - def testAnotherIdNone(self): - self.assertTrue(True, msg='How is this possible?') diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/loader/valid/another.py b/external/poky/meta/lib/oeqa/core/tests/cases/loader/valid/another.py index c9ffd177..bedc20c8 100644 --- a/external/poky/meta/lib/oeqa/core/tests/cases/loader/valid/another.py +++ b/external/poky/meta/lib/oeqa/core/tests/cases/loader/valid/another.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/oeid.py b/external/poky/meta/lib/oeqa/core/tests/cases/oeid.py deleted file mode 100644 index c2d3d32f..00000000 --- a/external/poky/meta/lib/oeqa/core/tests/cases/oeid.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) - -from oeqa.core.case import OETestCase -from oeqa.core.decorator.oeid import OETestID - -class IDTest(OETestCase): - - @OETestID(101) - def testIdGood(self): - self.assertTrue(True, msg='How is this possible?') - - @OETestID(102) - def testIdOther(self): - self.assertTrue(True, msg='How is this possible?') - - def testIdNone(self): - self.assertTrue(True, msg='How is this possible?') diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/oetag.py b/external/poky/meta/lib/oeqa/core/tests/cases/oetag.py index 0cae02e7..52f97dfd 100644 --- a/external/poky/meta/lib/oeqa/core/tests/cases/oetag.py +++ b/external/poky/meta/lib/oeqa/core/tests/cases/oetag.py @@ -1,11 +1,13 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase -from oeqa.core.decorator.oetag import OETestTag +from oeqa.core.decorator import OETestTag class TagTest(OETestCase): - @OETestTag('goodTag') def testTagGood(self): self.assertTrue(True, msg='How is this possible?') @@ -14,5 +16,23 @@ class TagTest(OETestCase): def testTagOther(self): self.assertTrue(True, msg='How is this possible?') + @OETestTag('otherTag', 'multiTag') + def testTagOtherMulti(self): + self.assertTrue(True, msg='How is this possible?') + def testTagNone(self): self.assertTrue(True, msg='How is this possible?') + +@OETestTag('classTag') +class TagClassTest(OETestCase): + @OETestTag('otherTag') + def testTagOther(self): + self.assertTrue(True, msg='How is this possible?') + + @OETestTag('otherTag', 'multiTag') + def testTagOtherMulti(self): + self.assertTrue(True, msg='How is this possible?') + + def testTagNone(self): + self.assertTrue(True, msg='How is this possible?') + diff --git a/external/poky/meta/lib/oeqa/core/tests/cases/timeout.py b/external/poky/meta/lib/oeqa/core/tests/cases/timeout.py index 870c3157..5dfecc7b 100644 --- a/external/poky/meta/lib/oeqa/core/tests/cases/timeout.py +++ b/external/poky/meta/lib/oeqa/core/tests/cases/timeout.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from time import sleep diff --git a/external/poky/meta/lib/oeqa/core/tests/common.py b/external/poky/meta/lib/oeqa/core/tests/common.py index 52b18a1c..88cc758a 100644 --- a/external/poky/meta/lib/oeqa/core/tests/common.py +++ b/external/poky/meta/lib/oeqa/core/tests/common.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import sys import os @@ -27,9 +30,9 @@ class TestBase(unittest.TestCase): directory = os.path.dirname(os.path.abspath(__file__)) self.cases_path = os.path.join(directory, 'cases') - def _testLoader(self, d={}, modules=[], tests=[], filters={}): + def _testLoader(self, d={}, modules=[], tests=[], **kwargs): from oeqa.core.context import OETestContext tc = OETestContext(d, self.logger) tc.loadTests(self.cases_path, modules=modules, tests=tests, - filters=filters) + **kwargs) return tc diff --git a/external/poky/meta/lib/oeqa/core/tests/test_data.py b/external/poky/meta/lib/oeqa/core/tests/test_data.py index 21b6c68b..ac74098b 100755 --- a/external/poky/meta/lib/oeqa/core/tests/test_data.py +++ b/external/poky/meta/lib/oeqa/core/tests/test_data.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import unittest import logging @@ -20,8 +22,9 @@ class TestData(TestBase): expectedException = "oeqa.core.exception.OEQAMissingVariable" tc = self._testLoader(modules=self.modules) - self.assertEqual(False, tc.runTests().wasSuccessful()) - for test, data in tc.errors: + results = tc.runTests() + self.assertFalse(results.wasSuccessful()) + for test, data in results.errors: expect = False if expectedException in data: expect = True @@ -33,8 +36,9 @@ class TestData(TestBase): d = {'IMAGE' : 'core-image-sato', 'ARCH' : 'arm'} tc = self._testLoader(d=d, modules=self.modules) - self.assertEqual(False, tc.runTests().wasSuccessful()) - for test, data in tc.failures: + results = tc.runTests() + self.assertFalse(results.wasSuccessful()) + for test, data in results.failures: expect = False if expectedError in data: expect = True diff --git a/external/poky/meta/lib/oeqa/core/tests/test_decorators.py b/external/poky/meta/lib/oeqa/core/tests/test_decorators.py index f7d11e88..b798bf7d 100755 --- a/external/poky/meta/lib/oeqa/core/tests/test_decorators.py +++ b/external/poky/meta/lib/oeqa/core/tests/test_decorators.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 - +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import signal import unittest @@ -12,58 +14,58 @@ setup_sys_path() from oeqa.core.exception import OEQADependency from oeqa.core.utils.test import getCaseMethod, getSuiteCasesNames, getSuiteCasesIDs -class TestFilterDecorator(TestBase): - - def _runFilterTest(self, modules, filters, expect, msg): - tc = self._testLoader(modules=modules, filters=filters) - test_loaded = set(getSuiteCasesNames(tc.suites)) - self.assertEqual(expect, test_loaded, msg=msg) +class TestTagDecorator(TestBase): + def _runTest(self, modules, filterfn, expect): + tc = self._testLoader(modules = modules, tags_filter = filterfn) + test_loaded = set(getSuiteCasesIDs(tc.suites)) + self.assertEqual(expect, test_loaded) def test_oetag(self): - # Get all cases without filtering. - filter_all = {} - test_all = {'testTagGood', 'testTagOther', 'testTagNone'} - msg_all = 'Failed to get all oetag cases without filtering.' - - # Get cases with 'goodTag'. - filter_good = {'oetag':'goodTag'} - test_good = {'testTagGood'} - msg_good = 'Failed to get just one test filtering with "goodTag" oetag.' - - # Get cases with an invalid tag. - filter_invalid = {'oetag':'invalidTag'} - test_invalid = set() - msg_invalid = 'Failed to filter all test using an invalid oetag.' - - tests = ((filter_all, test_all, msg_all), - (filter_good, test_good, msg_good), - (filter_invalid, test_invalid, msg_invalid)) - - for test in tests: - self._runFilterTest(['oetag'], test[0], test[1], test[2]) - - def test_oeid(self): - # Get all cases without filtering. - filter_all = {} - test_all = {'testIdGood', 'testIdOther', 'testIdNone'} - msg_all = 'Failed to get all oeid cases without filtering.' - - # Get cases with '101' oeid. - filter_good = {'oeid': 101} - test_good = {'testIdGood'} - msg_good = 'Failed to get just one tes filtering with "101" oeid.' - - # Get cases with an invalid id. - filter_invalid = {'oeid':999} - test_invalid = set() - msg_invalid = 'Failed to filter all test using an invalid oeid.' - - tests = ((filter_all, test_all, msg_all), - (filter_good, test_good, msg_good), - (filter_invalid, test_invalid, msg_invalid)) - - for test in tests: - self._runFilterTest(['oeid'], test[0], test[1], test[2]) + # get all cases without any filtering + self._runTest(['oetag'], None, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagOther', + 'oetag.TagTest.testTagOtherMulti', + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) + + # exclude any case with tags + self._runTest(['oetag'], lambda tags: tags, { + 'oetag.TagTest.testTagNone', + }) + + # exclude any case with otherTag + self._runTest(['oetag'], lambda tags: "otherTag" in tags, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagNone', + }) + + # exclude any case with classTag + self._runTest(['oetag'], lambda tags: "classTag" in tags, { + 'oetag.TagTest.testTagGood', + 'oetag.TagTest.testTagOther', + 'oetag.TagTest.testTagOtherMulti', + 'oetag.TagTest.testTagNone', + }) + + # include any case with classTag + self._runTest(['oetag'], lambda tags: "classTag" not in tags, { + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) + + # include any case with classTag or no tags + self._runTest(['oetag'], lambda tags: tags and "classTag" not in tags, { + 'oetag.TagTest.testTagNone', + 'oetag.TagClassTest.testTagOther', + 'oetag.TagClassTest.testTagOtherMulti', + 'oetag.TagClassTest.testTagNone', + }) class TestDependsDecorator(TestBase): modules = ['depends'] diff --git a/external/poky/meta/lib/oeqa/core/tests/test_loader.py b/external/poky/meta/lib/oeqa/core/tests/test_loader.py index b79b8bad..cb38ac84 100755 --- a/external/poky/meta/lib/oeqa/core/tests/test_loader.py +++ b/external/poky/meta/lib/oeqa/core/tests/test_loader.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 - +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import unittest @@ -13,36 +15,12 @@ from oeqa.core.exception import OEQADependency from oeqa.core.utils.test import getSuiteModules, getSuiteCasesIDs class TestLoader(TestBase): - - def test_fail_empty_filter(self): - filters = {'oetag' : ''} - expect = 'Filter oetag specified is empty' - msg = 'Expected TypeError exception for having invalid filter' - try: - # Must throw TypeError because empty filter - tc = self._testLoader(filters=filters) - self.fail(msg) - except TypeError as e: - result = True if expect in str(e) else False - self.assertTrue(result, msg=msg) - - def test_fail_invalid_filter(self): - filters = {'invalid' : 'good'} - expect = 'filter but not declared in any of' - msg = 'Expected TypeError exception for having invalid filter' - try: - # Must throw TypeError because invalid filter - tc = self._testLoader(filters=filters) - self.fail(msg) - except TypeError as e: - result = True if expect in str(e) else False - self.assertTrue(result, msg=msg) - + @unittest.skip("invalid directory is missing oetag.py") def test_fail_duplicated_module(self): cases_path = self.cases_path invalid_path = os.path.join(cases_path, 'loader', 'invalid') self.cases_path = [self.cases_path, invalid_path] - expect = 'Duplicated oeid module found in' + expect = 'Duplicated oetag module found in' msg = 'Expected ImportError exception for having duplicated module' try: # Must throw ImportEror because duplicated module @@ -55,17 +33,16 @@ class TestLoader(TestBase): self.cases_path = cases_path def test_filter_modules(self): - expected_modules = {'oeid', 'oetag'} + expected_modules = {'oetag'} tc = self._testLoader(modules=expected_modules) modules = getSuiteModules(tc.suites) msg = 'Expected just %s modules' % ', '.join(expected_modules) self.assertEqual(modules, expected_modules, msg=msg) def test_filter_cases(self): - modules = ['oeid', 'oetag', 'data'] + modules = ['oetag', 'data'] expected_cases = {'data.DataTest.testDataOk', - 'oetag.TagTest.testTagGood', - 'oeid.IDTest.testIdGood'} + 'oetag.TagTest.testTagGood'} tc = self._testLoader(modules=modules, tests=expected_cases) cases = set(getSuiteCasesIDs(tc.suites)) msg = 'Expected just %s cases' % ', '.join(expected_cases) @@ -74,7 +51,7 @@ class TestLoader(TestBase): def test_import_from_paths(self): cases_path = self.cases_path cases2_path = os.path.join(cases_path, 'loader', 'valid') - expected_modules = {'oeid', 'another'} + expected_modules = {'another'} self.cases_path = [self.cases_path, cases2_path] tc = self._testLoader(modules=expected_modules) modules = getSuiteModules(tc.suites) diff --git a/external/poky/meta/lib/oeqa/core/tests/test_runner.py b/external/poky/meta/lib/oeqa/core/tests/test_runner.py index a3f3861f..205464cf 100755 --- a/external/poky/meta/lib/oeqa/core/tests/test_runner.py +++ b/external/poky/meta/lib/oeqa/core/tests/test_runner.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 - +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import unittest import logging diff --git a/external/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/external/poky/meta/lib/oeqa/core/utils/concurrencytest.py index 1a58d35b..b2eb68fb 100644 --- a/external/poky/meta/lib/oeqa/core/utils/concurrencytest.py +++ b/external/poky/meta/lib/oeqa/core/utils/concurrencytest.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 # +# SPDX-License-Identifier: GPL-2.0-or-later +# # Modified for use in OE by Richard Purdie, 2018 # # Modified by: Corey Goldberg, 2013 @@ -19,6 +21,7 @@ import testtools import threading import time import io +import json import subunit from queue import Queue @@ -26,6 +29,9 @@ from itertools import cycle from subunit import ProtocolTestCase, TestProtocolClient from subunit.test_results import AutoTimingTestResultDecorator from testtools import ThreadsafeForwardingResult, iterate_tests +from testtools.content import Content +from testtools.content_type import ContentType +from oeqa.utils.commands import get_test_layer import bb.utils import oe.path @@ -67,6 +73,69 @@ class BBThreadsafeForwardingResult(ThreadsafeForwardingResult): self.semaphore.release() super(BBThreadsafeForwardingResult, self)._add_result_with_semaphore(method, test, *args, **kwargs) +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): + self._addResult(self.result.addSuccess, test, **kwargs) + + def addExpectedFailure(self, test, err = None, **kwargs): + self._addResult(self.result.addExpectedFailure, test, err, exception = True, **kwargs) + + 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) + +class ExtraResultsDecoderTestResult(ProxyTestResult): + def _addResult(self, method, test, *args, exception = False, **kwargs): + if "details" in kwargs and "extraresults" in kwargs["details"]: + if isinstance(kwargs["details"]["extraresults"], Content): + kwargs = kwargs.copy() + kwargs["details"] = kwargs["details"].copy() + extraresults = kwargs["details"]["extraresults"] + data = bytearray() + for b in extraresults.iter_bytes(): + data += b + extraresults = json.loads(data.decode()) + kwargs["details"]["extraresults"] = extraresults + return method(test, *args, **kwargs) + +class ExtraResultsEncoderTestResult(ProxyTestResult): + def _addResult(self, method, test, *args, exception = False, **kwargs): + if hasattr(test, "extraresults"): + extras = lambda : [json.dumps(test.extraresults).encode()] + kwargs = kwargs.copy() + if "details" not in kwargs: + kwargs["details"] = {} + else: + kwargs["details"] = kwargs["details"].copy() + kwargs["details"]["extraresults"] = Content(ContentType("application", "json", {'charset': 'utf8'}), extras) + # if using details, need to encode any exceptions into the details obj, + # testtools does not handle "err" and "details" together. + if "details" in kwargs and exception and (len(args) >= 1 and args[0] is not None): + kwargs["details"]["traceback"] = testtools.content.TracebackContent(args[0], test) + args = [] + return method(test, *args, **kwargs) + # # We have to patch subunit since it doesn't understand how to handle addError # outside of a running test case. This can happen if classSetUp() fails @@ -83,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 @@ -100,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) @@ -113,7 +198,9 @@ class ConcurrentTestSuite(unittest.TestSuite): result.threadprogress = {} for i, (test, testnum) in enumerate(tests): result.threadprogress[i] = [] - process_result = BBThreadsafeForwardingResult(result, semaphore, i, testnum, totaltests) + process_result = BBThreadsafeForwardingResult( + ExtraResultsDecoderTestResult(result), + semaphore, i, testnum, totaltests) # Force buffering of stdout/stderr so the console doesn't get corrupted by test output # as per default in parent code process_result.buffer = True @@ -151,15 +238,11 @@ 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) - def fork_for_tests(concurrency_num, suite): result = [] + if 'BUILDDIR' in os.environ: + selftestdir = get_test_layer() + test_blocks = partition_tests(suite, concurrency_num) # Clear the tests from the original suite so it doesn't keep them alive suite._tests[:] = [] @@ -181,38 +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) - selftestdir = os.path.abspath(builddir + "/../meta-selftest") - 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 @@ -226,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(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(): @@ -246,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/external/poky/meta/lib/oeqa/core/utils/misc.py b/external/poky/meta/lib/oeqa/core/utils/misc.py index 0b223b5d..e1a59588 100644 --- a/external/poky/meta/lib/oeqa/core/utils/misc.py +++ b/external/poky/meta/lib/oeqa/core/utils/misc.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# def toList(obj, obj_type, obj_name="Object"): if isinstance(obj, obj_type): diff --git a/external/poky/meta/lib/oeqa/core/utils/path.py b/external/poky/meta/lib/oeqa/core/utils/path.py index a21caad5..c086dcb0 100644 --- a/external/poky/meta/lib/oeqa/core/utils/path.py +++ b/external/poky/meta/lib/oeqa/core/utils/path.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import sys diff --git a/external/poky/meta/lib/oeqa/core/utils/test.py b/external/poky/meta/lib/oeqa/core/utils/test.py index 88d5d139..d38cab8a 100644 --- a/external/poky/meta/lib/oeqa/core/utils/test.py +++ b/external/poky/meta/lib/oeqa/core/utils/test.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import inspect diff --git a/external/poky/meta/lib/oeqa/manual/bsp-hw.json b/external/poky/meta/lib/oeqa/manual/bsp-hw.json index 4b7c76f7..a9bc7d45 100644 --- a/external/poky/meta/lib/oeqa/manual/bsp-hw.json +++ b/external/poky/meta/lib/oeqa/manual/bsp-hw.json @@ -1,30 +1,4 @@ [ - { - "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", @@ -171,28 +145,6 @@ "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", @@ -223,114 +175,6 @@ "summary": "switch_among_multi_applications_and_desktop" } }, - { - "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", @@ -526,7 +370,7 @@ "expected_results": "" }, "4": { - "action": "check ping status \n\nNote: This TC apply only for core-image-full-cmd and core-image-lsb .", + "action": "check ping status \n\nNote: This TC apply only for core-image-full-cmd.", "expected_results": "ping should always work before/after standby" } }, @@ -611,136 +455,6 @@ "summary": "Add_multiple_files_in_media_player" } }, - { - "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)", @@ -1201,28 +915,6 @@ "summary": "Check_if_RTC_(Real_Time_Clock)_can_work_correctly" } }, - { - "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", @@ -1252,35 +944,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/external/poky/meta/lib/oeqa/manual/bsp-qemu.json b/external/poky/meta/lib/oeqa/manual/bsp-qemu.json deleted file mode 100644 index cf51b6ab..00000000 --- a/external/poky/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/external/poky/meta/lib/oeqa/manual/build-appliance.json b/external/poky/meta/lib/oeqa/manual/build-appliance.json index b8f89275..70f8c72c 100644 --- a/external/poky/meta/lib/oeqa/manual/build-appliance.json +++ b/external/poky/meta/lib/oeqa/manual/build-appliance.json @@ -1,30 +1,4 @@ [ - { - "test": { - "@alias": "build-appliance.build-appliance.Bitbake_build-appliance-image", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get poky source code and prepare the build environment", - "expected_results": "bitbake build-appliance-image is successful " - }, - "2": { - "action": "Set MACHINE to qemux86 and add the following line to conf/local.conf : SRCREV_pn-build-appliance-image = \"${AUTOREV}\"", - "expected_results": "" - }, - "3": { - "action": "Run \"bitbake build-appliance-image\" \n \n", - "expected_results": "" - } - }, - "summary": "Bitbake_build-appliance-image" - } - }, { "test": { "@alias": "build-appliance.build-appliance.Build_core-image-minimal_with_build-appliance-image", diff --git a/external/poky/meta/lib/oeqa/manual/compliance-test.json b/external/poky/meta/lib/oeqa/manual/compliance-test.json deleted file mode 100644 index 982f0b46..00000000 --- a/external/poky/meta/lib/oeqa/manual/compliance-test.json +++ /dev/null @@ -1,194 +0,0 @@ -[ - { - "test": { - "@alias": "compliance-test.compliance-test.LTP_subset_test_suite", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "For real hardware, run following component, \nsyscalls \nfs \nfsx \ndio \nio \nmm \nipc \nsched \nmath \nnptl \npty \nadmin_tools \ntimers \ncommands \n\nFor QEMU, run following component \nsyscalls \nmm \nipc \nsched \nmath \nnptl \npty \nadmin_tools \ncommands \n\nRun Instructions: \nLTP download: http://sourceforge.net/projects/ltp/files/LTP%20Source/ltp-20120401/ltp-full-20120401.bz2/download \n\n(link is outdated, always use the last version released or the one found in the image) \n\n\n\nbuild steps: refer to http://ltp.sourceforge.net \n\nRun steps:", - "expected_results": "" - }, - "2": { - "action": "Build LTP with toolchain or in sdk image. Or use a sato-sdk image which has LTP already included in /opt/ltp", - "expected_results": "" - }, - "3": { - "action": "For QEMU, create the qemu target with \"-m 512\", which makes some memory stress cases pass. For some issues, we could only set 128M for qemuarm and 256M for qemumips.", - "expected_results": "" - }, - "4": { - "action": "Copy LTP folder into target, for example, /opt/ltp if you have built it yourself. Modify the default scenario file \"scenario_groups/default\", remove test suites not to be tested", - "expected_results": "" - }, - "5": { - "action": "Comment runtests/sched: hackbench, which is not suitable to run in emulators. Reminder (comment it also for Sugarbay Devices).", - "expected_results": "" - }, - "6": { - "action": "Comment oom01, oom02, oom03, oom04 in runtest/mm, which consume lots of memory", - "expected_results": "" - }, - "7": { - "action": "From /opt/ltp run: ./runltp -p -l result-M2-20101218.log -C result-M2-20101218.fail -d /opt/ltp/tmp &> result-M2-20101218.fulllog \n\n", - "expected_results": "Check the result on wiki, https://wiki.yoctoproject.org/wiki/LTP_result, there should be no regression failure met." - } - }, - "summary": "LTP_subset_test_suite" - } - }, - { - "test": { - "@alias": "compliance-test.compliance-test.POSIX_subset_test_suite", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "In a sato-sdk image go to /opt/ltp or get latest LTP sourcecode, download location is http://sourceforge.net/projects/ltp/files/LTP%20Source/ and install it.", - "expected_results": "" - }, - "2": { - "action": "Go into the folder of LTP, and posix_testsuite is under testcases/open_posix_testsuite/", - "expected_results": "" - }, - "3": { - "action": "Run connmand: make generate-makefiles", - "expected_results": "" - }, - "4": { - "action": "Run connmand: make conformance-all", - "expected_results": "" - }, - "5": { - "action": "Run connmand: make conformance-test (this step may show errors, ignore them)", - "expected_results": "" - }, - "6": { - "action": "Run connmand: make tools-all", - "expected_results": "" - }, - "7": { - "action": "Run connmand: sh posix.sh > posix.log, posix.sh as below: \n \n#!/bin/sh \n./bin/run-posix-option-group-test.sh AIO \n./bin/run-posix-option-group-test.sh MEM \n./bin/run-posix-option-group-test.sh MSG \n./bin/run-posix-option-group-test.sh SEM \n./bin/run-posix-option-group-test.sh SIG \n./bin/run-posix-option-group-test.sh THR \n./bin/run-posix-option-group-test.sh TMR \n./bin/run-posix-option-group-test.sh TPS \n \n", - "expected_results": "" - }, - "8": { - "action": "Check the posix.log after testing is finished", - "expected_results": "Compare the test result on wiki, https://wiki.yoctoproject.org/wiki/Posix_result, there should be no more regression failures met." - } - }, - "summary": "POSIX_subset_test_suite" - } - }, - { - "test": { - "@alias": "compliance-test.compliance-test.LSB_subset_test_suite", - "author": [ - { - "email": "corneliux.stoicescu@intel.com", - "name": "corneliux.stoicescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Get lsd-sdk image and install it on target device or start the image(if it is QEMU) with option \"-m 512M\"", - "expected_results": "" - }, - "2": { - "action": "Comment in /opt/lsb-test/session any tests you don't want to run.", - "expected_results": "" - }, - "3": { - "action": "Run /usr/bin/LSB_Test.sh which should download the LSB suite and set it up. Some packages may fail to download because their location changed on ftp.linuxfoundation.org. You need to manually update /opt/lsb-test/packages_list", - "expected_results": "" - }, - "4": { - "action": "Tests should start automatically, you can use the web interface to reconfigure the setup. ", - "expected_results": "Check the result on wiki https://wiki.yoctoproject.org/wiki/LSB_Result No regression failures should be met." - } - }, - "summary": "LSB_subset_test_suite" - } - }, - { - "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-lsb-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" - } - } -] \ No newline at end of file diff --git a/external/poky/meta/lib/oeqa/manual/crops.json b/external/poky/meta/lib/oeqa/manual/crops.json index 1cf3c8f3..5cfa6538 100644 --- a/external/poky/meta/lib/oeqa/manual/crops.json +++ b/external/poky/meta/lib/oeqa/manual/crops.json @@ -234,16 +234,16 @@ "expected_results": "this should output the directory of the devtool script and it should be within the sdk workdir you are working in. \n\n" }, "5": { - "action": "devtool add v4l2loopback-driver https://github.com/umlaeute/v4l2loopback.git \n\n", - "expected_results": "This should automatically create the recipe v4l2loopback-driver.bb under /recipes/v4l2loopback-driver/v4l2loopback-driver.bb " + "action": "devtool add kernel-module-hello-world https://git.yoctoproject.org/git/kernel-module-hello-world \n\n", + "expected_results": "This should automatically create the recipe kernel-module-hello-world.bb under /recipes/kernel-module-hello-world/kernel-module-hello-world.bb " }, "6": { - "action": "devtool build v4l2loopback-driver \n\n", + "action": "devtool build kernel-module-hello-world \n\n", "expected_results": "This should compile an image \n\n" }, "7": { - "action": "devtool reset v4l2loopback-driver ", - "expected_results": "This cleans sysroot of the v4l2loopback-driver recipe, but it leaves the source tree intact. meaning it does not erase." + "action": "devtool reset kernel-module-hello-world ", + "expected_results": "This cleans sysroot of the kernel-module-hello-world recipe, but it leaves the source tree intact. meaning it does not erase." } }, "summary": "sdkext_devtool_kernelmodule" @@ -291,4 +291,4 @@ "summary": "sdkext_recipes_for_nodejs" } } -] \ No newline at end of file +] diff --git a/external/poky/meta/lib/oeqa/manual/eclipse-plugin.json b/external/poky/meta/lib/oeqa/manual/eclipse-plugin.json index 9869150d..d77d0e67 100644 --- a/external/poky/meta/lib/oeqa/manual/eclipse-plugin.json +++ b/external/poky/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/external/poky/meta/lib/oeqa/manual/oe-core.json b/external/poky/meta/lib/oeqa/manual/oe-core.json index d893d849..fb47c5ec 100644 --- a/external/poky/meta/lib/oeqa/manual/oe-core.json +++ b/external/poky/meta/lib/oeqa/manual/oe-core.json @@ -1,106 +1,4 @@ [ - { - "test": { - "@alias": "oe-core.scripts.Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "Run a build for a recipe (e.g. core-image-minimal)", - "expected_results": "" - }, - "2": { - "action": "Run the profiling script, ../scripts/pybootchartgui/pybootchartgui.py tmp/buildstats/ \n\n", - "expected_results": "" - }, - "3": { - "action": "Verify the results ", - "expected_results": "The scripts generates svg files with the profiling results . " - } - }, - "summary": "Use_scripts/pybootchartgui/pybootchartgui.py_to_generate_build_profiles" - } - }, - { - "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", @@ -257,4 +155,4 @@ "summary": "test_bitbake_sane_error_for_invalid_layer" } } -] \ No newline at end of file +] diff --git a/external/poky/meta/lib/oeqa/manual/toaster-managed-mode.json b/external/poky/meta/lib/oeqa/manual/toaster-managed-mode.json index 812f57da..12374c7c 100644 --- a/external/poky/meta/lib/oeqa/manual/toaster-managed-mode.json +++ b/external/poky/meta/lib/oeqa/manual/toaster-managed-mode.json @@ -1494,7 +1494,7 @@ "expected_results": "A type in form appears. \n\n\t" }, "6": { - "action": "Change distro (ex: poky-lsb). \n\n\t", + "action": "Change distro (ex: poky-tiny). \n\n\t", "expected_results": "Distro has changed. \n\n\t" }, "7": { @@ -1503,7 +1503,7 @@ }, "8": { "action": " Build a recipe (ex: core-image-minimal) and wait until build finish.", - "expected_results": "Build finishes successfully. \n\nThe 'success' criteria for this one should be that the build is reported as using the poky-lsb distro in the build summary page, and that the DISTRO variable value in the bitbake variables table is set to the value specified in toaster (poky-lsb again)." + "expected_results": "Build finishes successfully. \n\nThe 'success' criteria for this one should be that the build is reported as using the poky-tiny distro in the build summary page, and that the DISTRO variable value in the bitbake variables table is set to the value specified in toaster (poky-tiny again)." } }, "summary": "Build_a_recipe_with_different_distro" @@ -1612,7 +1612,7 @@ "expected_results": "" }, "3": { - "action": "Check that the table is populated with the list of image recipes (eg. core-image minimal, core-image-lsb) \n\n\n", + "action": "Check that the table is populated with the list of image recipes (eg. core-image minimal) \n\n\n", "expected_results": "" }, "4": { @@ -1670,7 +1670,7 @@ "expected_results": "" }, "7": { - "action": "Sort the table by \"Layer\" and then navigate away by selecting an image (such as core-image-lsb). When you click the \"back\" button in the web-browser to go back, the \"New custom image\" table should still be sorted by \"Layer\". \nThis should apply also by navigating back to the page by any other means. \n\n", + "action": "Sort the table by \"Layer\" and then navigate away by selecting an image. When you click the \"back\" button in the web-browser to go back, the \"New custom image\" table should still be sorted by \"Layer\". \nThis should apply also by navigating back to the page by any other means. \n\n", "expected_results": "" }, "8": { @@ -2348,7 +2348,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. ", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. ", "expected_results": " All recipes are built correctly \n\n" }, "4": { @@ -2382,7 +2382,7 @@ "expected_results": "" }, "3": { - "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. \n\n", + "action": "Build 6 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", "expected_results": "All recipes are built correctly \n\n" }, "4": { @@ -2420,7 +2420,7 @@ "expected_results": "" }, "3": { - "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-lsb, core-image-clutter) to name a few. \n\n", + "action": "Build 4 recipes example (core-image-sato, core-image-minimal, core-image-base, core-image-clutter) to name a few. \n\n", "expected_results": " All recipes are built correctly \n\n" }, "4": { diff --git a/external/poky/meta/lib/oeqa/oetest.py b/external/poky/meta/lib/oeqa/oetest.py index f7171260..9c84466d 100644 --- a/external/poky/meta/lib/oeqa/oetest.py +++ b/external/poky/meta/lib/oeqa/oetest.py @@ -1,13 +1,15 @@ +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Main unittest module used by testimage.bbclass # This provides the oeRuntimeTest base class which is inherited by all tests in meta/lib/oeqa/runtime. # It also has some helper functions and it's responsible for actually starting the tests -import os, re, mmap, sys +import os, re, sys import unittest import inspect import subprocess diff --git a/external/poky/meta/lib/oeqa/runexported.py b/external/poky/meta/lib/oeqa/runexported.py index 9cfea0f7..7e37213d 100755 --- a/external/poky/meta/lib/oeqa/runexported.py +++ b/external/poky/meta/lib/oeqa/runexported.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 - - +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # This script should be used outside of the build system to run image tests. # It needs a json file as input as exported by the build. diff --git a/external/poky/meta/lib/oeqa/runtime/case.py b/external/poky/meta/lib/oeqa/runtime/case.py index 2f190acf..f036982e 100644 --- a/external/poky/meta/lib/oeqa/runtime/case.py +++ b/external/poky/meta/lib/oeqa/runtime/case.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.case import OETestCase from oeqa.utils.package_manager import install_package, uninstall_package diff --git a/external/poky/meta/lib/oeqa/runtime/cases/_qemutiny.py b/external/poky/meta/lib/oeqa/runtime/cases/_qemutiny.py index 7b5b4814..6886e365 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/_qemutiny.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/_qemutiny.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase class QemuTinyTest(OERuntimeTestCase): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/apt.py b/external/poky/meta/lib/oeqa/runtime/cases/apt.py index 793143f7..c5378d90 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/apt.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/apt.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.utils.httpserver import HTTPService from oeqa.runtime.case import OERuntimeTestCase @@ -18,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 diff --git a/external/poky/meta/lib/oeqa/runtime/cases/boot.py b/external/poky/meta/lib/oeqa/runtime/cases/boot.py new file mode 100644 index 00000000..2142f400 --- /dev/null +++ b/external/poky/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/external/poky/meta/lib/oeqa/runtime/cases/buildcpio.py b/external/poky/meta/lib/oeqa/runtime/cases/buildcpio.py index a61d1e03..d0f91668 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/buildcpio.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/buildcpio.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage from oeqa.runtime.utils.targetbuildproject import TargetBuildProject @@ -9,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']) @@ -18,13 +21,12 @@ class BuildCpioTest(OERuntimeTestCase): def tearDownClass(cls): cls.project.clean() - @OETestID(205) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['gcc']) @OEHasPackage(['make']) @OEHasPackage(['autoconf']) def test_cpio(self): self.project.download_archive() - self.project.run_configure() + self.project.run_configure('--disable-maintainer-mode','') self.project.run_make() self.project.run_install() diff --git a/external/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py b/external/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py index a0a00320..e5cc3e28 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/buildgalculator.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage from oeqa.runtime.utils.targetbuildproject import TargetBuildProject @@ -18,11 +21,11 @@ class GalculatorTest(OERuntimeTestCase): def tearDownClass(cls): cls.project.clean() - @OETestID(1526) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['gcc']) @OEHasPackage(['make']) @OEHasPackage(['autoconf']) + @OEHasPackage(['gtk+3']) def test_galculator(self): self.project.download_archive() self.project.run_configure() diff --git a/external/poky/meta/lib/oeqa/runtime/cases/buildlzip.py b/external/poky/meta/lib/oeqa/runtime/cases/buildlzip.py index 5b455a07..bc70b414 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/buildlzip.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/buildlzip.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage from oeqa.runtime.utils.targetbuildproject import TargetBuildProject @@ -19,7 +22,6 @@ class BuildLzipTest(OERuntimeTestCase): def tearDownClass(cls): cls.project.clean() - @OETestID(206) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['gcc']) @OEHasPackage(['make']) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/connman.py b/external/poky/meta/lib/oeqa/runtime/cases/connman.py index 12456b41..f0d15fac 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/connman.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/connman.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class ConnmanTest(OERuntimeTestCase): @@ -12,7 +15,6 @@ class ConnmanTest(OERuntimeTestCase): else: return "Unable to get status or logs for %s" % service - @OETestID(961) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(["connman"]) def test_connmand_help(self): @@ -20,7 +22,6 @@ class ConnmanTest(OERuntimeTestCase): msg = 'Failed to get connman help. Output: %s' % output self.assertEqual(status, 0, msg=msg) - @OETestID(221) @OETestDepends(['connman.ConnmanTest.test_connmand_help']) def test_connmand_running(self): cmd = '%s | grep [c]onnmand' % self.tc.target_cmds['ps'] diff --git a/external/poky/meta/lib/oeqa/runtime/cases/date.py b/external/poky/meta/lib/oeqa/runtime/cases/date.py index 0887b831..fdd2a6ae 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/date.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/date.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import re from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class DateTest(OERuntimeTestCase): @@ -10,14 +13,13 @@ 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') - @OETestID(211) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['coreutils', 'busybox']) def test_date(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/df.py b/external/poky/meta/lib/oeqa/runtime/cases/df.py index e0b6bb83..89fd0fb9 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/df.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/df.py @@ -1,15 +1,17 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class DfTest(OERuntimeTestCase): - @OETestID(234) @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/external/poky/meta/lib/oeqa/runtime/cases/dnf.py b/external/poky/meta/lib/oeqa/runtime/cases/dnf.py index c1ed39d7..f40c6302 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/dnf.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/dnf.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import subprocess @@ -5,8 +9,7 @@ from oeqa.utils.httpserver import HTTPService from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID -from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature +from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfInDataVar, skipIfNotInDataVar from oeqa.runtime.decorator.package import OEHasPackage class DnfTest(OERuntimeTestCase): @@ -26,27 +29,22 @@ class DnfBasicTest(DnfTest): 'RPM is not the primary package manager') @OEHasPackage(['dnf']) @OETestDepends(['ssh.SSHTest.test_ssh']) - @OETestID(1735) def test_dnf_help(self): self.dnf('--help') @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) - @OETestID(1739) def test_dnf_version(self): self.dnf('--version') @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) - @OETestID(1737) def test_dnf_info(self): self.dnf('info dnf') @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) - @OETestID(1738) def test_dnf_search(self): self.dnf('search dnf') @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) - @OETestID(1736) def test_dnf_history(self): self.dnf('history') @@ -55,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 @@ -71,7 +70,6 @@ class DnfRepoTest(DnfTest): return output @OETestDepends(['dnf.DnfBasicTest.test_dnf_help']) - @OETestID(1744) def test_dnf_makecache(self): self.dnf_with_repo('makecache') @@ -82,12 +80,10 @@ class DnfRepoTest(DnfTest): # self.dnf_with_repo('repolist') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) - @OETestID(1746) def test_dnf_repoinfo(self): self.dnf_with_repo('repoinfo') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) - @OETestID(1740) def test_dnf_install(self): output = self.dnf_with_repo('list run-postinsts-dev') if 'Installed Packages' in output: @@ -95,13 +91,11 @@ class DnfRepoTest(DnfTest): self.dnf_with_repo('install -y run-postinsts-dev') @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) - @OETestID(1741) def test_dnf_install_dependency(self): self.dnf_with_repo('remove -y run-postinsts') self.dnf_with_repo('install -y run-postinsts-dev') @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_dependency']) - @OETestID(1742) def test_dnf_install_from_disk(self): self.dnf_with_repo('remove -y run-postinsts-dev') self.dnf_with_repo('install -y --downloadonly run-postinsts-dev') @@ -110,7 +104,6 @@ class DnfRepoTest(DnfTest): self.dnf_with_repo('install -y %s' % output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_from_disk']) - @OETestID(1743) def test_dnf_install_from_http(self): output = subprocess.check_output('%s %s -name run-postinsts-dev*' % (bb.utils.which(os.getenv('PATH'), "find"), os.path.join(self.tc.td['WORKDIR'], 'oe-testimage-repo')), shell=True).decode("utf-8") @@ -120,12 +113,12 @@ class DnfRepoTest(DnfTest): self.dnf_with_repo('install -y %s' % url) @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) - @OETestID(1745) def test_dnf_reinstall(self): self.dnf_with_repo('reinstall -y run-postinsts-dev') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) - @OETestID(1771) + @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge') + @OEHasPackage('busybox') def test_dnf_installroot(self): rootpath = '/home/root/chroot/test' #Copy necessary files to avoid errors with not yet installed tools on @@ -151,7 +144,38 @@ class DnfRepoTest(DnfTest): self.assertEqual(0, status, output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) - @OETestID(1772) + @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmege') + @OEHasPackage('busybox') + def test_dnf_installroot_usrmerge(self): + rootpath = '/home/root/chroot/test' + #Copy necessary files to avoid errors with not yet installed tools on + #installroot directory. + self.target.run('mkdir -p %s/etc' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/bin %s/usr/sbin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/bin %s/bin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/sbin %s/sbin' % (rootpath, rootpath), 1500) + self.target.run('mkdir -p %s/dev' % rootpath, 1500) + #Handle different architectures lib dirs + self.target.run('mkdir -p %s/usr/lib' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/libx32' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/lib64' % rootpath, 1500) + self.target.run('cp /lib/libtinfo.so.5 %s/usr/lib' % rootpath, 1500) + self.target.run('cp /libx32/libtinfo.so.5 %s/usr/libx32' % rootpath, 1500) + self.target.run('cp /lib64/libtinfo.so.5 %s/usr/lib64' % rootpath, 1500) + self.target.run('ln -sf -r %s/lib %s/usr/lib' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/libx32 %s/usr/libx32' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/lib64 %s/usr/lib64' % (rootpath,rootpath), 1500) + self.target.run('cp -r /etc/rpm %s/etc' % rootpath, 1500) + self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) + self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) + self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) + self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) + status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) + self.assertEqual(0, status, output) + status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) + self.assertEqual(0, status, output) + + @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_exclude(self): excludepkg = 'curl-dev' self.dnf_with_repo('install -y curl*') diff --git a/external/poky/meta/lib/oeqa/runtime/cases/gcc.py b/external/poky/meta/lib/oeqa/runtime/cases/gcc.py index 8265c59f..1b6e431b 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/gcc.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/gcc.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class GccCompileTest(OERuntimeTestCase): @@ -24,7 +27,6 @@ class GccCompileTest(OERuntimeTestCase): files = '/tmp/test.c /tmp/test.o /tmp/test /tmp/testmakefile' cls.tc.target.run('rm %s' % files) - @OETestID(203) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['gcc']) def test_gcc_compile(self): @@ -36,7 +38,6 @@ class GccCompileTest(OERuntimeTestCase): msg = 'running compiled file failed, output: %s' % output self.assertEqual(status, 0, msg=msg) - @OETestID(200) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['g++']) def test_gpp_compile(self): @@ -48,7 +49,6 @@ class GccCompileTest(OERuntimeTestCase): msg = 'running compiled file failed, output: %s' % output self.assertEqual(status, 0, msg=msg) - @OETestID(1142) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['g++']) def test_gpp2_compile(self): @@ -60,7 +60,6 @@ class GccCompileTest(OERuntimeTestCase): msg = 'running compiled file failed, output: %s' % output self.assertEqual(status, 0, msg=msg) - @OETestID(204) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['gcc']) @OEHasPackage(['make']) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/gi.py b/external/poky/meta/lib/oeqa/runtime/cases/gi.py index 19073e52..42bd100a 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/gi.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/gi.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.runtime.case import OERuntimeTestCase @@ -9,7 +13,7 @@ class GObjectIntrospectionTest(OERuntimeTestCase): @OETestDepends(["ssh.SSHTest.test_ssh"]) @OEHasPackage(["python3-pygobject"]) def test_python(self): - script = """from gi.repository import GObject; print(GObject.markup_escape_text(""))""" + script = """from gi.repository import GLib; print(GLib.markup_escape_text(""))""" status, output = self.target.run("python3 -c '%s'" % script) self.assertEqual(status, 0, msg="Python failed (%s)" % (output)) self.assertEqual(output, "<testing&testing>", msg="Unexpected output (%s)" % output) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/gstreamer.py b/external/poky/meta/lib/oeqa/runtime/cases/gstreamer.py new file mode 100644 index 00000000..f735f82e --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/cases/gstreamer.py @@ -0,0 +1,18 @@ +# +# SPDX-License-Identifier: MIT +# + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.runtime.decorator.package import OEHasPackage + +class GstreamerCliTest(OERuntimeTestCase): + + @OEHasPackage(['gstreamer1.0']) + def test_gst_inspect_can_list_all_plugins(self): + status, output = self.target.run('gst-inspect-1.0') + self.assertEqual(status, 0, 'gst-inspect-1.0 does not appear to be running.') + + @OEHasPackage(['gstreamer1.0']) + def test_gst_launch_can_create_video_pipeline(self): + status, output = self.target.run('gst-launch-1.0 -v fakesrc silent=false num-buffers=3 ! fakesink silent=false') + self.assertEqual(status, 0, 'gst-launch-1.0 does not appear to be running.') diff --git a/external/poky/meta/lib/oeqa/runtime/cases/kernelmodule.py b/external/poky/meta/lib/oeqa/runtime/cases/kernelmodule.py index 27a2c35b..47fd2f85 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/kernelmodule.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/kernelmodule.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage @@ -23,7 +26,6 @@ class KernelModuleTest(OERuntimeTestCase): files = '/tmp/Makefile /tmp/hellomod.c' cls.tc.target.run('rm %s' % files) - @OETestID(1541) @skipIfNotFeature('tools-sdk', 'Test requires tools-sdk to be in IMAGE_FEATURES') @OETestDepends(['gcc.GccCompileTest.test_gcc_compile']) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ksample.py b/external/poky/meta/lib/oeqa/runtime/cases/ksample.py index 354cc976..a9a1620e 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/ksample.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/ksample.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + import os import time from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature # need some kernel fragments @@ -22,6 +25,12 @@ class KSample(OERuntimeTestCase): self.assertTrue(result, msg) self.assertEqual(status, 0, cmd) + def check_arch(self, archset=''): + status, output = self.target.run("uname -m") + result = ("%s" % output) in archset + if not result: + self.skipTest("This case doesn't support %s" % output) + def check_config(self, config_opt=''): cmd = "zcat /proc/config.gz | grep %s" % config_opt status, output = self.target.run(cmd) @@ -99,6 +108,7 @@ class KSampleTest(KSample): # kprobe @OETestDepends(['ssh.SSHTest.test_ssh']) def test_kprobe_test(self): + self.check_arch("x86_64 i686 ppc") index = ["kprobe", "kretprobe"] for i in index: self.kprobe_func(i) @@ -166,9 +176,9 @@ class KSampleTest(KSample): def test_hw_breakpoint_example(self): # check arch status, output = self.target.run("uname -m") - result = ("x86" in output) or ("aarch64" in output) + result = ("x86_64" in output) or ("aarch64" in output) if not result: - self.skipTest("the arch doesn't support hw breakpoint" % output) + self.skipTest("the arch %s doesn't support hw breakpoint" % output) # check config self.check_config("CONFIG_KALLSYMS_ALL") # make sure if module exists diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ldd.py b/external/poky/meta/lib/oeqa/runtime/cases/ldd.py index 5bde1845..9c2caa8f 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/ldd.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/ldd.py @@ -1,12 +1,14 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage class LddTest(OERuntimeTestCase): - @OETestID(962) @OEHasPackage(["ldd"]) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_ldd(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/external/poky/meta/lib/oeqa/runtime/cases/logrotate.py index d2666444..a4efcd07 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/logrotate.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/logrotate.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + # This test should cover https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=289 testcase # Note that the image under test must have logrotate installed from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class LogrotateTest(OERuntimeTestCase): @@ -15,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') - @OETestID(1544) @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) - @OETestID(1542) - @OETestDepends(['logrotate.LogrotateTest.test_1_logrotate_setup']) - def test_2_logrotate(self): - status, output = self.target.run('logrotate -f /etc/logrotate.conf') - msg = ('logrotate service could not be reloaded. 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/logrotate_testfile" > /tmp/logrotate-test2.conf') + msg = ('Could not write to /tmp/logrotate_test2.conf') 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) + 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) + + # 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) + + diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ltp.py b/external/poky/meta/lib/oeqa/runtime/cases/ltp.py new file mode 100644 index 00000000..a66d5d13 --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/cases/ltp.py @@ -0,0 +1,119 @@ +# LTP runtime +# +# Copyright (c) 2019 MontaVista Software, LLC +# +# SPDX-License-Identifier: GPL-2.0-only +# + +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.utils.logparser import LtpParser + +class LtpTestBase(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, 'ltp_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['ltpresult.rawlogs'] = {'log': ""} + + + @classmethod + def ltp_finishup(cls): + cls.extras['ltpresult.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 LtpTest(LtpTestBase): + + ltp_groups = ["math", "syscalls", "dio", "io", "mm", "ipc", "sched", "nptl", "pty", "containers", "controllers", "filecaps", "cap_bounds", "fcntl-locktests", "connectors", "commands", "net.ipv6_lib", "input","fs_perms_simple"] + + ltp_fs = ["fs", "fsx", "fs_bind"] + # skip kernel cpuhotplug + ltp_kernel = ["power_management_tests", "hyperthreading ", "kernel_misc", "hugetlb"] + ltp_groups += ltp_fs + + def runltp(self, ltp_group): + cmd = '/opt/ltp/runltp -f %s -p -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group) + starttime = time.time() + (status, output) = self.target.run(cmd) + endtime = time.time() + + with open(os.path.join(self.ltptest_log_dir, "%s-raw.log" % ltp_group), 'w') as f: + f.write(output) + + self.extras['ltpresult.rawlogs']['log'] = self.extras['ltpresult.rawlogs']['log'] + output + + # 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, True) + msg = 'File could not be copied. Output: %s' % output + if status: + self.target.logger.warning(msg) + + parser = LtpParser() + results, sections = parser.parse(dst) + + runtime = int(endtime-starttime) + sections['duration'] = runtime + self.sections[ltp_group] = sections + + failed_tests = {} + for test in results: + result = results[test] + testname = ("ltpresult." + ltp_group + "." + test) + self.extras[testname] = {'status': result} + if result == 'FAILED': + failed_tests[ltp_group] = test + + if failed_tests: + self.failmsg = self.failmsg + "Failed ptests:\n%s" % pprint.pformat(failed_tests) + + # LTP runtime tests + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage(["ltp"]) + def test_ltp_help(self): + (status, output) = self.target.run('/opt/ltp/runltp --help') + msg = 'Failed to get ltp help. Output: %s' % output + self.assertEqual(status, 0, msg=msg) + + @OETestDepends(['ltp.LtpTest.test_ltp_help']) + def test_ltp_groups(self): + for ltp_group in self.ltp_groups: + self.runltp(ltp_group) + + @OETestDepends(['ltp.LtpTest.test_ltp_groups']) + def test_ltp_runltp_cve(self): + self.runltp("cve") diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ltp_compliance.py b/external/poky/meta/lib/oeqa/runtime/cases/ltp_compliance.py new file mode 100644 index 00000000..ba47c78f --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/cases/ltp_compliance.py @@ -0,0 +1,97 @@ +# LTP compliance runtime +# +# Copyright (c) 2019 MontaVista Software, LLC +# +# SPDX-License-Identifier: GPL-2.0-only +# + +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.utils.logparser import LtpComplianceParser + +class LtpPosixBase(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, 'ltpcomp_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['ltpposixresult.rawlogs'] = {'log': ""} + + + @classmethod + def ltp_finishup(cls): + cls.extras['ltpposixresult.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 LtpPosixTest(LtpPosixBase): + posix_groups = ["AIO", "MEM", "MSG", "SEM", "SIG", "THR", "TMR", "TPS"] + + def runltp(self, posix_group): + cmd = "/opt/ltp/bin/run-posix-option-group-test.sh %s 2>@1 | tee /opt/ltp/results/%s" % (posix_group, posix_group) + starttime = time.time() + (status, output) = self.target.run(cmd) + endtime = time.time() + + with open(os.path.join(self.ltptest_log_dir, "%s" % posix_group), 'w') as f: + f.write(output) + + self.extras['ltpposixresult.rawlogs']['log'] = self.extras['ltpposixresult.rawlogs']['log'] + output + + parser = LtpComplianceParser() + results, sections = parser.parse(os.path.join(self.ltptest_log_dir, "%s" % posix_group)) + + runtime = int(endtime-starttime) + sections['duration'] = runtime + self.sections[posix_group] = sections + + failed_tests = {} + for test in results: + result = results[test] + testname = ("ltpposixresult." + posix_group + "." + test) + self.extras[testname] = {'status': result} + if result == 'FAILED': + failed_tests[posix_group] = test + + if failed_tests: + self.failmsg = self.failmsg + "Failed ptests:\n%s" % pprint.pformat(failed_tests) + + # LTP Posix compliance runtime tests + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage(["ltp"]) + def test_posix_groups(self): + for posix_group in self.posix_groups: + self.runltp(posix_group) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py b/external/poky/meta/lib/oeqa/runtime/cases/ltp_stress.py new file mode 100644 index 00000000..2445ffbc --- /dev/null +++ b/external/poky/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/external/poky/meta/lib/oeqa/runtime/cases/multilib.py b/external/poky/meta/lib/oeqa/runtime/cases/multilib.py index 89020386..62e662b0 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/multilib.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/multilib.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotInDataVar from oeqa.runtime.decorator.package import OEHasPackage @@ -23,7 +26,6 @@ class MultilibTest(OERuntimeTestCase): msg = "%s isn't %s (is %s)" % (binary, arch, theclass) self.assertEqual(theclass, arch, msg=msg) - @OETestID(1593) @skipIfNotInDataVar('MULTILIBS', 'multilib:lib32', "This isn't a multilib:lib32 image") @OETestDepends(['ssh.SSHTest.test_ssh']) @@ -36,7 +38,6 @@ class MultilibTest(OERuntimeTestCase): self.archtest("/lib/libc.so.6", "ELF32") self.archtest("/lib64/libc.so.6", "ELF64") - @OETestID(279) @OETestDepends(['multilib.MultilibTest.test_check_multilib_libc']) @OEHasPackage(['lib32-connman', '!connman']) def test_file_connman(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py b/external/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py index a92a1f2b..f3c2bedb 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/oe_syslog.py @@ -1,12 +1,15 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfDataVar from oeqa.runtime.decorator.package import OEHasPackage +import time class SyslogTest(OERuntimeTestCase): - @OETestID(201) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(["busybox-syslog", "sysklogd", "rsyslog", "syslog-ng"]) def test_syslog_running(self): @@ -14,18 +17,77 @@ class SyslogTest(OERuntimeTestCase): msg = "Failed to execute %s" % self.tc.target_cmds['ps'] self.assertEqual(status, 0, msg=msg) msg = "No syslog daemon process; %s output:\n%s" % (self.tc.target_cmds['ps'], output) - hasdaemon = "syslogd" in output or "syslog-ng" in output + hasdaemon = "syslogd" in output or "syslog-ng" in output or "svlogd" in output self.assertTrue(hasdaemon, msg=msg) class SyslogTestConfig(OERuntimeTestCase): - @OETestID(1149) + def verif_not_running(self, pids): + for pid in pids: + status, err_output = self.target.run('kill -0 %s' %pid) + if not status: + self.logger.debug("previous %s is still running" %pid) + return 1 + + def verify_running(self, names): + pids = [] + for name in names: + status, pid = self.target.run('pidof %s' %name) + if status: + self.logger.debug("%s is not running" %name) + return 1, pids + pids.append(pid) + return 0, pids + + + def restart_sanity(self, names, restart_cmd, pidchange=True): + status, original_pids = self.verify_running(names) + if status: + return False + + status, output = self.target.run(restart_cmd) + + msg = ('Could not restart %s service. Status and output: %s and %s' % (names, status, output)) + self.assertEqual(status, 0, msg) + + if not pidchange: + return True + + # Always check for an error, most likely a race between shutting down and starting up + timeout = time.time() + 30 + + restarted = False + status = "" + while time.time() < timeout: + # Verify the previous ones are no longer running + status = self.verif_not_running(original_pids) + if status: + status = "Original syslog processes still running" + continue + + status, pids = self.verify_running(names) + if status: + status = "New syslog processes not running" + continue + + # Everything is fine now, so exit to continue the test + restarted = True + break + + msg = ('%s didn\'t appear to restart: %s' % (names, status)) + self.assertTrue(restarted, msg) + + return True + @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running']) def test_syslog_logger(self): status, output = self.target.run('logger foobar') msg = "Can't log into syslog. Output: %s " % output self.assertEqual(status, 0, msg=msg) + # There is no way to flush the logger to disk in all cases + time.sleep(1) + status, output = self.target.run('grep foobar /var/log/messages') if status != 0: if self.tc.td.get("VIRTUAL-RUNTIME_init_manager") == "systemd": @@ -36,16 +98,19 @@ class SyslogTestConfig(OERuntimeTestCase): ' Output: %s ' % output) self.assertEqual(status, 0, msg=msg) - @OETestID(1150) + @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running']) def test_syslog_restart(self): - if "systemd" != self.tc.td.get("VIRTUAL-RUNTIME_init_manager", ""): - (_, _) = self.target.run('/etc/init.d/syslog restart') + if self.restart_sanity(['systemd-journald'], 'systemctl restart syslog.service', pidchange=False): + pass + elif self.restart_sanity(['rsyslogd'], '/etc/init.d/rsyslog restart'): + pass + elif self.restart_sanity(['syslogd', 'klogd'], '/etc/init.d/syslog restart'): + pass else: - (_, _) = self.target.run('systemctl restart syslog.service') + self.logger.info("No syslog found to restart, ignoring") - @OETestID(202) @OETestDepends(['oe_syslog.SyslogTestConfig.test_syslog_logger']) @OEHasPackage(["busybox-syslog"]) @skipIfDataVar('VIRTUAL-RUNTIME_init_manager', 'systemd', @@ -53,10 +118,8 @@ class SyslogTestConfig(OERuntimeTestCase): def test_syslog_startup_config(self): cmd = 'echo "LOGFILE=/var/log/test" >> /etc/syslog-startup.conf' self.target.run(cmd) - status, output = self.target.run('/etc/init.d/syslog restart') - msg = ('Could not restart syslog service. Status and output:' - ' %s and %s' % (status,output)) - self.assertEqual(status, 0, msg) + + self.test_syslog_restart() cmd = 'logger foobar && grep foobar /var/log/test' status,output = self.target.run(cmd) @@ -65,4 +128,4 @@ class SyslogTestConfig(OERuntimeTestCase): cmd = "sed -i 's#LOGFILE=/var/log/test##' /etc/syslog-startup.conf" self.target.run(cmd) - self.target.run('/etc/init.d/syslog restart') + self.test_syslog_restart() diff --git a/external/poky/meta/lib/oeqa/runtime/cases/opkg.py b/external/poky/meta/lib/oeqa/runtime/cases/opkg.py index 693f5d68..9cfee1cd 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/opkg.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/opkg.py @@ -1,7 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + 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): @@ -21,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 @@ -41,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/external/poky/meta/lib/oeqa/runtime/cases/pam.py b/external/poky/meta/lib/oeqa/runtime/cases/pam.py index 3654cdc9..271a1943 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/pam.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/pam.py @@ -1,14 +1,16 @@ +# +# SPDX-License-Identifier: MIT +# + # This test should cover https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=287 testcase # Note that the image under test must have "pam" in DISTRO_FEATURES from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature class PamBasicTest(OERuntimeTestCase): - @OETestID(1543) @skipIfNotFeature('pam', 'Test requires pam to be in DISTRO_FEATURES') @OETestDepends(['ssh.SSHTest.test_ssh']) def test_pam(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/parselogs.py b/external/poky/meta/lib/oeqa/runtime/cases/parselogs.py index f6e9820c..a1791b5c 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/parselogs.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/parselogs.py @@ -1,10 +1,13 @@ +# +# SPDX-License-Identifier: MIT +# + import os from subprocess import check_output from shutil import rmtree from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfDataVar from oeqa.runtime.decorator.package import OEHasPackage @@ -52,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 = [ @@ -69,6 +76,8 @@ x86_common = [ 'amd_nb: Cannot enumerate AMD northbridges', 'failed to retrieve link info, disabling eDP', 'Direct firmware load for iwlwifi', + 'Direct firmware load for regulatory.db', + 'failed to load regulatory.db', ] + common_errors qemux86_common = [ @@ -76,8 +85,9 @@ 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", + "glamor initialization failed", ] + common_errors ignore_errors = { @@ -113,6 +123,7 @@ ignore_errors = { 'OF: amba_device_add() failed (-19) for /amba/sctl@101e0000', 'OF: amba_device_add() failed (-19) for /amba/watchdog@101e1000', 'OF: amba_device_add() failed (-19) for /amba/sci@101f0000', + 'OF: amba_device_add() failed (-19) for /amba/spi@101f4000', 'OF: amba_device_add() failed (-19) for /amba/ssp@101f4000', 'OF: amba_device_add() failed (-19) for /amba/fpga/sci@a000', 'Failed to initialize \'/amba/timer@101e3000\': -22', @@ -123,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', @@ -161,7 +173,18 @@ ignore_errors = { 'The driver is built-in, so to load the firmware you need to', ] + x86_common, 'edgerouter' : [ + 'not creating \'/sys/firmware/fdt\'', + 'Failed to find cpu0 device node', 'Fatal server error:', + 'Server terminated with error', + ] + common_errors, + 'beaglebone-yocto' : [ + 'Direct firmware load for regulatory.db', + 'failed to load regulatory.db', + 'l4_wkup_cm', + 'Failed to load module "glx"', + 'Failed to make EGL context current', + 'glamor initialization failed', ] + common_errors, } @@ -270,7 +293,7 @@ class ParseLogsTest(OERuntimeTestCase): grepcmd = 'grep ' grepcmd += '-Ei "' for error in errors: - grepcmd += error + '|' + grepcmd += '\<' + error + '\>' + '|' grepcmd = grepcmd[:-1] grepcmd += '" ' + str(log) + " | grep -Eiv \'" @@ -332,7 +355,6 @@ class ParseLogsTest(OERuntimeTestCase): def write_dmesg(self): (status, dmesg) = self.target.run('dmesg > /tmp/dmesg_output.log') - @OETestID(1059) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_parselogs(self): self.write_dmesg() diff --git a/external/poky/meta/lib/oeqa/runtime/cases/perl.py b/external/poky/meta/lib/oeqa/runtime/cases/perl.py index be3287f2..2c6b3b78 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/perl.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/perl.py @@ -1,12 +1,14 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class PerlTest(OERuntimeTestCase): - @OETestID(208) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['perl']) def test_perl_works(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ping.py b/external/poky/meta/lib/oeqa/runtime/cases/ping.py index 02f580ab..f6603f75 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/ping.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/ping.py @@ -1,13 +1,15 @@ +# +# SPDX-License-Identifier: MIT +# + from subprocess import Popen, PIPE from oeqa.runtime.case import OERuntimeTestCase -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.oetimeout import OETimeout class PingTest(OERuntimeTestCase): @OETimeout(30) - @OETestID(964) def test_ping(self): output = '' count = 0 diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ptest.py b/external/poky/meta/lib/oeqa/runtime/cases/ptest.py index 2a28ca59..ef0470da 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/ptest.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/ptest.py @@ -1,22 +1,38 @@ +# +# SPDX-License-Identifier: MIT +# + +import os import unittest import pprint import datetime from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage from oeqa.utils.logparser import PtestParser class PtestRunnerTest(OERuntimeTestCase): - @OETestID(1600) @skipIfNotFeature('ptest', 'Test requires ptest to be in DISTRO_FEATURES') @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") @@ -26,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') @@ -65,8 +85,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/external/poky/meta/lib/oeqa/runtime/cases/python.py b/external/poky/meta/lib/oeqa/runtime/cases/python.py index 66ab4d25..ec54f1e1 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/python.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/python.py @@ -1,10 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class PythonTest(OERuntimeTestCase): - @OETestID(965) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['python3-core']) def test_python3(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/rpm.py b/external/poky/meta/lib/oeqa/runtime/cases/rpm.py index de92157c..8e18b426 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/rpm.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/rpm.py @@ -1,16 +1,19 @@ +# +# SPDX-License-Identifier: MIT +# + import os import fnmatch +import time from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfDataVar from oeqa.runtime.decorator.package import OEHasPackage from oeqa.core.utils.path import findFile class RpmBasicTest(OERuntimeTestCase): - @OETestID(960) @OEHasPackage(['rpm']) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_rpm_help(self): @@ -18,7 +21,6 @@ class RpmBasicTest(OERuntimeTestCase): msg = 'status and output: %s and %s' % (status, output) self.assertEqual(status, 0, msg=msg) - @OETestID(191) @OETestDepends(['rpm.RpmBasicTest.test_rpm_help']) def test_rpm_query(self): status, output = self.target.run('ls /var/lib/rpm/') @@ -28,38 +30,6 @@ class RpmBasicTest(OERuntimeTestCase): msg = 'status and output: %s and %s' % (status, output) self.assertEqual(status, 0, msg=msg) -class RpmInstallRemoveTest(OERuntimeTestCase): - - @classmethod - def setUpClass(cls): - pkgarch = cls.td['TUNE_PKGARCH'].replace('-', '_') - rpmdir = os.path.join(cls.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) - # Pick base-passwd-doc as a test file to get installed, because it's small - # and it will always be built for standard targets - rpm_doc = 'base-passwd-doc-*.%s.rpm' % pkgarch - if not os.path.exists(rpmdir): - return - for f in fnmatch.filter(os.listdir(rpmdir), rpm_doc): - cls.test_file = os.path.join(rpmdir, f) - cls.dst = '/tmp/base-passwd-doc.rpm' - - @OETestID(192) - @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) - def test_rpm_install(self): - self.tc.target.copyTo(self.test_file, self.dst) - status, output = self.target.run('rpm -ivh /tmp/base-passwd-doc.rpm') - msg = 'Failed to install base-passwd-doc package: %s' % output - self.assertEqual(status, 0, msg=msg) - self.tc.target.run('rm -f %s' % self.dst) - - @OETestID(194) - @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_install']) - def test_rpm_remove(self): - status,output = self.target.run('rpm -e base-passwd-doc') - msg = 'Failed to remove base-passwd-doc package: %s' % output - self.assertEqual(status, 0, msg=msg) - - @OETestID(1096) @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) def test_rpm_query_nonroot(self): @@ -79,7 +49,21 @@ class RpmInstallRemoveTest(OERuntimeTestCase): msg = 'status: %s. Cannot run rpm -qa: %s' % (status, output) self.assertEqual(status, 0, msg=msg) + def check_no_process_for_user(u): + _, output = self.target.run(self.tc.target_cmds['ps']) + if u + ' ' in output: + return False + else: + return True + def unset_up_test_user(u): + # ensure no test1 process in running + timeout = time.time() + 30 + while time.time() < timeout: + if check_no_process_for_user(u): + break + else: + time.sleep(1) status, output = self.target.run('userdel -r %s' % u) msg = 'Failed to erase user: %s' % output self.assertTrue(status == 0, msg=msg) @@ -92,7 +76,36 @@ class RpmInstallRemoveTest(OERuntimeTestCase): finally: unset_up_test_user(tuser) - @OETestID(195) + +class RpmInstallRemoveTest(OERuntimeTestCase): + + @classmethod + def setUpClass(cls): + pkgarch = cls.td['TUNE_PKGARCH'].replace('-', '_') + rpmdir = os.path.join(cls.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) + # Pick base-passwd-doc as a test file to get installed, because it's small + # and it will always be built for standard targets + rpm_doc = 'base-passwd-doc-*.%s.rpm' % pkgarch + if not os.path.exists(rpmdir): + return + for f in fnmatch.filter(os.listdir(rpmdir), rpm_doc): + cls.test_file = os.path.join(rpmdir, f) + cls.dst = '/tmp/base-passwd-doc.rpm' + + @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) + def test_rpm_install(self): + self.tc.target.copyTo(self.test_file, self.dst) + status, output = self.target.run('rpm -ivh /tmp/base-passwd-doc.rpm') + msg = 'Failed to install base-passwd-doc package: %s' % output + self.assertEqual(status, 0, msg=msg) + self.tc.target.run('rm -f %s' % self.dst) + + @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_install']) + def test_rpm_remove(self): + status,output = self.target.run('rpm -e base-passwd-doc') + msg = 'Failed to remove base-passwd-doc package: %s' % output + self.assertEqual(status, 0, msg=msg) + @OETestDepends(['rpm.RpmInstallRemoveTest.test_rpm_remove']) def test_check_rpm_install_removal_log_file_size(self): """ diff --git a/external/poky/meta/lib/oeqa/runtime/cases/scons.py b/external/poky/meta/lib/oeqa/runtime/cases/scons.py new file mode 100644 index 00000000..3c7c7f72 --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/cases/scons.py @@ -0,0 +1,37 @@ +# +# SPDX-License-Identifier: MIT +# + +import os + +from oeqa.runtime.case import OERuntimeTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.runtime.decorator.package import OEHasPackage + +class SconsCompileTest(OERuntimeTestCase): + + @classmethod + def setUp(cls): + dst = '/tmp/' + src = os.path.join(cls.tc.runtime_files_dir, 'hello.c') + cls.tc.target.copyTo(src, dst) + + src = os.path.join(cls.tc.runtime_files_dir, 'SConstruct') + cls.tc.target.copyTo(src, dst) + + @classmethod + def tearDown(cls): + files = '/tmp/hello.c /tmp/hello.o /tmp/hello /tmp/SConstruct' + cls.tc.target.run('rm %s' % files) + + @OETestDepends(['ssh.SSHTest.test_ssh']) + @OEHasPackage(['gcc']) + @OEHasPackage(['python3-scons']) + def test_scons_compile(self): + status, output = self.target.run('cd /tmp/ && scons') + msg = 'scons compile failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) + + status, output = self.target.run('/tmp/hello') + msg = 'running compiled file failed, output: %s' % output + self.assertEqual(status, 0, msg=msg) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/scp.py b/external/poky/meta/lib/oeqa/runtime/cases/scp.py index 8f895da9..3a5f2921 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/scp.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/scp.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + import os from tempfile import mkstemp from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class ScpTest(OERuntimeTestCase): @@ -19,7 +22,6 @@ class ScpTest(OERuntimeTestCase): def tearDownClass(cls): os.remove(cls.tmp_path) - @OETestID(220) @OETestDepends(['ssh.SSHTest.test_ssh']) @OEHasPackage(['openssh-scp', 'dropbear']) def test_scp_file(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/skeletoninit.py b/external/poky/meta/lib/oeqa/runtime/cases/skeletoninit.py index 4fdcf033..4779cd6b 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/skeletoninit.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/skeletoninit.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + # This test should cover https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=284 # testcase. Image under test must have meta-skeleton layer in bblayers and # IMAGE_INSTALL_append = " service" in local.conf from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfDataVar from oeqa.runtime.decorator.package import OEHasPackage @@ -22,7 +25,6 @@ class SkeletonBasicTest(OERuntimeTestCase): msg = 'skeleton-test not found. Output:\n%s' % output self.assertEqual(status, 0, msg=msg) - @OETestID(284) @OETestDepends(['skeletoninit.SkeletonBasicTest.test_skeleton_availability']) def test_skeleton_script(self): output1 = self.target.run("/etc/init.d/skeleton start")[1] diff --git a/external/poky/meta/lib/oeqa/runtime/cases/ssh.py b/external/poky/meta/lib/oeqa/runtime/cases/ssh.py index 0b1ea7bc..60a5fbbf 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/ssh.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/ssh.py @@ -1,11 +1,13 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.runtime.decorator.package import OEHasPackage class SSHTest(OERuntimeTestCase): - @OETestID(224) @OETestDepends(['ping.PingTest.test_ping']) @OEHasPackage(['dropbear', 'openssh-sshd']) def test_ssh(self): diff --git a/external/poky/meta/lib/oeqa/runtime/cases/stap.py b/external/poky/meta/lib/oeqa/runtime/cases/stap.py index c492caff..5342f6ac 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/stap.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/stap.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage @@ -19,7 +22,6 @@ class StapTest(OERuntimeTestCase): files = '/tmp/hello.stp' cls.tc.target.run('rm %s' % files) - @OETestID(1652) @skipIfNotFeature('tools-profile', 'Test requires tools-profile to be in IMAGE_FEATURES') @OETestDepends(['kernelmodule.KernelModuleTest.test_kernel_module']) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/storage.py b/external/poky/meta/lib/oeqa/runtime/cases/storage.py new file mode 100644 index 00000000..166d26b2 --- /dev/null +++ b/external/poky/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/external/poky/meta/lib/oeqa/runtime/cases/systemd.py b/external/poky/meta/lib/oeqa/runtime/cases/systemd.py index 460b8fc3..7c44abe8 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/systemd.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/systemd.py @@ -1,12 +1,15 @@ +# +# 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.oeid import OETestID 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): @@ -78,12 +81,10 @@ class SystemdBasicTests(SystemdTest): def test_systemd_basic(self): self.systemctl('--version') - @OETestID(551) @OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic']) def test_systemd_list(self): self.systemctl('list-unit-files') - @OETestID(550) @OETestDepends(['systemd.SystemdBasicTests.test_systemd_basic']) def test_systemd_failed(self): settled, output = self.settle() @@ -104,7 +105,6 @@ class SystemdServiceTests(SystemdTest): def test_systemd_status(self): self.systemctl('status --full', 'avahi-daemon.service') - @OETestID(695) @OETestDepends(['systemd.SystemdServiceTests.test_systemd_status']) def test_systemd_stop_start(self): self.systemctl('stop', 'avahi-daemon.service') @@ -113,14 +113,27 @@ class SystemdServiceTests(SystemdTest): self.systemctl('start','avahi-daemon.service') self.systemctl('is-active', 'avahi-daemon.service', verbose=True) - @OETestID(696) @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/external/poky/meta/lib/oeqa/runtime/cases/weston.py b/external/poky/meta/lib/oeqa/runtime/cases/weston.py new file mode 100644 index 00000000..f32599af --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/cases/weston.py @@ -0,0 +1,19 @@ +# +# 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 + +class WestonTest(OERuntimeTestCase): + + @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) diff --git a/external/poky/meta/lib/oeqa/runtime/cases/x32lib.py b/external/poky/meta/lib/oeqa/runtime/cases/x32lib.py index 8da0154e..ddf22014 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/x32lib.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/x32lib.py @@ -1,13 +1,15 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotInDataVar class X32libTest(OERuntimeTestCase): @skipIfNotInDataVar('DEFAULTTUNE', 'x86-64-x32', 'DEFAULTTUNE is not set to x86-64-x32') - @OETestID(281) @OETestDepends(['ssh.SSHTest.test_ssh']) def test_x32_file(self): cmd = 'readelf -h /bin/ls | grep Class | grep ELF32' diff --git a/external/poky/meta/lib/oeqa/runtime/cases/xorg.py b/external/poky/meta/lib/oeqa/runtime/cases/xorg.py index 82521c69..d6845587 100644 --- a/external/poky/meta/lib/oeqa/runtime/cases/xorg.py +++ b/external/poky/meta/lib/oeqa/runtime/cases/xorg.py @@ -1,12 +1,14 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.oeid import OETestID from oeqa.core.decorator.data import skipIfNotFeature from oeqa.runtime.decorator.package import OEHasPackage class XorgTest(OERuntimeTestCase): - @OETestID(1151) @skipIfNotFeature('x11-base', 'Test requires x11 to be in IMAGE_FEATURES') @OETestDepends(['ssh.SSHTest.test_ssh']) diff --git a/external/poky/meta/lib/oeqa/runtime/context.py b/external/poky/meta/lib/oeqa/runtime/context.py index db0482d6..3826f276 100644 --- a/external/poky/meta/lib/oeqa/runtime/context.py +++ b/external/poky/meta/lib/oeqa/runtime/context.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os @@ -44,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' @@ -74,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', @@ -95,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': @@ -135,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: @@ -175,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/external/poky/meta/lib/oeqa/runtime/decorator/package.py b/external/poky/meta/lib/oeqa/runtime/decorator/package.py index aa6ecb68..4c5ca198 100644 --- a/external/poky/meta/lib/oeqa/runtime/decorator/package.py +++ b/external/poky/meta/lib/oeqa/runtime/decorator/package.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.decorator import OETestDecorator, registerDecorator from oeqa.core.utils.misc import strToSet diff --git a/external/poky/meta/lib/oeqa/runtime/files/SConstruct b/external/poky/meta/lib/oeqa/runtime/files/SConstruct new file mode 100644 index 00000000..d2cb6dd1 --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/files/SConstruct @@ -0,0 +1 @@ +Program('hello.c') diff --git a/external/poky/meta/lib/oeqa/runtime/files/hello.c b/external/poky/meta/lib/oeqa/runtime/files/hello.c new file mode 100644 index 00000000..b0697a33 --- /dev/null +++ b/external/poky/meta/lib/oeqa/runtime/files/hello.c @@ -0,0 +1,5 @@ +int + main() + { + printf("Hello, world!\n"); + } diff --git a/external/poky/meta/lib/oeqa/runtime/loader.py b/external/poky/meta/lib/oeqa/runtime/loader.py index 041ef976..7041ddfd 100644 --- a/external/poky/meta/lib/oeqa/runtime/loader.py +++ b/external/poky/meta/lib/oeqa/runtime/loader.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.core.loader import OETestLoader from oeqa.runtime.case import OERuntimeTestCase diff --git a/external/poky/meta/lib/oeqa/runtime/utils/targetbuildproject.py b/external/poky/meta/lib/oeqa/runtime/utils/targetbuildproject.py index 5af55d73..f4f4816a 100644 --- a/external/poky/meta/lib/oeqa/runtime/utils/targetbuildproject.py +++ b/external/poky/meta/lib/oeqa/runtime/utils/targetbuildproject.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.utils.buildproject import BuildProject @@ -7,10 +10,12 @@ class TargetBuildProject(BuildProject): def __init__(self, target, uri, foldername=None, dl_dir=None): self.target = target - self.targetdir = "~/" + self.targetdir = "~/buildtest/" BuildProject.__init__(self, uri, foldername, dl_dir=dl_dir) def download_archive(self): + self.target.run("mkdir " + self.targetdir + " || true") + self._download_archive() status, output = self.target.copyTo(self.localarchive, self.targetdir) diff --git a/external/poky/meta/lib/oeqa/sdk/case.py b/external/poky/meta/lib/oeqa/sdk/case.py index c0aef18c..ebb03af9 100644 --- a/external/poky/meta/lib/oeqa/sdk/case.py +++ b/external/poky/meta/lib/oeqa/sdk/case.py @@ -1,6 +1,10 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# +import os import subprocess from oeqa.core.case import OETestCase @@ -10,3 +14,41 @@ class OESDKTestCase(OETestCase): return subprocess.check_output(". %s > /dev/null; %s;" % \ (self.tc.sdk_env, cmd), shell=True, executable="/bin/bash", stderr=subprocess.STDOUT, universal_newlines=True) + + def fetch(self, workdir, dl_dir, url, archive=None): + if not archive: + from urllib.parse import urlparse + archive = os.path.basename(urlparse(url).path) + + if dl_dir: + tarball = os.path.join(dl_dir, archive) + if os.path.exists(tarball): + return tarball + + tarball = os.path.join(workdir, archive) + subprocess.check_output(["wget", "-O", tarball, url]) + return tarball + + def check_elf(self, path, target_os=None, target_arch=None): + """ + Verify that the ELF binary $path matches the specified target + OS/architecture, or if not specified the currently configured MACHINE's + OS/architecture. + """ + import oe.qa, oe.elf + + if not target_os or not target_arch: + output = self._run("echo $OECORE_TARGET_OS:$OECORE_TARGET_ARCH") + target_os, target_arch = output.strip().split(":") + + machine_data = oe.elf.machine_dict(None)[target_os][target_arch] + (machine, osabi, abiversion, endian, bits) = machine_data + + elf = oe.qa.ELFFile(path) + elf.open() + + self.assertEqual(machine, elf.machine(), + "Binary was %s but expected %s" % + (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine))) + self.assertEqual(bits, elf.abiSize()) + self.assertEqual(endian, elf.isLittleEndian()) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/assimp.py b/external/poky/meta/lib/oeqa/sdk/cases/assimp.py index 26c1df08..f26b17f2 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/assimp.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/assimp.py @@ -1,5 +1,11 @@ -import os, subprocess, unittest -import bb +# +# SPDX-License-Identifier: MIT +# + +import os +import subprocess +import tempfile +import unittest from oeqa.sdk.case import OESDKTestCase from oeqa.utils.subprocesstweak import errors_have_output @@ -10,54 +16,25 @@ class BuildAssimp(OESDKTestCase): Test case to build a project using cmake. """ - td_vars = ['DATETIME', 'TARGET_OS', 'TARGET_ARCH'] - - @classmethod - def setUpClass(self): + def setUp(self): if not (self.tc.hasHostPackage("nativesdk-cmake") or self.tc.hasHostPackage("cmake-native")): raise unittest.SkipTest("Needs cmake") - def fetch(self, workdir, dl_dir, url, archive=None): - if not archive: - from urllib.parse import urlparse - archive = os.path.basename(urlparse(url).path) - - if dl_dir: - tarball = os.path.join(dl_dir, archive) - if os.path.exists(tarball): - return tarball - - tarball = os.path.join(workdir, archive) - subprocess.check_output(["wget", "-O", tarball, url]) - return tarball - def test_assimp(self): - import tempfile - import oe.qa, oe.elf - with tempfile.TemporaryDirectory(prefix="assimp", dir=self.tc.sdk_dir) as testdir: - dl_dir = self.td.get('DL_DIR', None) - tarball = self.fetch(testdir, dl_dir, "https://github.com/assimp/assimp/archive/v4.1.0.tar.gz") - subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) - - sourcedir = os.path.join(testdir, "assimp-4.1.0") - builddir = os.path.join(testdir, "build") - installdir = os.path.join(testdir, "install") - bb.utils.mkdirhier(builddir) + tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/assimp/assimp/archive/v4.1.0.tar.gz") - self._run("cd %s && cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON %s " % (builddir, sourcedir)) - self._run("cmake --build %s -- -j" % builddir) - self._run("cmake --build %s --target install -- DESTDIR=%s" % (builddir, installdir)) + dirs = {} + dirs["source"] = os.path.join(testdir, "assimp-4.1.0") + dirs["build"] = os.path.join(testdir, "build") + dirs["install"] = os.path.join(testdir, "install") - elf = oe.qa.ELFFile(os.path.join(installdir, "usr", "local", "lib", "libassimp.so.4.1.0")) - elf.open() - - output = self._run("echo $OECORE_TARGET_OS:$OECORE_TARGET_ARCH") - target_os, target_arch = output.strip().split(":") - machine_data = oe.elf.machine_dict(None)[target_os][target_arch] - (machine, osabi, abiversion, endian, bits) = machine_data + subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) + self.assertTrue(os.path.isdir(dirs["source"])) + os.makedirs(dirs["build"]) - self.assertEqual(machine, elf.machine()) - self.assertEqual(bits, elf.abiSize()) - self.assertEqual(endian, elf.isLittleEndian()) + self._run("cd {build} && cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON {source}".format(**dirs)) + self._run("cmake --build {build} -- -j".format(**dirs)) + self._run("cmake --build {build} --target install -- DESTDIR={install}".format(**dirs)) + self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libassimp.so.4.1.0")) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/buildcpio.py b/external/poky/meta/lib/oeqa/sdk/cases/buildcpio.py index 333dc7c2..902e93f6 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/buildcpio.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/buildcpio.py @@ -1,33 +1,35 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import tempfile +import subprocess import unittest + from oeqa.sdk.case import OESDKTestCase -from oeqa.sdk.utils.sdkbuildproject import SDKBuildProject +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() class BuildCpioTest(OESDKTestCase): - td_vars = ['DATETIME'] - - @classmethod - def setUpClass(self): - dl_dir = self.td.get('DL_DIR', None) - - self.project = SDKBuildProject(self.tc.sdk_dir + "/cpio/", self.tc.sdk_env, - "https://ftp.gnu.org/gnu/cpio/cpio-2.12.tar.gz", - self.tc.sdk_dir, self.td['DATETIME'], dl_dir=dl_dir) - self.project.download_archive() - - machine = self.td.get("MACHINE") - if not self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine): - raise unittest.SkipTest("SDK doesn't contain a cross-canadian toolchain") - + """ + Check that autotools will cross-compile correctly. + """ def test_cpio(self): - self.assertEqual(self.project.run_configure(), 0, - msg="Running configure failed") + 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.13.tar.gz") + + dirs = {} + dirs["source"] = os.path.join(testdir, "cpio-2.13") + dirs["build"] = os.path.join(testdir, "build") + dirs["install"] = os.path.join(testdir, "install") - self.assertEqual(self.project.run_make(), 0, - msg="Running make failed") + subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) + self.assertTrue(os.path.isdir(dirs["source"])) + os.makedirs(dirs["build"]) - self.assertEqual(self.project.run_install(), 0, - msg="Running make install failed") + 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)) - @classmethod - def tearDownClass(self): - self.project.clean() + self.check_elf(os.path.join(dirs["install"], "usr", "local", "bin", "cpio")) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py b/external/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py new file mode 100644 index 00000000..4211955f --- /dev/null +++ b/external/poky/meta/lib/oeqa/sdk/cases/buildepoxy.py @@ -0,0 +1,41 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import subprocess +import tempfile +import unittest + +from oeqa.sdk.case import OESDKTestCase +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + +class EpoxyTest(OESDKTestCase): + """ + Test that Meson builds correctly. + """ + def setUp(self): + if not (self.tc.hasHostPackage("nativesdk-meson")): + raise unittest.SkipTest("GalculatorTest class: SDK doesn't contain Meson") + + def test_epoxy(self): + with tempfile.TemporaryDirectory(prefix="epoxy", dir=self.tc.sdk_dir) as testdir: + tarball = self.fetch(testdir, self.td["DL_DIR"], "https://github.com/anholt/libepoxy/releases/download/1.5.3/libepoxy-1.5.3.tar.xz") + + dirs = {} + dirs["source"] = os.path.join(testdir, "libepoxy-1.5.3") + dirs["build"] = os.path.join(testdir, "build") + dirs["install"] = os.path.join(testdir, "install") + + subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) + self.assertTrue(os.path.isdir(dirs["source"])) + os.makedirs(dirs["build"]) + + log = self._run("meson -Degl=no -Dglx=no -Dx11=false {build} {source}".format(**dirs)) + # Check that Meson thinks we're doing a cross build and not a native + self.assertIn("Build type: cross build", log) + self._run("ninja -C {build} -v".format(**dirs)) + self._run("DESTDIR={install} ninja -C {build} -v install".format(**dirs)) + + self.check_elf(os.path.join(dirs["install"], "usr", "local", "lib", "libepoxy.so")) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py b/external/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py index 050d1b3b..bbaa5c55 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py @@ -1,13 +1,21 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import subprocess +import tempfile import unittest from oeqa.sdk.case import OESDKTestCase -from oeqa.sdk.utils.sdkbuildproject import SDKBuildProject +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() class GalculatorTest(OESDKTestCase): - td_vars = ['DATETIME'] - - @classmethod - def setUpClass(self): + """ + Test that autotools and GTK+ 3 compiles correctly. + """ + def setUp(self): if not (self.tc.hasTargetPackage("gtk+3", multilib=True) or \ self.tc.hasTargetPackage("libgtk-3.0", multilib=True)): raise unittest.SkipTest("GalculatorTest class: SDK don't support gtk+3") @@ -15,23 +23,21 @@ class GalculatorTest(OESDKTestCase): raise unittest.SkipTest("GalculatorTest class: SDK doesn't contain gettext") def test_galculator(self): - dl_dir = self.td.get('DL_DIR', None) - project = None - try: - project = SDKBuildProject(self.tc.sdk_dir + "/galculator/", - self.tc.sdk_env, - "http://galculator.mnim.org/downloads/galculator-2.1.4.tar.bz2", - self.tc.sdk_dir, self.td['DATETIME'], dl_dir=dl_dir) - - project.download_archive() - - # regenerate configure to get support for --with-libtool-sysroot - legacy_preconf=("autoreconf -i -f -I ${OECORE_TARGET_SYSROOT}/usr/share/aclocal -I m4;") - - self.assertEqual(project.run_configure(extra_cmds=legacy_preconf), - 0, msg="Running configure failed") - - self.assertEqual(project.run_make(), 0, - msg="Running make failed") - finally: - project.clean() + with tempfile.TemporaryDirectory(prefix="galculator", dir=self.tc.sdk_dir) as testdir: + tarball = self.fetch(testdir, self.td["DL_DIR"], "http://galculator.mnim.org/downloads/galculator-2.1.4.tar.bz2") + + dirs = {} + dirs["source"] = os.path.join(testdir, "galculator-2.1.4") + dirs["build"] = os.path.join(testdir, "build") + dirs["install"] = os.path.join(testdir, "install") + + subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) + 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 {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)) + + self.check_elf(os.path.join(dirs["install"], "usr", "local", "bin", "galculator")) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/buildlzip.py b/external/poky/meta/lib/oeqa/sdk/cases/buildlzip.py index b28cc3a5..515acd28 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/buildlzip.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/buildlzip.py @@ -1,36 +1,37 @@ -import unittest -from oeqa.sdk.case import OESDKTestCase -from oeqa.sdk.utils.sdkbuildproject import SDKBuildProject +# +# SPDX-License-Identifier: MIT +# +import os, tempfile, subprocess, unittest +from oeqa.sdk.case import OESDKTestCase +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() class BuildLzipTest(OESDKTestCase): - td_vars = ['DATETIME'] - - @classmethod - def setUpClass(self): - dl_dir = self.td.get('DL_DIR', None) - - self.project = SDKBuildProject(self.tc.sdk_dir + "/lzip/", self.tc.sdk_env, - "http://downloads.yoctoproject.org/mirror/sources/lzip-1.19.tar.gz", - self.tc.sdk_dir, self.td['DATETIME'], dl_dir=dl_dir) - self.project.download_archive() - - machine = self.td.get("MACHINE") - - if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or - self.tc.hasHostPackage("^gcc-", regex=True)): - raise unittest.SkipTest("SDK doesn't contain a cross-canadian toolchain") - + """ + Test that "plain" compilation works, using just $CC $CFLAGS etc. + """ def test_lzip(self): - self.assertEqual(self.project.run_configure(), 0, - msg="Running configure failed") - - self.assertEqual(self.project.run_make(), 0, - msg="Running make failed") - - self.assertEqual(self.project.run_install(), 0, - msg="Running make install failed") - - @classmethod - def tearDownClass(self): - self.project.clean() + with tempfile.TemporaryDirectory(prefix="lzip", dir=self.tc.sdk_dir) as testdir: + tarball = self.fetch(testdir, self.td["DL_DIR"], "http://downloads.yoctoproject.org/mirror/sources/lzip-1.19.tar.gz") + + dirs = {} + dirs["source"] = os.path.join(testdir, "lzip-1.19") + dirs["build"] = os.path.join(testdir, "build") + dirs["install"] = os.path.join(testdir, "install") + + subprocess.check_output(["tar", "xf", tarball, "-C", testdir]) + self.assertTrue(os.path.isdir(dirs["source"])) + os.makedirs(dirs["build"]) + + cmd = """cd {build} && \ + {source}/configure --srcdir {source} \ + CXX="$CXX" \ + CPPFLAGS="$CPPFLAGS" \ + CXXFLAGS="$CXXFLAGS" \ + LDFLAGS="$LDFLAGS" \ + """ + self._run(cmd.format(**dirs)) + self._run("cd {build} && make -j".format(**dirs)) + self._run("cd {build} && make install DESTDIR={install}".format(**dirs)) + self.check_elf(os.path.join(dirs["install"], "usr", "local", "bin", "lzip")) diff --git a/external/poky/meta/lib/oeqa/sdk/cases/gcc.py b/external/poky/meta/lib/oeqa/sdk/cases/gcc.py index b32b01fc..eb08eadd 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/gcc.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/gcc.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import shutil import unittest @@ -5,6 +9,9 @@ import unittest from oeqa.core.utils.path import remove_safe from oeqa.sdk.case import OESDKTestCase +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + class GccCompileTest(OESDKTestCase): td_vars = ['MACHINE'] diff --git a/external/poky/meta/lib/oeqa/sdk/cases/perl.py b/external/poky/meta/lib/oeqa/sdk/cases/perl.py index ff50b468..14d76d82 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/perl.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/perl.py @@ -1,17 +1,20 @@ +# +# SPDX-License-Identifier: MIT +# + import unittest from oeqa.sdk.case import OESDKTestCase +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + class PerlTest(OESDKTestCase): - @classmethod - def setUpClass(self): + def setUp(self): if not (self.tc.hasHostPackage("nativesdk-perl") or self.tc.hasHostPackage("perl-native")): raise unittest.SkipTest("No perl package in the SDK") def test_perl(self): - try: - cmd = "perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'" - output = self._run(cmd) - self.assertEqual(output, "Hello, world") - except subprocess.CalledProcessError as e: - self.fail("Unexpected exit %d (output %s)" % (e.returncode, e.output)) + cmd = "perl -e '$_=\"Uryyb, jbeyq\"; tr/a-zA-Z/n-za-mN-ZA-M/;print'" + output = self._run(cmd) + self.assertEqual(output, "Hello, world") diff --git a/external/poky/meta/lib/oeqa/sdk/cases/python.py b/external/poky/meta/lib/oeqa/sdk/cases/python.py index bd5f1f67..a334abce 100644 --- a/external/poky/meta/lib/oeqa/sdk/cases/python.py +++ b/external/poky/meta/lib/oeqa/sdk/cases/python.py @@ -1,17 +1,31 @@ +# +# SPDX-License-Identifier: MIT +# + import subprocess, unittest from oeqa.sdk.case import OESDKTestCase -class PythonTest(OESDKTestCase): - @classmethod - def setUpClass(self): - if not (self.tc.hasHostPackage("nativesdk-python3") or - self.tc.hasHostPackage("python3-native")): +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + +class Python2Test(OESDKTestCase): + def setUp(self): + if not (self.tc.hasHostPackage("nativesdk-python-core") or + self.tc.hasHostPackage("python-core-native")): raise unittest.SkipTest("No python package in the SDK") + def test_python2(self): + cmd = "python -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\"" + output = self._run(cmd) + self.assertEqual(output, "Hello, world\n") + +class Python3Test(OESDKTestCase): + def setUp(self): + if not (self.tc.hasHostPackage("nativesdk-python3-core") or + self.tc.hasHostPackage("python3-core-native")): + raise unittest.SkipTest("No python3 package in the SDK") + def test_python3(self): - try: - cmd = "python3 -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\"" - output = self._run(cmd) - self.assertEqual(output, "Hello, world\n") - except subprocess.CalledProcessError as e: - self.fail("Unexpected exit %d (output %s)" % (e.returncode, e.output)) + cmd = "python3 -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\"" + output = self._run(cmd) + self.assertEqual(output, "Hello, world\n") diff --git a/external/poky/meta/lib/oeqa/sdk/context.py b/external/poky/meta/lib/oeqa/sdk/context.py index adc4166f..01c38c24 100644 --- a/external/poky/meta/lib/oeqa/sdk/context.py +++ b/external/poky/meta/lib/oeqa/sdk/context.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import sys @@ -133,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/external/poky/meta/lib/oeqa/sdk/testsdk.py b/external/poky/meta/lib/oeqa/sdk/testsdk.py index 632ac50d..35e40187 100644 --- a/external/poky/meta/lib/oeqa/sdk/testsdk.py +++ b/external/poky/meta/lib/oeqa/sdk/testsdk.py @@ -1,5 +1,8 @@ +# # Copyright 2018 by Garmin Ltd. or its subsidiaries -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor diff --git a/external/poky/meta/lib/oeqa/sdk/utils/sdkbuildproject.py b/external/poky/meta/lib/oeqa/sdk/utils/sdkbuildproject.py index eafbd7a0..32f5e331 100644 --- a/external/poky/meta/lib/oeqa/sdk/utils/sdkbuildproject.py +++ b/external/poky/meta/lib/oeqa/sdk/utils/sdkbuildproject.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import subprocess diff --git a/external/poky/meta/lib/oeqa/sdkext/case.py b/external/poky/meta/lib/oeqa/sdkext/case.py index 21b71883..668faec9 100644 --- a/external/poky/meta/lib/oeqa/sdkext/case.py +++ b/external/poky/meta/lib/oeqa/sdkext/case.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import subprocess diff --git a/external/poky/meta/lib/oeqa/sdkext/cases/devtool.py b/external/poky/meta/lib/oeqa/sdkext/cases/devtool.py index 0860e8d1..8e92bf80 100644 --- a/external/poky/meta/lib/oeqa/sdkext/cases/devtool.py +++ b/external/poky/meta/lib/oeqa/sdkext/cases/devtool.py @@ -1,14 +1,19 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os import shutil import subprocess from oeqa.sdkext.case import OESDKExtTestCase -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.httpserver import HTTPService +from oeqa.utils.subprocesstweak import errors_have_output +errors_have_output() + class DevtoolTest(OESDKExtTestCase): @classmethod def setUpClass(cls): @@ -48,19 +53,15 @@ class DevtoolTest(OESDKExtTestCase): self._run('devtool add myapp %s' % self.myapp_dst) self._run('devtool reset myapp') - @OETestID(1605) def test_devtool_build_make(self): self._test_devtool_build(self.myapp_dst) - @OETestID(1606) def test_devtool_build_esdk_package(self): self._test_devtool_build_package(self.myapp_dst) - @OETestID(1607) def test_devtool_build_cmake(self): self._test_devtool_build(self.myapp_cmake_dst) - @OETestID(1608) def test_extend_autotools_recipe_creation(self): req = 'https://github.com/rdfa/librdfa' recipe = "librdfa" @@ -71,17 +72,15 @@ class DevtoolTest(OESDKExtTestCase): finally: self._run('devtool reset %s' % recipe) - @OETestID(1609) def test_devtool_kernelmodule(self): - docfile = 'https://github.com/umlaeute/v4l2loopback.git' - recipe = 'v4l2loopback-driver' + docfile = 'https://git.yoctoproject.org/git/kernel-module-hello-world' + recipe = 'kernel-module-hello-world' self._run('devtool add %s %s' % (recipe, docfile) ) try: self._run('devtool build %s' % recipe) finally: self._run('devtool reset %s' % recipe) - @OETestID(1610) def test_recipes_for_nodejs(self): package_nodejs = "npm://registry.npmjs.org;name=winston;version=2.2.0" self._run('devtool add %s ' % package_nodejs) diff --git a/external/poky/meta/lib/oeqa/sdkext/context.py b/external/poky/meta/lib/oeqa/sdkext/context.py index 65da4c6e..2ac2bf6f 100644 --- a/external/poky/meta/lib/oeqa/sdkext/context.py +++ b/external/poky/meta/lib/oeqa/sdkext/context.py @@ -1,5 +1,8 @@ +# # Copyright (C) 2016 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor diff --git a/external/poky/meta/lib/oeqa/sdkext/testsdk.py b/external/poky/meta/lib/oeqa/sdkext/testsdk.py index 57b2e0e0..c5c46df6 100644 --- a/external/poky/meta/lib/oeqa/sdkext/testsdk.py +++ b/external/poky/meta/lib/oeqa/sdkext/testsdk.py @@ -1,5 +1,8 @@ +# # Copyright 2018 by Garmin Ltd. or its subsidiaries -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# from oeqa.sdk.testsdk import TestSDKBase @@ -22,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): diff --git a/external/poky/meta/lib/oeqa/selftest/case.py b/external/poky/meta/lib/oeqa/selftest/case.py index 9c08d595..dcad4f76 100644 --- a/external/poky/meta/lib/oeqa/selftest/case.py +++ b/external/poky/meta/lib/oeqa/selftest/case.py @@ -1,9 +1,11 @@ +# # Copyright (C) 2013-2017 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import sys import os -import shutil import glob import errno from unittest.util import safe_repr @@ -27,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") @@ -40,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() @@ -99,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: @@ -190,13 +165,20 @@ to ensure accurate results.") self.logger.debug("Adding path '%s' to be cleaned up when test is over" % path) self._track_for_cleanup.append(path) - def write_config(self, data): - """Write to /conf/selftest.inc""" + def write_config(self, data, multiconfig=None): + """Write to config file""" + if multiconfig: + multiconfigdir = "%s/conf/multiconfig" % self.builddir + os.makedirs(multiconfigdir, exist_ok=True) + dest_path = '%s/%s.conf' % (multiconfigdir, multiconfig) + self.track_for_cleanup(dest_path) + else: + dest_path = self.testinc_path - self.logger.debug("Writing to: %s\n%s\n" % (self.testinc_path, data)) - ftools.write_file(self.testinc_path, data) + self.logger.debug("Writing to: %s\n%s\n" % (dest_path, data)) + ftools.write_file(dest_path, data) - if self.tc.custommachine and 'MACHINE' in data: + if not multiconfig and self.tc.custommachine and 'MACHINE' in data: machine = get_bb_var('MACHINE') self.logger.warning('MACHINE overridden: %s' % machine) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py b/external/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py index 0e589623..f7c356ad 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/_sstatetests_noauto.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import shutil diff --git a/external/poky/meta/lib/oeqa/selftest/cases/archiver.py b/external/poky/meta/lib/oeqa/selftest/cases/archiver.py index 0a6d4e32..bc5447d2 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/archiver.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/archiver.py @@ -1,12 +1,14 @@ +# +# SPDX-License-Identifier: MIT +# + import os import glob from oeqa.utils.commands import bitbake, get_bb_vars from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID class Archiver(OESelftestTestCase): - @OETestID(1345) def test_archiver_allows_to_filter_on_recipe_name(self): """ Summary: The archiver should offer the possibility to filter on the recipe. (#6929) @@ -40,7 +42,6 @@ class Archiver(OESelftestTestCase): excluded_present = len(glob.glob(src_path + '/%s-*' % exclude_recipe)) self.assertFalse(excluded_present, 'Recipe %s was not excluded.' % exclude_recipe) - @OETestID(1900) def test_archiver_filters_by_type(self): """ Summary: The archiver is documented to filter on the recipe type. @@ -73,7 +74,6 @@ class Archiver(OESelftestTestCase): excluded_present = len(glob.glob(src_path_native + '/%s-*' % native_recipe)) self.assertFalse(excluded_present, 'Recipe %s was not excluded.' % native_recipe) - @OETestID(1901) def test_archiver_filters_by_type_and_name(self): """ Summary: Test that the archiver archives by recipe type, taking the @@ -126,6 +126,132 @@ 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') + + def _test_archiver_mode(self, mode, target_file_name, extra_config=None): + target = "selftest-ed" + + 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', '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.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-1.14.1-r0-patched.tar.gz') + + def test_archiver_mode_configured(self): + """ + Test that the archiver works with `ARCHIVER_MODE[src] = "configured"`. + """ + + self._test_archiver_mode('configured', 'selftest-ed-1.14.1-r0-configured.tar.gz') + + def test_archiver_mode_recipe(self): + """ + Test that the archiver works with `ARCHIVER_MODE[recipe] = "1"`. + """ + + self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-recipe.tar.gz', + '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-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-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)) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/bblayers.py b/external/poky/meta/lib/oeqa/selftest/cases/bblayers.py index 447c54b7..f131d985 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/bblayers.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/bblayers.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re @@ -5,33 +9,27 @@ import oeqa.utils.ftools as ftools from oeqa.utils.commands import runCmd, get_bb_var, get_bb_vars from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID class BitbakeLayers(OESelftestTestCase): - @OETestID(756) 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) - @OETestID(83) 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) - @OETestID(93) 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) - @OETestID(90) 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) - @OETestID(95) def test_bitbakelayers_flatten(self): recipe = "xcursor-transparent-theme" recipe_path = "recipes-graphics/xcursor-transparent-theme" @@ -46,7 +44,6 @@ class BitbakeLayers(OESelftestTestCase): find_in_contents = re.search("##### bbappended from meta-selftest #####\n(.*\n)*include test_recipe.inc", contents) self.assertTrue(find_in_contents, msg = "Flattening layers did not work. bitbake-layers flatten output: %s" % result.output) - @OETestID(1195) def test_bitbakelayers_add_remove(self): test_layer = os.path.join(get_bb_var('COREBASE'), 'meta-skeleton') result = runCmd('bitbake-layers show-layers') @@ -64,7 +61,6 @@ class BitbakeLayers(OESelftestTestCase): result = runCmd('bitbake-layers show-layers') self.assertNotIn('meta-skeleton', result.output, msg = "meta-skeleton should have been removed at this step. bitbake-layers show-layers output: %s" % result.output) - @OETestID(1384) def test_bitbakelayers_showrecipes(self): result = runCmd('bitbake-layers show-recipes') self.assertIn('aspell:', result.output) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/external/poky/meta/lib/oeqa/selftest/cases/bbtests.py index 005fdd09..dc423ec4 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/bbtests.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/bbtests.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re @@ -5,7 +9,6 @@ import oeqa.utils.ftools as ftools from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID class BitbakeTests(OESelftestTestCase): @@ -14,13 +17,11 @@ class BitbakeTests(OESelftestTestCase): if line in l: return l - @OETestID(789) # Test bitbake can run from the /conf directory def test_run_bitbake_from_dir_1(self): os.chdir(os.path.join(self.builddir, 'conf')) self.assertEqual(bitbake('-e').status, 0, msg = "bitbake couldn't run from \"conf\" dir") - @OETestID(790) # Test bitbake can run from the 's parent directory def test_run_bitbake_from_dir_2(self): my_env = os.environ.copy() @@ -36,17 +37,15 @@ class BitbakeTests(OESelftestTestCase): self.assertEqual(bitbake('-e', env=my_env).status, 0, msg = "bitbake couldn't run from /tmp/") - @OETestID(806) def test_event_handler(self): self.write_config("INHERIT += \"test_events\"") result = bitbake('m4-native') - find_build_started = re.search("NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Executing RunQueue Tasks", result.output) - find_build_completed = re.search("Tasks Summary:.*(\n.*)*NOTE: Test for bb\.event\.BuildCompleted", result.output) + find_build_started = re.search(r"NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Executing.*Tasks", result.output) + 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) - @OETestID(103) def test_local_sstate(self): bitbake('m4-native') bitbake('m4-native -cclean') @@ -54,17 +53,14 @@ class BitbakeTests(OESelftestTestCase): find_setscene = re.search("m4-native.*do_.*_setscene", result.output) self.assertTrue(find_setscene, msg = "No \"m4-native.*do_.*_setscene\" message found during bitbake m4-native. bitbake output: %s" % result.output ) - @OETestID(105) def test_bitbake_invalid_recipe(self): result = bitbake('-b asdf', ignore_status=True) self.assertTrue("ERROR: Unable to find any recipe file matching 'asdf'" in result.output, msg = "Though asdf recipe doesn't exist, bitbake didn't output any err. message. bitbake output: %s" % result.output) - @OETestID(107) 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) - @OETestID(106) def test_warnings_errors(self): result = bitbake('-b asdf', ignore_status=True) find_warnings = re.search("Summary: There w.{2,3}? [1-9][0-9]* WARNING messages* shown", result.output) @@ -72,7 +68,6 @@ class BitbakeTests(OESelftestTestCase): self.assertTrue(find_warnings, msg="Did not find the mumber of warnings at the end of the build:\n" + result.output) self.assertTrue(find_errors, msg="Did not find the mumber of errors at the end of the build:\n" + result.output) - @OETestID(108) def test_invalid_patch(self): # This patch should fail to apply. self.write_recipeinc('man-db', 'FILESEXTRAPATHS_prepend := "${THISDIR}/files:"\nSRC_URI += "file://0001-Test-patch-here.patch"') @@ -80,10 +75,12 @@ class BitbakeTests(OESelftestTestCase): result = bitbake('man-db -c patch', ignore_status=True) self.delete_recipeinc('man-db') bitbake('-cclean man-db') - line = self.getline(result, "Function failed: patch_do_patch") - self.assertTrue(line and line.startswith("ERROR:"), msg = "Incorrectly formed patch application didn't fail. bitbake output: %s" % result.output) + found = False + for l in result.output.split('\n'): + if l.startswith("ERROR:") and "failed" in l and "do_patch" in l: + found = l + self.assertTrue(found and found.startswith("ERROR:"), msg = "Incorrectly formed patch application didn't fail. bitbake output: %s" % result.output) - @OETestID(1354) def test_force_task_1(self): # test 1 from bug 5875 test_recipe = 'zlib' @@ -108,7 +105,6 @@ class BitbakeTests(OESelftestTestCase): ret = bitbake(test_recipe) self.assertIn('task do_package_write_rpm:', ret.output, 'Task do_package_write_rpm did not re-executed.') - @OETestID(163) def test_force_task_2(self): # test 2 from bug 5875 test_recipe = 'zlib' @@ -121,15 +117,14 @@ class BitbakeTests(OESelftestTestCase): for task in look_for_tasks: self.assertIn(task, result.output, msg="Couldn't find %s task.") - @OETestID(167) def test_bitbake_g(self): - result = bitbake('-g core-image-minimal') - for f in ['pn-buildlist', 'recipe-depends.dot', 'task-depends.dot']: + recipe = 'base-files' + result = bitbake('-g %s' % recipe) + 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('busybox' in ftools.read_file(os.path.join(self.builddir, 'task-depends.dot')), msg = "No \"busybox\" dependency found in task-depends.dot file.") + self.assertIn(recipe, ftools.read_file(os.path.join(self.builddir, 'task-depends.dot'))) - @OETestID(899) def test_image_manifest(self): bitbake('core-image-minimal') bb_vars = get_bb_vars(["DEPLOY_DIR_IMAGE", "IMAGE_LINK_NAME"], "core-image-minimal") @@ -138,7 +133,6 @@ class BitbakeTests(OESelftestTestCase): manifest = os.path.join(deploydir, imagename + ".manifest") self.assertTrue(os.path.islink(manifest), msg="No manifest file created for image. It should have been created in %s" % manifest) - @OETestID(168) def test_invalid_recipe_src_uri(self): data = 'SRC_URI = "file://invalid"' self.write_recipeinc('man-db', data) @@ -153,13 +147,11 @@ 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) - @OETestID(171) def test_rename_downloaded_file(self): # TODO unique dldir instead of using cleanall # TODO: need to set sstatedir? @@ -177,54 +169,46 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\" self.assertTrue(os.path.isfile(os.path.join(dl_dir, 'test-aspell.tar.gz')), msg = "File rename failed. No corresponding test-aspell.tar.gz file found under %s" % dl_dir) self.assertTrue(os.path.isfile(os.path.join(dl_dir, 'test-aspell.tar.gz.done')), "File rename failed. No corresponding test-aspell.tar.gz.done file found under %s" % dl_dir) - @OETestID(1028) 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) - @OETestID(1029) def test_dry_run(self): result = runCmd('bitbake -n m4-native') self.assertEqual(0, result.status, "bitbake dry run didn't run as expected. %s" % result.output) - @OETestID(1030) def test_just_parse(self): result = runCmd('bitbake -p') self.assertEqual(0, result.status, "errors encountered when parsing recipes. %s" % result.output) - @OETestID(1031) def test_version(self): result = runCmd('bitbake -s | grep wget') - find = re.search("wget *:([0-9a-zA-Z\.\-]+)", result.output) + find = re.search(r"wget *:([0-9a-zA-Z\.\-]+)", result.output) self.assertTrue(find, "No version returned for searched recipe. bitbake output: %s" % result.output) - @OETestID(1032) def test_prefile(self): preconf = os.path.join(self.builddir, 'conf/prefile.conf') 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) - @OETestID(1033) def test_postfile(self): postconf = os.path.join(self.builddir, 'conf/postfile.conf') self.track_for_cleanup(postconf) 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) - @OETestID(1034) def test_checkuri(self): result = runCmd('bitbake -c checkuri m4') self.assertEqual(0, result.status, msg = "\"checkuri\" task was not executed. bitbake output: %s" % result.output) - @OETestID(1035) def test_continue(self): self.write_config("""DL_DIR = \"${TOPDIR}/download-selftest\" SSTATE_DIR = \"${TOPDIR}/download-selftest\" @@ -239,7 +223,6 @@ INHERIT_remove = \"report-error\" continuepos = result.output.find('NOTE: recipe xcursor-transparent-theme-%s: task do_unpack: Started' % manver.group(1)) self.assertLess(errorpos,continuepos, msg = "bitbake didn't pass do_fail_task. bitbake output: %s" % result.output) - @OETestID(1119) def test_non_gplv3(self): self.write_config('INCOMPATIBLE_LICENSE = "GPLv3"') result = bitbake('selftest-ed', ignore_status=True) @@ -248,7 +231,6 @@ INHERIT_remove = \"report-error\" self.assertFalse(os.path.isfile(os.path.join(lic_dir, 'selftest-ed/generic_GPLv3'))) self.assertTrue(os.path.isfile(os.path.join(lic_dir, 'selftest-ed/generic_GPLv2'))) - @OETestID(1422) def test_setscene_only(self): """ Bitbake option to restore from sstate only within a build (i.e. execute no real tasks, only setscene)""" test_recipe = 'ed' @@ -263,7 +245,36 @@ INHERIT_remove = \"report-error\" self.assertIn('_setscene', task, 'A task different from _setscene ran: %s.\n' 'Executed tasks were: %s' % (task, str(tasks))) - @OETestID(1425) + def test_skip_setscene(self): + test_recipe = 'ed' + + bitbake(test_recipe) + bitbake('-c clean %s' % test_recipe) + + ret = bitbake('--setscene-only %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + for task in tasks: + self.assertIn('_setscene', task, 'A task different from _setscene ran: %s.\n' + 'Executed tasks were: %s' % (task, str(tasks))) + + # Run without setscene. Should do nothing + ret = bitbake('--skip-setscene %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + self.assertFalse(tasks, 'Tasks %s ran when they should not have' % (str(tasks))) + + # Clean (leave sstate cache) and run with --skip-setscene. No setscene + # tasks should run + bitbake('-c clean %s' % test_recipe) + + ret = bitbake('--skip-setscene %s' % test_recipe) + tasks = re.findall(r'task\s+(do_\S+):', ret.output) + + for task in tasks: + self.assertNotIn('_setscene', task, 'A _setscene task ran: %s.\n' + 'Executed tasks were: %s' % (task, str(tasks))) + def test_bbappend_order(self): """ Bitbake should bbappend to recipe in a predictable order """ test_recipe = 'ed' diff --git a/external/poky/meta/lib/oeqa/selftest/cases/binutils.py b/external/poky/meta/lib/oeqa/selftest/cases/binutils.py new file mode 100644 index 00000000..821f52f5 --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/binutils.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: MIT +import os +import sys +import re +import logging +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +@OETestTag("toolchain-user", "toolchain-system") +class BinutilsCrossSelfTest(OESelftestTestCase, OEPTestResultTestCase): + def test_binutils(self): + self.run_binutils("binutils") + + def test_gas(self): + self.run_binutils("gas") + + def test_ld(self): + self.run_binutils("ld") + + def run_binutils(self, suite): + features = [] + features.append('CHECK_TARGETS = "{0}"'.format(suite)) + self.write_config("\n".join(features)) + + recipe = "binutils-cross-testsuite" + bb_vars = get_bb_vars(["B", "TARGET_SYS", "T"], recipe) + builddir, target_sys, tdir = bb_vars["B"], bb_vars["TARGET_SYS"], bb_vars["T"] + + bitbake("{0} -c check".format(recipe)) + + sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite)) + if not os.path.exists(sumspath): + sumspath = os.path.join(builddir, suite, "testsuite", "{0}.sum".format(suite)) + logpath = os.path.splitext(sumspath)[0] + ".log" + + ptestsuite = "binutils-{}".format(suite) if suite != "binutils" else suite + self.ptest_section(ptestsuite, logfile = logpath) + with open(sumspath, "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + diff --git a/external/poky/meta/lib/oeqa/selftest/cases/buildhistory.py b/external/poky/meta/lib/oeqa/selftest/cases/buildhistory.py index 06792d91..d865da62 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/buildhistory.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/buildhistory.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import datetime diff --git a/external/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/external/poky/meta/lib/oeqa/selftest/cases/buildoptions.py index f234bac0..e91f0bd1 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/buildoptions.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/buildoptions.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import glob as g @@ -7,11 +11,9 @@ from oeqa.selftest.case import OESelftestTestCase from oeqa.selftest.cases.buildhistory import BuildhistoryBase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars import oeqa.utils.ftools as ftools -from oeqa.core.decorator.oeid import OETestID class ImageOptionsTests(OESelftestTestCase): - @OETestID(761) def test_incremental_image_generation(self): image_pkgtype = get_bb_var("IMAGE_PKGTYPE") if image_pkgtype != 'rpm': @@ -30,22 +32,20 @@ class ImageOptionsTests(OESelftestTestCase): incremental_removed = re.search(r"Erasing\s*:\s*packagegroup-core-ssh-openssh", log_data_removed) self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed) - @OETestID(286) def test_ccache_tool(self): bitbake("ccache-native") bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native') p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/" + "ccache" self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p) self.write_config('INHERIT += "ccache"') - self.add_command_to_tearDown('bitbake -c clean m4') - bitbake("m4 -c clean") - bitbake("m4 -f -c compile") - log_compile = os.path.join(get_bb_var("WORKDIR","m4"), "temp/log.do_compile") + self.add_command_to_tearDown('bitbake -c clean m4-native') + bitbake("m4-native -c clean") + bitbake("m4-native -f -c compile") + log_compile = os.path.join(get_bb_var("WORKDIR","m4-native"), "temp/log.do_compile") with open(log_compile, "r") as f: loglines = "".join(f.readlines()) - self.assertIn("ccache", loglines, msg="No match for ccache in m4 log.do_compile. For further details: %s" % log_compile) + self.assertIn("ccache", loglines, msg="No match for ccache in m4-native log.do_compile. For further details: %s" % log_compile) - @OETestID(1435) def test_read_only_image(self): distro_features = get_bb_var('DISTRO_FEATURES') if not ('x11' in distro_features and 'opengl' in distro_features): @@ -56,7 +56,6 @@ class ImageOptionsTests(OESelftestTestCase): class DiskMonTest(OESelftestTestCase): - @OETestID(277) def test_stoptask_behavior(self): self.write_config('BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},100000G,100K"') res = bitbake("delay -c delay", ignore_status = True) @@ -76,7 +75,6 @@ class SanityOptionsTest(OESelftestTestCase): if line in l: return l - @OETestID(927) def test_options_warnqa_errorqa_switch(self): self.write_config("INHERIT_remove = \"report-error\"") @@ -98,7 +96,6 @@ class SanityOptionsTest(OESelftestTestCase): line = self.getline(res, "QA Issue: xcursor-transparent-theme-dbg is listed in PACKAGES multiple times, this leads to packaging errors.") self.assertTrue(line and line.startswith("WARNING:"), msg=res.output) - @OETestID(1421) def test_layer_without_git_dir(self): """ Summary: Test that layer git revisions are displayed and do not fail without git repository @@ -140,20 +137,17 @@ class SanityOptionsTest(OESelftestTestCase): class BuildhistoryTests(BuildhistoryBase): - @OETestID(293) def test_buildhistory_basic(self): self.run_buildhistory_operation('xcursor-transparent-theme') self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR')), "buildhistory dir was not created.") - @OETestID(294) 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) class ArchiverTest(OESelftestTestCase): - @OETestID(926) def test_arch_work_dir_and_export_source(self): """ Test for archiving the work directory and exporting the source files. @@ -168,17 +162,14 @@ class ArchiverTest(OESelftestTestCase): self.assertTrue((g.glob(src_file_glob) and g.glob(tar_file_glob)), "Couldn't find .src.rpm and .tar.gz files under %s/allarch*/xcursor*" % deploy_dir_src) class ToolchainOptions(OESelftestTestCase): - def test_toolchain_fortran(self): """ - Test whether we can enable and build fortran and its supporting libraries + Test that Fortran works by building a Hello, World binary. """ features = 'FORTRAN_forcevariable = ",fortran"\n' - features += 'RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath"\n' self.write_config(features) - - bitbake('gcc-runtime libgfortran') + bitbake('fortran-helloworld') class SourceMirroring(OESelftestTestCase): # Can we download everything from the Yocto Sources Mirror over http only @@ -187,6 +178,8 @@ class SourceMirroring(OESelftestTestCase): BB_ALLOWED_NETWORKS = "downloads.yoctoproject.org" MIRRORS = "" DL_DIR = "${TMPDIR}/test_downloads" +STAMPS_DIR = "${TMPDIR}/test_stamps" +SSTATE_DIR = "${TMPDIR}/test_sstate-cache" PREMIRRORS = "\\ bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n \\ cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \\n \\ diff --git a/external/poky/meta/lib/oeqa/selftest/cases/containerimage.py b/external/poky/meta/lib/oeqa/selftest/cases/containerimage.py index 8deaae75..c0998e31 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/containerimage.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/containerimage.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake, get_bb_vars, runCmd -from oeqa.core.decorator.oeid import OETestID # This test builds an image with using the "container" IMAGE_FSTYPE, and # ensures that then files in the image are only the ones expected. @@ -21,7 +24,6 @@ class ContainerImageTests(OESelftestTestCase): # Verify that when specifying a IMAGE_TYPEDEP_ of the form "foo.bar" that # the conversion type bar gets added as a dep as well - @OETestID(1619) def test_expected_files(self): def get_each_path_part(path): diff --git a/external/poky/meta/lib/oeqa/selftest/cases/devtool.py b/external/poky/meta/lib/oeqa/selftest/cases/devtool.py index 9eb9badf..5003f08c 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/devtool.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/devtool.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import shutil @@ -9,7 +13,6 @@ import oeqa.utils.ftools as ftools from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer from oeqa.utils.commands import get_bb_vars, runqemu, get_test_layer -from oeqa.core.decorator.oeid import OETestID oldmetapath = None @@ -134,6 +137,7 @@ class DevtoolBase(OESelftestTestCase): with open(recipefile, 'r') as f: invar = None invalue = None + inherits = set() for line in f: var = None if invar: @@ -155,7 +159,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) @@ -233,11 +237,13 @@ class DevtoolBase(OESelftestTestCase): class DevtoolTests(DevtoolBase): - @OETestID(1158) def test_create_workspace(self): # Check preconditions result = runCmd('bitbake-layers show-layers') self.assertTrue('\nworkspace' not in result.output, 'This test cannot be run with a workspace layer in bblayers.conf') + # remove conf/devtool.conf to avoid it corrupting tests + devtoolconf = os.path.join(self.builddir, 'conf', 'devtool.conf') + self.track_for_cleanup(devtoolconf) # Try creating a workspace layer with a specific path tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) @@ -256,7 +262,6 @@ class DevtoolTests(DevtoolBase): class DevtoolAddTests(DevtoolBase): - @OETestID(1159) def test_devtool_add(self): # Fetch source tempdir = tempfile.mkdtemp(prefix='devtoolqa') @@ -298,7 +303,6 @@ class DevtoolAddTests(DevtoolBase): bindir = bindir[1:] self.assertTrue(os.path.isfile(os.path.join(installdir, bindir, 'pv')), 'pv binary not found in D') - @OETestID(1423) def test_devtool_add_git_local(self): # We need dbus built so that DEPENDS recognition works bitbake('dbus') @@ -340,7 +344,6 @@ class DevtoolAddTests(DevtoolBase): checkvars['DEPENDS'] = set(['dbus']) self._test_recipe_contents(recipefile, checkvars, []) - @OETestID(1162) def test_devtool_add_library(self): # Fetch source tempdir = tempfile.mkdtemp(prefix='devtoolqa') @@ -389,13 +392,12 @@ class DevtoolAddTests(DevtoolBase): self.assertFalse(matches, 'Stamp files exist for recipe libftdi that should have been cleaned') self.assertFalse(os.path.isfile(os.path.join(staging_libdir, 'libftdi1.so.2.1.0')), 'libftdi binary still found in STAGING_LIBDIR after cleaning') - @OETestID(1160) def test_devtool_add_fetch(self): # Fetch source tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) testver = '0.23' - url = 'https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-%s.tar.gz' % testver + url = 'https://files.pythonhosted.org/packages/c0/41/bae1254e0396c0cc8cf1751cb7d9afc90a602353695af5952530482c963f/MarkupSafe-%s.tar.gz' % testver testrecipe = 'python-markupsafe' srcdir = os.path.join(tempdir, testrecipe) # Test devtool add @@ -435,7 +437,6 @@ class DevtoolAddTests(DevtoolBase): checkvars['SRC_URI'] = url self._test_recipe_contents(recipefile, checkvars, []) - @OETestID(1161) def test_devtool_add_fetch_git(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) @@ -483,7 +484,6 @@ class DevtoolAddTests(DevtoolBase): checkvars['SRCREV'] = checkrev self._test_recipe_contents(recipefile, checkvars, []) - @OETestID(1391) def test_devtool_add_fetch_simple(self): # Fetch source from a remote URL, auto-detecting name tempdir = tempfile.mkdtemp(prefix='devtoolqa') @@ -511,17 +511,36 @@ class DevtoolAddTests(DevtoolBase): checkvars['SRC_URI'] = url.replace(testver, '${PV}') self._test_recipe_contents(recipefile, checkvars, []) + def test_devtool_add_npm(self): + 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): - @OETestID(1164) def test_devtool_modify(self): import oe.path 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') self.add_command_to_tearDown('bitbake -c clean mdadm') + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify mdadm -x %s' % tempdir) self.assertExists(os.path.join(tempdir, 'Makefile'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') @@ -571,7 +590,6 @@ class DevtoolModifyTests(DevtoolBase): result = runCmd('devtool status') self.assertNotIn('mdadm', result.output) - @OETestID(1620) def test_devtool_buildclean(self): def assertFile(path, *paths): f = os.path.join(path, *paths) @@ -590,8 +608,8 @@ class DevtoolModifyTests(DevtoolBase): self.track_for_cleanup(tempdir_m4) self.track_for_cleanup(builddir_m4) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean mdadm m4') + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.write_recipeinc('m4', 'EXTERNALSRC_BUILD = "%s"\ndo_clean() {\n\t:\n}\n' % builddir_m4) try: runCmd('devtool modify mdadm -x %s' % tempdir_mdadm) @@ -607,6 +625,7 @@ class DevtoolModifyTests(DevtoolBase): bitbake('mdadm m4 -c buildclean') assertNoFile(tempdir_mdadm, 'mdadm') assertNoFile(builddir_m4, 'src/m4') + runCmd('echo "#Trigger rebuild" >> %s/Makefile' % tempdir_mdadm) bitbake('mdadm m4 -c compile') assertFile(tempdir_mdadm, 'mdadm') assertFile(builddir_m4, 'src/m4') @@ -618,7 +637,6 @@ class DevtoolModifyTests(DevtoolBase): finally: self.delete_recipeinc('m4') - @OETestID(1166) def test_devtool_modify_invalid(self): # Try modifying some recipes tempdir = tempfile.mkdtemp(prefix='devtoolqa') @@ -647,7 +665,6 @@ class DevtoolModifyTests(DevtoolBase): self.assertNotEqual(result.status, 0, 'devtool modify on %s should have failed. devtool output: %s' % (testrecipe, result.output)) self.assertIn('ERROR: ', result.output, 'devtool modify on %s should have given an ERROR' % testrecipe) - @OETestID(1365) def test_devtool_modify_native(self): # Check preconditions self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') @@ -677,7 +694,6 @@ class DevtoolModifyTests(DevtoolBase): self.assertTrue(inheritnative, 'None of these recipes do "inherit native" - need to adjust testrecipes list: %s' % ', '.join(testrecipes)) - @OETestID(1165) def test_devtool_modify_git(self): # Check preconditions testrecipe = 'psplash' @@ -689,8 +705,8 @@ class DevtoolModifyTests(DevtoolBase): 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') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) self.assertExists(os.path.join(tempdir, 'Makefile.am'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created. devtool output: %s' % result.output) @@ -705,7 +721,6 @@ class DevtoolModifyTests(DevtoolBase): # Try building bitbake(testrecipe) - @OETestID(1167) def test_devtool_modify_localfiles(self): # Check preconditions testrecipe = 'lighttpd' @@ -722,8 +737,8 @@ class DevtoolModifyTests(DevtoolBase): 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') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) self.assertExists(os.path.join(tempdir, 'configure.ac'), 'Extracted source could not be found') self.assertExists(os.path.join(self.workspacedir, 'conf', 'layer.conf'), 'Workspace directory not created') @@ -736,7 +751,6 @@ class DevtoolModifyTests(DevtoolBase): # Try building bitbake(testrecipe) - @OETestID(1378) def test_devtool_modify_virtual(self): # Try modifying a virtual recipe virtrecipe = 'virtual/make' @@ -760,7 +774,6 @@ class DevtoolModifyTests(DevtoolBase): class DevtoolUpdateTests(DevtoolBase): - @OETestID(1169) def test_devtool_update_recipe(self): # Check preconditions testrecipe = 'minicom' @@ -793,7 +806,6 @@ class DevtoolUpdateTests(DevtoolBase): ('??', '.*/0002-Add-a-new-file.patch$')] self._check_repo_status(os.path.dirname(recipefile), expected_status) - @OETestID(1172) def test_devtool_update_recipe_git(self): # Check preconditions testrecipe = 'mtd-utils' @@ -863,7 +875,6 @@ class DevtoolUpdateTests(DevtoolBase): ('??', '%s/0002-Add-a-new-file.patch' % relpatchpath)] self._check_repo_status(os.path.dirname(recipefile), expected_status) - @OETestID(1170) def test_devtool_update_recipe_append(self): # Check preconditions testrecipe = 'mdadm' @@ -932,7 +943,6 @@ class DevtoolUpdateTests(DevtoolBase): self.assertEqual(expectedlines, f.readlines()) # Deleting isn't expected to work under these circumstances - @OETestID(1171) def test_devtool_update_recipe_append_git(self): # Check preconditions testrecipe = 'mtd-utils' @@ -1023,7 +1033,6 @@ class DevtoolUpdateTests(DevtoolBase): self.assertEqual(expectedlines, set(f.readlines())) # Deleting isn't expected to work under these circumstances - @OETestID(1370) def test_devtool_update_recipe_local_files(self): """Check that local source files are copied over instead of patched""" testrecipe = 'makedevs' @@ -1055,7 +1064,6 @@ class DevtoolUpdateTests(DevtoolBase): ('??', '.*/makedevs/0001-Add-new-file.patch$')] self._check_repo_status(os.path.dirname(recipefile), expected_status) - @OETestID(1371) def test_devtool_update_recipe_local_files_2(self): """Check local source files support when oe-local-files is in Git""" testrecipe = 'devtool-test-local' @@ -1100,7 +1108,6 @@ class DevtoolUpdateTests(DevtoolBase): ('??', '.*/0001-Add-new-file.patch$')] self._check_repo_status(os.path.dirname(recipefile), expected_status) - @OETestID(1627) def test_devtool_update_recipe_local_files_3(self): # First, modify the recipe testrecipe = 'devtool-test-localonly' @@ -1120,7 +1127,6 @@ class DevtoolUpdateTests(DevtoolBase): expected_status = [(' M', '.*/%s/file2$' % testrecipe)] self._check_repo_status(os.path.dirname(recipefile), expected_status) - @OETestID(1629) def test_devtool_update_recipe_local_patch_gz(self): # First, modify the recipe testrecipe = 'devtool-test-patch-gz' @@ -1148,7 +1154,6 @@ class DevtoolUpdateTests(DevtoolBase): if 'gzip compressed data' not in result.output: self.fail('New patch file is not gzipped - file reports:\n%s' % result.output) - @OETestID(1628) def test_devtool_update_recipe_local_files_subdir(self): # Try devtool update-recipe on a recipe that has a file with subdir= set in # SRC_URI such that it overwrites a file that was in an archive that @@ -1177,7 +1182,6 @@ class DevtoolUpdateTests(DevtoolBase): class DevtoolExtractTests(DevtoolBase): - @OETestID(1163) def test_devtool_extract(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') # Try devtool extract @@ -1188,7 +1192,6 @@ class DevtoolExtractTests(DevtoolBase): self.assertExists(os.path.join(tempdir, 'Makefile.am'), 'Extracted source could not be found') self._check_src_repo(tempdir) - @OETestID(1379) def test_devtool_extract_virtual(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') # Try devtool extract @@ -1199,7 +1202,6 @@ class DevtoolExtractTests(DevtoolBase): self.assertExists(os.path.join(tempdir, 'Makefile.am'), 'Extracted source could not be found') self._check_src_repo(tempdir) - @OETestID(1168) def test_devtool_reset_all(self): tempdir = tempfile.mkdtemp(prefix='devtoolqa') self.track_for_cleanup(tempdir) @@ -1226,7 +1228,6 @@ class DevtoolExtractTests(DevtoolBase): matches2 = glob.glob(stampprefix2 + '*') self.assertFalse(matches2, 'Stamp files exist for recipe %s that should have been cleaned' % testrecipe2) - @OETestID(1272) def test_devtool_deploy_target(self): # NOTE: Whilst this test would seemingly be better placed as a runtime test, # unfortunately the runtime tests run under bitbake and you can't run @@ -1267,8 +1268,8 @@ class DevtoolExtractTests(DevtoolBase): 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') self.add_command_to_tearDown('bitbake -c clean %s' % testrecipe) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') result = runCmd('devtool modify %s -x %s' % (testrecipe, tempdir)) # Test that deploy-target at this point fails (properly) result = runCmd('devtool deploy-target -n %s root@localhost' % testrecipe, ignore_status=True) @@ -1291,7 +1292,7 @@ class DevtoolExtractTests(DevtoolBase): installdir = bb_vars['D'] fakerootenv = bb_vars['FAKEROOTENV'] fakerootcmd = bb_vars['FAKEROOTCMD'] - result = runCmd('%s %s find . -type f -exec ls -l {} \;' % (fakerootenv, fakerootcmd), cwd=installdir) + result = runCmd('%s %s find . -type f -exec ls -l {} \\;' % (fakerootenv, fakerootcmd), cwd=installdir) filelist1 = self._process_ls_output(result.output) # Now look on the target @@ -1312,15 +1313,14 @@ class DevtoolExtractTests(DevtoolBase): result = runCmd('ssh %s root@%s %s' % (sshargs, qemu.ip, testcommand), ignore_status=True) self.assertNotEqual(result, 0, 'undeploy-target did not remove command as it should have') - @OETestID(1366) def test_devtool_build_image(self): """Test devtool build-image plugin""" # Check preconditions self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') image = 'core-image-minimal' self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % image) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') bitbake('%s -c clean' % image) # Add target and native recipes to workspace recipes = ['mdadm', 'parted-native'] @@ -1348,7 +1348,6 @@ class DevtoolExtractTests(DevtoolBase): class DevtoolUpgradeTests(DevtoolBase): - @OETestID(1367) def test_devtool_upgrade(self): # Check preconditions self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') @@ -1393,7 +1392,6 @@ class DevtoolUpgradeTests(DevtoolBase): self.assertNotIn(recipe, result.output) self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after resetting') - @OETestID(1433) def test_devtool_upgrade_git(self): # Check preconditions self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') @@ -1430,7 +1428,6 @@ class DevtoolUpgradeTests(DevtoolBase): self.assertNotIn(recipe, result.output) self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after resetting') - @OETestID(1352) def test_devtool_layer_plugins(self): """Test that devtool can use plugins from other layers. @@ -1450,13 +1447,16 @@ 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) self.track_for_cleanup(dstfile) - @OETestID(1625) def test_devtool_load_plugin(self): """Test that devtool loads only the first found plugin in BBPATH.""" @@ -1521,12 +1521,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 - @OETestID(1623) 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 @@ -1537,15 +1538,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") + - @OETestID(1624) 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 @@ -1561,10 +1570,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 @@ -1599,7 +1616,6 @@ class DevtoolUpgradeTests(DevtoolBase): self.fail('Unable to find recipe files directory for %s' % recipe) return recipe, oldrecipefile, recipedir, filesdir - @OETestID(1621) def test_devtool_finish_modify_origlayer(self): recipe, oldrecipefile, recipedir, filesdir = self._setup_test_devtool_finish_modify() # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) @@ -1614,7 +1630,6 @@ class DevtoolUpgradeTests(DevtoolBase): ('??', '.*/.*-Add-a-comment-to-the-code.patch$')] self._check_repo_status(recipedir, expected_status) - @OETestID(1622) def test_devtool_finish_modify_otherlayer(self): recipe, oldrecipefile, recipedir, filesdir = self._setup_test_devtool_finish_modify() # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things) @@ -1647,7 +1662,6 @@ class DevtoolUpgradeTests(DevtoolBase): if files: self.fail('Unexpected file(s) copied next to bbappend: %s' % ', '.join(files)) - @OETestID(1626) def test_devtool_rename(self): # Check preconditions self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory') @@ -1708,7 +1722,6 @@ class DevtoolUpgradeTests(DevtoolBase): checkvars['SRC_URI'] = url self._test_recipe_contents(newrecipefile, checkvars, []) - @OETestID(1577) def test_devtool_virtual_kernel_modify(self): """ Summary: The purpose of this test case is to verify that @@ -1732,15 +1745,15 @@ 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') self.track_for_cleanup(tempdir) self.track_for_cleanup(tempdir_cfg) self.track_for_cleanup(self.workspacedir) - self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') self.add_command_to_tearDown('bitbake -c clean %s' % kernel_provider) + self.add_command_to_tearDown('bitbake-layers remove-layer */workspace') #Step 1 #Here is just generated the config file instead of all the kernel to optimize the #time of executing this test case. diff --git a/external/poky/meta/lib/oeqa/selftest/cases/distrodata.py b/external/poky/meta/lib/oeqa/selftest/cases/distrodata.py index e7b5e349..e1cfc3b6 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/distrodata.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/distrodata.py @@ -1,21 +1,16 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars from oeqa.utils.decorators import testcase from oeqa.utils.ftools import write_file -from oeqa.core.decorator.oeid import OETestID - -class Distrodata(OESelftestTestCase): - @classmethod - def setUpClass(cls): - super(Distrodata, cls).setUpClass() - feature = 'INHERIT += "distrodata"\n' - feature += 'LICENSE_FLAGS_WHITELIST += " commercial"\n' +import oe.recipeutils - cls.write_config(cls, feature) - bitbake('-c checkpkg world') +class Distrodata(OESelftestTestCase): - @OETestID(1902) def test_checkpkg(self): """ Summary: Test that upstream version checks do not regress @@ -23,9 +18,13 @@ class Distrodata(OESelftestTestCase): Product: oe-core Author: Alexander Kanavin """ - checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), "checkpkg.csv")).readlines()[1:] - regressed_failures = [pkg_data[0] for pkg_data in [pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 'UNKNOWN_BROKEN'] - regressed_successes = [pkg_data[0] for pkg_data in [pkg_line.split('\t') for pkg_line in checkpkg_result] if pkg_data[11] == 'KNOWN_BROKEN'] + feature = 'LICENSE_FLAGS_WHITELIST += " commercial"\n' + self.write_config(feature) + + pkgs = oe.recipeutils.get_recipe_upgrade_status() + + regressed_failures = [pkg[0] for pkg in pkgs if pkg[1] == 'UNKNOWN_BROKEN'] + regressed_successes = [pkg[0] for pkg in pkgs if pkg[1] == 'KNOWN_BROKEN'] msg = "" if len(regressed_failures) > 0: msg = msg + """ @@ -43,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 """ @@ -55,45 +55,64 @@ but their recipes claim otherwise by setting UPSTREAM_VERSION_UNKNOWN. Please re return True return False - def is_in_oe_core(recipe, recipes): - self.assertTrue(recipe in recipes.keys(), "Recipe %s was not in 'bitbake-layers show-recipes' output" %(recipe)) - self.assertTrue(len(recipes[recipe]) > 0, "'bitbake-layers show-recipes' could not determine what layer(s) a recipe %s is in" %(recipe)) - try: - recipes[recipe].index('meta') - return True - except ValueError: - return False - - def get_recipe_layers(): - import re - - recipes = {} - recipe_regex = re.compile('^(?P.*):$') - layer_regex = re.compile('^ (?P\S*) +') - output = runCmd('bitbake-layers show-recipes').output - for line in output.split('\n'): - recipe_name_obj = recipe_regex.search(line) - if recipe_name_obj: - recipe_name = recipe_name_obj.group('name') - recipes[recipe_name] = [] - recipe_layer_obj = layer_regex.search(line) - if recipe_layer_obj: - layer_name = recipe_layer_obj.group('name') - recipes[recipe_name].append(layer_name) - return recipes - - checkpkg_result = open(os.path.join(get_bb_var("LOG_DIR"), "checkpkg.csv")).readlines()[1:] - recipes_layers = get_recipe_layers() - no_maintainer_list = [pkg_data[0] for pkg_data in [pkg_line.split('\t') for pkg_line in checkpkg_result] \ - if pkg_data[14] == '' and is_in_oe_core(pkg_data[0], recipes_layers) and not is_exception(pkg_data[0])] - msg = """ -The following packages do not have a maintainer assigned to them. Please add an entry to meta/conf/distro/include/maintainers.inc file. -""" + "\n".join(no_maintainer_list) - self.assertTrue(len(no_maintainer_list) == 0, msg) - - with_maintainer_list = [pkg_data[0] for pkg_data in [pkg_line.split('\t') for pkg_line in checkpkg_result] \ - if pkg_data[14] != '' and is_in_oe_core(pkg_data[0], recipes_layers) and not is_exception(pkg_data[0])] - msg = """ -The list of oe-core packages with maintainers is empty. This may indicate that the test has regressed and needs fixing. -""" - self.assertTrue(len(with_maintainer_list) > 0, msg) + 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: + tinfoil.prepare(config_only=False) + + 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 + for fn in tinfoil.all_recipe_files(variants=False): + if not '/meta/recipes-' in fn: + # We are only interested in OE-Core + 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'): + with_maintainer_list.append((pn, fn)) + 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. +""" + "\n".join(['%s (%s)' % i for i in no_maintainer_list])) + + if not with_maintainer_list: + 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/external/poky/meta/lib/oeqa/selftest/cases/eSDK.py b/external/poky/meta/lib/oeqa/selftest/cases/eSDK.py index 8eb6ec66..862849af 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/eSDK.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/eSDK.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + import tempfile import shutil import os import glob import time -from oeqa.core.decorator.oeid import OETestID from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars @@ -104,14 +107,12 @@ SSTATE_MIRRORS = "file://.* file://%s/PATH" cls.tmpdirobj.cleanup() super().tearDownClass() - @OETestID(1602) def test_install_libraries_headers(self): pn_sstate = 'bc' bitbake(pn_sstate) cmd = "devtool sdk-install %s " % pn_sstate oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd) - @OETestID(1603) def test_image_generation_binary_feeds(self): image = 'core-image-minimal' cmd = "devtool build-image %s" % image diff --git a/external/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py b/external/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py index c6f39d5b..a61cf9bc 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/efibootpartition.py @@ -2,6 +2,8 @@ # # Copyright (c) 2017 Wind River Systems, Inc. # +# SPDX-License-Identifier: MIT +# import re diff --git a/external/poky/meta/lib/oeqa/selftest/cases/fetch.py b/external/poky/meta/lib/oeqa/selftest/cases/fetch.py index 4acc8cdc..76cbadf2 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/fetch.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/fetch.py @@ -1,10 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + import oe.path from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake -from oeqa.core.decorator.oeid import OETestID class Fetch(OESelftestTestCase): - @OETestID(1058) def test_git_mirrors(self): """ Verify that the git fetcher will fall back to the HTTP mirrors. The diff --git a/external/poky/meta/lib/oeqa/selftest/cases/gcc.py b/external/poky/meta/lib/oeqa/selftest/cases/gcc.py new file mode 100644 index 00000000..3efe1522 --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/gcc.py @@ -0,0 +1,152 @@ +# SPDX-License-Identifier: MIT +import os +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, Command + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +class GccSelfTestBase(OESelftestTestCase, OEPTestResultTestCase): + def check_skip(self, suite): + targets = get_bb_var("RUNTIMETARGET", "gcc-runtime").split() + if suite not in targets: + self.skipTest("Target does not use {0}".format(suite)) + + def run_check(self, *suites, ssh = None): + targets = set() + for s in suites: + if s == "gcc": + targets.add("check-gcc-c") + elif s == "g++": + targets.add("check-gcc-c++") + else: + targets.add("check-target-{}".format(s)) + + # configure ssh target + features = [] + features.append('MAKE_CHECK_TARGETS = "{0}"'.format(" ".join(targets))) + if ssh is not None: + features.append('TOOLCHAIN_TEST_TARGET = "ssh"') + features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh)) + features.append('TOOLCHAIN_TEST_HOST_USER = "root"') + features.append('TOOLCHAIN_TEST_HOST_PORT = "22"') + self.write_config("\n".join(features)) + + recipe = "gcc-runtime" + bitbake("{} -c check".format(recipe)) + + bb_vars = get_bb_vars(["B", "TARGET_SYS"], recipe) + builddir, target_sys = bb_vars["B"], bb_vars["TARGET_SYS"] + + for suite in suites: + sumspath = os.path.join(builddir, "gcc", "testsuite", suite, "{0}.sum".format(suite)) + if not os.path.exists(sumspath): # check in target dirs + sumspath = os.path.join(builddir, target_sys, suite, "testsuite", "{0}.sum".format(suite)) + if not os.path.exists(sumspath): # handle libstdc++-v3 -> libstdc++ + sumspath = os.path.join(builddir, target_sys, suite, "testsuite", "{0}.sum".format(suite.split("-")[0])) + logpath = os.path.splitext(sumspath)[0] + ".log" + + ptestsuite = "gcc-{}".format(suite) if suite != "gcc" else suite + ptestsuite = ptestsuite + "-user" if ssh is None else ptestsuite + self.ptest_section(ptestsuite, logfile = logpath) + with open(sumspath, "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + + def run_check_emulated(self, *args, **kwargs): + # build core-image-minimal with required packages + default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"] + features = [] + features.append('IMAGE_FEATURES += "ssh-server-openssh"') + features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages))) + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + + # wrap the execution with a qemu instance + with runqemu("core-image-minimal", runqemuparams = "nographic") as qemu: + # validate that SSH is working + status, _ = qemu.run("uname") + self.assertEqual(status, 0) + + return self.run_check(*args, ssh=qemu.ip, **kwargs) + +@OETestTag("toolchain-user") +class GccCrossSelfTest(GccSelfTestBase): + def test_cross_gcc(self): + 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): + def test_libatomic(self): + self.run_check("libatomic") + +@OETestTag("toolchain-user") +class GccLibGompSelfTest(GccSelfTestBase): + def test_libgomp(self): + self.run_check("libgomp") + +@OETestTag("toolchain-user") +class GccLibStdCxxSelfTest(GccSelfTestBase): + def test_libstdcxx(self): + self.run_check("libstdc++-v3") + +@OETestTag("toolchain-user") +class GccLibSspSelfTest(GccSelfTestBase): + def test_libssp(self): + self.check_skip("libssp") + self.run_check("libssp") + +@OETestTag("toolchain-user") +class GccLibItmSelfTest(GccSelfTestBase): + def test_libitm(self): + self.check_skip("libitm") + self.run_check("libitm") + +@OETestTag("toolchain-system") +class GccCrossSelfTestSystemEmulated(GccSelfTestBase): + def test_cross_gcc(self): + 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): + def test_libatomic(self): + self.run_check_emulated("libatomic") + +@OETestTag("toolchain-system") +class GccLibGompSelfTestSystemEmulated(GccSelfTestBase): + def test_libgomp(self): + self.run_check_emulated("libgomp") + +@OETestTag("toolchain-system") +class GccLibStdCxxSelfTestSystemEmulated(GccSelfTestBase): + def test_libstdcxx(self): + self.run_check_emulated("libstdc++-v3") + +@OETestTag("toolchain-system") +class GccLibSspSelfTestSystemEmulated(GccSelfTestBase): + def test_libssp(self): + self.check_skip("libssp") + self.run_check_emulated("libssp") + +@OETestTag("toolchain-system") +class GccLibItmSelfTestSystemEmulated(GccSelfTestBase): + def test_libitm(self): + self.check_skip("libitm") + self.run_check_emulated("libitm") + diff --git a/external/poky/meta/lib/oeqa/selftest/cases/glibc.py b/external/poky/meta/lib/oeqa/selftest/cases/glibc.py new file mode 100644 index 00000000..c687f6ef --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/glibc.py @@ -0,0 +1,89 @@ +# SPDX-License-Identifier: MIT +import os +import contextlib +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake, get_bb_var, get_bb_vars, runqemu, Command +from oeqa.utils.nfs import unfs_server + +def parse_values(content): + for i in content: + for v in ["PASS", "FAIL", "XPASS", "XFAIL", "UNRESOLVED", "UNSUPPORTED", "UNTESTED", "ERROR", "WARNING"]: + if i.startswith(v + ": "): + yield i[len(v) + 2:].strip(), v + break + +class GlibcSelfTestBase(OESelftestTestCase, OEPTestResultTestCase): + def run_check(self, ssh = None): + # configure ssh target + features = [] + if ssh is not None: + features.append('TOOLCHAIN_TEST_TARGET = "ssh"') + features.append('TOOLCHAIN_TEST_HOST = "{0}"'.format(ssh)) + features.append('TOOLCHAIN_TEST_HOST_USER = "root"') + features.append('TOOLCHAIN_TEST_HOST_PORT = "22"') + # force single threaded test execution + features.append('EGLIBCPARALLELISM_task-check_pn-glibc-testsuite = "PARALLELMFLAGS="-j1""') + self.write_config("\n".join(features)) + + bitbake("glibc-testsuite -c check") + + builddir = get_bb_var("B", "glibc-testsuite") + + ptestsuite = "glibc-user" if ssh is None else "glibc" + self.ptest_section(ptestsuite) + with open(os.path.join(builddir, "tests.sum"), "r") as f: + for test, result in parse_values(f): + self.ptest_result(ptestsuite, test, result) + + def run_check_emulated(self): + with contextlib.ExitStack() as s: + # use the base work dir, as the nfs mount, since the recipe directory may not exist + tmpdir = get_bb_var("BASE_WORKDIR") + nfsport, mountport = s.enter_context(unfs_server(tmpdir)) + + # build core-image-minimal with required packages + default_installed_packages = [ + "glibc-charmaps", + "libgcc", + "libstdc++", + "libatomic", + "libgomp", + # "python3", + # "python3-pexpect", + "nfs-utils", + ] + features = [] + features.append('IMAGE_FEATURES += "ssh-server-openssh"') + features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages))) + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + + # start runqemu + qemu = s.enter_context(runqemu("core-image-minimal", runqemuparams = "nographic")) + + # validate that SSH is working + status, _ = qemu.run("uname") + self.assertEqual(status, 0) + + # setup nfs mount + if qemu.run("mkdir -p \"{0}\"".format(tmpdir))[0] != 0: + raise Exception("Failed to setup NFS mount directory on target") + mountcmd = "mount -o noac,nfsvers=3,port={0},udp,mountport={1} \"{2}:{3}\" \"{3}\"".format(nfsport, mountport, qemu.server_ip, tmpdir) + status, output = qemu.run(mountcmd) + if status != 0: + raise Exception("Failed to setup NFS mount on target ({})".format(repr(output))) + + self.run_check(ssh = qemu.ip) + +@OETestTag("toolchain-user") +class GlibcSelfTest(GlibcSelfTestBase): + def test_glibc(self): + self.run_check() + +@OETestTag("toolchain-system") +class GlibcSelfTestSystemEmulated(GlibcSelfTestBase): + def test_glibc(self): + self.run_check_emulated() + diff --git a/external/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py b/external/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py index 1e23257f..3119520f 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import glob import os import shutil diff --git a/external/poky/meta/lib/oeqa/selftest/cases/image_typedep.py b/external/poky/meta/lib/oeqa/selftest/cases/image_typedep.py index 932c7f88..52e1080f 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/image_typedep.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/image_typedep.py @@ -1,14 +1,16 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake -from oeqa.core.decorator.oeid import OETestID class ImageTypeDepTests(OESelftestTestCase): # Verify that when specifying a IMAGE_TYPEDEP_ of the form "foo.bar" that # the conversion type bar gets added as a dep as well - @OETestID(1633) def test_conversion_typedep_added(self): self.write_recipeinc('emptytest', """ diff --git a/external/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/external/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py index 8c95432e..2b9c4998 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py @@ -1,6 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.sshcontrol import SSHControl import os import json @@ -10,7 +13,6 @@ class ImageFeatures(OESelftestTestCase): test_user = 'tester' root_user = 'root' - @OETestID(1107) def test_non_root_user_can_connect_via_ssh_without_password(self): """ Summary: Check if non root user can connect via ssh without password @@ -36,7 +38,6 @@ class ImageFeatures(OESelftestTestCase): status, output = ssh.run("true") self.assertEqual(status, 0, 'ssh to user %s failed with %s' % (user, output)) - @OETestID(1115) def test_all_users_can_connect_via_ssh_without_password(self): """ Summary: Check if all users can connect via ssh without password @@ -66,7 +67,6 @@ class ImageFeatures(OESelftestTestCase): self.assertEqual(status, 0, 'ssh to user tester failed with %s' % output) - @OETestID(1116) def test_clutter_image_can_be_built(self): """ Summary: Check if clutter image can be built @@ -79,7 +79,6 @@ class ImageFeatures(OESelftestTestCase): # Build a core-image-clutter bitbake('core-image-clutter') - @OETestID(1117) def test_wayland_support_in_image(self): """ Summary: Check Wayland support in image @@ -97,7 +96,6 @@ class ImageFeatures(OESelftestTestCase): # Build a core-image-weston bitbake('core-image-weston') - @OETestID(1497) def test_bmap(self): """ Summary: Check bmap support @@ -126,12 +124,11 @@ 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)) - @OETestID(1903) def test_hypervisor_fmts(self): """ Summary: Check various hypervisor formats @@ -164,9 +161,13 @@ class ImageFeatures(OESelftestTestCase): sysroot = get_bb_var('STAGING_DIR_NATIVE', 'core-image-minimal') result = runCmd('qemu-img info --output json %s' % image_path, native_sysroot=sysroot) - self.assertTrue(json.loads(result.output).get('format') == itype) + try: + data = json.loads(result.output) + self.assertEqual(data.get('format'), itype, + msg="Unexpected format in '%s'" % (result.output)) + except json.decoder.JSONDecodeError: + self.fail("Could not parse '%ss'" % result.output) - @OETestID(1905) def test_long_chain_conversion(self): """ Summary: Check for chaining many CONVERSION_CMDs together @@ -198,7 +199,6 @@ class ImageFeatures(OESelftestTestCase): self.assertTrue(runCmd('cd %s;sha256sum -c %s.%s.sha256sum' % (deploy_dir_image, link_name, conv))) - @OETestID(1904) def test_image_fstypes(self): """ Summary: Check if image of supported image fstypes can be built @@ -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')) + 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) @@ -236,3 +236,61 @@ USERADD_GID_TABLES += "files/static-group" """ self.write_config(config) bitbake("core-image-base") + + def test_no_busybox_base_utils(self): + config = """ +# Enable x11 +DISTRO_FEATURES_append += "x11" + +# Switch to systemd +DISTRO_FEATURES += "systemd" +VIRTUAL-RUNTIME_init_manager = "systemd" +VIRTUAL-RUNTIME_initscripts = "" +VIRTUAL-RUNTIME_syslog = "" +VIRTUAL-RUNTIME_login_manager = "shadow-base" +DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" + +# Replace busybox +PREFERRED_PROVIDER_virtual/base-utils = "packagegroup-core-base-utils" +VIRTUAL-RUNTIME_base-utils = "packagegroup-core-base-utils" +VIRTUAL-RUNTIME_base-utils-hwclock = "util-linux-hwclock" +VIRTUAL-RUNTIME_base-utils-syslog = "" + +# Blacklist busybox +PNBLACKLIST[busybox] = "Don't build this" +""" + self.write_config(config) + + bitbake("--graphviz core-image-sato") + + 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 + Yeoh Ee Peng + """ + 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/external/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py b/external/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py new file mode 100644 index 00000000..3eabd790 --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/incompatible_lic.py @@ -0,0 +1,135 @@ +from oeqa.selftest.case import OESelftestTestCase +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 incompatible license(s): %s' % (pn, pn, pn_lic) + + self.write_config("INCOMPATIBLE_LICENSE += \"%s\"" % (lic)) + + result = bitbake('%s --dry-run' % (pn), ignore_status=True) + if error_msg not in result.output: + raise AssertionError(result.output) + + # 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 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', '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', '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 + # 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/external/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py b/external/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py new file mode 100644 index 00000000..a61876ee --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/kerneldevelopment.py @@ -0,0 +1,67 @@ +import os +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import runCmd, get_bb_var +from oeqa.utils.git import GitRepo + +class KernelDev(OESelftestTestCase): + + @classmethod + def setUpClass(cls): + super(KernelDev, cls).setUpClass() + # Create the recipe directory structure inside the created layer + cls.layername = 'meta-kerneltest' + runCmd('bitbake-layers create-layer %s' % cls.layername) + runCmd('mkdir -p %s/recipes-kernel/linux/linux-yocto' % cls.layername) + cls.recipes_linuxyocto_dir = os.path.join \ + (cls.builddir, cls.layername, 'recipes-kernel', 'linux', 'linux-yocto') + cls.recipeskernel_dir = os.path.dirname(cls.recipes_linuxyocto_dir) + runCmd('bitbake-layers add-layer %s' % cls.layername) + + @classmethod + def tearDownClass(cls): + runCmd('bitbake-layers remove-layer %s' % cls.layername, ignore_status=True) + runCmd('rm -rf %s' % cls.layername) + super(KernelDev, cls).tearDownClass() + + def setUp(self): + super(KernelDev, self).setUp() + self.set_machine_config('MACHINE = "qemux86-64"\n') + + def test_apply_patches(self): + """ + Summary: Able to apply a single patch to the Linux kernel source + Expected: The README file should exist and the patch changes should be + displayed at the end of the file. + Product: Kernel Development + Author: Yeoh Ee Peng + AutomatedBy: Mazliana Mohamad + """ + runCmd('bitbake virtual/kernel -c patch') + kernel_source = get_bb_var('STAGING_KERNEL_DIR') + readme = os.path.join(kernel_source, 'README') + + # This test step adds modified file 'README' to git and creates a + # patch file '0001-KERNEL_DEV_TEST_CASE.patch' at the same location as file + patch_content = 'This is a test to apply a patch to the kernel' + with open(readme, 'a+') as f: + f.write(patch_content) + repo = GitRepo('%s' % kernel_source, is_topdir=True) + repo.run_cmd('add %s' % readme) + repo.run_cmd(['commit', '-m', 'KERNEL_DEV_TEST_CASE']) + repo.run_cmd(['format-patch', '-1']) + patch_name = '0001-KERNEL_DEV_TEST_CASE.patch' + patchpath = os.path.join(kernel_source, patch_name) + runCmd('mv %s %s' % (patchpath, self.recipes_linuxyocto_dir)) + runCmd('rm %s ' % readme) + self.assertFalse(os.path.exists(readme)) + + recipe_append = os.path.join(self.recipeskernel_dir, 'linux-yocto_%.bbappend') + with open(recipe_append, 'w+') as fh: + fh.write('SRC_URI += "file://%s"\n' % patch_name) + fh.write('FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"') + + runCmd('bitbake virtual/kernel -c clean') + runCmd('bitbake virtual/kernel -c patch') + self.assertTrue(os.path.exists(readme)) + result = runCmd('tail -n 1 %s' % readme) + self.assertEqual(result.output, patch_content) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/layerappend.py b/external/poky/meta/lib/oeqa/selftest/cases/layerappend.py index 2fd5cdb0..05e9426f 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/layerappend.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/layerappend.py @@ -1,9 +1,12 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var import oeqa.utils.ftools as ftools -from oeqa.core.decorator.oeid import OETestID class LayerAppendTests(OESelftestTestCase): layerconf = """ @@ -49,7 +52,6 @@ SRC_URI_append = " file://appendtest.txt" ftools.remove_from_file(self.builddir + "/conf/bblayers.conf", self.layerappend) super(LayerAppendTests, self).tearDownLocal() - @OETestID(1196) def test_layer_appends(self): corebase = get_bb_var("COREBASE") diff --git a/external/poky/meta/lib/oeqa/selftest/cases/liboe.py b/external/poky/meta/lib/oeqa/selftest/cases/liboe.py index e8460924..afe8f880 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/liboe.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/liboe.py @@ -1,5 +1,8 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake, runCmd import oe.path import os @@ -11,7 +14,6 @@ class LibOE(OESelftestTestCase): super(LibOE, cls).setUpClass() cls.tmp_dir = get_bb_var('TMPDIR') - @OETestID(1635) def test_copy_tree_special(self): """ Summary: oe.path.copytree() should copy files with special character @@ -37,7 +39,6 @@ class LibOE(OESelftestTestCase): oe.path.remove(testloc) - @OETestID(1636) def test_copy_tree_xattr(self): """ Summary: oe.path.copytree() should preserve xattr on copied files @@ -72,7 +73,6 @@ class LibOE(OESelftestTestCase): oe.path.remove(testloc) - @OETestID(1634) def test_copy_hardlink_tree_count(self): """ Summary: oe.path.copyhardlinktree() shouldn't miss out files diff --git a/external/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py b/external/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py index f992b373..bae935d6 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/lic_checksum.py @@ -1,16 +1,18 @@ +# +# SPDX-License-Identifier: MIT +# + import os import tempfile from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake from oeqa.utils import CommandError -from oeqa.core.decorator.oeid import OETestID class LicenseTests(OESelftestTestCase): # Verify that changing a license file that has an absolute path causes # the license qa to fail due to a mismatched md5sum. - @OETestID(1197) def test_nonmatching_checksum(self): bitbake_cmd = '-c populate_lic emptytest' error_msg = 'emptytest: The new md5 checksum is 8d777f385d3dfec8815d20f7496026dc' diff --git a/external/poky/meta/lib/oeqa/selftest/cases/manifest.py b/external/poky/meta/lib/oeqa/selftest/cases/manifest.py index 14607193..5d13f354 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/manifest.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/manifest.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake -from oeqa.core.decorator.oeid import OETestID class ManifestEntry: '''A manifest item of a collection able to list missing packages''' @@ -59,7 +62,6 @@ class VerifyManifest(OESelftestTestCase): self.skipTest("{}: Cannot setup testing scenario"\ .format(self.classname)) - @OETestID(1380) def test_SDK_manifest_entries(self): '''Verifying the SDK manifest entries exist, this may take a build''' @@ -84,11 +86,8 @@ class VerifyManifest(OESelftestTestCase): try: mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget) for k in d_target.keys(): - bb_vars = get_bb_vars(['SDK_NAME', 'SDK_VERSION'], self.buildtarget) - mfilename[k] = "{}-toolchain-{}.{}.manifest".format( - bb_vars['SDK_NAME'], - bb_vars['SDK_VERSION'], - k) + toolchain_outputname = get_bb_var('TOOLCHAIN_OUTPUTNAME', self.buildtarget) + mfilename[k] = "{}.{}.manifest".format(toolchain_outputname, k) mpath[k] = os.path.join(mdir, mfilename[k]) if not os.path.isfile(mpath[k]): self.logger.debug("{}: {} does not exist".format( @@ -126,7 +125,6 @@ class VerifyManifest(OESelftestTestCase): self.logger.info(msg) self.fail(logmsg) - @OETestID(1381) def test_image_manifest_entries(self): '''Verifying the image manifest entries exist''' diff --git a/external/poky/meta/lib/oeqa/selftest/cases/meta_ide.py b/external/poky/meta/lib/oeqa/selftest/cases/meta_ide.py index 5df9d3ed..80914255 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/meta_ide.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/meta_ide.py @@ -1,10 +1,15 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase from oeqa.sdk.utils.sdkbuildproject import SDKBuildProject from oeqa.utils.commands import bitbake, get_bb_vars, runCmd -from oeqa.core.decorator.oeid import OETestID +from oeqa.core.decorator import OETestTag import tempfile import shutil +@OETestTag("machine") class MetaIDE(OESelftestTestCase): @classmethod @@ -23,22 +28,19 @@ class MetaIDE(OESelftestTestCase): shutil.rmtree(cls.tmpdir_metaideQA, ignore_errors=True) super(MetaIDE, cls).tearDownClass() - @OETestID(1982) def test_meta_ide_had_installed_meta_ide_support(self): self.assertExists(self.environment_script_path) - @OETestID(1983) def test_meta_ide_can_compile_c_program(self): runCmd('cp %s/test.c %s' % (self.tc.files_dir, self.tmpdir_metaideQA)) runCmd("cd %s; . %s; $CC test.c -lm" % (self.tmpdir_metaideQA, self.environment_script_path)) compiled_file = '%s/a.out' % self.tmpdir_metaideQA self.assertExists(compiled_file) - @OETestID(1984) 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, diff --git a/external/poky/meta/lib/oeqa/selftest/cases/multiconfig.py b/external/poky/meta/lib/oeqa/selftest/cases/multiconfig.py new file mode 100644 index 00000000..39b92f24 --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/multiconfig.py @@ -0,0 +1,72 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import textwrap +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import bitbake + +class MultiConfig(OESelftestTestCase): + + def test_multiconfig(self): + """ + Test that a simple multiconfig build works. This uses the mcextend class and the + multiconfig-image-packager test recipe to build a core-image-full-cmdline image which + contains a tiny core-image-minimal and a musl core-image-minimal, installed as packages. + """ + + config = """ +IMAGE_INSTALL_append_pn-core-image-full-cmdline = " multiconfig-image-packager-tiny multiconfig-image-packager-musl" +BBMULTICONFIG = "tiny musl" +""" + self.write_config(config) + + muslconfig = """ +MACHINE = "qemux86-64" +DISTRO = "poky" +TCLIBC = "musl" +TMPDIR = "${TOPDIR}/tmp-mc-musl" +""" + self.write_config(muslconfig, 'musl') + + tinyconfig = """ +MACHINE = "qemux86" +DISTRO = "poky-tiny" +TMPDIR = "${TOPDIR}/tmp-mc-tiny" +""" + self.write_config(tinyconfig, 'tiny') + + # Build a core-image-minimal + bitbake('core-image-full-cmdline') + + def test_multiconfig_reparse(self): + """ + Test that changes to a multiconfig conf file are correctly detected and + cause a reparse/rebuild of a recipe. + """ + config = textwrap.dedent('''\ + MCTESTVAR = "test" + BBMULTICONFIG = "test" + ''') + self.write_config(config) + + testconfig = textwrap.dedent('''\ + MCTESTVAR_append = "1" + ''') + self.write_config(testconfig, 'test') + + # Check that the 1) the task executed and 2) that it output the correct + # value. Note "bitbake -e" is not used because it always reparses the + # recipe and we want to ensure that the automatic reparsing and parse + # caching is detected. + result = bitbake('mc:test:multiconfig-test-parse -c showvar') + self.assertIn('MCTESTVAR=test1', result.output.splitlines()) + + testconfig = textwrap.dedent('''\ + MCTESTVAR_append = "2" + ''') + self.write_config(testconfig, 'test') + + result = bitbake('mc:test:multiconfig-test-parse -c showvar') + self.assertIn('MCTESTVAR=test2', result.output.splitlines()) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py index 08675fd8..d4664bd0 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/buildhistory.py @@ -1,8 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import os from oeqa.selftest.case import OESelftestTestCase import tempfile from oeqa.utils.commands import get_bb_var -from oeqa.core.decorator.oeid import OETestID class TestBlobParsing(OESelftestTestCase): @@ -40,10 +43,9 @@ class TestBlobParsing(OESelftestTestCase): self.repo.git.add("--all") self.repo.git.commit(message=msg) - @OETestID(1859) 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" } @@ -53,7 +55,6 @@ class TestBlobParsing(OESelftestTestCase): self.assertEqual(valuesmap, blob_to_dict(blob), "commit was not translated correctly to dictionary") - @OETestID(1860) def test_compare_dict_blobs(self): """ Test comparisson of dictionaries extracted from git blobs @@ -74,7 +75,6 @@ class TestBlobParsing(OESelftestTestCase): var_changes = { x.fieldname : (x.oldvalue, x.newvalue) for x in change_records} self.assertEqual(changesmap, var_changes, "Changes not reported correctly") - @OETestID(1861) def test_compare_dict_blobs_default(self): """ Test default values for comparisson of git blob dictionaries diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py index 15c03f46..d0a28090 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + from unittest.case import TestCase import oe.qa diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/license.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/license.py index d7f91fb2..6ebbee58 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/license.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/license.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + from unittest.case import TestCase import oe.license diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/path.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/path.py index e0eb8134..a1cfa08c 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/path.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/path.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + from unittest.case import TestCase import oe, oe.path import tempfile diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/types.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/types.py index 6b53aa64..7eb49e6f 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/types.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/types.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + from unittest.case import TestCase from oe.maketype import create diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oelib/utils.py b/external/poky/meta/lib/oeqa/selftest/cases/oelib/utils.py index 789c6f78..a7214beb 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oelib/utils.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oelib/utils.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import sys from unittest.case import TestCase from contextlib import contextmanager diff --git a/external/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/external/poky/meta/lib/oeqa/selftest/cases/oescripts.py index bcdc2d5a..726daff7 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/oescripts.py @@ -1,11 +1,18 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import shutil +import importlib +import unittest from oeqa.selftest.case import OESelftestTestCase from oeqa.selftest.cases.buildhistory import BuildhistoryBase from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer -from oeqa.core.decorator.oeid import OETestID +from oeqa.utils import CommandError class BuildhistoryDiffTests(BuildhistoryBase): - @OETestID(295) def test_buildhistory_diff(self): target = 'xcursor-transparent-theme' self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True) @@ -26,3 +33,155 @@ class BuildhistoryDiffTests(BuildhistoryBase): self.fail('Unexpected line:\n%s\nExpected line endings:\n %s' % (line, '\n '.join(expected_endlines))) 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() + 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] + + scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts') + +class OEPybootchartguyTests(OEScriptTests): + + def test_pybootchartguy_help(self): + runCmd('%s/pybootchartgui/pybootchartgui.py --help' % self.scripts_dir) + + def test_pybootchartguy_to_generate_build_png_output(self): + runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f png' % (self.scripts_dir, self.buildstats, self.tmpdir)) + self.assertTrue(os.path.exists(self.tmpdir + "/charts.png")) + + def test_pybootchartguy_to_generate_build_svg_output(self): + runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f svg' % (self.scripts_dir, self.buildstats, self.tmpdir)) + self.assertTrue(os.path.exists(self.tmpdir + "/charts.svg")) + + def test_pybootchartguy_to_generate_build_pdf_output(self): + 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') + + def test_oegitproxy_help(self): + try: + res = runCmd('%s/oe-git-proxy --help' % self.scripts_dir, assert_error=False) + self.assertTrue(False) + except CommandError as e: + self.assertEqual(2, e.retcode) + + def run_oegitproxy(self, custom_shell=None): + os.environ['SOCAT'] = shutil.which("echo") + os.environ['ALL_PROXY'] = "https://proxy.example.com:3128" + os.environ['NO_PROXY'] = "*.example.com,.no-proxy.org,192.168.42.0/24,127.*.*.*" + + if custom_shell is None: + prefix = '' + else: + prefix = custom_shell + ' ' + + # outside, use the proxy + res = runCmd('%s%s/oe-git-proxy host.outside-example.com 9418' % + (prefix,self.scripts_dir)) + self.assertIn('PROXY:', res.output) + # match with wildcard suffix + res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match just suffix + res = runCmd('%s%s/oe-git-proxy host.no-proxy.org 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match IP subnet + res = runCmd('%s%s/oe-git-proxy 192.168.42.42 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + # match IP wildcard + res = runCmd('%s%s/oe-git-proxy 127.1.2.3 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + + # test that * globbering is off + os.environ['NO_PROXY'] = "*" + res = runCmd('%s%s/oe-git-proxy host.example.com 9418' % + (prefix, self.scripts_dir)) + self.assertIn('TCP:', res.output) + + def test_oegitproxy_proxy(self): + self.run_oegitproxy() + + def test_oegitproxy_proxy_dash(self): + dash = shutil.which("dash") + 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/external/poky/meta/lib/oeqa/selftest/cases/package.py b/external/poky/meta/lib/oeqa/selftest/cases/package.py index 0a88dc25..b87f8dc3 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/package.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/package.py @@ -1,9 +1,13 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.commands import bitbake, get_bb_vars, get_bb_var, runqemu import stat import subprocess, os import oe.path +import re class VersionOrdering(OESelftestTestCase): # version1, version2, sort order @@ -36,7 +40,6 @@ class VersionOrdering(OESelftestTestCase): self.bindir = type(self).bindir self.libdir = type(self).libdir - @OETestID(1880) def test_dpkg(self): for ver1, ver2, sort in self.tests: op = { -1: "<<", 0: "=", 1: ">>" }[sort] @@ -53,7 +56,6 @@ class VersionOrdering(OESelftestTestCase): status = subprocess.call((oe.path.join(self.bindir, "dpkg"), "--compare-versions", ver1, op, ver2)) self.assertNotEqual(status, 0, "%s %s %s failed" % (ver1, op, ver2)) - @OETestID(1881) def test_opkg(self): for ver1, ver2, sort in self.tests: op = { -1: "<<", 0: "=", 1: ">>" }[sort] @@ -70,7 +72,6 @@ class VersionOrdering(OESelftestTestCase): status = subprocess.call((oe.path.join(self.bindir, "opkg"), "compare-versions", ver1, op, ver2)) self.assertNotEqual(status, 0, "%s %s %s failed" % (ver1, op, ver2)) - @OETestID(1882) def test_rpm(self): # Need to tell the Python bindings where to find its configuration env = os.environ.copy() @@ -134,10 +135,10 @@ class PackageTests(OESelftestTestCase): return False # Check debugging symbols works correctly - elif "Breakpoint 1, main () at hello.c:4" in l: + elif re.match(r"Breakpoint 1.*hello\.c.*4", l): return True - self.logger.error("GDB result:\n%s: %s" % output) + self.logger.error("GDB result:\n%d: %s", status, output) return False with runqemu('core-image-minimal') as qemu: diff --git a/external/poky/meta/lib/oeqa/selftest/cases/pkgdata.py b/external/poky/meta/lib/oeqa/selftest/cases/pkgdata.py index 99117651..833a1803 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/pkgdata.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/pkgdata.py @@ -1,10 +1,13 @@ +# +# SPDX-License-Identifier: MIT +# + import os import tempfile import fnmatch from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars -from oeqa.core.decorator.oeid import OETestID class OePkgdataUtilTests(OESelftestTestCase): @@ -16,7 +19,6 @@ class OePkgdataUtilTests(OESelftestTestCase): bitbake('target-sdk-provides-dummy -c clean') bitbake('busybox zlib m4') - @OETestID(1203) def test_lookup_pkg(self): # Forward tests result = runCmd('oe-pkgdata-util lookup-pkg "zlib busybox"') @@ -35,7 +37,6 @@ class OePkgdataUtilTests(OESelftestTestCase): self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output) self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg') - @OETestID(1205) def test_read_value(self): result = runCmd('oe-pkgdata-util read-value PN libz1') self.assertEqual(result.output, 'zlib') @@ -45,7 +46,6 @@ class OePkgdataUtilTests(OESelftestTestCase): pkgsize = int(result.output.strip()) self.assertGreater(pkgsize, 1, "Size should be greater than 1. %s" % result.output) - @OETestID(1198) def test_find_path(self): result = runCmd('oe-pkgdata-util find-path /lib/libz.so.1') self.assertEqual(result.output, 'zlib: /lib/libz.so.1') @@ -55,7 +55,6 @@ class OePkgdataUtilTests(OESelftestTestCase): self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output) self.assertEqual(result.output, 'ERROR: Unable to find any package producing path /not/exist') - @OETestID(1204) def test_lookup_recipe(self): result = runCmd('oe-pkgdata-util lookup-recipe "libz-staticdev busybox"') self.assertEqual(result.output, 'zlib\nbusybox') @@ -65,7 +64,6 @@ class OePkgdataUtilTests(OESelftestTestCase): self.assertEqual(result.status, 1, "Status different than 1. output: %s" % result.output) self.assertEqual(result.output, 'ERROR: The following packages could not be found: nonexistentpkg') - @OETestID(1202) def test_list_pkgs(self): # No arguments result = runCmd('oe-pkgdata-util list-pkgs') @@ -83,7 +81,7 @@ class OePkgdataUtilTests(OESelftestTestCase): pkglist.remove('zlib-ptest') # in case ptest is disabled except ValueError: pass - self.assertEqual(pkglist, ['zlib', 'zlib-dbg', 'zlib-dev', 'zlib-doc', 'zlib-staticdev'], "Packages listed after remove: %s" % result.output) + self.assertEqual(pkglist, ['zlib', 'zlib-dbg', 'zlib-dev', 'zlib-doc', 'zlib-src', 'zlib-staticdev'], "Packages listed after remove: %s" % result.output) # With recipe specified, runtime result = runCmd('oe-pkgdata-util list-pkgs -p zlib -r') pkglist = sorted(result.output.split()) @@ -91,7 +89,7 @@ class OePkgdataUtilTests(OESelftestTestCase): pkglist.remove('libz-ptest') # in case ptest is disabled except ValueError: pass - self.assertEqual(pkglist, ['libz-dbg', 'libz-dev', 'libz-doc', 'libz-staticdev', 'libz1'], "Packages listed after remove: %s" % result.output) + self.assertEqual(pkglist, ['libz-dbg', 'libz-dev', 'libz-doc', 'libz-src', 'libz-staticdev', 'libz1'], "Packages listed after remove: %s" % result.output) # With recipe specified and unpackaged result = runCmd('oe-pkgdata-util list-pkgs -p zlib -u') pkglist = sorted(result.output.split()) @@ -109,7 +107,6 @@ class OePkgdataUtilTests(OESelftestTestCase): pkglist = sorted(result.output.split()) self.assertEqual(pkglist, ['libz-dbg', 'libz-dev', 'libz-doc'], "Packages listed: %s" % result.output) - @OETestID(1201) def test_list_pkg_files(self): def splitoutput(output): files = {} @@ -199,7 +196,6 @@ class OePkgdataUtilTests(OESelftestTestCase): self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['libz-doc']) self.assertIn(os.path.join(libdir, 'libz.a'), files['libz-staticdev']) - @OETestID(1200) def test_glob(self): tempdir = tempfile.mkdtemp(prefix='pkgdataqa') self.track_for_cleanup(tempdir) @@ -219,7 +215,6 @@ class OePkgdataUtilTests(OESelftestTestCase): self.assertNotIn('libz-dev', resultlist) self.assertNotIn('libz-dbg', resultlist) - @OETestID(1206) def test_specify_pkgdatadir(self): result = runCmd('oe-pkgdata-util -p %s lookup-pkg zlib' % get_bb_var('PKGDATA_DIR')) self.assertEqual(result.output, 'libz1') diff --git a/external/poky/meta/lib/oeqa/selftest/cases/prservice.py b/external/poky/meta/lib/oeqa/selftest/cases/prservice.py index 479e5206..fe1f24ea 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/prservice.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/prservice.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import shutil @@ -6,7 +10,6 @@ import datetime import oeqa.utils.ftools as ftools from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.network import get_free_port class BitbakePrTests(OESelftestTestCase): @@ -19,7 +22,7 @@ class BitbakePrTests(OESelftestTestCase): def get_pr_version(self, package_name): package_data_file = os.path.join(self.pkgdata_dir, 'runtime', package_name) package_data = ftools.read_file(package_data_file) - find_pr = re.search("PKGR: r[0-9]+\.([0-9]+)", package_data) + 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) return int(find_pr.group(1)) @@ -29,7 +32,7 @@ class BitbakePrTests(OESelftestTestCase): package_stamps_path = "/".join(stampdata[:-1]) stamps = [] for stamp in os.listdir(package_stamps_path): - find_stamp = re.match("%s\.%s\.([a-z0-9]{32})" % (re.escape(prefix), recipe_task), stamp) + find_stamp = re.match(r"%s\.%s\.([a-z0-9]{32})" % (re.escape(prefix), recipe_task), stamp) if find_stamp: stamps.append(find_stamp.group(1)) self.assertFalse(len(stamps) == 0, msg="Cound not find stamp for task %s for recipe %s" % (recipe_task, package_name)) @@ -88,39 +91,30 @@ class BitbakePrTests(OESelftestTestCase): self.assertTrue(pr_2 - pr_1 == 1, "Step between same pkg. revision is greater than 1") - @OETestID(930) def test_import_export_replace_db(self): self.run_test_pr_export_import('m4') - @OETestID(931) def test_import_export_override_db(self): self.run_test_pr_export_import('m4', replace_current_db=False) - @OETestID(932) def test_pr_service_rpm_arch_dep(self): self.run_test_pr_service('m4', 'rpm', 'do_package') - @OETestID(934) def test_pr_service_deb_arch_dep(self): self.run_test_pr_service('m4', 'deb', 'do_package') - @OETestID(933) def test_pr_service_ipk_arch_dep(self): self.run_test_pr_service('m4', 'ipk', 'do_package') - @OETestID(935) def test_pr_service_rpm_arch_indep(self): self.run_test_pr_service('xcursor-transparent-theme', 'rpm', 'do_package') - @OETestID(937) def test_pr_service_deb_arch_indep(self): self.run_test_pr_service('xcursor-transparent-theme', 'deb', 'do_package') - @OETestID(936) def test_pr_service_ipk_arch_indep(self): self.run_test_pr_service('xcursor-transparent-theme', 'ipk', 'do_package') - @OETestID(1419) def test_stopping_prservice_message(self): port = get_free_port() diff --git a/external/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/external/poky/meta/lib/oeqa/selftest/cases/recipetool.py index 06f980e1..c2ade254 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/recipetool.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import shutil import tempfile @@ -5,7 +9,6 @@ import urllib.parse from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import get_bb_vars, create_temp_layer -from oeqa.core.decorator.oeid import OETestID from oeqa.selftest.cases import devtool templayerdir = None @@ -89,7 +92,6 @@ class RecipetoolTests(RecipetoolBase): for errorstr in checkerror: self.assertIn(errorstr, result.output) - @OETestID(1177) def test_recipetool_appendfile_basic(self): # Basic test expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -97,14 +99,12 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('base-files', '/etc/motd', self.testfile, '', expectedlines, ['motd']) self.assertNotIn('WARNING: ', output) - @OETestID(1183) def test_recipetool_appendfile_invalid(self): # Test some commands that should error self._try_recipetool_appendfile_fail('/etc/passwd', self.testfile, ['ERROR: /etc/passwd cannot be handled by this tool', 'useradd', 'extrausers']) self._try_recipetool_appendfile_fail('/etc/timestamp', self.testfile, ['ERROR: /etc/timestamp cannot be handled by this tool']) self._try_recipetool_appendfile_fail('/dev/console', self.testfile, ['ERROR: /dev/console cannot be handled by this tool']) - @OETestID(1176) def test_recipetool_appendfile_alternatives(self): # Now try with a file we know should be an alternative # (this is very much a fake example, but one we know is reliably an alternative) @@ -128,7 +128,6 @@ class RecipetoolTests(RecipetoolBase): result = runCmd('diff -q %s %s' % (testfile2, copiedfile), ignore_status=True) self.assertNotEqual(result.status, 0, 'New file should have been copied but was not %s' % result.output) - @OETestID(1178) def test_recipetool_appendfile_binary(self): # Try appending a binary file # /bin/ls can be a symlink to /usr/bin/ls @@ -137,7 +136,6 @@ class RecipetoolTests(RecipetoolBase): self.assertIn('WARNING: ', result.output) self.assertIn('is a binary', result.output) - @OETestID(1173) def test_recipetool_appendfile_add(self): # Try arbitrary file add to a recipe expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -166,7 +164,6 @@ class RecipetoolTests(RecipetoolBase): '}\n'] self._try_recipetool_appendfile('netbase', '/usr/share/scriptname', testfile2, '-r netbase', expectedlines, ['testfile', testfile2name]) - @OETestID(1174) def test_recipetool_appendfile_add_bindir(self): # Try arbitrary file add to a recipe, this time to a location such that should be installed as executable expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -180,7 +177,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('netbase', '/usr/bin/selftest-recipetool-testbin', self.testfile, '-r netbase', expectedlines, ['testfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1175) def test_recipetool_appendfile_add_machine(self): # Try arbitrary file add to a recipe, this time to a location such that should be installed as executable expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -196,7 +192,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase -m mymachine', expectedlines, ['mymachine/testfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1184) def test_recipetool_appendfile_orig(self): # A file that's in SRC_URI and in do_install with the same name expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -204,7 +199,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-orig', self.testfile, '', expectedlines, ['selftest-replaceme-orig']) self.assertNotIn('WARNING: ', output) - @OETestID(1191) def test_recipetool_appendfile_todir(self): # A file that's in SRC_URI and in do_install with destination directory rather than file expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -212,7 +206,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-todir', self.testfile, '', expectedlines, ['selftest-replaceme-todir']) self.assertNotIn('WARNING: ', output) - @OETestID(1187) def test_recipetool_appendfile_renamed(self): # A file that's in SRC_URI with a different name to the destination file expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -220,7 +213,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-renamed', self.testfile, '', expectedlines, ['file1']) self.assertNotIn('WARNING: ', output) - @OETestID(1190) def test_recipetool_appendfile_subdir(self): # A file that's in SRC_URI in a subdir expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -234,7 +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) - @OETestID(1189) def test_recipetool_appendfile_src_glob(self): # A file that's in SRC_URI as a glob expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -248,7 +239,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-src-globfile', self.testfile, '', expectedlines, ['testfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1181) def test_recipetool_appendfile_inst_glob(self): # A file that's in do_install as a glob expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -256,7 +246,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-globfile', self.testfile, '', expectedlines, ['selftest-replaceme-inst-globfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1182) def test_recipetool_appendfile_inst_todir_glob(self): # A file that's in do_install as a glob with destination as a directory expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -264,7 +253,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-todir-globfile', self.testfile, '', expectedlines, ['selftest-replaceme-inst-todir-globfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1185) def test_recipetool_appendfile_patch(self): # A file that's added by a patch in SRC_URI expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -283,7 +271,6 @@ class RecipetoolTests(RecipetoolBase): else: self.fail('Patch warning not found in output:\n%s' % output) - @OETestID(1188) def test_recipetool_appendfile_script(self): # Now, a file that's in SRC_URI but installed by a script (so no mention in do_install) expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -297,7 +284,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-scripted', self.testfile, '', expectedlines, ['testfile']) self.assertNotIn('WARNING: ', output) - @OETestID(1180) def test_recipetool_appendfile_inst_func(self): # A file that's installed from a function called by do_install expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', @@ -305,7 +291,6 @@ class RecipetoolTests(RecipetoolBase): _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-inst-func', self.testfile, '', expectedlines, ['selftest-replaceme-inst-func']) self.assertNotIn('WARNING: ', output) - @OETestID(1186) def test_recipetool_appendfile_postinstall(self): # A file that's created by a postinstall script (and explicitly mentioned in it) # First try without specifying recipe @@ -321,7 +306,6 @@ class RecipetoolTests(RecipetoolBase): '}\n'] _, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/usr/share/selftest-replaceme-postinst', self.testfile, '-r selftest-recipetool-appendfile', expectedlines, ['testfile']) - @OETestID(1179) def test_recipetool_appendfile_extlayer(self): # Try creating a bbappend in a layer that's not in bblayers.conf and has a different structure exttemplayerdir = os.path.join(self.tempdir, 'extlayer') @@ -337,7 +321,6 @@ class RecipetoolTests(RecipetoolBase): 'metadata/recipes/recipes-test/selftest-recipetool-appendfile/selftest-recipetool-appendfile/selftest-replaceme-orig'] self.assertEqual(sorted(createdfiles), sorted(expectedfiles)) - @OETestID(1192) def test_recipetool_appendfile_wildcard(self): def try_appendfile_wc(options): @@ -362,7 +345,6 @@ class RecipetoolTests(RecipetoolBase): filename = try_appendfile_wc('-w') self.assertEqual(filename, recipefn.split('_')[0] + '_%.bbappend') - @OETestID(1193) def test_recipetool_create(self): # Try adding a recipe tempsrc = os.path.join(self.tempdir, 'srctree') @@ -379,7 +361,6 @@ class RecipetoolTests(RecipetoolBase): checkvars['SRC_URI[sha256sum]'] = '2e6a401cac9024db2288297e3be1a8ab60e7401ba8e91225218aaf4a27e82a07' self._test_recipe_contents(recipefile, checkvars, []) - @OETestID(1194) def test_recipetool_create_git(self): if 'x11' not in get_bb_var('DISTRO_FEATURES'): self.skipTest('Test requires x11 as distro feature') @@ -402,7 +383,6 @@ class RecipetoolTests(RecipetoolBase): inherits = ['autotools', 'pkgconfig'] self._test_recipe_contents(recipefile, checkvars, inherits) - @OETestID(1392) def test_recipetool_create_simple(self): # Try adding a recipe temprecipe = os.path.join(self.tempdir, 'recipe') @@ -425,27 +405,47 @@ class RecipetoolTests(RecipetoolBase): inherits = ['autotools'] self._test_recipe_contents(os.path.join(temprecipe, dirlist[0]), checkvars, inherits) - @OETestID(1418) def test_recipetool_create_cmake(self): - bitbake('-c packagedata gtk+') - - # Try adding a recipe temprecipe = os.path.join(self.tempdir, 'recipe') os.makedirs(temprecipe) - recipefile = os.path.join(temprecipe, 'navit_0.5.0.bb') - srcuri = 'http://downloads.yoctoproject.org/mirror/sources/navit-0.5.0.tar.gz' + recipefile = os.path.join(temprecipe, 'taglib_1.11.1.bb') + srcuri = 'http://taglib.github.io/releases/taglib-1.11.1.tar.gz' result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) self.assertTrue(os.path.isfile(recipefile)) checkvars = {} - checkvars['LICENSE'] = set(['Unknown', 'GPLv2', 'LGPLv2']) - checkvars['SRC_URI'] = 'http://downloads.yoctoproject.org/mirror/sources/navit-${PV}.tar.gz' - checkvars['SRC_URI[md5sum]'] = '242f398e979a6b8c0f3c802b63435b68' - checkvars['SRC_URI[sha256sum]'] = '13353481d7fc01a4f64e385dda460b51496366bba0fd2cc85a89a0747910e94d' - checkvars['DEPENDS'] = set(['freetype', 'zlib', 'openssl', 'glib-2.0', 'virtual/libgl', 'virtual/egl', 'gtk+', 'libpng', 'libsdl', 'freeglut', 'dbus-glib', 'fribidi']) - inherits = ['cmake', 'python-dir', 'gettext', 'pkgconfig'] + checkvars['LICENSE'] = set(['LGPLv2.1', 'MPL-1.1']) + checkvars['SRC_URI'] = 'http://taglib.github.io/releases/taglib-${PV}.tar.gz' + checkvars['SRC_URI[md5sum]'] = 'cee7be0ccfc892fa433d6c837df9522a' + checkvars['SRC_URI[sha256sum]'] = 'b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b' + checkvars['DEPENDS'] = set(['boost', 'zlib']) + inherits = ['cmake'] + self._test_recipe_contents(recipefile, checkvars, inherits) + + def test_recipetool_create_npm(self): + 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) - @OETestID(1638) def test_recipetool_create_github(self): # Basic test to see if github URL mangling works temprecipe = os.path.join(self.tempdir, 'recipe') @@ -457,10 +457,47 @@ class RecipetoolTests(RecipetoolBase): checkvars = {} checkvars['LICENSE'] = set(['Apache-2.0']) checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https' - inherits = ['setuptools'] + inherits = ['setuptools3'] + self._test_recipe_contents(recipefile, checkvars, inherits) + + def test_recipetool_create_python3_setuptools(self): + # Test creating python3 package from tarball (using setuptools3 class) + temprecipe = os.path.join(self.tempdir, 'recipe') + os.makedirs(temprecipe) + pn = 'python-magic' + pv = '0.4.15' + recipefile = os.path.join(temprecipe, '%s_%s.bb' % (pn, pv)) + srcuri = 'https://files.pythonhosted.org/packages/84/30/80932401906eaf787f2e9bd86dc458f1d2e75b064b4c187341f29516945c/python-magic-%s.tar.gz' % pv + result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) + self.assertTrue(os.path.isfile(recipefile)) + checkvars = {} + checkvars['LICENSE'] = set(['MIT']) + checkvars['LIC_FILES_CHKSUM'] = 'file://LICENSE;md5=16a934f165e8c3245f241e77d401bb88' + checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/84/30/80932401906eaf787f2e9bd86dc458f1d2e75b064b4c187341f29516945c/python-magic-${PV}.tar.gz' + checkvars['SRC_URI[md5sum]'] = 'e384c95a47218f66c6501cd6dd45ff59' + checkvars['SRC_URI[sha256sum]'] = 'f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5' + inherits = ['setuptools3'] + self._test_recipe_contents(recipefile, checkvars, inherits) + + def test_recipetool_create_python3_distutils(self): + # Test creating python3 package from tarball (using distutils3 class) + temprecipe = os.path.join(self.tempdir, 'recipe') + os.makedirs(temprecipe) + pn = 'docutils' + pv = '0.14' + recipefile = os.path.join(temprecipe, '%s_%s.bb' % (pn, pv)) + srcuri = 'https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-%s.tar.gz' % pv + result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) + self.assertTrue(os.path.isfile(recipefile)) + checkvars = {} + checkvars['LICENSE'] = set(['PSF', '&', 'BSD', 'GPL']) + checkvars['LIC_FILES_CHKSUM'] = 'file://COPYING.txt;md5=35a23d42b615470583563132872c97d6' + checkvars['SRC_URI'] = 'https://files.pythonhosted.org/packages/84/f4/5771e41fdf52aabebbadecc9381d11dea0fa34e4759b4071244fa094804c/docutils-${PV}.tar.gz' + checkvars['SRC_URI[md5sum]'] = 'c53768d63db3873b7d452833553469de' + checkvars['SRC_URI[sha256sum]'] = '51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274' + inherits = ['distutils3'] self._test_recipe_contents(recipefile, checkvars, inherits) - @OETestID(1639) def test_recipetool_create_github_tarball(self): # Basic test to ensure github URL mangling doesn't apply to release tarballs temprecipe = os.path.join(self.tempdir, 'recipe') @@ -473,10 +510,9 @@ class RecipetoolTests(RecipetoolBase): checkvars = {} checkvars['LICENSE'] = set(['Apache-2.0']) checkvars['SRC_URI'] = 'https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz' - inherits = ['setuptools'] + inherits = ['setuptools3'] self._test_recipe_contents(recipefile, checkvars, inherits) - @OETestID(1637) def test_recipetool_create_git_http(self): # Basic test to check http git URL mangling works temprecipe = os.path.join(self.tempdir, 'recipe') @@ -498,13 +534,16 @@ 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) self.track_for_cleanup(dstfile) - @OETestID(1640) def test_recipetool_load_plugin(self): """Test that recipetool loads only the first found plugin in BBPATH.""" @@ -626,11 +665,9 @@ class RecipetoolAppendsrcBase(RecipetoolBase): class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase): - @OETestID(1273) def test_recipetool_appendsrcfile_basic(self): self._test_appendsrcfile('base-files', 'a-file') - @OETestID(1274) def test_recipetool_appendsrcfile_basic_wildcard(self): testrecipe = 'base-files' self._test_appendsrcfile(testrecipe, 'a-file', options='-w') @@ -638,15 +675,12 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase): bbappendfile = self._check_bbappend(testrecipe, recipefile, self.templayerdir) self.assertEqual(os.path.basename(bbappendfile), '%s_%%.bbappend' % testrecipe) - @OETestID(1281) def test_recipetool_appendsrcfile_subdir_basic(self): self._test_appendsrcfile('base-files', 'a-file', 'tmp') - @OETestID(1282) def test_recipetool_appendsrcfile_subdir_basic_dirdest(self): self._test_appendsrcfile('base-files', destdir='tmp') - @OETestID(1280) def test_recipetool_appendsrcfile_srcdir_basic(self): testrecipe = 'bash' bb_vars = get_bb_vars(['S', 'WORKDIR'], testrecipe) @@ -655,14 +689,12 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase): subdir = os.path.relpath(srcdir, workdir) self._test_appendsrcfile(testrecipe, 'a-file', srcdir=subdir) - @OETestID(1275) def test_recipetool_appendsrcfile_existing_in_src_uri(self): testrecipe = 'base-files' filepath = self._get_first_file_uri(testrecipe) self.assertTrue(filepath, 'Unable to test, no file:// uri found in SRC_URI for %s' % testrecipe) self._test_appendsrcfile(testrecipe, filepath, has_src_uri=False) - @OETestID(1276) def test_recipetool_appendsrcfile_existing_in_src_uri_diff_params(self): testrecipe = 'base-files' subdir = 'tmp' @@ -672,7 +704,6 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase): output = self._test_appendsrcfile(testrecipe, filepath, subdir, has_src_uri=False) self.assertTrue(any('with different parameters' in l for l in output)) - @OETestID(1277) def test_recipetool_appendsrcfile_replace_file_srcdir(self): testrecipe = 'bash' filepath = 'Makefile.in' @@ -683,9 +714,10 @@ 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()) - @OETestID(1278) def test_recipetool_appendsrcfiles_basic(self, destdir=None): newfiles = [self.testfile] for i in range(1, 5): @@ -695,6 +727,5 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase): newfiles.append(testfile) self._test_appendsrcfiles('gcc', newfiles, destdir=destdir, options='-W') - @OETestID(1279) def test_recipetool_appendsrcfiles_basic_subdir(self): self.test_recipetool_appendsrcfiles_basic(destdir='testdir') diff --git a/external/poky/meta/lib/oeqa/selftest/cases/recipeutils.py b/external/poky/meta/lib/oeqa/selftest/cases/recipeutils.py new file mode 100644 index 00000000..74787038 --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/recipeutils.py @@ -0,0 +1,140 @@ +# +# SPDX-License-Identifier: MIT +# + +import os +import re +import time +import logging +import bb.tinfoil + +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import runCmd, get_test_layer + + +def setUpModule(): + global tinfoil + global metaselftestpath + metaselftestpath = get_test_layer() + tinfoil = bb.tinfoil.Tinfoil(tracking=True) + tinfoil.prepare(config_only=False, quiet=2) + + +def tearDownModule(): + tinfoil.shutdown() + + +class RecipeUtilsTests(OESelftestTestCase): + """ Tests for the recipeutils module functions """ + + def test_patch_recipe_varflag(self): + import oe.recipeutils + rd = tinfoil.parse_recipe('python3-async-test') + vals = {'SRC_URI[md5sum]': 'aaaaaa', 'LICENSE': 'something'} + patches = oe.recipeutils.patch_recipe(rd, rd.getVar('FILE'), vals, patch=True, relpath=metaselftestpath) + + expected_patch = """ +--- a/recipes-devtools/python/python-async-test.inc ++++ b/recipes-devtools/python/python-async-test.inc +@@ -1,14 +1,14 @@ + 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 = "something" + LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e" + + inherit pypi + + PYPI_PACKAGE = "async" + +-SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b" ++SRC_URI[md5sum] = "aaaaaa" + SRC_URI[sha256sum] = "ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051" + + RDEPENDS_${PN} += "${PYTHON_PN}-threading" +""" + patchlines = [] + for f in patches: + for line in f: + patchlines.append(line) + self.maxDiff = None + self.assertEqual(''.join(patchlines).strip(), expected_patch.strip()) + + + def test_patch_recipe_singleappend(self): + import oe.recipeutils + rd = tinfoil.parse_recipe('recipeutils-test') + val = rd.getVar('SRC_URI', False).split() + del val[1] + val = ' '.join(val) + vals = {'SRC_URI': val} + patches = oe.recipeutils.patch_recipe(rd, rd.getVar('FILE'), vals, patch=True, relpath=metaselftestpath) + + expected_patch = """ +--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb ++++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb +@@ -8,6 +8,4 @@ + + BBCLASSEXTEND = "native nativesdk" + +-SRC_URI += "file://somefile" +- + SRC_URI_append = " file://anotherfile" +""" + patchlines = [] + for f in patches: + for line in f: + patchlines.append(line) + self.assertEqual(''.join(patchlines).strip(), expected_patch.strip()) + + + def test_patch_recipe_appends(self): + import oe.recipeutils + rd = tinfoil.parse_recipe('recipeutils-test') + val = rd.getVar('SRC_URI', False).split() + vals = {'SRC_URI': val[0]} + patches = oe.recipeutils.patch_recipe(rd, rd.getVar('FILE'), vals, patch=True, relpath=metaselftestpath) + + expected_patch = """ +--- a/recipes-test/recipeutils/recipeutils-test_1.2.bb ++++ b/recipes-test/recipeutils/recipeutils-test_1.2.bb +@@ -8,6 +8,3 @@ + + BBCLASSEXTEND = "native nativesdk" + +-SRC_URI += "file://somefile" +- +-SRC_URI_append = " file://anotherfile" +""" + patchlines = [] + for f in patches: + for line in f: + patchlines.append(line) + self.assertEqual(''.join(patchlines).strip(), expected_patch.strip()) + + + def test_validate_pn(self): + import oe.recipeutils + expected_results = { + 'test': '', + 'glib-2.0': '', + 'gtk+': '', + 'forcevariable': 'reserved', + 'pn-something': 'reserved', + 'test.bb': 'file', + 'test_one': 'character', + 'test!': 'character', + } + + for pn, expected in expected_results.items(): + result = oe.recipeutils.validate_pn(pn) + if expected: + self.assertIn(expected, result) + else: + self.assertEqual(result, '') + + def test_split_var_value(self): + import oe.recipeutils + res = oe.recipeutils.split_var_value('test.1 test.2 ${@call_function("hi there world", false)} test.4') + self.assertEqual(res, ['test.1', 'test.2', '${@call_function("hi there world", false)}', 'test.4']) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/external/poky/meta/lib/oeqa/selftest/cases/reproducible.py new file mode 100644 index 00000000..5d3959be --- /dev/null +++ b/external/poky/meta/lib/oeqa/selftest/cases/reproducible.py @@ -0,0 +1,240 @@ +# +# SPDX-License-Identifier: MIT +# +# 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' +SAME = 'SAME' + +@functools.total_ordering +class CompareResult(object): + def __init__(self): + self.reference = None + self.test = None + self.status = 'UNKNOWN' + + def __eq__(self, other): + return (self.status, self.test) == (other.status, other.test) + + def __lt__(self, other): + return (self.status, self.test) < (other.status, other.test) + +class PackageCompareResults(object): + def __init__(self): + self.total = [] + self.missing = [] + self.different = [] + self.same = [] + + def add_result(self, r): + self.total.append(r) + if r.status == MISSING: + self.missing.append(r) + elif r.status == DIFFERENT: + self.different.append(r) + else: + self.same.append(r) + + def sort(self): + self.total.sort() + self.missing.sort() + self.different.sort() + self.same.sort() + + def __str__(self): + return 'same=%i different=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.missing), len(self.total)) + +def compare_file(reference, test, diffutils_sysroot): + result = CompareResult() + result.reference = reference + result.test = test + + if not os.path.exists(reference): + result.status = MISSING + return result + + r = runCmd(['cmp', '--quiet', reference, test], native_sysroot=diffutils_sysroot, ignore_status=True) + + if r.status: + result.status = DIFFERENT + return result + + result.status = SAME + return result + +class ReproducibleTests(OESelftestTestCase): + package_classes = ['deb', 'ipk'] + 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() + needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS'] + bb_vars = get_bb_vars(needed_vars) + for v in needed_vars: + setattr(self, v.lower(), bb_vars[v]) + + self.extraresults = {} + self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = '' + self.extraresults.setdefault('reproducible', {}).setdefault('files', {}) + + def append_to_log(self, msg): + self.extraresults['reproducible.rawlogs']['log'] += msg + + def compare_packages(self, reference_dir, test_dir, diffutils_sysroot): + result = PackageCompareResults() + + old_cwd = os.getcwd() + try: + file_result = {} + os.chdir(test_dir) + with multiprocessing.Pool(processes=int(self.bb_number_threads or 0)) as p: + for root, dirs, files in os.walk('.'): + async_result = [] + for f in files: + reference_path = os.path.join(reference_dir, root, f) + test_path = os.path.join(test_dir, root, f) + async_result.append(p.apply_async(compare_file, (reference_path, test_path, diffutils_sysroot))) + + for a in async_result: + result.add_result(a.get()) + + finally: + os.chdir(old_cwd) + + result.sort() + return result + + def write_package_list(self, package_class, name, packages): + self.extraresults['reproducible']['files'].setdefault(package_class, {})[name] = [ + {'reference': p.reference, 'test': p.test} for p in packages] + + 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] + + tmpdir = os.path.join(self.topdir, name, 'tmp') + if os.path.exists(tmpdir): + bb.utils.remove(tmpdir, recurse=True) + + config = textwrap.dedent('''\ + INHERIT += "reproducible_build" + 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 + + def test_reproducible_builds(self): + def strip_topdir(s): + if s.startswith(self.topdir): + return s[len(self.topdir):] + return s + + # 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 + + deploy_A = vars_A['DEPLOY_DIR_' + c.upper()] + deploy_B = vars_B['DEPLOY_DIR_' + c.upper()] + + result = self.compare_packages(deploy_A, deploy_B, diffutils_sysroot) + + self.logger.info('Reproducibility summary for %s: %s' % (c, result)) + + self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r in result.total)) + + self.write_package_list(package_class, 'missing', result.missing) + 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: + 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')) + + runCmd(['diffoscope', '--no-default-limits', '--exclude-directory-metadata', '--html-dir', package_html_dir, 'reproducibleA', 'reproducibleB'], + native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir) + + if fails: + self.fail('\n'.join(fails)) + diff --git a/external/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py b/external/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py index 0a089c0b..dac5c468 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/resulttooltests.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import sys basepath = os.path.abspath(os.path.dirname(__file__) + '/../../../../../') @@ -52,7 +56,7 @@ class ResultToolTests(OESelftestTestCase): 'test4': {'status': 'ERROR'}, 'test5': {'status': 'SKIPPED'}}} report = ResultsTextReport() - result_report = report.get_aggregated_test_result(None, result_data) + result_report = report.get_aggregated_test_result(None, result_data, 'DummyMachine') self.assertTrue(result_report['passed'] == 2, msg="Passed count not correct:%s" % result_report['passed']) self.assertTrue(result_report['failed'] == 2, msg="Failed count not correct:%s" % result_report['failed']) self.assertTrue(result_report['skipped'] == 1, msg="Skipped count not correct:%s" % result_report['skipped']) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/runcmd.py b/external/poky/meta/lib/oeqa/selftest/cases/runcmd.py index d76d7063..a5ef1ea9 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/runcmd.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/runcmd.py @@ -1,7 +1,10 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd from oeqa.utils import CommandError -from oeqa.core.decorator.oeid import OETestID import subprocess import threading @@ -24,63 +27,52 @@ class RunCmdTests(OESelftestTestCase): # The delta is intentionally smaller than the timeout, to detect cases where # we incorrectly apply the timeout more than once. - TIMEOUT = 2 - DELTA = 1 + TIMEOUT = 5 + DELTA = 3 - @OETestID(1916) def test_result_okay(self): result = runCmd("true") self.assertEqual(result.status, 0) - @OETestID(1915) def test_result_false(self): result = runCmd("false", ignore_status=True) self.assertEqual(result.status, 1) - @OETestID(1917) def test_shell(self): # A shell is used for all string commands. result = runCmd("false; true", ignore_status=True) self.assertEqual(result.status, 0) - @OETestID(1910) def test_no_shell(self): self.assertRaises(FileNotFoundError, runCmd, "false; true", shell=False) - @OETestID(1906) def test_list_not_found(self): self.assertRaises(FileNotFoundError, runCmd, ["false; true"]) - @OETestID(1907) def test_list_okay(self): result = runCmd(["true"]) self.assertEqual(result.status, 0) - @OETestID(1913) def test_result_assertion(self): self.assertRaisesRegexp(AssertionError, "Command 'echo .* false' returned non-zero exit status 1:\nfoobar", runCmd, "echo foobar >&2; false", shell=True) - @OETestID(1914) def test_result_exception(self): self.assertRaisesRegexp(CommandError, "Command 'echo .* false' returned non-zero exit status 1 with output: foobar", runCmd, "echo foobar >&2; false", shell=True, assert_error=False) - @OETestID(1911) def test_output(self): result = runCmd("echo stdout; echo stderr >&2", shell=True) self.assertEqual("stdout\nstderr", result.output) self.assertEqual("", result.error) - @OETestID(1912) def test_output_split(self): result = runCmd("echo stdout; echo stderr >&2", shell=True, stderr=subprocess.PIPE) self.assertEqual("stdout", result.output) self.assertEqual("stderr", result.error) - @OETestID(1920) def test_timeout(self): numthreads = threading.active_count() start = time.time() @@ -89,9 +81,8 @@ class RunCmdTests(OESelftestTestCase): 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())) - @OETestID(1921) def test_timeout_split(self): numthreads = threading.active_count() start = time.time() @@ -100,16 +91,15 @@ class RunCmdTests(OESelftestTestCase): 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())) - @OETestID(1918) def test_stdin(self): numthreads = threading.active_count() result = runCmd("cat", data=b"hello world", timeout=self.TIMEOUT) 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) - @OETestID(1919) def test_stdin_timeout(self): numthreads = threading.active_count() start = time.time() @@ -117,16 +107,14 @@ class RunCmdTests(OESelftestTestCase): 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())) - @OETestID(1908) def test_log(self): log = MemLogger() result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log) self.assertEqual(["Running: echo stdout; echo stderr >&2", "stdout", "stderr"], log.info_msgs) self.assertEqual([], log.error_msgs) - @OETestID(1909) def test_log_split(self): log = MemLogger() result = runCmd("echo stdout; echo stderr >&2", shell=True, output_log=log, stderr=subprocess.PIPE) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/runqemu.py b/external/poky/meta/lib/oeqa/selftest/cases/runqemu.py index f69d4706..7e676bcb 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/runqemu.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/runqemu.py @@ -1,14 +1,16 @@ # # Copyright (c) 2017 Wind River Systems, Inc. # +# SPDX-License-Identifier: MIT +# import re import tempfile import time import oe.types +from oeqa.core.decorator import OETestTag from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import bitbake, runqemu, get_bb_var, runCmd -from oeqa.core.decorator.oeid import OETestID class RunqemuTests(OESelftestTestCase): """Runqemu test class""" @@ -42,7 +44,6 @@ SYSLINUX_TIMEOUT = "10" bitbake(self.recipe) RunqemuTests.image_is_ready = True - @OETestID(2001) def test_boot_machine(self): """Test runqemu machine""" cmd = "%s %s" % (self.cmd_common, self.machine) @@ -50,7 +51,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read())) - @OETestID(2002) def test_boot_machine_ext4(self): """Test runqemu machine ext4""" cmd = "%s %s ext4" % (self.cmd_common, self.machine) @@ -58,7 +58,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn('rootfs.ext4', f.read(), "Failed: %s" % cmd) - @OETestID(2003) def test_boot_machine_iso(self): """Test runqemu machine iso""" cmd = "%s %s iso" % (self.cmd_common, self.machine) @@ -66,7 +65,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn('media=cdrom', f.read(), "Failed: %s" % cmd) - @OETestID(2004) def test_boot_recipe_image(self): """Test runqemu recipe-image""" cmd = "%s %s" % (self.cmd_common, self.recipe) @@ -75,7 +73,6 @@ SYSLINUX_TIMEOUT = "10" self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read())) - @OETestID(2005) def test_boot_recipe_image_vmdk(self): """Test runqemu recipe-image vmdk""" cmd = "%s %s wic.vmdk" % (self.cmd_common, self.recipe) @@ -83,7 +80,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn('format=vmdk', f.read(), "Failed: %s" % cmd) - @OETestID(2006) def test_boot_recipe_image_vdi(self): """Test runqemu recipe-image vdi""" cmd = "%s %s wic.vdi" % (self.cmd_common, self.recipe) @@ -91,7 +87,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn('format=vdi', f.read(), "Failed: %s" % cmd) - @OETestID(2007) def test_boot_deploy(self): """Test runqemu deploy_dir_image""" cmd = "%s %s" % (self.cmd_common, self.deploy_dir_image) @@ -100,7 +95,6 @@ SYSLINUX_TIMEOUT = "10" self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read())) - @OETestID(2008) def test_boot_deploy_hddimg(self): """Test runqemu deploy_dir_image hddimg""" cmd = "%s %s hddimg" % (self.cmd_common, self.deploy_dir_image) @@ -108,7 +102,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertTrue(re.search('file=.*.hddimg', f.read()), "Failed: %s, %s" % (cmd, f.read())) - @OETestID(2009) def test_boot_machine_slirp(self): """Test runqemu machine slirp""" cmd = "%s slirp %s" % (self.cmd_common, self.machine) @@ -116,7 +109,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn(' -netdev user', f.read(), "Failed: %s" % cmd) - @OETestID(2009) def test_boot_machine_slirp_qcow2(self): """Test runqemu machine slirp qcow2""" cmd = "%s slirp wic.qcow2 %s" % (self.cmd_common, self.machine) @@ -124,7 +116,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertIn('format=qcow2', f.read(), "Failed: %s" % cmd) - @OETestID(2010) def test_boot_qemu_boot(self): """Test runqemu /path/to/image.qemuboot.conf""" qemuboot_conf = "%s-%s.qemuboot.conf" % (self.recipe, self.machine) @@ -136,7 +127,6 @@ SYSLINUX_TIMEOUT = "10" with open(qemu.qemurunnerlog) as f: self.assertTrue(qemu.runner.logged, "Failed: %s, %s" % (cmd, f.read())) - @OETestID(2011) def test_boot_rootfs(self): """Test runqemu /path/to/rootfs.ext4""" rootfs = "%s-%s.ext4" % (self.recipe, self.machine) @@ -158,6 +148,7 @@ SYSLINUX_TIMEOUT = "10" # dedicated for MACHINE=qemux86-64 where it test that qemux86-64 will # bootup various filesystem types, including live image(iso and hddimg) # where live image was not supported on all qemu architecture. +@OETestTag("machine") class QemuTest(OESelftestTestCase): @classmethod diff --git a/external/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/external/poky/meta/lib/oeqa/selftest/cases/runtime_test.py index 906e460d..60cb2e01 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/runtime_test.py @@ -1,11 +1,16 @@ +# +# SPDX-License-Identifier: MIT +# + from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu from oeqa.utils.sshcontrol import SSHControl -from oeqa.core.decorator.oeid import OETestID import os import re import tempfile import shutil +import oe.lsb +from oeqa.core.decorator.data import skipIfNotQemu class TestExport(OESelftestTestCase): @@ -14,7 +19,6 @@ class TestExport(OESelftestTestCase): runCmd("rm -rf /tmp/sdk") super(TestExport, cls).tearDownClass() - @OETestID(1499) def test_testexport_basic(self): """ Summary: Check basic testexport functionality with only ping test enabled. @@ -54,7 +58,6 @@ class TestExport(OESelftestTestCase): # Verify ping test was succesful self.assertEqual(0, result.status, 'oe-test runtime returned a non 0 status') - @OETestID(1641) def test_testexport_sdk(self): """ Summary: Check sdk functionality for testexport. @@ -109,7 +112,6 @@ class TestExport(OESelftestTestCase): class TestImage(OESelftestTestCase): - @OETestID(1644) def test_testimage_install(self): """ Summary: Check install packages functionality for testimage/testexport. @@ -130,7 +132,6 @@ class TestImage(OESelftestTestCase): bitbake('core-image-full-cmdline socat') bitbake('-c testimage core-image-full-cmdline') - @OETestID(1883) def test_testimage_dnf(self): """ Summary: Check package feeds functionality for dnf @@ -153,6 +154,7 @@ class TestImage(OESelftestTestCase): # Enable package feed signing 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")) features += 'INHERIT += "sign_package_feed"\n' @@ -165,13 +167,124 @@ class TestImage(OESelftestTestCase): bitbake('core-image-full-cmdline socat') bitbake('-c testimage core-image-full-cmdline') - # remove the oeqa-feed-sign temporal directory - shutil.rmtree(self.gpg_home, ignore_errors=True) + def test_testimage_virgl_gtk_sdl(self): + """ + 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 + Author: Alexander Kanavin + """ + if "DISPLAY" not in os.environ: + self.skipTest("virgl gtk test must be run inside a X session") + distro = oe.lsb.distro_identifier() + if distro and distro == 'debian-8': + self.skipTest('virgl isn\'t working with Debian 8') + if distro and distro == 'centos-7': + self.skipTest('virgl isn\'t working with Centos 7') + if distro and distro == 'opensuseleap-15.0': + self.skipTest('virgl isn\'t working with Opensuse 15.0') + + qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native') + sdl_packageconfig = get_bb_var('PACKAGECONFIG', 'libsdl2-native') + features = 'INHERIT += "testimage"\n' + if 'gtk+' not in qemu_packageconfig: + features += 'PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"\n' + if 'sdl' not in qemu_packageconfig: + features += 'PACKAGECONFIG_append_pn-qemu-system-native = " sdl"\n' + if 'virglrenderer' not in qemu_packageconfig: + features += 'PACKAGECONFIG_append_pn-qemu-system-native = " virglrenderer"\n' + if 'glx' not in qemu_packageconfig: + features += 'PACKAGECONFIG_append_pn-qemu-system-native = " glx"\n' + if 'opengl' not in sdl_packageconfig: + features += 'PACKAGECONFIG_append_pn-libsdl2-native = " opengl"\n' + features += 'TEST_SUITES = "ping ssh virgl"\n' + features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n' + features += 'IMAGE_INSTALL_append = " kmscube"\n' + 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') + + def test_testimage_virgl_headless(self): + """ + Summary: Check host-assisted accelerate OpenGL functionality in qemu with egl-headless frontend + 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 + Author: Alexander Kanavin + """ + import subprocess, os + try: + content = os.listdir("/dev/dri") + if len([i for i in content if i.startswith('render')]) == 0: + self.skipTest("No render nodes found in /dev/dri: %s" %(content)) + except FileNotFoundError: + self.skipTest("/dev/dri directory does not exist; no render nodes available on this machine.") + try: + 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') + 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' + features += 'TEST_SUITES = "ping ssh virgl"\n' + features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n' + features += 'IMAGE_INSTALL_append = " kmscube"\n' + features += 'TEST_RUNQEMUPARAMS = "egl-headless"\n' + self.write_config(features) + bitbake('core-image-minimal') + bitbake('-c testimage core-image-minimal') class Postinst(OESelftestTestCase): - @OETestID(1540) - @OETestID(1545) - 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 @@ -185,46 +298,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): @@ -261,3 +360,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/external/poky/meta/lib/oeqa/selftest/cases/selftest.py b/external/poky/meta/lib/oeqa/selftest/cases/selftest.py index 4b3cb144..af080dcf 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/selftest.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/selftest.py @@ -1,12 +1,14 @@ +# +# SPDX-License-Identifier: MIT +# + import importlib from oeqa.utils.commands import runCmd import oeqa.selftest from oeqa.selftest.case import OESelftestTestCase -from oeqa.core.decorator.oeid import OETestID class ExternalLayer(OESelftestTestCase): - @OETestID(1885) def test_list_imported(self): """ Summary: Checks functionality to import tests from other layers. diff --git a/external/poky/meta/lib/oeqa/selftest/cases/signing.py b/external/poky/meta/lib/oeqa/selftest/cases/signing.py index 4fa99acb..202d5499 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/signing.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/signing.py @@ -1,5 +1,9 @@ +# +# SPDX-License-Identifier: MIT +# + 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 @@ -7,7 +11,6 @@ import re import shutil import tempfile from contextlib import contextmanager -from oeqa.core.decorator.oeid import OETestID from oeqa.utils.ftools import write_file @@ -27,7 +30,8 @@ class Signing(OESelftestTestCase): self.secret_key_path = os.path.join(self.testlayer_path, 'files', 'signing', "key.secret") nsysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "gnupg-native") - runCmd('gpg --batch --homedir %s --import %s %s' % (self.gpg_dir, self.pub_key_path, self.secret_key_path), native_sysroot=nsysroot) + + runCmd('gpg --agent-program=`which gpg-agent`\|--auto-expand-secmem --batch --homedir %s --import %s %s' % (self.gpg_dir, self.pub_key_path, self.secret_key_path), native_sysroot=nsysroot) return nsysroot + get_bb_var("bindir_native") @@ -51,7 +55,6 @@ class Signing(OESelftestTestCase): os.environ[e] = origenv[e] os.chdir(builddir) - @OETestID(1362) def test_signing_packages(self): """ Summary: Test that packages can be signed in the package feed @@ -116,7 +119,6 @@ class Signing(OESelftestTestCase): bitbake('core-image-minimal') - @OETestID(1382) def test_signing_sstate_archive(self): """ Summary: Test that sstate archives can be signed @@ -155,8 +157,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.') @@ -169,7 +171,6 @@ class Signing(OESelftestTestCase): class LockedSignatures(OESelftestTestCase): - @OETestID(1420) def test_locked_signatures(self): """ Summary: Test locked signature mechanism @@ -179,11 +180,11 @@ class LockedSignatures(OESelftestTestCase): AutomatedBy: Daniel Istrate """ + import uuid + 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) @@ -195,21 +196,29 @@ 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) - feature = 'SUMMARY += "test locked signature"\n' + 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) # Verify you get the warning and that the real task *isn't* run (i.e. the locked signature has worked) - patt = r'WARNING: The %s:do_package sig is computed to be \S+, but the sig is locked to \S+ in SIGGEN_LOCKEDSIGS\S+' % test_recipe + patt = r'The %s:do_package sig is computed to be \S+, but the sig is locked to \S+ in SIGGEN_LOCKEDSIGS\S+' % test_recipe found_warn = re.search(patt, ret.output) self.assertIsNotNone(found_warn, "Didn't find the expected warning message. Output: %s" % ret.output) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/sstate.py b/external/poky/meta/lib/oeqa/selftest/cases/sstate.py index bc2fdbd8..80ce9e35 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/sstate.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/sstate.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import datetime import unittest import os @@ -52,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/external/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/external/poky/meta/lib/oeqa/selftest/cases/sstatetests.py index 077d6e53..c46e8ba4 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import shutil import glob @@ -7,7 +11,6 @@ import tempfile from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer, create_temp_layer from oeqa.selftest.cases.sstate import SStateBase -from oeqa.core.decorator.oeid import OETestID import bb.siggen @@ -16,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 @@ -73,19 +79,15 @@ class SStateTests(SStateBase): else: self.assertTrue(not file_tracker , msg="Found sstate files in the wrong place for: %s (found %s)" % (', '.join(map(str, targets)), str(file_tracker))) - @OETestID(975) def test_sstate_creation_distro_specific_pass(self): self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True) - @OETestID(1374) def test_sstate_creation_distro_specific_fail(self): self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False) - @OETestID(976) def test_sstate_creation_distro_nonspecific_pass(self): self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) - @OETestID(1375) def test_sstate_creation_distro_nonspecific_fail(self): self.run_test_sstate_creation(['linux-libc-headers'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) @@ -96,27 +98,24 @@ class SStateTests(SStateBase): bitbake(['-ccleansstate'] + targets) bitbake(targets) - tgz_created = self.search_sstate('|'.join(map(str, [s + '.*?\.tgz$' for s in targets])), distro_specific, distro_nonspecific) + tgz_created = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific, distro_nonspecific) self.assertTrue(tgz_created, msg="Could not find sstate .tgz files for: %s (%s)" % (', '.join(map(str, targets)), str(tgz_created))) - siginfo_created = self.search_sstate('|'.join(map(str, [s + '.*?\.siginfo$' for s in targets])), distro_specific, distro_nonspecific) + siginfo_created = self.search_sstate('|'.join(map(str, [s + r'.*?\.siginfo$' for s in targets])), distro_specific, distro_nonspecific) self.assertTrue(siginfo_created, msg="Could not find sstate .siginfo files for: %s (%s)" % (', '.join(map(str, targets)), str(siginfo_created))) bitbake(['-ccleansstate'] + targets) - tgz_removed = self.search_sstate('|'.join(map(str, [s + '.*?\.tgz$' for s in targets])), distro_specific, distro_nonspecific) + tgz_removed = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific, distro_nonspecific) self.assertTrue(not tgz_removed, msg="do_cleansstate didn't remove .tgz sstate files for: %s (%s)" % (', '.join(map(str, targets)), str(tgz_removed))) - @OETestID(977) def test_cleansstate_task_distro_specific_nonspecific(self): targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native'] targets.append('linux-libc-headers') self.run_test_cleansstate_task(targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True) - @OETestID(1376) def test_cleansstate_task_distro_nonspecific(self): self.run_test_cleansstate_task(['linux-libc-headers'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) - @OETestID(1377) def test_cleansstate_task_distro_specific(self): targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native'] targets.append('linux-libc-headers') @@ -130,14 +129,14 @@ class SStateTests(SStateBase): bitbake(['-ccleansstate'] + targets) bitbake(targets) - results = self.search_sstate('|'.join(map(str, [s + '.*?\.tgz$' for s in targets])), distro_specific=False, distro_nonspecific=True) + results = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=False, distro_nonspecific=True) filtered_results = [] for r in results: if r.endswith(("_populate_lic.tgz", "_populate_lic.tgz.siginfo")): continue filtered_results.append(r) self.assertTrue(filtered_results == [], msg="Found distro non-specific sstate for: %s (%s)" % (', '.join(map(str, targets)), str(filtered_results))) - file_tracker_1 = self.search_sstate('|'.join(map(str, [s + '.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) + file_tracker_1 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) self.assertTrue(len(file_tracker_1) >= len(targets), msg = "Not all sstate files ware created for: %s" % ', '.join(map(str, targets))) self.track_for_cleanup(self.distro_specific_sstate + "_old") @@ -146,7 +145,7 @@ class SStateTests(SStateBase): bitbake(['-cclean'] + targets) bitbake(targets) - file_tracker_2 = self.search_sstate('|'.join(map(str, [s + '.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) + file_tracker_2 = self.search_sstate('|'.join(map(str, [s + r'.*?\.tgz$' for s in targets])), distro_specific=True, distro_nonspecific=False) self.assertTrue(len(file_tracker_2) >= len(targets), msg = "Not all sstate files ware created for: %s" % ', '.join(map(str, targets))) not_recreated = [x for x in file_tracker_1 if x not in file_tracker_2] @@ -155,15 +154,12 @@ class SStateTests(SStateBase): created_once = [x for x in file_tracker_2 if x not in file_tracker_1] self.assertTrue(created_once == [], msg="The following sstate files ware created only in the second run: %s" % ', '.join(map(str, created_once))) - @OETestID(175) def test_rebuild_distro_specific_sstate_cross_native_targets(self): self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch, 'binutils-native'], temp_sstate_location=True) - @OETestID(1372) def test_rebuild_distro_specific_sstate_cross_target(self): self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch], temp_sstate_location=True) - @OETestID(1373) def test_rebuild_distro_specific_sstate_native_target(self): self.run_test_rebuild_distro_specific_sstate(['binutils-native'], temp_sstate_location=True) @@ -192,25 +188,24 @@ class SStateTests(SStateBase): if not sstate_arch in sstate_archs_list: sstate_archs_list.append(sstate_arch) if target_config[idx] == target_config[-1]: - target_sstate_before_build = self.search_sstate(target + '.*?\.tgz$') + target_sstate_before_build = self.search_sstate(target + r'.*?\.tgz$') bitbake("-cclean %s" % target) result = bitbake(target, ignore_status=True) if target_config[idx] == target_config[-1]: - target_sstate_after_build = self.search_sstate(target + '.*?\.tgz$') + target_sstate_after_build = self.search_sstate(target + r'.*?\.tgz$') expected_remaining_sstate += [x for x in target_sstate_after_build if x not in target_sstate_before_build if not any(pattern in x for pattern in ignore_patterns)] self.remove_config(global_config[idx]) self.remove_recipeinc(target, target_config[idx]) self.assertEqual(result.status, 0, msg = "build of %s failed with %s" % (target, result.output)) runCmd("sstate-cache-management.sh -y --cache-dir=%s --remove-duplicated --extra-archs=%s" % (self.sstate_path, ','.join(map(str, sstate_archs_list)))) - actual_remaining_sstate = [x for x in self.search_sstate(target + '.*?\.tgz$') if not any(pattern in x for pattern in ignore_patterns)] + actual_remaining_sstate = [x for x in self.search_sstate(target + r'.*?\.tgz$') if not any(pattern in x for pattern in ignore_patterns)] actual_not_expected = [x for x in actual_remaining_sstate if x not in expected_remaining_sstate] self.assertFalse(actual_not_expected, msg="Files should have been removed but ware not: %s" % ', '.join(map(str, actual_not_expected))) expected_not_actual = [x for x in expected_remaining_sstate if x not in actual_remaining_sstate] self.assertFalse(expected_not_actual, msg="Extra files ware removed: %s" ', '.join(map(str, expected_not_actual))) - @OETestID(973) def test_sstate_cache_management_script_using_pr_1(self): global_config = [] target_config = [] @@ -218,7 +213,6 @@ class SStateTests(SStateBase): target_config.append('PR = "0"') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) - @OETestID(978) def test_sstate_cache_management_script_using_pr_2(self): global_config = [] target_config = [] @@ -228,7 +222,6 @@ class SStateTests(SStateBase): target_config.append('PR = "1"') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) - @OETestID(979) def test_sstate_cache_management_script_using_pr_3(self): global_config = [] target_config = [] @@ -240,7 +233,6 @@ class SStateTests(SStateBase): target_config.append('PR = "1"') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) - @OETestID(974) def test_sstate_cache_management_script_using_machine(self): global_config = [] target_config = [] @@ -250,7 +242,6 @@ class SStateTests(SStateBase): target_config.append('') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) - @OETestID(1270) def test_sstate_32_64_same_hash(self): """ The sstate checksums for both native and target should not vary whether @@ -267,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") @@ -278,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") @@ -299,7 +292,6 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb" self.assertCountEqual(files1, files2) - @OETestID(1271) def test_sstate_nativelsbstring_same_hash(self): """ The sstate checksums should be independent of whichever NATIVELSBSTRING is @@ -311,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") @@ -318,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") @@ -333,7 +327,6 @@ NATIVELSBSTRING = \"DistroB\" self.maxDiff = None self.assertCountEqual(files1, files2) - @OETestID(1368) def test_sstate_allarch_samesigs(self): """ The sstate checksums of allarch packages should be independent of whichever @@ -346,15 +339,16 @@ 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) - @OETestID(1645) def test_sstate_nativesdk_samesigs_multilib(self): """ check nativesdk stamps are the same between the two MACHINE values. @@ -367,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\" @@ -374,6 +369,7 @@ TCLIBCAPPEND = \"\" MACHINE = \"qemuarm\" require conf/multilib.conf MULTILIBS = \"\" +BB_SIGNATURE_HANDLER = "OEBasicHash" """ self.sstate_allarch_samesigs(configA, configB) @@ -405,7 +401,6 @@ MULTILIBS = \"\" self.maxDiff = None self.assertEqual(files1, files2) - @OETestID(1369) def test_sstate_sametune_samesigs(self): """ The sstate checksums of two identical machines (using the same tune) should be the @@ -420,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") @@ -430,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") @@ -452,7 +449,46 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86" self.assertCountEqual(files1, files2) - @OETestID(1498) + 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 @@ -469,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") @@ -485,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/external/poky/meta/lib/oeqa/selftest/cases/sysroot.py b/external/poky/meta/lib/oeqa/selftest/cases/sysroot.py new file mode 100644 index 00000000..6e34927c --- /dev/null +++ b/external/poky/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/external/poky/meta/lib/oeqa/selftest/cases/tinfoil.py b/external/poky/meta/lib/oeqa/selftest/cases/tinfoil.py index f889a47b..d1aa7b9a 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/tinfoil.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/tinfoil.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import time @@ -6,12 +10,10 @@ import bb.tinfoil from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd -from oeqa.core.decorator.oeid import OETestID class TinfoilTests(OESelftestTestCase): """ Basic tests for the tinfoil API """ - @OETestID(1568) def test_getvar(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(True) @@ -19,7 +21,6 @@ class TinfoilTests(OESelftestTestCase): if not machine: self.fail('Unable to get MACHINE value - returned %s' % machine) - @OETestID(1569) def test_expand(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(True) @@ -28,7 +29,6 @@ class TinfoilTests(OESelftestTestCase): if not pid: self.fail('Unable to expand "%s" - returned %s' % (expr, pid)) - @OETestID(1570) def test_getvar_bb_origenv(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(True) @@ -37,7 +37,6 @@ class TinfoilTests(OESelftestTestCase): self.fail('Unable to get BB_ORIGENV value - returned %s' % origenv) self.assertEqual(origenv.getVar('HOME', False), os.environ['HOME']) - @OETestID(1571) def test_parse_recipe(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=False, quiet=2) @@ -48,7 +47,6 @@ class TinfoilTests(OESelftestTestCase): rd = tinfoil.parse_recipe_file(best[3]) self.assertEqual(testrecipe, rd.getVar('PN')) - @OETestID(1572) def test_parse_recipe_copy_expand(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=False, quiet=2) @@ -67,21 +65,6 @@ class TinfoilTests(OESelftestTestCase): localdata.setVar('PN', 'hello') self.assertEqual('hello', localdata.getVar('BPN')) - @OETestID(1573) - 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')) - - @OETestID(1574) def test_list_recipes(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=False, quiet=2) @@ -100,7 +83,6 @@ class TinfoilTests(OESelftestTestCase): if checkpns: self.fail('Unable to find pkg_fn entries for: %s' % ', '.join(checkpns)) - @OETestID(1575) def test_wait_event(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=True) @@ -136,7 +118,6 @@ class TinfoilTests(OESelftestTestCase): self.assertTrue(commandcomplete, 'Timed out waiting for CommandCompleted event from bitbake server') self.assertTrue(eventreceived, 'Did not receive FilesMatchingFound event from bitbake server') - @OETestID(1576) def test_setvariable_clean(self): # First check that setVariable affects the datastore with bb.tinfoil.Tinfoil() as tinfoil: @@ -159,7 +140,6 @@ class TinfoilTests(OESelftestTestCase): value = tinfoil.run_command('getVariable', 'TESTVAR') self.assertEqual(value, 'specialvalue', 'Value set using config_data.setVar() is not reflected in config_data.getVar()') - @OETestID(1884) def test_datastore_operations(self): with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=True) diff --git a/external/poky/meta/lib/oeqa/selftest/cases/wic.py b/external/poky/meta/lib/oeqa/selftest/cases/wic.py index 79925f94..626a217e 100644 --- a/external/poky/meta/lib/oeqa/selftest/cases/wic.py +++ b/external/poky/meta/lib/oeqa/selftest/cases/wic.py @@ -1,22 +1,7 @@ -#!/usr/bin/env python -# ex:ts=4:sw=4:sts=4:et -# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- # # Copyright (c) 2015, Intel Corporation. -# All rights reserved. # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# 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., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# SPDX-License-Identifier: GPL-2.0-only # # AUTHORS # Ed Bartosh @@ -34,7 +19,6 @@ from tempfile import NamedTemporaryFile from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu -from oeqa.core.decorator.oeid import OETestID @lru_cache(maxsize=32) @@ -60,6 +44,24 @@ 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')] + class WicTestCase(OESelftestTestCase): """Wic test class.""" @@ -103,63 +105,51 @@ class WicTestCase(OESelftestTestCase): class Wic(WicTestCase): - @OETestID(1552) def test_version(self): """Test wic --version""" runCmd('wic --version') - @OETestID(1208) def test_help(self): """Test wic --help and wic -h""" runCmd('wic --help') runCmd('wic -h') - @OETestID(1209) def test_createhelp(self): """Test wic create --help""" runCmd('wic create --help') - @OETestID(1210) def test_listhelp(self): """Test wic list --help""" runCmd('wic list --help') - @OETestID(1553) def test_help_create(self): """Test wic help create""" runCmd('wic help create') - @OETestID(1554) def test_help_list(self): """Test wic help list""" runCmd('wic help list') - @OETestID(1215) def test_help_overview(self): """Test wic help overview""" runCmd('wic help overview') - @OETestID(1216) def test_help_plugins(self): """Test wic help plugins""" runCmd('wic help plugins') - @OETestID(1217) def test_help_kickstart(self): """Test wic help kickstart""" runCmd('wic help kickstart') - @OETestID(1555) def test_list_images(self): """Test wic list images""" runCmd('wic list images') - @OETestID(1556) def test_list_source_plugins(self): """Test wic list source-plugins""" runCmd('wic list source-plugins') - @OETestID(1557) def test_listed_images_help(self): """Test wic listed images help""" output = runCmd('wic list images').output @@ -167,24 +157,20 @@ class Wic(WicTestCase): for image in imagelist: runCmd('wic list %s help' % image) - @OETestID(1213) def test_unsupported_subcommand(self): """Test unsupported subcommand""" self.assertNotEqual(0, runCmd('wic unsupported', ignore_status=True).status) - @OETestID(1214) def test_no_command(self): """Test wic without command""" self.assertEqual(1, runCmd('wic', ignore_status=True).status) - @OETestID(1211) def test_build_image_name(self): """Test wic create wictestdisk --image-name=core-image-minimal""" cmd = "wic create wictestdisk --image-name=core-image-minimal -o %s" % self.resultdir runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1157) @only_for_arch(['i586', 'i686', 'x86_64']) def test_gpt_image(self): """Test creation of core-image-minimal with gpt table and UUID boot""" @@ -192,7 +178,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) - @OETestID(1346) @only_for_arch(['i586', 'i686', 'x86_64']) def test_iso_image(self): """Test creation of hybrid iso image with legacy and EFI boot""" @@ -207,7 +192,6 @@ class Wic(WicTestCase): self.assertEqual(1, len(glob(self.resultdir + "HYBRID_ISO_IMG-*.direct"))) self.assertEqual(1, len(glob(self.resultdir + "HYBRID_ISO_IMG-*.iso"))) - @OETestID(1348) @only_for_arch(['i586', 'i686', 'x86_64']) def test_qemux86_directdisk(self): """Test creation of qemux-86-directdisk image""" @@ -215,7 +199,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "qemux86-directdisk-*direct"))) - @OETestID(1350) @only_for_arch(['i586', 'i686', 'x86_64']) def test_mkefidisk(self): """Test creation of mkefidisk image""" @@ -223,7 +206,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "mkefidisk-*direct"))) - @OETestID(1385) @only_for_arch(['i586', 'i686', 'x86_64']) def test_bootloader_config(self): """Test creation of directdisk-bootloader-config image""" @@ -235,7 +217,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "directdisk-bootloader-config-*direct"))) - @OETestID(1560) @only_for_arch(['i586', 'i686', 'x86_64']) def test_systemd_bootdisk(self): """Test creation of systemd-bootdisk image""" @@ -247,7 +228,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "systemd-bootdisk-*direct"))) - @OETestID(1561) def test_sdimage_bootpart(self): """Test creation of sdimage-bootpart image""" cmd = "wic create sdimage-bootpart -e core-image-minimal -o %s" % self.resultdir @@ -256,7 +236,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob(self.resultdir + "sdimage-bootpart-*direct"))) - @OETestID(1562) @only_for_arch(['i586', 'i686', 'x86_64']) def test_default_output_dir(self): """Test default output location""" @@ -270,7 +249,6 @@ class Wic(WicTestCase): runCmd(cmd) self.assertEqual(1, len(glob("directdisk-*.direct"))) - @OETestID(1212) @only_for_arch(['i586', 'i686', 'x86_64']) def test_build_artifacts(self): """Test wic create directdisk providing all artifacts.""" @@ -288,7 +266,6 @@ class Wic(WicTestCase): "-o %(resultdir)s" % bbvars) self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) - @OETestID(1264) def test_compress_gzip(self): """Test compressing an image with gzip""" runCmd("wic create wictestdisk " @@ -296,7 +273,6 @@ class Wic(WicTestCase): "-c gzip -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct.gz"))) - @OETestID(1265) def test_compress_bzip2(self): """Test compressing an image with bzip2""" runCmd("wic create wictestdisk " @@ -304,7 +280,6 @@ class Wic(WicTestCase): "-c bzip2 -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct.bz2"))) - @OETestID(1266) def test_compress_xz(self): """Test compressing an image with xz""" runCmd("wic create wictestdisk " @@ -312,7 +287,6 @@ class Wic(WicTestCase): "--compress-with=xz -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct.xz"))) - @OETestID(1267) def test_wrong_compressor(self): """Test how wic breaks if wrong compressor is provided""" self.assertEqual(2, runCmd("wic create wictestdisk " @@ -320,7 +294,6 @@ class Wic(WicTestCase): "-c wrong -o %s" % self.resultdir, ignore_status=True).status) - @OETestID(1558) def test_debug_short(self): """Test -D option""" runCmd("wic create wictestdisk " @@ -328,7 +301,6 @@ class Wic(WicTestCase): "-D -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1658) def test_debug_long(self): """Test --debug option""" runCmd("wic create wictestdisk " @@ -336,7 +308,6 @@ class Wic(WicTestCase): "--debug -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1563) def test_skip_build_check_short(self): """Test -s option""" runCmd("wic create wictestdisk " @@ -344,7 +315,6 @@ class Wic(WicTestCase): "-s -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1671) def test_skip_build_check_long(self): """Test --skip-build-check option""" runCmd("wic create wictestdisk " @@ -353,7 +323,6 @@ class Wic(WicTestCase): "--outdir %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1564) def test_build_rootfs_short(self): """Test -f option""" runCmd("wic create wictestdisk " @@ -361,7 +330,6 @@ class Wic(WicTestCase): "-f -o %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1656) def test_build_rootfs_long(self): """Test --build-rootfs option""" runCmd("wic create wictestdisk " @@ -370,7 +338,6 @@ class Wic(WicTestCase): "--outdir %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*.direct"))) - @OETestID(1268) @only_for_arch(['i586', 'i686', 'x86_64']) def test_rootfs_indirect_recipes(self): """Test usage of rootfs plugin with rootfs recipes""" @@ -381,7 +348,6 @@ class Wic(WicTestCase): "--outdir %s" % self.resultdir) self.assertEqual(1, len(glob(self.resultdir + "directdisk-multi-rootfs*.direct"))) - @OETestID(1269) @only_for_arch(['i586', 'i686', 'x86_64']) def test_rootfs_artifacts(self): """Test usage of rootfs plugin with rootfs paths""" @@ -401,7 +367,6 @@ class Wic(WicTestCase): "--outdir %(resultdir)s" % bbvars) self.assertEqual(1, len(glob(self.resultdir + "%(wks)s-*.direct" % bbvars))) - @OETestID(1661) def test_exclude_path(self): """Test --exclude-path wks option.""" @@ -446,24 +411,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" % \ @@ -504,7 +451,43 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r finally: os.environ['PATH'] = oldpath - @OETestID(1662) + 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) + + # Test partition 2, should not contain 'test-file' + res = runCmd("debugfs -R 'ls -p' %s 2>/dev/null" % (part2)) + files = extract_files(res.output) + self.assertIn('test-file', files) + + finally: + os.environ['PATH'] = oldpath + def test_exclude_path_errors(self): """Test --exclude-path wks option error handling.""" wks_file = 'temp.wks' @@ -525,7 +508,6 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r class Wic2(WicTestCase): - @OETestID(1496) def test_bmap_short(self): """Test generation of .bmap file -m option""" cmd = "wic create wictestdisk -e core-image-minimal -m -o %s" % self.resultdir @@ -533,7 +515,6 @@ class Wic2(WicTestCase): self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct"))) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct.bmap"))) - @OETestID(1655) def test_bmap_long(self): """Test generation of .bmap file --bmap option""" cmd = "wic create wictestdisk -e core-image-minimal --bmap -o %s" % self.resultdir @@ -541,7 +522,6 @@ class Wic2(WicTestCase): self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct"))) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct.bmap"))) - @OETestID(1347) def test_image_env(self): """Test generation of .env files.""" image = 'core-image-minimal' @@ -556,7 +536,9 @@ class Wic2(WicTestCase): wicvars = set(bb_vars['WICVARS'].split()) # filter out optional variables wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES', - 'INITRD', 'INITRD_LIVE', 'ISODIR')) + 'INITRD', 'INITRD_LIVE', 'ISODIR','INITRAMFS_IMAGE', + 'INITRAMFS_IMAGE_BUNDLE', 'INITRAMFS_LINK_NAME', + 'APPEND')) 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 @@ -564,7 +546,6 @@ class Wic2(WicTestCase): self.assertTrue(var in content, "%s is not in .env file" % var) self.assertTrue(content[var]) - @OETestID(1559) def test_image_vars_dir_short(self): """Test image vars directory selection -v option""" image = 'core-image-minimal' @@ -577,7 +558,6 @@ class Wic2(WicTestCase): self.resultdir)) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct"))) - @OETestID(1665) def test_image_vars_dir_long(self): """Test image vars directory selection --vars option""" image = 'core-image-minimal' @@ -593,7 +573,6 @@ class Wic2(WicTestCase): self.resultdir)) self.assertEqual(1, len(glob(self.resultdir + "wictestdisk-*direct"))) - @OETestID(1351) @only_for_arch(['i586', 'i686', 'x86_64']) def test_wic_image_type(self): """Test building wic images by bitbake""" @@ -614,7 +593,6 @@ class Wic2(WicTestCase): self.assertTrue(os.path.islink(path)) self.assertTrue(os.path.isfile(os.path.realpath(path))) - @OETestID(1424) @only_for_arch(['i586', 'i686', 'x86_64']) def test_qemu(self): """Test wic-image-minimal under qemu""" @@ -636,7 +614,6 @@ class Wic2(WicTestCase): self.assertEqual(output, 'UUID=2c71ef06-a81d-4735-9d3a-379b69c6bdba\t/media\text4\tdefaults\t0\t0') @only_for_arch(['i586', 'i686', 'x86_64']) - @OETestID(1852) def test_qemu_efi(self): """Test core-image-minimal efi image under qemu""" config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "mkefidisk.wks"\n' @@ -666,7 +643,6 @@ class Wic2(WicTestCase): return wkspath, wksname - @OETestID(1847) def test_fixed_size(self): """ Test creation of a simple image with partition size controlled through @@ -694,10 +670,11 @@ class Wic2(WicTestCase): # 1:0.00MiB:200MiB:200MiB:ext4::;\n partlns = res.output.splitlines()[2:] - self.assertEqual(1, len(partlns)) - self.assertEqual("1:0.00MiB:200MiB:200MiB:ext4::;", partlns[0]) + 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) - @OETestID(1848) def test_fixed_size_error(self): """ Test creation of a simple image with partition size controlled through @@ -713,7 +690,6 @@ class Wic2(WicTestCase): self.assertEqual(0, len(wicout)) @only_for_arch(['i586', 'i686', 'x86_64']) - @OETestID(1854) def test_rawcopy_plugin_qemu(self): """Test rawcopy plugin in qemu""" # build ext4 and wic images @@ -729,7 +705,6 @@ class Wic2(WicTestCase): self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) self.assertEqual(output, '2') - @OETestID(1853) def test_rawcopy_plugin(self): """Test rawcopy plugin""" img = 'core-image-minimal' @@ -746,7 +721,63 @@ class Wic2(WicTestCase): out = glob(self.resultdir + "%s-*direct" % wksname) self.assertEqual(1, len(out)) - @OETestID(1849) + @only_for_arch(['i586', 'i686', 'x86_64']) + def test_biosplusefi_plugin_qemu(self): + """Test biosplusefi plugin in qemu""" + config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_biosplusefi_plugin.wks"\nMACHINE_FEATURES_append = " efi"\n' + self.append_config(config) + self.assertEqual(0, bitbake('core-image-minimal').status) + self.remove_config(config) + + with runqemu('core-image-minimal', ssh=False, image_fstype='wic') as qemu: + # Check that we have ONLY two /dev/sda* partitions (/boot and /) + cmd = "grep sda. /proc/partitions | wc -l" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '2') + # Check that /dev/sda1 is /boot and that either /dev/root OR /dev/sda2 is / + cmd = "mount | grep '^/dev/' | cut -f1,3 -d ' ' | egrep -c -e '/dev/sda1 /boot' -e '/dev/root /|/dev/sda2 /'" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '2') + # Check that /boot has EFI bootx64.efi (required for EFI) + cmd = "ls /boot/EFI/BOOT/bootx64.efi | wc -l" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '1') + # Check that "BOOTABLE" flag is set on boot partition (required for PC-Bios) + # Trailing "cat" seems to be required; otherwise run_serial() sends back echo of the input command + cmd = "fdisk -l /dev/sda | grep /dev/sda1 | awk {print'$2'} | cat" + status, output = qemu.run_serial(cmd) + self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output)) + self.assertEqual(output, '*') + + @only_for_arch(['i586', 'i686', 'x86_64']) + def test_biosplusefi_plugin(self): + """Test biosplusefi plugin""" + # Wic generation below may fail depending on the order of the unittests + # This is because bootimg-pcbios (that bootimg-biosplusefi uses) generate its MBR inside STAGING_DATADIR directory + # which may or may not exists depending on what was built already + # If an image hasn't been built yet, directory ${STAGING_DATADIR}/syslinux won't exists and _get_bootimg_dir() + # will raise with "Couldn't find correct bootimg_dir" + # The easiest way to work-around this issue is to make sure we already built an image here, hence the bitbake call + config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_biosplusefi_plugin.wks"\nMACHINE_FEATURES_append = " efi"\n' + self.append_config(config) + self.assertEqual(0, bitbake('core-image-minimal').status) + self.remove_config(config) + + img = 'core-image-minimal' + with NamedTemporaryFile("w", suffix=".wks") as wks: + wks.writelines(['part /boot --active --source bootimg-biosplusefi --sourceparams="loader=grub-efi"\n', + 'part / --source rootfs --fstype=ext4 --align 1024 --use-uuid\n'\ + 'bootloader --timeout=0 --append="console=ttyS0,115200n8"\n']) + wks.flush() + cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir) + runCmd(cmd) + wksname = os.path.splitext(os.path.basename(wks.name))[0] + out = glob(self.resultdir + "%s-*.direct" % wksname) + self.assertEqual(1, len(out)) + def test_fs_types(self): """Test filesystem types for empty and not empty partitions""" img = 'core-image-minimal' @@ -766,7 +797,6 @@ class Wic2(WicTestCase): out = glob(self.resultdir + "%s-*direct" % wksname) self.assertEqual(1, len(out)) - @OETestID(1851) def test_kickstart_parser(self): """Test wks parser options""" with NamedTemporaryFile("w", suffix=".wks") as wks: @@ -779,7 +809,6 @@ class Wic2(WicTestCase): out = glob(self.resultdir + "%s-*direct" % wksname) self.assertEqual(1, len(out)) - @OETestID(1850) def test_image_bootpart_globbed(self): """Test globbed sources with image-bootpart plugin""" img = "core-image-minimal" @@ -790,7 +819,6 @@ class Wic2(WicTestCase): self.remove_config(config) self.assertEqual(1, len(glob(self.resultdir + "sdimage-bootpart-*direct"))) - @OETestID(1855) def test_sparse_copy(self): """Test sparse_copy with FIEMAP and SEEK_HOLE filemap APIs""" libpath = os.path.join(get_bb_var('COREBASE'), 'scripts', 'lib', 'wic') @@ -819,7 +847,6 @@ class Wic2(WicTestCase): self.assertEqual(dest_stat.st_blocks, 8) os.unlink(dest) - @OETestID(1857) def test_wic_ls(self): """Test listing image content using 'wic ls'""" runCmd("wic create wictestdisk " @@ -838,7 +865,6 @@ class Wic2(WicTestCase): result = runCmd("wic ls %s:1/ -n %s" % (images[0], sysroot)) self.assertEqual(6, len(result.output.split('\n'))) - @OETestID(1856) def test_wic_cp(self): """Test copy files and directories to the the wic image.""" runCmd("wic create wictestdisk " @@ -878,7 +904,13 @@ class Wic2(WicTestCase): self.assertEqual(8, len(result.output.split('\n'))) self.assertTrue(os.path.basename(testdir) in result.output) - @OETestID(1858) + # 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 " @@ -905,7 +937,6 @@ class Wic2(WicTestCase): self.assertNotIn('\nBZIMAGE ', result.output) self.assertNotIn('\nEFI ', result.output) - @OETestID(1922) def test_mkfs_extraopts(self): """Test wks option --mkfs-extraopts for empty and not empty partitions""" img = 'core-image-minimal' @@ -1019,6 +1050,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 " @@ -1039,3 +1080,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/external/poky/meta/lib/oeqa/selftest/context.py b/external/poky/meta/lib/oeqa/selftest/context.py index c56e53dc..9baad583 100644 --- a/external/poky/meta/lib/oeqa/selftest/context.py +++ b/external/poky/meta/lib/oeqa/selftest/context.py @@ -1,30 +1,125 @@ +# # Copyright (C) 2017 Intel Corporation -# Released under the MIT license (see COPYING.MIT) +# +# SPDX-License-Identifier: MIT +# import os 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] or 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: @@ -74,7 +169,15 @@ class OESelftestTestContextExecutor(OETestContextExecutor): parser.add_argument('--machine', required=False, choices=['random', 'all'], help='Run tests on different machines (random/all).') - + + parser.add_argument('-t', '--select-tag', dest="select_tags", + action='append', default=None, + help='Filter all (unhidden) tests to any that match any of the specified tag(s).') + parser.add_argument('-T', '--exclude-tag', dest="exclude_tags", + 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.set_defaults(func=self.run) def _get_available_machines(self): @@ -125,26 +228,23 @@ 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: + if any(tag in args.exclude_tags for tag in tags): + return True + if args.select_tags: + if not tags or not any(tag in args.select_tags for tag in tags): + return True + return False + + if args.select_tags or args.exclude_tags: + self.tc_kwargs['load']['tags_filter'] = tag_filter self.tc_kwargs['run']['skips'] = args.skips self.tc_kwargs['run']['processes'] = args.processes @@ -257,14 +357,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: @@ -293,20 +388,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/external/poky/meta/lib/oeqa/targetcontrol.py b/external/poky/meta/lib/oeqa/targetcontrol.py index b98b1835..19f5a4ea 100644 --- a/external/poky/meta/lib/oeqa/targetcontrol.py +++ b/external/poky/meta/lib/oeqa/targetcontrol.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # This module is used by testimage.bbclass for setting up and controlling a target machine. @@ -115,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": @@ -141,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) @@ -173,13 +176,18 @@ class QemuTarget(BaseTarget): if os.path.exists(self.qemulog): with open(self.qemulog, 'r') as f: bb.error("Qemu log output from %s:\n%s" % (self.qemulog, f.read())) - raise bb.build.FuncFailed("%s - FAILED to start qemu - check the task log and the boot log" % self.pn) + raise RuntimeError("%s - FAILED to start qemu - check the task log and the boot log" % self.pn) def check(self): 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 @@ -190,7 +198,7 @@ class QemuTarget(BaseTarget): self.server_ip = self.runner.server_ip self.connection = SSHControl(ip=self.ip, logfile=self.sshlog) else: - raise bb.build.FuncFailed("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) + raise RuntimError("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn) def run_serial(self, command, timeout=60): return self.runner.run_serial(command, timeout=timeout) diff --git a/external/poky/meta/lib/oeqa/utils/__init__.py b/external/poky/meta/lib/oeqa/utils/__init__.py index d38a3230..70fbe7b5 100644 --- a/external/poky/meta/lib/oeqa/utils/__init__.py +++ b/external/poky/meta/lib/oeqa/utils/__init__.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: MIT +# # Enable other layers to have modules in the same named directory from pkgutil import extend_path __path__ = extend_path(__path__, __name__) diff --git a/external/poky/meta/lib/oeqa/utils/buildproject.py b/external/poky/meta/lib/oeqa/utils/buildproject.py index 01a803ab..e6d80cc8 100644 --- a/external/poky/meta/lib/oeqa/utils/buildproject.py +++ b/external/poky/meta/lib/oeqa/utils/buildproject.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2013-2016 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Provides a class for automating build tests for projects diff --git a/external/poky/meta/lib/oeqa/utils/commands.py b/external/poky/meta/lib/oeqa/utils/commands.py index 2e6a2289..f7f8c16b 100644 --- a/external/poky/meta/lib/oeqa/utils/commands.py +++ b/external/poky/meta/lib/oeqa/utils/commands.py @@ -1,6 +1,8 @@ +# # Copyright (c) 2013-2014 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # DESCRIPTION # This module is mainly used by scripts/oe-selftest and modules under meta/oeqa/selftest @@ -93,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() @@ -170,8 +174,11 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, if native_sysroot: extra_paths = "%s/sbin:%s/usr/sbin:%s/usr/bin" % \ (native_sysroot, native_sysroot, native_sysroot) + extra_libpaths = "%s/lib:%s/usr/lib" % \ + (native_sysroot, native_sysroot) nenv = dict(options.get('env', os.environ)) nenv['PATH'] = extra_paths + ':' + nenv.get('PATH', '') + nenv['LD_LIBRARY_PATH'] = extra_libpaths + ':' + nenv.get('LD_LIBRARY_PATH', '') options['env'] = nenv cmd = Command(command, timeout=timeout, output_log=output_log, **options) @@ -310,15 +317,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) @@ -335,8 +342,8 @@ def runqemu(pn, ssh=True, runqemuparams='', image_fstype=None, launch_cmd=None, qemu.deploy() try: qemu.start(params=qemuparams, ssh=ssh, runqemuparams=runqemuparams, launch_cmd=launch_cmd, discard_writes=discard_writes) - except bb.build.FuncFailed: - msg = 'Failed to start QEMU - see the logs in %s' % logdir + except Exception as e: + msg = str(e) + '\nFailed to start QEMU - see the logs in %s' % logdir if os.path.exists(qemu.qemurunnerlog): with open(qemu.qemurunnerlog, 'r') as f: msg = msg + "Qemurunner log output from %s:\n%s" % (qemu.qemurunnerlog, f.read()) @@ -346,10 +353,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/external/poky/meta/lib/oeqa/utils/decorators.py b/external/poky/meta/lib/oeqa/utils/decorators.py index d8768969..aabf4110 100644 --- a/external/poky/meta/lib/oeqa/utils/decorators.py +++ b/external/poky/meta/lib/oeqa/utils/decorators.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Some custom decorators that can be used by unittests # Most useful is skipUnlessPassed which can be used for diff --git a/external/poky/meta/lib/oeqa/utils/dump.py b/external/poky/meta/lib/oeqa/utils/dump.py index 79c22b75..09a44329 100644 --- a/external/poky/meta/lib/oeqa/utils/dump.py +++ b/external/poky/meta/lib/oeqa/utils/dump.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import sys import errno @@ -67,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/external/poky/meta/lib/oeqa/utils/ftools.py b/external/poky/meta/lib/oeqa/utils/ftools.py index a7233d4c..3093419c 100644 --- a/external/poky/meta/lib/oeqa/utils/ftools.py +++ b/external/poky/meta/lib/oeqa/utils/ftools.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import re import errno diff --git a/external/poky/meta/lib/oeqa/utils/git.py b/external/poky/meta/lib/oeqa/utils/git.py index 757e3f0c..ea35a766 100644 --- a/external/poky/meta/lib/oeqa/utils/git.py +++ b/external/poky/meta/lib/oeqa/utils/git.py @@ -1,7 +1,7 @@ # # Copyright (C) 2016 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT # """Git repository interactions""" import os diff --git a/external/poky/meta/lib/oeqa/utils/gitarchive.py b/external/poky/meta/lib/oeqa/utils/gitarchive.py index 9520b2e1..6e8040eb 100644 --- a/external/poky/meta/lib/oeqa/utils/gitarchive.py +++ b/external/poky/meta/lib/oeqa/utils/gitarchive.py @@ -4,14 +4,7 @@ # Copyright (c) 2017, Intel Corporation. # Copyright (c) 2019, Linux Foundation # -# This program is free software; you can redistribute it and/or modify it -# under the terms and conditions of the GNU General Public License, -# version 2, as published by the Free Software Foundation. -# -# This program is distributed in the hope 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. +# SPDX-License-Identifier: GPL-2.0-only # import os diff --git a/external/poky/meta/lib/oeqa/utils/httpserver.py b/external/poky/meta/lib/oeqa/utils/httpserver.py index a48d4994..58d3c3b3 100644 --- a/external/poky/meta/lib/oeqa/utils/httpserver.py +++ b/external/poky/meta/lib/oeqa/utils/httpserver.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import http.server import multiprocessing import os @@ -18,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/external/poky/meta/lib/oeqa/utils/logparser.py b/external/poky/meta/lib/oeqa/utils/logparser.py index 32fde14a..60e16d50 100644 --- a/external/poky/meta/lib/oeqa/utils/logparser.py +++ b/external/poky/meta/lib/oeqa/utils/logparser.py @@ -1,4 +1,6 @@ -#!/usr/bin/env python +# +# SPDX-License-Identifier: MIT +# import sys import os @@ -13,7 +15,7 @@ class PtestParser(object): def parse(self, logfile): test_regex = {} test_regex['PASSED'] = re.compile(r"^PASS:(.+)") - test_regex['FAILED'] = re.compile(r"^FAIL:(.+)") + test_regex['FAILED'] = re.compile(r"^FAIL:([^(]+)") test_regex['SKIPPED'] = re.compile(r"^SKIP:(.+)") section_regex = {} @@ -23,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) @@ -59,14 +68,19 @@ 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) if result: if current_section['name'] not in self.results: self.results[current_section['name']] = {} - self.results[current_section['name']][result.group(1)] = t + 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 @@ -86,3 +100,65 @@ class PtestParser(object): status = self.results[section][test_name] f.write(status + ": " + test_name + "\n") + +# ltp log parsing +class LtpParser(object): + def __init__(self): + self.results = {} + self.section = {'duration': "", 'log': ""} + + def parse(self, logfile): + test_regex = {} + test_regex['PASSED'] = re.compile(r"PASS") + test_regex['FAILED'] = re.compile(r"FAIL") + test_regex['SKIPPED'] = re.compile(r"SKIP") + + with open(logfile, errors='replace') as f: + for line in f: + for t in test_regex: + result = test_regex[t].search(line) + if result: + self.results[line.split()[0].strip()] = t + + for test in self.results: + result = self.results[test] + self.section['log'] = self.section['log'] + ("%s: %s\n" % (result.strip()[:-2], test.strip())) + + return self.results, self.section + + +# ltp Compliance log parsing +class LtpComplianceParser(object): + def __init__(self): + self.results = {} + self.section = {'duration': "", 'log': ""} + + def parse(self, logfile): + test_regex = {} + test_regex['PASSED'] = re.compile(r"^PASS") + test_regex['FAILED'] = re.compile(r"^FAIL") + test_regex['SKIPPED'] = re.compile(r"(?:UNTESTED)|(?:UNSUPPORTED)") + + section_regex = {} + section_regex['test'] = re.compile(r"^Testing") + + with open(logfile, errors='replace') as f: + for line in f: + result = section_regex['test'].search(line) + if result: + self.name = "" + self.name = line.split()[1].strip() + self.results[self.name] = "PASSED" + failed = 0 + + failed_result = test_regex['FAILED'].search(line) + if failed_result: + failed = line.split()[1].strip() + if int(failed) > 0: + self.results[self.name] = "FAILED" + + for test in self.results: + result = self.results[test] + self.section['log'] = self.section['log'] + ("%s: %s\n" % (result.strip()[:-2], test.strip())) + + return self.results, self.section diff --git a/external/poky/meta/lib/oeqa/utils/metadata.py b/external/poky/meta/lib/oeqa/utils/metadata.py index b7def772..8013aa68 100644 --- a/external/poky/meta/lib/oeqa/utils/metadata.py +++ b/external/poky/meta/lib/oeqa/utils/metadata.py @@ -1,6 +1,6 @@ # Copyright (C) 2016 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT # # Functions to get metadata from the testing host used # for analytics of test results. @@ -72,8 +72,11 @@ def git_rev_info(path): info['commit'] = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=path).decode('utf-8').strip() except subprocess.CalledProcessError: pass + try: + info['commit_count'] = int(subprocess.check_output(["git", "rev-list", "--count", "HEAD"], cwd=path).decode('utf-8').strip()) + except subprocess.CalledProcessError: + pass return info - try: repo = Repo(path, search_parent_directories=True) except (InvalidGitRepositoryError, NoSuchPathError): diff --git a/external/poky/meta/lib/oeqa/utils/network.py b/external/poky/meta/lib/oeqa/utils/network.py index 2768f6c5..59d01723 100644 --- a/external/poky/meta/lib/oeqa/utils/network.py +++ b/external/poky/meta/lib/oeqa/utils/network.py @@ -1,7 +1,11 @@ +# +# SPDX-License-Identifier: MIT +# + import socket -def get_free_port(): - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +def get_free_port(udp = False): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM if not udp else socket.SOCK_DGRAM) s.bind(('', 0)) addr = s.getsockname() s.close() diff --git a/external/poky/meta/lib/oeqa/utils/nfs.py b/external/poky/meta/lib/oeqa/utils/nfs.py new file mode 100644 index 00000000..a37686c9 --- /dev/null +++ b/external/poky/meta/lib/oeqa/utils/nfs.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: MIT +import os +import sys +import tempfile +import contextlib +import socket +from oeqa.utils.commands import bitbake, get_bb_var, Command +from oeqa.utils.network import get_free_port + +@contextlib.contextmanager +def unfs_server(directory, logger = None): + unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native") + if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")): + # build native tool + bitbake("unfs3-native -c addto_recipe_sysroot") + + exports = None + cmd = None + try: + # create the exports file + with tempfile.NamedTemporaryFile(delete = False) as exports: + exports.write("{0} (rw,no_root_squash,no_all_squash,insecure)\n".format(directory).encode()) + + # find some ports for the server + nfsport, mountport = get_free_port(udp = True), get_free_port(udp = True) + + nenv = dict(os.environ) + nenv['PATH'] = "{0}/sbin:{0}/usr/sbin:{0}/usr/bin:".format(unfs_sysroot) + nenv.get('PATH', '') + cmd = Command(["unfsd", "-d", "-p", "-N", "-e", exports.name, "-n", str(nfsport), "-m", str(mountport)], + bg = True, env = nenv, output_log = logger) + cmd.run() + yield nfsport, mountport + finally: + if cmd is not None: + cmd.stop() + if exports is not None: + # clean up exports file + os.unlink(exports.name) + diff --git a/external/poky/meta/lib/oeqa/utils/package_manager.py b/external/poky/meta/lib/oeqa/utils/package_manager.py index 1495f873..2d358f71 100644 --- a/external/poky/meta/lib/oeqa/utils/package_manager.py +++ b/external/poky/meta/lib/oeqa/utils/package_manager.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: MIT +# + import os import json import shutil diff --git a/external/poky/meta/lib/oeqa/utils/qemurunner.py b/external/poky/meta/lib/oeqa/utils/qemurunner.py index 49564f9a..519aa9aa 100644 --- a/external/poky/meta/lib/oeqa/utils/qemurunner.py +++ b/external/poky/meta/lib/oeqa/utils/qemurunner.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # This module provides a class for starting qemu images using runqemu. # It's used by testimage.bbclass. @@ -19,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)) @@ -28,10 +31,12 @@ 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): + def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds, + use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_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 @@ -51,14 +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 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) @@ -93,11 +124,10 @@ class QemuRunner: def handleSIGCHLD(self, signum, frame): if self.runqemu and self.runqemu.poll(): if self.runqemu.returncode: - self.logger.debug('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() @@ -121,7 +151,7 @@ class QemuRunner: env["DEPLOY_DIR_IMAGE"] = self.deploy_dir_image if not launch_cmd: - launch_cmd = 'runqemu %s %s ' % ('snapshot' if discard_writes else '', runqemuparams) + launch_cmd = 'runqemu %s' % ('snapshot' if discard_writes else '') if self.use_kvm: self.logger.debug('Using kvm for runqemu') launch_cmd += ' kvm' @@ -129,13 +159,18 @@ class QemuRunner: self.logger.debug('Not using kvm for runqemu') if not self.display: launch_cmd += ' nographic' - launch_cmd += ' %s %s' % (self.machine, self.rootfs) + 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]) @@ -149,11 +184,14 @@ class QemuRunner: # and analyze descendents in order to determine it. if os.path.exists(self.qemu_pidfile): os.remove(self.qemu_pidfile) - self.qemuparams = 'bootparams="{0}" qemuparams="-serial tcp:127.0.0.1:{1} -pidfile {2}"'.format(bootparams, threadport, self.qemu_pidfile) + self.qemuparams = 'bootparams="{0}" qemuparams="-pidfile {1}"'.format(bootparams, self.qemu_pidfile) if qemuparams: self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"' - launch_cmd += ' tcpserial=%s %s' % (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) @@ -199,20 +237,34 @@ 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.debug('runqemu exited with code %d' % self.runqemu.returncode) + self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode) self._dump_host() - self.logger.debug("Output from runqemu:\n%s" % self.getOutput(output)) + self.logger.warning("Output from runqemu:\n%s" % self.getOutput(output)) self.stop() 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() @@ -230,21 +282,26 @@ 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 # because is possible to have control characters cmdline = re_control_char.sub(' ', cmdline) try: - ips = re.findall(r"((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1]) - self.ip = ips[0] - self.server_ip = ips[1] + if self.use_slirp: + tcp_ports = cmdline.split("hostfwd=tcp::")[1] + host_port = tcp_ports[:tcp_ports.find('-')] + self.ip = "localhost:%s" % host_port + else: + ips = re.findall(r"((?:[0-9]{1,3}\.){3}[0-9]{1,3})", cmdline.split("ip=")[1]) + self.ip = ips[0] + self.server_ip = ips[1] 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() @@ -263,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)" % @@ -298,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 @@ -317,22 +379,22 @@ class QemuRunner: if not reachedlogin: if time.time() >= endtime: - self.logger.debug("Target didn't reach login banner in %d seconds (%s)" % + self.logger.warning("Target didn't reach login banner in %d seconds (%s)" % (self.boottime, time.strftime("%D %H:%M:%S"))) tail = lambda l: "\n".join(l.splitlines()[-25:]) bootlog = bootlog.decode("utf-8") # in case bootlog is empty, use tail qemu log store at self.msg lines = tail(bootlog if bootlog else self.msg) - self.logger.debug("Last 25 lines of text:\n%s" % lines) - self.logger.debug("Check full boot log: %s" % self.logfile) + self.logger.warning("Last 25 lines of text:\n%s" % lines) + self.logger.warning("Check full boot log: %s" % self.logfile) self._dump_host() self.stop() return False # 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) + if re.search(self.boot_patterns['search_login_succeeded'], output): self.logged = True self.logger.debug("Logged as root in serial console") if netconf: @@ -344,11 +406,11 @@ class QemuRunner: else: self.logger.debug("Couldn't configure guest networking") else: - self.logger.debug("Couldn't login into serial console" + self.logger.warning("Couldn't login into serial console" " as root using blank password") - self.logger.debug("The output:\n%s" % output) + self.logger.warning("The output:\n%s" % output) except: - self.logger.debug("Serial console failed while trying to login") + self.logger.warning("Serial console failed while trying to login") return True def stop(self): @@ -373,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() @@ -384,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() @@ -402,7 +468,7 @@ class QemuRunner: self.thread.join() def restart(self, qemuparams = None): - self.logger.debug("Restarting qemu process") + self.logger.warning("Restarting qemu process") if self.runqemu.poll() is None: self.stop() if self.start(qemuparams): @@ -410,16 +476,23 @@ 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): - f = open(self.qemu_pidfile, 'r') - qemu_pid = f.read() - f.close() - qemupid = int(qemu_pid) - if os.path.exists("/proc/" + str(qemupid)): - self.qemupid = qemupid - return True + # when handling pidfile, qemu creates the file, stat it, lock it and then write to it + # so it's possible that the file has been created but the content is empty + pidfile_timeout = time.time() + 3 + while time.time() < pidfile_timeout: + with open(self.qemu_pidfile, 'r') as f: + qemu_pid = f.read().strip() + # file created but not yet written contents + if not qemu_pid: + time.sleep(0.5) + continue + else: + if os.path.exists("/proc/" + qemu_pid): + self.qemupid = int(qemu_pid) + return True return False def run_serial(self, command, raw=False, timeout=60): @@ -446,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/external/poky/meta/lib/oeqa/utils/qemutinyrunner.py b/external/poky/meta/lib/oeqa/utils/qemutinyrunner.py index 5aa99d06..5c92941c 100644 --- a/external/poky/meta/lib/oeqa/utils/qemutinyrunner.py +++ b/external/poky/meta/lib/oeqa/utils/qemutinyrunner.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2015 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # This module provides a class for starting qemu images of poky tiny. # It's used by testimage.bbclass. @@ -136,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/external/poky/meta/lib/oeqa/utils/sshcontrol.py b/external/poky/meta/lib/oeqa/utils/sshcontrol.py index d292893c..36c2ecb3 100644 --- a/external/poky/meta/lib/oeqa/utils/sshcontrol.py +++ b/external/poky/meta/lib/oeqa/utils/sshcontrol.py @@ -1,7 +1,8 @@ -# -*- coding: utf-8 -*- +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Provides a class for setting up ssh connections, # running commands and copying files to/from a target. @@ -22,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/external/poky/meta/lib/oeqa/utils/subprocesstweak.py b/external/poky/meta/lib/oeqa/utils/subprocesstweak.py index 1f7d11b5..b47975a4 100644 --- a/external/poky/meta/lib/oeqa/utils/subprocesstweak.py +++ b/external/poky/meta/lib/oeqa/utils/subprocesstweak.py @@ -1,3 +1,6 @@ +# +# SPDX-License-Identifier: MIT +# import subprocess class OETestCalledProcessError(subprocess.CalledProcessError): diff --git a/external/poky/meta/lib/oeqa/utils/targetbuild.py b/external/poky/meta/lib/oeqa/utils/targetbuild.py index b8db7b2a..1055810c 100644 --- a/external/poky/meta/lib/oeqa/utils/targetbuild.py +++ b/external/poky/meta/lib/oeqa/utils/targetbuild.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2013 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Provides a class for automating build tests for projects diff --git a/external/poky/meta/lib/oeqa/utils/testexport.py b/external/poky/meta/lib/oeqa/utils/testexport.py index be2a2110..e89d130a 100644 --- a/external/poky/meta/lib/oeqa/utils/testexport.py +++ b/external/poky/meta/lib/oeqa/utils/testexport.py @@ -1,6 +1,8 @@ +# # Copyright (C) 2015 Intel Corporation # -# Released under the MIT license (see COPYING.MIT) +# SPDX-License-Identifier: MIT +# # Provides functions to help with exporting binaries obtained from built targets diff --git a/external/poky/meta/lib/rootfspostcommands.py b/external/poky/meta/lib/rootfspostcommands.py index 4742e061..fdb9f5b8 100644 --- a/external/poky/meta/lib/rootfspostcommands.py +++ b/external/poky/meta/lib/rootfspostcommands.py @@ -1,3 +1,7 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + import os def sort_file(filename, mapping): diff --git a/external/poky/meta/recipes-bsp/acpid/acpid.inc b/external/poky/meta/recipes-bsp/acpid/acpid.inc index 766ed4f8..1e43e7a9 100644 --- a/external/poky/meta/recipes-bsp/acpid/acpid.inc +++ b/external/poky/meta/recipes-bsp/acpid/acpid.inc @@ -1,4 +1,10 @@ SUMMARY = "A daemon for delivering ACPI events" +DESCRIPTION = "ACPID is a completely flexible, totally extensible daemon for \ +delivering ACPI events. It listens on netlink interface (or on the \ +deprecated file /proc/acpi/event), and when an event occurs, executes programs \ +to handle the event. The programs it executes are configured through a set of \ +configuration files, which can be dropped into place by packages or by the \ +admin." HOMEPAGE = "http://sourceforge.net/projects/acpid2" BUGTRACKER = "http://sourceforge.net/p/acpid2/tickets/?source=navbar" SECTION = "base" diff --git a/external/poky/meta/recipes-bsp/acpid/acpid_2.0.30.bb b/external/poky/meta/recipes-bsp/acpid/acpid_2.0.30.bb deleted file mode 100644 index aa19d28e..00000000 --- a/external/poky/meta/recipes-bsp/acpid/acpid_2.0.30.bb +++ /dev/null @@ -1,7 +0,0 @@ -require acpid.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5" - -SRC_URI[md5sum] = "1528040b5d34f8c24ebabd97befbf913" -SRC_URI[sha256sum] = "28b77b62d3f64ebd1c2a3d16bccc6d4333b4e24a86aeacebec255fad223cf4cb" diff --git a/external/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb b/external/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb new file mode 100644 index 00000000..227e4a46 --- /dev/null +++ b/external/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb @@ -0,0 +1,7 @@ +require acpid.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ + file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5" + +SRC_URI[md5sum] = "248995264b9d1cd8bdb923d5b190fd44" +SRC_URI[sha256sum] = "f2d2d30b3edc3234bd82f6f7186699a6aa3c85c8d20bc4e30e9b3c68a1ed157e" diff --git a/external/poky/meta/recipes-bsp/alsa-state/alsa-state.bb b/external/poky/meta/recipes-bsp/alsa-state/alsa-state.bb index 06705569..cec2272c 100644 --- a/external/poky/meta/recipes-bsp/alsa-state/alsa-state.bb +++ b/external/poky/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/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch new file mode 100644 index 00000000..42f3a818 --- /dev/null +++ b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/0001-remove-extra-decl.patch @@ -0,0 +1,31 @@ +From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 13 Jun 2018 09:41:01 -0400 +Subject: [PATCH] remove extra decl + +Signed-off-by: Peter Jones + +Upstream-Status: Backport [git://github.com/rhinstaller/efibootmgr.git] +Signed-off-by: Hongxu Jia + +--- + src/efibootmgr.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/efibootmgr.c b/src/efibootmgr.c +index de38f01..4e1a680 100644 +--- a/src/efibootmgr.c ++++ b/src/efibootmgr.c +@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv) + "invalid numeric value %s\n", + optarg); + } +- /* XXX efivar-36 accidentally doesn't have a public +- * header for this */ +- extern int efi_set_verbose(int verbosity, FILE *errlog); + efi_set_verbose(opts.verbose - 2, stderr); + break; + case 'V': +-- +2.7.4 + diff --git a/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch new file mode 100644 index 00000000..9525ed8c --- /dev/null +++ b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch @@ -0,0 +1,83 @@ +From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 6 Mar 2019 13:08:33 -0500 +Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make + deps" + +When we're doing make deps with "$(CC) -MF", gcc and clang have different +behavior, both broken in different ways, which we're hitting because of a +missing -I argument for libefivar's includes. On clang, when a header can't +be found, it emits a rule with the header as a prerequisite without a path, +such as efivar.h here: + +efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +Then the build that utilizes that rule will fail to find the +prerequisite and tell you something like: + +make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. +make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src' + +With gcc, when a header can't be found, it emits a rule without that header +as a prerequisite, as such (again with efivar.h): + +efibootmgr.o: efibootmgr.c fix_coverity.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +And then your build will fail if you haven't adjusted CFLAGS to tell it +where to find the header. + +Both of these would be better just erroring, but at least gcc's doesn't +insert a *wrong* dependency. + +This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/. +Technically that's overkill, as efibootmgr itself doesn't need popt, but it +doesn't hurt anything to have the extra part there. The resulting +.efibootmgr.d file has the prerequisites expressed correctly: + +efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \ + /usr/include/efivar/efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +This fixes the issue described in github PR #96 + +Signed-off-by: Peter Jones +Upstream-Status: Backport [https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac] +--- + src/Makefile | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index 258bac1..32fa188 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt + efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES)) + efibootnext : PKGS=efivar efiboot popt + ++deps : PKGS=efivar efiboot popt + deps : $(ALL_SOURCES) +- $(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" ++ $(MAKE) -f $(TOPDIR)/Make.deps \ ++ SOURCES="$(ALL_SOURCES)" \ ++ SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \ ++ PKGS="$(PKGS)" \ ++ deps + + clean : + @rm -rfv *.o *.a *.so $(TARGETS) diff --git a/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb new file mode 100644 index 00000000..5d6f200a --- /dev/null +++ b/external/poky/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager." +SUMMARY = "EFI Boot Manager" +HOMEPAGE = "https://github.com/rhboot/efibootmgr" +SECTION = "base" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +DEPENDS = "efivar popt" + +COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" + +SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ + file://0001-remove-extra-decl.patch \ + file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \ + " +SRCREV = "e067160ecef8208e1944002e5d50b275733211fb" + +S = "${WORKDIR}/git" + +inherit pkgconfig + +# The directory under the ESP that the default bootloader is found in. When +# wic uses a subdirectory, this should use the same one too. +EFIDIR ?= "/" + +EXTRA_OEMAKE += "'EFIDIR=${EFIDIR}'" + +CFLAGS += " -Wno-error" + +do_install () { + oe_runmake install DESTDIR="${D}" +} + +CLEANBROKEN = "1" diff --git a/external/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch b/external/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch new file mode 100644 index 00000000..50a0b102 --- /dev/null +++ b/external/poky/meta/recipes-bsp/efivar/efivar/no-werror.patch @@ -0,0 +1,18 @@ +Don't use -Werror because newer compilers introduce newer warnings. + +Upstream-Status: Inappropriate [https://github.com/rhboot/efivar/issues/131] +Signed-off-by: Ross Burton + +diff --git a/gcc.specs b/gcc.specs +index 45d43d1..1baf11a 100644 +--- a/gcc.specs ++++ b/gcc.specs +@@ -2,7 +2,7 @@ + + -D_GNU_SOURCE + + *efivar_cpp_options: +- -Werror -Wall -std=gnu11 -Wextra ++ -Wall -std=gnu11 -Wextra + + *cpp_options: + + %(efivar_cpp_options) diff --git a/external/poky/meta/recipes-bsp/efivar/efivar_37.bb b/external/poky/meta/recipes-bsp/efivar/efivar_37.bb new file mode 100644 index 00000000..9b95721a --- /dev/null +++ b/external/poky/meta/recipes-bsp/efivar/efivar_37.bb @@ -0,0 +1,40 @@ +SUMMARY = "Tools to manipulate UEFI variables" +DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility" +HOMEPAGE = "https://github.com/rhboot/efivar" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393" + +COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" + +SRC_URI = "git://github.com/rhinstaller/efivar.git \ + file://no-werror.patch" +SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10" + +S = "${WORKDIR}/git" + +inherit pkgconfig + +export CCLD_FOR_BUILD = "${BUILD_CCLD}" + +# Upstream uses --add-needed in gcc.specs which gold doesn't support, so +# enforce BFD. +LDFLAGS += "-fuse-ld=bfd" + +do_compile_prepend() { + # Remove when https://github.com/rhboot/efivar/issues/130 is fixed + oe_runmake \ + CFLAGS="${BUILD_CFLAGS}" \ + LDFLAGS="${BUILD_LDFLAGS}" \ + -C src makeguids +} + +do_install() { + oe_runmake install DESTDIR=${D} +} + +BBCLASSEXTEND = "native" + +RRECOMMENDS_${PN}_class-target = "kernel-module-efivarfs" + +CLEANBROKEN = "1" diff --git a/external/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb b/external/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb index 53cf1cf7..ea1fa4c7 100644 --- a/external/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb +++ b/external/poky/meta/recipes-bsp/formfactor/formfactor_0.0.bb @@ -1,4 +1,7 @@ SUMMARY = "Device formfactor information" +DESCRIPTION = "A formfactor configuration file provides information about the \ +target hardware for which the image is being built and information that the \ +build system cannot obtain from other sources such as the kernel." SECTION = "base" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" diff --git a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gcc46-compatibility.patch b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gcc46-compatibility.patch deleted file mode 100644 index 69efd34e..00000000 --- a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gcc46-compatibility.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 8d16ae374c5d4d9fac45c002605a66cfb8c08be5 Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Wed, 9 Sep 2015 08:26:06 +0000 -Subject: [PATCH 3/3] gnu-efi, syslinux: Support gcc < 4.7 - -don't break with old compilers and -DGNU_EFI_USE_MS_ABI -It's entirely legitimate to request GNU_EFI_USE_MS_ABI even if the current -compiler doesn't support it, and gnu-efi should transparently fall back to -using legacy techniques to set the calling convention. We don't get type -checking, but at least it will still compile. - -Author: Steve Langasek -Upstream-Status: Pending -[Rebased for 3.0.6] -Signed-off-by: California Sullivan ---- - inc/x86_64/efibind.h | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/inc/x86_64/efibind.h b/inc/x86_64/efibind.h -index 4309f9f..02c0af1 100644 ---- a/inc/x86_64/efibind.h -+++ b/inc/x86_64/efibind.h -@@ -25,8 +25,6 @@ Revision History - #if defined(GNU_EFI_USE_MS_ABI) - #if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)))||(defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 2))) - #define HAVE_USE_MS_ABI 1 -- #else -- #error Compiler is too old for GNU_EFI_USE_MS_ABI - #endif - #endif - --- -2.9.4 - diff --git a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-3.0.9-fix-clang-build.patch new file mode 100644 index 00000000..c6d66009 --- /dev/null +++ b/external/poky/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 + +--- 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/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch index a9806cfd..8a0138bb 100644 --- a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch +++ b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch @@ -19,25 +19,7 @@ Signed-off-by: Darren Hart Signed-off-by: California Sullivan [Rebased for 3.0.8] Signed-off-by: Yi Zhao ---- - 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/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb new file mode 100644 index 00000000..9954d7f5 --- /dev/null +++ b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb @@ -0,0 +1,71 @@ +SUMMARY = "Libraries for producing EFI binaries" +HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/" +SECTION = "devel" +LICENSE = "GPLv2+ | BSD-2-Clause" +LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ + file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ + file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \ + file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \ + file://lib/arm/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/arm/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/aarch64/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ + " + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ + file://parallel-make-archives.patch \ + file://lib-Makefile-fix-parallel-issue.patch \ + file://gnu-efi-3.0.9-fix-clang-build.patch \ + " + +SRC_URI[md5sum] = "21148bbcccec385a9bfdf5f678959577" +SRC_URI[sha256sum] = "f28da792a2532e91e18e0101468811739a22cde9eee5eacfd0efb9bf3a61d6b9" + +COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux" +COMPATIBLE_HOST_armv4 = 'null' + +do_configure_linux-gnux32_prepend() { + cp ${STAGING_INCDIR}/gnu/stubs-x32.h ${STAGING_INCDIR}/gnu/stubs-64.h + cp ${STAGING_INCDIR}/bits/long-double-32.h ${STAGING_INCDIR}/bits/long-double-64.h +} + +def gnu_efi_arch(d): + import re + tarch = d.getVar("TARGET_ARCH") + if re.match("i[3456789]86", tarch): + return "ia32" + return tarch + +EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ + 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \ + " + +# gnu-efi's Makefile treats prefix as toolchain prefix, so don't +# export it. +prefix[unexport] = "1" + +do_install() { + oe_runmake install INSTALLROOT="${D}" +} + +FILES_${PN} += "${libdir}/*.lds" + +# 64-bit binaries are expected for EFI when targeting X32 +INSANE_SKIP_${PN}-dev_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dev_append_linux-muslx32 = " arch" + +BBCLASSEXTEND = "native" + +# It doesn't support sse, its make.defaults sets: +# CFLAGS += -mno-mmx -mno-sse +# So also remove -mfpmath=sse from TUNE_CCARGS +TUNE_CCARGS_remove = "-mfpmath=sse" + +python () { + ccargs = d.getVar('TUNE_CCARGS').split() + if '-mx32' in ccargs: + # use x86_64 EFI ABI + ccargs.remove('-mx32') + ccargs.append('-m64') + d.setVar('TUNE_CCARGS', ' '.join(ccargs)) +} diff --git a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.8.bb b/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.8.bb deleted file mode 100644 index dba47334..00000000 --- a/external/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.8.bb +++ /dev/null @@ -1,71 +0,0 @@ -SUMMARY = "Libraries for producing EFI binaries" -HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/" -SECTION = "devel" -LICENSE = "GPLv2+ | BSD-2-Clause" -LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ - file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \ - file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \ - file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \ - file://lib/arm/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/arm/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/aarch64/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \ - " - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ - file://parallel-make-archives.patch \ - file://lib-Makefile-fix-parallel-issue.patch \ - file://gcc46-compatibility.patch \ - " - -SRC_URI[md5sum] = "ae32011cfe6b1c40c0f244b9a49ba181" -SRC_URI[sha256sum] = "76006d8ea8d67bcf72f35d09d43e9ef6a69400d6d5d4bf64baf1ab7434e2b722" - -COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux" -COMPATIBLE_HOST_armv4 = 'null' - -do_configure_linux-gnux32_prepend() { - cp ${STAGING_INCDIR}/gnu/stubs-x32.h ${STAGING_INCDIR}/gnu/stubs-64.h - cp ${STAGING_INCDIR}/bits/long-double-32.h ${STAGING_INCDIR}/bits/long-double-64.h -} - -def gnu_efi_arch(d): - import re - tarch = d.getVar("TARGET_ARCH") - if re.match("i[3456789]86", tarch): - return "ia32" - return tarch - -EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ - 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \ - " - -# gnu-efi's Makefile treats prefix as toolchain prefix, so don't -# export it. -prefix[unexport] = "1" - -do_install() { - oe_runmake install INSTALLROOT="${D}" -} - -FILES_${PN} += "${libdir}/*.lds" - -# 64-bit binaries are expected for EFI when targeting X32 -INSANE_SKIP_${PN}-dev_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dev_append_linux-muslx32 = " arch" - -BBCLASSEXTEND = "native" - -# It doesn't support sse, its make.defaults sets: -# CFLAGS += -mno-mmx -mno-sse -# So also remove -mfpmath=sse from TUNE_CCARGS -TUNE_CCARGS_remove = "-mfpmath=sse" - -python () { - ccargs = d.getVar('TUNE_CCARGS').split() - if '-mx32' in ccargs: - # use x86_64 EFI ABI - ccargs.remove('-mx32') - ccargs.append('-m64') - d.setVar('TUNE_CCARGS', ' '.join(ccargs)) -} diff --git a/external/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch b/external/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch index ce3238f3..6b73878c 100644 --- a/external/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch +++ b/external/poky/meta/recipes-bsp/grub/files/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch @@ -1,4 +1,4 @@ -From fb7b827a56b1f92f882d0f5ef130acc968b23293 Mon Sep 17 00:00:00 2001 +From 96d9aa55d29b24e2490d5647a9efc66940fc400f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 13 Jan 2016 19:17:31 +0000 Subject: [PATCH] Disable -mfpmath=sse as well when SSE is disabled @@ -22,17 +22,17 @@ cc1: all warnings being treated as errors Signed-off-by: Nitin A Kamble Signed-off-by: Khem Raj ---- -Upstream-Status: Pending +Upstream-Status: Pending +--- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 26d2f33..9ce56de 100644 +index 7656f24..0868ea9 100644 --- a/configure.ac +++ b/configure.ac -@@ -783,7 +783,7 @@ fi +@@ -824,7 +824,7 @@ fi if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then # Some toolchains enable these features by default, but they need # registers that aren't set up properly in GRUB. @@ -41,6 +41,3 @@ index 26d2f33..9ce56de 100644 fi # GRUB doesn't use float or doubles at all. Yet some toolchains may decide --- -2.7.0 - diff --git a/external/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch b/external/poky/meta/recipes-bsp/grub/files/0001-Unset-need_charset_alias-when-building-for-musl.patch deleted file mode 100644 index 67dc1154..00000000 --- a/external/poky/meta/recipes-bsp/grub/files/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 -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 ---- - lib/gnulib.mk | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: grub-2.00/grub-core/gnulib/Makefile.am -=================================================================== ---- grub-2.00.orig/grub-core/gnulib/Makefile.am -+++ grub-2.00/grub-core/gnulib/Makefile.am -@@ -410,7 +410,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/external/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch b/external/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch deleted file mode 100644 index e01fcdff..00000000 --- a/external/poky/meta/recipes-bsp/grub/files/0001-grub-setup-Debug-message-cleanup.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4e9d9358e0cda6d01020005eb6343e3b69f7201a Mon Sep 17 00:00:00 2001 -From: Cao jin -Date: Tue, 3 Jul 2018 18:51:13 +0800 -Subject: [PATCH] grub-setup: Debug message cleanup - -Variable "root" is initialized after root device probing and is null in -current place, so, drop it. - -Signed-off-by: Cao jin -Reviewed-by: Daniel Kiper ---- -Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/grub.git/commit/?id=4e9d9358e0cda6d01020005eb6343e3b69f7201a] - - util/setup.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/util/setup.c b/util/setup.c -index 80363075d..9c1e1b7da 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -305,9 +305,8 @@ SETUP (const char *dir, - bl.first_block = (struct grub_boot_blocklist *) (core_img - + GRUB_DISK_SECTOR_SIZE - - sizeof (*bl.block)); -- grub_util_info ("root is `%s', dest is `%s'", root, dest); - -- grub_util_info ("Opening dest"); -+ grub_util_info ("Opening dest `%s'", dest); - dest_dev = grub_device_open (dest); - if (! dest_dev) - grub_util_error ("%s", grub_errmsg); --- -2.17.2 (Apple Git-113) - diff --git a/external/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch b/external/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch index d5bfaa17..69b04aa5 100644 --- a/external/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch +++ b/external/poky/meta/recipes-bsp/grub/files/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch @@ -1,4 +1,4 @@ -From b512c77222a8b133d7dd71a0dcef081a921d97d4 Mon Sep 17 00:00:00 2001 +From 8f47ed4aaefba087b6ca76e59c9f832b6a0702bc Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 13 Jan 2016 19:28:00 +0000 Subject: [PATCH] grub.d/10_linux.in: add oe's kernel name @@ -11,18 +11,19 @@ to util/grub.d/20_linux_xen.in to keep compatibility. Signed-off-by: Robert Yang Signed-off-by: Khem Raj ---- + Upstream-Status: Inappropriate [OE specific] +--- util/grub.d/10_linux.in | 6 +++--- util/grub.d/20_linux_xen.in | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 859b608..946be5d 100644 +index 4532266..cba2617 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -148,12 +148,12 @@ machine=`uname -m` +@@ -164,12 +164,12 @@ machine=`uname -m` case "x$machine" in xi?86 | xx86_64) list= @@ -39,10 +40,10 @@ index 859b608..946be5d 100644 done ;; esac diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index f532fb9..1994244 100644 +index 96179ea..98d16ae 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in -@@ -138,7 +138,7 @@ EOF +@@ -154,7 +154,7 @@ EOF } linux_list= @@ -51,6 +52,3 @@ index f532fb9..1994244 100644 if grub_file_is_not_garbage "$i"; then basename=$(basename $i) version=$(echo $basename | sed -e "s,^[^0-9]*-,,g") --- -2.7.0 - diff --git a/external/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch b/external/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch deleted file mode 100644 index 61d58c40..00000000 --- a/external/poky/meta/recipes-bsp/grub/files/0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch +++ /dev/null @@ -1,76 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 842c390469e2c2e10b5aa36700324cd3bde25875 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Sat, 17 Feb 2018 06:47:28 -0800 -Subject: [PATCH] x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 - -Starting from binutils commit bd7ab16b4537788ad53521c45469a1bdae84ad4a: - -https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bd7ab16b4537788ad53521c45469a1bdae84ad4a - -x86-64 assembler generates R_X86_64_PLT32, instead of R_X86_64_PC32, for -32-bit PC-relative branches. Grub2 should treat R_X86_64_PLT32 as -R_X86_64_PC32. - -Signed-off-by: H.J. Lu -Reviewed-by: Daniel Kiper ---- - grub-core/efiemu/i386/loadcore64.c | 1 + - grub-core/kern/x86_64/dl.c | 1 + - util/grub-mkimagexx.c | 1 + - util/grub-module-verifier.c | 1 + - 4 files changed, 4 insertions(+) - -diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c -index e49d0b6ff..18facf47f 100644 ---- a/grub-core/efiemu/i386/loadcore64.c -+++ b/grub-core/efiemu/i386/loadcore64.c -@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - err = grub_efiemu_write_value (addr, - *addr32 + rel->r_addend - + sym.off -diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c -index 440690673..3a73e6e6c 100644 ---- a/grub-core/kern/x86_64/dl.c -+++ b/grub-core/kern/x86_64/dl.c -@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - { - grub_int64_t value; - value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value - -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index a2bb05439..39d7efb91 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -841,6 +841,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, - break; - - case R_X86_64_PC32: -+ case R_X86_64_PLT32: - { - grub_uint32_t *t32 = (grub_uint32_t *) target; - *t32 = grub_host_to_target64 (grub_target_to_host32 (*t32) -diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c -index 9179285a5..a79271f66 100644 ---- a/util/grub-module-verifier.c -+++ b/util/grub-module-verifier.c -@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = { - -1 - }, (int[]){ - R_X86_64_PC32, -+ R_X86_64_PLT32, - -1 - } - }, --- -2.11.0 - diff --git a/external/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch b/external/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch index fc5aa4e3..faa7fde2 100644 --- a/external/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch +++ b/external/poky/meta/recipes-bsp/grub/files/autogen.sh-exclude-pc.patch @@ -1,4 +1,4 @@ -From ff8f68cc48fd3c30d55e1d570d51f2e0952c968e Mon Sep 17 00:00:00 2001 +From 72c30928d3d461e0e2d20c5ff33bd96b6991d585 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Sat, 25 Jan 2014 23:49:44 -0500 Subject: [PATCH] autogen.sh: exclude .pc from po/POTFILES.in @@ -12,23 +12,24 @@ try to read it. Upstream-Status: Inappropriate [OE specific] Signed-off-by: Robert Yang +Signed-off-by: Anuj Mittal --- - autogen.sh | 2 +- + autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh -index 7424428..843619e 100755 +index ef43270..a7067a7 100755 --- a/autogen.sh +++ b/autogen.sh -@@ -5,7 +5,7 @@ set -e +@@ -13,7 +13,7 @@ fi export LC_COLLATE=C unset LC_ALL --find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' |sort > po/POTFILES.in -+find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -path './.pc/*' | sort > po/POTFILES.in +-find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -iname './grub-core/lib/gnulib/*' |sort > po/POTFILES.in ++find . -iname '*.[ch]' ! -ipath './grub-core/lib/libgcrypt-grub/*' ! -ipath './build-aux/*' ! -ipath './grub-core/lib/libgcrypt/src/misc.c' ! -ipath './grub-core/lib/libgcrypt/src/global.c' ! -ipath './grub-core/lib/libgcrypt/src/secmem.c' ! -ipath './util/grub-gen-widthspec.c' ! -ipath './util/grub-gen-asciih.c' ! -ipath './gnulib/*' ! -iname './grub-core/lib/gnulib/*' ! -path './.pc/*' |sort > po/POTFILES.in find util -iname '*.in' ! -name Makefile.in |sort > po/POTFILES-shell.in echo "Importing unicode..." -- -1.7.10.4 +2.7.4 diff --git a/external/poky/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch b/external/poky/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch deleted file mode 100644 index f35df97b..00000000 --- a/external/poky/meta/recipes-bsp/grub/files/fix.build.with.gcc-7.patch +++ /dev/null @@ -1,39 +0,0 @@ -* e.g. with gentoo gcc-7.1 they define _FORTIFY_SOURCE by default with: - https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/gcc/7.1.0/gentoo/10_all_default-fortify-source.patch?view=markup - which results in following error while building grub-efi-native: - ./config-util.h:1504:48: error: this use of "defined" may not be portable [-Werror=expansion-to-defined] - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - ^~~~~~~~~~~~~~~ - this part comes from gnulib and it's used only for Apple and BSD, - so we can ignore it, but we cannot add -Wno-error=expansion-to-defined - because this warning was introduced only in gcc-7 and older gcc - will fail with: - cc1: error: -Werror=expansion-to-defined: no option -Wexpansion-to-defined - use #pragma to work around this - -Upstream-Status: Pending (should be fixed in gnulib which is then rarely updated in grub) - -Signed-off-by: Martin Jansa - -diff -uNr grub-2.02.old/m4/extern-inline.m4 grub-2.02/m4/extern-inline.m4 ---- grub-2.02.old/m4/extern-inline.m4 2016-02-28 15:22:21.000000000 +0100 -+++ grub-2.02/m4/extern-inline.m4 2017-08-22 19:26:45.213637276 +0200 -@@ -39,6 +39,10 @@ - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. */ -+#pragma GCC diagnostic push -+#if __GNUC__ >= 7 -+#pragma GCC diagnostic ignored "-Wexpansion-to-defined" -+#endif - #if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined __header_inline \ -@@ -50,6 +52,7 @@ - && defined __GNUC__ && ! defined __cplusplus)))) - # define _GL_EXTERN_INLINE_STDHEADER_BUG - #endif -+#pragma GCC diagnostic pop - #if ((__GNUC__ \ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : (199901L <= __STDC_VERSION__ \ diff --git a/external/poky/meta/recipes-bsp/grub/files/gcc8.patch b/external/poky/meta/recipes-bsp/grub/files/gcc8.patch deleted file mode 100644 index fa7331f1..00000000 --- a/external/poky/meta/recipes-bsp/grub/files/gcc8.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 563b1da6e6ae7af46cc8354cadb5dab416989f0a Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Mon, 26 Mar 2018 16:52:34 +0800 -Subject: Fix packed-not-aligned error on GCC 8 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When building with GCC 8, there are several errors regarding packed-not-aligned. - -./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned] - -This patch fixes the build error by cleaning up the ambiguity of placing -aligned structure in a packed one. In "struct grub_btrfs_time" and "struct -grub_gpt_part_type", the aligned attribute seems to be superfluous, and also -has to be packed, to ensure the structure is bit-to-bit mapped to the format -laid on disk. I think we could blame to copy and paste error here for the -mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as -the name suggests. :) - -Signed-off-by: Michael Chang -Tested-by: Michael Chang -Tested-by: Paul Menzel -Reviewed-by: Daniel Kiper - -Upstream-Status: Backport http://git.savannah.gnu.org/cgit/grub.git/commit/?id=563b1da6e6ae7af46cc8354cadb5dab416989f0a ---- - grub-core/fs/btrfs.c | 2 +- - include/grub/efiemu/runtime.h | 2 +- - include/grub/gpt_partition.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1c..be19544 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -175,7 +175,7 @@ struct grub_btrfs_time - { - grub_int64_t sec; - grub_uint32_t nanosec; --} __attribute__ ((aligned (4))); -+} GRUB_PACKED; - - struct grub_btrfs_inode - { -diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 9b6b729..36d2ded 100644 ---- a/include/grub/efiemu/runtime.h -+++ b/include/grub/efiemu/runtime.h -@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel - - struct efi_variable - { -- grub_efi_guid_t guid; -+ grub_efi_packed_guid_t guid; - grub_uint32_t namelen; - grub_uint32_t size; - grub_efi_uint32_t attributes; -diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 1b32f67..9668a68 100644 ---- a/include/grub/gpt_partition.h -+++ b/include/grub/gpt_partition.h -@@ -28,7 +28,7 @@ struct grub_gpt_part_type - grub_uint16_t data2; - grub_uint16_t data3; - grub_uint8_t data4[8]; --} __attribute__ ((aligned(8))); -+} GRUB_PACKED; - typedef struct grub_gpt_part_type grub_gpt_part_type_t; - - #define GRUB_GPT_PARTITION_TYPE_EMPTY \ --- -cgit v1.0-41-gc330 - diff --git a/external/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch b/external/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch index ffc2d40d..26890261 100644 --- a/external/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch +++ b/external/poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch @@ -1,13 +1,14 @@ -From 7461a3de38b66edbe2f5593f9bdab9f2704d32bc Mon Sep 17 00:00:00 2001 +From 917133acc701dbc4636165d3b08d15dc5829a06f Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Wed, 17 Aug 2016 04:06:34 -0400 Subject: [PATCH] grub module explicitly keeps symbole .module_license While using oe-core toolchain to strip grub module 'all_video.mod', it stripped symbol table: --------------- -root@localhost:~# objdump -t all_video.mod +--------------- +root@localhost:~# objdump -t all_video.mod + all_video.mod: file format elf64-x86-64 SYMBOL TABLE: @@ -43,16 +44,16 @@ Signed-off-by: Hongxu Jia grub-core/genmod.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: grub-2.02/grub-core/genmod.sh.in -=================================================================== ---- grub-2.02.orig/grub-core/genmod.sh.in -+++ grub-2.02/grub-core/genmod.sh.in -@@ -56,7 +56,7 @@ if test x@TARGET_APPLE_LINKER@ != x1; th +diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in +index 1250589..dd14308 100644 +--- a/grub-core/genmod.sh.in ++++ b/grub-core/genmod.sh.in +@@ -56,7 +56,7 @@ if test x@TARGET_APPLE_LINKER@ != x1; then if test x@platform@ != xemu; then @TARGET_STRIP@ --strip-unneeded \ -K grub_mod_init -K grub_mod_fini \ - -K _grub_mod_init -K _grub_mod_fini \ + -K _grub_mod_init -K _grub_mod_fini -K .module_license \ -R .note.gnu.gold-version -R .note.GNU-stack \ - -R .note -R .comment -R .ARM.exidx $tmpfile || exit 1 - fi + -R .gnu.build.attributes \ + -R .rel.gnu.build.attributes \ diff --git a/external/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/external/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb index 750f8c80..57258031 100644 --- a/external/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb +++ b/external/poky/meta/recipes-bsp/grub/grub-bootconf_1.00.bb @@ -1,11 +1,16 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" SUMMARY = "Basic grub.cfg for use in EFI systems" +DESCRIPTION = "Grub might require different configuration file for \ +different machines." +HOMEPAGE = "https://www.gnu.org/software/grub/manual/grub/grub.html#Configuration" RPROVIDES_${PN} += "virtual/grub-bootconf" inherit grub-efi-cfg +require conf/image-uefi.conf + S = "${WORKDIR}" GRUB_CFG = "${S}/grub-bootconf" @@ -20,10 +25,8 @@ python do_configure() { do_configure[vardeps] += "APPEND ROOT" do_install() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install grub-bootconf ${D}/boot/EFI/BOOT/grub.cfg + install -d ${D}${EFI_FILES_PATH} + install grub-bootconf ${D}${EFI_FILES_PATH}/grub.cfg } -FILES_${PN} = "/boot/EFI/BOOT/grub.cfg" +FILES_${PN} = "${EFI_FILES_PATH}/grub.cfg" diff --git a/external/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb b/external/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb deleted file mode 100644 index 14fce97f..00000000 --- a/external/poky/meta/recipes-bsp/grub/grub-efi_2.02.bb +++ /dev/null @@ -1,112 +0,0 @@ -require grub2.inc - -GRUBPLATFORM = "efi" - -DEPENDS_append_class-target = " grub-efi-native" -RDEPENDS_${PN}_class-target = "diffutils freetype grub-common virtual/grub-bootconf" - -SRC_URI += " \ - file://cfg \ - " - -S = "${WORKDIR}/grub-${PV}" - -# Determine the target arch for the grub modules -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" - if target == "x86_64": - grubtarget = 'x86_64' - grubimage = prefix + "bootx64.efi" - elif re.match('i.86', target): - grubtarget = 'i386' - grubimage = prefix + "bootia32.efi" - elif re.match('aarch64', target): - grubtarget = 'arm64' - grubimage = prefix + "bootaa64.efi" - elif re.match('arm', target): - grubtarget = 'arm' - grubimage = prefix + "bootarm.efi" - else: - raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) - d.setVar("GRUB_TARGET", grubtarget) - d.setVar("GRUB_IMAGE", grubimage) - prefix = "grub-efi-" if prefix == "" else "" - d.setVar("GRUB_IMAGE_PREFIX", prefix) -} - -inherit deploy - -CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" -EXTRA_OECONF += "--enable-efiemu=no" - -# ldm.c:114:7: error: trampoline generated for nested function 'hook' [-Werror=trampolines] -# and many other places in the grub code when compiled with some native gcc compilers (specifically, gentoo) -CFLAGS_append_class-native = " -Wno-error=trampolines" - -do_mkimage() { - cd ${B} - # Search for the grub.cfg on the local boot media by using the - # built in cfg file provided via this recipe - grub-mkimage -c ../cfg -p /EFI/BOOT -d ./grub-core/ \ - -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ - ${GRUB_BUILDIN} -} - -addtask mkimage before do_install after do_compile - -do_mkimage_class-native() { - : -} - -do_install_append_class-target() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}/boot/EFI/BOOT/${GRUB_IMAGE} -} - -do_install_class-native() { - install -d ${D}${bindir} - install -m 755 grub-mkimage ${D}${bindir} -} - -do_install_class-target() { - oe_runmake 'DESTDIR=${D}' -C grub-core install - - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ - efi_gop iso9660 configfile search loadenv test" - -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 \ - ${datadir}/grub \ - /boot/EFI/BOOT/${GRUB_IMAGE} \ - " - - -# 64-bit binaries are expected for the bootloader with an x32 userland -INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb b/external/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb new file mode 100644 index 00000000..b9d6225d --- /dev/null +++ b/external/poky/meta/recipes-bsp/grub/grub-efi_2.04.bb @@ -0,0 +1,109 @@ +require grub2.inc + +require conf/image-uefi.conf + +GRUBPLATFORM = "efi" + +DEPENDS_append_class-target = " grub-efi-native" +RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf" + +SRC_URI += " \ + file://cfg \ + " + +S = "${WORKDIR}/grub-${PV}" + +# Determine the target arch for the grub modules +python __anonymous () { + import re + target = d.getVar('TARGET_ARCH') + prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" + if target == "x86_64": + grubtarget = 'x86_64' + elif re.match('i.86', target): + grubtarget = 'i386' + elif re.match('aarch64', target): + grubtarget = 'arm64' + elif re.match('arm', target): + grubtarget = 'arm' + else: + raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) + grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") + d.setVar("GRUB_TARGET", grubtarget) + d.setVar("GRUB_IMAGE", grubimage) + prefix = "grub-efi-" if prefix == "" else "" + d.setVar("GRUB_IMAGE_PREFIX", prefix) +} + +inherit deploy + +CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" +EXTRA_OECONF += "--enable-efiemu=no" + +do_mkimage() { + cd ${B} + # Search for the grub.cfg on the local boot media by using the + # built in cfg file provided via this recipe + grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ + -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ + ${GRUB_BUILDIN} +} + +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() { + oe_runmake 'DESTDIR=${D}' -C grub-core install + + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +do_install_append_aarch64() { + rm -rf ${D}/${prefix}/ +} + +GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ + efi_gop iso9660 configfile search loadenv test" + +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 \ + ${datadir}/grub \ + ${EFI_FILES_PATH}/${GRUB_IMAGE} \ + " + +FILES_${PN}_remove_aarch64 = "${libdir}/grub/${GRUB_TARGET}-efi" + +# 64-bit binaries are expected for the bootloader with an x32 userland +INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/external/poky/meta/recipes-bsp/grub/grub2.inc b/external/poky/meta/recipes-bsp/grub/grub2.inc index 8e0f8621..e796904f 100644 --- a/external/poky/meta/recipes-bsp/grub/grub2.inc +++ b/external/poky/meta/recipes-bsp/grub/grub2.inc @@ -11,21 +11,18 @@ SECTION = "bootloaders" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "https://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ +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://0001-Unset-need_charset_alias-when-building-for-musl.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://fix.build.with.gcc-7.patch \ - file://gcc8.patch \ - file://0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch \ - file://0001-grub-setup-Debug-message-cleanup.patch \ " -SRC_URI[md5sum] = "1116d1f60c840e6dbd67abbc99acb45d" -SRC_URI[sha256sum] = "660ee136fbcee08858516ed4de2ad87068bfe1b6b8b37896ce3529ff054a726d" +SRC_URI[md5sum] = "5ce674ca6b2612d8939b9e6abed32934" +SRC_URI[sha256sum] = "f10c85ae3e204dbaec39ae22fa3c5e99f0665417e91c2cb49b7e5031658ba6ea" -DEPENDS = "flex-native bison-native" +DEPENDS = "flex-native bison-native gettext-native" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)' COMPATIBLE_HOST_armv7a = 'null' @@ -38,7 +35,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 \ @@ -46,6 +43,7 @@ EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \ --enable-liblzma=no \ --enable-libzfs=no \ --enable-largefile \ + --disable-werror \ " PACKAGECONFIG ??= "" @@ -61,13 +59,14 @@ BUILD_CFLAGS = "" BUILD_CXXFLAGS = "" BUILD_LDFLAGS = "" +export PYTHON = "python3" + do_configure_prepend() { - # The grub2 configure script uses variables such as TARGET_CFLAGS etc - # for its own purposes. Remove the OE versions from the environment to - # avoid conflicts. - unset TARGET_CPPFLAGS TARGET_CFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS - ( cd ${S} - ${S}/autogen.sh ) + cd ${S} + FROM_BOOTSTRAP=1 ${S}/autogen.sh + cd ${B} } RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-bsp/grub/grub_2.02.bb b/external/poky/meta/recipes-bsp/grub/grub_2.02.bb deleted file mode 100644 index e0973759..00000000 --- a/external/poky/meta/recipes-bsp/grub/grub_2.02.bb +++ /dev/null @@ -1,29 +0,0 @@ -require grub2.inc - -RDEPENDS_${PN}-common += "${PN}-editenv" -RDEPENDS_${PN} += "diffutils freetype ${PN}-common" - -RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" - -PACKAGES =+ "${PN}-editenv ${PN}-common" -FILES_${PN}-editenv = "${bindir}/grub-editenv" -FILES_${PN}-common = " \ - ${bindir} \ - ${sysconfdir} \ - ${sbindir} \ - ${datadir}/grub \ -" - -do_install_append () { - install -d ${D}${sysconfdir}/grub.d - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -INSANE_SKIP_${PN} = "arch" -INSANE_SKIP_${PN}-dbg = "arch" diff --git a/external/poky/meta/recipes-bsp/grub/grub_2.04.bb b/external/poky/meta/recipes-bsp/grub/grub_2.04.bb new file mode 100644 index 00000000..9232ea81 --- /dev/null +++ b/external/poky/meta/recipes-bsp/grub/grub_2.04.bb @@ -0,0 +1,33 @@ +require grub2.inc + +RDEPENDS_${PN}-common += "${PN}-editenv" +RDEPENDS_${PN} += "${PN}-common" + +RPROVIDES_${PN}-editenv += "${PN}-efi-editenv" + +PACKAGES =+ "${PN}-editenv ${PN}-common" +FILES_${PN}-editenv = "${bindir}/grub-editenv" +FILES_${PN}-common = " \ + ${bindir} \ + ${sysconfdir} \ + ${sbindir} \ + ${datadir}/grub \ +" + +FILES_${PN}-common_append_aarch64 = " \ + ${libdir}/${BPN} \ +" + +do_install_append () { + install -d ${D}${sysconfdir}/grub.d + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +INSANE_SKIP_${PN} = "arch" +INSANE_SKIP_${PN}-dbg = "arch" diff --git a/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/acdefine.patch deleted file mode 100644 index 682cf416..00000000 --- a/external/poky/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 - -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/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/autotools-update.patch new file mode 100644 index 00000000..33af38b4 --- /dev/null +++ b/external/poky/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 + +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 +-#endif +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#else +-# ifdef HAVE_MALLOC_H +-# include +-# else +-void free (); +-# endif +-#endif +- +-#if defined HAVE_STRING_H || defined _LIBC +-# include +-#else +-# include +-# ifndef memcpy +-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +-# endif +-#endif +- +-#ifdef _LIBC +-# include +-#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 +-#endif +- +-#include +- +-#ifdef STDC_HEADERS +-# include +-# include +-#else +-char *getenv (); +-# ifdef HAVE_MALLOC_H +-# include +-# endif +-#endif +- +-#ifdef HAVE_NL_TYPES_H +-# include +-#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 +- +- * intlh.inst.in: Reformat copyright. +- +-1997-08-19 15:22 Ulrich Drepper +- +- * dcgettext.c (DCGETTEXT): Remove wrong comment. +- +-1997-08-16 00:13 Ulrich Drepper +- +- * Makefile.in (install-data): Don't change directory to install. +- +-1997-08-01 14:30 Ulrich Drepper +- +- * 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 . +- +- * 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 +- +- * dcgettext.c (guess_category_value): Don't depend on +- HAVE_LC_MESSAGES. We don't need the macro here. +- Patch by Bruno Haible . +- +- * 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 . +- +- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois +- Pinard. +- +-Mon Mar 10 06:51:17 1997 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * textdomain.c: Move definition of `memcpy` macro to right +- position. +- +-Fri Nov 22 04:01:58 1996 Ulrich Drepper +- +- * 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 +- +- * Makefile.in (libdir): Change to use exec_prefix instead of +- prefix. Reported by Knut-HåvardAksnes . +- +-Sat Aug 31 03:07:09 1996 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * l10nflist.c: Correct presence test macros of __argz_* functions. +- +- * l10nflist.c: Include based on test of it instead when +- __argz_* functions are available. +- Reported by Andreas Schwab. +- +-Thu Jun 13 15:17:44 1996 Ulrich Drepper +- +- * explodename.c, l10nflist.c: Define NULL for dumb systems. +- +-Tue Jun 11 17:05:13 1996 Ulrich Drepper +- +- * 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 +- +- * Makefile.in (install): Remove comment. +- +-Thu Jun 6 17:28:17 1996 Ulrich Drepper +- +- * 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 +- +- * 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 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 +- +- * intlh.inst.in: Don't depend including 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 +- +- * 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 +- +- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from +- find_l10nfile. +- +-Sat Jun 1 02:23:03 1996 Ulrich Drepper +- +- * 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 +- +- * Makefile.in (all-gettext): New goal. Same as all-yes. +- +-Thu Mar 28 23:01:22 1996 Karl Eichwalder +- +- * Makefile.in (gettextsrcdir): Define using @datadir@. +- +-Tue Mar 26 12:39:14 1996 Ulrich Drepper +- +- * finddomain.c: Include . Reported by Roland McGrath. +- +-Sat Mar 23 02:00:35 1996 Ulrich Drepper +- +- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing +- with external declaration. +- +-Sat Mar 2 00:47:09 1996 Ulrich Drepper +- +- * Makefile.in (all-no): Rename from all_no. +- +-Sat Feb 17 00:25:59 1996 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * localealias.c (alias_compare): Increment string pointers in loop +- of strcasecmp replacement. +- +-Fri Dec 29 21:16:34 1995 Ulrich Drepper +- +- * Makefile.in (install-src): Who commented this goal out ? :-) +- +-Fri Dec 29 15:08:16 1995 Ulrich Drepper +- +- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls +- should not effect it because a missing catalog is no error. +- Reported by Harald Knig . +- +-Tue Dec 19 22:09:13 1995 Ulrich Drepper +- +- * Makefile.in (Makefile): Explicitly use $(SHELL) for running +- shell scripts. +- +-Fri Dec 15 17:34:59 1995 Andreas Schwab +- +- * 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 +- +- * 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 +- +- * 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 +- +- * Makefile.in (install-src): +- Install libintl.inst instead of libintl.h.install. +- +-Sat Dec 2 22:51:38 1995 Marcus Daniels +- +- * 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 +- +- * cat-compat.c (bindtextdomain): Add missing { }. +- +-Sun Nov 26 18:21:41 1995 Ulrich Drepper +- +- * 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 +- +- * hash-string.h: Capitalize arguments of macros. +- +-Sat Nov 25 12:01:36 1995 Ulrich Drepper +- +- * 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 +- +- * dcgettext.c: Fix bug in preprocessor conditionals. +- +-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe +- +- * libgettext.h: Solaris cc does not understand +- #if !SYMBOL1 && !SYMBOL2. Sad but true. +- +-Thu Nov 23 16:22:14 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * hash-string.h: Correct prototype for hash_string. +- +-Sun Nov 12 12:42:30 1995 Ulrich Drepper +- +- * hash-string.h (hash_string): Add prototype. +- +- * gettextP.h: Fix copyright. +- (SWAP): Add prototype. +- +-Wed Nov 8 22:56:33 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. +- +-Sat Oct 28 23:20:47 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * cat-compat.c: Include 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 +- +- * 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 +- +- * finddomain.c: Correct some bugs in handling of CEN standard +- locale definitions. +- +-Thu Sep 7 01:49:28 1995 Ulrich Drepper +- +- * finddomain.c: Implement CEN syntax. +- +- * gettextP.h (loaded_domain): Extend number of successors to 31. +- +-Sat Aug 19 19:25:29 1995 Ulrich Drepper +- +- * 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 +- +- * Makefile.in (uninstall): Remove stuff installed by install-src. +- +-Tue Aug 15 13:13:53 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * finddomain.c (unistd.h): +- Include to get _PC_PATH_MAX defined on system having it. +- +-Fri Aug 4 22:42:00 1995 Ulrich Drepper +- +- * finddomain.c (stpcpy): Include prototype. +- +- * Makefile.in (dist): Remove `copying instead' message. +- +-Wed Aug 2 18:52:03 1995 Ulrich Drepper +- +- * Makefile.in (ID, TAGS): Do not use $^. +- +-Tue Aug 1 20:07:11 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * intl-compat.c (textdomain): Correct typo. +- +-Wed Jul 19 01:51:35 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * cat-compat.c: If !STDC_HEADERS try to include malloc.h. +- +-Thu Jul 13 20:55:02 1995 Ulrich Drepper +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * 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 +- +- * tupdate.perl.in: Complete rewrite for new .po file format. +- +-Sun Jul 2 02:06:50 1995 Ulrich Drepper +- +- * 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 +-#endif +- +-#include +- +-#ifdef __GNUC__ +-# define alloca __builtin_alloca +-# define HAVE_ALLOCA 1 +-#else +-# if defined HAVE_ALLOCA_H || defined _LIBC +-# include +-# else +-# ifdef _AIX +- #pragma alloca +-# else +-# ifndef alloca +-char *alloca (); +-# endif +-# endif +-# endif +-#endif +- +-#include +-#ifndef errno +-extern int errno; +-#endif +-#ifndef __set_errno +-# define __set_errno(val) errno = (val) +-#endif +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#else +-char *getenv (); +-# ifdef HAVE_MALLOC_H +-# include +-# else +-void free (); +-# endif +-#endif +- +-#if defined HAVE_STRING_H || defined _LIBC +-# ifndef _GNU_SOURCE +-# define _GNU_SOURCE 1 +-# endif +-# include +-#else +-# include +-#endif +-#if !HAVE_STRCHR && !defined _LIBC +-# ifndef strchr +-# define strchr index +-# endif +-#endif +- +-#if defined HAVE_UNISTD_H || defined _LIBC +-# include +-#endif +- +-#include "gettext.h" +-#include "gettextP.h" +-#ifdef _LIBC +-# include +-#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 +-#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 +-#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 +-#endif +- +-#if defined HAVE_LOCALE_H || defined _LIBC +-# include +-#endif +- +-#ifdef _LIBC +-# include +-#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 , 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 +-#endif +- +-#include +-#include +-#include +- +-#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 , 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 +-#endif +- +-#include +-#include +-#include +-#include +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#else +-# ifdef HAVE_MALLOC_H +-# include +-# else +-void free (); +-# endif +-#endif +- +-#if defined HAVE_STRING_H || defined _LIBC +-# include +-#else +-# include +-# 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 +-#endif +- +-#include "gettext.h" +-#include "gettextP.h" +-#ifdef _LIBC +-# include +-#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 +-#endif +- +-#ifdef _LIBC +-# define __need_NULL +-# include +-#else +-# ifdef STDC_HEADERS +-# include /* Just for NULL. */ +-# else +-# ifdef HAVE_STRING_H +-# include +-# else +-# define NULL ((void *) 0) +-# endif +-# endif +-#endif +- +-#ifdef _LIBC +-# include +-#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 +- +-#if HAVE_LIMITS_H || _LIBC +-# include +-#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 ) 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 +-#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 +-#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 , 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 +-#endif +- +- +-#if defined HAVE_STRING_H || defined _LIBC +-# ifndef _GNU_SOURCE +-# define _GNU_SOURCE 1 +-# endif +-# include +-#else +-# include +-# 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 +-#endif +-#include +-#include +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#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 +- +-#if HAVE_LOCALE_H +-# include +-#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 , 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 +- 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 +-#endif +- +-#include +-#include +-#include +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#endif +- +-#if defined HAVE_UNISTD_H || defined _LIBC +-# include +-#endif +- +-#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC +-# include +-#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 , 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 +-#endif +- +-#include +-#include +-#include +- +-#ifdef __GNUC__ +-# define alloca __builtin_alloca +-# define HAVE_ALLOCA 1 +-#else +-# if defined HAVE_ALLOCA_H || defined _LIBC +-# include +-# else +-# ifdef _AIX +- #pragma alloca +-# else +-# ifndef alloca +-char *alloca (); +-# endif +-# endif +-# endif +-#endif +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#else +-char *getenv (); +-# ifdef HAVE_MALLOC_H +-# include +-# else +-void free (); +-# endif +-#endif +- +-#if defined HAVE_STRING_H || defined _LIBC +-# ifndef _GNU_SOURCE +-# define _GNU_SOURCE 1 +-# endif +-# include +-#else +-# include +-# 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 , 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 \ +-#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 +- 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 , 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 +-#endif +- +-#if defined STDC_HEADERS || defined _LIBC +-# include +-#endif +- +-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC +-# include +-#else +-# include +-# ifndef memcpy +-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) +-# endif +-#endif +- +-#ifdef _LIBC +-# include +-#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 , 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 +- 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 ` ' +- 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 +-#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 \n" + "Language-Team: none. try \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 , 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 \n" + "Language-Team: LANGUAGE \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 + #endif +-#if !HAVE_SETLOCALE +-# define setlocale(Category, Locale) /* empty */ +-#endif + + #if ENABLE_NLS + # include +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/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/gettext.patch deleted file mode 100644 index 1a24a1f0..00000000 --- a/external/poky/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 -+ -+ * 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 - - * 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 , 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 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=/' < 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 - #endif - --#if defined STDC_HEADERS || defined _LIBC --# include --#else --# ifdef HAVE_MALLOC_H --# include --# else --void free (); --# endif --#endif -+#include -+#include -+#include - --#if defined HAVE_STRING_H || defined _LIBC --# include -+#ifdef _LIBC -+# include - #else --# include --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif -+# include "libgnuintl.h" - #endif -+#include "gettextP.h" - - #ifdef _LIBC --# include -+/* We have to handle multi-threaded applications. */ -+# include - #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 . */ -+#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 --#endif -- --#include -- --#ifdef STDC_HEADERS --# include --# include --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include --# endif --#endif -- --#ifdef HAVE_NL_TYPES_H --# include --#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 -- -- * intlh.inst.in: Reformat copyright. -- --1997-08-19 15:22 Ulrich Drepper -- -- * dcgettext.c (DCGETTEXT): Remove wrong comment. -- --1997-08-16 00:13 Ulrich Drepper -- -- * Makefile.in (install-data): Don't change directory to install. -- --1997-08-01 14:30 Ulrich Drepper -- -- * 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 . -- -- * 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 -- -- * dcgettext.c (guess_category_value): Don't depend on -- HAVE_LC_MESSAGES. We don't need the macro here. -- Patch by Bruno Haible . -- -- * 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 . -- -- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois -- Pinard. -- --Mon Mar 10 06:51:17 1997 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * textdomain.c: Move definition of `memcpy` macro to right -- position. -- --Fri Nov 22 04:01:58 1996 Ulrich Drepper -- -- * 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 -- -- * Makefile.in (libdir): Change to use exec_prefix instead of -- prefix. Reported by Knut-HåvardAksnes . -- --Sat Aug 31 03:07:09 1996 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * l10nflist.c: Correct presence test macros of __argz_* functions. -- -- * l10nflist.c: Include based on test of it instead when -- __argz_* functions are available. -- Reported by Andreas Schwab. -- --Thu Jun 13 15:17:44 1996 Ulrich Drepper -- -- * explodename.c, l10nflist.c: Define NULL for dumb systems. -- --Tue Jun 11 17:05:13 1996 Ulrich Drepper -- -- * 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 -- -- * Makefile.in (install): Remove comment. -- --Thu Jun 6 17:28:17 1996 Ulrich Drepper -- -- * 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 -- -- * 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 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 -- -- * intlh.inst.in: Don't depend including 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 -- -- * 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 -- -- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from -- find_l10nfile. -- --Sat Jun 1 02:23:03 1996 Ulrich Drepper -- -- * 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 -- -- * Makefile.in (all-gettext): New goal. Same as all-yes. -- --Thu Mar 28 23:01:22 1996 Karl Eichwalder -- -- * Makefile.in (gettextsrcdir): Define using @datadir@. -- --Tue Mar 26 12:39:14 1996 Ulrich Drepper -- -- * finddomain.c: Include . Reported by Roland McGrath. -- --Sat Mar 23 02:00:35 1996 Ulrich Drepper -- -- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing -- with external declaration. -- --Sat Mar 2 00:47:09 1996 Ulrich Drepper -- -- * Makefile.in (all-no): Rename from all_no. -- --Sat Feb 17 00:25:59 1996 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * localealias.c (alias_compare): Increment string pointers in loop -- of strcasecmp replacement. -- --Fri Dec 29 21:16:34 1995 Ulrich Drepper -- -- * Makefile.in (install-src): Who commented this goal out ? :-) -- --Fri Dec 29 15:08:16 1995 Ulrich Drepper -- -- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls -- should not effect it because a missing catalog is no error. -- Reported by Harald Knig . -- --Tue Dec 19 22:09:13 1995 Ulrich Drepper -- -- * Makefile.in (Makefile): Explicitly use $(SHELL) for running -- shell scripts. -- --Fri Dec 15 17:34:59 1995 Andreas Schwab -- -- * 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 -- -- * 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 -- -- * 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 -- -- * Makefile.in (install-src): -- Install libintl.inst instead of libintl.h.install. -- --Sat Dec 2 22:51:38 1995 Marcus Daniels -- -- * 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 -- -- * cat-compat.c (bindtextdomain): Add missing { }. -- --Sun Nov 26 18:21:41 1995 Ulrich Drepper -- -- * 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 -- -- * hash-string.h: Capitalize arguments of macros. -- --Sat Nov 25 12:01:36 1995 Ulrich Drepper -- -- * 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 -- -- * dcgettext.c: Fix bug in preprocessor conditionals. -- --Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe -- -- * libgettext.h: Solaris cc does not understand -- #if !SYMBOL1 && !SYMBOL2. Sad but true. -- --Thu Nov 23 16:22:14 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * hash-string.h: Correct prototype for hash_string. -- --Sun Nov 12 12:42:30 1995 Ulrich Drepper -- -- * hash-string.h (hash_string): Add prototype. -- -- * gettextP.h: Fix copyright. -- (SWAP): Add prototype. -- --Wed Nov 8 22:56:33 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. -- --Sat Oct 28 23:20:47 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * cat-compat.c: Include 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 -- -- * 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 -- -- * finddomain.c: Correct some bugs in handling of CEN standard -- locale definitions. -- --Thu Sep 7 01:49:28 1995 Ulrich Drepper -- -- * finddomain.c: Implement CEN syntax. -- -- * gettextP.h (loaded_domain): Extend number of successors to 31. -- --Sat Aug 19 19:25:29 1995 Ulrich Drepper -- -- * 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 -- -- * Makefile.in (uninstall): Remove stuff installed by install-src. -- --Tue Aug 15 13:13:53 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * finddomain.c (unistd.h): -- Include to get _PC_PATH_MAX defined on system having it. -- --Fri Aug 4 22:42:00 1995 Ulrich Drepper -- -- * finddomain.c (stpcpy): Include prototype. -- -- * Makefile.in (dist): Remove `copying instead' message. -- --Wed Aug 2 18:52:03 1995 Ulrich Drepper -- -- * Makefile.in (ID, TAGS): Do not use $^. -- --Tue Aug 1 20:07:11 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * intl-compat.c (textdomain): Correct typo. -- --Wed Jul 19 01:51:35 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * cat-compat.c: If !STDC_HEADERS try to include malloc.h. -- --Thu Jul 13 20:55:02 1995 Ulrich Drepper -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * 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 -- -- * tupdate.perl.in: Complete rewrite for new .po file format. -+2004-01-29 GNU - --Sun Jul 2 02:06:50 1995 Ulrich Drepper -+ * 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 " -+ echo "# and Bruno Haible ." -+ 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 - #endif - --#include -- --#ifdef __GNUC__ --# define alloca __builtin_alloca --# define HAVE_ALLOCA 1 --#else --# if defined HAVE_ALLOCA_H || defined _LIBC --# include --# else --# ifdef _AIX -- #pragma alloca --# else --# ifndef alloca --char *alloca (); --# endif --# endif --# endif --#endif -- --#include --#ifndef errno --extern int errno; --#endif --#ifndef __set_errno --# define __set_errno(val) errno = (val) --#endif -- --#if defined STDC_HEADERS || defined _LIBC --# include --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include --# else --void free (); --# endif --#endif -- --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include --#else --# include --#endif --#if !HAVE_STRCHR && !defined _LIBC --# ifndef strchr --# define strchr index --# endif --#endif -- --#if defined HAVE_UNISTD_H || defined _LIBC --# include --#endif -- --#include "gettext.h" - #include "gettextP.h" - #ifdef _LIBC - # include - #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 --#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 --#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 to provide a prototype for mempcpy(). -+ This must come before because may include -+ , and once has been included, it's too late. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+ -+#ifdef __GNUC__ -+# define alloca __builtin_alloca -+# define HAVE_ALLOCA 1 -+#else -+# ifdef _MSC_VER -+# include -+# define alloca _alloca -+# else -+# if defined HAVE_ALLOCA_H || defined _LIBC -+# include -+# else -+# ifdef _AIX -+ #pragma alloca -+# else -+# ifndef alloca -+char *alloca (); -+# endif -+# endif -+# endif -+# endif -+#endif -+ -+#include -+#ifndef errno -+extern int errno; -+#endif -+#ifndef __set_errno -+# define __set_errno(val) errno = (val) -+#endif -+ -+#include -+#include -+#include -+ -+#if defined HAVE_UNISTD_H || defined _LIBC -+# include -+#endif -+ -+#include -+ -+#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 -+#endif -+ -+#if defined HAVE_SYS_PARAM_H || defined _LIBC -+# include -+#endif -+ -+#include "gettextP.h" -+#include "plural-exp.h" -+#ifdef _LIBC -+# include -+#else -+# include "libgnuintl.h" -+#endif -+#include "hash-string.h" -+ -+/* Thread safetyness. */ -+#ifdef _LIBC -+# include -+#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 . */ -+#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 -+#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 -+#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 -+ -+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 -+#endif -+ -+#include "gettextP.h" -+#ifdef _LIBC -+# include -+#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 - #endif - --#if defined HAVE_LOCALE_H || defined _LIBC --# include --#endif -+#include "gettextP.h" -+ -+#include - - #ifdef _LIBC - # include - #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 -+#endif -+ -+#include "gettextP.h" -+ -+#include -+ -+#ifdef _LIBC -+# include -+#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 , 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 -@@ -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 , 1995. -+ Copyright (C) 1995-1999, 2000-2001, 2003 Free Software Foundation, Inc. -+ Written by Ulrich Drepper , 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 - #endif - --#include --#include - #include - #include -- --#if defined STDC_HEADERS || defined _LIBC --# include --#else --# ifdef HAVE_MALLOC_H --# include --# else --void free (); --# endif --#endif -- --#if defined HAVE_STRING_H || defined _LIBC --# include --#else --# include --# 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 -+#include - - #if defined HAVE_UNISTD_H || defined _LIBC - # include - #endif - --#include "gettext.h" - #include "gettextP.h" - #ifdef _LIBC - # include - #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 -@@ -23,21 +24,14 @@ - # define __need_NULL - # include - #else --# ifdef STDC_HEADERS --# include /* Just for NULL. */ --# else --# ifdef HAVE_STRING_H --# include --# else --# define NULL ((void *) 0) --# endif --# endif -+# include /* Just for NULL. */ - #endif - -+#include "gettextP.h" - #ifdef _LIBC - # include - #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 -- --#if HAVE_LIMITS_H || _LIBC --# include --#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 ) 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 , 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 /* Get size_t. */ -+ -+#ifdef _LIBC -+# include "../iconv/gconv_int.h" -+#else -+# if HAVE_ICONV -+# include -+# 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 -+# 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 -+ -+/* @@ 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 ) 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 --#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 - #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 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 , 1995. -+/* Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc. -+ Contributed by Ulrich Drepper , 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 to provide a prototype for stpcpy(). -+ This must come before because may include -+ , and once has been included, it's too late. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif - - #ifdef HAVE_CONFIG_H - # include - #endif - -- --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include --#else --# include --# 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 - - #if defined _LIBC || defined HAVE_ARGZ_H - # include - #endif - #include - #include -- --#if defined STDC_HEADERS || defined _LIBC --# include --#endif -+#include - - #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 -- --#if HAVE_LOCALE_H --# include --#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 -+ -+/* 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, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5) -+ then includes (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 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 -+#include -+ -+/* Get va_list. */ -+#if __STDC__ || defined __cplusplus || defined _MSC_VER -+# include -+#else -+# include -+#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 , 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 -- 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 , 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 to provide a prototype for mempcpy(). -+ This must come before because may include -+ , and once has been included, it's too late. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif - - #ifdef HAVE_CONFIG_H - # include - #endif - -+#include -+#include - #include - #include - #include - --#if defined STDC_HEADERS || defined _LIBC --# include -+#ifdef __GNUC__ -+# undef alloca -+# define alloca __builtin_alloca -+# define HAVE_ALLOCA 1 -+#else -+# ifdef _MSC_VER -+# include -+# define alloca _alloca -+# else -+# if defined HAVE_ALLOCA_H || defined _LIBC -+# include -+# else -+# ifdef _AIX -+ #pragma alloca -+# else -+# ifndef alloca -+char *alloca (); -+# endif -+# endif -+# endif -+# endif - #endif - -+#include -+#include -+ - #if defined HAVE_UNISTD_H || defined _LIBC - # include - #endif - --#if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC -+#ifdef _LIBC -+# include -+# include -+#endif -+ -+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ -+ || (defined _LIBC && defined _POSIX_MAPPED_FILES) - # include -+# 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 -+#endif -+#if defined HAVE_INTTYPES_H || defined _LIBC -+# include -+#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 . -+ 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 . */ -+#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 . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+/* Specification. */ -+#include "localcharset.h" -+ -+#if HAVE_STDDEF_H -+# include -+#endif -+ -+#include -+#if HAVE_STRING_H -+# include -+#else -+# include -+#endif -+#if HAVE_STDLIB_H -+# include -+#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 -+# else -+# if HAVE_SETLOCALE -+# include -+# endif -+# endif -+#elif defined WIN32 -+# define WIN32_LEAN_AND_MEAN -+# include -+#endif -+#if defined OS2 -+# define INCL_DOS -+# include -+#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 , 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 to provide a prototype for mempcpy(). -+ This must come before because may include -+ , and once has been included, it's too late. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif - - #ifdef HAVE_CONFIG_H - # include -@@ -22,56 +29,45 @@ - - #include - #include -+#if defined _LIBC || defined HAVE___FSETLOCKING -+# include -+#endif - #include - - #ifdef __GNUC__ -+# undef alloca - # define alloca __builtin_alloca - # define HAVE_ALLOCA 1 - #else --# if defined HAVE_ALLOCA_H || defined _LIBC --# include -+# ifdef _MSC_VER -+# include -+# define alloca _alloca - # else --# ifdef _AIX -- #pragma alloca -+# if defined HAVE_ALLOCA_H || defined _LIBC -+# include - # else --# ifndef alloca -+# ifdef _AIX -+ #pragma alloca -+# else -+# ifndef alloca - char *alloca (); -+# endif - # endif - # endif - # endif - #endif - --#if defined STDC_HEADERS || defined _LIBC --# include --#else --char *getenv (); --# ifdef HAVE_MALLOC_H --# include --# else --void free (); --# endif --#endif -+#include -+#include - --#if defined HAVE_STRING_H || defined _LIBC --# ifndef _GNU_SOURCE --# define _GNU_SOURCE 1 --# endif --# include -+#include "gettextP.h" -+ -+#if ENABLE_RELOCATABLE -+# include "relocatable.h" - #else --# include --# 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 -+ -+__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 , 1995. */ -+/* Win32 code written by Tor Lillqvist . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#if defined _WIN32 || defined __WIN32__ -+# undef WIN32 /* avoid warning on mingw32 */ -+# define WIN32 -+#endif -+ -+#ifdef WIN32 -+# define WIN32_LEAN_AND_MEAN -+# include -+/* 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 . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+#include -+ -+/* 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 -+#endif -+ -+#ifdef _LIBC -+# define __need_NULL -+# include -+#else -+# include /* Just for NULL. */ -+#endif -+ -+#include "gettextP.h" -+#ifdef _LIBC -+# include -+#else -+# include "libgnuintl.h" -+#endif -+ -+#include -+ -+/* @@ 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 -+#endif -+ -+#include -+#include -+#include -+ -+/* 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 , 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 -+ because may include arbitrary system headers. */ -+#if defined _AIX && !defined __GNUC__ -+ #pragma alloca -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+#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 /* 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 /* 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 /* 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 , 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 -+#endif -+ -+#include -+#include -+#include -+ -+#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 , 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 , 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 -+ because may include arbitrary system headers. */ -+#if defined _AIX && !defined __GNUC__ -+ #pragma alloca -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+#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 EQUOP2 CMPOP2 ADDOP2 MULOP2 -+%token NUMBER -+%type 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 , 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 \ --#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 -- 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 -+#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 -+ -+/* Get wchar_t. */ -+#ifdef HAVE_WCHAR_T -+# include -+#endif -+ -+/* Get wint_t. */ -+#ifdef HAVE_WINT_T -+# include -+#endif -+ -+/* Get va_list. */ -+#include -+ -+ -+/* 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 , 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 -+#endif -+ -+#ifdef __GNUC__ -+# define alloca __builtin_alloca -+# define HAVE_ALLOCA 1 -+#else -+# ifdef _MSC_VER -+# include -+# define alloca _alloca -+# else -+# if defined HAVE_ALLOCA_H || defined _LIBC -+# include -+# else -+# ifdef _AIX -+ #pragma alloca -+# else -+# ifndef alloca -+char *alloca (); -+# endif -+# endif -+# endif -+# endif -+#endif -+ -+#include -+ -+#if !HAVE_POSIX_PRINTF -+ -+#include -+#include -+ -+/* 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 -+ -+#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 -+#endif -+ -+/* Specification. */ -+#if WIDE_CHAR_VERSION -+# include "wprintf-parse.h" -+#else -+# include "printf-parse.h" -+#endif -+ -+/* Get size_t, NULL. */ -+#include -+ -+/* Get intmax_t. */ -+#if HAVE_STDINT_H_WITH_UINTMAX -+# include -+#endif -+#if HAVE_INTTYPES_H_WITH_UINTMAX -+# include -+#endif -+ -+/* malloc(), realloc(), free(). */ -+#include -+ -+/* 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 . -+# -+/^# 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 . -+# -+/^# 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 , 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 to provide a prototype for getline(). -+ This must come before because may include -+ , and once 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 -+#include -+#include -+#include -+ -+#ifdef NO_XMALLOC -+# define xmalloc malloc -+#else -+# include "xalloc.h" -+#endif -+ -+#if defined _WIN32 || defined __WIN32__ -+# define WIN32_LEAN_AND_MEAN -+# include -+#endif -+ -+#if DEPENDS_ON_LIBCHARSET -+# include -+#endif -+#if DEPENDS_ON_LIBICONV && HAVE_ICONV -+# include -+#endif -+#if DEPENDS_ON_LIBINTL && ENABLE_NLS -+# include -+#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 , 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 , 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 - #endif - --#if defined STDC_HEADERS || defined _LIBC --# include --#endif -+#include -+#include - --#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC --# include -+#ifdef _LIBC -+# include - #else --# include --# ifndef memcpy --# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) --# endif -+# include "libgnuintl.h" - #endif -+#include "gettextP.h" - - #ifdef _LIBC --# include -+/* We have to handle multi-threaded applications. */ -+# include - #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 to provide a prototype for snprintf(). -+ This must come before because may include -+ , and once has been included, it's too late. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+#ifndef IN_LIBINTL -+# include -+#endif -+ -+/* Specification. */ -+#if WIDE_CHAR_VERSION -+# include "vasnwprintf.h" -+#else -+# include "vasnprintf.h" -+#endif -+ -+#include /* snprintf(), sprintf() */ -+#include /* abort(), malloc(), realloc(), free() */ -+#include /* memcpy(), strlen() */ -+#include /* errno */ -+#include /* CHAR_BIT */ -+#include /* 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 -+ -+/* Get size_t. */ -+#include -+ -+#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 -+ -+/* Get wchar_t, size_t. */ -+#include -+ -+#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 , 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 -- 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 ` ' -- 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 -+ -+/* Get SIZE_MAX. */ -+#include -+#if HAVE_STDINT_H -+# include -+#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 -+ -+ * 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 ], -+ [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 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 , 1995-2000. -+dnl Bruno Haible , 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 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 -+]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 -+]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 -+]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 ]) -+ gt_CHECK_DECL(_snwprintf, [#include ]) -+ -+ 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 ]) -+ gt_CHECK_DECL(fgets_unlocked, [#include ]) -+ gt_CHECK_DECL(getc_unlocked, [#include ]) -+ -+ 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 -+#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 -+#include ], -+ [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 -+#include ], -+ [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 -+#include -+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 -+#include -+ -+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 -+#include -+#if HAVE_STDINT_H_WITH_UINTMAX -+#include -+#endif -+#if HAVE_INTTYPES_H_WITH_UINTMAX -+#include -+#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 or .]) -+ 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 exists, -+# doesn't clash with , 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 -+#include ], -+ [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 exists, doesn't clash with , -+ 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 exists and doesn't clash with -+# . -+ -+AC_DEFUN([gt_HEADER_INTTYPES_H], -+[ -+ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, -+ [ -+ AC_TRY_COMPILE( -+ [#include -+#include ], -+ [], 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 exists and doesn't clash with .]) -+ 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 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 -+#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 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 , 1995. -+ -+# Check whether LC_MESSAGES is available in . -+ -+AC_DEFUN([AM_LC_MESSAGES], -+[ -+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, -+ [AC_TRY_LINK([#include ], [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 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 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 , 1995-2000. -+dnl Bruno Haible , 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 , 1995-2000. -+dnl Bruno Haible , 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 < "$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" < /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" <> "$ac_file.tmp" < -+#include -+/* 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 , 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 -+#if HAVE_STDINT_H -+#include -+#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 ], result=?) -+ _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo, -+ [#include ], result=?) -+ _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, -+ [#include ], 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 -+ 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 exists, -+# doesn't clash with , 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 -+#include ], -+ [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 exists, doesn't clash with , -+ 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 or . -+ -+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 and don't define.]) -+ else -+ AC_DEFINE(HAVE_UINTMAX_T, 1, -+ [Define if you have the 'uintmax_t' type in or .]) -+ 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 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 -+ 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 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 -+ 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 -+ -+scriptversion=2004-02-15.20 -+ -+# Original author: Noah Friedman - # Created: 1993-05-16 --# Last modified: 1995-03-05 --# Public domain -+# Public domain. -+# -+# This file is maintained in Automake, please report -+# bugs to or send patches to -+# . - - 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 ." - -- 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 --#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 -+ -+ * 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/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/include.patch b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/include.patch new file mode 100644 index 00000000..5fcb3aa9 --- /dev/null +++ b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/include.patch @@ -0,0 +1,25 @@ +Implicit declaration compile warning fixes from Debian + +Signed-off-by: Adrian Bunk +Upstream-Status: Inappropriate [upstream is dead] + +--- lrzsz-0.12.21.orig/lib/long-options.c ++++ lrzsz-0.12.21/lib/long-options.c +@@ -22,6 +22,7 @@ + #endif + + #include ++#include + #include + #include "long-options.h" + +--- lrzsz-0.12.21.orig/src/lsyslog.c ++++ lrzsz-0.12.21/src/lsyslog.c +@@ -22,6 +22,7 @@ + #ifdef ENABLE_SYSLOG + #include "zglobal.h" + #include ++#include + #include + #include + #endif diff --git a/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch b/external/poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch deleted file mode 100644 index 682f1c9c..00000000 --- a/external/poky/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 -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/external/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb b/external/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb index 002c774c..4129237c 100644 --- a/external/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb +++ b/external/poky/meta/recipes-bsp/lrzsz/lrzsz_0.12.20.bb @@ -13,13 +13,12 @@ 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 \ " SRC_URI[md5sum] = "b5ce6a74abc9b9eb2af94dffdfd372a4" diff --git a/external/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch b/external/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch new file mode 100644 index 00000000..d2a8048e --- /dev/null +++ b/external/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch @@ -0,0 +1,36 @@ +From fe9860fd85e49a75bef545e5d9914070491e8002 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Fri, 15 Feb 2019 14:57:41 -0800 +Subject: [PATCH] Makefile: Don't specify mabi or march + +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 OE flow bug] +Signed-off-by: Alistair Francis + +--- + Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Makefile b/Makefile +index ccf8ea3..69e5b38 100644 +--- a/Makefile ++++ b/Makefile +@@ -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) +@@ -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 +-ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) + ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + ASFLAGS += $(GENFLAGS) + ASFLAGS += $(platform-asflags-y) diff --git a/external/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/external/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc new file mode 100644 index 00000000..2e329432 --- /dev/null +++ b/external/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -0,0 +1,21 @@ +def riscv_get_extra_oemake_image(d): + sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + deploy_dir = d.getVar('DEPLOY_DIR_IMAGE') + + if sbi_payload is None: + return "" + + return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload + +def riscv_get_do_compile_depends(d): + sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + + if sbi_payload is None: + return "" + + if 'linux' in sbi_payload or 'Image' in sbi_payload: + return "virtual/kernel:do_deploy" + if 'u-boot.bin' in sbi_payload: + return "virtual/bootloader:do_deploy" + + return "" diff --git a/external/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb b/external/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb new file mode 100644 index 00000000..56f2d4b9 --- /dev/null +++ b/external/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb @@ -0,0 +1,48 @@ +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" + +require opensbi-payloads.inc + +inherit autotools-brokensep deploy + +SRCREV = "ac5e821d50be631f26274765a59bc1b444ffd862" +SRC_URI = "git://github.com/riscv/opensbi.git \ + file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ + " + +S = "${WORKDIR}/git" + +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)}" + +# Required if specifying a custom payload +do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" + +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 +} + +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}/ +} + +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.*" + +COMPATIBLE_HOST = "(riscv64|riscv32).*" +INHIBIT_PACKAGE_STRIP = "1" + +SECURITY_CFLAGS = "" diff --git a/external/poky/meta/recipes-bsp/pciutils/pciutils/configure.patch b/external/poky/meta/recipes-bsp/pciutils/pciutils/configure.patch index a7e44573..e444c139 100644 --- a/external/poky/meta/recipes-bsp/pciutils/pciutils/configure.patch +++ b/external/poky/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/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb b/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb deleted file mode 100644 index 413421cd..00000000 --- a/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.2.bb +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "PCI utilities" -DESCRIPTION = 'The PCI Utilities package contains a library for portable access \ -to PCI bus configuration space and several utilities based on this library.' -HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml" -SECTION = "console/utils" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -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" - -inherit multilib_header pkgconfig - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'hwdb', '', d)}" -PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev" - -PCI_CONF_FLAG = "ZLIB=yes DNS=yes SHARED=yes STRIP= LIBDIR=${libdir}" - -# see configure.patch -do_configure () { - ( - cd lib && \ - # PACKAGECONFIG_CONFARGS for this recipe could only possibly contain 'HWDB=yes/no', - # so we put it before ./configure - ${PCI_CONF_FLAG} ${PACKAGECONFIG_CONFARGS} ./configure ${PV} ${datadir} ${TARGET_OS} ${TARGET_ARCH} - ) -} - -export PREFIX = "${prefix}" -export SBINDIR = "${sbindir}" -export SHAREDIR = "${datadir}" -export MANDIR = "${mandir}" - -EXTRA_OEMAKE = "-e MAKEFLAGS= ${PCI_CONF_FLAG}" - -ASNEEDED = "" - -# The configure script breaks if the HOST variable is set -HOST[unexport] = "1" - -do_install () { - oe_runmake DESTDIR=${D} install install-lib - - install -d ${D}${bindir} - ln -s ../sbin/lspci ${D}${bindir}/lspci - - oe_multilib_header pci/config.h -} - -PACKAGES =+ "${PN}-ids libpci" -FILES_${PN}-ids = "${datadir}/pci.ids*" -FILES_libpci = "${libdir}/libpci.so.*" -SUMMARY_${PN}-ids = "PCI utilities - device ID database" -DESCRIPTION_${PN}-ids = "Package providing the PCI device ID database for pciutils." -RDEPENDS_${PN} += "${PN}-ids" diff --git a/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb b/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb new file mode 100644 index 00000000..034bb63d --- /dev/null +++ b/external/poky/meta/recipes-bsp/pciutils/pciutils_3.6.4.bb @@ -0,0 +1,60 @@ +SUMMARY = "PCI utilities" +DESCRIPTION = 'The PCI Utilities package contains a library for portable access \ +to PCI bus configuration space and several utilities based on this library.' +HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml" +SECTION = "console/utils" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +DEPENDS = "zlib kmod" + +SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz \ + file://configure.patch" + +SRC_URI[md5sum] = "4343b37e19f319ce8f3d59c30031790e" +SRC_URI[sha256sum] = "f67ff732976e2db2a5ccdf3960020796526ba6b05f6b1cdd24b7b206af706055" + +inherit multilib_header pkgconfig + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'hwdb', '', d)}" +PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev" + +PCI_CONF_FLAG = "ZLIB=yes DNS=yes SHARED=yes STRIP= LIBDIR=${libdir}" + +# see configure.patch +do_configure () { + ( + cd lib && \ + # PACKAGECONFIG_CONFARGS for this recipe could only possibly contain 'HWDB=yes/no', + # so we put it before ./configure + ${PCI_CONF_FLAG} ${PACKAGECONFIG_CONFARGS} ./configure ${PV} ${datadir} ${TARGET_OS} ${TARGET_ARCH} + ) +} + +export PREFIX = "${prefix}" +export SBINDIR = "${sbindir}" +export SHAREDIR = "${datadir}" +export MANDIR = "${mandir}" + +EXTRA_OEMAKE = "-e MAKEFLAGS= ${PCI_CONF_FLAG}" + +ASNEEDED = "" + +# The configure script breaks if the HOST variable is set +HOST[unexport] = "1" + +do_install () { + oe_runmake DESTDIR=${D} install install-lib + + install -d ${D}${bindir} + ln -s ../sbin/lspci ${D}${bindir}/lspci + + oe_multilib_header pci/config.h +} + +PACKAGES =+ "${PN}-ids libpci" +FILES_${PN}-ids = "${datadir}/pci.ids*" +FILES_libpci = "${libdir}/libpci.so.*" +SUMMARY_${PN}-ids = "PCI utilities - device ID database" +DESCRIPTION_${PN}-ids = "Package providing the PCI device ID database for pciutils." +RDEPENDS_${PN} += "${PN}-ids" diff --git a/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-1.patch b/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-1.patch deleted file mode 100644 index fed3c3dc..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-1.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 7346c1e192d63cd35f99c7e845e53c5d4d0bdc24 Mon Sep 17 00:00:00 2001 -From: Teddy Reed -Date: Sat, 9 Jun 2018 11:45:20 -0400 -Subject: [PATCH] vboot: Do not use hashed-strings offset - -The hashed-strings signature property includes two uint32_t values. -The first is unneeded as there should never be a start offset into the -strings region. The second, the size, is needed because the added -signature node appends to this region. - -See tools/image-host.c, where a static 0 value is used for the offset. - -Signed-off-by: Teddy Reed -Reviewed-by: Simon Glass - -Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit; - h=7346c1e192d63cd35f99c7e845e53c5d4d0bdc24] - -CVE: CVE-2018-1000205 - -Signed-off-by: Changqing Li ---- - common/image-sig.c | 7 +++++-- - tools/image-host.c | 1 + - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/common/image-sig.c b/common/image-sig.c -index 8d2fd10..5a269d3 100644 ---- a/common/image-sig.c -+++ b/common/image-sig.c -@@ -377,8 +377,11 @@ int fit_config_check_sig(const void *fit, int noffset, int required_keynode, - /* Add the strings */ - strings = fdt_getprop(fit, noffset, "hashed-strings", NULL); - if (strings) { -- fdt_regions[count].offset = fdt_off_dt_strings(fit) + -- fdt32_to_cpu(strings[0]); -+ /* -+ * The strings region offset must be a static 0x0. -+ * This is set in tool/image-host.c -+ */ -+ fdt_regions[count].offset = fdt_off_dt_strings(fit); - fdt_regions[count].size = fdt32_to_cpu(strings[1]); - count++; - } -diff --git a/tools/image-host.c b/tools/image-host.c -index 8e43671..be2d59b 100644 ---- a/tools/image-host.c -+++ b/tools/image-host.c -@@ -135,6 +135,7 @@ static int fit_image_write_sig(void *fit, int noffset, uint8_t *value, - - ret = fdt_setprop(fit, noffset, "hashed-nodes", - region_prop, region_proplen); -+ /* This is a legacy offset, it is unused, and must remain 0. */ - strdata[0] = 0; - strdata[1] = cpu_to_fdt32(string_size); - if (!ret) { --- -2.7.4 - diff --git a/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-2.patch b/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-2.patch deleted file mode 100644 index bb79af1c..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/files/CVE-2018-1000205-2.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 72239fc85f3eda078547956608c063ab965e90e9 Mon Sep 17 00:00:00 2001 -From: Teddy Reed -Date: Sat, 9 Jun 2018 11:38:05 -0400 -Subject: [PATCH] vboot: Add FIT_SIGNATURE_MAX_SIZE protection - -This adds a new config value FIT_SIGNATURE_MAX_SIZE, which controls the -max size of a FIT header's totalsize field. The field is checked before -signature checks are applied to protect from reading past the intended -FIT regions. - -This field is not part of the vboot signature so it should be sanity -checked. If the field is corrupted then the structure or string region -reads may have unintended behavior, such as reading from device memory. -A default value of 256MB is set and intended to support most max storage -sizes. - -Suggested-by: Simon Glass -Signed-off-by: Teddy Reed -Reviewed-by: Simon Glass - -Upstream-Status: Backport[http://git.denx.de/?p=u-boot.git;a=commit; - h=72239fc85f3eda078547956608c063ab965e90e9] - -CVE: CVE-2018-1000205 - -Signed-off-by: Changqing Li ---- - Kconfig | 10 ++++++++++ - common/image-sig.c | 5 +++++ - test/py/tests/test_vboot.py | 33 +++++++++++++++++++++++++++++++++ - tools/Makefile | 1 + - 4 files changed, 49 insertions(+) - -diff --git a/Kconfig b/Kconfig -index 5a82c95..c8b86cd 100644 ---- a/Kconfig -+++ b/Kconfig -@@ -267,6 +267,16 @@ config FIT_SIGNATURE - format support in this case, enable it using - CONFIG_IMAGE_FORMAT_LEGACY. - -+config FIT_SIGNATURE_MAX_SIZE -+ hex "Max size of signed FIT structures" -+ depends on FIT_SIGNATURE -+ default 0x10000000 -+ help -+ This option sets a max size in bytes for verified FIT uImages. -+ A sane value of 256MB protects corrupted DTB structures from overlapping -+ device memory. Assure this size does not extend past expected storage -+ space. -+ - config FIT_VERBOSE - bool "Show verbose messages when FIT images fail" - help -diff --git a/common/image-sig.c b/common/image-sig.c -index f65d883..8d2fd10 100644 ---- a/common/image-sig.c -+++ b/common/image-sig.c -@@ -156,6 +156,11 @@ static int fit_image_setup_verify(struct image_sign_info *info, - { - char *algo_name; - -+ if (fdt_totalsize(fit) > CONFIG_FIT_SIGNATURE_MAX_SIZE) { -+ *err_msgp = "Total size too large"; -+ return 1; -+ } -+ - if (fit_image_hash_get_algo(fit, noffset, &algo_name)) { - *err_msgp = "Can't get hash algo property"; - return -1; -diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py -index ee939f2..3d25ec3 100644 ---- a/test/py/tests/test_vboot.py -+++ b/test/py/tests/test_vboot.py -@@ -26,6 +26,7 @@ Tests run with both SHA1 and SHA256 hashing. - - import pytest - import sys -+import struct - import u_boot_utils as util - - @pytest.mark.boardspec('sandbox') -@@ -105,6 +106,26 @@ def test_vboot(u_boot_console): - util.run_and_log(cons, [mkimage, '-F', '-k', tmpdir, '-K', dtb, - '-r', fit]) - -+ def replace_fit_totalsize(size): -+ """Replace FIT header's totalsize with something greater. -+ -+ The totalsize must be less than or equal to FIT_SIGNATURE_MAX_SIZE. -+ If the size is greater, the signature verification should return false. -+ -+ Args: -+ size: The new totalsize of the header -+ -+ Returns: -+ prev_size: The previous totalsize read from the header -+ """ -+ total_size = 0 -+ with open(fit, 'r+b') as handle: -+ handle.seek(4) -+ total_size = handle.read(4) -+ handle.seek(4) -+ handle.write(struct.pack(">I", size)) -+ return struct.unpack(">I", total_size)[0] -+ - def test_with_algo(sha_algo): - """Test verified boot with the given hash algorithm. - -@@ -146,6 +167,18 @@ def test_vboot(u_boot_console): - util.run_and_log(cons, [fit_check_sign, '-f', fit, '-k', tmpdir, - '-k', dtb]) - -+ # Replace header bytes -+ bcfg = u_boot_console.config.buildconfig -+ max_size = int(bcfg.get('config_fit_signature_max_size', 0x10000000), 0) -+ existing_size = replace_fit_totalsize(max_size + 1) -+ run_bootm(sha_algo, 'Signed config with bad hash', 'Bad Data Hash', False) -+ cons.log.action('%s: Check overflowed FIT header totalsize' % sha_algo) -+ -+ # Replace with existing header bytes -+ replace_fit_totalsize(existing_size) -+ run_bootm(sha_algo, 'signed config', 'dev+', True) -+ cons.log.action('%s: Check default FIT header totalsize' % sha_algo) -+ - # Increment the first byte of the signature, which should cause failure - sig = util.run_and_log(cons, 'fdtget -t bx %s %s value' % - (fit, sig_node)) -diff --git a/tools/Makefile b/tools/Makefile -index 5dd33ed..0c3341e 100644 ---- a/tools/Makefile -+++ b/tools/Makefile -@@ -133,6 +133,7 @@ ifdef CONFIG_FIT_SIGNATURE - # This affects include/image.h, but including the board config file - # is tricky, so manually define this options here. - HOST_EXTRACFLAGS += -DCONFIG_FIT_SIGNATURE -+HOST_EXTRACFLAGS += -DCONFIG_FIT_SIGNATURE_MAX_SIZE=$(CONFIG_FIT_SIGNATURE_MAX_SIZE) - endif - - ifdef CONFIG_SYS_U_BOOT_OFFS --- -2.7.4 - diff --git a/external/poky/meta/recipes-bsp/u-boot/files/remove-redundant-yyloc-global.patch b/external/poky/meta/recipes-bsp/u-boot/files/remove-redundant-yyloc-global.patch new file mode 100644 index 00000000..2a184e57 --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/files/remove-redundant-yyloc-global.patch @@ -0,0 +1,27 @@ +From 018921ee79d3f30893614b3b2b63b588d8544f73 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 30 Jan 2020 09:37:15 +0000 +Subject: [PATCH] Remove redundant YYLOC global declaration + +Same as the upstream fix for building dtc with gcc 10. + +Signed-off-by: Peter Robinson +--- + scripts/dtc/dtc-lexer.l | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l +index fd825ebba6..24af549977 100644 +--- a/scripts/dtc/dtc-lexer.l ++++ b/scripts/dtc/dtc-lexer.l +@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +-- +2.26.2 + diff --git a/external/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/external/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb new file mode 100644 index 00000000..ea29b668 --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb @@ -0,0 +1,27 @@ +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" + +PV = "0.2+git${SRCPV}" +SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https" +SRCREV = "f4b9cde3815abe84a98079cedd515283ea08c16b" + +S = "${WORKDIR}/git" + +inherit cmake lib_package + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release" + +DEPENDS = "zlib" +PROVIDES += "u-boot-fw-utils" +RPROVIDES_${PN}-bin += "u-boot-fw-utils" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/external/poky/meta/recipes-bsp/u-boot/u-boot-common.inc new file mode 100644 index 00000000..4a17894c --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/u-boot-common.inc @@ -0,0 +1,23 @@ +HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome" +DESCRIPTION = "U-Boot, a boot loader for Embedded boards based on PowerPC, \ +ARM, MIPS and several other processors, which can be installed in a boot \ +ROM and used to initialize and test the hardware or to download and run \ +application code." +SECTION = "bootloaders" +DEPENDS += "flex-native bison-native" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" +PE = "1" + +# We use the revision in order to avoid having to fetch it from the +# repo during parse +SRCREV = "303f8fed261020c1cb7da32dad63b610bf6873dd" + +SRC_URI = "git://git.denx.de/u-boot.git \ + file://remove-redundant-yyloc-global.patch \ + " + +S = "${WORKDIR}/git" +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot-common_2018.07.inc b/external/poky/meta/recipes-bsp/u-boot/u-boot-common_2018.07.inc deleted file mode 100644 index 22b44dcc..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/u-boot-common_2018.07.inc +++ /dev/null @@ -1,18 +0,0 @@ -HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome" -SECTION = "bootloaders" -DEPENDS += "flex-native bison-native" - -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" -PE = "1" - -# We use the revision in order to avoid having to fetch it from the -# repo during parse -SRCREV = "8c5d4fd0ec222701598a27b26ab7265d4cee45a3" - -SRC_URI = "git://git.denx.de/u-boot.git \ - file://CVE-2018-1000205-1.patch \ - file://CVE-2018-1000205-2.patch \ -" - -S = "${WORKDIR}/git" diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2018.07.bb b/external/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2018.07.bb deleted file mode 100644 index 52c13e75..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2018.07.bb +++ /dev/null @@ -1,34 +0,0 @@ -require u-boot-common_${PV}.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/external/poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb b/external/poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb deleted file mode 100644 index 08bff1d1..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/u-boot-mkimage_2018.07.bb +++ /dev/null @@ -1,29 +0,0 @@ -require u-boot-common_${PV}.inc - -SUMMARY = "U-Boot bootloader image creation tool" -DEPENDS += "openssl" - -EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' -EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' -EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' - -do_compile () { - oe_runmake sandbox_defconfig - - # 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 "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" .config - - oe_runmake cross_tools NO_SDL=1 -} - -do_install () { - install -d ${D}${bindir} - install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage - ln -sf uboot-mkimage ${D}${bindir}/mkimage -} - -RDEPENDS_${PN} += "dtc" - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc b/external/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc new file mode 100644 index 00000000..8ae290ac --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc @@ -0,0 +1,66 @@ +SUMMARY = "U-Boot bootloader tools" +DEPENDS += "openssl" + +PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage" +PROVIDES_class-native = "u-boot-mkimage-native u-boot-mkenvimage-native" + +PACKAGES += "${PN}-mkimage ${PN}-mkenvimage" + +# Required for backward compatibility with "u-boot-mkimage-xxx.bb" +RPROVIDES_${PN}-mkimage = "u-boot-mkimage" +RREPLACES_${PN}-mkimage = "u-boot-mkimage" +RCONFLICTS_${PN}-mkimage = "u-boot-mkimage" + +EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' +EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' +EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' + +SED_CONFIG_EFI = '-e "s/CONFIG_EFI_LOADER=.*/# CONFIG_EFI_LOADER is not set/"' +SED_CONFIG_EFI_x86 = '' +SED_CONFIG_EFI_x86-64 = '' +SED_CONFIG_EFI_arm = '' +SED_CONFIG_EFI_armeb = '' +SED_CONFIG_EFI_aarch64 = '' + +do_compile () { + 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} ${B}/.config + + oe_runmake -C ${S} cross_tools NO_SDL=1 O=${B} +} + +do_install () { + install -d ${D}${bindir} + + # mkimage + install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage + ln -sf uboot-mkimage ${D}${bindir}/mkimage + + # mkenvimage + install -m 0755 tools/mkenvimage ${D}${bindir}/uboot-mkenvimage + ln -sf uboot-mkenvimage ${D}${bindir}/mkenvimage + + # dumpimage + install -m 0755 tools/dumpimage ${D}${bindir}/uboot-dumpimage + ln -sf uboot-dumpimage ${D}${bindir}/dumpimage + + # fit_check_sign + install -m 0755 tools/fit_check_sign ${D}${bindir}/uboot-fit_check_sign + ln -sf uboot-fit_check_sign ${D}${bindir}/fit_check_sign +} + +ALLOW_EMPTY_${PN} = "1" +FILES_${PN} = "" +FILES_${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage ${bindir}/uboot-dumpimage ${bindir}/dumpimage ${bindir}/uboot-fit_check_sign ${bindir}/fit_check_sign" +FILES_${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage" + +RDEPENDS_${PN}-mkimage += "dtc" +RDEPENDS_${PN} += "${PN}-mkimage ${PN}-mkenvimage" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb b/external/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb new file mode 100644 index 00000000..7eaf721c --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.01.bb @@ -0,0 +1,2 @@ +require u-boot-common.inc +require u-boot-tools.inc diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot.inc b/external/poky/meta/recipes-bsp/u-boot/u-boot.inc index 48fbc572..23cc795c 100644 --- a/external/poky/meta/recipes-bsp/u-boot/u-boot.inc +++ b/external/poky/meta/recipes-bsp/u-boot/u-boot.inc @@ -1,17 +1,17 @@ SUMMARY = "Universal Boot Loader for embedded devices" PROVIDES = "virtual/bootloader" -B = "${WORKDIR}/build" - PACKAGE_ARCH = "${MACHINE_ARCH}" -inherit uboot-config uboot-extlinux-config uboot-sign deploy +DEPENDS += "kern-tools-native" + +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 += 'PYTHON=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 @@ -60,12 +60,56 @@ 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 [ -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 + oe_runmake -C ${S} O=${B} oldconfig + fi + merge_config.sh -m .config ${@" ".join(find_cfgs(d))} + cml1_do_configure + fi +} + do_compile () { if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk @@ -81,7 +125,7 @@ do_compile () { 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 @@ -90,7 +134,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); @@ -98,6 +141,13 @@ 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 @@ -105,8 +155,12 @@ do_compile () { done unset i else - oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET} + + # Generate the uboot-initial-env + if [ -n "${UBOOT_INITIAL_ENV}" ]; then + oe_runmake -C ${S} O=${B} u-boot-initial-env + fi fi } @@ -120,19 +174,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 done 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}" ] @@ -201,7 +268,17 @@ do_install () { } -FILES_${PN} = "/boot ${sysconfdir}" +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}" ] @@ -212,25 +289,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 done 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}" ] diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot_2018.07.bb b/external/poky/meta/recipes-bsp/u-boot/u-boot_2018.07.bb deleted file mode 100644 index 37c21dca..00000000 --- a/external/poky/meta/recipes-bsp/u-boot/u-boot_2018.07.bb +++ /dev/null @@ -1,4 +0,0 @@ -require u-boot-common_${PV}.inc -require u-boot.inc - -DEPENDS += "bc-native dtc-native" diff --git a/external/poky/meta/recipes-bsp/u-boot/u-boot_2020.01.bb b/external/poky/meta/recipes-bsp/u-boot/u-boot_2020.01.bb new file mode 100644 index 00000000..02d67c0d --- /dev/null +++ b/external/poky/meta/recipes-bsp/u-boot/u-boot_2020.01.bb @@ -0,0 +1,4 @@ +require u-boot-common.inc +require u-boot.inc + +DEPENDS += "bc-native dtc-native" diff --git a/external/poky/meta/recipes-bsp/usbinit/usbinit.bb b/external/poky/meta/recipes-bsp/usbinit/usbinit.bb index aba44b40..ef98f0bf 100644 --- a/external/poky/meta/recipes-bsp/usbinit/usbinit.bb +++ b/external/poky/meta/recipes-bsp/usbinit/usbinit.bb @@ -1,4 +1,8 @@ SUMMARY = "Initscript for enabling USB gadget Ethernet" +DESCRIPTION = "This module allows ethernet emulation over USB, allowing for \ +all sorts of nifty things like SSH and NFS in one go plus charging over the \ +same wire, at higher speeds than most Wifi connections." +HOMEPAGE = "http://linux-sunxi.org/USB_Gadget/Ethernet" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe" diff --git a/external/poky/meta/recipes-bsp/usbutils/usbutils/usb-devices-avoid-dependency-on-bash.patch b/external/poky/meta/recipes-bsp/usbutils/usbutils/usb-devices-avoid-dependency-on-bash.patch deleted file mode 100644 index 7edff261..00000000 --- a/external/poky/meta/recipes-bsp/usbutils/usbutils/usb-devices-avoid-dependency-on-bash.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Backport (https://github.com/gregkh/usbutils/commit/508d1acf42e1bfd470c6bf1a188574c69c20aeed) -Signed-off-by: Ross Burton - -From 1c9162a5b30550aec8fa163906067bc179291b57 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Fri, 27 Jul 2018 15:28:34 +0100 -Subject: [PATCH] usb-devices: use /bin/sh - -This script doesn't use any bashisms, so change the hashbang to /bin/sh. - -Fixes #73. - -Signed-off-by: Ross Burton ---- - usb-devices | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/usb-devices b/usb-devices -index afb4217..89d1b7d 100755 ---- a/usb-devices -+++ b/usb-devices -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # SPDX-License-Identifier: GPL-2.0+ - # - # Copyright (c) 2009 Greg Kroah-Hartman --- -2.11.0 - diff --git a/external/poky/meta/recipes-bsp/usbutils/usbutils_010.bb b/external/poky/meta/recipes-bsp/usbutils/usbutils_010.bb deleted file mode 100644 index e6d05b8e..00000000 --- a/external/poky/meta/recipes-bsp/usbutils/usbutils_010.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Host side USB console utilities" -DESCRIPTION = "Contains the lsusb utility for inspecting the devices connected to the USB bus." -HOMEPAGE = "http://www.linux-usb.org" -SECTION = "base" - -LICENSE = "GPLv2+ & (GPLv2 | GPLv3)" -# License files went missing in 010, when 011 is released add LICENSES/* back -LIC_FILES_CHKSUM = "file://lsusb.c;endline=1;md5=7d4861d978ff5ba7cb2b319ed1d4afe3 \ - file://lsusb.py.in;beginline=2;endline=2;md5=194d6a0226bf90f4f683e8968878b6cd" - -DEPENDS = "libusb1 virtual/libiconv udev" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \ - file://usb-devices-avoid-dependency-on-bash.patch \ - " -SRC_URI[md5sum] = "5eb2d2d68f9ed6dc3e9659a5988f7ed6" -SRC_URI[sha256sum] = "881ba47fb2df10c3ba54a4cd6755a90377180890788e476f99d480ea9bc8bb58" - -inherit autotools pkgconfig distro_features_check update-alternatives - -ALTERNATIVE_${PN} = "lsusb" -ALTERNATIVE_PRIORITY = "100" - -# The binaries are mostly GPLv2+ apart from lsusb.py which is GPLv2 or v3. -LICENSE_${PN} = "GPLv2+" -LICENSE_${PN}-python = "GPLv2 | GPLv3" - -RRECOMMENDS_${PN} = "udev-hwdb" - -PACKAGE_BEFORE_PN =+ "${PN}-python" -FILES_${PN}-python += "${bindir}/lsusb.py" -RDEPENDS_${PN}-python = "python3-core" diff --git a/external/poky/meta/recipes-bsp/usbutils/usbutils_012.bb b/external/poky/meta/recipes-bsp/usbutils/usbutils_012.bb new file mode 100644 index 00000000..b670fa4a --- /dev/null +++ b/external/poky/meta/recipes-bsp/usbutils/usbutils_012.bb @@ -0,0 +1,31 @@ +SUMMARY = "Host side USB console utilities" +DESCRIPTION = "Contains the lsusb utility for inspecting the devices connected to the USB bus." +HOMEPAGE = "http://www.linux-usb.org" +SECTION = "base" + +LICENSE = "GPLv2+ & (GPLv2 | GPLv3)" +# License files went missing in 010, when 011 is released add LICENSES/* back +LIC_FILES_CHKSUM = "file://lsusb.c;endline=1;md5=7d4861d978ff5ba7cb2b319ed1d4afe3 \ + file://lsusb.py.in;beginline=2;endline=2;md5=194d6a0226bf90f4f683e8968878b6cd" + +DEPENDS = "libusb1 virtual/libiconv udev" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \ + " +SRC_URI[md5sum] = "7484445cbcf04b3eacac892fe58f8d9f" +SRC_URI[sha256sum] = "ae2e10aad530d95839b6f4d46cd41715eae6f0f1789310d793e9be21b3e7ae20" + +inherit autotools pkgconfig features_check update-alternatives + +ALTERNATIVE_${PN} = "lsusb" +ALTERNATIVE_PRIORITY = "100" + +# The binaries are mostly GPLv2+ apart from lsusb.py which is GPLv2 or v3. +LICENSE_${PN} = "GPLv2+" +LICENSE_${PN}-python = "GPLv2 | GPLv3" + +RRECOMMENDS_${PN} = "udev-hwdb" + +PACKAGE_BEFORE_PN =+ "${PN}-python" +FILES_${PN}-python += "${bindir}/lsusb.py" +RDEPENDS_${PN}-python = "python3-core" diff --git a/external/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb b/external/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb index a77653bf..1510a0ef 100644 --- a/external/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb +++ b/external/poky/meta/recipes-connectivity/avahi/avahi-ui_0.7.bb @@ -1,6 +1,6 @@ require avahi.inc -inherit distro_features_check +inherit features_check ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" DEPENDS += "avahi" @@ -20,7 +20,13 @@ FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \ do_install_append () { rm ${D}${sysconfdir} -rf - rm ${D}${base_libdir} -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 diff --git a/external/poky/meta/recipes-connectivity/avahi/avahi.inc b/external/poky/meta/recipes-connectivity/avahi/avahi.inc index 8339e451..6acedb54 100644 --- a/external/poky/meta/recipes-connectivity/avahi/avahi.inc +++ b/external/poky/meta/recipes-connectivity/avahi/avahi.inc @@ -36,6 +36,7 @@ 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 @@ -76,4 +77,15 @@ do_install() { 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" diff --git a/external/poky/meta/recipes-connectivity/avahi/avahi_0.7.bb b/external/poky/meta/recipes-connectivity/avahi/avahi_0.7.bb index 2e04d304..f6e3afb2 100644 --- a/external/poky/meta/recipes-connectivity/avahi/avahi_0.7.bb +++ b/external/poky/meta/recipes-connectivity/avahi/avahi_0.7.bb @@ -10,6 +10,16 @@ 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" +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} = "" diff --git a/external/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch b/external/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch index 11e7e8a9..cb8b83fd 100644 --- a/external/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch +++ b/external/poky/meta/recipes-connectivity/avahi/files/0001-Fix-opening-etc-resolv.conf-error.patch @@ -19,6 +19,11 @@ is marked as OE specific. Upstream-Status: Inappropriate [OE Specific] Signed-off-by: Chen Qi + +When connman installed to image, /etc/resolv.conf is link to +/etc/resolv-conf.connman. So launch avahi-daemon after connman too. + +Signed-off-by: Kai Kang --- avahi-daemon/avahi-daemon.service.in | 1 + 1 file changed, 1 insertion(+) @@ -31,7 +36,7 @@ index 548c834..63e28e4 100644 [Unit] Description=Avahi mDNS/DNS-SD Stack Requires=avahi-daemon.socket -+After=systemd-resolved.service ++After=systemd-resolved.service connman.service [Service] Type=dbus diff --git a/external/poky/meta/recipes-connectivity/bind/bind/0001-build-use-pkg-config-to-find-libxml2.patch b/external/poky/meta/recipes-connectivity/bind/bind/0001-build-use-pkg-config-to-find-libxml2.patch deleted file mode 100644 index 1e23c0f5..00000000 --- a/external/poky/meta/recipes-connectivity/bind/bind/0001-build-use-pkg-config-to-find-libxml2.patch +++ /dev/null @@ -1,54 +0,0 @@ -xml2-config is disabled, so change the configure script to use pkgconfig to find -libxml2. - -Upstream-Status: Inappropriate -Signed-off-by: Ross Burton - -Update context for version 9.10.3-P2. - -Signed-off-by: Kai Kang - -Update context for version 9.10.5-P3. - -Signed-off-by: Kai Kang ---- - configure.in | 23 +++-------------------- - 1 file changed, 3 insertions(+), 20 deletions(-) - -diff --git a/configure.in b/configure.in -index 4da73a4..6f2a754 100644 ---- a/configure.in -+++ b/configure.in -@@ -2282,26 +2282,9 @@ case "$use_libxml2" in - DST_LIBXML2_INC="" - ;; - auto|yes) -- case X`(xml2-config --version) 2>/dev/null` in -- X2.[[6789]].*) -- libxml2_libs=`xml2-config --libs` -- libxml2_cflags=`xml2-config --cflags` -- ;; -- *) -- if test "yes" = "$use_libxml2" ; then -- AC_MSG_RESULT(no) -- AC_MSG_ERROR(required libxml2 version not available) -- else -- libxml2_libs= -- libxml2_cflags= -- fi -- ;; -- esac -- ;; -- *) -- if test -f "$use_libxml2/bin/xml2-config" ; then -- libxml2_libs=`$use_libxml2/bin/xml2-config --libs` -- libxml2_cflags=`$use_libxml2/bin/xml2-config --cflags` -+ if pkg-config --exists libxml-2.0 ; then -+ libxml2_libs=`pkg-config libxml-2.0 --libs` -+ libxml2_cflags=`pkg-config libxml-2.0 --cflags` - fi - ;; - esac --- -2.1.4 - diff --git a/external/poky/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch b/external/poky/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch index 871bb2a5..9d31b980 100644 --- a/external/poky/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch +++ b/external/poky/meta/recipes-connectivity/bind/bind/0001-configure.in-remove-useless-L-use_openssl-lib.patch @@ -1,4 +1,4 @@ -From 950867d9fd3f690e271c8c807b6eed144b2935b2 Mon Sep 17 00:00:00 2001 +From 2325a92f1896a2a7f586611686801b41fbc91b50 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Mon, 27 Aug 2018 15:00:51 +0800 Subject: [PATCH] configure.in: remove useless `-L$use_openssl/lib' @@ -10,15 +10,16 @@ and helpful for clean up host build path in isc-config.sh Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Hongxu Jia + --- - configure.in | 2 +- + configure.ac | 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]) +diff --git a/configure.ac b/configure.ac +index e85a5c6..2bbfc58 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1631,7 +1631,7 @@ If you don't want OpenSSL, use --without-openssl]) fi ;; *) @@ -27,6 +28,3 @@ index 54efc55..76ac0eb 100644 ;; esac fi --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch b/external/poky/meta/recipes-connectivity/bind/bind/0001-gen.c-extend-DIRNAMESIZE-from-256-to-512.patch deleted file mode 100644 index a8d601dc..00000000 --- a/external/poky/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 ---- - 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/external/poky/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch b/external/poky/meta/recipes-connectivity/bind/bind/0001-lib-dns-gen.c-fix-too-long-error.patch deleted file mode 100644 index 01874a44..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch b/external/poky/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch index 37e210e6..84559e5f 100644 --- a/external/poky/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch +++ b/external/poky/meta/recipes-connectivity/bind/bind/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 Date: Tue, 9 Jun 2015 11:22:00 -0400 Subject: [PATCH] bind: ensure searching for json headers searches sysroot @@ -27,15 +27,16 @@ to make use of the combination some day. Upstream-Status: Inappropriate [OE Specific] Signed-off-by: Paul Gortmaker + --- - configure.in | 2 +- + configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: bind-9.11.3/configure.in -=================================================================== ---- bind-9.11.3.orig/configure.in -+++ bind-9.11.3/configure.in -@@ -2574,7 +2574,7 @@ case "$use_libjson" in +diff --git a/configure.ac b/configure.ac +index 17392fd..e85a5c6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2449,7 +2449,7 @@ case "$use_libjson" in libjson_libs="" ;; auto|yes) diff --git a/external/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb b/external/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb new file mode 100644 index 00000000..ee546a0a --- /dev/null +++ b/external/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb @@ -0,0 +1,140 @@ +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=bf39058a7f64b2a934ce14dc9ec1dd45" + +DEPENDS = "openssl libcap zlib" + +SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ + file://conf.patch \ + file://named.service \ + file://bind9 \ + file://generate-rndc-key.sh \ + file://make-etc-initd-bind-stop-work.patch \ + file://init.d-add-support-for-read-only-rootfs.patch \ + file://bind-ensure-searching-for-json-headers-searches-sysr.patch \ + file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \ + file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \ + file://0001-avoid-start-failure-with-bind-user.patch \ + " + +SRC_URI[sha256sum] = "668158b005b3de4328fa0dbbbb3f524b66f28f024c67538aa9412a9e69c9dfbc" + +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 = "(?P9.(11|16|20|24|28)(\.\d+)+(-P\d+)*)/" + +# BIND >= 9.11.2 need dhcpd >= 4.4.0, +# don't report it here since dhcpd is already recent enough. +CVE_CHECK_WHITELIST += "CVE-2019-6470" + +inherit autotools update-rc.d systemd useradd pkgconfig multilib_script multilib_header + +MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh" + +# 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 \ + --sysconfdir=${sysconfdir}/bind \ + --with-openssl=${STAGING_DIR_HOST}${prefix} \ + " + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)} + +# dhcp needs .la so keep them +REMOVE_LIBTOOL_LA = "0" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/cache/bind --no-create-home \ + --user-group bind" + +INITSCRIPT_NAME = "bind" +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" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" + install -d -o bind "${D}${localstatedir}/cache/bind" + install -d "${D}${sysconfdir}/bind" + install -d "${D}${sysconfdir}/init.d" + install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/" + install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind" + if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then + sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \ + ${D}${sbindir}/dnssec-coverage \ + ${D}${sbindir}/dnssec-checkds \ + ${D}${sbindir}/dnssec-keymgr + fi + + # Install systemd related files + install -d ${D}${sbindir} + install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir} + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/named.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + ${D}${systemd_unitdir}/system/named.service + + install -d ${D}${sysconfdir}/default + install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + 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} = " \ + ${sysconfdir}/bind/named.conf \ + ${sysconfdir}/bind/named.conf.local \ + ${sysconfdir}/bind/named.conf.options \ + ${sysconfdir}/bind/db.0 \ + ${sysconfdir}/bind/db.127 \ + ${sysconfdir}/bind/db.empty \ + ${sysconfdir}/bind/db.local \ + ${sysconfdir}/bind/db.root \ + " + +ALTERNATIVE_${PN}-utils = "nslookup" +ALTERNATIVE_LINK_NAME[nslookup] = "${bindir}/nslookup" +ALTERNATIVE_PRIORITY = "100" + +PACKAGE_BEFORE_PN += "${PN}-utils" +FILES_${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig ${bindir}/nslookup ${bindir}/nsupdate" +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}-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}-dev = "" +RDEPENDS_python3-bind = "python3-core python3-ply" diff --git a/external/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb b/external/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb deleted file mode 100644 index 432bad01..00000000 --- a/external/poky/meta/recipes-connectivity/bind/bind_9.11.5-P4.bb +++ /dev/null @@ -1,137 +0,0 @@ -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" - -DEPENDS = "openssl libcap zlib" - -SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \ - file://conf.patch \ - file://named.service \ - file://bind9 \ - file://generate-rndc-key.sh \ - 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" - -UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" -UPSTREAM_CHECK_REGEX = "(?P9(\.\d+)+(-P\d+)*)/" -RECIPE_NO_UPDATE_REASON = "9.11 is LTS 2021" - -inherit autotools update-rc.d systemd useradd pkgconfig multilib_script - -MULTILIB_SCRIPTS = "${PN}:${bindir}/bind9-config ${PN}:${bindir}/isc-config.sh" - -# 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=${PYTHON} --with-python-install-dir=${D}/${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 \ - --sysconfdir=${sysconfdir}/bind \ - --with-openssl=${STAGING_DIR_HOST}${prefix} \ - " - -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)} - -# dhcp needs .la so keep them -REMOVE_LIBTOOL_LA = "0" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system --home ${localstatedir}/cache/bind --no-create-home \ - --user-group bind" - -INITSCRIPT_NAME = "bind" -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() { - - rm "${D}${bindir}/nslookup" - rm "${D}${mandir}/man1/nslookup.1" - rmdir "${D}${localstatedir}/run" - rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" - install -d -o bind "${D}${localstatedir}/cache/bind" - install -d "${D}${sysconfdir}/bind" - install -d "${D}${sysconfdir}/init.d" - install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/" - install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind" - if ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'true', 'false', d)}; then - sed -i -e '1s,#!.*python3,#! /usr/bin/python3,' \ - ${D}${sbindir}/dnssec-coverage \ - ${D}${sbindir}/dnssec-checkds \ - ${D}${sbindir}/dnssec-keymgr - fi - - # Install systemd related files - install -d ${D}${sbindir} - install -m 755 ${WORKDIR}/generate-rndc-key.sh ${D}${sbindir} - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/named.service ${D}${systemd_unitdir}/system - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - ${D}${systemd_unitdir}/system/named.service - - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/bind9 ${D}${sysconfdir}/default - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /run/named 0755 bind bind - -" > ${D}${sysconfdir}/tmpfiles.d/bind.conf - fi -} - -CONFFILES_${PN} = " \ - ${sysconfdir}/bind/named.conf \ - ${sysconfdir}/bind/named.conf.local \ - ${sysconfdir}/bind/named.conf.options \ - ${sysconfdir}/bind/db.0 \ - ${sysconfdir}/bind/db.127 \ - ${sysconfdir}/bind/db.empty \ - ${sysconfdir}/bind/db.local \ - ${sysconfdir}/bind/db.root \ - " - -PACKAGE_BEFORE_PN += "${PN}-utils" -FILES_${PN}-utils = "${bindir}/host ${bindir}/dig ${bindir}/mdig" -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}-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/external/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/external/poky/meta/recipes-connectivity/bluez5/bluez5.inc index aaf2af97..150d909d 100644 --- a/external/poky/meta/recipes-connectivity/bluez5/bluez5.inc +++ b/external/poky/meta/recipes-connectivity/bluez5/bluez5.inc @@ -6,7 +6,7 @@ LICENSE = "GPLv2+ & LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://COPYING.LIB;md5=fb504b67c50331fc78734fed90fb0e09 \ file://src/main.c;beginline=1;endline=24;md5=9bc54b93cd7e17bf03f52513f39f926e" -DEPENDS = "udev dbus-glib glib-2.0" +DEPENDS = "dbus glib-2.0" PROVIDES += "bluez-hcidump" RPROVIDES_${PN} += "bluez-hcidump" @@ -22,6 +22,7 @@ PACKAGECONFIG ??= "obex-profiles \ hog-profiles \ tools \ deprecated \ + udev \ " PACKAGECONFIG[obex-profiles] = "--enable-obex,--disable-obex,libical" PACKAGECONFIG[readline] = "--enable-client,--disable-client,readline," @@ -43,28 +44,26 @@ 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" - -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 \ -" +PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev" + +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 features_check 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 @@ -117,7 +116,10 @@ FILES_${PN}-dev += " \ FILES_${PN}-obex = "${libexecdir}/bluetooth/obexd \ ${exec_prefix}/lib/systemd/user/obex.service \ + ${systemd_system_unitdir}/obex.service \ + ${sysconfdir}/systemd/system/multi-user.target.wants/obex.service \ ${datadir}/dbus-1/services/org.bluez.obex.service \ + ${sysconfdir}/dbus-1/system.d/obexd.conf \ " SYSTEMD_SERVICE_${PN}-obex = "obex.service" @@ -133,7 +135,7 @@ def get_noinst_tools_paths (d, bb, tools): FILES_${PN}-noinst-tools = "${@get_noinst_tools_paths(d, bb, d.getVar('NOINST_TOOLS'))}" -RDEPENDS_${PN}-testtools += "python3 python3-dbus" +RDEPENDS_${PN}-testtools += "python3-core python3-dbus" RDEPENDS_${PN}-testtools += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}" SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'bluetooth.service', '', d)}" @@ -148,3 +150,5 @@ do_install_ptest() { cp -r ${B}/unit/ ${D}${PTEST_PATH} rm -f ${D}${PTEST_PATH}/unit/*.o } + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-utf-16" diff --git a/external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch b/external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch index da714092..618ed734 100644 --- a/external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch +++ b/external/poky/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 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 --- - 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/external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch b/external/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-Fix-a-race-issue-for-tools.patch deleted file mode 100644 index 3c227a8e..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch b/external/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch deleted file mode 100644 index b4b1846c..00000000 --- a/external/poky/meta/recipes-connectivity/bluez5/bluez5/CVE-2018-10910.patch +++ /dev/null @@ -1,705 +0,0 @@ -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 - -Subject: [PATCH BlueZ 1/4] client: Add discoverable-timeout command -From: Luiz Augusto von Dentz -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 - -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 | 43 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 43 insertions(+) - -diff --git a/client/main.c b/client/main.c -index 87323d8f7..59820c6d9 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -1061,6 +1061,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; -@@ -2549,6 +2590,8 @@ static const struct bt_shell_menu main_menu = { - { "discoverable", "", cmd_discoverable, - "Set controller discoverable mode", - NULL }, -+ { "discoverable-timeout", "[value]", cmd_discoverable_timeout, -+ "Set discoverable timeout", NULL }, - { "agent", "", cmd_agent, - "Enable/disable agent with given capability", - capability_generator}, --- -2.17.1 - -Subject: [PATCH BlueZ 2/4] client: Make show command print DiscoverableTimeout -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:33 -Message-ID: 20180725102035.19439-2-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -Controller XX:XX:XX:XX:XX:XX (public) - Name: Vudentz's T460s - Alias: Intel-1 - Class: 0x004c010c - Powered: yes - Discoverable: no - DiscoverableTimeout: 0x00000000 - Pairable: yes - UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb) - UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb) - UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) - UUID: SIM Access (0000112d-0000-1000-8000-00805f9b34fb) - UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb) - UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb) - UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) - UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb) - UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) - UUID: Headset (00001108-0000-1000-8000-00805f9b34fb) - Modalias: usb:v1D6Bp0246d0532 - Discovering: no ---- - client/main.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/client/main.c b/client/main.c -index 59820c6d9..6f472d050 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"); --- -2.17.1 -Subject: [PATCH BlueZ 3/4] adapter: Track pending settings -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:34 -Message-ID: 20180725102035.19439-3-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This tracks settings being changed and in case the settings is already -pending considered it to be done. ---- - src/adapter.c | 30 ++++++++++++++++++++++++++++-- - 1 file changed, 28 insertions(+), 2 deletions(-) - -diff --git a/src/adapter.c b/src/adapter.c -index af340fd6e..20c20f9e9 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -196,6 +196,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 */ -@@ -509,8 +510,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 +599,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, -@@ -2739,13 +2763,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 +2824,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); --- -2.17.1 -Subject: [PATCH BlueZ 4/4] adapter: Check pending when setting DiscoverableTimeout -From: Luiz Augusto von Dentz -Date: 2018-07-25 10:20:35 -Message-ID: 20180725102035.19439-4-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This makes DiscoverableTimeout check if discoverable is already pending -and don't attempt to set it once again which may cause discoverable to -be re-enabled when in fact the application just want to set the timeout -alone. ---- - src/adapter.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/adapter.c b/src/adapter.c -index 20c20f9e9..f92c897c7 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -2901,6 +2901,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); -@@ -2914,8 +2915,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.17.1 -Subject: [PATCH BlueZ 1/5] doc/adapter-api: Add Discoverable option to SetDiscoveryFilter -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:19 -Message-ID: 20180726141723.20199-1-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This enables the client to set its discoverable setting while -discovering which is very typical situation as usually the setings -application would allow incoming pairing request while scanning, so -this would reduce the number of calls setting Discoverable and -DiscoverableTimeout and restoring after done with discovery. ---- - doc/adapter-api.txt | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/doc/adapter-api.txt b/doc/adapter-api.txt -index d14d0ca50..4791af2c7 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 --- -2.17.1 -Subject: [PATCH BlueZ 2/5] adapter: Discovery filter discoverable -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:20 -Message-ID: 20180726141723.20199-2-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This implements the discovery filter discoverable and tracks which -clients had enabled it and restores the settings when the last client -enabling it exits. ---- - src/adapter.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 54 insertions(+), 2 deletions(-) - -diff --git a/src/adapter.c b/src/adapter.c -index f92c897c7..bd9edddc6 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 { -@@ -214,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 */ -@@ -1842,6 +1844,16 @@ static void discovery_free(void *user_data) - g_free(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) - { - struct btd_adapter *adapter = client->adapter; -@@ -1854,6 +1866,22 @@ static void discovery_remove(struct watch_client *client) - adapter->discovery_list = g_slist_remove(adapter->discovery_list, - 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); -+ } -+ - discovery_free(client); - - /* -@@ -2224,6 +2252,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; - } - -@@ -2348,6 +2385,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); -@@ -2357,6 +2405,7 @@ struct filter_parser { - { "Pathloss", parse_pathloss }, - { "Transport", parse_transport }, - { "DuplicateData", parse_duplicate_data }, -+ { "Discoverable", parse_discoverable }, - { } - }; - -@@ -2396,6 +2445,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 || -@@ -2441,8 +2491,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; - --- -2.17.1 -Subject: [PATCH BlueZ 3/5] client: Add scan.discoverable command -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:21 -Message-ID: 20180726141723.20199-3-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This adds discoverable command to scan menu which can be used to set -if adapter should become discoverable while scanning: - -[bluetooth]# scan.discoverable on -[bluetooth]# scan on -SetDiscoveryFilter success -[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: yes -Discovery started -[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes -[bluetooth]# scan off -Discovery stopped -[CHG] Controller XX:XX:XX:XX:XX:XX Discoverable: no ---- - client/main.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/client/main.c b/client/main.c -index 6f472d050..6e6f6d2fb 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -1166,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, -@@ -1205,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); - } - -@@ -1362,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); -@@ -2510,6 +2536,9 @@ static const struct bt_shell_menu scan_menu = { - { "duplicate-data", "[on/off]", cmd_scan_filter_duplicate_data, - "Set/Get duplicate data filter", - NULL }, -+ { "discoverable", "[on/off]", cmd_scan_filter_discoverable, -+ "Set/Get discoverable filter", -+ NULL }, - { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]", - cmd_scan_filter_clear, - "Clears discovery filter.", --- -2.17.1 -Subject: [PATCH BlueZ 4/5] client: Add scan.clear discoverable -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:22 -Message-ID: 20180726141723.20199-4-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -This implements scan.clear for discoverable filter. ---- - client/main.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/client/main.c b/client/main.c -index 6e6f6d2fb..1a66a3ab4 100644 ---- a/client/main.c -+++ b/client/main.c -@@ -1416,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); -@@ -1427,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 }, - {} - }; - -@@ -2539,7 +2545,8 @@ static const struct bt_shell_menu scan_menu = { - { "discoverable", "[on/off]", cmd_scan_filter_discoverable, - "Set/Get discoverable filter", - NULL }, -- { "clear", "[uuids/rssi/pathloss/transport/duplicate-data]", -+ { "clear", -+ "[uuids/rssi/pathloss/transport/duplicate-data/discoverable]", - cmd_scan_filter_clear, - "Clears discovery filter.", - filter_clear_generator }, --- -2.17.1 -Subject: [PATCH BlueZ 5/5] adapter: Fix not keeping discovery filters -From: Luiz Augusto von Dentz -Date: 2018-07-26 14:17:23 -Message-ID: 20180726141723.20199-5-luiz.dentz () gmail ! com -[Download RAW message or body] - -From: Luiz Augusto von Dentz - -If the discovery has been stopped and the client has set filters those -should be put back into filter list since the client may still be -interested in using them the next time it start a scanning. ---- - src/adapter.c | 25 ++++++++++++++++--------- - 1 file changed, 16 insertions(+), 9 deletions(-) - -diff --git a/src/adapter.c b/src/adapter.c -index bd9edddc6..822bd3472 100644 ---- a/src/adapter.c -+++ b/src/adapter.c -@@ -1854,7 +1854,7 @@ static bool set_filtered_discoverable(struct btd_adapter *adapter, bool enable) - return set_discoverable(adapter, enable, 0); - } - --static void discovery_remove(struct watch_client *client) -+static void discovery_remove(struct watch_client *client, bool exit) - { - struct btd_adapter *adapter = client->adapter; - -@@ -1882,7 +1882,11 @@ static void discovery_remove(struct watch_client *client) - set_filtered_discoverable(adapter, false); - } - -- discovery_free(client); -+ 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 -@@ -1911,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; -@@ -1925,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) -@@ -2146,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; - } -@@ -2163,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"); -@@ -2188,7 +2195,7 @@ static void discovery_disconnect(DBusConnection *conn, void *user_data) - - DBG("owner %s", client->owner); - -- discovery_stop(client); -+ discovery_stop(client, true); - } - - /* -@@ -2586,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); --- -2.17.1 diff --git a/external/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch b/external/poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch deleted file mode 100644 index 3ee79d70..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-connectivity/bluez5/bluez5/run-ptest b/external/poky/meta/recipes-connectivity/bluez5/bluez5/run-ptest index 21df00c3..0335e68e 100644 --- a/external/poky/meta/recipes-connectivity/bluez5/bluez5/run-ptest +++ b/external/poky/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/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb b/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb deleted file mode 100644 index 66271432..00000000 --- a/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.50.bb +++ /dev/null @@ -1,70 +0,0 @@ -require bluez5.inc - -REQUIRED_DISTRO_FEATURES = "bluez5" - -SRC_URI[md5sum] = "8e35c67c81a55d3ad4c9f22280dae178" -SRC_URI[sha256sum] = "5ffcaae18bbb6155f1591be8c24898dc12f062075a40b538b745bfd477481911" - -# noinst programs in Makefile.tools that are conditional on READLINE -# support -NOINST_TOOLS_READLINE ?= " \ - ${@bb.utils.contains('PACKAGECONFIG', 'deprecated', 'attrib/gatttool', '', d)} \ - tools/obex-client-tool \ - tools/obex-server-tool \ - tools/bluetooth-player \ - tools/obexctl \ - tools/btmgmt \ -" - -# noinst programs in Makefile.tools that are conditional on TESTING -# support -NOINST_TOOLS_TESTING ?= " \ - emulator/btvirt \ - emulator/b1ee \ - emulator/hfp \ - peripheral/btsensor \ - tools/3dsp \ - tools/mgmt-tester \ - tools/gap-tester \ - tools/l2cap-tester \ - tools/sco-tester \ - tools/smp-tester \ - tools/hci-tester \ - tools/rfcomm-tester \ - tools/bnep-tester \ - tools/userchan-tester \ -" - -# noinst programs in Makefile.tools that are conditional on TOOLS -# support -NOINST_TOOLS_BT ?= " \ - tools/bdaddr \ - tools/avinfo \ - tools/avtest \ - tools/scotest \ - tools/amptest \ - tools/hwdb \ - tools/hcieventmask \ - tools/hcisecfilter \ - tools/btinfo \ - tools/btsnoop \ - tools/btproxy \ - tools/btiotest \ - tools/bneptest \ - tools/mcaptest \ - tools/cltest \ - tools/oobtest \ - tools/advtest \ - tools/seq2bseq \ - tools/nokfw \ - tools/create-image \ - tools/eddystone \ - tools/ibeacon \ - tools/btgatt-client \ - tools/btgatt-server \ - tools/test-runner \ - tools/check-selftest \ - tools/gatt-service \ - profiles/iap/iapd \ - ${@bb.utils.contains('PACKAGECONFIG', 'btpclient', 'tools/btpclient', '', d)} \ -" diff --git a/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.54.bb b/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.54.bb new file mode 100644 index 00000000..260eee14 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/bluez5/bluez5_5.54.bb @@ -0,0 +1,68 @@ +require bluez5.inc + +SRC_URI[md5sum] = "e637feb2dbb7582bbbff1708367a847c" +SRC_URI[sha256sum] = "68cdab9e63e8832b130d5979dc8c96fdb087b31278f342874d992af3e56656dc" + +# noinst programs in Makefile.tools that are conditional on READLINE +# support +NOINST_TOOLS_READLINE ?= " \ + ${@bb.utils.contains('PACKAGECONFIG', 'deprecated', 'attrib/gatttool', '', d)} \ + tools/obex-client-tool \ + tools/obex-server-tool \ + tools/bluetooth-player \ + tools/obexctl \ + tools/btmgmt \ +" + +# noinst programs in Makefile.tools that are conditional on TESTING +# support +NOINST_TOOLS_TESTING ?= " \ + emulator/btvirt \ + emulator/b1ee \ + emulator/hfp \ + peripheral/btsensor \ + tools/3dsp \ + tools/mgmt-tester \ + tools/gap-tester \ + tools/l2cap-tester \ + tools/sco-tester \ + tools/smp-tester \ + tools/hci-tester \ + tools/rfcomm-tester \ + tools/bnep-tester \ + tools/userchan-tester \ +" + +# noinst programs in Makefile.tools that are conditional on TOOLS +# support +NOINST_TOOLS_BT ?= " \ + tools/bdaddr \ + tools/avinfo \ + tools/avtest \ + tools/scotest \ + tools/amptest \ + tools/hwdb \ + tools/hcieventmask \ + tools/hcisecfilter \ + tools/btinfo \ + tools/btsnoop \ + tools/btproxy \ + tools/btiotest \ + tools/bneptest \ + tools/mcaptest \ + tools/cltest \ + tools/oobtest \ + tools/advtest \ + tools/seq2bseq \ + tools/nokfw \ + tools/create-image \ + tools/eddystone \ + tools/ibeacon \ + tools/btgatt-client \ + tools/btgatt-server \ + tools/test-runner \ + tools/check-selftest \ + tools/gatt-service \ + profiles/iap/iapd \ + ${@bb.utils.contains('PACKAGECONFIG', 'btpclient', 'tools/btpclient', '', d)} \ +" diff --git a/external/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/external/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb index a56bd375..778bf501 100644 --- a/external/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb +++ b/external/poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb @@ -20,7 +20,7 @@ SRC_URI = "git://github.com/connectivity/connman-gnome.git \ 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/external/poky/meta/recipes-connectivity/connman/connman.inc b/external/poky/meta/recipes-connectivity/connman/connman.inc index 2b03f9cb..55e5bf97 100644 --- a/external/poky/meta/recipes-connectivity/connman/connman.inc +++ b/external/poky/meta/recipes-connectivity/connman/connman.inc @@ -13,9 +13,9 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://src/main.c;beginline=1;endline=20;md5=486a279a6ab0c8d152bcda3a5b5edc36" -inherit autotools pkgconfig systemd update-rc.d bluetooth update-alternatives +inherit autotools pkgconfig systemd update-rc.d update-alternatives -DEPENDS = "dbus glib-2.0 ppp readline" +DEPENDS = "dbus glib-2.0 ppp" INC_PR = "r20" @@ -27,13 +27,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 @@ -42,7 +40,7 @@ PACKAGECONFIG ??= "wispr \ PACKAGECONFIG[systemd] = "--with-systemdunitdir=${systemd_unitdir}/system/ --with-tmpfilesdir=${sysconfdir}/tmpfiles.d/,--with-systemdunitdir='' --with-tmpfilesdir=''" PACKAGECONFIG[wifi] = "--enable-wifi, --disable-wifi, wpa-supplicant, wpa-supplicant" -PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, ${BLUEZ}, ${BLUEZ}" +PACKAGECONFIG[bluez] = "--enable-bluetooth, --disable-bluetooth, bluez5, bluez5" PACKAGECONFIG[3g] = "--enable-ofono, --disable-ofono, ofono, ofono" PACKAGECONFIG[tist] = "--enable-tist,--disable-tist," PACKAGECONFIG[openvpn] = "--enable-openvpn --with-openvpn=${sbindir}/openvpn,--disable-openvpn,,openvpn" @@ -51,14 +49,16 @@ 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" 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" @@ -86,7 +86,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 @@ -133,14 +132,14 @@ python populate_packages_prepend() { add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, False) plugin_dir = d.expand('${libdir}/connman/plugins/') plugin_name = d.expand('${PN}-plugin-%s') - do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ + do_split_packages(d, plugin_dir, r'^(.*).so$', plugin_name, \ '${PN} plugin for %s', extra_depends='', hook=hook, prepend=True ) hook = lambda file,pkg,x,y,z: \ add_rdepends(bb, d, file, pkg, depmap, multilib_prefix, True) plugin_dir = d.expand('${libdir}/connman/plugins-vpn/') plugin_name = d.expand('${PN}-plugin-vpn-%s') - do_split_packages(d, plugin_dir, '^(.*).so$', plugin_name, \ + do_split_packages(d, plugin_dir, r'^(.*).so$', plugin_name, \ '${PN} VPN plugin for %s', extra_depends='', hook=hook, prepend=True ) } @@ -156,7 +155,7 @@ RDEPENDS_${PN}-client ="${PN}" FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*.so.* \ ${libdir}/connman/plugins \ - ${sysconfdir} ${sharedstatedir} ${localstatedir} \ + ${sysconfdir} ${sharedstatedir} ${localstatedir} ${datadir} \ ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*.so* ${datadir}/${PN} \ ${datadir}/dbus-1/system-services/* \ ${sysconfdir}/tmpfiles.d/connman_resolvconf.conf" @@ -195,7 +194,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/external/poky/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch b/external/poky/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch deleted file mode 100644 index f9080d4b..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 929fc9b7068100444e0ffcccd25841f78791e619 Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Fri, 15 Sep 2017 06:40:08 -0400 -Subject: [PATCH] gweb: Fix a crash using wispr over TLS -To: connman@lists.01.org -Cc: wagi@monom.org - -When gnutls_channel is instantiated, the gnutls_channel->established -has to be initiated as FALSE. Otherwise, check_handshake function -won't work. A random initial value 1 of gnutls_channel->established -will make check_handshake return G_IO_STATUS_NORMAL, when the channel -is actually not ready to be used. The observed behaviours are, - -- wispr is getting random errors in wispr_portal_web_result -- ConnMan crashes on exit after those random errors -- when wispr is luckly working, ConnMan doesn't crash on exit - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=73e53f3bd9e7debae86341f1eee7b97862a56a5e] -Signed-off-by: André Draszik - gweb/giognutls.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gweb/giognutls.c b/gweb/giognutls.c -index 09dc9e7..c029a8b 100644 ---- a/gweb/giognutls.c -+++ b/gweb/giognutls.c -@@ -421,7 +421,7 @@ GIOChannel *g_io_channel_gnutls_new(int fd) - - DBG(""); - -- gnutls_channel = g_new(GIOGnuTLSChannel, 1); -+ gnutls_channel = g_new0(GIOGnuTLSChannel, 1); - - channel = (GIOChannel *) gnutls_channel; - --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch b/external/poky/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch new file mode 100644 index 00000000..30f1432c --- /dev/null +++ b/external/poky/meta/recipes-connectivity/connman/connman/0001-gweb-fix-segfault-with-musl-v1.1.21.patch @@ -0,0 +1,34 @@ +From f0a8c69971b30ea7ca255bb885fdd1179fa5d298 Mon Sep 17 00:00:00 2001 +From: Nicola Lunghi +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/external/poky/meta/recipes-connectivity/connman/connman/0001-inet-Add-prefixlen-to-iproute_default_function.patch b/external/poky/meta/recipes-connectivity/connman/connman/0001-inet-Add-prefixlen-to-iproute_default_function.patch deleted file mode 100644 index dd7b3567..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0001-inet-Add-prefixlen-to-iproute_default_function.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 508dc60a1f0758ebc586b6b086478a176d493086 Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Thu, 5 Oct 2017 09:34:41 +0100 -Subject: [PATCH 1/4] inet: Add prefixlen to iproute_default_function -To: connman@lists.01.org -Cc: wagi@monom.org - -Add prefixlen parameter to this function in preparation for using -it also in creating subnet route later, e.g. - -default via 192.168.100.1 dev eth0 -192.168.100.0/24 dev eth0 - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=edda5b695de2ee79f02314abc9b46fdd46b388e1] -Signed-off-by: André Draszik - src/inet.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/inet.c b/src/inet.c -index b887aa0..ab8aec8 100644 ---- a/src/inet.c -+++ b/src/inet.c -@@ -2796,7 +2796,7 @@ int __connman_inet_del_fwmark_rule(uint32_t table_id, int family, uint32_t fwmar - } - - static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, -- const char *gateway) -+ const char *gateway, unsigned char prefixlen) - { - struct __connman_inet_rtnl_handle rth; - unsigned char buf[sizeof(struct in6_addr)]; -@@ -2829,6 +2829,7 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, - rth.req.u.r.rt.rtm_protocol = RTPROT_BOOT; - rth.req.u.r.rt.rtm_scope = RT_SCOPE_UNIVERSE; - rth.req.u.r.rt.rtm_type = RTN_UNICAST; -+ rth.req.u.r.rt.rtm_dst_len = prefixlen; - - __connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), RTA_GATEWAY, - buf, len); -@@ -2860,7 +2861,7 @@ int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, - { - /* ip route add default via 1.2.3.4 dev wlan0 table 1234 */ - -- return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway); -+ return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway, 0); - } - - int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, -@@ -2868,7 +2869,7 @@ int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, - { - /* ip route del default via 1.2.3.4 dev wlan0 table 1234 */ - -- return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway); -+ return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway, 0); - } - - int __connman_inet_get_interface_ll_address(int index, int family, --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch b/external/poky/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch deleted file mode 100644 index f1b4d0aa..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0001-session-Keep-track-of-addr-in-fw_snat-session.patch +++ /dev/null @@ -1,112 +0,0 @@ -From b5fd5945886fa1845db5c969424b63d894fe0376 Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Fri, 25 Aug 2017 10:02:16 -0400 -Subject: [PATCH 1/2] session: Keep track of addr in fw_snat & session -To: connman@lists.01.org -Cc: wagi@monom.org - -When there is more than one session in fw_snat's list of sessions, -fw_snat failed to be re-created when update-session-state is triggered -with new IP address. This is because index alone is not sufficient to -decide if fw_snat needs to be re-created. The solution here is to keep -a track of IP addr and use it to avoid false lookup of fw_snat. - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=f9e27d4abfcab5c80a38e0850b5ddb26277f97c1] -Signed-off-by: André Draszik - src/session.c | 19 +++++++++++++++---- - 1 file changed, 15 insertions(+), 4 deletions(-) - -diff --git a/src/session.c b/src/session.c -index 9e3c559..965ac06 100644 ---- a/src/session.c -+++ b/src/session.c -@@ -65,6 +65,7 @@ struct connman_session { - struct firewall_context *fw; - uint32_t mark; - int index; -+ char *addr; - char *gateway; - bool policy_routing; - bool snat_enabled; -@@ -79,6 +80,7 @@ struct fw_snat { - GSList *sessions; - int id; - int index; -+ char *addr; - struct firewall_context *fw; - }; - -@@ -200,7 +202,7 @@ static char *service2bearer(enum connman_service_type type) - return ""; - } - --static struct fw_snat *fw_snat_lookup(int index) -+static struct fw_snat *fw_snat_lookup(int index, const char *addr) - { - struct fw_snat *fw_snat; - GSList *list; -@@ -208,8 +210,11 @@ static struct fw_snat *fw_snat_lookup(int index) - for (list = fw_snat_list; list; list = list->next) { - fw_snat = list->data; - -- if (fw_snat->index == index) -+ if (fw_snat->index == index) { -+ if (g_strcmp0(addr, fw_snat->addr) != 0) -+ continue; - return fw_snat; -+ } - } - return NULL; - } -@@ -224,6 +229,7 @@ static int fw_snat_create(struct connman_session *session, - - fw_snat->fw = __connman_firewall_create(); - fw_snat->index = index; -+ fw_snat->addr = g_strdup(addr); - - fw_snat->id = __connman_firewall_enable_snat(fw_snat->fw, - index, ifname, addr); -@@ -238,6 +244,7 @@ static int fw_snat_create(struct connman_session *session, - return 0; - err: - __connman_firewall_destroy(fw_snat->fw); -+ g_free(fw_snat->addr); - g_free(fw_snat); - return err; - } -@@ -393,7 +400,7 @@ static void del_nat_rules(struct connman_session *session) - return; - - session->snat_enabled = false; -- fw_snat = fw_snat_lookup(session->index); -+ fw_snat = fw_snat_lookup(session->index, session->addr); - - if (!fw_snat) - return; -@@ -420,8 +427,11 @@ static void add_nat_rules(struct connman_session *session) - if (!addr) - return; - -+ g_free(session->addr); -+ session->addr = g_strdup(addr); -+ - session->snat_enabled = true; -- fw_snat = fw_snat_lookup(index); -+ fw_snat = fw_snat_lookup(index, session->addr); - if (fw_snat) { - fw_snat_ref(session, fw_snat); - return; -@@ -502,6 +512,7 @@ static void free_session(struct connman_session *session) - g_free(session->info); - g_free(session->info_last); - g_free(session->gateway); -+ g_free(session->addr); - - g_free(session); - } --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch b/external/poky/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch deleted file mode 100644 index 9c953e5d..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 08cda4004491d3971a8b9df937426c43800d15b1 Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Thu, 5 Oct 2017 09:37:06 +0100 -Subject: [PATCH 2/4] inet: Implement subnet route creation/deletion in - iproute_default_modify -To: connman@lists.01.org -Cc: wagi@monom.org - -- Calculate subnet address base on gateway address and prefixlen -- Differentiate creation of routes to gateway and subnet - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=ff7dcf91f12a2a237feebc6e606d0a8e92975528] -Signed-off-by: André Draszik - src/inet.c | 22 +++++++++++++++++++--- - 1 file changed, 19 insertions(+), 3 deletions(-) - -diff --git a/src/inet.c b/src/inet.c -index ab8aec8..0ddb030 100644 ---- a/src/inet.c -+++ b/src/inet.c -@@ -2802,6 +2802,9 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, - unsigned char buf[sizeof(struct in6_addr)]; - int ret, len; - int family = connman_inet_check_ipaddress(gateway); -+ char *dst = NULL; -+ -+ DBG("gateway %s/%u table %u", gateway, prefixlen, table_id); - - switch (family) { - case AF_INET: -@@ -2814,7 +2817,19 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, - return -EINVAL; - } - -- ret = inet_pton(family, gateway, buf); -+ if (prefixlen) { -+ struct in_addr ipv4_subnet_addr, ipv4_mask; -+ -+ memset(&ipv4_subnet_addr, 0, sizeof(ipv4_subnet_addr)); -+ ipv4_mask.s_addr = htonl((0xffffffff << (32 - prefixlen)) & 0xffffffff); -+ ipv4_subnet_addr.s_addr = inet_addr(gateway); -+ ipv4_subnet_addr.s_addr &= ipv4_mask.s_addr; -+ -+ dst = g_strdup(inet_ntoa(ipv4_subnet_addr)); -+ } -+ -+ ret = inet_pton(family, dst ? dst : gateway, buf); -+ g_free(dst); - if (ret <= 0) - return -EINVAL; - -@@ -2831,8 +2846,9 @@ static int iproute_default_modify(int cmd, uint32_t table_id, int ifindex, - rth.req.u.r.rt.rtm_type = RTN_UNICAST; - rth.req.u.r.rt.rtm_dst_len = prefixlen; - -- __connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), RTA_GATEWAY, -- buf, len); -+ __connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), -+ prefixlen > 0 ? RTA_DST : RTA_GATEWAY, buf, len); -+ - if (table_id < 256) { - rth.req.u.r.rt.rtm_table = table_id; - } else { --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch b/external/poky/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch deleted file mode 100644 index 56ba5c3f..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch +++ /dev/null @@ -1,68 +0,0 @@ -From a9243f13d6e1aadd69bfcc27f75f69c38be51677 Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Wed, 4 Oct 2017 17:30:17 +0100 -Subject: [PATCH 3/4] inet: Implement APIs for creating and deleting subnet - route -To: connman@lists.01.org -Cc: wagi@monom.org - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=3a15b0b7fccd053aff91da2cc68585509d0c509b] -Signed-off-by: André Draszik - src/connman.h | 4 ++++ - src/inet.c | 14 ++++++++++++++ - 2 files changed, 18 insertions(+) - -diff --git a/src/connman.h b/src/connman.h -index 21b7080..da4446a 100644 ---- a/src/connman.h -+++ b/src/connman.h -@@ -240,7 +240,11 @@ int __connman_inet_rtnl_addattr32(struct nlmsghdr *n, size_t maxlen, - int __connman_inet_add_fwmark_rule(uint32_t table_id, int family, uint32_t fwmark); - int __connman_inet_del_fwmark_rule(uint32_t table_id, int family, uint32_t fwmark); - int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, const char *gateway); -+int __connman_inet_add_subnet_to_table(uint32_t table_id, int ifindex, -+ const char *gateway, unsigned char prefixlen); - int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, const char *gateway); -+int __connman_inet_del_subnet_from_table(uint32_t table_id, int ifindex, -+ const char *gateway, unsigned char prefixlen); - int __connman_inet_get_address_netmask(int ifindex, - struct sockaddr_in *address, struct sockaddr_in *netmask); - -diff --git a/src/inet.c b/src/inet.c -index 0ddb030..dcd1ab2 100644 ---- a/src/inet.c -+++ b/src/inet.c -@@ -2880,6 +2880,13 @@ int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, - return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway, 0); - } - -+int __connman_inet_add_subnet_to_table(uint32_t table_id, int ifindex, -+ const char *gateway, unsigned char prefixlen) -+{ -+ /* ip route add 1.2.3.4/24 dev eth0 table 1234 */ -+ return iproute_default_modify(RTM_NEWROUTE, table_id, ifindex, gateway, prefixlen); -+} -+ - int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, - const char *gateway) - { -@@ -2888,6 +2895,13 @@ int __connman_inet_del_default_from_table(uint32_t table_id, int ifindex, - return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway, 0); - } - -+int __connman_inet_del_subnet_from_table(uint32_t table_id, int ifindex, -+ const char *gateway, unsigned char prefixlen) -+{ -+ /* ip route del 1.2.3.4/24 dev eth0 table 1234 */ -+ return iproute_default_modify(RTM_DELROUTE, table_id, ifindex, gateway, prefixlen); -+} -+ - int __connman_inet_get_interface_ll_address(int index, int family, - void *address) - { --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch b/external/poky/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch deleted file mode 100644 index ca213eb1..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/0004-session-Use-subnet-route-creation-and-deletion-APIs.patch +++ /dev/null @@ -1,77 +0,0 @@ -From deb9372db8396da4f7cd20555ce7c9a8b3ad96bd Mon Sep 17 00:00:00 2001 -From: Jian Liang -Date: Fri, 6 Oct 2017 11:40:16 +0100 -Subject: [PATCH 4/4] session: Use subnet route creation and deletion APIs -To: connman@lists.01.org -Cc: wagi@monom.org - -As subnet route is address and session specific in this case, so add -prefixlen into struct connman_session, and update it along with ipconfig. -Then use it in subnet route related APIs. - -Signed-off-by: Jian Liang - ---- -Upstream-Status: Backport [https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=285f25ef6cc9e4a43dab83523f3e2eab4365ac26] -Signed-off-by: André Draszik - src/session.c | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - -diff --git a/src/session.c b/src/session.c -index 965ac06..7b7a14b 100644 ---- a/src/session.c -+++ b/src/session.c -@@ -67,6 +67,7 @@ struct connman_session { - int index; - char *addr; - char *gateway; -+ unsigned char prefixlen; - bool policy_routing; - bool snat_enabled; - }; -@@ -357,13 +358,17 @@ static void del_default_route(struct connman_session *session) - if (!session->gateway) - return; - -- DBG("index %d routing table %d default gateway %s", -- session->index, session->mark, session->gateway); -+ DBG("index %d routing table %d default gateway %s/%u", -+ session->index, session->mark, session->gateway, session->prefixlen); -+ -+ __connman_inet_del_subnet_from_table(session->mark, -+ session->index, session->gateway, session->prefixlen); - - __connman_inet_del_default_from_table(session->mark, - session->index, session->gateway); - g_free(session->gateway); - session->gateway = NULL; -+ session->prefixlen = 0; - session->index = -1; - } - -@@ -383,13 +388,20 @@ static void add_default_route(struct connman_session *session) - if (!session->gateway) - session->gateway = g_strdup(inet_ntoa(addr)); - -- DBG("index %d routing table %d default gateway %s", -- session->index, session->mark, session->gateway); -+ session->prefixlen = __connman_ipconfig_get_prefixlen(ipconfig); -+ -+ DBG("index %d routing table %d default gateway %s/%u", -+ session->index, session->mark, session->gateway, session->prefixlen); - - err = __connman_inet_add_default_to_table(session->mark, - session->index, session->gateway); - if (err < 0) - DBG("session %p %s", session, strerror(-err)); -+ -+ err = __connman_inet_add_subnet_to_table(session->mark, -+ session->index, session->gateway, session->prefixlen); -+ if (err < 0) -+ DBG("session add subnet route %p %s", session, strerror(-err)); - } - - static void del_nat_rules(struct connman_session *session) --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/connman/connman/includes.patch b/external/poky/meta/recipes-connectivity/connman/connman/includes.patch deleted file mode 100644 index 9f7395cb..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman/includes.patch +++ /dev/null @@ -1,417 +0,0 @@ -Fix various issues which cause problems under musl. - -Upstream-Status: Backport [bd1326ba7d68df38c5ccaafd2403a5fb30bd452b] -Signed-off-by: Ross Burton - -From 630516bcc0233b047f65665c003201ba6e77453d Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 9 Aug 2016 16:22:36 +0100 -Subject: [PATCH 1/3] Use AC_USE_SYSTEM_EXTENSIONS - -Instead of using #define _GNU_SOURCE in some source files which causes problems -when building with musl as more files need the define, simply use -AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally. ---- - configure.ac | 1 + - gdhcp/client.c | 1 - - plugins/tist.c | 1 - - src/backtrace.c | 1 - - src/inet.c | 1 - - src/log.c | 1 - - src/ntp.c | 1 - - src/resolver.c | 1 - - src/rfkill.c | 1 - - src/stats.c | 1 - - src/timezone.c | 1 - - tools/stats-tool.c | 1 - - tools/tap-test.c | 1 - - tools/wispr.c | 1 - - vpn/plugins/vpn.c | 1 - - 15 files changed, 1 insertion(+), 14 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6e66ab3..bacf5ec 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir) - AC_SUBST(abs_top_builddir) - - AC_LANG_C -+AC_USE_SYSTEM_EXTENSIONS - - AC_PROG_CC - AM_PROG_CC_C_O -diff --git a/gdhcp/client.c b/gdhcp/client.c -index fbb40ab..3aeb089 100644 ---- a/gdhcp/client.c -+++ b/gdhcp/client.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/plugins/tist.c b/plugins/tist.c -index ad5ef79..cc2800a 100644 ---- a/plugins/tist.c -+++ b/plugins/tist.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/backtrace.c b/src/backtrace.c -index 6a66c0a..4dbdda8 100644 ---- a/src/backtrace.c -+++ b/src/backtrace.c -@@ -24,7 +24,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/inet.c b/src/inet.c -index 69ded19..81d92c2 100644 ---- a/src/inet.c -+++ b/src/inet.c -@@ -25,7 +25,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/log.c b/src/log.c -index 9bae4a3..f7e82e5 100644 ---- a/src/log.c -+++ b/src/log.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/ntp.c b/src/ntp.c -index dd246eb..db8ae96 100644 ---- a/src/ntp.c -+++ b/src/ntp.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/resolver.c b/src/resolver.c -index fbe4be7..ef61f92 100644 ---- a/src/resolver.c -+++ b/src/resolver.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/rfkill.c b/src/rfkill.c -index 2bfb092..af49d12 100644 ---- a/src/rfkill.c -+++ b/src/rfkill.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/stats.c b/src/stats.c -index 26343b1..cfcdc94 100644 ---- a/src/stats.c -+++ b/src/stats.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/src/timezone.c b/src/timezone.c -index e346b11..8e91267 100644 ---- a/src/timezone.c -+++ b/src/timezone.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/tools/stats-tool.c b/tools/stats-tool.c -index b076478..428d94b 100644 ---- a/tools/stats-tool.c -+++ b/tools/stats-tool.c -@@ -22,7 +22,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/tools/tap-test.c b/tools/tap-test.c -index fdc098a..57917f5 100644 ---- a/tools/tap-test.c -+++ b/tools/tap-test.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/tools/wispr.c b/tools/wispr.c -index d5f9341..e56dfc1 100644 ---- a/tools/wispr.c -+++ b/tools/wispr.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include -diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c -index 9a42385..479c3a7 100644 ---- a/vpn/plugins/vpn.c -+++ b/vpn/plugins/vpn.c -@@ -23,7 +23,6 @@ - #include - #endif - --#define _GNU_SOURCE - #include - #include - #include --- -2.8.1 - - -From b8b7878e6cb2a1ed4fcfa256f7e232511a40e3d9 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 9 Aug 2016 15:37:50 +0100 -Subject: [PATCH 2/3] Check for in6_pktinfo.ipi6_addr explicitly - -Instead of assuming that just glibc has this structure, check for it at -configure as musl also has it. - -Based on work by Khem Raj . ---- - configure.ac | 2 ++ - gdhcp/common.h | 5 +++-- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index bacf5ec..ad00456 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -186,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [ - AC_CHECK_HEADERS([execinfo.h]) - AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"]) - -+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include ]]) -+ - AC_CHECK_FUNC(signalfd, dummy=yes, - AC_MSG_ERROR(signalfd support is required)) - -diff --git a/gdhcp/common.h b/gdhcp/common.h -index 75abc18..6899499 100644 ---- a/gdhcp/common.h -+++ b/gdhcp/common.h -@@ -19,6 +19,7 @@ - * - */ - -+#include - #include - #include - -@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = { - [OPTION_U32] = 4, - }; - --/* already defined within netinet/in.h if using GNU compiler */ --#ifndef __USE_GNU -+/* already defined within netinet/in.h if using glibc or musl */ -+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR - struct in6_pktinfo { - struct in6_addr ipi6_addr; /* src/dst IPv6 address */ - unsigned int ipi6_ifindex; /* send/recv interface index */ --- -2.8.1 - - -From c0726e432fa0274a2b9c70179b03df6720972816 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 9 Aug 2016 15:19:23 +0100 -Subject: [PATCH 3/3] Rationalise includes - -gweb/gresolv.c uses snprintf() and isspace() so it should include stdio.h and -ctype.h. - -tools/dnsproxy-test uses functions from stdio.h. - -musl warns when sys/ headers are included when the non-sys form should be used, -so switch sys/errno.h and so on to errno.h. - -musl also causes redefinition errors when pieces of the networking headers are -included, so remove the redundant includes. - -Based on work by Khem Raj . ---- - gweb/gresolv.c | 2 ++ - plugins/wifi.c | 3 +-- - src/ippool.c | 1 - - src/iptables.c | 2 +- - src/tethering.c | 2 -- - tools/dhcp-test.c | 1 - - tools/dnsproxy-test.c | 1 + - tools/private-network-test.c | 2 +- - tools/tap-test.c | 2 +- - 9 files changed, 7 insertions(+), 9 deletions(-) - -diff --git a/gweb/gresolv.c b/gweb/gresolv.c -index 8a51a9f..d55027c 100644 ---- a/gweb/gresolv.c -+++ b/gweb/gresolv.c -@@ -29,6 +29,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/plugins/wifi.c b/plugins/wifi.c -index 9d56671..148131d 100644 ---- a/plugins/wifi.c -+++ b/plugins/wifi.c -@@ -30,9 +30,8 @@ - #include - #include - #include --#include --#include - #include -+#include - - #ifndef IFF_LOWER_UP - #define IFF_LOWER_UP 0x10000 -diff --git a/src/ippool.c b/src/ippool.c -index cea1dcc..8a645da 100644 ---- a/src/ippool.c -+++ b/src/ippool.c -@@ -28,7 +28,6 @@ - #include - #include - #include --#include - #include - - #include "connman.h" -diff --git a/src/iptables.c b/src/iptables.c -index 5ef757a..82e3ac4 100644 ---- a/src/iptables.c -+++ b/src/iptables.c -@@ -28,7 +28,7 @@ - #include - #include - #include --#include -+#include - #include - #include - #include -diff --git a/src/tethering.c b/src/tethering.c -index 3153349..ad062d5 100644 ---- a/src/tethering.c -+++ b/src/tethering.c -@@ -31,10 +31,8 @@ - #include - #include - #include --#include - #include - #include --#include - #include - #include - -diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c -index c34e10a..eae66fc 100644 ---- a/tools/dhcp-test.c -+++ b/tools/dhcp-test.c -@@ -33,7 +33,6 @@ - #include - #include - #include --#include - - #include - -diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c -index 551cae9..371e2e2 100644 ---- a/tools/dnsproxy-test.c -+++ b/tools/dnsproxy-test.c -@@ -24,6 +24,7 @@ - #endif - - #include -+#include - #include - #include - #include -diff --git a/tools/private-network-test.c b/tools/private-network-test.c -index 3dd115b..2828bb3 100644 ---- a/tools/private-network-test.c -+++ b/tools/private-network-test.c -@@ -32,7 +32,7 @@ - #include - #include - #include --#include -+#include - #include - #include - -diff --git a/tools/tap-test.c b/tools/tap-test.c -index 57917f5..cb3ee62 100644 ---- a/tools/tap-test.c -+++ b/tools/tap-test.c -@@ -28,7 +28,7 @@ - #include - #include - #include --#include -+#include - #include - - #include --- -2.8.1 diff --git a/external/poky/meta/recipes-connectivity/connman/connman_1.35.bb b/external/poky/meta/recipes-connectivity/connman/connman_1.35.bb deleted file mode 100644 index ff211811..00000000 --- a/external/poky/meta/recipes-connectivity/connman/connman_1.35.bb +++ /dev/null @@ -1,22 +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://connman \ - file://no-version-scripts.patch \ - file://includes.patch \ - file://0001-session-Keep-track-of-addr-in-fw_snat-session.patch \ - file://0001-giognutls-Fix-a-crash-using-wispr-over-TLS.patch \ - file://0001-inet-Add-prefixlen-to-iproute_default_function.patch \ - file://0002-inet-Implement-subnet-route-creation-deletion-in-ipr.patch \ - file://0003-inet-Implement-APIs-for-creating-and-deleting-subnet.patch \ - file://0004-session-Use-subnet-route-creation-and-deletion-APIs.patch \ - " -SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch \ - " - -SRC_URI[md5sum] = "bae37b45ee9b3db5ec8115188f8a7652" -SRC_URI[sha256sum] = "66d7deb98371545c6e417239a9b3b3e3201c1529d08eedf40afbc859842cf2aa" - -RRECOMMENDS_${PN} = "connman-conf" diff --git a/external/poky/meta/recipes-connectivity/connman/connman_1.37.bb b/external/poky/meta/recipes-connectivity/connman/connman_1.37.bb new file mode 100644 index 00000000..00852bf0 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/connman/connman_1.37.bb @@ -0,0 +1,17 @@ +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/external/poky/meta/recipes-connectivity/dhcp/dhcp.inc b/external/poky/meta/recipes-connectivity/dhcp/dhcp.inc index 3e65e5cf..d46130d4 100644 --- a/external/poky/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/external/poky/meta/recipes-connectivity/dhcp/dhcp.inc @@ -21,7 +21,7 @@ SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \ file://dhcpd.service file://dhcrelay.service \ file://dhcpd6.service \ " -UPSTREAM_CHECK_URI = "ftp://ftp.isc.org/isc/dhcp/" +UPSTREAM_CHECK_URI = "http://ftp.isc.org/isc/dhcp/" UPSTREAM_CHECK_REGEX = "(?P\d+\.\d+\.(\d+?))/" inherit autotools-brokensep systemd useradd update-rc.d @@ -43,7 +43,7 @@ INITSCRIPT_PACKAGES = "dhcp-server" INITSCRIPT_NAME_dhcp-server = "dhcp-server" INITSCRIPT_PARAMS_dhcp-server = "defaults" -TARGET_CFLAGS += "-D_GNU_SOURCE" +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 \ @@ -100,6 +100,7 @@ do_install_append () { PACKAGES += "dhcp-libs dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell" PACKAGES_remove = "${PN}" +RDEPENDS_${PN}-client += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'iproute2', '', d)}" RDEPENDS_${PN}-dev = "" RDEPENDS_${PN}-staticdev = "" FILES_${PN}-libs = "${libdir}/libdhcpctl.so.0* ${libdir}/libomapi.so.0* ${libdir}/libdhcp.so.0*" diff --git a/external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-master-Added-includes-of-new-BIND9-compatibility-hea.patch deleted file mode 100644 index 1bc14224..00000000 --- a/external/poky/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 -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 - -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 - #include - -+#include -+#include -+ - #include - #include - #include -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 - #include - #include - #include -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/external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch new file mode 100644 index 00000000..2359381b --- /dev/null +++ b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0001-workaround-busybox-limitation-in-linux-dhclient-script.patch @@ -0,0 +1,65 @@ +From eec0503cfc36f63d777f5cb3f2719cecedcb8468 Mon Sep 17 00:00:00 2001 +From: Haris Okanovic +Date: Mon, 7 Jan 2019 13:22:09 -0600 +Subject: [PATCH] Workaround busybox limitation in Linux dhclient-script + +Busybox is a lightweight implementation of coreutils commonly used on +space-constrained embedded Linux distributions. It's implementation of +chown and chmod doesn't provide a "--reference" option added to +client/scripts/linux as of commit 9261cb14. This change works around +that limitation by using stat to read ownership and permissions flags +and simple chown/chmod calls supported in both coreutils and busybox. + + modified: client/scripts/linux + +Signed-off-by: Haris Okanovic +Upstream-Status: Pending [ISC-Bugs #48771] +--- + client/scripts/linux | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 0c429697..2435a44b 100755 +--- a/client/scripts/linux ++++ b/client/scripts/linux +@@ -32,6 +32,17 @@ + # if your system holds ip tool in a non-standard location. + ip=/sbin/ip + ++chown_chmod_by_reference() { ++ local reference_file="$1" ++ local target_file="$2" ++ ++ local owner=$(stat -c "%u:%g" "$reference_file") ++ local perm=$(stat -c "%a" "$reference_file") ++ ++ chown "$owner" "$target_file" ++ chmod "$perm" "$target_file" ++} ++ + # update /etc/resolv.conf based on received values + # This updated version mostly follows Debian script by Andrew Pollock et al. + make_resolv_conf() { +@@ -74,8 +85,7 @@ make_resolv_conf() { + fi + + if [ -f /etc/resolv.conf ]; then +- chown --reference=/etc/resolv.conf $new_resolv_conf +- chmod --reference=/etc/resolv.conf $new_resolv_conf ++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf + fi + mv -f $new_resolv_conf /etc/resolv.conf + # DHCPv6 +@@ -101,8 +111,7 @@ make_resolv_conf() { + fi + + if [ -f /etc/resolv.conf ]; then +- chown --reference=/etc/resolv.conf $new_resolv_conf +- chmod --reference=/etc/resolv.conf $new_resolv_conf ++ chown_chmod_by_reference /etc/resolv.conf $new_resolv_conf + fi + mv -f $new_resolv_conf /etc/resolv.conf + fi +-- +2.20.0 + diff --git a/external/poky/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch index b71c93dd..7b57730f 100644 --- a/external/poky/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch +++ b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0004-Fix-out-of-tree-builds.patch @@ -85,9 +85,11 @@ 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 @@ +@@ -1,6 +1,6 @@ + SUBDIRS = . tests + -AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' +AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes - + sbin_PROGRAMS = dhcrelay dhcrelay_SOURCES = dhcrelay.c diff --git a/external/poky/meta/recipes-connectivity/dhcp/dhcp/0006-site.h-enable-gentle-shutdown.patch b/external/poky/meta/recipes-connectivity/dhcp/dhcp/0006-site.h-enable-gentle-shutdown.patch deleted file mode 100644 index 6ef70cca..00000000 --- a/external/poky/meta/recipes-connectivity/dhcp/dhcp/0006-site.h-enable-gentle-shutdown.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 01641d146e4e6bea954e4a4ee1f6230b822665b4 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Tue, 15 Aug 2017 15:37:49 +0800 -Subject: [PATCH 06/11] site.h: enable gentle shutdown - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Chen Qi - -Rebase to 4.3.6 -Signed-off-by: Hongxu Jia ---- - includes/site.h | 2 +- - 1 file changed, 1 insertion(+), 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 -@@ -295,7 +295,7 @@ - situations. We plan to revisit this feature and may - make non-backwards compatible changes including the - removal of this define. Use at your own risk. */ --/* #define ENABLE_GENTLE_SHUTDOWN */ -+#define ENABLE_GENTLE_SHUTDOWN - - /* Include old error codes. This is provided in case you - are building an external program similar to omshell for diff --git a/external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb b/external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.1.bb deleted file mode 100644 index e8cc731a..00000000 --- a/external/poky/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://0006-site.h-enable-gentle-shutdown.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 \ -" - -SRC_URI[md5sum] = "18c7f4dcbb0a63df25098216d47b1ede" -SRC_URI[sha256sum] = "2a22508922ab367b4af4664a0472dc220cc9603482cf3c16d9aff14f3a76b608" - -LDFLAGS_append = " -pthread" - -PACKAGECONFIG ?= "" -PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2" diff --git a/external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb b/external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb new file mode 100644 index 00000000..b56a2048 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb @@ -0,0 +1,21 @@ +require dhcp.inc + +SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch \ + file://0002-dhclient-dbus.patch \ + file://0003-link-with-lcrypto.patch \ + file://0004-Fix-out-of-tree-builds.patch \ + file://0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch \ + file://0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch \ + file://0009-remove-dhclient-script-bash-dependency.patch \ + file://0012-dhcp-correct-the-intention-for-xml2-lib-search.patch \ + file://0013-fixup_use_libbind.patch \ + file://0001-workaround-busybox-limitation-in-linux-dhclient-script.patch \ +" + +SRC_URI[md5sum] = "2afdaf8498dc1edaf3012efdd589b3e1" +SRC_URI[sha256sum] = "1a7ccd64a16e5e68f7b5e0f527fd07240a2892ea53fe245620f4f5f607004521" + +LDFLAGS_append = " -pthread" + +PACKAGECONFIG ?= "" +PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2" diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch new file mode 100644 index 00000000..d4764f58 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch @@ -0,0 +1,31 @@ +Upstream-Status: Pending + +Subject: rcp: fix to work with large files + +When we copy file by rcp command, if the file > 2GB, it will fail. +The cause is that it used incorrect data type on file size in sink() of rcp. + +Signed-off-by: Chen Qi +--- + src/rcp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/rcp.c b/src/rcp.c +index 21f55b6..bafa35f 100644 +--- a/src/rcp.c ++++ b/src/rcp.c +@@ -876,9 +876,9 @@ sink (int argc, char *argv[]) + enum + { YES, NO, DISPLAYED } wrerr; + BUF *bp; +- off_t i, j; ++ off_t i, j, size; + int amt, count, exists, first, mask, mode, ofd, omode; +- int setimes, size, targisdir, wrerrno; ++ int setimes, targisdir, wrerrno; + char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ]; + const char *why; + +-- +1.9.1 + diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch new file mode 100644 index 00000000..a91913cb --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-buffer-fortify-tfpt.patch @@ -0,0 +1,25 @@ +tftpd: Fix abort on error path + +When trying to fetch a non existent file, the app crashes with: + +*** buffer overflow detected ***: +Aborted + + +Upstream-Status: Submitted [https://www.mail-archive.com/bug-inetutils@gnu.org/msg03036.html https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91205] +Signed-off-by: Ricardo Ribalda Delgado +diff --git a/src/tftpd.c b/src/tftpd.c +index 56002a0..144012f 100644 +--- a/src/tftpd.c ++++ b/src/tftpd.c +@@ -864,9 +864,8 @@ nak (int error) + pe->e_msg = strerror (error - 100); + tp->th_code = EUNDEF; /* set 'undef' errorcode */ + } +- strcpy (tp->th_msg, pe->e_msg); + length = strlen (pe->e_msg); +- tp->th_msg[length] = '\0'; ++ memcpy(tp->th_msg, pe->e_msg, length + 1); + length += 5; + if (sendto (peer, buf, length, 0, (struct sockaddr *) &from, fromlen) != length) + syslog (LOG_ERR, "nak: %m\n"); diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch new file mode 100644 index 00000000..24c134fc --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch @@ -0,0 +1,83 @@ +Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html + +Upstream-Status: Pending + +Signed-off-by: Jackie Huang +--- + ping/ping_common.h | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/ping/ping_common.h b/ping/ping_common.h +index 1dfd1b5..3bfbd12 100644 +--- a/ping/ping_common.h ++++ b/ping/ping_common.h +@@ -17,10 +17,14 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see `http://www.gnu.org/licenses/'. */ + ++#include ++ + #include + #include + #include ++#ifdef HAVE_IPV6 + #include ++#endif + #include + #include + #include +@@ -62,7 +66,12 @@ struct ping_stat + want to follow the traditional behaviour of ping. */ + #define DEFAULT_PING_COUNT 0 + ++#ifdef HAVE_IPV6 + #define PING_HEADER_LEN (USE_IPV6 ? sizeof (struct icmp6_hdr) : ICMP_MINLEN) ++#else ++#define PING_HEADER_LEN (ICMP_MINLEN) ++#endif ++ + #define PING_TIMING(s) ((s) >= sizeof (struct timeval)) + #define PING_DATALEN (64 - PING_HEADER_LEN) /* default data length */ + +@@ -74,13 +83,20 @@ struct ping_stat + (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\ + } while (0) + ++#ifdef HAVE_IPV6 + /* FIXME: Adjust IPv6 case for options and their consumption. */ + #define _PING_BUFLEN(p, u) ((u)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \ + (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN)) + ++#else ++#define _PING_BUFLEN(p, u) (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN) ++#endif ++ ++#ifdef HAVE_IPV6 + typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest, + struct sockaddr_in6 * from, struct icmp6_hdr * icmp, + int datalen); ++#endif + + typedef int (*ping_efp) (int code, + void *closure, +@@ -89,13 +105,17 @@ typedef int (*ping_efp) (int code, + struct ip * ip, icmphdr_t * icmp, int datalen); + + union event { ++#ifdef HAVE_IPV6 + ping_efp6 handler6; ++#endif + ping_efp handler; + }; + + union ping_address { + struct sockaddr_in ping_sockaddr; ++#ifdef HAVE_IPV6 + struct sockaddr_in6 ping_sockaddr6; ++#endif + }; + + typedef struct ping_data PING; +-- +2.8.3 + diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch new file mode 100644 index 00000000..3da4e9f5 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch @@ -0,0 +1,29 @@ +From 552a7d64ad4a7188a9b7cd89933ae7caf7ebfe90 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Thu, 18 Nov 2010 16:59:14 -0500 +Subject: [PATCH gnulib] printf-parse: pull in features.h for __GLIBC__ + +Upstream-Status: Pending + +Signed-off-by: Mike Frysinger +--- + lib/printf-parse.h | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/lib/printf-parse.h b/lib/printf-parse.h +index 67a4a2a..3bd6152 100644 +--- a/lib/printf-parse.h ++++ b/lib/printf-parse.h +@@ -25,6 +25,9 @@ + + #include "printf-args.h" + ++#ifdef HAVE_FEATURES_H ++# include /* for __GLIBC__ */ ++#endif + + /* Flags */ + #define FLAG_GROUP 1 /* ' flag */ +-- +1.7.3.2 + diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch new file mode 100644 index 00000000..b13bb922 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch @@ -0,0 +1,14 @@ +Upstream-Status: Pending + +--- inetutils-1.8/lib/wchar.in.h ++++ inetutils-1.8/lib/wchar.in.h +@@ -70,6 +70,9 @@ + /* The include_next requires a split double-inclusion guard. */ + #if @HAVE_WCHAR_H@ + # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ ++#else ++# include ++# define MB_CUR_MAX 1 + #endif + + #undef _GL_ALREADY_INCLUDING_WCHAR_H diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch new file mode 100644 index 00000000..2592989a --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch @@ -0,0 +1,26 @@ +inetutils: define PATH_PROCNET_DEV if not already defined + +this prevents the following compilation error : +system/linux.c:401:15: error: 'PATH_PROCNET_DEV' undeclared (first use in this function) + +this patch comes from : + http://repository.timesys.com/buildsources/i/inetutils/inetutils-1.9/ + +Upstream-Status: Inappropriate [not author] + +Signed-of-by: Eric Bénard +--- +diff -Naur inetutils-1.9.orig/ifconfig/system/linux.c inetutils-1.9/ifconfig/system/linux.c +--- inetutils-1.9.orig/ifconfig/system/linux.c 2012-01-04 16:31:36.000000000 -0500 ++++ inetutils-1.9/ifconfig/system/linux.c 2012-01-04 16:40:53.000000000 -0500 +@@ -49,6 +49,10 @@ + #include "../ifconfig.h" + + ++#ifndef PATH_PROCNET_DEV ++ #define PATH_PROCNET_DEV "/proc/net/dev" ++#endif ++ + /* ARPHRD stuff. */ + + static void diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch new file mode 100644 index 00000000..ff3abd86 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch @@ -0,0 +1,40 @@ +Only check security/pam_appl.h which is provided by package libpam when pam is +enabled. + +Upstream-Status: Pending + +Signed-off-by: Kai Kang +--- +diff --git a/configure.ac b/configure.ac +index b35e672..e78a751 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -195,6 +195,19 @@ fi + + # See if we have libpam.a. Investigate PAM versus Linux-PAM. + if test "$with_pam" = yes ; then ++ AC_CHECK_HEADERS([security/pam_appl.h], [], [], [ ++#include ++#ifdef HAVE_NETINET_IN_SYSTM_H ++# include ++#endif ++#include ++#ifdef HAVE_NETINET_IP_H ++# include ++#endif ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++]) + AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl) + AC_CHECK_LIB(pam, pam_authenticate, LIBPAM=-lpam) + if test "$ac_cv_lib_pam_pam_authenticate" = yes ; then +@@ -587,7 +600,7 @@ AC_HEADER_DIRENT + AC_CHECK_HEADERS([arpa/nameser.h errno.h fcntl.h features.h \ + glob.h memory.h netinet/ether.h netinet/in_systm.h \ + netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h \ +- security/pam_appl.h shadow.h \ ++ shadow.h \ + stdarg.h stdlib.h string.h stropts.h sys/tty.h \ + sys/utsname.h sys/ptyvar.h sys/msgbuf.h sys/filio.h \ + sys/ioctl_compat.h sys/cdefs.h sys/stream.h sys/mkdev.h \ diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils new file mode 100644 index 00000000..30e81ef4 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils @@ -0,0 +1,20 @@ +# default: off +# description: +# Rexecd is the server for the rexec program. The server provides remote +# execution facilities with authentication based on user names and +# passwords. +# +service exec +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rexecd + disable = yes +} diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils new file mode 100644 index 00000000..21b55da9 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils @@ -0,0 +1,23 @@ +# default: off +# description: +# Rlogind is a server for the rlogin program. The server provides remote +# execution with authentication based on privileged port numbers from trusted +# host +# +service login +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rlogind -a + disable = yes +} + + + diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils new file mode 100644 index 00000000..2b894a74 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils @@ -0,0 +1,21 @@ +# default: off +# description: +# The rshd server is a server for the rcmd(3) routine and, +# consequently, for the rsh(1) program. The server provides +# remote execution facilities with authentication based on +# privileged port numbers from trusted hosts. +# +service shell +{ + socket_type = stream + protocol = tcp + flags = NAMEINARGS + wait = no + user = root + group = root + log_on_success += USERID + log_on_failure += USERID + server = @SBINDIR@/tcpd + server_args = @SBINDIR@/in.rshd -aL + disable = yes +} diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils b/external/poky/meta/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils new file mode 100644 index 00000000..2d9a0408 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils @@ -0,0 +1,13 @@ +# default: on +# description: The telnet server serves telnet sessions; it uses \ +# unencrypted username/password pairs for authentication. +service telnet +{ + disable = no + flags = REUSE + socket_type = stream + wait = no + user = root + server = @SBINDIR@/in.telnetd + log_on_failure += USERID +} diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils b/external/poky/meta/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils new file mode 100644 index 00000000..67b44c43 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils @@ -0,0 +1,19 @@ +# default: off +# description: +# Tftpd is a server which supports the Internet Trivial File Transfer +# Pro-tocol (RFC 783). The TFTP server operates at the port indicated +# in the tftp service description; see services(5). +# +service tftp +{ + disable = yes + socket_type = dgram + protocol = udp + flags = IPv6 + wait = yes + user = root + group = root + server = @SBINDIR@/in.tftpd + server_args = /tftpboot +} + diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils/version.patch b/external/poky/meta/recipes-connectivity/inetutils/inetutils/version.patch new file mode 100644 index 00000000..532a0e5c --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils/version.patch @@ -0,0 +1,17 @@ +Upstream-Status: Pending + +remove m4_esyscmd function + +Signed-off-by: Chunrong Guo +--- inetutils-1.9.1/configure.ac 2012-01-06 22:05:05.000000000 +0800 ++++ inetutils-1.9.1/configure.ac 2012-11-12 14:01:11.732957019 +0800 +@@ -20,8 +20,7 @@ + + AC_PREREQ(2.59) + +-AC_INIT([GNU inetutils], +- m4_esyscmd([build-aux/git-version-gen .tarball-version 's/inetutils-/v/;s/_/./g']), ++AC_INIT([GNU inetutils],[1.9.4], + [bug-inetutils@gnu.org]) + + AC_CONFIG_SRCDIR([src/inetd.c]) diff --git a/external/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/external/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb new file mode 100644 index 00000000..cc9410b9 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -0,0 +1,214 @@ +DESCRIPTION = "The GNU inetutils are a collection of common \ +networking utilities and servers including ftp, ftpd, rcp, \ +rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \ +talkd, telnet, telnetd, tftp, tftpd, and uucpd." +HOMEPAGE = "http://www.gnu.org/software/inetutils" +SECTION = "net" +DEPENDS = "ncurses netbase readline virtual/crypt" + +LICENSE = "GPLv3" + +LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7" + +SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ + file://version.patch \ + file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \ + file://inetutils-1.8-0003-wchar.patch \ + file://rexec.xinetd.inetutils \ + file://rlogin.xinetd.inetutils \ + file://rsh.xinetd.inetutils \ + file://telnet.xinetd.inetutils \ + file://tftpd.xinetd.inetutils \ + file://inetutils-1.9-PATH_PROCNET_DEV.patch \ + 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 \ +" + +SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52" +SRC_URI[sha256sum] = "be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616" + +inherit autotools gettext update-alternatives texinfo + +acpaths = "-I ./m4" + +SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}" + +PACKAGECONFIG ??= "ftp uucpd \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \ + " +PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline" +PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline" +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6 gl_cv_socket_ipv6=no," +PACKAGECONFIG[ping6] = "--enable-ping6,--disable-ping6," + +EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \ + inetutils_cv_path_login=${base_bindir}/login \ + --with-libreadline-prefix=${STAGING_LIBDIR} \ + --enable-rpath=no \ +" + +# These are horrible for security, disable them +EXTRA_OECONF_append = " --disable-rsh --disable-rshd --disable-rcp \ + --disable-rlogin --disable-rlogind --disable-rexec --disable-rexecd" + +do_configure_prepend () { + export HELP2MAN='true' + cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + rm -f ${S}/glob/configure* +} + +do_install_append () { + install -m 0755 -d ${D}${base_sbindir} + install -m 0755 -d ${D}${sbindir} + install -m 0755 -d ${D}${sysconfdir}/xinetd.d + if [ "${base_bindir}" != "${bindir}" ] ; then + install -m 0755 -d ${D}${base_bindir} + mv ${D}${bindir}/ping* ${D}${base_bindir}/ + mv ${D}${bindir}/hostname ${D}${base_bindir}/ + fi + mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/ + mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/ + mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd + mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd + if [ -e ${D}${libexecdir}/rexecd ]; then + mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd + cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec + fi + if [ -e ${D}${libexecdir}/rlogind ]; then + mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind + cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin + fi + if [ -e ${D}${libexecdir}/rshd ]; then + mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd + cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh + fi + if [ -e ${D}${libexecdir}/talkd ]; then + mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd + fi + mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd + mv ${D}${libexecdir}/* ${D}${bindir}/ + cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet + cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd + + sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/* + if [ -e ${D}${libdir}/charset.alias ]; then + rm -rf ${D}${libdir}/charset.alias + fi + rm -rf ${D}${libexecdir}/ + # remove usr/lib if empty + rmdir ${D}${libdir} || true +} + +PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \ +${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \ +${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \ +${PN}-rsh ${PN}-rshd" + +# The packages tftpd, telnetd and rshd conflict with the ones +# provided by netkit, so add the corresponding -dbg packages +# for them to avoid the confliction between the dbg package +# of inetutils and netkit. +PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg" +NOAUTOPACKAGEDEBUG = "1" + +ALTERNATIVE_PRIORITY = "79" +ALTERNATIVE_${PN} = "whois" +ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd" + +ALTERNATIVE_PRIORITY_${PN}-logger = "60" +ALTERNATIVE_${PN}-logger = "logger" +ALTERNATIVE_${PN}-syslogd = "syslogd" +ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd" + +ALTERNATIVE_${PN}-ftp = "ftp" +ALTERNATIVE_${PN}-ftpd = "ftpd" +ALTERNATIVE_${PN}-tftp = "tftp" +ALTERNATIVE_${PN}-tftpd = "tftpd" +ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd" +ALTERNATIVE_TARGET[tftpd] = "${sbindir}/in.tftpd" + +ALTERNATIVE_${PN}-telnet = "telnet" +ALTERNATIVE_${PN}-telnetd = "telnetd" +ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd" +ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd" + +ALTERNATIVE_${PN}-inetd= "inetd" +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 \ + 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" + +ALTERNATIVE_${PN}-ping = "ping" +ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping" + +ALTERNATIVE_${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}" +ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6" + + +FILES_${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug" +FILES_${PN}-ping = "${base_bindir}/ping.${BPN}" +FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}" +FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}" +FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}" +FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}" +FILES_${PN}-logger = "${bindir}/logger.${BPN}" + +FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}" +RCONFLICTS_${PN}-syslogd = "rsyslog busybox-syslog sysklogd syslog-ng" + +FILES_${PN}-ftp = "${bindir}/ftp.${BPN}" + +FILES_${PN}-tftp = "${bindir}/tftp.${BPN}" +FILES_${PN}-telnet = "${bindir}/telnet.${BPN}" + +# We make us of RCONFLICTS / RPROVIDES here rather than using the normal +# alternatives method as this leads to packaging QA issues when using +# musl as that library does not provide what these applications need to +# build. +FILES_${PN}-rsh = "${bindir}/rsh ${bindir}/rlogin ${bindir}/rexec ${bindir}/rcp" +RCONFLICTS_${PN}-rsh += "netkit-rsh-client" +RPROVIDES_${PN}-rsh = "rsh" + +FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \ + ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec" +FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd" +RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers" +RCONFLICTS_${PN}-rshd += "netkit-rshd-server" +RPROVIDES_${PN}-rshd = "rshd" + +FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}" +FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}" +RDEPENDS_${PN}-ftpd += "xinetd" + +FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd" +FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd" +RCONFLICTS_${PN}-tftpd += "netkit-tftpd" +RDEPENDS_${PN}-tftpd += "xinetd" + +FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet" +FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd" +RCONFLICTS_${PN}-telnetd += "netkit-telnet" +RPROVIDES_${PN}-telnetd = "telnetd" +RDEPENDS_${PN}-telnetd += "xinetd" + +FILES_${PN}-inetd = "${bindir}/inetd.${BPN}" + +RDEPENDS_${PN} = "xinetd" diff --git a/external/poky/meta/recipes-connectivity/iproute2/iproute2.inc b/external/poky/meta/recipes-connectivity/iproute2/iproute2.inc index b2835890..403d2643 100644 --- a/external/poky/meta/recipes-connectivity/iproute2/iproute2.inc +++ b/external/poky/meta/recipes-connectivity/iproute2/iproute2.inc @@ -9,16 +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} @@ -37,18 +46,36 @@ 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 ${base_sbindir}/ctstat ${base_sbindir}/rtstat" +FILES_${PN}-lnstat = "${base_sbindir}/lnstat \ + ${base_sbindir}/ctstat \ + ${base_sbindir}/rtstat" FILES_${PN}-ifstat = "${base_sbindir}/ifstat" FILES_${PN}-genl = "${base_sbindir}/genl" 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}" ALTERNATIVE_LINK_NAME[ip] = "${base_sbindir}/ip" ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN}-tc = "tc" +ALTERNATIVE_LINK_NAME[tc] = "${base_sbindir}/tc" +ALTERNATIVE_PRIORITY_${PN}-tc = "100" diff --git a/external/poky/meta/recipes-connectivity/iproute2/iproute2/0001-ip-Remove-unneed-header.patch b/external/poky/meta/recipes-connectivity/iproute2/iproute2/0001-ip-Remove-unneed-header.patch deleted file mode 100644 index a9027c5b..00000000 --- a/external/poky/meta/recipes-connectivity/iproute2/iproute2/0001-ip-Remove-unneed-header.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 02ed10fc5215c4a32e6740b0a0c2439659be6801 Mon Sep 17 00:00:00 2001 -From: Changhyeok Bae -Date: Mon, 13 Nov 2017 15:59:35 +0000 -Subject: [PATCH] ip: Remove unneed header - -Fix redefinition of struct ethhdr with a suitably patched musl libc -that suppresses the kernel if_ether.h. - -Signed-off-by: Changhyeok Bae - -Upstream-Status: Pending [netdev@vger.kernel.org] ---- - ip/iplink_bridge.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c -index cccdec1..f065b22 100644 ---- a/ip/iplink_bridge.c -+++ b/ip/iplink_bridge.c -@@ -13,7 +13,6 @@ - #include - #include - #include --#include - #include - #include - #include --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch b/external/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch deleted file mode 100644 index 8b75a2ad..00000000 --- a/external/poky/meta/recipes-connectivity/iproute2/iproute2/configure-cross.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 85b0589b4843c03e8e6fd9416d71ea449a73c5c0 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Thu, 3 Nov 2011 10:46:16 +0100 -Subject: [PATCH] make configure cross compile safe - -According to Kevin Tian: -Upstream-Status: Pending - -Signed-off-by: Koen Kooi -Signed-off-by: Shane Wang - -Index: iproute2-4.14.1/configure -=================================================================== ---- iproute2-4.14.1.orig/configure -+++ iproute2-4.14.1/configure -@@ -2,6 +2,7 @@ - # This is not an autoconf generated configure - # - INCLUDE=${1:-"$PWD/include"} -+SYSROOT=$1 - - # Output file which is input to Makefile - CONFIG=config.mk -@@ -195,7 +196,7 @@ check_ipt_lib_dir() - return - fi - -- for dir in /lib /usr/lib /usr/local/lib -+ for dir in $SYSROOT/lib $SYSROOT/usr/lib $SYSROOT/usr/local/lib - do - for file in $dir/{xtables,iptables}/lib*t_*so ; do - if [ -f $file ]; then diff --git a/external/poky/meta/recipes-connectivity/iproute2/iproute2_4.19.0.bb b/external/poky/meta/recipes-connectivity/iproute2/iproute2_4.19.0.bb deleted file mode 100644 index 6db4062d..00000000 --- a/external/poky/meta/recipes-connectivity/iproute2/iproute2_4.19.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -require iproute2.inc - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ - file://configure-cross.patch \ - file://0001-libc-compat.h-add-musl-workaround.patch \ - file://0001-ip-Remove-unneed-header.patch \ - " - -SRC_URI[md5sum] = "67eeebacaac4515cab73dfd2fc796af3" -SRC_URI[sha256sum] = "d9ec5ca1f47d8a85416fa26e7dc1cbf5d067640eb60e90bdc1c7e5bdc6a29984" - -# CFLAGS are computed in Makefile and reference CCOPTS -# -EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/external/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb b/external/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb new file mode 100644 index 00000000..7ad4b8ee --- /dev/null +++ b/external/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb @@ -0,0 +1,12 @@ +require iproute2.inc + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ + file://0001-libc-compat.h-add-musl-workaround.patch \ + " + +SRC_URI[md5sum] = "ee8e2cdb416d4a8ef39525d39ab7c2d0" +SRC_URI[sha256sum] = "bac543435cac208a11db44c9cc8e35aa902befef8750594654ee71941c388f7b" + +# CFLAGS are computed in Makefile and reference CCOPTS +# +EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init b/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init deleted file mode 100755 index 6f29e9c6..00000000 --- a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/init +++ /dev/null @@ -1,78 +0,0 @@ -#! /bin/sh -### BEGIN INIT INFO -# Provides: irda -# Required-Start: $network $remote_fs -# Required-Stop: $network $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Infrared port support -### END INIT INFO - -NAME="irattach" -test -x "$IRDA_DAEMON" || IRDA_DAEMON=/usr/sbin/irattach -test -z "$IRATTACH_PID" && IRATTACH_PID=/var/run/irattach.pid - -# Source function library. -. /etc/init.d/functions - -module_id() { - awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' &2 - exit 1 - ;; -esac diff --git a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/ldflags.patch b/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/ldflags.patch deleted file mode 100644 index b246de8f..00000000 --- a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/ldflags.patch +++ /dev/null @@ -1,87 +0,0 @@ -Obey LDFLAGS - -Signed-off-by: Christopher Larson -Upstream-Status: Pending - -Index: irda-utils-0.9.18/findchip/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/findchip/Makefile -+++ irda-utils-0.9.18/findchip/Makefile -@@ -65,5 +65,5 @@ install: findchip - - gfindchip: gfindchip.c - $(prn_cc) -- $(ECMD))$(CC) $(CFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs` -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs` - -Index: irda-utils-0.9.18/irattach/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/irattach/Makefile -+++ irda-utils-0.9.18/irattach/Makefile -@@ -49,13 +49,13 @@ all: $(TARGETS) - - irattach: irattach.o util.o - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) irattach.o util.o -o $@ -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) irattach.o util.o -o $@ - - - - dongle_attach: dongle_attach.o - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) dongle_attach.o -o $@ -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) dongle_attach.o -o $@ - - - install: $(TARGETS) -Index: irda-utils-0.9.18/irdadump/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/irdadump/Makefile -+++ irda-utils-0.9.18/irdadump/Makefile -@@ -40,7 +40,7 @@ lib_irdadump.a: $(LIBIRDADUMP_OBJS) - - irdadump: $(IRDADUMP_OBJS) $(LIBIRDADUMP_TARGET) - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) `pkg-config --libs glib-2.0` -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET) -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) `pkg-config --libs glib-2.0` -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET) - - - .c.o: -Index: irda-utils-0.9.18/irdaping/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/irdaping/Makefile -+++ irda-utils-0.9.18/irdaping/Makefile -@@ -56,7 +56,7 @@ all: $(TARGETS) - - irdaping: $(OBJS) - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@ -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ - - - .c.o: -Index: irda-utils-0.9.18/irnetd/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/irnetd/Makefile -+++ irda-utils-0.9.18/irnetd/Makefile -@@ -50,7 +50,7 @@ all: $(TARGETS) - - irnetd: $(OBJS) - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@ -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ - - - install: irnetd -Index: irda-utils-0.9.18/psion/Makefile -=================================================================== ---- irda-utils-0.9.18.orig/psion/Makefile -+++ irda-utils-0.9.18/psion/Makefile -@@ -25,4 +25,4 @@ install: $(PSION_TARGETS) - CFLAGS += -g -I../include -Wall -Wstrict-prototypes $(RPM_OPT_FLAGS) - irpsion5: - $(prn_cc_o) -- $(ECMD)$(CC) $(CFLAGS) $(PSION_SRC) -o $@ -\ No newline at end of file -+ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(PSION_SRC) -o $@ -\ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/musl.patch b/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/musl.patch deleted file mode 100644 index 97eb9750..00000000 --- a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils-0.9.18/musl.patch +++ /dev/null @@ -1,29 +0,0 @@ -Replace use of with . - -kernel headers already provides the -needed definitions, moreover not all libc implementations -provide if_packet.h e.g. musl - -Signed-off-by: Khem Raj -Upstream-Status: Pending - -Index: irda-utils-0.9.18/irdaping/irdaping.c -=================================================================== ---- irda-utils-0.9.18.orig/irdaping/irdaping.c -+++ irda-utils-0.9.18/irdaping/irdaping.c -@@ -33,7 +33,6 @@ - #include - #include - #include /* For struct ifreq */ --#include /* For struct sockaddr_pkt */ - #include /* For ARPHRD_IRDA */ - #include /* For ETH_P_ALL */ - #include /* For htons */ -@@ -46,6 +45,7 @@ - #include /* __cpu_to_le32 and co. */ - - #include /* For __u8 and co. */ -+#include /* For struct sockaddr_pkt */ - #include - - #ifndef AF_IRDA diff --git a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb b/external/poky/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb deleted file mode 100644 index 11b2ee91..00000000 --- a/external/poky/meta/recipes-connectivity/irda-utils/irda-utils_0.9.18.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Common files for IrDA" -DESCRIPTION = "Provides common files needed to use IrDA. \ -IrDA allows communication over Infrared with other devices \ -such as phones and laptops." -HOMEPAGE = "http://irda.sourceforge.net/" -BUGTRACKER = "http://sourceforge.net/p/irda/bugs/" -SECTION = "base" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://irdadump/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://smcinit/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ - file://man/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://irdadump/irdadump.c;beginline=1;endline=24;md5=d78b9dce3cd78c2220250c9c7a2be178" - -SRC_URI = "${SOURCEFORGE_MIRROR}/irda/irda-utils-${PV}.tar.gz \ - file://ldflags.patch \ - file://musl.patch \ - file://init" - -SRC_URI[md5sum] = "84dc12aa4c3f61fccb8d8919bf4079bb" -SRC_URI[sha256sum] = "61980551e46b2eaa9e17ad31cbc1a638074611fc33bff34163d10c7a67a9fdc6" - -inherit update-rc.d - -EXTRA_OEMAKE = "\ - 'CC=${CC}' \ - 'LD=${LD}' \ - 'CFLAGS=${CFLAGS}' \ - 'LDFLAGS=${LDFLAGS}' \ - 'SYS_INCLUDES=' \ - 'V=1' \ -" - -INITSCRIPT_NAME = "irattach" -INITSCRIPT_PARAMS = "defaults 20" - -TARGETS ??= "irattach irdaping" -do_compile () { - for t in ${TARGETS}; do - oe_runmake -C $t - done -} - -do_install () { - install -d ${D}${sbindir} - for t in ${TARGETS}; do - oe_runmake -C $t ROOT="${D}" install - done - - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME} -} diff --git a/external/poky/meta/recipes-connectivity/iw/iw/0001-connect-fix-parsing-of-WEP-keys.patch b/external/poky/meta/recipes-connectivity/iw/iw/0001-connect-fix-parsing-of-WEP-keys.patch deleted file mode 100644 index 8cf8f7ab..00000000 --- a/external/poky/meta/recipes-connectivity/iw/iw/0001-connect-fix-parsing-of-WEP-keys.patch +++ /dev/null @@ -1,194 +0,0 @@ -From 2a6be4166fd718be0694fe8a6e3f1013c125dee2 Mon Sep 17 00:00:00 2001 -From: Emmanuel Grumbach -Date: Tue, 12 Jun 2018 09:01:56 +0300 -Subject: [PATCH] connect: fix parsing of WEP keys - -The introduction of MFP options added a bug that causes a -segmentation fault when parsing WEP keys. -Fix that. - -Signed-off-by: Emmanuel Grumbach -Signed-off-by: Johannes Berg - -Upstream-Status: Backport -[https://git.kernel.org/pub/scm/linux/kernel/git/jberg/iw.git/commit/?id=0e39f109c4b8155697a12ef090b59cdb304c8c44] -Signed-off-by: Liu Haitao ---- - ap.c | 2 +- - connect.c | 7 ++----- - ibss.c | 2 +- - iw.h | 3 ++- - util.c | 36 ++++++++++++++++++------------------ - 5 files changed, 24 insertions(+), 26 deletions(-) - -diff --git a/ap.c b/ap.c -index 4bab5b9..dcce402 100644 ---- a/ap.c -+++ b/ap.c -@@ -116,7 +116,7 @@ static int handle_start_ap(struct nl80211_state *state, - argv++; - argc--; - -- return parse_keys(msg, argv, argc); -+ return parse_keys(msg, &argv, &argc); - nla_put_failure: - return -ENOSPC; - } -diff --git a/connect.c b/connect.c -index 339fc73..4a847a1 100644 ---- a/connect.c -+++ b/connect.c -@@ -54,13 +54,10 @@ static int iw_conn(struct nl80211_state *state, - argv++; - argc--; - -- ret = parse_keys(msg, argv, argc); -+ ret = parse_keys(msg, &argv, &argc); - if (ret) - return ret; - -- argc -= 4; -- argv += 4; -- - if (!argc) - return 0; - -@@ -228,7 +225,7 @@ static int iw_auth(struct nl80211_state *state, - argv++; - argc--; - -- return parse_keys(msg, argv, argc); -+ return parse_keys(msg, &argv, &argc); - nla_put_failure: - return -ENOSPC; - } -diff --git a/ibss.c b/ibss.c -index 84f1e95..d77fc92 100644 ---- a/ibss.c -+++ b/ibss.c -@@ -115,7 +115,7 @@ static int join_ibss(struct nl80211_state *state, - argv++; - argc--; - -- return parse_keys(msg, argv, argc); -+ return parse_keys(msg, &argv, &argc); - nla_put_failure: - return -ENOSPC; - } -diff --git a/iw.h b/iw.h -index ee7ca20..8767ed3 100644 ---- a/iw.h -+++ b/iw.h -@@ -180,7 +180,8 @@ int parse_hex_mask(char *hexmask, unsigned char **result, size_t *result_len, - unsigned char **mask); - unsigned char *parse_hex(char *hex, size_t *outlen); - --int parse_keys(struct nl_msg *msg, char **argv, int argc); -+ -+int parse_keys(struct nl_msg *msg, char **argv[], int *argc); - int parse_freqchan(struct chandef *chandef, bool chan, int argc, char **argv, int *parsed); - enum nl80211_chan_width str_to_bw(const char *str); - int put_chandef(struct nl_msg *msg, struct chandef *chandef); -diff --git a/util.c b/util.c -index 6e0ddff..122c019 100644 ---- a/util.c -+++ b/util.c -@@ -417,23 +417,23 @@ static int parse_cipher_suite(const char *cipher_str) - return -EINVAL; - } - --int parse_keys(struct nl_msg *msg, char **argv, int argc) -+int parse_keys(struct nl_msg *msg, char **argv[], int *argc) - { - struct nlattr *keys; - int i = 0; - bool have_default = false; -- char *arg = *argv; -+ char *arg = **argv; - char keybuf[13]; - int pos = 0; - -- if (!argc) -+ if (!*argc) - return 1; - - if (!memcmp(&arg[pos], "psk", 3)) { - char psk_keybuf[32]; - int cipher_suite, akm_suite; - -- if (argc < 4) -+ if (*argc < 4) - goto explain; - - pos+=3; -@@ -451,9 +451,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc) - NLA_PUT(msg, NL80211_ATTR_PMK, 32, psk_keybuf); - NLA_PUT_U32(msg, NL80211_ATTR_AUTH_TYPE, NL80211_AUTHTYPE_OPEN_SYSTEM); - -- argv++; -- argc--; -- arg = *argv; -+ *argv += 1; -+ *argc -= 1; -+ arg = **argv; - - akm_suite = parse_akm_suite(arg); - if (akm_suite < 0) -@@ -461,9 +461,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc) - - NLA_PUT_U32(msg, NL80211_ATTR_AKM_SUITES, akm_suite); - -- argv++; -- argc--; -- arg = *argv; -+ *argv += 1; -+ *argc -= 1; -+ arg = **argv; - - cipher_suite = parse_cipher_suite(arg); - if (cipher_suite < 0) -@@ -471,9 +471,9 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc) - - NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, cipher_suite); - -- argv++; -- argc--; -- arg = *argv; -+ *argv += 1; -+ *argc -= 1; -+ arg = **argv; - - cipher_suite = parse_cipher_suite(arg); - if (cipher_suite < 0) -@@ -495,7 +495,7 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc) - struct nlattr *key = nla_nest_start(msg, ++i); - char *keydata; - -- arg = *argv; -+ arg = **argv; - pos = 0; - - if (!key) -@@ -537,15 +537,15 @@ int parse_keys(struct nl_msg *msg, char **argv, int argc) - - NLA_PUT(msg, NL80211_KEY_DATA, keylen, keydata); - -- argv++; -- argc--; -+ *argv += 1; -+ *argc -= 1; - - /* one key should be TX key */ -- if (!have_default && !argc) -+ if (!have_default && !*argc) - NLA_PUT_FLAG(msg, NL80211_KEY_DEFAULT); - - nla_nest_end(msg, key); -- } while (argc); -+ } while (*argc); - - nla_nest_end(msg, keys); - --- -2.17.1 - diff --git a/external/poky/meta/recipes-connectivity/iw/iw/separate-objdir.patch b/external/poky/meta/recipes-connectivity/iw/iw/separate-objdir.patch index 0ea6a527..179fd901 100644 --- a/external/poky/meta/recipes-connectivity/iw/iw/separate-objdir.patch +++ b/external/poky/meta/recipes-connectivity/iw/iw/separate-objdir.patch @@ -1,3 +1,6 @@ +From ff9f0a631c99fb6e2677c02bf572a5e69c70f5cf Mon Sep 17 00:00:00 2001 +From: Changhyeok Bae +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. @@ -7,29 +10,41 @@ Upstream-Status: Pending Signed-off-by: Christopher Larson Signed-off-by: Maxin B. John --- -diff -Naur iw-4.3-origin/Makefile iw-4.3/Makefile ---- iw-4.3-origin/Makefile 2015-11-20 16:37:58.752077287 +0200 -+++ iw-4.3/Makefile 2015-11-20 16:57:15.510615815 +0200 -@@ -1,5 +1,7 @@ + Makefile | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +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) ++ PREFIX ?= /usr SBINDIR ?= $(PREFIX)/sbin MANDIR ?= $(PREFIX)/share/man -@@ -95,11 +97,11 @@ +@@ -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) -c -o $@ $< -+ $(Q)$(CC) -I$(SRCDIR) $(CFLAGS) -c -o $@ $< +- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< ++ $(Q)$(CC) -I$(SRCDIR) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< ifeq ($(IW_ANDROID_BUILD),) iw: $(OBJS) +-- +2.23.0 + diff --git a/external/poky/meta/recipes-connectivity/iw/iw_4.14.bb b/external/poky/meta/recipes-connectivity/iw/iw_4.14.bb deleted file mode 100644 index f414a4b1..00000000 --- a/external/poky/meta/recipes-connectivity/iw/iw_4.14.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "nl80211 based CLI configuration utility for wireless devices" -DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ -wireless devices. It supports almost all new drivers that have been added \ -to the kernel recently. " -HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" -SECTION = "base" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" - -DEPENDS = "libnl" - -SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \ - file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ - file://separate-objdir.patch \ - file://0001-connect-fix-parsing-of-WEP-keys.patch \ -" - -SRC_URI[md5sum] = "2067516ca9940fdb8c091ee3250da374" -SRC_URI[sha256sum] = "a0c3aad6ff52234d03a2522ba2eba570e36abb3e60dc29bf0b1ce88dd725d6d4" - -inherit pkgconfig - -EXTRA_OEMAKE = "\ - -f '${S}/Makefile' \ - \ - 'PREFIX=${prefix}' \ - 'SBINDIR=${sbindir}' \ - 'MANDIR=${mandir}' \ -" -B = "${WORKDIR}/build" - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} diff --git a/external/poky/meta/recipes-connectivity/iw/iw_5.4.bb b/external/poky/meta/recipes-connectivity/iw/iw_5.4.bb new file mode 100644 index 00000000..9f58e497 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/iw/iw_5.4.bb @@ -0,0 +1,32 @@ +SUMMARY = "nl80211 based CLI configuration utility for wireless devices" +DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \ +wireless devices. It supports almost all new drivers that have been added \ +to the kernel recently. " +HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw" +SECTION = "base" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774" + +DEPENDS = "libnl" + +SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \ + file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \ + file://separate-objdir.patch \ +" + +SRC_URI[md5sum] = "08a4f581a39dc62fa85d3af796d844b6" +SRC_URI[sha256sum] = "943cd2446a6c7242fded3766d054ab2a214a3514b9a8b7e942fed8fb13c1370c" + +inherit pkgconfig + +EXTRA_OEMAKE = "\ + -f '${S}/Makefile' \ + \ + 'PREFIX=${prefix}' \ + 'SBINDIR=${sbindir}' \ + 'MANDIR=${mandir}' \ +" + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} diff --git a/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch b/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch deleted file mode 100644 index f63eb90c..00000000 --- a/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns/0001-check-for-nss.h.patch +++ /dev/null @@ -1,56 +0,0 @@ -From bdf01a581d58eb5340e9238d143dbcac9db5b11c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Jan 2016 19:29:45 +0000 -Subject: [PATCH] check for nss.h - -nss.h may not available on all libc implementations, e.g. musl does not -have this header, this patch detects nss.h presence and defines the data -types that are required if nss.h is missing on platform - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - configure.ac | 2 +- - src/nss.c | 11 +++++++++++ - 2 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index aa66bc6..ce19b07 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -71,7 +71,7 @@ AC_PROG_LIBTOOL - - # Checks for header files. - AC_HEADER_STDC --AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h]) -+AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h nss.h]) - - # Checks for typedefs, structures, and compiler characteristics. - AC_C_CONST -diff --git a/src/nss.c b/src/nss.c -index e48e315..406733b 100644 ---- a/src/nss.c -+++ b/src/nss.c -@@ -29,7 +29,18 @@ - #include - #include - #include -+#ifdef HAVE_NSS_H - #include -+#else -+enum nss_status { -+ NSS_STATUS_TRYAGAIN = -2, -+ NSS_STATUS_UNAVAIL, -+ NSS_STATUS_NOTFOUND, -+ NSS_STATUS_SUCCESS, -+ NSS_STATUS_RETURN -+}; -+#endif -+ - #include - #include - --- -2.7.0 - diff --git a/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb b/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb deleted file mode 100644 index d0eb2768..00000000 --- a/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.10.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "Name Service Switch module for Multicast DNS (zeroconf) name resolution" -HOMEPAGE = "http://0pointer.de/lennart/projects/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 \ - file://0001-check-for-nss.h.patch \ - " - -SRC_URI[md5sum] = "03938f17646efbb50aa70ba5f99f51d7" -SRC_URI[sha256sum] = "1e683c2e7c3921814706d62fbbd3e9cbf493a75fa00255e0e715508d8134fa6d" - -S = "${WORKDIR}/nss-mdns-${PV}" - -localstatedir = "/" - -inherit autotools - -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" - -RDEPENDS_${PN} = "avahi-daemon" - -pkg_postinst_${PN} () { - sed ' - /^hosts:/ !b - /\/ b - s/\([[:blank:]]\+\)dns\>/\1mdns4_minimal [NOTFOUND=return] dns/g - ' -i $D${sysconfdir}/nsswitch.conf -} - -pkg_prerm_${PN} () { - sed ' - /^hosts:/ !b - s/[[:blank:]]\+mdns\(4\|6\)\?\(_minimal\( \[NOTFOUND=return\]\)\?\)\?//g - ' -i $D${sysconfdir}/nsswitch.conf -} diff --git a/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb b/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb new file mode 100644 index 00000000..5e446004 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb @@ -0,0 +1,38 @@ +SUMMARY = "Name Service Switch module for Multicast DNS (zeroconf) name resolution" +HOMEPAGE = "https://github.com/lathiat/nss-mdns" +SECTION = "libs" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1" + +DEPENDS = "avahi" + +SRC_URI = "git://github.com/lathiat/nss-mdns \ + " + +SRCREV = "41c9c5e78f287ed4b41ac438c1873fa71bfa70ae" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +COMPATIBLE_HOST_libc-musl = 'null' + +EXTRA_OECONF = "--libdir=${base_libdir}" + +RDEPENDS_${PN} = "avahi-daemon" + +pkg_postinst_${PN} () { + sed ' + /^hosts:/ !b + /\/ b + s/\([[:blank:]]\+\)dns\>/\1mdns4_minimal [NOTFOUND=return] dns/g + ' -i $D${sysconfdir}/nsswitch.conf +} + +pkg_prerm_${PN} () { + sed ' + /^hosts:/ !b + s/[[:blank:]]\+mdns\(4\|6\)\?\(_minimal\( \[NOTFOUND=return\]\)\?\)\?//g + ' -i $D${sysconfdir}/nsswitch.conf +} diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap.inc b/external/poky/meta/recipes-connectivity/libpcap/libpcap.inc deleted file mode 100644 index e57ea87b..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap.inc +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "Interface for user-level network packet capture" -DESCRIPTION = "Libpcap provides a portable framework for low-level network \ -monitoring. Libpcap can provide network statistics collection, \ -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" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ - file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" -DEPENDS = "flex-native bison-native" - -INC_PR = "r5" - -SRC_URI = "http://www.tcpdump.org/release/${BP}.tar.gz" - -BINCONFIG = "${bindir}/pcap-config" - -inherit autotools binconfig-disabled pkgconfig bluetooth - -EXTRA_OECONF = "--with-pcap=linux" -EXTRA_AUTORECONF += "--exclude=aclocal" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" -# Add a dummy PACKAGECONFIG for bluez5 since it is not supported by libpcap. -PACKAGECONFIG[bluez5] = ",," -PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" - -CPPFLAGS_prepend = "-I${S} " -CFLAGS_prepend = "-I${S} " -CXXFLAGS_prepend = "-I${S} " - -do_configure_prepend () { - sed -i -e's,^V_RPATH_OPT=.*$,V_RPATH_OPT=,' ${S}/pcap-config.in -} - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap/0001-Fix-compiler_state_t.ai-usage-when-INET6-is-not-defi.patch b/external/poky/meta/recipes-connectivity/libpcap/libpcap/0001-Fix-compiler_state_t.ai-usage-when-INET6-is-not-defi.patch deleted file mode 100644 index edb6ae56..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap/0001-Fix-compiler_state_t.ai-usage-when-INET6-is-not-defi.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 64aa033a061c43fc15c711f2490ae41d23b868c3 Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 17 Nov 2016 09:44:42 -0200 -Subject: [PATCH 1/2] Fix compiler_state_t.ai usage when INET6 is not defined -Organization: O.S. Systems Software LTDA. - -Fix error: - -/ -| ../libpcap-1.8.1/gencode.c: In function 'pcap_compile': -| ../libpcap-1.8.1/gencode.c:693:8: error: 'compiler_state_t -| {aka struct _compiler_state}' has no member named 'ai' -| cstate.ai = NULL; -\ - -Upstream-Status: Submitted [1] - -[1] https://github.com/the-tcpdump-group/libpcap/pull/541 - -Signed-off-by: Fabio Berton ---- - gencode.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/gencode.c b/gencode.c -index a887f27..e103c70 100644 ---- a/gencode.c -+++ b/gencode.c -@@ -690,7 +690,9 @@ pcap_compile(pcap_t *p, struct bpf_program *program, - } - initchunks(&cstate); - cstate.no_optimize = 0; -+#ifdef INET6 - cstate.ai = NULL; -+#endif - cstate.ic.root = NULL; - cstate.ic.cur_mark = 0; - cstate.bpf_pcap = p; --- -2.1.4 - diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap/0002-Add-missing-compiler_state_t-parameter.patch b/external/poky/meta/recipes-connectivity/libpcap/libpcap/0002-Add-missing-compiler_state_t-parameter.patch deleted file mode 100644 index 032b265f..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap/0002-Add-missing-compiler_state_t-parameter.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 50ec0a088d5924a8305b2d70dcba71b0942dee1a Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 17 Nov 2016 09:47:29 -0200 -Subject: [PATCH 2/2] Add missing compiler_state_t parameter -Organization: O.S. Systems Software LTDA. - -Fix error: - -/ -|../libpcap-1.8.1/gencode.c: In function 'gen_gateway': -|../libpcap-1.8.1/gencode.c:4914:13: error: 'cstate' undeclared -| (first use in this function) -| bpf_error(cstate, "direction applied to 'gateway'"); -\ - -Upstream-Status: Submitted [1] - -[1] https://github.com/the-tcpdump-group/libpcap/pull/541 - -Signed-off-by: Fabio Berton ---- - gencode.c | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/gencode.c b/gencode.c -index e103c70..f07c0be 100644 ---- a/gencode.c -+++ b/gencode.c -@@ -523,7 +523,7 @@ static struct block *gen_host6(compiler_state_t *, struct in6_addr *, - struct in6_addr *, int, int, int); - #endif - #ifndef INET6 --static struct block *gen_gateway(const u_char *, bpf_u_int32 **, int, int); -+static struct block *gen_gateway(compiler_state_t *, const u_char *, bpf_u_int32 **, int, int); - #endif - static struct block *gen_ipfrag(compiler_state_t *); - static struct block *gen_portatom(compiler_state_t *, int, bpf_int32); -@@ -4904,11 +4904,12 @@ gen_host6(compiler_state_t *cstate, struct in6_addr *addr, - - #ifndef INET6 - static struct block * --gen_gateway(eaddr, alist, proto, dir) -- const u_char *eaddr; -- bpf_u_int32 **alist; -- int proto; -- int dir; -+gen_gateway(cstate, eaddr, alist, proto, dir) -+ compiler_state_t *cstate; -+ const u_char *eaddr; -+ bpf_u_int32 **alist; -+ int proto; -+ int dir; - { - struct block *b0, *b1, *tmp; - -@@ -6472,7 +6473,7 @@ gen_scode(compiler_state_t *cstate, const char *name, struct qual q) - alist = pcap_nametoaddr(name); - if (alist == NULL || *alist == NULL) - bpf_error(cstate, "unknown host '%s'", name); -- b = gen_gateway(eaddr, alist, proto, dir); -+ b = gen_gateway(cstate, eaddr, alist, proto, dir); - free(eaddr); - return b; - #else --- -2.1.4 - diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap/disable-remote.patch b/external/poky/meta/recipes-connectivity/libpcap/libpcap/disable-remote.patch deleted file mode 100644 index 7e1eea6b..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap/disable-remote.patch +++ /dev/null @@ -1,36 +0,0 @@ -Disable bits of remote capture support inherited from the WinPCAP merge -which cause applications to FTBFS if they define HAVE_REMOTE. - -Patch from: -https://anonscm.debian.org/cgit/users/rfrancoise/libpcap.git/commit/? -id=f35949969269dfdcc3549b12fade604755e1e326 - -Upstream-Status: Pending - ---- a/pcap/pcap.h -+++ b/pcap/pcap.h -@@ -506,6 +506,11 @@ - #define MODE_STAT 1 - #define MODE_MON 2 - -+#ifdef HAVE_REMOTE -+ /* Includes most of the public stuff that is needed for the remote capture */ -+ #include -+#endif /* HAVE_REMOTE */ -+ - #elif defined(MSDOS) - - /* -@@ -526,11 +531,6 @@ - - #endif /* _WIN32/MSDOS/UN*X */ - --#ifdef HAVE_REMOTE -- /* Includes most of the public stuff that is needed for the remote capture */ -- #include --#endif /* HAVE_REMOTE */ -- - #ifdef __cplusplus - } - #endif - diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap/fix-grammar-deps.patch b/external/poky/meta/recipes-connectivity/libpcap/libpcap/fix-grammar-deps.patch deleted file mode 100644 index f40e655c..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap/fix-grammar-deps.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fix a missing dependency that can result in: - -../libpcap-1.8.1/grammar.y:78:10: fatal error: scanner.h: No such file or directory - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 0dd90a6bdbce4dca14106859eee63ef643a106e2 Mon Sep 17 00:00:00 2001 -From: Alfredo Alvarez Fernandez -Date: Tue, 21 Feb 2017 11:41:43 +0100 -Subject: [PATCH] Makefile.in: Fix missing dependency - ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index 7044f043..f5d443ae 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -465,7 +465,7 @@ grammar.h: grammar.c - $(MAKE) $(MAKEFLAGS) grammar.c; \ - fi - --grammar.o: grammar.c -+grammar.o: grammar.c scanner.h - $(CC) $(FULL_CFLAGS) -c grammar.c - - gencode.o: $(srcdir)/gencode.c grammar.h scanner.h diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap/libpcap-pkgconfig-support.patch b/external/poky/meta/recipes-connectivity/libpcap/libpcap/libpcap-pkgconfig-support.patch deleted file mode 100644 index afaa3bea..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap/libpcap-pkgconfig-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 2796129af52901dd68595e5e88a639308541def9 Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 3 Nov 2016 17:56:29 -0200 -Subject: [PATCH] libpcap: pkgconfig support -Organization: O.S. Systems Software LTDA. - -Adding basic structure to support pkg-config. - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Joe MacDonald -Signed-off-by: Fabio Berton ---- - Makefile.in | 5 +++++ - configure.ac | 1 + - libpcap.pc.in | 10 ++++++++++ - 3 files changed, 16 insertions(+) - create mode 100644 libpcap.pc.in - -diff --git a/Makefile.in b/Makefile.in -index e71d973..d7004ed 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -61,6 +61,10 @@ V_RPATH_OPT = @V_RPATH_OPT@ - DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@ - PROG=libpcap - -+# pkgconfig support -+pkgconfigdir = $(libdir)/pkgconfig -+pkgconfig_DATA = libpcap.pc -+ - # Standard CFLAGS - FULL_CFLAGS = $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS) - -@@ -286,6 +290,7 @@ EXTRA_DIST = \ - lbl/os-solaris2.h \ - lbl/os-sunos4.h \ - lbl/os-ultrix4.h \ -+ libpcap.pc \ - missing/getopt.c \ - missing/getopt.h \ - missing/snprintf.c \ -diff --git a/configure.ac b/configure.ac -index da2f940..4fc67bf 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1805,6 +1805,7 @@ fi - AC_PROG_INSTALL - - AC_CONFIG_HEADER(config.h) -+AC_CONFIG_FILES([libpcap.pc]) - - AC_OUTPUT_COMMANDS([if test -f .devel; then - echo timestamp > stamp-h -diff --git a/libpcap.pc.in b/libpcap.pc.in -new file mode 100644 -index 0000000..4f78ad8 ---- /dev/null -+++ b/libpcap.pc.in -@@ -0,0 +1,10 @@ -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+libdir=@libdir@ -+includedir=@includedir@ -+ -+Name: libpcap -+Description: System-independent interface for user-level packet capture. -+Version: @VERSION@ -+Libs: -L${libdir} -lpcap -+Cflags: -I${includedir} --- -2.1.4 - diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.8.1.bb b/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.8.1.bb deleted file mode 100644 index 13dfbd67..00000000 --- a/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.8.1.bb +++ /dev/null @@ -1,31 +0,0 @@ -require libpcap.inc - -SRC_URI += " \ - file://libpcap-pkgconfig-support.patch \ - file://0001-Fix-compiler_state_t.ai-usage-when-INET6-is-not-defi.patch \ - file://0002-Add-missing-compiler_state_t-parameter.patch \ - file://disable-remote.patch \ - file://fix-grammar-deps.patch \ -" - -SRC_URI[md5sum] = "3d48f9cd171ff12b0efd9134b52f1447" -SRC_URI[sha256sum] = "673dbc69fdc3f5a86fb5759ab19899039a8e5e6c631749e48dcd9c6f0c83541e" - -# -# make install doesn't cover the shared lib -# make install-shared is just broken (no symlinks) -# - -do_configure_prepend () { - #remove hardcoded references to /usr/include - sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac -} - -do_install_prepend () { - install -d ${D}${libdir} - install -d ${D}${bindir} - oe_runmake install-shared DESTDIR=${D} - oe_libinstall -a -so libpcap ${D}${libdir} - sed "s|@VERSION@|${PV}|" -i ${B}/libpcap.pc - install -D -m 0644 libpcap.pc ${D}${libdir}/pkgconfig/libpcap.pc -} diff --git a/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb b/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb new file mode 100644 index 00000000..35bb5650 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/libpcap/libpcap_1.9.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Interface for user-level network packet capture" +DESCRIPTION = "Libpcap provides a portable framework for low-level network \ +monitoring. Libpcap can provide network statistics collection, \ +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-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453 \ + file://pcap.h;beginline=1;endline=32;md5=39af3510e011f34b8872f120b1dc31d2" +DEPENDS = "flex-native bison-native" + +SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz \ + " +SRC_URI[md5sum] = "21af603d9a591c7d96a6457021d84e6c" +SRC_URI[sha256sum] = "635237637c5b619bcceba91900666b64d56ecb7be63f298f601ec786ce087094" + +inherit autotools binconfig-disabled pkgconfig + +BINCONFIG = "${bindir}/pcap-config" + +# Explicitly disable dag support. We don't have recipe for it and if enabled here, +# configure script poisons the include dirs with /usr/local/include even when the +# support hasn't been detected. +EXTRA_OECONF = " \ + --with-pcap=linux \ + --without-dag \ + " +EXTRA_AUTORECONF += "--exclude=aclocal" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[bluez5] = "--enable-bluetooth,--disable-bluetooth,bluez5" +PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl" + +do_configure_prepend () { + #remove hardcoded references to /usr/include + sed 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i ${S}/configure.ac +} + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/multilibfix.patch b/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/multilibfix.patch deleted file mode 100644 index 7e97e8ec..00000000 --- a/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info/multilibfix.patch +++ /dev/null @@ -1,18 +0,0 @@ -The mobile-broadband-provider-info.pc file is installed into a non-arch directory -yet contains libdir which can vary depending on which multilib is configured. -The .pc file does not require libdir so remove this to fix multilib builds. - -Upstream-Status: Backport [8109fcd3c7299fae859fb891ff416927581a9955] -Signed-off-by: Zhixiong Chi - -Index: git/mobile-broadband-provider-info.pc.in -=================================================================== ---- git.orig/mobile-broadband-provider-info.pc.in 2018-08-07 13:09:31.811364063 +0800 -+++ git/mobile-broadband-provider-info.pc.in 2018-08-10 17:49:25.645288320 +0800 -@@ -1,6 +1,5 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ --libdir=@libdir@ - datarootdir = @datarootdir@ - pkgdatadir=${datarootdir}/@PACKAGE@ - includedir=@includedir@ diff --git a/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb index 7f1dd78c..0b0bbab1 100644 --- a/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb +++ b/external/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb @@ -3,13 +3,13 @@ HOMEPAGE = "http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProvider SECTION = "network" LICENSE = "PD" LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04" -SRCREV = "befcbbc9867e742ac16415660b0b7521218a530c" -PV = "20170310" +SRCREV = "22b49d86fb7aded2c195a9d49e5924da696b3228" +PV = "20190618" PE = "1" -SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https \ - file://multilibfix.patch \ -" +SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https" S = "${WORKDIR}/git" inherit autotools + +DEPENDS += "libxslt-native" diff --git a/external/poky/meta/recipes-connectivity/neard/neard_0.16.bb b/external/poky/meta/recipes-connectivity/neard/neard_0.16.bb index cc6af4e1..7c124a3c 100644 --- a/external/poky/meta/recipes-connectivity/neard/neard_0.16.bb +++ b/external/poky/meta/recipes-connectivity/neard/neard_0.16.bb @@ -18,7 +18,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ file://src/near.h;beginline=1;endline=20;md5=358e4deefef251a4761e1ffacc965d13 \ " -inherit autotools pkgconfig systemd update-rc.d bluetooth +inherit autotools pkgconfig systemd update-rc.d PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" @@ -40,7 +40,7 @@ RDEPENDS_${PN} = "dbus" # Bluez & Wifi are not mandatory except for handover RRECOMMENDS_${PN} = "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez5', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \ " diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch new file mode 100644 index 00000000..bd350144 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch @@ -0,0 +1,299 @@ +From 690a90a5b7786e40b5447ad7c5f19a7657d27405 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Fri, 14 Dec 2018 17:44:32 +0800 +Subject: [PATCH] Makefile.am: fix undefined function for libnsm.a + +The source file of libnsm.a uses some function +in ../support/misc/file.c, add ../support/misc/file.c +to libnsm_a_SOURCES to fix build error when run +"make -C tests statdb_dump": +| ../support/nsm/libnsm.a(file.o): In function `nsm_make_pathname': +| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname' +| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname' +| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname' +| ../support/nsm/libnsm.a(file.o): In function `nsm_setup_pathnames': +| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:280: undefined reference to `generic_setup_basedir' +| collect2: error: ld returned 1 exit status + +As there is already one source file named file.c +as support/nsm/file.c in support/nsm/Makefile.am, +so rename ../support/misc/file.c to ../support/misc/misc.c. + +Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502780423058&w=2] + +Signed-off-by: Mingli Yu + +Rebase it. + +Signed-off-by: Robert Yang +--- + support/misc/Makefile.am | 2 +- + support/misc/file.c | 115 --------------------------------------------------------------------------------------------------------------- + support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + support/nsm/Makefile.am | 2 +- + 4 files changed, 113 insertions(+), 117 deletions(-) + +diff --git a/support/misc/Makefile.am b/support/misc/Makefile.am +index f9993e3..8b0e9db 100644 +--- a/support/misc/Makefile.am ++++ b/support/misc/Makefile.am +@@ -1,7 +1,7 @@ + ## Process this file with automake to produce Makefile.in + + noinst_LIBRARIES = libmisc.a +-libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c file.c \ ++libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c misc.c \ + nfsd_path.c workqueue.c xstat.c + + MAINTAINERCLEANFILES = Makefile.in +diff --git a/support/misc/file.c b/support/misc/file.c +deleted file mode 100644 +index 06f6bb2..0000000 +--- a/support/misc/file.c ++++ /dev/null +@@ -1,115 +0,0 @@ +-/* +- * Copyright 2009 Oracle. All rights reserved. +- * Copyright 2017 Red Hat, Inc. All rights reserved. +- * +- * This file is part of nfs-utils. +- * +- * nfs-utils 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. +- * +- * nfs-utils 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 nfs-utils. If not, see . +- */ +- +-#ifdef HAVE_CONFIG_H +-#include +-#endif +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "xlog.h" +-#include "misc.h" +- +-/* +- * Returns a dynamically allocated, '\0'-terminated buffer +- * containing an appropriate pathname, or NULL if an error +- * occurs. Caller must free the returned result with free(3). +- */ +-__attribute__((__malloc__)) +-char * +-generic_make_pathname(const char *base, const char *leaf) +-{ +- size_t size; +- char *path; +- int len; +- +- size = strlen(base) + strlen(leaf) + 2; +- if (size > PATH_MAX) +- return NULL; +- +- path = malloc(size); +- if (path == NULL) +- return NULL; +- +- len = snprintf(path, size, "%s/%s", base, leaf); +- if ((len < 0) || ((size_t)len >= size)) { +- free(path); +- return NULL; +- } +- +- return path; +-} +- +- +-/** +- * generic_setup_basedir - set up basedir +- * @progname: C string containing name of program, for error messages +- * @parentdir: C string containing pathname to on-disk state, or NULL +- * @base: character buffer to contain the basedir that is set up +- * @baselen: size of @base in bytes +- * +- * This runs before logging is set up, so error messages are directed +- * to stderr. +- * +- * Returns true and sets up our basedir, if @parentdir was valid +- * and usable; otherwise false is returned. +- */ +-_Bool +-generic_setup_basedir(const char *progname, const char *parentdir, char *base, +- const size_t baselen) +-{ +- static char buf[PATH_MAX]; +- struct stat st; +- char *path; +- +- /* First: test length of name and whether it exists */ +- if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) { +- (void)fprintf(stderr, "%s: Directory name too long: %s", +- progname, parentdir); +- return false; +- } +- if (lstat(parentdir, &st) == -1) { +- (void)fprintf(stderr, "%s: Failed to stat %s: %s", +- progname, parentdir, strerror(errno)); +- return false; +- } +- +- /* Ensure we have a clean directory pathname */ +- strncpy(buf, parentdir, sizeof(buf)-1); +- path = dirname(buf); +- if (*path == '.') { +- (void)fprintf(stderr, "%s: Unusable directory %s", +- progname, parentdir); +- return false; +- } +- +- xlog(D_CALL, "Using %s as the state directory", parentdir); +- strcpy(base, parentdir); +- return true; +-} +diff --git a/support/misc/misc.c b/support/misc/misc.c +new file mode 100644 +index 0000000..e7c3819 +--- /dev/null ++++ b/support/misc/misc.c +@@ -0,0 +1,111 @@ ++/* ++ * Copyright 2009 Oracle. All rights reserved. ++ * Copyright 2017 Red Hat, Inc. All rights reserved. ++ * ++ * This file is part of nfs-utils. ++ * ++ * nfs-utils 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. ++ * ++ * nfs-utils 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 nfs-utils. If not, see . ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "xlog.h" ++#include "misc.h" ++ ++/* ++ * Returns a dynamically allocated, '\0'-terminated buffer ++ * containing an appropriate pathname, or NULL if an error ++ * occurs. Caller must free the returned result with free(3). ++ */ ++__attribute__((__malloc__)) ++char * ++generic_make_pathname(const char *base, const char *leaf) ++{ ++ size_t size; ++ char *path; ++ int len; ++ ++ size = strlen(base) + strlen(leaf) + 2; ++ if (size > PATH_MAX) ++ return NULL; ++ ++ path = malloc(size); ++ if (path == NULL) ++ return NULL; ++ ++ len = snprintf(path, size, "%s/%s", base, leaf); ++ if ((len < 0) || ((size_t)len >= size)) { ++ free(path); ++ return NULL; ++ } ++ ++ return path; ++} ++ ++ ++/** ++ * generic_setup_basedir - set up basedir ++ * @progname: C string containing name of program, for error messages ++ * @parentdir: C string containing pathname to on-disk state, or NULL ++ * @base: character buffer to contain the basedir that is set up ++ * @baselen: size of @base in bytes ++ * ++ * This runs before logging is set up, so error messages are directed ++ * to stderr. ++ * ++ * Returns true and sets up our basedir, if @parentdir was valid ++ * and usable; otherwise false is returned. ++ */ ++_Bool ++generic_setup_basedir(const char *progname, const char *parentdir, char *base, ++ const size_t baselen) ++{ ++ static char buf[PATH_MAX]; ++ struct stat st; ++ char *path; ++ ++ /* First: test length of name and whether it exists */ ++ if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) { ++ (void)fprintf(stderr, "%s: Directory name too long: %s", ++ progname, parentdir); ++ return false; ++ } ++ if (lstat(parentdir, &st) == -1) { ++ (void)fprintf(stderr, "%s: Failed to stat %s: %s", ++ progname, parentdir, strerror(errno)); ++ return false; ++ } ++ ++ /* Ensure we have a clean directory pathname */ ++ strncpy(buf, parentdir, sizeof(buf)-1); ++ path = dirname(buf); ++ if (*path == '.') { ++ (void)fprintf(stderr, "%s: Unusable directory %s", ++ progname, parentdir); ++ return false; ++ } ++ ++ xlog(D_CALL, "Using %s as the state directory", parentdir); ++ strcpy(base, parentdir); ++ return true; ++} +diff --git a/support/nsm/Makefile.am b/support/nsm/Makefile.am +index 8f5874e..68f1a46 100644 +--- a/support/nsm/Makefile.am ++++ b/support/nsm/Makefile.am +@@ -10,7 +10,7 @@ GENFILES = $(GENFILES_CLNT) $(GENFILES_SVC) $(GENFILES_XDR) $(GENFILES_H) + EXTRA_DIST = sm_inter.x + + noinst_LIBRARIES = libnsm.a +-libnsm_a_SOURCES = $(GENFILES) file.c rpc.c ++libnsm_a_SOURCES = $(GENFILES) ../misc/misc.c file.c rpc.c + + BUILT_SOURCES = $(GENFILES) + diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch new file mode 100644 index 00000000..bafff5b9 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch @@ -0,0 +1,38 @@ +From ac32b813f5d6f9a2de944015cf9bb98d68e0203a Mon Sep 17 00:00:00 2001 +From: Khem Raj +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 +--- + 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 + #include ++#include + #include + #include + #include +@@ -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/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch index 822939f0..f13d7b38 100644 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/bugfix-adjust-statd-service-name.patch @@ -12,20 +12,28 @@ instead but forgot to update the mount.nfs helper 'start-statd' accordingly. Upstream-Status: Inappropriate [other] Signed-off-by: Ulrich Ölmann + +Rebase it. + +Signed-off-by: Robert Yang --- - utils/statd/start-statd | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + utils/statd/start-statd | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) -Index: nfs-utils-2.1.1/utils/statd/start-statd -=================================================================== ---- nfs-utils-2.1.1.orig/utils/statd/start-statd -+++ nfs-utils-2.1.1/utils/statd/start-statd -@@ -28,7 +28,7 @@ fi +diff --git a/utils/statd/start-statd b/utils/statd/start-statd +index af5c950..df9b9be 100755 +--- a/utils/statd/start-statd ++++ b/utils/statd/start-statd +@@ -28,10 +28,10 @@ fi # First try systemd if it's installed. if [ -d /run/systemd/system ]; then # Quit only if the call worked. -- systemctl start rpc-statd.service && exit -+ systemctl start nfs-statd.service && exit +- if systemctl start rpc-statd.service; then ++ if systemctl start nfs-statd.service; then + # Ensure systemd knows not to stop rpc.statd or its dependencies + # on 'systemctl isolate ..' +- systemctl add-wants --runtime remote-fs.target rpc-statd.service ++ systemctl add-wants --runtime remote-fs.target nfs-statd.service + exit 0 + fi fi - - cd / diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/clang-warnings.patch new file mode 100644 index 00000000..20400fef --- /dev/null +++ b/external/poky/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 + +--- 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/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service index 27ea58d3..c01415de 100644 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service @@ -1,6 +1,7 @@ [Unit] Description=NFS Mount Daemon DefaultDependencies=no +After=rpcbind.socket Requires=proc-fs-nfsd.mount After=proc-fs-nfsd.mount After=network.target local-fs.target @@ -10,6 +11,7 @@ ConditionPathExists=@SYSCONFDIR@/exports [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS +LimitNOFILE=@HIGH_RLIMIT_NOFILE@ [Install] WantedBy=multi-user.target diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service index 6e196b8c..4fa64e19 100644 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service @@ -8,6 +8,7 @@ After=network.target nss-lookup.target rpcbind.service [Service] EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS +LimitNOFILE=@HIGH_RLIMIT_NOFILE@ [Install] WantedBy=multi-user.target diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch deleted file mode 100644 index 993f1e5e..00000000 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch +++ /dev/null @@ -1,42 +0,0 @@ -nfs-utils: Do not pass CFLAGS to gcc while building - -Do not pass CFLAGS/LDFLAGS to gcc while building, The needed flags has -been passed by xxx_CFLAGS=$(CFLAGS_FOR_BUILD). - -Upstream-Status: Pending - -Signed-off-by: Chong Lu ---- - tools/locktest/Makefile.am | 2 ++ - tools/rpcgen/Makefile.am | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/tools/locktest/Makefile.am b/tools/locktest/Makefile.am -index 3156815..1729fd1 100644 ---- a/tools/locktest/Makefile.am -+++ b/tools/locktest/Makefile.am -@@ -1,6 +1,8 @@ - ## Process this file with automake to produce Makefile.in - - CC=$(CC_FOR_BUILD) -+CFLAGS= -+LDFLAGS= - LIBTOOL = @LIBTOOL@ --tag=CC - - noinst_PROGRAMS = testlk -diff --git a/tools/rpcgen/Makefile.am b/tools/rpcgen/Makefile.am -index 8a9ec89..8bacdaa 100644 ---- a/tools/rpcgen/Makefile.am -+++ b/tools/rpcgen/Makefile.am -@@ -1,6 +1,8 @@ - ## Process this file with automake to produce Makefile.in - - CC=$(CC_FOR_BUILD) -+CFLAGS= -+LDFLAGS= - LIBTOOL = @LIBTOOL@ --tag=CC - - noinst_PROGRAMS = rpcgen --- -1.7.9.5 - diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch deleted file mode 100644 index 25ca4151..00000000 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-limits.patch +++ /dev/null @@ -1,133 +0,0 @@ -Fixed: -| file.c: In function 'generic_make_pathname': -| file.c:48:13: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'? -| if (size > PATH_MAX) -| ^~~~~~~~ -[snip] - -Upstream-Status: Pending [https://git.alpinelinux.org/cgit/aports/tree/main/nfs-utils/limits.patch?id=f6734a77d3caee73325f8cc1f77d1b5117a75096] - -Signed-off-by: Robert Yang ---- - support/export/export.c | 1 + - support/export/xtab.c | 1 + - support/misc/file.c | 1 + - support/nfs/xcommon.c | 1 + - support/nsm/file.c | 1 + - utils/blkmapd/device-discovery.c | 1 + - utils/gssd/krb5_util.c | 1 + - utils/mountd/cache.c | 1 + - utils/mountd/mountd.c | 1 + - utils/mountd/rmtab.c | 1 + - 10 files changed, 10 insertions(+) - -diff --git a/support/export/export.c b/support/export/export.c ---- a/support/export/export.c -+++ b/support/export/export.c -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - #include "xmalloc.h" - #include "nfslib.h" - #include "exportfs.h" -diff --git a/support/export/xtab.c b/support/export/xtab.c ---- a/support/export/xtab.c -+++ b/support/export/xtab.c -@@ -18,6 +18,7 @@ - #include - #include - #include -+#include - - #include "nfslib.h" - #include "exportfs.h" -diff --git a/support/misc/file.c b/support/misc/file.c ---- a/support/misc/file.c -+++ b/support/misc/file.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "xlog.h" - #include "misc.h" -diff --git a/support/nfs/xcommon.c b/support/nfs/xcommon.c ---- a/support/nfs/xcommon.c -+++ b/support/nfs/xcommon.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "xcommon.h" - #include "nls.h" /* _() */ -diff --git a/support/nsm/file.c b/support/nsm/file.c ---- a/support/nsm/file.c -+++ b/support/nsm/file.c -@@ -85,6 +85,7 @@ - #include - #include - #include -+#include - - #include "xlog.h" - #include "nsm.h" -diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c ---- a/utils/blkmapd/device-discovery.c -+++ b/utils/blkmapd/device-discovery.c -@@ -49,6 +49,7 @@ - #include - #include - #include -+#include - #include - - #ifdef HAVE_CONFIG_H -diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c ---- a/utils/gssd/krb5_util.c -+++ b/utils/gssd/krb5_util.c -@@ -120,6 +120,7 @@ - #endif - #include - #include -+#include - - #include "gssd.h" - #include "err_util.h" -diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c ---- a/utils/mountd/cache.c -+++ b/utils/mountd/cache.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include "misc.h" - #include "nfslib.h" - #include "exportfs.h" -diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c ---- a/utils/mountd/mountd.c -+++ b/utils/mountd/mountd.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - #include "conffile.h" - #include "xmalloc.h" -diff --git a/utils/mountd/rmtab.c b/utils/mountd/rmtab.c ---- a/utils/mountd/rmtab.c -+++ b/utils/mountd/rmtab.c -@@ -16,6 +16,7 @@ - #include - #include - #include -+#include - - #include "misc.h" - #include "exportfs.h" diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch deleted file mode 100644 index a169e6a2..00000000 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-utils-musl-res_querydomain.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fixed: -configure: error: res_querydomain needed - -Upstream-Status: Pending [https://git.alpinelinux.org/cgit/aports/tree/main/nfs-utils/musl-res_querydomain.patch?id=f6734a77d3caee73325f8cc1f77d1b5117a75096] - -Signed-off-by: Robert Yang ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac ---- a/configure.ac -+++ b/configure.ac -@@ -401,7 +401,7 @@ if test "$enable_gss" = yes; then - fi - - dnl libdnsidmap specific checks --AC_CHECK_LIB([resolv], [__res_querydomain], , AC_MSG_ERROR(res_querydomain needed)) -+AC_CHECK_LIB([resolv], [res_querydomain], , AC_MSG_ERROR(res_querydomain needed)) - - AC_ARG_ENABLE([ldap], - [AS_HELP_STRING([--disable-ldap],[Disable support for LDAP @<:default=detect@:>@])]) diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver index d5e9c38a..0f5747cc 100644 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver +++ b/external/poky/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/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.1.bb b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.1.bb deleted file mode 100644 index 6d450c75..00000000 --- a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.1.bb +++ /dev/null @@ -1,151 +0,0 @@ -SUMMARY = "userspace utilities for kernel nfs" -DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ -NFS server and related tools." -HOMEPAGE = "http://nfs.sourceforge.net/" -SECTION = "console/network" - -LICENSE = "MIT & GPLv2+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" - -# util-linux for libblkid -DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" -RDEPENDS_${PN} = "${PN}-client bash" -RRECOMMENDS_${PN} = "kernel-module-nfsd" - -inherit useradd - -USERADD_PACKAGES = "${PN}-client" -USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ - --shell /bin/false --user-group rpcuser" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ - file://nfsserver \ - file://nfscommon \ - file://nfs-utils.conf \ - file://nfs-server.service \ - file://nfs-mountd.service \ - file://nfs-statd.service \ - file://proc-fs-nfsd.mount \ - file://nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch \ - file://nfs-utils-debianize-start-statd.patch \ - file://bugfix-adjust-statd-service-name.patch \ - file://nfs-utils-musl-limits.patch \ -" - -SRC_URI_append_libc-musl = " file://nfs-utils-musl-res_querydomain.patch" - -SRC_URI[md5sum] = "d77b182a9ee396aa6221ac2401ad7046" -SRC_URI[sha256sum] = "96d06b5a86b185815760d8f04c34fdface8fa8b9949ff256ac05c3ebc08335a5" - -# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will -# pull in the remainder of the dependencies. - -INITSCRIPT_PACKAGES = "${PN} ${PN}-client" -INITSCRIPT_NAME = "nfsserver" -INITSCRIPT_PARAMS = "defaults" -INITSCRIPT_NAME_${PN}-client = "nfscommon" -INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" - -inherit autotools-brokensep update-rc.d systemd pkgconfig - -SYSTEMD_PACKAGES = "${PN} ${PN}-client" -SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" -SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" - -# --enable-uuid is need for cross-compiling -EXTRA_OECONF = "--with-statduser=rpcuser \ - --enable-mountconfig \ - --enable-libmount-mount \ - --enable-uuid \ - --disable-gss \ - --disable-nfsdcltrack \ - --with-statdpath=/var/lib/nfs/statd \ - " - -PACKAGECONFIG ??= "tcp-wrappers \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -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" - -PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" - -CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ - ${localstatedir}/lib/nfs/rmtab \ - ${localstatedir}/lib/nfs/xtab \ - ${localstatedir}/lib/nfs/statd/state \ - ${sysconfdir}/nfsmount.conf" - -FILES_${PN}-client = "${sbindir}/*statd \ - ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ - ${sbindir}/showmount ${sbindir}/nfsstat \ - ${localstatedir}/lib/nfs \ - ${sysconfdir}/nfs-utils.conf \ - ${sysconfdir}/nfsmount.conf \ - ${sysconfdir}/init.d/nfscommon \ - ${systemd_unitdir}/system/nfs-statd.service" -RDEPENDS_${PN}-client = "${PN}-mount rpcbind" - -FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" - -FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" -RDEPENDS_${PN}-stats = "python3-core" - -FILES_${PN} += "${systemd_unitdir}" - -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/osd_login/Makefile.am -} - -# Make clean needed because the package comes with -# precompiled 64-bit objects that break the build -do_compile_prepend() { - make clean -} - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon - - install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} - install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},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 - fi - - # kernel code as of 3.8 hard-codes this path as a default - install -d ${D}/var/lib/nfs/v4recovery - - # chown the directories and files - chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd - chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state - - # the following are built by CC_FOR_BUILD - rm -f ${D}${sbindir}/rpcdebug - rm -f ${D}${sbindir}/rpcgen - rm -f ${D}${sbindir}/locktest - - # Make python tools use python 3 - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat - -} diff --git a/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb new file mode 100644 index 00000000..9bdb6f4a --- /dev/null +++ b/external/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb @@ -0,0 +1,147 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "MIT & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" + +# util-linux for libblkid +DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" +RDEPENDS_${PN} = "${PN}-client" +RRECOMMENDS_${PN} = "kernel-module-nfsd" + +inherit useradd + +USERADD_PACKAGES = "${PN}-client" +USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ + --shell /bin/false --user-group rpcuser" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ + file://nfsserver \ + file://nfscommon \ + file://nfs-utils.conf \ + file://nfs-server.service \ + file://nfs-mountd.service \ + file://nfs-statd.service \ + file://proc-fs-nfsd.mount \ + file://nfs-utils-debianize-start-statd.patch \ + file://bugfix-adjust-statd-service-name.patch \ + file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \ + file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ + file://clang-warnings.patch \ + " +SRC_URI[md5sum] = "06020c76f531ed97f3145514901e0e7c" +SRC_URI[sha256sum] = "af65fce5dd8370cff9ead67baac5a6cd69c376dcadfef264dc2c78c904f26599" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_PACKAGES = "${PN} ${PN}-client" +INITSCRIPT_NAME = "nfsserver" +INITSCRIPT_PARAMS = "defaults" +INITSCRIPT_NAME_${PN}-client = "nfscommon" +INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" + +inherit autotools-brokensep update-rc.d systemd pkgconfig + +SYSTEMD_PACKAGES = "${PN} ${PN}-client" +SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" +SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=rpcuser \ + --enable-mountconfig \ + --enable-libmount-mount \ + --enable-uuid \ + --disable-gss \ + --disable-nfsdcltrack \ + --with-statdpath=/var/lib/nfs/statd \ + " + +PACKAGECONFIG ??= "tcp-wrappers \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +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,libdevmapper" +# keyutils is available in meta-oe +PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core" + +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" + +CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ + ${localstatedir}/lib/nfs/rmtab \ + ${localstatedir}/lib/nfs/xtab \ + ${localstatedir}/lib/nfs/statd/state \ + ${sysconfdir}/nfsmount.conf" + +FILES_${PN}-client = "${sbindir}/*statd \ + ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ + ${sbindir}/showmount ${sbindir}/nfsstat \ + ${localstatedir}/lib/nfs \ + ${sysconfdir}/nfs-utils.conf \ + ${sysconfdir}/nfsmount.conf \ + ${sysconfdir}/init.d/nfscommon \ + ${systemd_unitdir}/system/nfs-statd.service" +RDEPENDS_${PN}-client = "${PN}-mount rpcbind" + +FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" + +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" +RDEPENDS_${PN}-stats = "python3-core" + +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 +} + +# Make clean needed because the package comes with +# precompiled 64-bit objects that break the build +do_compile_prepend() { + make clean +} + +# Works on systemd only +HIGH_RLIMIT_NOFILE ??= "4096" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon + + install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} + install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -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 + fi + + # kernel code as of 3.8 hard-codes this path as a default + install -d ${D}/var/lib/nfs/v4recovery + + # chown the directories and files + 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 + +} diff --git a/external/poky/meta/recipes-connectivity/ofono/ofono.inc b/external/poky/meta/recipes-connectivity/ofono/ofono.inc deleted file mode 100644 index 0472414b..00000000 --- a/external/poky/meta/recipes-connectivity/ofono/ofono.inc +++ /dev/null @@ -1,39 +0,0 @@ -HOMEPAGE = "http://www.ofono.org" -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" -LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \ - file://src/ofono.h;beginline=1;endline=20;md5=3ce17d5978ef3445def265b98899c2ee" - -inherit autotools pkgconfig update-rc.d systemd bluetooth gobject-introspection-data - -DEPENDS = "dbus glib-2.0 udev mobile-broadband-provider-info" - -INITSCRIPT_NAME = "ofono" -INITSCRIPT_PARAMS = "defaults 22" - -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, ${BLUEZ}" - -EXTRA_OECONF += "--enable-test" - -SYSTEMD_SERVICE_${PN} = "ofono.service" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono -} - -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 python3-dbus" -RDEPENDS_${PN}-tests += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'python3-pygobject', '', d)}" diff --git a/external/poky/meta/recipes-connectivity/ofono/ofono/0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch b/external/poky/meta/recipes-connectivity/ofono/ofono/0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch new file mode 100644 index 00000000..8a5a300a --- /dev/null +++ b/external/poky/meta/recipes-connectivity/ofono/ofono/0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch @@ -0,0 +1,36 @@ +From 22b52db4842611ac31a356f023fc09595384e2ad Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 23 May 2019 18:11:22 -0700 +Subject: [PATCH] mbim: add an optional TEMP_FAILURE_RETRY macro copy + +Fixes build on musl which does not provide this macro + +Upstream-Status: Submitted [https://lists.ofono.org/pipermail/ofono/2019-May/019370.html] +Signed-off-by: Khem Raj +--- + drivers/mbimmodem/mbim-private.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/drivers/mbimmodem/mbim-private.h b/drivers/mbimmodem/mbim-private.h +index e159235..51693ea 100644 +--- a/drivers/mbimmodem/mbim-private.h ++++ b/drivers/mbimmodem/mbim-private.h +@@ -21,6 +21,15 @@ + + #define align_len(len, boundary) (((len)+(boundary)-1) & ~((boundary)-1)) + ++#ifndef TEMP_FAILURE_RETRY ++#define TEMP_FAILURE_RETRY(expression) ({ \ ++ __typeof(expression) __result; \ ++ do { \ ++ __result = (expression); \ ++ } while (__result == -1 && errno == EINTR); \ ++ __result; }) ++#endif ++ + enum mbim_control_message { + MBIM_OPEN_MSG = 0x1, + MBIM_CLOSE_MSG = 0x2, +-- +2.21.0 + diff --git a/external/poky/meta/recipes-connectivity/ofono/ofono/use-python3.patch b/external/poky/meta/recipes-connectivity/ofono/ofono/use-python3.patch deleted file mode 100644 index 7b840752..00000000 --- a/external/poky/meta/recipes-connectivity/ofono/ofono/use-python3.patch +++ /dev/null @@ -1,27 +0,0 @@ -set-ddr should use Python3 like all the other tests. - -Upstream-Status: Submitted -Signed-off-by: Ross Burton - -From 17b69cd1da4c5c5f732acb38ca1602446c567ee7 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Mon, 29 Jan 2018 11:31:25 +0000 -Subject: [PATCH] test/setddr: use Python 3 - -All the other tests use Python 3, so this should to. ---- - test/set-ddr | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/set-ddr b/test/set-ddr -index 5d061b95..33631f31 100755 ---- a/test/set-ddr -+++ b/test/set-ddr -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - import sys - import dbus --- -2.11.0 diff --git a/external/poky/meta/recipes-connectivity/ofono/ofono_1.24.bb b/external/poky/meta/recipes-connectivity/ofono/ofono_1.24.bb deleted file mode 100644 index be7d9ea8..00000000 --- a/external/poky/meta/recipes-connectivity/ofono/ofono_1.24.bb +++ /dev/null @@ -1,9 +0,0 @@ -require ofono.inc - -SRC_URI = "\ - ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \ - file://ofono \ - file://use-python3.patch \ -" -SRC_URI[md5sum] = "be24e80f6551f46fea0c5b5879964d6c" -SRC_URI[sha256sum] = "9c8e351b7658f4b43f9a4380b731c47d2d7544a89987c48c3f227e73636c87ae" diff --git a/external/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb b/external/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb new file mode 100644 index 00000000..7d0976ad --- /dev/null +++ b/external/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb @@ -0,0 +1,50 @@ +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." +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" + +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" + +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" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono +} + +PACKAGES =+ "${PN}-tests" + +FILES_${PN} += "${systemd_unitdir}" +FILES_${PN}-tests = "${libdir}/${BPN}/test" + +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/external/poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch b/external/poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch index 7e043a2d..20036da9 100644 --- a/external/poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch +++ b/external/poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch @@ -11,14 +11,17 @@ would lead to program abort. Upstream-Status: Submitted [http://bugzilla.mindrot.org/show_bug.cgi?id=2608] Signed-off-by: Yuanjie Huang + +Complete the fix +Signed-off-by: Hongxu Jia --- - openbsd-compat/strlcat.c | 8 ++++++-- - openbsd-compat/strlcpy.c | 8 ++++++-- - openbsd-compat/strnlen.c | 8 ++++++-- - 3 files changed, 18 insertions(+), 6 deletions(-) + openbsd-compat/strlcat.c | 10 +++++++--- + openbsd-compat/strlcpy.c | 8 ++++++-- + openbsd-compat/strnlen.c | 8 ++++++-- + 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/openbsd-compat/strlcat.c b/openbsd-compat/strlcat.c -index bcc1b61..e758ebf 100644 +index bcc1b61..124e1e3 100644 --- a/openbsd-compat/strlcat.c +++ b/openbsd-compat/strlcat.c @@ -23,6 +23,7 @@ @@ -29,6 +32,15 @@ index bcc1b61..e758ebf 100644 /* * Appends src to string dst of size siz (unlike strncat, siz is the +@@ -42,7 +43,7 @@ strlcat(char *dst, const char *src, size_t siz) + /* Find the end of dst and adjust bytes left but don't go past end */ + while (n-- != 0 && *d != '\0') + d++; +- dlen = d - dst; ++ dlen = (uintptr_t)d - (uintptr_t)dst; + n = siz - dlen; + + if (n == 0) @@ -55,8 +56,11 @@ strlcat(char *dst, const char *src, size_t siz) s++; } @@ -70,7 +82,7 @@ index b4b1b60..b06f374 100644 #endif /* !HAVE_STRLCPY */ diff --git a/openbsd-compat/strnlen.c b/openbsd-compat/strnlen.c -index 93d5155..9b8de5d 100644 +index 7ad3573..7040f1f 100644 --- a/openbsd-compat/strnlen.c +++ b/openbsd-compat/strnlen.c @@ -23,6 +23,7 @@ @@ -95,5 +107,5 @@ index 93d5155..9b8de5d 100644 } #endif -- -1.9.1 +2.17.1 diff --git a/external/poky/meta/recipes-connectivity/openssh/openssh/run-ptest b/external/poky/meta/recipes-connectivity/openssh/openssh/run-ptest index 36a3d2a7..ae03e929 100755 --- a/external/poky/meta/recipes-connectivity/openssh/openssh/run-ptest +++ b/external/poky/meta/recipes-connectivity/openssh/openssh/run-ptest @@ -1,11 +1,12 @@ #!/bin/sh export TEST_SHELL=sh +export SKIP_UNIT=1 cd regress sed -i "/\t\tagent-ptrace /d" Makefile make -k .OBJDIR=`pwd` .CURDIR=`pwd` SUDO="sudo" tests \ - | sed -e 's/^skipped/SKIP: /g' -e 's/^ok /PASS: /g' -e 's/^failed/FAIL: /g' + | sed -u -e 's/^skipped/SKIP: /g' -e 's/^ok /PASS: /g' -e 's/^failed/FAIL: /g' SSHAGENT=`which ssh-agent` GDB=`which gdb` diff --git a/external/poky/meta/recipes-connectivity/openssh/openssh_7.8p1+git.bb b/external/poky/meta/recipes-connectivity/openssh/openssh_7.8p1+git.bb deleted file mode 100644 index f54dfb5d..00000000 --- a/external/poky/meta/recipes-connectivity/openssh/openssh_7.8p1+git.bb +++ /dev/null @@ -1,164 +0,0 @@ -SUMMARY = "A suite of security-related network utilities based on \ -the SSH protocol including the ssh client and sshd server" -DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \ -Ssh (Secure Shell) is a program for logging into a remote machine \ -and for executing commands on a remote machine." -HOMEPAGE = "http://www.openssh.com/" -SECTION = "console/network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8" - -DEPENDS = "zlib openssl" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" - -SRC_URI = "git://github.com/openssh/openssh-portable;branch=master \ - file://sshd_config \ - file://ssh_config \ - file://init \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - file://sshd.socket \ - file://sshd@.service \ - file://sshdgenkeys.service \ - file://volatiles.99_sshd \ - file://run-ptest \ - file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \ - file://sshd_check_keys \ - file://add-test-support-for-busybox.patch \ - " - -PAM_SRC_URI = "file://sshd" - -SRCREV = "cce8cbe0ed7d1ba3a575310e0b63c193326ae616" - -S = "${WORKDIR}/git" - -inherit 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" -INITSCRIPT_PACKAGES = "${PN}-sshd" -INITSCRIPT_NAME_${PN}-sshd = "sshd" -INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" - -SYSTEMD_PACKAGES = "${PN}-sshd" -SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket" - -inherit autotools-brokensep ptest - -EXTRA_AUTORECONF += "--exclude=aclocal" - -# login path is hardcoded in sshd -EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ - --without-zlib-version-check \ - --with-privsep-path=${localstatedir}/run/sshd \ - --sysconfdir=${sysconfdir}/ssh \ - --with-xauth=${bindir}/xauth \ - --disable-strip \ - " - -# musl doesn't implement wtmp/utmp -EXTRA_OECONF_append_libc-musl = " --disable-wtmp" - -# Since we do not depend on libbsd, we do not want configure to use it -# just because it finds libutil.h. But, specifying --disable-libutil -# causes compile errors, so... -CACHED_CONFIGUREVARS += "ac_cv_header_bsd_libutil_h=no ac_cv_header_libutil_h=no" - -# passwd path is hardcoded in sshd -CACHED_CONFIGUREVARS += "ac_cv_path_PATH_PASSWD_PROG=${bindir}/passwd" - -# We don't want to depend on libblockfile -CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no" - -do_configure_prepend () { - export LD="${CC}" - install -m 0644 ${WORKDIR}/sshd_config ${B}/ - install -m 0644 ${WORKDIR}/ssh_config ${B}/ -} - -do_compile_ptest() { - # skip regress/unittests/ binaries: this will silently skip - # unittests in run-ptests which is good because they are so slow. - oe_runmake regress/modpipe regress/setuid-allowed regress/netcat \ - regress/check-perm regress/mkdtemp -} - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 0644 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd - sed -i -e 's:#UsePAM no:UsePAM yes:' ${D}${sysconfdir}/ssh/sshd_config - fi - - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then - sed -i -e 's:#X11Forwarding no:X11Forwarding yes:' ${D}${sysconfdir}/ssh/sshd_config - fi - - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd - rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin - rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir} - install -d ${D}/${sysconfdir}/default/volatiles - install -m 644 ${WORKDIR}/volatiles.99_sshd ${D}/${sysconfdir}/default/volatiles/99_sshd - install -m 0755 ${S}/contrib/ssh-copy-id ${D}${bindir} - - # Create config files for read-only rootfs - install -d ${D}${sysconfdir}/ssh - install -m 644 ${D}${sysconfdir}/ssh/sshd_config ${D}${sysconfdir}/ssh/sshd_config_readonly - sed -i '/HostKey/d' ${D}${sysconfdir}/ssh/sshd_config_readonly - echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly - echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly - echo "HostKey /var/run/ssh/ssh_host_ed25519_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly - - install -d ${D}${systemd_unitdir}/system - install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system - install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system - install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ - -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@BINDIR@,${bindir},g' \ - -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \ - ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service - - sed -i -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \ - ${D}${sysconfdir}/init.d/sshd - - install -D -m 0755 ${WORKDIR}/sshd_check_keys ${D}${libexecdir}/${BPN}/sshd_check_keys -} - -do_install_ptest () { - sed -i -e "s|^SFTPSERVER=.*|SFTPSERVER=${libexecdir}/sftp-server|" regress/test-exec.sh - cp -r regress ${D}${PTEST_PATH} -} - -ALLOW_EMPTY_${PN} = "1" - -PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server" -FILES_${PN}-scp = "${bindir}/scp.${BPN}" -FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config" -FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd ${systemd_unitdir}/system" -FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config ${sysconfdir}/ssh/sshd_config_readonly ${sysconfdir}/default/volatiles/99_sshd ${sysconfdir}/pam.d/sshd" -FILES_${PN}-sshd += "${libexecdir}/${BPN}/sshd_check_keys" -FILES_${PN}-sftp = "${bindir}/sftp" -FILES_${PN}-sftp-server = "${libexecdir}/sftp-server" -FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" -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)}" -RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make" - -RPROVIDES_${PN}-ssh = "ssh" -RPROVIDES_${PN}-sshd = "sshd" - -RCONFLICTS_${PN} = "dropbear" -RCONFLICTS_${PN}-sshd = "dropbear" - -CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" -CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" - -ALTERNATIVE_PRIORITY = "90" -ALTERNATIVE_${PN}-scp = "scp" -ALTERNATIVE_${PN}-ssh = "ssh" - -BBCLASSEXTEND += "nativesdk" diff --git a/external/poky/meta/recipes-connectivity/openssh/openssh_8.2p1.bb b/external/poky/meta/recipes-connectivity/openssh/openssh_8.2p1.bb new file mode 100644 index 00000000..d879efc2 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/openssh/openssh_8.2p1.bb @@ -0,0 +1,170 @@ +SUMMARY = "A suite of security-related network utilities based on \ +the SSH protocol including the ssh client and sshd server" +DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \ +Ssh (Secure Shell) is a program for logging into a remote machine \ +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=18d9e5a8b3dd1790d73502f50426d4d3" + +DEPENDS = "zlib openssl virtual/crypt" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" + +SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \ + file://sshd_config \ + file://ssh_config \ + file://init \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + file://sshd.socket \ + file://sshd@.service \ + file://sshdgenkeys.service \ + file://volatiles.99_sshd \ + file://run-ptest \ + file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \ + file://sshd_check_keys \ + file://add-test-support-for-busybox.patch \ + " +SRC_URI[md5sum] = "3076e6413e8dbe56d33848c1054ac091" +SRC_URI[sha256sum] = "43925151e6cf6cee1450190c0e9af4dc36b41c12737619edff8bcebdff64e671" + +PAM_SRC_URI = "file://sshd" + +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" +INITSCRIPT_PACKAGES = "${PN}-sshd" +INITSCRIPT_NAME_${PN}-sshd = "sshd" +INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9" + +SYSTEMD_PACKAGES = "${PN}-sshd" +SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket" + +inherit autotools-brokensep ptest + +PACKAGECONFIG ??= "" +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" + +EXTRA_AUTORECONF += "--exclude=aclocal" + +# login path is hardcoded in sshd +EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + --without-zlib-version-check \ + --with-privsep-path=${localstatedir}/run/sshd \ + --sysconfdir=${sysconfdir}/ssh \ + --with-xauth=${bindir}/xauth \ + --disable-strip \ + " + +# musl doesn't implement wtmp/utmp +EXTRA_OECONF_append_libc-musl = " --disable-wtmp" + +# Since we do not depend on libbsd, we do not want configure to use it +# just because it finds libutil.h. But, specifying --disable-libutil +# causes compile errors, so... +CACHED_CONFIGUREVARS += "ac_cv_header_bsd_libutil_h=no ac_cv_header_libutil_h=no" + +# passwd path is hardcoded in sshd +CACHED_CONFIGUREVARS += "ac_cv_path_PATH_PASSWD_PROG=${bindir}/passwd" + +# We don't want to depend on libblockfile +CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no" + +do_configure_prepend () { + export LD="${CC}" + install -m 0644 ${WORKDIR}/sshd_config ${B}/ + install -m 0644 ${WORKDIR}/ssh_config ${B}/ +} + +do_compile_ptest() { + # skip regress/unittests/ binaries: this will silently skip + # unittests in run-ptests which is good because they are so slow. + oe_runmake regress/modpipe regress/setuid-allowed regress/netcat \ + regress/check-perm regress/mkdtemp +} + +do_install_append () { + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 0644 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd + sed -i -e 's:#UsePAM no:UsePAM yes:' ${D}${sysconfdir}/ssh/sshd_config + fi + + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then + sed -i -e 's:#X11Forwarding no:X11Forwarding yes:' ${D}${sysconfdir}/ssh/sshd_config + fi + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd + rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin + rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir} + install -d ${D}/${sysconfdir}/default/volatiles + install -m 644 ${WORKDIR}/volatiles.99_sshd ${D}/${sysconfdir}/default/volatiles/99_sshd + install -m 0755 ${S}/contrib/ssh-copy-id ${D}${bindir} + + # Create config files for read-only rootfs + install -d ${D}${sysconfdir}/ssh + install -m 644 ${D}${sysconfdir}/ssh/sshd_config ${D}${sysconfdir}/ssh/sshd_config_readonly + sed -i '/HostKey/d' ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + echo "HostKey /var/run/ssh/ssh_host_ed25519_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly + + install -d ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system + install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ + -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@BINDIR@,${bindir},g' \ + -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \ + ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service + + sed -i -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \ + ${D}${sysconfdir}/init.d/sshd + + install -D -m 0755 ${WORKDIR}/sshd_check_keys ${D}${libexecdir}/${BPN}/sshd_check_keys +} + +do_install_ptest () { + sed -i -e "s|^SFTPSERVER=.*|SFTPSERVER=${libexecdir}/sftp-server|" regress/test-exec.sh + cp -r regress ${D}${PTEST_PATH} +} + +ALLOW_EMPTY_${PN} = "1" + +PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server" +FILES_${PN}-scp = "${bindir}/scp.${BPN}" +FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config" +FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd ${systemd_unitdir}/system" +FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config ${sysconfdir}/ssh/sshd_config_readonly ${sysconfdir}/default/volatiles/99_sshd ${sysconfdir}/pam.d/sshd" +FILES_${PN}-sshd += "${libexecdir}/${BPN}/sshd_check_keys" +FILES_${PN}-sftp = "${bindir}/sftp" +FILES_${PN}-sftp-server = "${libexecdir}/sftp-server" +FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*" +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" +# 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" + +RPROVIDES_${PN}-ssh = "ssh" +RPROVIDES_${PN}-sshd = "sshd" + +RCONFLICTS_${PN} = "dropbear" +RCONFLICTS_${PN}-sshd = "dropbear" + +CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config" +CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config" + +ALTERNATIVE_PRIORITY = "90" +ALTERNATIVE_${PN}-scp = "scp" +ALTERNATIVE_${PN}-ssh = "ssh" + +BBCLASSEXTEND += "nativesdk" diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch b/external/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch index 80b62ab1..949c7883 100644 --- a/external/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch +++ b/external/poky/meta/recipes-connectivity/openssl/openssl/0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch @@ -20,6 +20,11 @@ https://patchwork.openembedded.org/patch/147229/ Upstream-Status: Inappropriate [OE specific] Signed-off-by: Martin Hundebøll + + +Update to fix buildpaths qa issue for '-fmacro-prefix-map'. + +Signed-off-by: Kai Kang --- Configurations/unix-Makefile.tmpl | 10 +++++++++- crypto/build.info | 2 +- @@ -29,7 +34,7 @@ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tm index 16af4d2087..54c162784c 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl -@@ -317,13 +317,21 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (), +@@ -317,13 +317,22 @@ BIN_LDFLAGS={- join(' ', $target{bin_lflags} || (), '$(CNF_LDFLAGS)', '$(LDFLAGS)') -} BIN_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS) @@ -43,6 +48,7 @@ index 16af4d2087..54c162784c 100644 +CFLAGS_Q={- for (@{$config{CFLAGS}}) { + s|-fdebug-prefix-map=[^ ]+|-fdebug-prefix-map=|g; ++ s|-fmacro-prefix-map=[^ ]+|-fmacro-prefix-map=|g; + } + join(' ', @{$config{CFLAGS}}) -} + diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl/CVE-2019-1543.patch b/external/poky/meta/recipes-connectivity/openssl/openssl/CVE-2019-1543.patch deleted file mode 100644 index 900ef97f..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl/CVE-2019-1543.patch +++ /dev/null @@ -1,69 +0,0 @@ -Upstream-Status: Backport [https://github.com/openssl/openssl/commit/f426625b6ae9a7831010750490a5f0ad689c5ba3] -Signed-off-by: Ross Burton - -From f426625b6ae9a7831010750490a5f0ad689c5ba3 Mon Sep 17 00:00:00 2001 -From: Matt Caswell -Date: Tue, 5 Mar 2019 14:39:15 +0000 -Subject: [PATCH] Prevent over long nonces in ChaCha20-Poly1305 - -ChaCha20-Poly1305 is an AEAD cipher, and requires a unique nonce input for -every encryption operation. RFC 7539 specifies that the nonce value (IV) -should be 96 bits (12 bytes). OpenSSL allows a variable nonce length and -front pads the nonce with 0 bytes if it is less than 12 bytes. However it -also incorrectly allows a nonce to be set of up to 16 bytes. In this case -only the last 12 bytes are significant and any additional leading bytes are -ignored. - -It is a requirement of using this cipher that nonce values are unique. -Messages encrypted using a reused nonce value are susceptible to serious -confidentiality and integrity attacks. If an application changes the -default nonce length to be longer than 12 bytes and then makes a change to -the leading bytes of the nonce expecting the new value to be a new unique -nonce then such an application could inadvertently encrypt messages with a -reused nonce. - -Additionally the ignored bytes in a long nonce are not covered by the -integrity guarantee of this cipher. Any application that relies on the -integrity of these ignored leading bytes of a long nonce may be further -affected. - -Any OpenSSL internal use of this cipher, including in SSL/TLS, is safe -because no such use sets such a long nonce value. However user -applications that use this cipher directly and set a non-default nonce -length to be longer than 12 bytes may be vulnerable. - -CVE: CVE-2019-1543 - -Fixes #8345 - -Reviewed-by: Paul Dale -Reviewed-by: Richard Levitte -(Merged from https://github.com/openssl/openssl/pull/8406) - -(cherry picked from commit 2a3d0ee9d59156c48973592331404471aca886d6) ---- - crypto/evp/e_chacha20_poly1305.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/crypto/evp/e_chacha20_poly1305.c b/crypto/evp/e_chacha20_poly1305.c -index c1917bb86a6..d3e2c622a1b 100644 ---- a/crypto/evp/e_chacha20_poly1305.c -+++ b/crypto/evp/e_chacha20_poly1305.c -@@ -30,6 +30,8 @@ typedef struct { - - #define data(ctx) ((EVP_CHACHA_KEY *)(ctx)->cipher_data) - -+#define CHACHA20_POLY1305_MAX_IVLEN 12 -+ - static int chacha_init_key(EVP_CIPHER_CTX *ctx, - const unsigned char user_key[CHACHA_KEY_SIZE], - const unsigned char iv[CHACHA_CTR_SIZE], int enc) -@@ -533,7 +535,7 @@ static int chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, - return 1; - - case EVP_CTRL_AEAD_SET_IVLEN: -- if (arg <= 0 || arg > CHACHA_CTR_SIZE) -+ if (arg <= 0 || arg > CHACHA20_POLY1305_MAX_IVLEN) - return 0; - actx->nonce_len = arg; - return 1; diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl/afalg.patch b/external/poky/meta/recipes-connectivity/openssl/openssl/afalg.patch index 7c4b084f..b7c0e969 100644 --- a/external/poky/meta/recipes-connectivity/openssl/openssl/afalg.patch +++ b/external/poky/meta/recipes-connectivity/openssl/openssl/afalg.patch @@ -18,14 +18,14 @@ index 3baa8ce..9ef52ed 100755 - ($mi2) = $mi2 =~ /(\d+)/; - my $ver = $ma*10000 + $mi1*100 + $mi2; - if ($ver < $minver) { -- $disabled{afalgeng} = "too-old-kernel"; +- disable('too-old-kernel', 'afalgeng'); - } else { - push @{$config{engdirs}}, "afalg"; - } - } else { -- $disabled{afalgeng} = "cross-compiling"; +- disable('cross-compiling', 'afalgeng'); - } + push @{$config{engdirs}}, "afalg"; } else { - $disabled{afalgeng} = "not-linux"; + disable('not-linux', 'afalgeng'); } diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh b/external/poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh deleted file mode 100644 index 6620fdcb..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh +++ /dev/null @@ -1,222 +0,0 @@ -#!/bin/sh -# -# Ben Secrest -# -# sh c_rehash script, scan all files in a directory -# and add symbolic links to their hash values. -# -# based on the c_rehash perl script distributed with openssl -# -# LICENSE: See OpenSSL license -# ^^acceptable?^^ -# - -# default certificate location -DIR=/etc/openssl - -# for filetype bitfield -IS_CERT=$(( 1 << 0 )) -IS_CRL=$(( 1 << 1 )) - - -# check to see if a file is a certificate file or a CRL file -# arguments: -# 1. the filename to be scanned -# returns: -# bitfield of file type; uses ${IS_CERT} and ${IS_CRL} -# -check_file() -{ - local IS_TYPE=0 - - # make IFS a newline so we can process grep output line by line - local OLDIFS=${IFS} - IFS=$( printf "\n" ) - - # XXX: could be more efficient to have two 'grep -m' but is -m portable? - for LINE in $( grep '^-----BEGIN .*-----' ${1} ) - do - if echo ${LINE} \ - | grep -q -E '^-----BEGIN (X509 |TRUSTED )?CERTIFICATE-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CERT} )) - - if [ $(( ${IS_TYPE} & ${IS_CRL} )) -ne 0 ] - then - break - fi - elif echo ${LINE} | grep -q '^-----BEGIN X509 CRL-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CRL} )) - - if [ $(( ${IS_TYPE} & ${IS_CERT} )) -ne 0 ] - then - break - fi - fi - done - - # restore IFS - IFS=${OLDIFS} - - return ${IS_TYPE} -} - - -# -# use openssl to fingerprint a file -# arguments: -# 1. the filename to fingerprint -# 2. the method to use (x509, crl) -# returns: -# none -# assumptions: -# user will capture output from last stage of pipeline -# -fingerprint() -{ - ${SSL_CMD} ${2} -fingerprint -noout -in ${1} | sed 's/^.*=//' | tr -d ':' -} - - -# -# link_hash - create links to certificate files -# arguments: -# 1. the filename to create a link for -# 2. the type of certificate being linked (x509, crl) -# returns: -# 0 on success, 1 otherwise -# -link_hash() -{ - local FINGERPRINT=$( fingerprint ${1} ${2} ) - local HASH=$( ${SSL_CMD} ${2} -hash -noout -in ${1} ) - local SUFFIX=0 - local LINKFILE='' - local TAG='' - - if [ ${2} = "crl" ] - then - TAG='r' - fi - - LINKFILE=${HASH}.${TAG}${SUFFIX} - - while [ -f ${LINKFILE} ] - do - if [ ${FINGERPRINT} = $( fingerprint ${LINKFILE} ${2} ) ] - then - echo "NOTE: Skipping duplicate file ${1}" >&2 - return 1 - fi - - SUFFIX=$(( ${SUFFIX} + 1 )) - LINKFILE=${HASH}.${TAG}${SUFFIX} - done - - echo "${3} => ${LINKFILE}" - - # assume any system with a POSIX shell will either support symlinks or - # do something to handle this gracefully - ln -s ${3} ${LINKFILE} - - return 0 -} - - -# hash_dir create hash links in a given directory -hash_dir() -{ - echo "Doing ${1}" - - cd ${1} - - ls -1 * 2>/dev/null | while read FILE - do - if echo ${FILE} | grep -q -E '^[[:xdigit:]]{8}\.r?[[:digit:]]+$' \ - && [ -h "${FILE}" ] - then - rm ${FILE} - fi - done - - ls -1 *.pem *.cer *.crt *.crl 2>/dev/null | while read FILE - do - REAL_FILE=${FILE} - # if we run on build host then get to the real files in rootfs - if [ -n "${SYSROOT}" -a -h ${FILE} ] - then - FILE=$( readlink ${FILE} ) - # check the symlink is absolute (or dangling in other word) - if [ "x/" = "x$( echo ${FILE} | cut -c1 -)" ] - then - REAL_FILE=${SYSROOT}/${FILE} - fi - fi - - check_file ${REAL_FILE} - local FILE_TYPE=${?} - local TYPE_STR='' - - if [ $(( ${FILE_TYPE} & ${IS_CERT} )) -ne 0 ] - then - TYPE_STR='x509' - elif [ $(( ${FILE_TYPE} & ${IS_CRL} )) -ne 0 ] - then - TYPE_STR='crl' - else - echo "NOTE: ${FILE} does not contain a certificate or CRL: skipping" >&2 - continue - fi - - link_hash ${REAL_FILE} ${TYPE_STR} ${FILE} - done -} - - -# choose the name of an ssl application -if [ -n "${OPENSSL}" ] -then - SSL_CMD=$(which ${OPENSSL} 2>/dev/null) -else - SSL_CMD=/usr/bin/openssl - OPENSSL=${SSL_CMD} - export OPENSSL -fi - -# fix paths -PATH=${PATH}:${DIR}/bin -export PATH - -# confirm existance/executability of ssl command -if ! [ -x ${SSL_CMD} ] -then - echo "${0}: rehashing skipped ('openssl' program not available)" >&2 - exit 0 -fi - -# determine which directories to process -old_IFS=$IFS -if [ ${#} -gt 0 ] -then - IFS=':' - DIRLIST=${*} -elif [ -n "${SSL_CERT_DIR}" ] -then - DIRLIST=$SSL_CERT_DIR -else - DIRLIST=${DIR}/certs -fi - -IFS=':' - -# process directories -for CERT_DIR in ${DIRLIST} -do - if [ -d ${CERT_DIR} -a -w ${CERT_DIR} ] - then - IFS=$old_IFS - hash_dir ${CERT_DIR} - IFS=':' - fi -done diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl/reproducible.patch b/external/poky/meta/recipes-connectivity/openssl/openssl/reproducible.patch new file mode 100644 index 00000000..a24260c9 --- /dev/null +++ b/external/poky/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 + +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/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-BN_LLONG-breakage.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-BN_LLONG-breakage.patch deleted file mode 100644 index 13d39c91..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-BN_LLONG-breakage.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 247b3188cde5f3347091cd54271127386d3aece0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 6 Feb 2019 22:10:33 -0800 -Subject: [PATCH] Fix BN_LLONG breakage - -opensslconf.h is un-defining BN_LLONG only when included from bn.h which -is not robust at all, especially when include guards are used and -multiple inclusions of a given header is not allowed. so lets take out -the nesting constraint and add OPENSSL_SYS_UEFI constraint instead - -Upstream-Status: Inappropriate [ fixed differently with OpenSSL 1.1+ ] - -Signed-off-by: Khem Raj ---- - crypto/opensslconf.h.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/crypto/opensslconf.h.in b/crypto/opensslconf.h.in -index 7a1c85d..a10c10f 100644 ---- a/crypto/opensslconf.h.in -+++ b/crypto/opensslconf.h.in -@@ -56,7 +56,7 @@ - #endif - #endif - --#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) -+#if !defined(OPENSSL_SYS_UEFI) && !defined(CONFIG_HEADER_BN_H) - #define CONFIG_HEADER_BN_H - #undef BN_LLONG - --- -2.20.1 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-DES_LONG-breakage.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-DES_LONG-breakage.patch deleted file mode 100644 index 7243fb41..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-DES_LONG-breakage.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 1aec49cc45e7cf5ebc059a77081ac3ea2a5aff7b Mon Sep 17 00:00:00 2001 -From: Denys Dmytriyenko -Date: Fri, 1 Mar 2019 13:14:56 -0500 -Subject: [PATCH] Fix DES_LONG breakage - -Mimic previous BN_LLONG fix by Khem Raj here. Re-use its description: - -opensslconf.h is defining DES_LONG only when included from des.h which -is not robust at all, especially when include guards are used and -multiple inclusions of a given header is not allowed. so lets take out -the nesting constraint and add OPENSSL_SYS_UEFI constraint instead - -Upstream-Status: Inappropriate [ fixed differently with OpenSSL 1.1+ ] - -Signed-off-by: Denys Dmytriyenko ---- - crypto/opensslconf.h.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/crypto/opensslconf.h.in b/crypto/opensslconf.h.in -index a10c10f..0147a4d 100644 ---- a/crypto/opensslconf.h.in -+++ b/crypto/opensslconf.h.in -@@ -48,7 +48,7 @@ - #endif - #endif - --#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) -+#if !defined(OPENSSL_SYS_UEFI) && !defined(DES_LONG) - /* If this is set to 'unsigned int' on a DEC Alpha, this gives about a - * %20 speed up (longs are 8 bytes, int's are 4). */ - #ifndef DES_LONG --- -2.7.4 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-build-with-clang-using-external-assembler.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-build-with-clang-using-external-assembler.patch deleted file mode 100644 index 2270962a..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-Fix-build-with-clang-using-external-assembler.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 2f6026cb8b16cf00726e3c5625c023f196680f07 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 17 Mar 2017 12:52:08 -0700 -Subject: [PATCH] Fix build with clang using external assembler - -Cherry-picked from -https://github.com/openssl/openssl/commit/11208dcfb9105e8afa37233185decefd45e89e17 -https://github.com/openssl/openssl/commit/fbab8baddef8d3346ae40ff068871e2ddaf10270 -https://github.com/openssl/openssl/commit/6cf412c473d8145562b76219ce3da73b201b3255 - -Fixes - -| ghash-armv4.S: Assembler messages: -| ghash-armv4.S:81: Error: bad instruction `ldrbpl r12,[r2,r3]' -| ghash-armv4.S:91: Error: bad instruction `ldrbpl r8,[r0,r3]' -| ghash-armv4.S:137: Error: bad instruction `ldrbne r12,[r2,#15]' -| ghash-armv4.S:224: Error: bad instruction `ldrbpl r12,[r0,r3]' -| clang-4.0: error: assembler command failed with exit code 1 (use -v to see invocation) -| make[2]: *** [: ghash-armv4.o] Error 1 - -Upstream-Status: Backport - -Signed-off-by: Khem Raj ---- - crypto/modes/asm/ghash-armv4.pl | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/crypto/modes/asm/ghash-armv4.pl b/crypto/modes/asm/ghash-armv4.pl -index 8ccc963ef..442fed4da 100644 ---- a/crypto/modes/asm/ghash-armv4.pl -+++ b/crypto/modes/asm/ghash-armv4.pl -@@ -124,7 +124,10 @@ $code=<<___; - #include "arm_arch.h" - - .text -+#if defined(__thumb2__) || defined(__clang__) -+.syntax unified -+#endif - .code 32 - - #ifdef __clang__ - #define ldrplb ldrbpl --- -2.12.0 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-allow-manpages-to-be-disabled.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-allow-manpages-to-be-disabled.patch deleted file mode 100644 index 3f7d6499..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-allow-manpages-to-be-disabled.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e1c39b80b01d4d18feeadfdc6e45a3e1dd110634 Mon Sep 17 00:00:00 2001 -From: Andre McCurdy -Date: Fri, 27 Jul 2018 21:41:06 +0000 -Subject: [PATCH] allow manpages to be disabled - -Define OE_DISABLE_MANPAGES (via environment or the make command line) -to skip creation and installation of manpages. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Andre McCurdy ---- - Makefile.org | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.org b/Makefile.org -index ed98d2a..747d8cb 100644 ---- a/Makefile.org -+++ b/Makefile.org -@@ -549,7 +549,7 @@ dist: - @$(MAKE) SDIRS='$(SDIRS)' clean - @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' $(DISTTARVARS) tar - --install: all install_docs install_sw -+install: all $(if $(OE_DISABLE_MANPAGES),,install_docs) install_sw - - install_sw: - @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ --- -1.9.1 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-openssl-force-soft-link-to-avoid-rare-race.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-openssl-force-soft-link-to-avoid-rare-race.patch deleted file mode 100644 index dd1a9b1d..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/0001-openssl-force-soft-link-to-avoid-rare-race.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 3d9199423d48766649a2b2ebb3924e892ed16fa4 Mon Sep 17 00:00:00 2001 -From: Randy MacLeod -Date: Tue, 20 Jun 2017 15:32:08 -0400 -Subject: [PATCH] openssl: Force soft link to avoid rare race - -This patch works around a rare parallel build race condition. -The error seen is: - -ln: failed to create symbolic link 'libssl.so': File exists -make[4]: *** [Makefile.shared:171: link_a.gnu] Error 1 -make[4]: Leaving directory -'/.../build/tmp-glibc/work/x86_64-linux/openssl-native/1.0.2k-r0/openssl-1.0.2k' - -The openssl team is rewriting their build files so it's not -appropriate for openssl upstream and fixing the root cause of -the Makefile race condition was also not pursued. - -Upstream-Status: Inappropriate [build rules rewrite in progress] -Signed-off-by: Randy MacLeod ---- - Makefile.shared | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.shared b/Makefile.shared -index e8d222a..1bff92f 100644 ---- a/Makefile.shared -+++ b/Makefile.shared -@@ -118,14 +118,14 @@ - if [ -n "$$SHLIB_COMPAT" ]; then \ - for x in $$SHLIB_COMPAT; do \ - ( $(SET_X); rm -f $$SHLIB$$x$$SHLIB_SUFFIX; \ -- ln -s $$prev $$SHLIB$$x$$SHLIB_SUFFIX ); \ -+ ln -sf $$prev $$SHLIB$$x$$SHLIB_SUFFIX ); \ - prev=$$SHLIB$$x$$SHLIB_SUFFIX; \ - done; \ - fi; \ - if [ -n "$$SHLIB_SOVER" ]; then \ - [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ - ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ -- ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ -+ ln -sf $$prev $$SHLIB$$SHLIB_SUFFIX ); \ - fi; \ - fi - --- -2.9.3 diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/Makefiles-ptest.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/Makefiles-ptest.patch deleted file mode 100644 index 1b8402af..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/Makefiles-ptest.patch +++ /dev/null @@ -1,89 +0,0 @@ -From a176c69f4fdfbfa7e4ccb79d91c3b6602da7e69a Mon Sep 17 00:00:00 2001 -From: Anders Roxell -Date: Thu, 24 Apr 2014 19:28:25 +0200 -Subject: [PATCH 19/28] openssl: enable ptest support - -Add 'buildtest' and 'runtest' targets to Makefile, to build and run tests -cross-compiled. - -Signed-off-by: Anders Roxell -Signed-off-by: Maxin B. John -Upstream-Status: Pending - ---- - Makefile.org | 10 +++++++++- - test/Makefile | 13 +++++++++---- - 2 files changed, 18 insertions(+), 5 deletions(-) - -diff --git a/Makefile.org b/Makefile.org -index 111fbba..8e7936c 100644 ---- a/Makefile.org -+++ b/Makefile.org -@@ -467,8 +467,16 @@ rehash.time: certs apps - test: tests - - tests: rehash -+ $(MAKE) buildtest -+ $(MAKE) runtest -+ -+buildtest: -+ @(cd test && \ -+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf exe apps); -+ -+runtest: - @(cd test && echo "testing..." && \ -- $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests ); -+ $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf alltests ); - OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a - - report: -diff --git a/test/Makefile b/test/Makefile -index 55a6b50..d46b4d1 100644 ---- a/test/Makefile -+++ b/test/Makefile -@@ -150,7 +150,7 @@ tests: exe apps $(TESTS) - apps: - @(cd ..; $(MAKE) DIRS=apps all) - --alltests: \ -+all-tests= \ - test_des test_idea test_sha test_md4 test_md5 test_hmac \ - test_md2 test_mdc2 test_wp \ - test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \ -@@ -162,6 +162,11 @@ alltests: \ - test_constant_time test_verify_extra test_clienthello test_sslv2conftest \ - test_dtls test_bad_dtls test_fatalerr test_x509_time - -+alltests: -+ @(for i in $(all-tests); do \ -+ ( $(MAKE) $$i && echo "PASS: $$i" ) || echo "FAIL: $$i"; \ -+ done) -+ - test_evp: $(EVPTEST)$(EXE_EXT) evptests.txt - ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt - -@@ -230,7 +235,7 @@ test_x509: ../apps/openssl$(EXE_EXT) tx509 testx509.pem v3-cert1.pem v3-cert2.pe - echo test second x509v3 certificate - sh ./tx509 v3-cert2.pem 2>/dev/null - --test_rsa: $(RSATEST)$(EXE_EXT) ../apps/openssl$(EXE_EXT) trsa testrsa.pem -+test_rsa: ../apps/openssl$(EXE_EXT) trsa testrsa.pem - @sh ./trsa 2>/dev/null - ../util/shlib_wrap.sh ./$(RSATEST) - -@@ -331,11 +336,11 @@ test_tsa: ../apps/openssl$(EXE_EXT) testtsa CAtsa.cnf ../util/shlib_wrap.sh - sh ./testtsa; \ - fi - --test_ige: $(IGETEST)$(EXE_EXT) -+test_ige: - @echo "Test IGE mode" - ../util/shlib_wrap.sh ./$(IGETEST) - --test_jpake: $(JPAKETEST)$(EXE_EXT) -+test_jpake: - @echo "Test JPAKE" - ../util/shlib_wrap.sh ./$(JPAKETEST) - --- -2.15.1 diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/Use-SHA256-not-MD5-as-default-digest.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/Use-SHA256-not-MD5-as-default-digest.patch deleted file mode 100644 index 58c9ee78..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/Use-SHA256-not-MD5-as-default-digest.patch +++ /dev/null @@ -1,69 +0,0 @@ -From d795f5f20a29adecf92c09459a3ee07ffac01a99 Mon Sep 17 00:00:00 2001 -From: Rich Salz -Date: Sat, 13 Jun 2015 17:03:39 -0400 -Subject: [PATCH] Use SHA256 not MD5 as default digest. - -Commit f8547f62c212837dbf44fb7e2755e5774a59a57b upstream. - -Upstream-Status: Backport -Backport from OpenSSL 2.0 to OpenSSL 1.0.2 -Commit f8547f62c212837dbf44fb7e2755e5774a59a57b - -CVE: CVE-2004-2761 - - The MD5 Message-Digest Algorithm is not collision resistant, - which makes it easier for context-dependent attackers to - conduct spoofing attacks, as demonstrated by attacks on the - use of MD5 in the signature algorithm of an X.509 certificate. - -Reviewed-by: Viktor Dukhovni -Signed-off-by: Zhang Xiao -Signed-off-by: T.O. Radzy Radzykewycz ---- - apps/ca.c | 2 +- - apps/dgst.c | 2 +- - apps/enc.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/apps/ca.c b/apps/ca.c -index 3b7336c..8f3a84b 100644 ---- a/apps/ca.c -+++ b/apps/ca.c -@@ -1612,7 +1612,7 @@ static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509, - } else - BIO_printf(bio_err, "Signature ok\n"); - -- if ((rreq = X509_to_X509_REQ(req, NULL, EVP_md5())) == NULL) -+ if ((rreq = X509_to_X509_REQ(req, NULL, NULL)) == NULL) - goto err; - - ok = do_body(xret, pkey, x509, dgst, sigopts, policy, db, serial, subj, -diff --git a/apps/dgst.c b/apps/dgst.c -index 95e5fa3..0d1529f 100644 ---- a/apps/dgst.c -+++ b/apps/dgst.c -@@ -442,7 +442,7 @@ int MAIN(int argc, char **argv) - goto end; - } - if (md == NULL) -- md = EVP_md5(); -+ md = EVP_sha256(); - if (!EVP_DigestInit_ex(mctx, md, impl)) { - BIO_printf(bio_err, "Error setting digest %s\n", pname); - ERR_print_errors(bio_err); -diff --git a/apps/enc.c b/apps/enc.c -index 7b7c70b..a7d944c 100644 ---- a/apps/enc.c -+++ b/apps/enc.c -@@ -344,7 +344,7 @@ int MAIN(int argc, char **argv) - } - - if (dgst == NULL) { -- dgst = EVP_md5(); -+ dgst = EVP_sha256(); - } - - if (bufsize != NULL) { --- -1.9.1 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-musl-target.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-musl-target.patch deleted file mode 100644 index f357b3f5..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-musl-target.patch +++ /dev/null @@ -1,25 +0,0 @@ -Add musl triplet support - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: openssl-1.0.2a/Configure -=================================================================== ---- openssl-1.0.2a.orig/Configure -+++ openssl-1.0.2a/Configure -@@ -431,7 +431,7 @@ my %table=( - # - # ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8 - # --"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - # Configure script adds minimally required -march for assembly support, - # if no -march was specified at command line. mips32 and mips64 below -@@ -504,4 +504,6 @@ my %table=( - "linux-gnueabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-musleabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-musleabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - - "linux-avr32","$ENV{'CC'}:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).", - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-targets.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-targets.patch deleted file mode 100644 index 1e015897..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/configure-targets.patch +++ /dev/null @@ -1,35 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -The number of colons are important :) - - ---- - Configure | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -Index: openssl-1.0.2a/Configure -=================================================================== ---- openssl-1.0.2a.orig/Configure -+++ openssl-1.0.2a/Configure -@@ -443,6 +443,21 @@ my %table=( - "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", - "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", - -+ -+# Linux on ARM -+"linux-elf-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-elf-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-gnueabi-arm","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-gnueabi-armeb","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ -+"linux-avr32","$ENV{'CC'}:-O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).", -+ -+#### Linux on MIPS/MIPS64 -+"linux-mips","$ENV{'CC'}:-DB_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mips64","$ENV{'CC'}:-DB_ENDIAN -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mips64el","$ENV{'CC'}:-DL_ENDIAN -mabi=64 -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"linux-mipsel","$ENV{'CC'}:-DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+ - # Android: linux-* but without pointers to headers and libs. - "android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", - "android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/c_rehash-compat.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/c_rehash-compat.patch deleted file mode 100644 index 3820e3e3..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/c_rehash-compat.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 83f318d68bbdab1ca898c94576a838cc97df4700 Mon Sep 17 00:00:00 2001 -From: Ludwig Nussel -Date: Wed, 21 Apr 2010 15:52:10 +0200 -Subject: [PATCH] also create old hash for compatibility - -Upstream-Status: Backport [debian] - -Index: openssl-1.0.2n/tools/c_rehash.in -=================================================================== ---- openssl-1.0.2n.orig/tools/c_rehash.in -+++ openssl-1.0.2n/tools/c_rehash.in -@@ -8,8 +8,6 @@ my $prefix; - - my $openssl = $ENV{OPENSSL} || "openssl"; - my $pwd; --my $x509hash = "-subject_hash"; --my $crlhash = "-hash"; - my $verbose = 0; - my $symlink_exists=eval {symlink("",""); 1}; - my $removelinks = 1; -@@ -18,10 +16,7 @@ my $removelinks = 1; - while ( $ARGV[0] =~ /^-/ ) { - my $flag = shift @ARGV; - last if ( $flag eq '--'); -- if ( $flag eq '-old') { -- $x509hash = "-subject_hash_old"; -- $crlhash = "-hash_old"; -- } elsif ( $flag eq '-h') { -+ if ( $flag eq '-h') { - help(); - } elsif ( $flag eq '-n' ) { - $removelinks = 0; -@@ -113,7 +108,9 @@ sub hash_dir { - next; - } - link_hash_cert($fname) if($cert); -+ link_hash_cert_old($fname) if($cert); - link_hash_crl($fname) if($crl); -+ link_hash_crl_old($fname) if($crl); - } - } - -@@ -146,6 +143,7 @@ sub check_file { - - sub link_hash_cert { - my $fname = $_[0]; -+ my $x509hash = $_[1] || '-subject_hash'; - $fname =~ s/'/'\\''/g; - my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; - chomp $hash; -@@ -177,10 +175,20 @@ sub link_hash_cert { - $hashlist{$hash} = $fprint; - } - -+sub link_hash_cert_old { -+ link_hash_cert($_[0], '-subject_hash_old'); -+} -+ -+sub link_hash_crl_old { -+ link_hash_crl($_[0], '-hash_old'); -+} -+ -+ - # Same as above except for a CRL. CRL links are of the form .r - - sub link_hash_crl { - my $fname = $_[0]; -+ my $crlhash = $_[1] || "-hash"; - $fname =~ s/'/'\\''/g; - my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; - chomp $hash; diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/debian-targets.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/debian-targets.patch deleted file mode 100644 index 24709f4f..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/debian-targets.patch +++ /dev/null @@ -1,73 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.2n/Configure -=================================================================== ---- openssl-1.0.2n.orig/Configure -+++ openssl-1.0.2n/Configure -@@ -133,6 +133,10 @@ my $clang_devteam_warn = "-Wno-unused-pa - # Warn that "make depend" should be run? - my $warn_make_depend = 0; - -+# There are no separate CFLAGS/CPPFLAGS/LDFLAGS, set everything in CFLAGS -+my $debian_cflags = `dpkg-buildflags --get CFLAGS` . `dpkg-buildflags --get CPPFLAGS` . `dpkg-buildflags --get LDFLAGS` . "-Wa,--noexecstack -Wall"; -+$debian_cflags =~ s/\n/ /g; -+ - my $strict_warnings = 0; - - my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL"; -@@ -369,6 +373,55 @@ my %table=( - "osf1-alpha-cc", "cc:-std1 -tune host -O4 -readonly_strings::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared:::.so", - "tru64-alpha-cc", "cc:-std1 -tune host -fast -readonly_strings::-pthread:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${alpha_asm}:dlfcn:alpha-osf1-shared::-msym:.so", - -+# Debian GNU/* (various architectures) -+"debian-alpha","gcc:-DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-alpha-ev4","gcc:-DTERMIO ${debian_cflags} -mcpu=ev4::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-alpha-ev5","gcc:-DTERMIO ${debian_cflags} -mcpu=ev5::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-arm64","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-armel","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-armhf","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-amd64", "gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::", -+"debian-avr32", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -fomit-frame-pointer::-D_REENTRANT::-ldl:BN_LLONG_BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-kfreebsd-amd64","gcc:-m64 -DL_ENDIAN -DTERMIOS ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-kfreebsd-i386","gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -march=i486::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-hppa","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mtune=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ia64","gcc:-DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i486","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i486::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i586","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i586::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO ${debian_cflags} -march=i686::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-m68k","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsel", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsn32", "mips64-linux-gnuabin32-gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mipsn32el", "mips64el-linux-gnuabin32-gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips64", "mips64-linux-gnuabi64-gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-mips64el", "mips64el-linux-gnuabi64-gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-m68k", "gcc:-DB_ENDIAN -DTERMIOS ${debian_cflags}::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-netbsd-sparc", "gcc:-DB_ENDIAN -DTERMIOS ${debian_cflags} -mv8::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-alpha","gcc:-DTERMIOS ${debian_cflags}::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS ${debian_cflags} -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:a.out:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-openbsd-mips","gcc:-DL_ENDIAN ${debian_cflags}::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-or1k", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-powerpc","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-powerpcspe","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ppc64","gcc:-m64 -DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-ppc64el","gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-s390","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-s390x","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh3", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh4", "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh3eb", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sh4eb", "gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-m32r","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc-v8","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -mcpu=v8 -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc-v9","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags} -mcpu=v9 -Wa,-Av8plus -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-sparc64","gcc:-m64 -DB_ENDIAN -DTERMIO ${debian_cflags} -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -+"debian-x32","gcc:-mx32 -DL_ENDIAN -DTERMIO ${debian_cflags} -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32", -+ - #### - #### Variety of LINUX:-) - #### diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-dir.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-dir.patch deleted file mode 100644 index 4085e3b1..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-dir.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.org -=================================================================== ---- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:27.000000000 +0100 -+++ openssl-1.0.0c/Makefile.org 2010-12-12 16:11:37.000000000 +0100 -@@ -131,7 +131,7 @@ - - MAKEFILE= Makefile - --MANDIR=$(OPENSSLDIR)/man -+MANDIR=/usr/share/man - MAN1=1 - MAN3=3 - MANSUFFIX= diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-section.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-section.patch deleted file mode 100644 index 21c1d1a4..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/man-section.patch +++ /dev/null @@ -1,34 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.org -=================================================================== ---- openssl-1.0.0c.orig/Makefile.org 2010-12-12 16:11:37.000000000 +0100 -+++ openssl-1.0.0c/Makefile.org 2010-12-12 16:13:28.000000000 +0100 -@@ -160,7 +160,8 @@ - MANDIR=/usr/share/man - MAN1=1 - MAN3=3 --MANSUFFIX= -+MANSUFFIX=ssl -+MANSECTION=SSL - HTMLSUFFIX=html - HTMLDIR=$(OPENSSLDIR)/html - SHELL=/bin/sh -@@ -651,7 +652,7 @@ - echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ - (cd `$(PERL) util/dirname.pl $$i`; \ - sh -c "$$pod2man \ -- --section=$$sec --center=OpenSSL \ -+ --section=$${sec}$(MANSECTION) --center=OpenSSL \ - --release=$(VERSION) `basename $$i`") \ - > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ - $(PERL) util/extract-names.pl < $$i | \ -@@ -668,7 +669,7 @@ - echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \ - (cd `$(PERL) util/dirname.pl $$i`; \ - sh -c "$$pod2man \ -- --section=$$sec --center=OpenSSL \ -+ --section=$${sec}$(MANSECTION) --center=OpenSSL \ - --release=$(VERSION) `basename $$i`") \ - > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \ - $(PERL) util/extract-names.pl < $$i | \ diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-rpath.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-rpath.patch deleted file mode 100644 index 1ccb3b86..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-rpath.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.shared -=================================================================== ---- openssl-1.0.0c.orig/Makefile.shared 2010-08-21 13:36:49.000000000 +0200 -+++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 -@@ -153,7 +153,7 @@ - NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" - --DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)" -+DO_GNU_APP=LDFLAGS="$(CFLAGS)" - - #This is rather special. It's a special target with which one can link - #applications without bothering with any features that have anything to diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-symbolic.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-symbolic.patch deleted file mode 100644 index cc4408ab..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/no-symbolic.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.0c/Makefile.shared -=================================================================== ---- openssl-1.0.0c.orig/Makefile.shared 2010-12-12 16:13:36.000000000 +0100 -+++ openssl-1.0.0c/Makefile.shared 2010-12-12 16:13:44.000000000 +0100 -@@ -151,7 +151,7 @@ - SHLIB_SUFFIX=; \ - ALLSYMSFLAGS='-Wl,--whole-archive'; \ - NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ -- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" -+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX" - - DO_GNU_APP=LDFLAGS="$(CFLAGS)" - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/pic.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/pic.patch deleted file mode 100644 index bfda3888..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian/pic.patch +++ /dev/null @@ -1,177 +0,0 @@ -Upstream-Status: Backport [debian] - -Index: openssl-1.0.1c/crypto/des/asm/desboth.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/des/asm/desboth.pl 2001-10-24 23:20:56.000000000 +0200 -+++ openssl-1.0.1c/crypto/des/asm/desboth.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -16,6 +16,11 @@ - - &push("edi"); - -+ &call (&label("pic_point0")); -+ &set_label("pic_point0"); -+ &blindpop("ebp"); -+ &add ("ebp", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); -+ - &comment(""); - &comment("Load the data words"); - &mov($L,&DWP(0,"ebx","",0)); -@@ -47,15 +52,21 @@ - &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); - &mov(&swtmp(1), "eax"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - &mov(&swtmp(2), (DWC(($enc)?"0":"1"))); - &mov(&swtmp(1), "edi"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - &mov(&swtmp(2), (DWC(($enc)?"1":"0"))); - &mov(&swtmp(1), "esi"); - &mov(&swtmp(0), "ebx"); -- &call("DES_encrypt2"); -+ &exch("ebx", "ebp"); -+ &call("DES_encrypt2\@PLT"); -+ &exch("ebx", "ebp"); - - &stack_pop(3); - &mov($L,&DWP(0,"ebx","",0)); -Index: openssl-1.0.1c/crypto/perlasm/cbc.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/perlasm/cbc.pl 2011-07-13 08:22:46.000000000 +0200 -+++ openssl-1.0.1c/crypto/perlasm/cbc.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -122,7 +122,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($enc_func); -+ &call (&label("pic_point0")); -+ &set_label("pic_point0"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point0") . "]"); -+ &call("$enc_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); - &mov("ebx", &DWP($data_off+4,"esp","",0)); -@@ -185,7 +189,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($enc_func); -+ &call (&label("pic_point1")); -+ &set_label("pic_point1"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point1") . "]"); -+ &call("$enc_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); - &mov("ebx", &DWP($data_off+4,"esp","",0)); -@@ -218,7 +226,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put back - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($dec_func); -+ &call (&label("pic_point2")); -+ &set_label("pic_point2"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point2") . "]"); -+ &call("$dec_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); # get return - &mov("ebx", &DWP($data_off+4,"esp","",0)); # -@@ -261,7 +273,11 @@ - &mov(&DWP($data_off,"esp","",0), "eax"); # put back - &mov(&DWP($data_off+4,"esp","",0), "ebx"); # - -- &call($dec_func); -+ &call (&label("pic_point3")); -+ &set_label("pic_point3"); -+ &blindpop("ebx"); -+ &add ("ebx", "\$_GLOBAL_OFFSET_TABLE_+[.-" . &label("pic_point3") . "]"); -+ &call("$dec_func\@PLT"); - - &mov("eax", &DWP($data_off,"esp","",0)); # get return - &mov("ebx", &DWP($data_off+4,"esp","",0)); # -Index: openssl-1.0.1c/crypto/perlasm/x86gas.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/perlasm/x86gas.pl 2011-12-09 20:16:35.000000000 +0100 -+++ openssl-1.0.1c/crypto/perlasm/x86gas.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -161,6 +161,7 @@ - if ($::macosx) { push (@out,"$tmp,2\n"); } - elsif ($::elf) { push (@out,"$tmp,4\n"); } - else { push (@out,"$tmp\n"); } -+ if ($::elf) { push (@out,".hidden\tOPENSSL_ia32cap_P\n"); } - } - push(@out,$initseg) if ($initseg); - } -@@ -218,8 +219,23 @@ - elsif ($::elf) - { $initseg.=<<___; - .section .init -+___ -+ if ($::pic) -+ { $initseg.=<<___; -+ pushl %ebx -+ call .pic_point0 -+.pic_point0: -+ popl %ebx -+ addl \$_GLOBAL_OFFSET_TABLE_+[.-.pic_point0],%ebx -+ call $f\@PLT -+ popl %ebx -+___ -+ } -+ else -+ { $initseg.=<<___; - call $f - ___ -+ } - } - elsif ($::coff) - { $initseg.=<<___; # applies to both Cygwin and Mingw -Index: openssl-1.0.1c/crypto/x86cpuid.pl -=================================================================== ---- openssl-1.0.1c.orig/crypto/x86cpuid.pl 2012-02-28 15:20:34.000000000 +0100 -+++ openssl-1.0.1c/crypto/x86cpuid.pl 2012-07-29 14:15:26.000000000 +0200 -@@ -8,6 +8,8 @@ - - for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } - -+push(@out, ".hidden OPENSSL_ia32cap_P\n"); -+ - &function_begin("OPENSSL_ia32_cpuid"); - &xor ("edx","edx"); - &pushf (); -@@ -139,9 +141,7 @@ - &set_label("nocpuid"); - &function_end("OPENSSL_ia32_cpuid"); - --&external_label("OPENSSL_ia32cap_P"); -- --&function_begin_B("OPENSSL_rdtsc","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_rdtsc"); - &xor ("eax","eax"); - &xor ("edx","edx"); - &picmeup("ecx","OPENSSL_ia32cap_P"); -@@ -155,7 +155,7 @@ - # This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host], - # but it's safe to call it on any [supported] 32-bit platform... - # Just check for [non-]zero return value... --&function_begin_B("OPENSSL_instrument_halt","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_instrument_halt"); - &picmeup("ecx","OPENSSL_ia32cap_P"); - &bt (&DWP(0,"ecx"),4); - &jnc (&label("nohalt")); # no TSC -@@ -222,7 +222,7 @@ - &ret (); - &function_end_B("OPENSSL_far_spin"); - --&function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); -+&function_begin_B("OPENSSL_wipe_cpu"); - &xor ("eax","eax"); - &xor ("edx","edx"); - &picmeup("ecx","OPENSSL_ia32cap_P"); diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_digicert_malaysia.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_digicert_malaysia.patch deleted file mode 100644 index c43bcd1c..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_digicert_malaysia.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Raphael Geissert -Description: make X509_verify_cert indicate that any certificate whose - name contains "Digicert Sdn. Bhd." (from Malaysia) is revoked. -Forwarded: not-needed -Origin: vendor -Last-Update: 2011-11-05 - -Upstream-Status: Backport [debian] - - -Index: openssl-1.0.2~beta1/crypto/x509/x509_vfy.c -=================================================================== ---- openssl-1.0.2~beta1.orig/crypto/x509/x509_vfy.c 2014-02-25 00:16:12.488028844 +0100 -+++ openssl-1.0.2~beta1/crypto/x509/x509_vfy.c 2014-02-25 00:16:12.484028929 +0100 -@@ -964,10 +964,11 @@ - for (i = sk_X509_num(ctx->chain) - 1; i >= 0; i--) - { - x = sk_X509_value(ctx->chain, i); -- /* Mark DigiNotar certificates as revoked, no matter -- * where in the chain they are. -+ /* Mark certificates containing the following names as -+ * revoked, no matter where in the chain they are. - */ -- if (x->name && strstr(x->name, "DigiNotar")) -+ if (x->name && (strstr(x->name, "DigiNotar") || -+ strstr(x->name, "Digicert Sdn. Bhd."))) - { - ctx->error = X509_V_ERR_CERT_REVOKED; - ctx->error_depth = i; diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_diginotar.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_diginotar.patch deleted file mode 100644 index d81e22cd..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/block_diginotar.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: Raphael Geissert -Description: make X509_verify_cert indicate that any certificate whose - name contains "DigiNotar" is revoked. -Forwarded: not-needed -Origin: vendor -Last-Update: 2011-09-08 -Bug: http://bugs.debian.org/639744 -Reviewed-by: Kurt Roeckx -Reviewed-by: Dr Stephen N Henson - -This is not meant as final patch. - -Upstream-Status: Backport [debian] - -Signed-off-by: Armin Kuster - -Index: openssl-1.0.2g/crypto/x509/x509_vfy.c -=================================================================== ---- openssl-1.0.2g.orig/crypto/x509/x509_vfy.c -+++ openssl-1.0.2g/crypto/x509/x509_vfy.c -@@ -119,6 +119,7 @@ static int check_trust(X509_STORE_CTX *c - static int check_revocation(X509_STORE_CTX *ctx); - static int check_cert(X509_STORE_CTX *ctx); - static int check_policy(X509_STORE_CTX *ctx); -+static int check_ca_blacklist(X509_STORE_CTX *ctx); - - static int get_crl_score(X509_STORE_CTX *ctx, X509 **pissuer, - unsigned int *preasons, X509_CRL *crl, X509 *x); -@@ -489,6 +490,9 @@ int X509_verify_cert(X509_STORE_CTX *ctx - if (!ok) - goto err; - -+ ok = check_ca_blacklist(ctx); -+ if(!ok) goto err; -+ - #ifndef OPENSSL_NO_RFC3779 - /* RFC 3779 path validation, now that CRL check has been done */ - ok = v3_asid_validate_path(ctx); -@@ -996,6 +1000,29 @@ static int check_crl_time(X509_STORE_CTX - return 1; - } - -+static int check_ca_blacklist(X509_STORE_CTX *ctx) -+ { -+ X509 *x; -+ int i; -+ /* Check all certificates against the blacklist */ -+ for (i = sk_X509_num(ctx->chain) - 1; i >= 0; i--) -+ { -+ x = sk_X509_value(ctx->chain, i); -+ /* Mark DigiNotar certificates as revoked, no matter -+ * where in the chain they are. -+ */ -+ if (x->name && strstr(x->name, "DigiNotar")) -+ { -+ ctx->error = X509_V_ERR_CERT_REVOKED; -+ ctx->error_depth = i; -+ ctx->current_cert = x; -+ if (!ctx->verify_cb(0,ctx)) -+ return 0; -+ } -+ } -+ return 1; -+ } -+ - static int get_crl_sk(X509_STORE_CTX *ctx, X509_CRL **pcrl, X509_CRL **pdcrl, - X509 **pissuer, int *pscore, unsigned int *preasons, - STACK_OF(X509_CRL) *crls) diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/soname.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/soname.patch deleted file mode 100644 index 09dd9eaf..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/soname.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Inappropriate - -Index: openssl-1.0.2d/crypto/opensslv.h -=================================================================== ---- openssl-1.0.2d.orig/crypto/opensslv.h -+++ openssl-1.0.2d/crypto/opensslv.h -@@ -88,7 +88,7 @@ extern "C" { - * should only keep the versions that are binary compatible with the current. - */ - # define SHLIB_VERSION_HISTORY "" --# define SHLIB_VERSION_NUMBER "1.0.0" -+# define SHLIB_VERSION_NUMBER "1.0.2" - - - #ifdef __cplusplus diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/version-script.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/version-script.patch deleted file mode 100644 index e404ee33..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/debian1.0.2/version-script.patch +++ /dev/null @@ -1,4658 +0,0 @@ -Upstream-Status: Inappropriate - -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure -=================================================================== ---- openssl-1.0.2~beta1.obsolete.0.0498436515490575.orig/Configure 2014-02-24 21:02:30.000000000 +0100 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/Configure 2014-02-24 21:02:30.000000000 +0100 -@@ -1651,6 +1651,8 @@ - } - } - -+$shared_ldflag .= " -Wl,--version-script=openssl.ld"; -+ - open(IN,'$Makefile.new") || die "unable to create $Makefile.new:$!\n"; -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/openssl.ld 2014-02-24 22:19:08.601827266 +0100 -@@ -0,0 +1,4608 @@ -+OPENSSL_1.0.2d { -+ global: -+ BIO_f_ssl; -+ BIO_new_buffer_ssl_connect; -+ BIO_new_ssl; -+ BIO_new_ssl_connect; -+ BIO_proxy_ssl_copy_session_id; -+ BIO_ssl_copy_session_id; -+ BIO_ssl_shutdown; -+ d2i_SSL_SESSION; -+ DTLSv1_client_method; -+ DTLSv1_method; -+ DTLSv1_server_method; -+ ERR_load_SSL_strings; -+ i2d_SSL_SESSION; -+ kssl_build_principal_2; -+ kssl_cget_tkt; -+ kssl_check_authent; -+ kssl_ctx_free; -+ kssl_ctx_new; -+ kssl_ctx_setkey; -+ kssl_ctx_setprinc; -+ kssl_ctx_setstring; -+ kssl_ctx_show; -+ kssl_err_set; -+ kssl_krb5_free_data_contents; -+ kssl_sget_tkt; -+ kssl_skip_confound; -+ kssl_validate_times; -+ PEM_read_bio_SSL_SESSION; -+ PEM_read_SSL_SESSION; -+ PEM_write_bio_SSL_SESSION; -+ PEM_write_SSL_SESSION; -+ SSL_accept; -+ SSL_add_client_CA; -+ SSL_add_dir_cert_subjects_to_stack; -+ SSL_add_dir_cert_subjs_to_stk; -+ SSL_add_file_cert_subjects_to_stack; -+ SSL_add_file_cert_subjs_to_stk; -+ SSL_alert_desc_string; -+ SSL_alert_desc_string_long; -+ SSL_alert_type_string; -+ SSL_alert_type_string_long; -+ SSL_callback_ctrl; -+ SSL_check_private_key; -+ SSL_CIPHER_description; -+ SSL_CIPHER_get_bits; -+ SSL_CIPHER_get_name; -+ SSL_CIPHER_get_version; -+ SSL_clear; -+ SSL_COMP_add_compression_method; -+ SSL_COMP_get_compression_methods; -+ SSL_COMP_get_compress_methods; -+ SSL_COMP_get_name; -+ SSL_connect; -+ SSL_copy_session_id; -+ SSL_ctrl; -+ SSL_CTX_add_client_CA; -+ SSL_CTX_add_session; -+ SSL_CTX_callback_ctrl; -+ SSL_CTX_check_private_key; -+ SSL_CTX_ctrl; -+ SSL_CTX_flush_sessions; -+ SSL_CTX_free; -+ SSL_CTX_get_cert_store; -+ SSL_CTX_get_client_CA_list; -+ SSL_CTX_get_client_cert_cb; -+ SSL_CTX_get_ex_data; -+ SSL_CTX_get_ex_new_index; -+ SSL_CTX_get_info_callback; -+ SSL_CTX_get_quiet_shutdown; -+ SSL_CTX_get_timeout; -+ SSL_CTX_get_verify_callback; -+ SSL_CTX_get_verify_depth; -+ SSL_CTX_get_verify_mode; -+ SSL_CTX_load_verify_locations; -+ SSL_CTX_new; -+ SSL_CTX_remove_session; -+ SSL_CTX_sess_get_get_cb; -+ SSL_CTX_sess_get_new_cb; -+ SSL_CTX_sess_get_remove_cb; -+ SSL_CTX_sessions; -+ SSL_CTX_sess_set_get_cb; -+ SSL_CTX_sess_set_new_cb; -+ SSL_CTX_sess_set_remove_cb; -+ SSL_CTX_set1_param; -+ SSL_CTX_set_cert_store; -+ SSL_CTX_set_cert_verify_callback; -+ SSL_CTX_set_cert_verify_cb; -+ SSL_CTX_set_cipher_list; -+ SSL_CTX_set_client_CA_list; -+ SSL_CTX_set_client_cert_cb; -+ SSL_CTX_set_client_cert_engine; -+ SSL_CTX_set_cookie_generate_cb; -+ SSL_CTX_set_cookie_verify_cb; -+ SSL_CTX_set_default_passwd_cb; -+ SSL_CTX_set_default_passwd_cb_userdata; -+ SSL_CTX_set_default_verify_paths; -+ SSL_CTX_set_def_passwd_cb_ud; -+ SSL_CTX_set_def_verify_paths; -+ SSL_CTX_set_ex_data; -+ SSL_CTX_set_generate_session_id; -+ SSL_CTX_set_info_callback; -+ SSL_CTX_set_msg_callback; -+ SSL_CTX_set_psk_client_callback; -+ SSL_CTX_set_psk_server_callback; -+ SSL_CTX_set_purpose; -+ SSL_CTX_set_quiet_shutdown; -+ SSL_CTX_set_session_id_context; -+ SSL_CTX_set_ssl_version; -+ SSL_CTX_set_timeout; -+ SSL_CTX_set_tmp_dh_callback; -+ SSL_CTX_set_tmp_ecdh_callback; -+ SSL_CTX_set_tmp_rsa_callback; -+ SSL_CTX_set_trust; -+ SSL_CTX_set_verify; -+ SSL_CTX_set_verify_depth; -+ SSL_CTX_use_cert_chain_file; -+ SSL_CTX_use_certificate; -+ SSL_CTX_use_certificate_ASN1; -+ SSL_CTX_use_certificate_chain_file; -+ SSL_CTX_use_certificate_file; -+ SSL_CTX_use_PrivateKey; -+ SSL_CTX_use_PrivateKey_ASN1; -+ SSL_CTX_use_PrivateKey_file; -+ SSL_CTX_use_psk_identity_hint; -+ SSL_CTX_use_RSAPrivateKey; -+ SSL_CTX_use_RSAPrivateKey_ASN1; -+ SSL_CTX_use_RSAPrivateKey_file; -+ SSL_do_handshake; -+ SSL_dup; -+ SSL_dup_CA_list; -+ SSLeay_add_ssl_algorithms; -+ SSL_free; -+ SSL_get1_session; -+ SSL_get_certificate; -+ SSL_get_cipher_list; -+ SSL_get_ciphers; -+ SSL_get_client_CA_list; -+ SSL_get_current_cipher; -+ SSL_get_current_compression; -+ SSL_get_current_expansion; -+ SSL_get_default_timeout; -+ SSL_get_error; -+ SSL_get_ex_data; -+ SSL_get_ex_data_X509_STORE_CTX_idx; -+ SSL_get_ex_d_X509_STORE_CTX_idx; -+ SSL_get_ex_new_index; -+ SSL_get_fd; -+ SSL_get_finished; -+ SSL_get_info_callback; -+ SSL_get_peer_cert_chain; -+ SSL_get_peer_certificate; -+ SSL_get_peer_finished; -+ SSL_get_privatekey; -+ SSL_get_psk_identity; -+ SSL_get_psk_identity_hint; -+ SSL_get_quiet_shutdown; -+ SSL_get_rbio; -+ SSL_get_read_ahead; -+ SSL_get_rfd; -+ SSL_get_servername; -+ SSL_get_servername_type; -+ SSL_get_session; -+ SSL_get_shared_ciphers; -+ SSL_get_shutdown; -+ SSL_get_SSL_CTX; -+ SSL_get_ssl_method; -+ SSL_get_verify_callback; -+ SSL_get_verify_depth; -+ SSL_get_verify_mode; -+ SSL_get_verify_result; -+ SSL_get_version; -+ SSL_get_wbio; -+ SSL_get_wfd; -+ SSL_has_matching_session_id; -+ SSL_library_init; -+ SSL_load_client_CA_file; -+ SSL_load_error_strings; -+ SSL_new; -+ SSL_peek; -+ SSL_pending; -+ SSL_read; -+ SSL_renegotiate; -+ SSL_renegotiate_pending; -+ SSL_rstate_string; -+ SSL_rstate_string_long; -+ SSL_SESSION_cmp; -+ SSL_SESSION_free; -+ SSL_SESSION_get_ex_data; -+ SSL_SESSION_get_ex_new_index; -+ SSL_SESSION_get_id; -+ SSL_SESSION_get_time; -+ SSL_SESSION_get_timeout; -+ SSL_SESSION_hash; -+ SSL_SESSION_new; -+ SSL_SESSION_print; -+ SSL_SESSION_print_fp; -+ SSL_SESSION_set_ex_data; -+ SSL_SESSION_set_time; -+ SSL_SESSION_set_timeout; -+ SSL_set1_param; -+ SSL_set_accept_state; -+ SSL_set_bio; -+ SSL_set_cipher_list; -+ SSL_set_client_CA_list; -+ SSL_set_connect_state; -+ SSL_set_ex_data; -+ SSL_set_fd; -+ SSL_set_generate_session_id; -+ SSL_set_info_callback; -+ SSL_set_msg_callback; -+ SSL_set_psk_client_callback; -+ SSL_set_psk_server_callback; -+ SSL_set_purpose; -+ SSL_set_quiet_shutdown; -+ SSL_set_read_ahead; -+ SSL_set_rfd; -+ SSL_set_session; -+ SSL_set_session_id_context; -+ SSL_set_session_secret_cb; -+ SSL_set_session_ticket_ext; -+ SSL_set_session_ticket_ext_cb; -+ SSL_set_shutdown; -+ SSL_set_SSL_CTX; -+ SSL_set_ssl_method; -+ SSL_set_tmp_dh_callback; -+ SSL_set_tmp_ecdh_callback; -+ SSL_set_tmp_rsa_callback; -+ SSL_set_trust; -+ SSL_set_verify; -+ SSL_set_verify_depth; -+ SSL_set_verify_result; -+ SSL_set_wfd; -+ SSL_shutdown; -+ SSL_state; -+ SSL_state_string; -+ SSL_state_string_long; -+ SSL_use_certificate; -+ SSL_use_certificate_ASN1; -+ SSL_use_certificate_file; -+ SSL_use_PrivateKey; -+ SSL_use_PrivateKey_ASN1; -+ SSL_use_PrivateKey_file; -+ SSL_use_psk_identity_hint; -+ SSL_use_RSAPrivateKey; -+ SSL_use_RSAPrivateKey_ASN1; -+ SSL_use_RSAPrivateKey_file; -+ SSLv23_client_method; -+ SSLv23_method; -+ SSLv23_server_method; -+ SSLv2_client_method; -+ SSLv2_method; -+ SSLv2_server_method; -+ SSLv3_client_method; -+ SSLv3_method; -+ SSLv3_server_method; -+ SSL_version; -+ SSL_want; -+ SSL_write; -+ TLSv1_client_method; -+ TLSv1_method; -+ TLSv1_server_method; -+ -+ -+ SSLeay; -+ SSLeay_version; -+ ASN1_BIT_STRING_asn1_meth; -+ ASN1_HEADER_free; -+ ASN1_HEADER_new; -+ ASN1_IA5STRING_asn1_meth; -+ ASN1_INTEGER_get; -+ ASN1_INTEGER_set; -+ ASN1_INTEGER_to_BN; -+ ASN1_OBJECT_create; -+ ASN1_OBJECT_free; -+ ASN1_OBJECT_new; -+ ASN1_PRINTABLE_type; -+ ASN1_STRING_cmp; -+ ASN1_STRING_dup; -+ ASN1_STRING_free; -+ ASN1_STRING_new; -+ ASN1_STRING_print; -+ ASN1_STRING_set; -+ ASN1_STRING_type_new; -+ ASN1_TYPE_free; -+ ASN1_TYPE_new; -+ ASN1_UNIVERSALSTRING_to_string; -+ ASN1_UTCTIME_check; -+ ASN1_UTCTIME_print; -+ ASN1_UTCTIME_set; -+ ASN1_check_infinite_end; -+ ASN1_d2i_bio; -+ ASN1_d2i_fp; -+ ASN1_digest; -+ ASN1_dup; -+ ASN1_get_object; -+ ASN1_i2d_bio; -+ ASN1_i2d_fp; -+ ASN1_object_size; -+ ASN1_parse; -+ ASN1_put_object; -+ ASN1_sign; -+ ASN1_verify; -+ BF_cbc_encrypt; -+ BF_cfb64_encrypt; -+ BF_ecb_encrypt; -+ BF_encrypt; -+ BF_ofb64_encrypt; -+ BF_options; -+ BF_set_key; -+ BIO_CONNECT_free; -+ BIO_CONNECT_new; -+ BIO_accept; -+ BIO_ctrl; -+ BIO_int_ctrl; -+ BIO_debug_callback; -+ BIO_dump; -+ BIO_dup_chain; -+ BIO_f_base64; -+ BIO_f_buffer; -+ BIO_f_cipher; -+ BIO_f_md; -+ BIO_f_null; -+ BIO_f_proxy_server; -+ BIO_fd_non_fatal_error; -+ BIO_fd_should_retry; -+ BIO_find_type; -+ BIO_free; -+ BIO_free_all; -+ BIO_get_accept_socket; -+ BIO_get_filter_bio; -+ BIO_get_host_ip; -+ BIO_get_port; -+ BIO_get_retry_BIO; -+ BIO_get_retry_reason; -+ BIO_gethostbyname; -+ BIO_gets; -+ BIO_new; -+ BIO_new_accept; -+ BIO_new_connect; -+ BIO_new_fd; -+ BIO_new_file; -+ BIO_new_fp; -+ BIO_new_socket; -+ BIO_pop; -+ BIO_printf; -+ BIO_push; -+ BIO_puts; -+ BIO_read; -+ BIO_s_accept; -+ BIO_s_connect; -+ BIO_s_fd; -+ BIO_s_file; -+ BIO_s_mem; -+ BIO_s_null; -+ BIO_s_proxy_client; -+ BIO_s_socket; -+ BIO_set; -+ BIO_set_cipher; -+ BIO_set_tcp_ndelay; -+ BIO_sock_cleanup; -+ BIO_sock_error; -+ BIO_sock_init; -+ BIO_sock_non_fatal_error; -+ BIO_sock_should_retry; -+ BIO_socket_ioctl; -+ BIO_write; -+ BN_CTX_free; -+ BN_CTX_new; -+ BN_MONT_CTX_free; -+ BN_MONT_CTX_new; -+ BN_MONT_CTX_set; -+ BN_add; -+ BN_add_word; -+ BN_hex2bn; -+ BN_bin2bn; -+ BN_bn2hex; -+ BN_bn2bin; -+ BN_clear; -+ BN_clear_bit; -+ BN_clear_free; -+ BN_cmp; -+ BN_copy; -+ BN_div; -+ BN_div_word; -+ BN_dup; -+ BN_free; -+ BN_from_montgomery; -+ BN_gcd; -+ BN_generate_prime; -+ BN_get_word; -+ BN_is_bit_set; -+ BN_is_prime; -+ BN_lshift; -+ BN_lshift1; -+ BN_mask_bits; -+ BN_mod; -+ BN_mod_exp; -+ BN_mod_exp_mont; -+ BN_mod_exp_simple; -+ BN_mod_inverse; -+ BN_mod_mul; -+ BN_mod_mul_montgomery; -+ BN_mod_word; -+ BN_mul; -+ BN_new; -+ BN_num_bits; -+ BN_num_bits_word; -+ BN_options; -+ BN_print; -+ BN_print_fp; -+ BN_rand; -+ BN_reciprocal; -+ BN_rshift; -+ BN_rshift1; -+ BN_set_bit; -+ BN_set_word; -+ BN_sqr; -+ BN_sub; -+ BN_to_ASN1_INTEGER; -+ BN_ucmp; -+ BN_value_one; -+ BUF_MEM_free; -+ BUF_MEM_grow; -+ BUF_MEM_new; -+ BUF_strdup; -+ CONF_free; -+ CONF_get_number; -+ CONF_get_section; -+ CONF_get_string; -+ CONF_load; -+ CRYPTO_add_lock; -+ CRYPTO_dbg_free; -+ CRYPTO_dbg_malloc; -+ CRYPTO_dbg_realloc; -+ CRYPTO_dbg_remalloc; -+ CRYPTO_free; -+ CRYPTO_get_add_lock_callback; -+ CRYPTO_get_id_callback; -+ CRYPTO_get_lock_name; -+ CRYPTO_get_locking_callback; -+ CRYPTO_get_mem_functions; -+ CRYPTO_lock; -+ CRYPTO_malloc; -+ CRYPTO_mem_ctrl; -+ CRYPTO_mem_leaks; -+ CRYPTO_mem_leaks_cb; -+ CRYPTO_mem_leaks_fp; -+ CRYPTO_realloc; -+ CRYPTO_remalloc; -+ CRYPTO_set_add_lock_callback; -+ CRYPTO_set_id_callback; -+ CRYPTO_set_locking_callback; -+ CRYPTO_set_mem_functions; -+ CRYPTO_thread_id; -+ DH_check; -+ DH_compute_key; -+ DH_free; -+ DH_generate_key; -+ DH_generate_parameters; -+ DH_new; -+ DH_size; -+ DHparams_print; -+ DHparams_print_fp; -+ DSA_free; -+ DSA_generate_key; -+ DSA_generate_parameters; -+ DSA_is_prime; -+ DSA_new; -+ DSA_print; -+ DSA_print_fp; -+ DSA_sign; -+ DSA_sign_setup; -+ DSA_size; -+ DSA_verify; -+ DSAparams_print; -+ DSAparams_print_fp; -+ ERR_clear_error; -+ ERR_error_string; -+ ERR_free_strings; -+ ERR_func_error_string; -+ ERR_get_err_state_table; -+ ERR_get_error; -+ ERR_get_error_line; -+ ERR_get_state; -+ ERR_get_string_table; -+ ERR_lib_error_string; -+ ERR_load_ASN1_strings; -+ ERR_load_BIO_strings; -+ ERR_load_BN_strings; -+ ERR_load_BUF_strings; -+ ERR_load_CONF_strings; -+ ERR_load_DH_strings; -+ ERR_load_DSA_strings; -+ ERR_load_ERR_strings; -+ ERR_load_EVP_strings; -+ ERR_load_OBJ_strings; -+ ERR_load_PEM_strings; -+ ERR_load_PROXY_strings; -+ ERR_load_RSA_strings; -+ ERR_load_X509_strings; -+ ERR_load_crypto_strings; -+ ERR_load_strings; -+ ERR_peek_error; -+ ERR_peek_error_line; -+ ERR_print_errors; -+ ERR_print_errors_fp; -+ ERR_put_error; -+ ERR_reason_error_string; -+ ERR_remove_state; -+ EVP_BytesToKey; -+ EVP_CIPHER_CTX_cleanup; -+ EVP_CipherFinal; -+ EVP_CipherInit; -+ EVP_CipherUpdate; -+ EVP_DecodeBlock; -+ EVP_DecodeFinal; -+ EVP_DecodeInit; -+ EVP_DecodeUpdate; -+ EVP_DecryptFinal; -+ EVP_DecryptInit; -+ EVP_DecryptUpdate; -+ EVP_DigestFinal; -+ EVP_DigestInit; -+ EVP_DigestUpdate; -+ EVP_EncodeBlock; -+ EVP_EncodeFinal; -+ EVP_EncodeInit; -+ EVP_EncodeUpdate; -+ EVP_EncryptFinal; -+ EVP_EncryptInit; -+ EVP_EncryptUpdate; -+ EVP_OpenFinal; -+ EVP_OpenInit; -+ EVP_PKEY_assign; -+ EVP_PKEY_copy_parameters; -+ EVP_PKEY_free; -+ EVP_PKEY_missing_parameters; -+ EVP_PKEY_new; -+ EVP_PKEY_save_parameters; -+ EVP_PKEY_size; -+ EVP_PKEY_type; -+ EVP_SealFinal; -+ EVP_SealInit; -+ EVP_SignFinal; -+ EVP_VerifyFinal; -+ EVP_add_alias; -+ EVP_add_cipher; -+ EVP_add_digest; -+ EVP_bf_cbc; -+ EVP_bf_cfb64; -+ EVP_bf_ecb; -+ EVP_bf_ofb; -+ EVP_cleanup; -+ EVP_des_cbc; -+ EVP_des_cfb64; -+ EVP_des_ecb; -+ EVP_des_ede; -+ EVP_des_ede3; -+ EVP_des_ede3_cbc; -+ EVP_des_ede3_cfb64; -+ EVP_des_ede3_ofb; -+ EVP_des_ede_cbc; -+ EVP_des_ede_cfb64; -+ EVP_des_ede_ofb; -+ EVP_des_ofb; -+ EVP_desx_cbc; -+ EVP_dss; -+ EVP_dss1; -+ EVP_enc_null; -+ EVP_get_cipherbyname; -+ EVP_get_digestbyname; -+ EVP_get_pw_prompt; -+ EVP_idea_cbc; -+ EVP_idea_cfb64; -+ EVP_idea_ecb; -+ EVP_idea_ofb; -+ EVP_md2; -+ EVP_md5; -+ EVP_md_null; -+ EVP_rc2_cbc; -+ EVP_rc2_cfb64; -+ EVP_rc2_ecb; -+ EVP_rc2_ofb; -+ EVP_rc4; -+ EVP_read_pw_string; -+ EVP_set_pw_prompt; -+ EVP_sha; -+ EVP_sha1; -+ MD2; -+ MD2_Final; -+ MD2_Init; -+ MD2_Update; -+ MD2_options; -+ MD5; -+ MD5_Final; -+ MD5_Init; -+ MD5_Update; -+ MDC2; -+ MDC2_Final; -+ MDC2_Init; -+ MDC2_Update; -+ NETSCAPE_SPKAC_free; -+ NETSCAPE_SPKAC_new; -+ NETSCAPE_SPKI_free; -+ NETSCAPE_SPKI_new; -+ NETSCAPE_SPKI_sign; -+ NETSCAPE_SPKI_verify; -+ OBJ_add_object; -+ OBJ_bsearch; -+ OBJ_cleanup; -+ OBJ_cmp; -+ OBJ_create; -+ OBJ_dup; -+ OBJ_ln2nid; -+ OBJ_new_nid; -+ OBJ_nid2ln; -+ OBJ_nid2obj; -+ OBJ_nid2sn; -+ OBJ_obj2nid; -+ OBJ_sn2nid; -+ OBJ_txt2nid; -+ PEM_ASN1_read; -+ PEM_ASN1_read_bio; -+ PEM_ASN1_write; -+ PEM_ASN1_write_bio; -+ PEM_SealFinal; -+ PEM_SealInit; -+ PEM_SealUpdate; -+ PEM_SignFinal; -+ PEM_SignInit; -+ PEM_SignUpdate; -+ PEM_X509_INFO_read; -+ PEM_X509_INFO_read_bio; -+ PEM_X509_INFO_write_bio; -+ PEM_dek_info; -+ PEM_do_header; -+ PEM_get_EVP_CIPHER_INFO; -+ PEM_proc_type; -+ PEM_read; -+ PEM_read_DHparams; -+ PEM_read_DSAPrivateKey; -+ PEM_read_DSAparams; -+ PEM_read_PKCS7; -+ PEM_read_PrivateKey; -+ PEM_read_RSAPrivateKey; -+ PEM_read_X509; -+ PEM_read_X509_CRL; -+ PEM_read_X509_REQ; -+ PEM_read_bio; -+ PEM_read_bio_DHparams; -+ PEM_read_bio_DSAPrivateKey; -+ PEM_read_bio_DSAparams; -+ PEM_read_bio_PKCS7; -+ PEM_read_bio_PrivateKey; -+ PEM_read_bio_RSAPrivateKey; -+ PEM_read_bio_X509; -+ PEM_read_bio_X509_CRL; -+ PEM_read_bio_X509_REQ; -+ PEM_write; -+ PEM_write_DHparams; -+ PEM_write_DSAPrivateKey; -+ PEM_write_DSAparams; -+ PEM_write_PKCS7; -+ PEM_write_PrivateKey; -+ PEM_write_RSAPrivateKey; -+ PEM_write_X509; -+ PEM_write_X509_CRL; -+ PEM_write_X509_REQ; -+ PEM_write_bio; -+ PEM_write_bio_DHparams; -+ PEM_write_bio_DSAPrivateKey; -+ PEM_write_bio_DSAparams; -+ PEM_write_bio_PKCS7; -+ PEM_write_bio_PrivateKey; -+ PEM_write_bio_RSAPrivateKey; -+ PEM_write_bio_X509; -+ PEM_write_bio_X509_CRL; -+ PEM_write_bio_X509_REQ; -+ PKCS7_DIGEST_free; -+ PKCS7_DIGEST_new; -+ PKCS7_ENCRYPT_free; -+ PKCS7_ENCRYPT_new; -+ PKCS7_ENC_CONTENT_free; -+ PKCS7_ENC_CONTENT_new; -+ PKCS7_ENVELOPE_free; -+ PKCS7_ENVELOPE_new; -+ PKCS7_ISSUER_AND_SERIAL_digest; -+ PKCS7_ISSUER_AND_SERIAL_free; -+ PKCS7_ISSUER_AND_SERIAL_new; -+ PKCS7_RECIP_INFO_free; -+ PKCS7_RECIP_INFO_new; -+ PKCS7_SIGNED_free; -+ PKCS7_SIGNED_new; -+ PKCS7_SIGNER_INFO_free; -+ PKCS7_SIGNER_INFO_new; -+ PKCS7_SIGN_ENVELOPE_free; -+ PKCS7_SIGN_ENVELOPE_new; -+ PKCS7_dup; -+ PKCS7_free; -+ PKCS7_new; -+ PROXY_ENTRY_add_noproxy; -+ PROXY_ENTRY_clear_noproxy; -+ PROXY_ENTRY_free; -+ PROXY_ENTRY_get_noproxy; -+ PROXY_ENTRY_new; -+ PROXY_ENTRY_set_server; -+ PROXY_add_noproxy; -+ PROXY_add_server; -+ PROXY_check_by_host; -+ PROXY_check_url; -+ PROXY_clear_noproxy; -+ PROXY_free; -+ PROXY_get_noproxy; -+ PROXY_get_proxies; -+ PROXY_get_proxy_entry; -+ PROXY_load_conf; -+ PROXY_new; -+ PROXY_print; -+ RAND_bytes; -+ RAND_cleanup; -+ RAND_file_name; -+ RAND_load_file; -+ RAND_screen; -+ RAND_seed; -+ RAND_write_file; -+ RC2_cbc_encrypt; -+ RC2_cfb64_encrypt; -+ RC2_ecb_encrypt; -+ RC2_encrypt; -+ RC2_ofb64_encrypt; -+ RC2_set_key; -+ RC4; -+ RC4_options; -+ RC4_set_key; -+ RSAPrivateKey_asn1_meth; -+ RSAPrivateKey_dup; -+ RSAPublicKey_dup; -+ RSA_PKCS1_SSLeay; -+ RSA_free; -+ RSA_generate_key; -+ RSA_new; -+ RSA_new_method; -+ RSA_print; -+ RSA_print_fp; -+ RSA_private_decrypt; -+ RSA_private_encrypt; -+ RSA_public_decrypt; -+ RSA_public_encrypt; -+ RSA_set_default_method; -+ RSA_sign; -+ RSA_sign_ASN1_OCTET_STRING; -+ RSA_size; -+ RSA_verify; -+ RSA_verify_ASN1_OCTET_STRING; -+ SHA; -+ SHA1; -+ SHA1_Final; -+ SHA1_Init; -+ SHA1_Update; -+ SHA_Final; -+ SHA_Init; -+ SHA_Update; -+ OpenSSL_add_all_algorithms; -+ OpenSSL_add_all_ciphers; -+ OpenSSL_add_all_digests; -+ TXT_DB_create_index; -+ TXT_DB_free; -+ TXT_DB_get_by_index; -+ TXT_DB_insert; -+ TXT_DB_read; -+ TXT_DB_write; -+ X509_ALGOR_free; -+ X509_ALGOR_new; -+ X509_ATTRIBUTE_free; -+ X509_ATTRIBUTE_new; -+ X509_CINF_free; -+ X509_CINF_new; -+ X509_CRL_INFO_free; -+ X509_CRL_INFO_new; -+ X509_CRL_add_ext; -+ X509_CRL_cmp; -+ X509_CRL_delete_ext; -+ X509_CRL_dup; -+ X509_CRL_free; -+ X509_CRL_get_ext; -+ X509_CRL_get_ext_by_NID; -+ X509_CRL_get_ext_by_OBJ; -+ X509_CRL_get_ext_by_critical; -+ X509_CRL_get_ext_count; -+ X509_CRL_new; -+ X509_CRL_sign; -+ X509_CRL_verify; -+ X509_EXTENSION_create_by_NID; -+ X509_EXTENSION_create_by_OBJ; -+ X509_EXTENSION_dup; -+ X509_EXTENSION_free; -+ X509_EXTENSION_get_critical; -+ X509_EXTENSION_get_data; -+ X509_EXTENSION_get_object; -+ X509_EXTENSION_new; -+ X509_EXTENSION_set_critical; -+ X509_EXTENSION_set_data; -+ X509_EXTENSION_set_object; -+ X509_INFO_free; -+ X509_INFO_new; -+ X509_LOOKUP_by_alias; -+ X509_LOOKUP_by_fingerprint; -+ X509_LOOKUP_by_issuer_serial; -+ X509_LOOKUP_by_subject; -+ X509_LOOKUP_ctrl; -+ X509_LOOKUP_file; -+ X509_LOOKUP_free; -+ X509_LOOKUP_hash_dir; -+ X509_LOOKUP_init; -+ X509_LOOKUP_new; -+ X509_LOOKUP_shutdown; -+ X509_NAME_ENTRY_create_by_NID; -+ X509_NAME_ENTRY_create_by_OBJ; -+ X509_NAME_ENTRY_dup; -+ X509_NAME_ENTRY_free; -+ X509_NAME_ENTRY_get_data; -+ X509_NAME_ENTRY_get_object; -+ X509_NAME_ENTRY_new; -+ X509_NAME_ENTRY_set_data; -+ X509_NAME_ENTRY_set_object; -+ X509_NAME_add_entry; -+ X509_NAME_cmp; -+ X509_NAME_delete_entry; -+ X509_NAME_digest; -+ X509_NAME_dup; -+ X509_NAME_entry_count; -+ X509_NAME_free; -+ X509_NAME_get_entry; -+ X509_NAME_get_index_by_NID; -+ X509_NAME_get_index_by_OBJ; -+ X509_NAME_get_text_by_NID; -+ X509_NAME_get_text_by_OBJ; -+ X509_NAME_hash; -+ X509_NAME_new; -+ X509_NAME_oneline; -+ X509_NAME_print; -+ X509_NAME_set; -+ X509_OBJECT_free_contents; -+ X509_OBJECT_retrieve_by_subject; -+ X509_OBJECT_up_ref_count; -+ X509_PKEY_free; -+ X509_PKEY_new; -+ X509_PUBKEY_free; -+ X509_PUBKEY_get; -+ X509_PUBKEY_new; -+ X509_PUBKEY_set; -+ X509_REQ_INFO_free; -+ X509_REQ_INFO_new; -+ X509_REQ_dup; -+ X509_REQ_free; -+ X509_REQ_get_pubkey; -+ X509_REQ_new; -+ X509_REQ_print; -+ X509_REQ_print_fp; -+ X509_REQ_set_pubkey; -+ X509_REQ_set_subject_name; -+ X509_REQ_set_version; -+ X509_REQ_sign; -+ X509_REQ_to_X509; -+ X509_REQ_verify; -+ X509_REVOKED_add_ext; -+ X509_REVOKED_delete_ext; -+ X509_REVOKED_free; -+ X509_REVOKED_get_ext; -+ X509_REVOKED_get_ext_by_NID; -+ X509_REVOKED_get_ext_by_OBJ; -+ X509_REVOKED_get_ext_by_critical; -+ X509_REVOKED_get_ext_by_critic; -+ X509_REVOKED_get_ext_count; -+ X509_REVOKED_new; -+ X509_SIG_free; -+ X509_SIG_new; -+ X509_STORE_CTX_cleanup; -+ X509_STORE_CTX_init; -+ X509_STORE_add_cert; -+ X509_STORE_add_lookup; -+ X509_STORE_free; -+ X509_STORE_get_by_subject; -+ X509_STORE_load_locations; -+ X509_STORE_new; -+ X509_STORE_set_default_paths; -+ X509_VAL_free; -+ X509_VAL_new; -+ X509_add_ext; -+ X509_asn1_meth; -+ X509_certificate_type; -+ X509_check_private_key; -+ X509_cmp_current_time; -+ X509_delete_ext; -+ X509_digest; -+ X509_dup; -+ X509_free; -+ X509_get_default_cert_area; -+ X509_get_default_cert_dir; -+ X509_get_default_cert_dir_env; -+ X509_get_default_cert_file; -+ X509_get_default_cert_file_env; -+ X509_get_default_private_dir; -+ X509_get_ext; -+ X509_get_ext_by_NID; -+ X509_get_ext_by_OBJ; -+ X509_get_ext_by_critical; -+ X509_get_ext_count; -+ X509_get_issuer_name; -+ X509_get_pubkey; -+ X509_get_pubkey_parameters; -+ X509_get_serialNumber; -+ X509_get_subject_name; -+ X509_gmtime_adj; -+ X509_issuer_and_serial_cmp; -+ X509_issuer_and_serial_hash; -+ X509_issuer_name_cmp; -+ X509_issuer_name_hash; -+ X509_load_cert_file; -+ X509_new; -+ X509_print; -+ X509_print_fp; -+ X509_set_issuer_name; -+ X509_set_notAfter; -+ X509_set_notBefore; -+ X509_set_pubkey; -+ X509_set_serialNumber; -+ X509_set_subject_name; -+ X509_set_version; -+ X509_sign; -+ X509_subject_name_cmp; -+ X509_subject_name_hash; -+ X509_to_X509_REQ; -+ X509_verify; -+ X509_verify_cert; -+ X509_verify_cert_error_string; -+ X509v3_add_ext; -+ X509v3_add_extension; -+ X509v3_add_netscape_extensions; -+ X509v3_add_standard_extensions; -+ X509v3_cleanup_extensions; -+ X509v3_data_type_by_NID; -+ X509v3_data_type_by_OBJ; -+ X509v3_delete_ext; -+ X509v3_get_ext; -+ X509v3_get_ext_by_NID; -+ X509v3_get_ext_by_OBJ; -+ X509v3_get_ext_by_critical; -+ X509v3_get_ext_count; -+ X509v3_pack_string; -+ X509v3_pack_type_by_NID; -+ X509v3_pack_type_by_OBJ; -+ X509v3_unpack_string; -+ _des_crypt; -+ a2d_ASN1_OBJECT; -+ a2i_ASN1_INTEGER; -+ a2i_ASN1_STRING; -+ asn1_Finish; -+ asn1_GetSequence; -+ bn_div_words; -+ bn_expand2; -+ bn_mul_add_words; -+ bn_mul_words; -+ BN_uadd; -+ BN_usub; -+ bn_sqr_words; -+ _ossl_old_crypt; -+ d2i_ASN1_BIT_STRING; -+ d2i_ASN1_BOOLEAN; -+ d2i_ASN1_HEADER; -+ d2i_ASN1_IA5STRING; -+ d2i_ASN1_INTEGER; -+ d2i_ASN1_OBJECT; -+ d2i_ASN1_OCTET_STRING; -+ d2i_ASN1_PRINTABLE; -+ d2i_ASN1_PRINTABLESTRING; -+ d2i_ASN1_SET; -+ d2i_ASN1_T61STRING; -+ d2i_ASN1_TYPE; -+ d2i_ASN1_UTCTIME; -+ d2i_ASN1_bytes; -+ d2i_ASN1_type_bytes; -+ d2i_DHparams; -+ d2i_DSAPrivateKey; -+ d2i_DSAPrivateKey_bio; -+ d2i_DSAPrivateKey_fp; -+ d2i_DSAPublicKey; -+ d2i_DSAparams; -+ d2i_NETSCAPE_SPKAC; -+ d2i_NETSCAPE_SPKI; -+ d2i_Netscape_RSA; -+ d2i_PKCS7; -+ d2i_PKCS7_DIGEST; -+ d2i_PKCS7_ENCRYPT; -+ d2i_PKCS7_ENC_CONTENT; -+ d2i_PKCS7_ENVELOPE; -+ d2i_PKCS7_ISSUER_AND_SERIAL; -+ d2i_PKCS7_RECIP_INFO; -+ d2i_PKCS7_SIGNED; -+ d2i_PKCS7_SIGNER_INFO; -+ d2i_PKCS7_SIGN_ENVELOPE; -+ d2i_PKCS7_bio; -+ d2i_PKCS7_fp; -+ d2i_PrivateKey; -+ d2i_PublicKey; -+ d2i_RSAPrivateKey; -+ d2i_RSAPrivateKey_bio; -+ d2i_RSAPrivateKey_fp; -+ d2i_RSAPublicKey; -+ d2i_X509; -+ d2i_X509_ALGOR; -+ d2i_X509_ATTRIBUTE; -+ d2i_X509_CINF; -+ d2i_X509_CRL; -+ d2i_X509_CRL_INFO; -+ d2i_X509_CRL_bio; -+ d2i_X509_CRL_fp; -+ d2i_X509_EXTENSION; -+ d2i_X509_NAME; -+ d2i_X509_NAME_ENTRY; -+ d2i_X509_PKEY; -+ d2i_X509_PUBKEY; -+ d2i_X509_REQ; -+ d2i_X509_REQ_INFO; -+ d2i_X509_REQ_bio; -+ d2i_X509_REQ_fp; -+ d2i_X509_REVOKED; -+ d2i_X509_SIG; -+ d2i_X509_VAL; -+ d2i_X509_bio; -+ d2i_X509_fp; -+ DES_cbc_cksum; -+ DES_cbc_encrypt; -+ DES_cblock_print_file; -+ DES_cfb64_encrypt; -+ DES_cfb_encrypt; -+ DES_decrypt3; -+ DES_ecb3_encrypt; -+ DES_ecb_encrypt; -+ DES_ede3_cbc_encrypt; -+ DES_ede3_cfb64_encrypt; -+ DES_ede3_ofb64_encrypt; -+ DES_enc_read; -+ DES_enc_write; -+ DES_encrypt1; -+ DES_encrypt2; -+ DES_encrypt3; -+ DES_fcrypt; -+ DES_is_weak_key; -+ DES_key_sched; -+ DES_ncbc_encrypt; -+ DES_ofb64_encrypt; -+ DES_ofb_encrypt; -+ DES_options; -+ DES_pcbc_encrypt; -+ DES_quad_cksum; -+ DES_random_key; -+ _ossl_old_des_random_seed; -+ _ossl_old_des_read_2passwords; -+ _ossl_old_des_read_password; -+ _ossl_old_des_read_pw; -+ _ossl_old_des_read_pw_string; -+ DES_set_key; -+ DES_set_odd_parity; -+ DES_string_to_2keys; -+ DES_string_to_key; -+ DES_xcbc_encrypt; -+ DES_xwhite_in2out; -+ fcrypt_body; -+ i2a_ASN1_INTEGER; -+ i2a_ASN1_OBJECT; -+ i2a_ASN1_STRING; -+ i2d_ASN1_BIT_STRING; -+ i2d_ASN1_BOOLEAN; -+ i2d_ASN1_HEADER; -+ i2d_ASN1_IA5STRING; -+ i2d_ASN1_INTEGER; -+ i2d_ASN1_OBJECT; -+ i2d_ASN1_OCTET_STRING; -+ i2d_ASN1_PRINTABLE; -+ i2d_ASN1_SET; -+ i2d_ASN1_TYPE; -+ i2d_ASN1_UTCTIME; -+ i2d_ASN1_bytes; -+ i2d_DHparams; -+ i2d_DSAPrivateKey; -+ i2d_DSAPrivateKey_bio; -+ i2d_DSAPrivateKey_fp; -+ i2d_DSAPublicKey; -+ i2d_DSAparams; -+ i2d_NETSCAPE_SPKAC; -+ i2d_NETSCAPE_SPKI; -+ i2d_Netscape_RSA; -+ i2d_PKCS7; -+ i2d_PKCS7_DIGEST; -+ i2d_PKCS7_ENCRYPT; -+ i2d_PKCS7_ENC_CONTENT; -+ i2d_PKCS7_ENVELOPE; -+ i2d_PKCS7_ISSUER_AND_SERIAL; -+ i2d_PKCS7_RECIP_INFO; -+ i2d_PKCS7_SIGNED; -+ i2d_PKCS7_SIGNER_INFO; -+ i2d_PKCS7_SIGN_ENVELOPE; -+ i2d_PKCS7_bio; -+ i2d_PKCS7_fp; -+ i2d_PrivateKey; -+ i2d_PublicKey; -+ i2d_RSAPrivateKey; -+ i2d_RSAPrivateKey_bio; -+ i2d_RSAPrivateKey_fp; -+ i2d_RSAPublicKey; -+ i2d_X509; -+ i2d_X509_ALGOR; -+ i2d_X509_ATTRIBUTE; -+ i2d_X509_CINF; -+ i2d_X509_CRL; -+ i2d_X509_CRL_INFO; -+ i2d_X509_CRL_bio; -+ i2d_X509_CRL_fp; -+ i2d_X509_EXTENSION; -+ i2d_X509_NAME; -+ i2d_X509_NAME_ENTRY; -+ i2d_X509_PKEY; -+ i2d_X509_PUBKEY; -+ i2d_X509_REQ; -+ i2d_X509_REQ_INFO; -+ i2d_X509_REQ_bio; -+ i2d_X509_REQ_fp; -+ i2d_X509_REVOKED; -+ i2d_X509_SIG; -+ i2d_X509_VAL; -+ i2d_X509_bio; -+ i2d_X509_fp; -+ idea_cbc_encrypt; -+ idea_cfb64_encrypt; -+ idea_ecb_encrypt; -+ idea_encrypt; -+ idea_ofb64_encrypt; -+ idea_options; -+ idea_set_decrypt_key; -+ idea_set_encrypt_key; -+ lh_delete; -+ lh_doall; -+ lh_doall_arg; -+ lh_free; -+ lh_insert; -+ lh_new; -+ lh_node_stats; -+ lh_node_stats_bio; -+ lh_node_usage_stats; -+ lh_node_usage_stats_bio; -+ lh_retrieve; -+ lh_stats; -+ lh_stats_bio; -+ lh_strhash; -+ sk_delete; -+ sk_delete_ptr; -+ sk_dup; -+ sk_find; -+ sk_free; -+ sk_insert; -+ sk_new; -+ sk_pop; -+ sk_pop_free; -+ sk_push; -+ sk_set_cmp_func; -+ sk_shift; -+ sk_unshift; -+ sk_zero; -+ BIO_f_nbio_test; -+ ASN1_TYPE_get; -+ ASN1_TYPE_set; -+ PKCS7_content_free; -+ ERR_load_PKCS7_strings; -+ X509_find_by_issuer_and_serial; -+ X509_find_by_subject; -+ PKCS7_ctrl; -+ PKCS7_set_type; -+ PKCS7_set_content; -+ PKCS7_SIGNER_INFO_set; -+ PKCS7_add_signer; -+ PKCS7_add_certificate; -+ PKCS7_add_crl; -+ PKCS7_content_new; -+ PKCS7_dataSign; -+ PKCS7_dataVerify; -+ PKCS7_dataInit; -+ PKCS7_add_signature; -+ PKCS7_cert_from_signer_info; -+ PKCS7_get_signer_info; -+ EVP_delete_alias; -+ EVP_mdc2; -+ PEM_read_bio_RSAPublicKey; -+ PEM_write_bio_RSAPublicKey; -+ d2i_RSAPublicKey_bio; -+ i2d_RSAPublicKey_bio; -+ PEM_read_RSAPublicKey; -+ PEM_write_RSAPublicKey; -+ d2i_RSAPublicKey_fp; -+ i2d_RSAPublicKey_fp; -+ BIO_copy_next_retry; -+ RSA_flags; -+ X509_STORE_add_crl; -+ X509_load_crl_file; -+ EVP_rc2_40_cbc; -+ EVP_rc4_40; -+ EVP_CIPHER_CTX_init; -+ HMAC; -+ HMAC_Init; -+ HMAC_Update; -+ HMAC_Final; -+ ERR_get_next_error_library; -+ EVP_PKEY_cmp_parameters; -+ HMAC_cleanup; -+ BIO_ptr_ctrl; -+ BIO_new_file_internal; -+ BIO_new_fp_internal; -+ BIO_s_file_internal; -+ BN_BLINDING_convert; -+ BN_BLINDING_invert; -+ BN_BLINDING_update; -+ RSA_blinding_on; -+ RSA_blinding_off; -+ i2t_ASN1_OBJECT; -+ BN_BLINDING_new; -+ BN_BLINDING_free; -+ EVP_cast5_cbc; -+ EVP_cast5_cfb64; -+ EVP_cast5_ecb; -+ EVP_cast5_ofb; -+ BF_decrypt; -+ CAST_set_key; -+ CAST_encrypt; -+ CAST_decrypt; -+ CAST_ecb_encrypt; -+ CAST_cbc_encrypt; -+ CAST_cfb64_encrypt; -+ CAST_ofb64_encrypt; -+ RC2_decrypt; -+ OBJ_create_objects; -+ BN_exp; -+ BN_mul_word; -+ BN_sub_word; -+ BN_dec2bn; -+ BN_bn2dec; -+ BIO_ghbn_ctrl; -+ CRYPTO_free_ex_data; -+ CRYPTO_get_ex_data; -+ CRYPTO_set_ex_data; -+ ERR_load_CRYPTO_strings; -+ ERR_load_CRYPTOlib_strings; -+ EVP_PKEY_bits; -+ MD5_Transform; -+ SHA1_Transform; -+ SHA_Transform; -+ X509_STORE_CTX_get_chain; -+ X509_STORE_CTX_get_current_cert; -+ X509_STORE_CTX_get_error; -+ X509_STORE_CTX_get_error_depth; -+ X509_STORE_CTX_get_ex_data; -+ X509_STORE_CTX_set_cert; -+ X509_STORE_CTX_set_chain; -+ X509_STORE_CTX_set_error; -+ X509_STORE_CTX_set_ex_data; -+ CRYPTO_dup_ex_data; -+ CRYPTO_get_new_lockid; -+ CRYPTO_new_ex_data; -+ RSA_set_ex_data; -+ RSA_get_ex_data; -+ RSA_get_ex_new_index; -+ RSA_padding_add_PKCS1_type_1; -+ RSA_padding_add_PKCS1_type_2; -+ RSA_padding_add_SSLv23; -+ RSA_padding_add_none; -+ RSA_padding_check_PKCS1_type_1; -+ RSA_padding_check_PKCS1_type_2; -+ RSA_padding_check_SSLv23; -+ RSA_padding_check_none; -+ bn_add_words; -+ d2i_Netscape_RSA_2; -+ CRYPTO_get_ex_new_index; -+ RIPEMD160_Init; -+ RIPEMD160_Update; -+ RIPEMD160_Final; -+ RIPEMD160; -+ RIPEMD160_Transform; -+ RC5_32_set_key; -+ RC5_32_ecb_encrypt; -+ RC5_32_encrypt; -+ RC5_32_decrypt; -+ RC5_32_cbc_encrypt; -+ RC5_32_cfb64_encrypt; -+ RC5_32_ofb64_encrypt; -+ BN_bn2mpi; -+ BN_mpi2bn; -+ ASN1_BIT_STRING_get_bit; -+ ASN1_BIT_STRING_set_bit; -+ BIO_get_ex_data; -+ BIO_get_ex_new_index; -+ BIO_set_ex_data; -+ X509v3_get_key_usage; -+ X509v3_set_key_usage; -+ a2i_X509v3_key_usage; -+ i2a_X509v3_key_usage; -+ EVP_PKEY_decrypt; -+ EVP_PKEY_encrypt; -+ PKCS7_RECIP_INFO_set; -+ PKCS7_add_recipient; -+ PKCS7_add_recipient_info; -+ PKCS7_set_cipher; -+ ASN1_TYPE_get_int_octetstring; -+ ASN1_TYPE_get_octetstring; -+ ASN1_TYPE_set_int_octetstring; -+ ASN1_TYPE_set_octetstring; -+ ASN1_UTCTIME_set_string; -+ ERR_add_error_data; -+ ERR_set_error_data; -+ EVP_CIPHER_asn1_to_param; -+ EVP_CIPHER_param_to_asn1; -+ EVP_CIPHER_get_asn1_iv; -+ EVP_CIPHER_set_asn1_iv; -+ EVP_rc5_32_12_16_cbc; -+ EVP_rc5_32_12_16_cfb64; -+ EVP_rc5_32_12_16_ecb; -+ EVP_rc5_32_12_16_ofb; -+ asn1_add_error; -+ d2i_ASN1_BMPSTRING; -+ i2d_ASN1_BMPSTRING; -+ BIO_f_ber; -+ BN_init; -+ COMP_CTX_new; -+ COMP_CTX_free; -+ COMP_CTX_compress_block; -+ COMP_CTX_expand_block; -+ X509_STORE_CTX_get_ex_new_index; -+ OBJ_NAME_add; -+ BIO_socket_nbio; -+ EVP_rc2_64_cbc; -+ OBJ_NAME_cleanup; -+ OBJ_NAME_get; -+ OBJ_NAME_init; -+ OBJ_NAME_new_index; -+ OBJ_NAME_remove; -+ BN_MONT_CTX_copy; -+ BIO_new_socks4a_connect; -+ BIO_s_socks4a_connect; -+ PROXY_set_connect_mode; -+ RAND_SSLeay; -+ RAND_set_rand_method; -+ RSA_memory_lock; -+ bn_sub_words; -+ bn_mul_normal; -+ bn_mul_comba8; -+ bn_mul_comba4; -+ bn_sqr_normal; -+ bn_sqr_comba8; -+ bn_sqr_comba4; -+ bn_cmp_words; -+ bn_mul_recursive; -+ bn_mul_part_recursive; -+ bn_sqr_recursive; -+ bn_mul_low_normal; -+ BN_RECP_CTX_init; -+ BN_RECP_CTX_new; -+ BN_RECP_CTX_free; -+ BN_RECP_CTX_set; -+ BN_mod_mul_reciprocal; -+ BN_mod_exp_recp; -+ BN_div_recp; -+ BN_CTX_init; -+ BN_MONT_CTX_init; -+ RAND_get_rand_method; -+ PKCS7_add_attribute; -+ PKCS7_add_signed_attribute; -+ PKCS7_digest_from_attributes; -+ PKCS7_get_attribute; -+ PKCS7_get_issuer_and_serial; -+ PKCS7_get_signed_attribute; -+ COMP_compress_block; -+ COMP_expand_block; -+ COMP_rle; -+ COMP_zlib; -+ ms_time_diff; -+ ms_time_new; -+ ms_time_free; -+ ms_time_cmp; -+ ms_time_get; -+ PKCS7_set_attributes; -+ PKCS7_set_signed_attributes; -+ X509_ATTRIBUTE_create; -+ X509_ATTRIBUTE_dup; -+ ASN1_GENERALIZEDTIME_check; -+ ASN1_GENERALIZEDTIME_print; -+ ASN1_GENERALIZEDTIME_set; -+ ASN1_GENERALIZEDTIME_set_string; -+ ASN1_TIME_print; -+ BASIC_CONSTRAINTS_free; -+ BASIC_CONSTRAINTS_new; -+ ERR_load_X509V3_strings; -+ NETSCAPE_CERT_SEQUENCE_free; -+ NETSCAPE_CERT_SEQUENCE_new; -+ OBJ_txt2obj; -+ PEM_read_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_NS_CERT_SEQ; -+ PEM_read_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_read_bio_NS_CERT_SEQ; -+ PEM_write_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_NS_CERT_SEQ; -+ PEM_write_bio_NETSCAPE_CERT_SEQUENCE; -+ PEM_write_bio_NS_CERT_SEQ; -+ X509V3_EXT_add; -+ X509V3_EXT_add_alias; -+ X509V3_EXT_add_conf; -+ X509V3_EXT_cleanup; -+ X509V3_EXT_conf; -+ X509V3_EXT_conf_nid; -+ X509V3_EXT_get; -+ X509V3_EXT_get_nid; -+ X509V3_EXT_print; -+ X509V3_EXT_print_fp; -+ X509V3_add_standard_extensions; -+ X509V3_add_value; -+ X509V3_add_value_bool; -+ X509V3_add_value_int; -+ X509V3_conf_free; -+ X509V3_get_value_bool; -+ X509V3_get_value_int; -+ X509V3_parse_list; -+ d2i_ASN1_GENERALIZEDTIME; -+ d2i_ASN1_TIME; -+ d2i_BASIC_CONSTRAINTS; -+ d2i_NETSCAPE_CERT_SEQUENCE; -+ d2i_ext_ku; -+ ext_ku_free; -+ ext_ku_new; -+ i2d_ASN1_GENERALIZEDTIME; -+ i2d_ASN1_TIME; -+ i2d_BASIC_CONSTRAINTS; -+ i2d_NETSCAPE_CERT_SEQUENCE; -+ i2d_ext_ku; -+ EVP_MD_CTX_copy; -+ i2d_ASN1_ENUMERATED; -+ d2i_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_set; -+ ASN1_ENUMERATED_get; -+ BN_to_ASN1_ENUMERATED; -+ ASN1_ENUMERATED_to_BN; -+ i2a_ASN1_ENUMERATED; -+ a2i_ASN1_ENUMERATED; -+ i2d_GENERAL_NAME; -+ d2i_GENERAL_NAME; -+ GENERAL_NAME_new; -+ GENERAL_NAME_free; -+ GENERAL_NAMES_new; -+ GENERAL_NAMES_free; -+ d2i_GENERAL_NAMES; -+ i2d_GENERAL_NAMES; -+ i2v_GENERAL_NAMES; -+ i2s_ASN1_OCTET_STRING; -+ s2i_ASN1_OCTET_STRING; -+ X509V3_EXT_check_conf; -+ hex_to_string; -+ string_to_hex; -+ DES_ede3_cbcm_encrypt; -+ RSA_padding_add_PKCS1_OAEP; -+ RSA_padding_check_PKCS1_OAEP; -+ X509_CRL_print_fp; -+ X509_CRL_print; -+ i2v_GENERAL_NAME; -+ v2i_GENERAL_NAME; -+ i2d_PKEY_USAGE_PERIOD; -+ d2i_PKEY_USAGE_PERIOD; -+ PKEY_USAGE_PERIOD_new; -+ PKEY_USAGE_PERIOD_free; -+ v2i_GENERAL_NAMES; -+ i2s_ASN1_INTEGER; -+ X509V3_EXT_d2i; -+ name_cmp; -+ str_dup; -+ i2s_ASN1_ENUMERATED; -+ i2s_ASN1_ENUMERATED_TABLE; -+ BIO_s_log; -+ BIO_f_reliable; -+ PKCS7_dataFinal; -+ PKCS7_dataDecode; -+ X509V3_EXT_CRL_add_conf; -+ BN_set_params; -+ BN_get_params; -+ BIO_get_ex_num; -+ BIO_set_ex_free_func; -+ EVP_ripemd160; -+ ASN1_TIME_set; -+ i2d_AUTHORITY_KEYID; -+ d2i_AUTHORITY_KEYID; -+ AUTHORITY_KEYID_new; -+ AUTHORITY_KEYID_free; -+ ASN1_seq_unpack; -+ ASN1_seq_pack; -+ ASN1_unpack_string; -+ ASN1_pack_string; -+ PKCS12_pack_safebag; -+ PKCS12_MAKE_KEYBAG; -+ PKCS8_encrypt; -+ PKCS12_MAKE_SHKEYBAG; -+ PKCS12_pack_p7data; -+ PKCS12_pack_p7encdata; -+ PKCS12_add_localkeyid; -+ PKCS12_add_friendlyname_asc; -+ PKCS12_add_friendlyname_uni; -+ PKCS12_get_friendlyname; -+ PKCS12_pbe_crypt; -+ PKCS12_decrypt_d2i; -+ PKCS12_i2d_encrypt; -+ PKCS12_init; -+ PKCS12_key_gen_asc; -+ PKCS12_key_gen_uni; -+ PKCS12_gen_mac; -+ PKCS12_verify_mac; -+ PKCS12_set_mac; -+ PKCS12_setup_mac; -+ OPENSSL_asc2uni; -+ OPENSSL_uni2asc; -+ i2d_PKCS12_BAGS; -+ PKCS12_BAGS_new; -+ d2i_PKCS12_BAGS; -+ PKCS12_BAGS_free; -+ i2d_PKCS12; -+ d2i_PKCS12; -+ PKCS12_new; -+ PKCS12_free; -+ i2d_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_new; -+ d2i_PKCS12_MAC_DATA; -+ PKCS12_MAC_DATA_free; -+ i2d_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_new; -+ d2i_PKCS12_SAFEBAG; -+ PKCS12_SAFEBAG_free; -+ ERR_load_PKCS12_strings; -+ PKCS12_PBE_add; -+ PKCS8_add_keyusage; -+ PKCS12_get_attr_gen; -+ PKCS12_parse; -+ PKCS12_create; -+ i2d_PKCS12_bio; -+ i2d_PKCS12_fp; -+ d2i_PKCS12_bio; -+ d2i_PKCS12_fp; -+ i2d_PBEPARAM; -+ PBEPARAM_new; -+ d2i_PBEPARAM; -+ PBEPARAM_free; -+ i2d_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_new; -+ d2i_PKCS8_PRIV_KEY_INFO; -+ PKCS8_PRIV_KEY_INFO_free; -+ EVP_PKCS82PKEY; -+ EVP_PKEY2PKCS8; -+ PKCS8_set_broken; -+ EVP_PBE_ALGOR_CipherInit; -+ EVP_PBE_alg_add; -+ PKCS5_pbe_set; -+ EVP_PBE_cleanup; -+ i2d_SXNET; -+ d2i_SXNET; -+ SXNET_new; -+ SXNET_free; -+ i2d_SXNETID; -+ d2i_SXNETID; -+ SXNETID_new; -+ SXNETID_free; -+ DSA_SIG_new; -+ DSA_SIG_free; -+ DSA_do_sign; -+ DSA_do_verify; -+ d2i_DSA_SIG; -+ i2d_DSA_SIG; -+ i2d_ASN1_VISIBLESTRING; -+ d2i_ASN1_VISIBLESTRING; -+ i2d_ASN1_UTF8STRING; -+ d2i_ASN1_UTF8STRING; -+ i2d_DIRECTORYSTRING; -+ d2i_DIRECTORYSTRING; -+ i2d_DISPLAYTEXT; -+ d2i_DISPLAYTEXT; -+ d2i_ASN1_SET_OF_X509; -+ i2d_ASN1_SET_OF_X509; -+ i2d_PBKDF2PARAM; -+ PBKDF2PARAM_new; -+ d2i_PBKDF2PARAM; -+ PBKDF2PARAM_free; -+ i2d_PBE2PARAM; -+ PBE2PARAM_new; -+ d2i_PBE2PARAM; -+ PBE2PARAM_free; -+ d2i_ASN1_SET_OF_GENERAL_NAME; -+ i2d_ASN1_SET_OF_GENERAL_NAME; -+ d2i_ASN1_SET_OF_SXNETID; -+ i2d_ASN1_SET_OF_SXNETID; -+ d2i_ASN1_SET_OF_POLICYQUALINFO; -+ i2d_ASN1_SET_OF_POLICYQUALINFO; -+ d2i_ASN1_SET_OF_POLICYINFO; -+ i2d_ASN1_SET_OF_POLICYINFO; -+ SXNET_add_id_asc; -+ SXNET_add_id_ulong; -+ SXNET_add_id_INTEGER; -+ SXNET_get_id_asc; -+ SXNET_get_id_ulong; -+ SXNET_get_id_INTEGER; -+ X509V3_set_conf_lhash; -+ i2d_CERTIFICATEPOLICIES; -+ CERTIFICATEPOLICIES_new; -+ CERTIFICATEPOLICIES_free; -+ d2i_CERTIFICATEPOLICIES; -+ i2d_POLICYINFO; -+ POLICYINFO_new; -+ d2i_POLICYINFO; -+ POLICYINFO_free; -+ i2d_POLICYQUALINFO; -+ POLICYQUALINFO_new; -+ d2i_POLICYQUALINFO; -+ POLICYQUALINFO_free; -+ i2d_USERNOTICE; -+ USERNOTICE_new; -+ d2i_USERNOTICE; -+ USERNOTICE_free; -+ i2d_NOTICEREF; -+ NOTICEREF_new; -+ d2i_NOTICEREF; -+ NOTICEREF_free; -+ X509V3_get_string; -+ X509V3_get_section; -+ X509V3_string_free; -+ X509V3_section_free; -+ X509V3_set_ctx; -+ s2i_ASN1_INTEGER; -+ CRYPTO_set_locked_mem_functions; -+ CRYPTO_get_locked_mem_functions; -+ CRYPTO_malloc_locked; -+ CRYPTO_free_locked; -+ BN_mod_exp2_mont; -+ ERR_get_error_line_data; -+ ERR_peek_error_line_data; -+ PKCS12_PBE_keyivgen; -+ X509_ALGOR_dup; -+ d2i_ASN1_SET_OF_DIST_POINT; -+ i2d_ASN1_SET_OF_DIST_POINT; -+ i2d_CRL_DIST_POINTS; -+ CRL_DIST_POINTS_new; -+ CRL_DIST_POINTS_free; -+ d2i_CRL_DIST_POINTS; -+ i2d_DIST_POINT; -+ DIST_POINT_new; -+ d2i_DIST_POINT; -+ DIST_POINT_free; -+ i2d_DIST_POINT_NAME; -+ DIST_POINT_NAME_new; -+ DIST_POINT_NAME_free; -+ d2i_DIST_POINT_NAME; -+ X509V3_add_value_uchar; -+ d2i_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_ASN1_TYPE; -+ d2i_ASN1_SET_OF_X509_EXTENSION; -+ d2i_ASN1_SET_OF_X509_NAME_ENTRY; -+ d2i_ASN1_SET_OF_ASN1_TYPE; -+ i2d_ASN1_SET_OF_X509_ATTRIBUTE; -+ i2d_ASN1_SET_OF_X509_EXTENSION; -+ i2d_ASN1_SET_OF_X509_NAME_ENTRY; -+ X509V3_EXT_i2d; -+ X509V3_EXT_val_prn; -+ X509V3_EXT_add_list; -+ EVP_CIPHER_type; -+ EVP_PBE_CipherInit; -+ X509V3_add_value_bool_nf; -+ d2i_ASN1_UINTEGER; -+ sk_value; -+ sk_num; -+ sk_set; -+ i2d_ASN1_SET_OF_X509_REVOKED; -+ sk_sort; -+ d2i_ASN1_SET_OF_X509_REVOKED; -+ i2d_ASN1_SET_OF_X509_ALGOR; -+ i2d_ASN1_SET_OF_X509_CRL; -+ d2i_ASN1_SET_OF_X509_ALGOR; -+ d2i_ASN1_SET_OF_X509_CRL; -+ i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ i2d_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO; -+ d2i_ASN1_SET_OF_PKCS7_RECIP_INFO; -+ PKCS5_PBE_add; -+ PEM_write_bio_PKCS8; -+ i2d_PKCS8_fp; -+ PEM_read_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_read_bio_P8_PRIV_KEY_INFO; -+ d2i_PKCS8_bio; -+ d2i_PKCS8_PRIV_KEY_INFO_fp; -+ PEM_write_bio_PKCS8_PRIV_KEY_INFO; -+ PEM_write_bio_P8_PRIV_KEY_INFO; -+ PEM_read_PKCS8; -+ d2i_PKCS8_PRIV_KEY_INFO_bio; -+ d2i_PKCS8_fp; -+ PEM_write_PKCS8; -+ PEM_read_PKCS8_PRIV_KEY_INFO; -+ PEM_read_P8_PRIV_KEY_INFO; -+ PEM_read_bio_PKCS8; -+ PEM_write_PKCS8_PRIV_KEY_INFO; -+ PEM_write_P8_PRIV_KEY_INFO; -+ PKCS5_PBE_keyivgen; -+ i2d_PKCS8_bio; -+ i2d_PKCS8_PRIV_KEY_INFO_fp; -+ i2d_PKCS8_PRIV_KEY_INFO_bio; -+ BIO_s_bio; -+ PKCS5_pbe2_set; -+ PKCS5_PBKDF2_HMAC_SHA1; -+ PKCS5_v2_PBE_keyivgen; -+ PEM_write_bio_PKCS8PrivateKey; -+ PEM_write_PKCS8PrivateKey; -+ BIO_ctrl_get_read_request; -+ BIO_ctrl_pending; -+ BIO_ctrl_wpending; -+ BIO_new_bio_pair; -+ BIO_ctrl_get_write_guarantee; -+ CRYPTO_num_locks; -+ CONF_load_bio; -+ CONF_load_fp; -+ i2d_ASN1_SET_OF_ASN1_OBJECT; -+ d2i_ASN1_SET_OF_ASN1_OBJECT; -+ PKCS7_signatureVerify; -+ RSA_set_method; -+ RSA_get_method; -+ RSA_get_default_method; -+ RSA_check_key; -+ OBJ_obj2txt; -+ DSA_dup_DH; -+ X509_REQ_get_extensions; -+ X509_REQ_set_extension_nids; -+ BIO_nwrite; -+ X509_REQ_extension_nid; -+ BIO_nread; -+ X509_REQ_get_extension_nids; -+ BIO_nwrite0; -+ X509_REQ_add_extensions_nid; -+ BIO_nread0; -+ X509_REQ_add_extensions; -+ BIO_new_mem_buf; -+ DH_set_ex_data; -+ DH_set_method; -+ DSA_OpenSSL; -+ DH_get_ex_data; -+ DH_get_ex_new_index; -+ DSA_new_method; -+ DH_new_method; -+ DH_OpenSSL; -+ DSA_get_ex_new_index; -+ DH_get_default_method; -+ DSA_set_ex_data; -+ DH_set_default_method; -+ DSA_get_ex_data; -+ X509V3_EXT_REQ_add_conf; -+ NETSCAPE_SPKI_print; -+ NETSCAPE_SPKI_set_pubkey; -+ NETSCAPE_SPKI_b64_encode; -+ NETSCAPE_SPKI_get_pubkey; -+ NETSCAPE_SPKI_b64_decode; -+ UTF8_putc; -+ UTF8_getc; -+ RSA_null_method; -+ ASN1_tag2str; -+ BIO_ctrl_reset_read_request; -+ DISPLAYTEXT_new; -+ ASN1_GENERALIZEDTIME_free; -+ X509_REVOKED_get_ext_d2i; -+ X509_set_ex_data; -+ X509_reject_set_bit_asc; -+ X509_NAME_add_entry_by_txt; -+ X509_NAME_add_entry_by_NID; -+ X509_PURPOSE_get0; -+ PEM_read_X509_AUX; -+ d2i_AUTHORITY_INFO_ACCESS; -+ PEM_write_PUBKEY; -+ ACCESS_DESCRIPTION_new; -+ X509_CERT_AUX_free; -+ d2i_ACCESS_DESCRIPTION; -+ X509_trust_clear; -+ X509_TRUST_add; -+ ASN1_VISIBLESTRING_new; -+ X509_alias_set1; -+ ASN1_PRINTABLESTRING_free; -+ EVP_PKEY_get1_DSA; -+ ASN1_BMPSTRING_new; -+ ASN1_mbstring_copy; -+ ASN1_UTF8STRING_new; -+ DSA_get_default_method; -+ i2d_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_T61STRING_free; -+ DSA_set_method; -+ X509_get_ex_data; -+ ASN1_STRING_type; -+ X509_PURPOSE_get_by_sname; -+ ASN1_TIME_free; -+ ASN1_OCTET_STRING_cmp; -+ ASN1_BIT_STRING_new; -+ X509_get_ext_d2i; -+ PEM_read_bio_X509_AUX; -+ ASN1_STRING_set_default_mask_asc; -+ ASN1_STRING_set_def_mask_asc; -+ PEM_write_bio_RSA_PUBKEY; -+ ASN1_INTEGER_cmp; -+ d2i_RSA_PUBKEY_fp; -+ X509_trust_set_bit_asc; -+ PEM_write_bio_DSA_PUBKEY; -+ X509_STORE_CTX_free; -+ EVP_PKEY_set1_DSA; -+ i2d_DSA_PUBKEY_fp; -+ X509_load_cert_crl_file; -+ ASN1_TIME_new; -+ i2d_RSA_PUBKEY; -+ X509_STORE_CTX_purpose_inherit; -+ PEM_read_RSA_PUBKEY; -+ d2i_X509_AUX; -+ i2d_DSA_PUBKEY; -+ X509_CERT_AUX_print; -+ PEM_read_DSA_PUBKEY; -+ i2d_RSA_PUBKEY_bio; -+ ASN1_BIT_STRING_num_asc; -+ i2d_PUBKEY; -+ ASN1_UTCTIME_free; -+ DSA_set_default_method; -+ X509_PURPOSE_get_by_id; -+ ACCESS_DESCRIPTION_free; -+ PEM_read_bio_PUBKEY; -+ ASN1_STRING_set_by_NID; -+ X509_PURPOSE_get_id; -+ DISPLAYTEXT_free; -+ OTHERNAME_new; -+ X509_CERT_AUX_new; -+ X509_TRUST_cleanup; -+ X509_NAME_add_entry_by_OBJ; -+ X509_CRL_get_ext_d2i; -+ X509_PURPOSE_get0_name; -+ PEM_read_PUBKEY; -+ i2d_DSA_PUBKEY_bio; -+ i2d_OTHERNAME; -+ ASN1_OCTET_STRING_free; -+ ASN1_BIT_STRING_set_asc; -+ X509_get_ex_new_index; -+ ASN1_STRING_TABLE_cleanup; -+ X509_TRUST_get_by_id; -+ X509_PURPOSE_get_trust; -+ ASN1_STRING_length; -+ d2i_ASN1_SET_OF_ACCESS_DESCRIPTION; -+ ASN1_PRINTABLESTRING_new; -+ X509V3_get_d2i; -+ ASN1_ENUMERATED_free; -+ i2d_X509_CERT_AUX; -+ X509_STORE_CTX_set_trust; -+ ASN1_STRING_set_default_mask; -+ X509_STORE_CTX_new; -+ EVP_PKEY_get1_RSA; -+ DIRECTORYSTRING_free; -+ PEM_write_X509_AUX; -+ ASN1_OCTET_STRING_set; -+ d2i_DSA_PUBKEY_fp; -+ d2i_RSA_PUBKEY; -+ X509_TRUST_get0_name; -+ X509_TRUST_get0; -+ AUTHORITY_INFO_ACCESS_free; -+ ASN1_IA5STRING_new; -+ d2i_DSA_PUBKEY; -+ X509_check_purpose; -+ ASN1_ENUMERATED_new; -+ d2i_RSA_PUBKEY_bio; -+ d2i_PUBKEY; -+ X509_TRUST_get_trust; -+ X509_TRUST_get_flags; -+ ASN1_BMPSTRING_free; -+ ASN1_T61STRING_new; -+ ASN1_UTCTIME_new; -+ i2d_AUTHORITY_INFO_ACCESS; -+ EVP_PKEY_set1_RSA; -+ X509_STORE_CTX_set_purpose; -+ ASN1_IA5STRING_free; -+ PEM_write_bio_X509_AUX; -+ X509_PURPOSE_get_count; -+ CRYPTO_add_info; -+ X509_NAME_ENTRY_create_by_txt; -+ ASN1_STRING_get_default_mask; -+ X509_alias_get0; -+ ASN1_STRING_data; -+ i2d_ACCESS_DESCRIPTION; -+ X509_trust_set_bit; -+ ASN1_BIT_STRING_free; -+ PEM_read_bio_RSA_PUBKEY; -+ X509_add1_reject_object; -+ X509_check_trust; -+ PEM_read_bio_DSA_PUBKEY; -+ X509_PURPOSE_add; -+ ASN1_STRING_TABLE_get; -+ ASN1_UTF8STRING_free; -+ d2i_DSA_PUBKEY_bio; -+ PEM_write_RSA_PUBKEY; -+ d2i_OTHERNAME; -+ X509_reject_set_bit; -+ PEM_write_DSA_PUBKEY; -+ X509_PURPOSE_get0_sname; -+ EVP_PKEY_set1_DH; -+ ASN1_OCTET_STRING_dup; -+ ASN1_BIT_STRING_set; -+ X509_TRUST_get_count; -+ ASN1_INTEGER_free; -+ OTHERNAME_free; -+ i2d_RSA_PUBKEY_fp; -+ ASN1_INTEGER_dup; -+ d2i_X509_CERT_AUX; -+ PEM_write_bio_PUBKEY; -+ ASN1_VISIBLESTRING_free; -+ X509_PURPOSE_cleanup; -+ ASN1_mbstring_ncopy; -+ ASN1_GENERALIZEDTIME_new; -+ EVP_PKEY_get1_DH; -+ ASN1_OCTET_STRING_new; -+ ASN1_INTEGER_new; -+ i2d_X509_AUX; -+ ASN1_BIT_STRING_name_print; -+ X509_cmp; -+ ASN1_STRING_length_set; -+ DIRECTORYSTRING_new; -+ X509_add1_trust_object; -+ PKCS12_newpass; -+ SMIME_write_PKCS7; -+ SMIME_read_PKCS7; -+ DES_set_key_checked; -+ PKCS7_verify; -+ PKCS7_encrypt; -+ DES_set_key_unchecked; -+ SMIME_crlf_copy; -+ i2d_ASN1_PRINTABLESTRING; -+ PKCS7_get0_signers; -+ PKCS7_decrypt; -+ SMIME_text; -+ PKCS7_simple_smimecap; -+ PKCS7_get_smimecap; -+ PKCS7_sign; -+ PKCS7_add_attrib_smimecap; -+ CRYPTO_dbg_set_options; -+ CRYPTO_remove_all_info; -+ CRYPTO_get_mem_debug_functions; -+ CRYPTO_is_mem_check_on; -+ CRYPTO_set_mem_debug_functions; -+ CRYPTO_pop_info; -+ CRYPTO_push_info_; -+ CRYPTO_set_mem_debug_options; -+ PEM_write_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivateKey_nid; -+ PEM_write_bio_PKCS8PrivKey_nid; -+ d2i_PKCS8PrivateKey_bio; -+ ASN1_NULL_free; -+ d2i_ASN1_NULL; -+ ASN1_NULL_new; -+ i2d_PKCS8PrivateKey_bio; -+ i2d_PKCS8PrivateKey_fp; -+ i2d_ASN1_NULL; -+ i2d_PKCS8PrivateKey_nid_fp; -+ d2i_PKCS8PrivateKey_fp; -+ i2d_PKCS8PrivateKey_nid_bio; -+ i2d_PKCS8PrivateKeyInfo_fp; -+ i2d_PKCS8PrivateKeyInfo_bio; -+ PEM_cb; -+ i2d_PrivateKey_fp; -+ d2i_PrivateKey_bio; -+ d2i_PrivateKey_fp; -+ i2d_PrivateKey_bio; -+ X509_reject_clear; -+ X509_TRUST_set_default; -+ d2i_AutoPrivateKey; -+ X509_ATTRIBUTE_get0_type; -+ X509_ATTRIBUTE_set1_data; -+ X509at_get_attr; -+ X509at_get_attr_count; -+ X509_ATTRIBUTE_create_by_NID; -+ X509_ATTRIBUTE_set1_object; -+ X509_ATTRIBUTE_count; -+ X509_ATTRIBUTE_create_by_OBJ; -+ X509_ATTRIBUTE_get0_object; -+ X509at_get_attr_by_NID; -+ X509at_add1_attr; -+ X509_ATTRIBUTE_get0_data; -+ X509at_delete_attr; -+ X509at_get_attr_by_OBJ; -+ RAND_add; -+ BIO_number_written; -+ BIO_number_read; -+ X509_STORE_CTX_get1_chain; -+ ERR_load_RAND_strings; -+ RAND_pseudo_bytes; -+ X509_REQ_get_attr_by_NID; -+ X509_REQ_get_attr; -+ X509_REQ_add1_attr_by_NID; -+ X509_REQ_get_attr_by_OBJ; -+ X509at_add1_attr_by_NID; -+ X509_REQ_add1_attr_by_OBJ; -+ X509_REQ_get_attr_count; -+ X509_REQ_add1_attr; -+ X509_REQ_delete_attr; -+ X509at_add1_attr_by_OBJ; -+ X509_REQ_add1_attr_by_txt; -+ X509_ATTRIBUTE_create_by_txt; -+ X509at_add1_attr_by_txt; -+ BN_pseudo_rand; -+ BN_is_prime_fasttest; -+ BN_CTX_end; -+ BN_CTX_start; -+ BN_CTX_get; -+ EVP_PKEY2PKCS8_broken; -+ ASN1_STRING_TABLE_add; -+ CRYPTO_dbg_get_options; -+ AUTHORITY_INFO_ACCESS_new; -+ CRYPTO_get_mem_debug_options; -+ DES_crypt; -+ PEM_write_bio_X509_REQ_NEW; -+ PEM_write_X509_REQ_NEW; -+ BIO_callback_ctrl; -+ RAND_egd; -+ RAND_status; -+ bn_dump1; -+ DES_check_key_parity; -+ lh_num_items; -+ RAND_event; -+ DSO_new; -+ DSO_new_method; -+ DSO_free; -+ DSO_flags; -+ DSO_up; -+ DSO_set_default_method; -+ DSO_get_default_method; -+ DSO_get_method; -+ DSO_set_method; -+ DSO_load; -+ DSO_bind_var; -+ DSO_METHOD_null; -+ DSO_METHOD_openssl; -+ DSO_METHOD_dlfcn; -+ DSO_METHOD_win32; -+ ERR_load_DSO_strings; -+ DSO_METHOD_dl; -+ NCONF_load; -+ NCONF_load_fp; -+ NCONF_new; -+ NCONF_get_string; -+ NCONF_free; -+ NCONF_get_number; -+ CONF_dump_fp; -+ NCONF_load_bio; -+ NCONF_dump_fp; -+ NCONF_get_section; -+ NCONF_dump_bio; -+ CONF_dump_bio; -+ NCONF_free_data; -+ CONF_set_default_method; -+ ERR_error_string_n; -+ BIO_snprintf; -+ DSO_ctrl; -+ i2d_ASN1_SET_OF_ASN1_INTEGER; -+ i2d_ASN1_SET_OF_PKCS12_SAFEBAG; -+ i2d_ASN1_SET_OF_PKCS7; -+ BIO_vfree; -+ d2i_ASN1_SET_OF_ASN1_INTEGER; -+ d2i_ASN1_SET_OF_PKCS12_SAFEBAG; -+ ASN1_UTCTIME_get; -+ X509_REQ_digest; -+ X509_CRL_digest; -+ d2i_ASN1_SET_OF_PKCS7; -+ EVP_CIPHER_CTX_set_key_length; -+ EVP_CIPHER_CTX_ctrl; -+ BN_mod_exp_mont_word; -+ RAND_egd_bytes; -+ X509_REQ_get1_email; -+ X509_get1_email; -+ X509_email_free; -+ i2d_RSA_NET; -+ d2i_RSA_NET_2; -+ d2i_RSA_NET; -+ DSO_bind_func; -+ CRYPTO_get_new_dynlockid; -+ sk_new_null; -+ CRYPTO_set_dynlock_destroy_callback; -+ CRYPTO_set_dynlock_destroy_cb; -+ CRYPTO_destroy_dynlockid; -+ CRYPTO_set_dynlock_size; -+ CRYPTO_set_dynlock_create_callback; -+ CRYPTO_set_dynlock_create_cb; -+ CRYPTO_set_dynlock_lock_callback; -+ CRYPTO_set_dynlock_lock_cb; -+ CRYPTO_get_dynlock_lock_callback; -+ CRYPTO_get_dynlock_lock_cb; -+ CRYPTO_get_dynlock_destroy_callback; -+ CRYPTO_get_dynlock_destroy_cb; -+ CRYPTO_get_dynlock_value; -+ CRYPTO_get_dynlock_create_callback; -+ CRYPTO_get_dynlock_create_cb; -+ c2i_ASN1_BIT_STRING; -+ i2c_ASN1_BIT_STRING; -+ RAND_poll; -+ c2i_ASN1_INTEGER; -+ i2c_ASN1_INTEGER; -+ BIO_dump_indent; -+ ASN1_parse_dump; -+ c2i_ASN1_OBJECT; -+ X509_NAME_print_ex_fp; -+ ASN1_STRING_print_ex_fp; -+ X509_NAME_print_ex; -+ ASN1_STRING_print_ex; -+ MD4; -+ MD4_Transform; -+ MD4_Final; -+ MD4_Update; -+ MD4_Init; -+ EVP_md4; -+ i2d_PUBKEY_bio; -+ i2d_PUBKEY_fp; -+ d2i_PUBKEY_bio; -+ ASN1_STRING_to_UTF8; -+ BIO_vprintf; -+ BIO_vsnprintf; -+ d2i_PUBKEY_fp; -+ X509_cmp_time; -+ X509_STORE_CTX_set_time; -+ X509_STORE_CTX_get1_issuer; -+ X509_OBJECT_retrieve_match; -+ X509_OBJECT_idx_by_subject; -+ X509_STORE_CTX_set_flags; -+ X509_STORE_CTX_trusted_stack; -+ X509_time_adj; -+ X509_check_issued; -+ ASN1_UTCTIME_cmp_time_t; -+ DES_set_weak_key_flag; -+ DES_check_key; -+ DES_rw_mode; -+ RSA_PKCS1_RSAref; -+ X509_keyid_set1; -+ BIO_next; -+ DSO_METHOD_vms; -+ BIO_f_linebuffer; -+ BN_bntest_rand; -+ OPENSSL_issetugid; -+ BN_rand_range; -+ ERR_load_ENGINE_strings; -+ ENGINE_set_DSA; -+ ENGINE_get_finish_function; -+ ENGINE_get_default_RSA; -+ ENGINE_get_BN_mod_exp; -+ DSA_get_default_openssl_method; -+ ENGINE_set_DH; -+ ENGINE_set_def_BN_mod_exp_crt; -+ ENGINE_set_default_BN_mod_exp_crt; -+ ENGINE_init; -+ DH_get_default_openssl_method; -+ RSA_set_default_openssl_method; -+ ENGINE_finish; -+ ENGINE_load_public_key; -+ ENGINE_get_DH; -+ ENGINE_ctrl; -+ ENGINE_get_init_function; -+ ENGINE_set_init_function; -+ ENGINE_set_default_DSA; -+ ENGINE_get_name; -+ ENGINE_get_last; -+ ENGINE_get_prev; -+ ENGINE_get_default_DH; -+ ENGINE_get_RSA; -+ ENGINE_set_default; -+ ENGINE_get_RAND; -+ ENGINE_get_first; -+ ENGINE_by_id; -+ ENGINE_set_finish_function; -+ ENGINE_get_def_BN_mod_exp_crt; -+ ENGINE_get_default_BN_mod_exp_crt; -+ RSA_get_default_openssl_method; -+ ENGINE_set_RSA; -+ ENGINE_load_private_key; -+ ENGINE_set_default_RAND; -+ ENGINE_set_BN_mod_exp; -+ ENGINE_remove; -+ ENGINE_free; -+ ENGINE_get_BN_mod_exp_crt; -+ ENGINE_get_next; -+ ENGINE_set_name; -+ ENGINE_get_default_DSA; -+ ENGINE_set_default_BN_mod_exp; -+ ENGINE_set_default_RSA; -+ ENGINE_get_default_RAND; -+ ENGINE_get_default_BN_mod_exp; -+ ENGINE_set_RAND; -+ ENGINE_set_id; -+ ENGINE_set_BN_mod_exp_crt; -+ ENGINE_set_default_DH; -+ ENGINE_new; -+ ENGINE_get_id; -+ DSA_set_default_openssl_method; -+ ENGINE_add; -+ DH_set_default_openssl_method; -+ ENGINE_get_DSA; -+ ENGINE_get_ctrl_function; -+ ENGINE_set_ctrl_function; -+ BN_pseudo_rand_range; -+ X509_STORE_CTX_set_verify_cb; -+ ERR_load_COMP_strings; -+ PKCS12_item_decrypt_d2i; -+ ASN1_UTF8STRING_it; -+ ENGINE_unregister_ciphers; -+ ENGINE_get_ciphers; -+ d2i_OCSP_BASICRESP; -+ KRB5_CHECKSUM_it; -+ EC_POINT_add; -+ ASN1_item_ex_i2d; -+ OCSP_CERTID_it; -+ d2i_OCSP_RESPBYTES; -+ X509V3_add1_i2d; -+ PKCS7_ENVELOPE_it; -+ UI_add_input_boolean; -+ ENGINE_unregister_RSA; -+ X509V3_EXT_nconf; -+ ASN1_GENERALSTRING_free; -+ d2i_OCSP_CERTSTATUS; -+ X509_REVOKED_set_serialNumber; -+ X509_print_ex; -+ OCSP_ONEREQ_get1_ext_d2i; -+ ENGINE_register_all_RAND; -+ ENGINE_load_dynamic; -+ PBKDF2PARAM_it; -+ EXTENDED_KEY_USAGE_new; -+ EC_GROUP_clear_free; -+ OCSP_sendreq_bio; -+ ASN1_item_digest; -+ OCSP_BASICRESP_delete_ext; -+ OCSP_SIGNATURE_it; -+ X509_CRL_it; -+ OCSP_BASICRESP_add_ext; -+ KRB5_ENCKEY_it; -+ UI_method_set_closer; -+ X509_STORE_set_purpose; -+ i2d_ASN1_GENERALSTRING; -+ OCSP_response_status; -+ i2d_OCSP_SERVICELOC; -+ ENGINE_get_digest_engine; -+ EC_GROUP_set_curve_GFp; -+ OCSP_REQUEST_get_ext_by_OBJ; -+ _ossl_old_des_random_key; -+ ASN1_T61STRING_it; -+ EC_GROUP_method_of; -+ i2d_KRB5_APREQ; -+ _ossl_old_des_encrypt; -+ ASN1_PRINTABLE_new; -+ HMAC_Init_ex; -+ d2i_KRB5_AUTHENT; -+ OCSP_archive_cutoff_new; -+ EC_POINT_set_Jprojective_coordinates_GFp; -+ EC_POINT_set_Jproj_coords_GFp; -+ _ossl_old_des_is_weak_key; -+ OCSP_BASICRESP_get_ext_by_OBJ; -+ EC_POINT_oct2point; -+ OCSP_SINGLERESP_get_ext_count; -+ UI_ctrl; -+ _shadow_DES_rw_mode; -+ asn1_do_adb; -+ ASN1_template_i2d; -+ ENGINE_register_DH; -+ UI_construct_prompt; -+ X509_STORE_set_trust; -+ UI_dup_input_string; -+ d2i_KRB5_APREQ; -+ EVP_MD_CTX_copy_ex; -+ OCSP_request_is_signed; -+ i2d_OCSP_REQINFO; -+ KRB5_ENCKEY_free; -+ OCSP_resp_get0; -+ GENERAL_NAME_it; -+ ASN1_GENERALIZEDTIME_it; -+ X509_STORE_set_flags; -+ EC_POINT_set_compressed_coordinates_GFp; -+ EC_POINT_set_compr_coords_GFp; -+ OCSP_response_status_str; -+ d2i_OCSP_REVOKEDINFO; -+ OCSP_basic_add1_cert; -+ ERR_get_implementation; -+ EVP_CipherFinal_ex; -+ OCSP_CERTSTATUS_new; -+ CRYPTO_cleanup_all_ex_data; -+ OCSP_resp_find; -+ BN_nnmod; -+ X509_CRL_sort; -+ X509_REVOKED_set_revocationDate; -+ ENGINE_register_RAND; -+ OCSP_SERVICELOC_new; -+ EC_POINT_set_affine_coordinates_GFp; -+ EC_POINT_set_affine_coords_GFp; -+ _ossl_old_des_options; -+ SXNET_it; -+ UI_dup_input_boolean; -+ PKCS12_add_CSPName_asc; -+ EC_POINT_is_at_infinity; -+ ENGINE_load_cryptodev; -+ DSO_convert_filename; -+ POLICYQUALINFO_it; -+ ENGINE_register_ciphers; -+ BN_mod_lshift_quick; -+ DSO_set_filename; -+ ASN1_item_free; -+ KRB5_TKTBODY_free; -+ AUTHORITY_KEYID_it; -+ KRB5_APREQBODY_new; -+ X509V3_EXT_REQ_add_nconf; -+ ENGINE_ctrl_cmd_string; -+ i2d_OCSP_RESPDATA; -+ EVP_MD_CTX_init; -+ EXTENDED_KEY_USAGE_free; -+ PKCS7_ATTR_SIGN_it; -+ UI_add_error_string; -+ KRB5_CHECKSUM_free; -+ OCSP_REQUEST_get_ext; -+ ENGINE_load_ubsec; -+ ENGINE_register_all_digests; -+ PKEY_USAGE_PERIOD_it; -+ PKCS12_unpack_authsafes; -+ ASN1_item_unpack; -+ NETSCAPE_SPKAC_it; -+ X509_REVOKED_it; -+ ASN1_STRING_encode; -+ EVP_aes_128_ecb; -+ KRB5_AUTHENT_free; -+ OCSP_BASICRESP_get_ext_by_critical; -+ OCSP_BASICRESP_get_ext_by_crit; -+ OCSP_cert_status_str; -+ d2i_OCSP_REQUEST; -+ UI_dup_info_string; -+ _ossl_old_des_xwhite_in2out; -+ PKCS12_it; -+ OCSP_SINGLERESP_get_ext_by_critical; -+ OCSP_SINGLERESP_get_ext_by_crit; -+ OCSP_CERTSTATUS_free; -+ _ossl_old_des_crypt; -+ ASN1_item_i2d; -+ EVP_DecryptFinal_ex; -+ ENGINE_load_openssl; -+ ENGINE_get_cmd_defns; -+ ENGINE_set_load_privkey_function; -+ ENGINE_set_load_privkey_fn; -+ EVP_EncryptFinal_ex; -+ ENGINE_set_default_digests; -+ X509_get0_pubkey_bitstr; -+ asn1_ex_i2c; -+ ENGINE_register_RSA; -+ ENGINE_unregister_DSA; -+ _ossl_old_des_key_sched; -+ X509_EXTENSION_it; -+ i2d_KRB5_AUTHENT; -+ SXNETID_it; -+ d2i_OCSP_SINGLERESP; -+ EDIPARTYNAME_new; -+ PKCS12_certbag2x509; -+ _ossl_old_des_ofb64_encrypt; -+ d2i_EXTENDED_KEY_USAGE; -+ ERR_print_errors_cb; -+ ENGINE_set_ciphers; -+ d2i_KRB5_APREQBODY; -+ UI_method_get_flusher; -+ X509_PUBKEY_it; -+ _ossl_old_des_enc_read; -+ PKCS7_ENCRYPT_it; -+ i2d_OCSP_RESPONSE; -+ EC_GROUP_get_cofactor; -+ PKCS12_unpack_p7data; -+ d2i_KRB5_AUTHDATA; -+ OCSP_copy_nonce; -+ KRB5_AUTHDATA_new; -+ OCSP_RESPDATA_new; -+ EC_GFp_mont_method; -+ OCSP_REVOKEDINFO_free; -+ UI_get_ex_data; -+ KRB5_APREQBODY_free; -+ EC_GROUP_get0_generator; -+ UI_get_default_method; -+ X509V3_set_nconf; -+ PKCS12_item_i2d_encrypt; -+ X509_add1_ext_i2d; -+ PKCS7_SIGNER_INFO_it; -+ KRB5_PRINCNAME_new; -+ PKCS12_SAFEBAG_it; -+ EC_GROUP_get_order; -+ d2i_OCSP_RESPID; -+ OCSP_request_verify; -+ NCONF_get_number_e; -+ _ossl_old_des_decrypt3; -+ X509_signature_print; -+ OCSP_SINGLERESP_free; -+ ENGINE_load_builtin_engines; -+ i2d_OCSP_ONEREQ; -+ OCSP_REQUEST_add_ext; -+ OCSP_RESPBYTES_new; -+ EVP_MD_CTX_create; -+ OCSP_resp_find_status; -+ X509_ALGOR_it; -+ ASN1_TIME_it; -+ OCSP_request_set1_name; -+ OCSP_ONEREQ_get_ext_count; -+ UI_get0_result; -+ PKCS12_AUTHSAFES_it; -+ EVP_aes_256_ecb; -+ PKCS12_pack_authsafes; -+ ASN1_IA5STRING_it; -+ UI_get_input_flags; -+ EC_GROUP_set_generator; -+ _ossl_old_des_string_to_2keys; -+ OCSP_CERTID_free; -+ X509_CERT_AUX_it; -+ CERTIFICATEPOLICIES_it; -+ _ossl_old_des_ede3_cbc_encrypt; -+ RAND_set_rand_engine; -+ DSO_get_loaded_filename; -+ X509_ATTRIBUTE_it; -+ OCSP_ONEREQ_get_ext_by_NID; -+ PKCS12_decrypt_skey; -+ KRB5_AUTHENT_it; -+ UI_dup_error_string; -+ RSAPublicKey_it; -+ i2d_OCSP_REQUEST; -+ PKCS12_x509crl2certbag; -+ OCSP_SERVICELOC_it; -+ ASN1_item_sign; -+ X509_CRL_set_issuer_name; -+ OBJ_NAME_do_all_sorted; -+ i2d_OCSP_BASICRESP; -+ i2d_OCSP_RESPBYTES; -+ PKCS12_unpack_p7encdata; -+ HMAC_CTX_init; -+ ENGINE_get_digest; -+ OCSP_RESPONSE_print; -+ KRB5_TKTBODY_it; -+ ACCESS_DESCRIPTION_it; -+ PKCS7_ISSUER_AND_SERIAL_it; -+ PBE2PARAM_it; -+ PKCS12_certbag2x509crl; -+ PKCS7_SIGNED_it; -+ ENGINE_get_cipher; -+ i2d_OCSP_CRLID; -+ OCSP_SINGLERESP_new; -+ ENGINE_cmd_is_executable; -+ RSA_up_ref; -+ ASN1_GENERALSTRING_it; -+ ENGINE_register_DSA; -+ X509V3_EXT_add_nconf_sk; -+ ENGINE_set_load_pubkey_function; -+ PKCS8_decrypt; -+ PEM_bytes_read_bio; -+ DIRECTORYSTRING_it; -+ d2i_OCSP_CRLID; -+ EC_POINT_is_on_curve; -+ CRYPTO_set_locked_mem_ex_functions; -+ CRYPTO_set_locked_mem_ex_funcs; -+ d2i_KRB5_CHECKSUM; -+ ASN1_item_dup; -+ X509_it; -+ BN_mod_add; -+ KRB5_AUTHDATA_free; -+ _ossl_old_des_cbc_cksum; -+ ASN1_item_verify; -+ CRYPTO_set_mem_ex_functions; -+ EC_POINT_get_Jprojective_coordinates_GFp; -+ EC_POINT_get_Jproj_coords_GFp; -+ ZLONG_it; -+ CRYPTO_get_locked_mem_ex_functions; -+ CRYPTO_get_locked_mem_ex_funcs; -+ ASN1_TIME_check; -+ UI_get0_user_data; -+ HMAC_CTX_cleanup; -+ DSA_up_ref; -+ _ossl_old_des_ede3_cfb64_encrypt; -+ _ossl_odes_ede3_cfb64_encrypt; -+ ASN1_BMPSTRING_it; -+ ASN1_tag2bit; -+ UI_method_set_flusher; -+ X509_ocspid_print; -+ KRB5_ENCDATA_it; -+ ENGINE_get_load_pubkey_function; -+ UI_add_user_data; -+ OCSP_REQUEST_delete_ext; -+ UI_get_method; -+ OCSP_ONEREQ_free; -+ ASN1_PRINTABLESTRING_it; -+ X509_CRL_set_nextUpdate; -+ OCSP_REQUEST_it; -+ OCSP_BASICRESP_it; -+ AES_ecb_encrypt; -+ BN_mod_sqr; -+ NETSCAPE_CERT_SEQUENCE_it; -+ GENERAL_NAMES_it; -+ AUTHORITY_INFO_ACCESS_it; -+ ASN1_FBOOLEAN_it; -+ UI_set_ex_data; -+ _ossl_old_des_string_to_key; -+ ENGINE_register_all_RSA; -+ d2i_KRB5_PRINCNAME; -+ OCSP_RESPBYTES_it; -+ X509_CINF_it; -+ ENGINE_unregister_digests; -+ d2i_EDIPARTYNAME; -+ d2i_OCSP_SERVICELOC; -+ ENGINE_get_digests; -+ _ossl_old_des_set_odd_parity; -+ OCSP_RESPDATA_free; -+ d2i_KRB5_TICKET; -+ OTHERNAME_it; -+ EVP_MD_CTX_cleanup; -+ d2i_ASN1_GENERALSTRING; -+ X509_CRL_set_version; -+ BN_mod_sub; -+ OCSP_SINGLERESP_get_ext_by_NID; -+ ENGINE_get_ex_new_index; -+ OCSP_REQUEST_free; -+ OCSP_REQUEST_add1_ext_i2d; -+ X509_VAL_it; -+ EC_POINTs_make_affine; -+ EC_POINT_mul; -+ X509V3_EXT_add_nconf; -+ X509_TRUST_set; -+ X509_CRL_add1_ext_i2d; -+ _ossl_old_des_fcrypt; -+ DISPLAYTEXT_it; -+ X509_CRL_set_lastUpdate; -+ OCSP_BASICRESP_free; -+ OCSP_BASICRESP_add1_ext_i2d; -+ d2i_KRB5_AUTHENTBODY; -+ CRYPTO_set_ex_data_implementation; -+ CRYPTO_set_ex_data_impl; -+ KRB5_ENCDATA_new; -+ DSO_up_ref; -+ OCSP_crl_reason_str; -+ UI_get0_result_string; -+ ASN1_GENERALSTRING_new; -+ X509_SIG_it; -+ ERR_set_implementation; -+ ERR_load_EC_strings; -+ UI_get0_action_string; -+ OCSP_ONEREQ_get_ext; -+ EC_POINT_method_of; -+ i2d_KRB5_APREQBODY; -+ _ossl_old_des_ecb3_encrypt; -+ CRYPTO_get_mem_ex_functions; -+ ENGINE_get_ex_data; -+ UI_destroy_method; -+ ASN1_item_i2d_bio; -+ OCSP_ONEREQ_get_ext_by_OBJ; -+ ASN1_primitive_new; -+ ASN1_PRINTABLE_it; -+ EVP_aes_192_ecb; -+ OCSP_SIGNATURE_new; -+ LONG_it; -+ ASN1_VISIBLESTRING_it; -+ OCSP_SINGLERESP_add1_ext_i2d; -+ d2i_OCSP_CERTID; -+ ASN1_item_d2i_fp; -+ CRL_DIST_POINTS_it; -+ GENERAL_NAME_print; -+ OCSP_SINGLERESP_delete_ext; -+ PKCS12_SAFEBAGS_it; -+ d2i_OCSP_SIGNATURE; -+ OCSP_request_add1_nonce; -+ ENGINE_set_cmd_defns; -+ OCSP_SERVICELOC_free; -+ EC_GROUP_free; -+ ASN1_BIT_STRING_it; -+ X509_REQ_it; -+ _ossl_old_des_cbc_encrypt; -+ ERR_unload_strings; -+ PKCS7_SIGN_ENVELOPE_it; -+ EDIPARTYNAME_free; -+ OCSP_REQINFO_free; -+ EC_GROUP_new_curve_GFp; -+ OCSP_REQUEST_get1_ext_d2i; -+ PKCS12_item_pack_safebag; -+ asn1_ex_c2i; -+ ENGINE_register_digests; -+ i2d_OCSP_REVOKEDINFO; -+ asn1_enc_restore; -+ UI_free; -+ UI_new_method; -+ EVP_EncryptInit_ex; -+ X509_pubkey_digest; -+ EC_POINT_invert; -+ OCSP_basic_sign; -+ i2d_OCSP_RESPID; -+ OCSP_check_nonce; -+ ENGINE_ctrl_cmd; -+ d2i_KRB5_ENCKEY; -+ OCSP_parse_url; -+ OCSP_SINGLERESP_get_ext; -+ OCSP_CRLID_free; -+ OCSP_BASICRESP_get1_ext_d2i; -+ RSAPrivateKey_it; -+ ENGINE_register_all_DH; -+ i2d_EDIPARTYNAME; -+ EC_POINT_get_affine_coordinates_GFp; -+ EC_POINT_get_affine_coords_GFp; -+ OCSP_CRLID_new; -+ ENGINE_get_flags; -+ OCSP_ONEREQ_it; -+ UI_process; -+ ASN1_INTEGER_it; -+ EVP_CipherInit_ex; -+ UI_get_string_type; -+ ENGINE_unregister_DH; -+ ENGINE_register_all_DSA; -+ OCSP_ONEREQ_get_ext_by_critical; -+ bn_dup_expand; -+ OCSP_cert_id_new; -+ BASIC_CONSTRAINTS_it; -+ BN_mod_add_quick; -+ EC_POINT_new; -+ EVP_MD_CTX_destroy; -+ OCSP_RESPBYTES_free; -+ EVP_aes_128_cbc; -+ OCSP_SINGLERESP_get1_ext_d2i; -+ EC_POINT_free; -+ DH_up_ref; -+ X509_NAME_ENTRY_it; -+ UI_get_ex_new_index; -+ BN_mod_sub_quick; -+ OCSP_ONEREQ_add_ext; -+ OCSP_request_sign; -+ EVP_DigestFinal_ex; -+ ENGINE_set_digests; -+ OCSP_id_issuer_cmp; -+ OBJ_NAME_do_all; -+ EC_POINTs_mul; -+ ENGINE_register_complete; -+ X509V3_EXT_nconf_nid; -+ ASN1_SEQUENCE_it; -+ UI_set_default_method; -+ RAND_query_egd_bytes; -+ UI_method_get_writer; -+ UI_OpenSSL; -+ PEM_def_callback; -+ ENGINE_cleanup; -+ DIST_POINT_it; -+ OCSP_SINGLERESP_it; -+ d2i_KRB5_TKTBODY; -+ EC_POINT_cmp; -+ OCSP_REVOKEDINFO_new; -+ i2d_OCSP_CERTSTATUS; -+ OCSP_basic_add1_nonce; -+ ASN1_item_ex_d2i; -+ BN_mod_lshift1_quick; -+ UI_set_method; -+ OCSP_id_get0_info; -+ BN_mod_sqrt; -+ EC_GROUP_copy; -+ KRB5_ENCDATA_free; -+ _ossl_old_des_cfb_encrypt; -+ OCSP_SINGLERESP_get_ext_by_OBJ; -+ OCSP_cert_to_id; -+ OCSP_RESPID_new; -+ OCSP_RESPDATA_it; -+ d2i_OCSP_RESPDATA; -+ ENGINE_register_all_complete; -+ OCSP_check_validity; -+ PKCS12_BAGS_it; -+ OCSP_url_svcloc_new; -+ ASN1_template_free; -+ OCSP_SINGLERESP_add_ext; -+ KRB5_AUTHENTBODY_it; -+ X509_supported_extension; -+ i2d_KRB5_AUTHDATA; -+ UI_method_get_opener; -+ ENGINE_set_ex_data; -+ OCSP_REQUEST_print; -+ CBIGNUM_it; -+ KRB5_TICKET_new; -+ KRB5_APREQ_new; -+ EC_GROUP_get_curve_GFp; -+ KRB5_ENCKEY_new; -+ ASN1_template_d2i; -+ _ossl_old_des_quad_cksum; -+ OCSP_single_get0_status; -+ BN_swap; -+ POLICYINFO_it; -+ ENGINE_set_destroy_function; -+ asn1_enc_free; -+ OCSP_RESPID_it; -+ EC_GROUP_new; -+ EVP_aes_256_cbc; -+ i2d_KRB5_PRINCNAME; -+ _ossl_old_des_encrypt2; -+ _ossl_old_des_encrypt3; -+ PKCS8_PRIV_KEY_INFO_it; -+ OCSP_REQINFO_it; -+ PBEPARAM_it; -+ KRB5_AUTHENTBODY_new; -+ X509_CRL_add0_revoked; -+ EDIPARTYNAME_it; -+ NETSCAPE_SPKI_it; -+ UI_get0_test_string; -+ ENGINE_get_cipher_engine; -+ ENGINE_register_all_ciphers; -+ EC_POINT_copy; -+ BN_kronecker; -+ _ossl_old_des_ede3_ofb64_encrypt; -+ _ossl_odes_ede3_ofb64_encrypt; -+ UI_method_get_reader; -+ OCSP_BASICRESP_get_ext_count; -+ ASN1_ENUMERATED_it; -+ UI_set_result; -+ i2d_KRB5_TICKET; -+ X509_print_ex_fp; -+ EVP_CIPHER_CTX_set_padding; -+ d2i_OCSP_RESPONSE; -+ ASN1_UTCTIME_it; -+ _ossl_old_des_enc_write; -+ OCSP_RESPONSE_new; -+ AES_set_encrypt_key; -+ OCSP_resp_count; -+ KRB5_CHECKSUM_new; -+ ENGINE_load_cswift; -+ OCSP_onereq_get0_id; -+ ENGINE_set_default_ciphers; -+ NOTICEREF_it; -+ X509V3_EXT_CRL_add_nconf; -+ OCSP_REVOKEDINFO_it; -+ AES_encrypt; -+ OCSP_REQUEST_new; -+ ASN1_ANY_it; -+ CRYPTO_ex_data_new_class; -+ _ossl_old_des_ncbc_encrypt; -+ i2d_KRB5_TKTBODY; -+ EC_POINT_clear_free; -+ AES_decrypt; -+ asn1_enc_init; -+ UI_get_result_maxsize; -+ OCSP_CERTID_new; -+ ENGINE_unregister_RAND; -+ UI_method_get_closer; -+ d2i_KRB5_ENCDATA; -+ OCSP_request_onereq_count; -+ OCSP_basic_verify; -+ KRB5_AUTHENTBODY_free; -+ ASN1_item_d2i; -+ ASN1_primitive_free; -+ i2d_EXTENDED_KEY_USAGE; -+ i2d_OCSP_SIGNATURE; -+ asn1_enc_save; -+ ENGINE_load_nuron; -+ _ossl_old_des_pcbc_encrypt; -+ PKCS12_MAC_DATA_it; -+ OCSP_accept_responses_new; -+ asn1_do_lock; -+ PKCS7_ATTR_VERIFY_it; -+ KRB5_APREQBODY_it; -+ i2d_OCSP_SINGLERESP; -+ ASN1_item_ex_new; -+ UI_add_verify_string; -+ _ossl_old_des_set_key; -+ KRB5_PRINCNAME_it; -+ EVP_DecryptInit_ex; -+ i2d_OCSP_CERTID; -+ ASN1_item_d2i_bio; -+ EC_POINT_dbl; -+ asn1_get_choice_selector; -+ i2d_KRB5_CHECKSUM; -+ ENGINE_set_table_flags; -+ AES_options; -+ ENGINE_load_chil; -+ OCSP_id_cmp; -+ OCSP_BASICRESP_new; -+ OCSP_REQUEST_get_ext_by_NID; -+ KRB5_APREQ_it; -+ ENGINE_get_destroy_function; -+ CONF_set_nconf; -+ ASN1_PRINTABLE_free; -+ OCSP_BASICRESP_get_ext_by_NID; -+ DIST_POINT_NAME_it; -+ X509V3_extensions_print; -+ _ossl_old_des_cfb64_encrypt; -+ X509_REVOKED_add1_ext_i2d; -+ _ossl_old_des_ofb_encrypt; -+ KRB5_TKTBODY_new; -+ ASN1_OCTET_STRING_it; -+ ERR_load_UI_strings; -+ i2d_KRB5_ENCKEY; -+ ASN1_template_new; -+ OCSP_SIGNATURE_free; -+ ASN1_item_i2d_fp; -+ KRB5_PRINCNAME_free; -+ PKCS7_RECIP_INFO_it; -+ EXTENDED_KEY_USAGE_it; -+ EC_GFp_simple_method; -+ EC_GROUP_precompute_mult; -+ OCSP_request_onereq_get0; -+ UI_method_set_writer; -+ KRB5_AUTHENT_new; -+ X509_CRL_INFO_it; -+ DSO_set_name_converter; -+ AES_set_decrypt_key; -+ PKCS7_DIGEST_it; -+ PKCS12_x5092certbag; -+ EVP_DigestInit_ex; -+ i2a_ACCESS_DESCRIPTION; -+ OCSP_RESPONSE_it; -+ PKCS7_ENC_CONTENT_it; -+ OCSP_request_add0_id; -+ EC_POINT_make_affine; -+ DSO_get_filename; -+ OCSP_CERTSTATUS_it; -+ OCSP_request_add1_cert; -+ UI_get0_output_string; -+ UI_dup_verify_string; -+ BN_mod_lshift; -+ KRB5_AUTHDATA_it; -+ asn1_set_choice_selector; -+ OCSP_basic_add1_status; -+ OCSP_RESPID_free; -+ asn1_get_field_ptr; -+ UI_add_input_string; -+ OCSP_CRLID_it; -+ i2d_KRB5_AUTHENTBODY; -+ OCSP_REQUEST_get_ext_count; -+ ENGINE_load_atalla; -+ X509_NAME_it; -+ USERNOTICE_it; -+ OCSP_REQINFO_new; -+ OCSP_BASICRESP_get_ext; -+ CRYPTO_get_ex_data_implementation; -+ CRYPTO_get_ex_data_impl; -+ ASN1_item_pack; -+ i2d_KRB5_ENCDATA; -+ X509_PURPOSE_set; -+ X509_REQ_INFO_it; -+ UI_method_set_opener; -+ ASN1_item_ex_free; -+ ASN1_BOOLEAN_it; -+ ENGINE_get_table_flags; -+ UI_create_method; -+ OCSP_ONEREQ_add1_ext_i2d; -+ _shadow_DES_check_key; -+ d2i_OCSP_REQINFO; -+ UI_add_info_string; -+ UI_get_result_minsize; -+ ASN1_NULL_it; -+ BN_mod_lshift1; -+ d2i_OCSP_ONEREQ; -+ OCSP_ONEREQ_new; -+ KRB5_TICKET_it; -+ EVP_aes_192_cbc; -+ KRB5_TICKET_free; -+ UI_new; -+ OCSP_response_create; -+ _ossl_old_des_xcbc_encrypt; -+ PKCS7_it; -+ OCSP_REQUEST_get_ext_by_critical; -+ OCSP_REQUEST_get_ext_by_crit; -+ ENGINE_set_flags; -+ _ossl_old_des_ecb_encrypt; -+ OCSP_response_get1_basic; -+ EVP_Digest; -+ OCSP_ONEREQ_delete_ext; -+ ASN1_TBOOLEAN_it; -+ ASN1_item_new; -+ ASN1_TIME_to_generalizedtime; -+ BIGNUM_it; -+ AES_cbc_encrypt; -+ ENGINE_get_load_privkey_function; -+ ENGINE_get_load_privkey_fn; -+ OCSP_RESPONSE_free; -+ UI_method_set_reader; -+ i2d_ASN1_T61STRING; -+ EC_POINT_set_to_infinity; -+ ERR_load_OCSP_strings; -+ EC_POINT_point2oct; -+ KRB5_APREQ_free; -+ ASN1_OBJECT_it; -+ OCSP_crlID_new; -+ OCSP_crlID2_new; -+ CONF_modules_load_file; -+ CONF_imodule_set_usr_data; -+ ENGINE_set_default_string; -+ CONF_module_get_usr_data; -+ ASN1_add_oid_module; -+ CONF_modules_finish; -+ OPENSSL_config; -+ CONF_modules_unload; -+ CONF_imodule_get_value; -+ CONF_module_set_usr_data; -+ CONF_parse_list; -+ CONF_module_add; -+ CONF_get1_default_config_file; -+ CONF_imodule_get_flags; -+ CONF_imodule_get_module; -+ CONF_modules_load; -+ CONF_imodule_get_name; -+ ERR_peek_top_error; -+ CONF_imodule_get_usr_data; -+ CONF_imodule_set_flags; -+ ENGINE_add_conf_module; -+ ERR_peek_last_error_line; -+ ERR_peek_last_error_line_data; -+ ERR_peek_last_error; -+ DES_read_2passwords; -+ DES_read_password; -+ UI_UTIL_read_pw; -+ UI_UTIL_read_pw_string; -+ ENGINE_load_aep; -+ ENGINE_load_sureware; -+ OPENSSL_add_all_algorithms_noconf; -+ OPENSSL_add_all_algo_noconf; -+ OPENSSL_add_all_algorithms_conf; -+ OPENSSL_add_all_algo_conf; -+ OPENSSL_load_builtin_modules; -+ AES_ofb128_encrypt; -+ AES_ctr128_encrypt; -+ AES_cfb128_encrypt; -+ ENGINE_load_4758cca; -+ _ossl_096_des_random_seed; -+ EVP_aes_256_ofb; -+ EVP_aes_192_ofb; -+ EVP_aes_128_cfb128; -+ EVP_aes_256_cfb128; -+ EVP_aes_128_ofb; -+ EVP_aes_192_cfb128; -+ CONF_modules_free; -+ NCONF_default; -+ OPENSSL_no_config; -+ NCONF_WIN32; -+ ASN1_UNIVERSALSTRING_new; -+ EVP_des_ede_ecb; -+ i2d_ASN1_UNIVERSALSTRING; -+ ASN1_UNIVERSALSTRING_free; -+ ASN1_UNIVERSALSTRING_it; -+ d2i_ASN1_UNIVERSALSTRING; -+ EVP_des_ede3_ecb; -+ X509_REQ_print_ex; -+ ENGINE_up_ref; -+ BUF_MEM_grow_clean; -+ CRYPTO_realloc_clean; -+ BUF_strlcat; -+ BIO_indent; -+ BUF_strlcpy; -+ OpenSSLDie; -+ OPENSSL_cleanse; -+ ENGINE_setup_bsd_cryptodev; -+ ERR_release_err_state_table; -+ EVP_aes_128_cfb8; -+ FIPS_corrupt_rsa; -+ FIPS_selftest_des; -+ EVP_aes_128_cfb1; -+ EVP_aes_192_cfb8; -+ FIPS_mode_set; -+ FIPS_selftest_dsa; -+ EVP_aes_256_cfb8; -+ FIPS_allow_md5; -+ DES_ede3_cfb_encrypt; -+ EVP_des_ede3_cfb8; -+ FIPS_rand_seeded; -+ AES_cfbr_encrypt_block; -+ AES_cfb8_encrypt; -+ FIPS_rand_seed; -+ FIPS_corrupt_des; -+ EVP_aes_192_cfb1; -+ FIPS_selftest_aes; -+ FIPS_set_prng_key; -+ EVP_des_cfb8; -+ FIPS_corrupt_dsa; -+ FIPS_test_mode; -+ FIPS_rand_method; -+ EVP_aes_256_cfb1; -+ ERR_load_FIPS_strings; -+ FIPS_corrupt_aes; -+ FIPS_selftest_sha1; -+ FIPS_selftest_rsa; -+ FIPS_corrupt_sha1; -+ EVP_des_cfb1; -+ FIPS_dsa_check; -+ AES_cfb1_encrypt; -+ EVP_des_ede3_cfb1; -+ FIPS_rand_check; -+ FIPS_md5_allowed; -+ FIPS_mode; -+ FIPS_selftest_failed; -+ sk_is_sorted; -+ X509_check_ca; -+ HMAC_CTX_set_flags; -+ d2i_PROXY_CERT_INFO_EXTENSION; -+ PROXY_POLICY_it; -+ i2d_PROXY_POLICY; -+ i2d_PROXY_CERT_INFO_EXTENSION; -+ d2i_PROXY_POLICY; -+ PROXY_CERT_INFO_EXTENSION_new; -+ PROXY_CERT_INFO_EXTENSION_free; -+ PROXY_CERT_INFO_EXTENSION_it; -+ PROXY_POLICY_free; -+ PROXY_POLICY_new; -+ BN_MONT_CTX_set_locked; -+ FIPS_selftest_rng; -+ EVP_sha384; -+ EVP_sha512; -+ EVP_sha224; -+ EVP_sha256; -+ FIPS_selftest_hmac; -+ FIPS_corrupt_rng; -+ BN_mod_exp_mont_consttime; -+ RSA_X931_hash_id; -+ RSA_padding_check_X931; -+ RSA_verify_PKCS1_PSS; -+ RSA_padding_add_X931; -+ RSA_padding_add_PKCS1_PSS; -+ PKCS1_MGF1; -+ BN_X931_generate_Xpq; -+ RSA_X931_generate_key; -+ BN_X931_derive_prime; -+ BN_X931_generate_prime; -+ RSA_X931_derive; -+ BIO_new_dgram; -+ BN_get0_nist_prime_384; -+ ERR_set_mark; -+ X509_STORE_CTX_set0_crls; -+ ENGINE_set_STORE; -+ ENGINE_register_ECDSA; -+ STORE_meth_set_list_start_fn; -+ STORE_method_set_list_start_function; -+ BN_BLINDING_invert_ex; -+ NAME_CONSTRAINTS_free; -+ STORE_ATTR_INFO_set_number; -+ BN_BLINDING_get_thread_id; -+ X509_STORE_CTX_set0_param; -+ POLICY_MAPPING_it; -+ STORE_parse_attrs_start; -+ POLICY_CONSTRAINTS_free; -+ EVP_PKEY_add1_attr_by_NID; -+ BN_nist_mod_192; -+ EC_GROUP_get_trinomial_basis; -+ STORE_set_method; -+ GENERAL_SUBTREE_free; -+ NAME_CONSTRAINTS_it; -+ ECDH_get_default_method; -+ PKCS12_add_safe; -+ EC_KEY_new_by_curve_name; -+ STORE_meth_get_update_store_fn; -+ STORE_method_get_update_store_function; -+ ENGINE_register_ECDH; -+ SHA512_Update; -+ i2d_ECPrivateKey; -+ BN_get0_nist_prime_192; -+ STORE_modify_certificate; -+ EC_POINT_set_affine_coordinates_GF2m; -+ EC_POINT_set_affine_coords_GF2m; -+ BN_GF2m_mod_exp_arr; -+ STORE_ATTR_INFO_modify_number; -+ X509_keyid_get0; -+ ENGINE_load_gmp; -+ pitem_new; -+ BN_GF2m_mod_mul_arr; -+ STORE_list_public_key_endp; -+ o2i_ECPublicKey; -+ EC_KEY_copy; -+ BIO_dump_fp; -+ X509_policy_node_get0_parent; -+ EC_GROUP_check_discriminant; -+ i2o_ECPublicKey; -+ EC_KEY_precompute_mult; -+ a2i_IPADDRESS; -+ STORE_meth_set_initialise_fn; -+ STORE_method_set_initialise_function; -+ X509_STORE_CTX_set_depth; -+ X509_VERIFY_PARAM_inherit; -+ EC_POINT_point2bn; -+ STORE_ATTR_INFO_set_dn; -+ X509_policy_tree_get0_policies; -+ EC_GROUP_new_curve_GF2m; -+ STORE_destroy_method; -+ ENGINE_unregister_STORE; -+ EVP_PKEY_get1_EC_KEY; -+ STORE_ATTR_INFO_get0_number; -+ ENGINE_get_default_ECDH; -+ EC_KEY_get_conv_form; -+ ASN1_OCTET_STRING_NDEF_it; -+ STORE_delete_public_key; -+ STORE_get_public_key; -+ STORE_modify_arbitrary; -+ ENGINE_get_static_state; -+ pqueue_iterator; -+ ECDSA_SIG_new; -+ OPENSSL_DIR_end; -+ BN_GF2m_mod_sqr; -+ EC_POINT_bn2point; -+ X509_VERIFY_PARAM_set_depth; -+ EC_KEY_set_asn1_flag; -+ STORE_get_method; -+ EC_KEY_get_key_method_data; -+ ECDSA_sign_ex; -+ STORE_parse_attrs_end; -+ EC_GROUP_get_point_conversion_form; -+ EC_GROUP_get_point_conv_form; -+ STORE_method_set_store_function; -+ STORE_ATTR_INFO_in; -+ PEM_read_bio_ECPKParameters; -+ EC_GROUP_get_pentanomial_basis; -+ EVP_PKEY_add1_attr_by_txt; -+ BN_BLINDING_set_flags; -+ X509_VERIFY_PARAM_set1_policies; -+ X509_VERIFY_PARAM_set1_name; -+ X509_VERIFY_PARAM_set_purpose; -+ STORE_get_number; -+ ECDSA_sign_setup; -+ BN_GF2m_mod_solve_quad_arr; -+ EC_KEY_up_ref; -+ POLICY_MAPPING_free; -+ BN_GF2m_mod_div; -+ X509_VERIFY_PARAM_set_flags; -+ EC_KEY_free; -+ STORE_meth_set_list_next_fn; -+ STORE_method_set_list_next_function; -+ PEM_write_bio_ECPrivateKey; -+ d2i_EC_PUBKEY; -+ STORE_meth_get_generate_fn; -+ STORE_method_get_generate_function; -+ STORE_meth_set_list_end_fn; -+ STORE_method_set_list_end_function; -+ pqueue_print; -+ EC_GROUP_have_precompute_mult; -+ EC_KEY_print_fp; -+ BN_GF2m_mod_arr; -+ PEM_write_bio_X509_CERT_PAIR; -+ EVP_PKEY_cmp; -+ X509_policy_level_node_count; -+ STORE_new_engine; -+ STORE_list_public_key_start; -+ X509_VERIFY_PARAM_new; -+ ECDH_get_ex_data; -+ EVP_PKEY_get_attr; -+ ECDSA_do_sign; -+ ENGINE_unregister_ECDH; -+ ECDH_OpenSSL; -+ EC_KEY_set_conv_form; -+ EC_POINT_dup; -+ GENERAL_SUBTREE_new; -+ STORE_list_crl_endp; -+ EC_get_builtin_curves; -+ X509_policy_node_get0_qualifiers; -+ X509_pcy_node_get0_qualifiers; -+ STORE_list_crl_end; -+ EVP_PKEY_set1_EC_KEY; -+ BN_GF2m_mod_sqrt_arr; -+ i2d_ECPrivateKey_bio; -+ ECPKParameters_print_fp; -+ pqueue_find; -+ ECDSA_SIG_free; -+ PEM_write_bio_ECPKParameters; -+ STORE_method_set_ctrl_function; -+ STORE_list_public_key_end; -+ EC_KEY_set_private_key; -+ pqueue_peek; -+ STORE_get_arbitrary; -+ STORE_store_crl; -+ X509_policy_node_get0_policy; -+ PKCS12_add_safes; -+ BN_BLINDING_convert_ex; -+ X509_policy_tree_free; -+ OPENSSL_ia32cap_loc; -+ BN_GF2m_poly2arr; -+ STORE_ctrl; -+ STORE_ATTR_INFO_compare; -+ BN_get0_nist_prime_224; -+ i2d_ECParameters; -+ i2d_ECPKParameters; -+ BN_GENCB_call; -+ d2i_ECPKParameters; -+ STORE_meth_set_generate_fn; -+ STORE_method_set_generate_function; -+ ENGINE_set_ECDH; -+ NAME_CONSTRAINTS_new; -+ SHA256_Init; -+ EC_KEY_get0_public_key; -+ PEM_write_bio_EC_PUBKEY; -+ STORE_ATTR_INFO_set_cstr; -+ STORE_list_crl_next; -+ STORE_ATTR_INFO_in_range; -+ ECParameters_print; -+ STORE_meth_set_delete_fn; -+ STORE_method_set_delete_function; -+ STORE_list_certificate_next; -+ ASN1_generate_nconf; -+ BUF_memdup; -+ BN_GF2m_mod_mul; -+ STORE_meth_get_list_next_fn; -+ STORE_method_get_list_next_function; -+ STORE_ATTR_INFO_get0_dn; -+ STORE_list_private_key_next; -+ EC_GROUP_set_seed; -+ X509_VERIFY_PARAM_set_trust; -+ STORE_ATTR_INFO_free; -+ STORE_get_private_key; -+ EVP_PKEY_get_attr_count; -+ STORE_ATTR_INFO_new; -+ EC_GROUP_get_curve_GF2m; -+ STORE_meth_set_revoke_fn; -+ STORE_method_set_revoke_function; -+ STORE_store_number; -+ BN_is_prime_ex; -+ STORE_revoke_public_key; -+ X509_STORE_CTX_get0_param; -+ STORE_delete_arbitrary; -+ PEM_read_X509_CERT_PAIR; -+ X509_STORE_set_depth; -+ ECDSA_get_ex_data; -+ SHA224; -+ BIO_dump_indent_fp; -+ EC_KEY_set_group; -+ BUF_strndup; -+ STORE_list_certificate_start; -+ BN_GF2m_mod; -+ X509_REQ_check_private_key; -+ EC_GROUP_get_seed_len; -+ ERR_load_STORE_strings; -+ PEM_read_bio_EC_PUBKEY; -+ STORE_list_private_key_end; -+ i2d_EC_PUBKEY; -+ ECDSA_get_default_method; -+ ASN1_put_eoc; -+ X509_STORE_CTX_get_explicit_policy; -+ X509_STORE_CTX_get_expl_policy; -+ X509_VERIFY_PARAM_table_cleanup; -+ STORE_modify_private_key; -+ X509_VERIFY_PARAM_free; -+ EC_METHOD_get_field_type; -+ EC_GFp_nist_method; -+ STORE_meth_set_modify_fn; -+ STORE_method_set_modify_function; -+ STORE_parse_attrs_next; -+ ENGINE_load_padlock; -+ EC_GROUP_set_curve_name; -+ X509_CERT_PAIR_it; -+ STORE_meth_get_revoke_fn; -+ STORE_method_get_revoke_function; -+ STORE_method_set_get_function; -+ STORE_modify_number; -+ STORE_method_get_store_function; -+ STORE_store_private_key; -+ BN_GF2m_mod_sqr_arr; -+ RSA_setup_blinding; -+ BIO_s_datagram; -+ STORE_Memory; -+ sk_find_ex; -+ EC_GROUP_set_curve_GF2m; -+ ENGINE_set_default_ECDSA; -+ POLICY_CONSTRAINTS_new; -+ BN_GF2m_mod_sqrt; -+ ECDH_set_default_method; -+ EC_KEY_generate_key; -+ SHA384_Update; -+ BN_GF2m_arr2poly; -+ STORE_method_get_get_function; -+ STORE_meth_set_cleanup_fn; -+ STORE_method_set_cleanup_function; -+ EC_GROUP_check; -+ d2i_ECPrivateKey_bio; -+ EC_KEY_insert_key_method_data; -+ STORE_meth_get_lock_store_fn; -+ STORE_method_get_lock_store_function; -+ X509_VERIFY_PARAM_get_depth; -+ SHA224_Final; -+ STORE_meth_set_update_store_fn; -+ STORE_method_set_update_store_function; -+ SHA224_Update; -+ d2i_ECPrivateKey; -+ ASN1_item_ndef_i2d; -+ STORE_delete_private_key; -+ ERR_pop_to_mark; -+ ENGINE_register_all_STORE; -+ X509_policy_level_get0_node; -+ i2d_PKCS7_NDEF; -+ EC_GROUP_get_degree; -+ ASN1_generate_v3; -+ STORE_ATTR_INFO_modify_cstr; -+ X509_policy_tree_level_count; -+ BN_GF2m_add; -+ EC_KEY_get0_group; -+ STORE_generate_crl; -+ STORE_store_public_key; -+ X509_CERT_PAIR_free; -+ STORE_revoke_private_key; -+ BN_nist_mod_224; -+ SHA512_Final; -+ STORE_ATTR_INFO_modify_dn; -+ STORE_meth_get_initialise_fn; -+ STORE_method_get_initialise_function; -+ STORE_delete_number; -+ i2d_EC_PUBKEY_bio; -+ BIO_dgram_non_fatal_error; -+ EC_GROUP_get_asn1_flag; -+ STORE_ATTR_INFO_in_ex; -+ STORE_list_crl_start; -+ ECDH_get_ex_new_index; -+ STORE_meth_get_modify_fn; -+ STORE_method_get_modify_function; -+ v2i_ASN1_BIT_STRING; -+ STORE_store_certificate; -+ OBJ_bsearch_ex; -+ X509_STORE_CTX_set_default; -+ STORE_ATTR_INFO_set_sha1str; -+ BN_GF2m_mod_inv; -+ BN_GF2m_mod_exp; -+ STORE_modify_public_key; -+ STORE_meth_get_list_start_fn; -+ STORE_method_get_list_start_function; -+ EC_GROUP_get0_seed; -+ STORE_store_arbitrary; -+ STORE_meth_set_unlock_store_fn; -+ STORE_method_set_unlock_store_function; -+ BN_GF2m_mod_div_arr; -+ ENGINE_set_ECDSA; -+ STORE_create_method; -+ ECPKParameters_print; -+ EC_KEY_get0_private_key; -+ PEM_write_EC_PUBKEY; -+ X509_VERIFY_PARAM_set1; -+ ECDH_set_method; -+ v2i_GENERAL_NAME_ex; -+ ECDH_set_ex_data; -+ STORE_generate_key; -+ BN_nist_mod_521; -+ X509_policy_tree_get0_level; -+ EC_GROUP_set_point_conversion_form; -+ EC_GROUP_set_point_conv_form; -+ PEM_read_EC_PUBKEY; -+ i2d_ECDSA_SIG; -+ ECDSA_OpenSSL; -+ STORE_delete_crl; -+ EC_KEY_get_enc_flags; -+ ASN1_const_check_infinite_end; -+ EVP_PKEY_delete_attr; -+ ECDSA_set_default_method; -+ EC_POINT_set_compressed_coordinates_GF2m; -+ EC_POINT_set_compr_coords_GF2m; -+ EC_GROUP_cmp; -+ STORE_revoke_certificate; -+ BN_get0_nist_prime_256; -+ STORE_meth_get_delete_fn; -+ STORE_method_get_delete_function; -+ SHA224_Init; -+ PEM_read_ECPrivateKey; -+ SHA512_Init; -+ STORE_parse_attrs_endp; -+ BN_set_negative; -+ ERR_load_ECDSA_strings; -+ EC_GROUP_get_basis_type; -+ STORE_list_public_key_next; -+ i2v_ASN1_BIT_STRING; -+ STORE_OBJECT_free; -+ BN_nist_mod_384; -+ i2d_X509_CERT_PAIR; -+ PEM_write_ECPKParameters; -+ ECDH_compute_key; -+ STORE_ATTR_INFO_get0_sha1str; -+ ENGINE_register_all_ECDH; -+ pqueue_pop; -+ STORE_ATTR_INFO_get0_cstr; -+ POLICY_CONSTRAINTS_it; -+ STORE_get_ex_new_index; -+ EVP_PKEY_get_attr_by_OBJ; -+ X509_VERIFY_PARAM_add0_policy; -+ BN_GF2m_mod_solve_quad; -+ SHA256; -+ i2d_ECPrivateKey_fp; -+ X509_policy_tree_get0_user_policies; -+ X509_pcy_tree_get0_usr_policies; -+ OPENSSL_DIR_read; -+ ENGINE_register_all_ECDSA; -+ X509_VERIFY_PARAM_lookup; -+ EC_POINT_get_affine_coordinates_GF2m; -+ EC_POINT_get_affine_coords_GF2m; -+ EC_GROUP_dup; -+ ENGINE_get_default_ECDSA; -+ EC_KEY_new; -+ SHA256_Transform; -+ EC_KEY_set_enc_flags; -+ ECDSA_verify; -+ EC_POINT_point2hex; -+ ENGINE_get_STORE; -+ SHA512; -+ STORE_get_certificate; -+ ECDSA_do_sign_ex; -+ ECDSA_do_verify; -+ d2i_ECPrivateKey_fp; -+ STORE_delete_certificate; -+ SHA512_Transform; -+ X509_STORE_set1_param; -+ STORE_method_get_ctrl_function; -+ STORE_free; -+ PEM_write_ECPrivateKey; -+ STORE_meth_get_unlock_store_fn; -+ STORE_method_get_unlock_store_function; -+ STORE_get_ex_data; -+ EC_KEY_set_public_key; -+ PEM_read_ECPKParameters; -+ X509_CERT_PAIR_new; -+ ENGINE_register_STORE; -+ RSA_generate_key_ex; -+ DSA_generate_parameters_ex; -+ ECParameters_print_fp; -+ X509V3_NAME_from_section; -+ EVP_PKEY_add1_attr; -+ STORE_modify_crl; -+ STORE_list_private_key_start; -+ POLICY_MAPPINGS_it; -+ GENERAL_SUBTREE_it; -+ EC_GROUP_get_curve_name; -+ PEM_write_X509_CERT_PAIR; -+ BIO_dump_indent_cb; -+ d2i_X509_CERT_PAIR; -+ STORE_list_private_key_endp; -+ asn1_const_Finish; -+ i2d_EC_PUBKEY_fp; -+ BN_nist_mod_256; -+ X509_VERIFY_PARAM_add0_table; -+ pqueue_free; -+ BN_BLINDING_create_param; -+ ECDSA_size; -+ d2i_EC_PUBKEY_bio; -+ BN_get0_nist_prime_521; -+ STORE_ATTR_INFO_modify_sha1str; -+ BN_generate_prime_ex; -+ EC_GROUP_new_by_curve_name; -+ SHA256_Final; -+ DH_generate_parameters_ex; -+ PEM_read_bio_ECPrivateKey; -+ STORE_meth_get_cleanup_fn; -+ STORE_method_get_cleanup_function; -+ ENGINE_get_ECDH; -+ d2i_ECDSA_SIG; -+ BN_is_prime_fasttest_ex; -+ ECDSA_sign; -+ X509_policy_check; -+ EVP_PKEY_get_attr_by_NID; -+ STORE_set_ex_data; -+ ENGINE_get_ECDSA; -+ EVP_ecdsa; -+ BN_BLINDING_get_flags; -+ PKCS12_add_cert; -+ STORE_OBJECT_new; -+ ERR_load_ECDH_strings; -+ EC_KEY_dup; -+ EVP_CIPHER_CTX_rand_key; -+ ECDSA_set_method; -+ a2i_IPADDRESS_NC; -+ d2i_ECParameters; -+ STORE_list_certificate_end; -+ STORE_get_crl; -+ X509_POLICY_NODE_print; -+ SHA384_Init; -+ EC_GF2m_simple_method; -+ ECDSA_set_ex_data; -+ SHA384_Final; -+ PKCS7_set_digest; -+ EC_KEY_print; -+ STORE_meth_set_lock_store_fn; -+ STORE_method_set_lock_store_function; -+ ECDSA_get_ex_new_index; -+ SHA384; -+ POLICY_MAPPING_new; -+ STORE_list_certificate_endp; -+ X509_STORE_CTX_get0_policy_tree; -+ EC_GROUP_set_asn1_flag; -+ EC_KEY_check_key; -+ d2i_EC_PUBKEY_fp; -+ PKCS7_set0_type_other; -+ PEM_read_bio_X509_CERT_PAIR; -+ pqueue_next; -+ STORE_meth_get_list_end_fn; -+ STORE_method_get_list_end_function; -+ EVP_PKEY_add1_attr_by_OBJ; -+ X509_VERIFY_PARAM_set_time; -+ pqueue_new; -+ ENGINE_set_default_ECDH; -+ STORE_new_method; -+ PKCS12_add_key; -+ DSO_merge; -+ EC_POINT_hex2point; -+ BIO_dump_cb; -+ SHA256_Update; -+ pqueue_insert; -+ pitem_free; -+ BN_GF2m_mod_inv_arr; -+ ENGINE_unregister_ECDSA; -+ BN_BLINDING_set_thread_id; -+ get_rfc3526_prime_8192; -+ X509_VERIFY_PARAM_clear_flags; -+ get_rfc2409_prime_1024; -+ DH_check_pub_key; -+ get_rfc3526_prime_2048; -+ get_rfc3526_prime_6144; -+ get_rfc3526_prime_1536; -+ get_rfc3526_prime_3072; -+ get_rfc3526_prime_4096; -+ get_rfc2409_prime_768; -+ X509_VERIFY_PARAM_get_flags; -+ EVP_CIPHER_CTX_new; -+ EVP_CIPHER_CTX_free; -+ Camellia_cbc_encrypt; -+ Camellia_cfb128_encrypt; -+ Camellia_cfb1_encrypt; -+ Camellia_cfb8_encrypt; -+ Camellia_ctr128_encrypt; -+ Camellia_cfbr_encrypt_block; -+ Camellia_decrypt; -+ Camellia_ecb_encrypt; -+ Camellia_encrypt; -+ Camellia_ofb128_encrypt; -+ Camellia_set_key; -+ EVP_camellia_128_cbc; -+ EVP_camellia_128_cfb128; -+ EVP_camellia_128_cfb1; -+ EVP_camellia_128_cfb8; -+ EVP_camellia_128_ecb; -+ EVP_camellia_128_ofb; -+ EVP_camellia_192_cbc; -+ EVP_camellia_192_cfb128; -+ EVP_camellia_192_cfb1; -+ EVP_camellia_192_cfb8; -+ EVP_camellia_192_ecb; -+ EVP_camellia_192_ofb; -+ EVP_camellia_256_cbc; -+ EVP_camellia_256_cfb128; -+ EVP_camellia_256_cfb1; -+ EVP_camellia_256_cfb8; -+ EVP_camellia_256_ecb; -+ EVP_camellia_256_ofb; -+ a2i_ipadd; -+ ASIdentifiers_free; -+ i2d_ASIdOrRange; -+ EVP_CIPHER_block_size; -+ v3_asid_is_canonical; -+ IPAddressChoice_free; -+ EVP_CIPHER_CTX_set_app_data; -+ BIO_set_callback_arg; -+ v3_addr_add_prefix; -+ IPAddressOrRange_it; -+ BIO_set_flags; -+ ASIdentifiers_it; -+ v3_addr_get_range; -+ BIO_method_type; -+ v3_addr_inherits; -+ IPAddressChoice_it; -+ AES_ige_encrypt; -+ v3_addr_add_range; -+ EVP_CIPHER_CTX_nid; -+ d2i_ASRange; -+ v3_addr_add_inherit; -+ v3_asid_add_id_or_range; -+ v3_addr_validate_resource_set; -+ EVP_CIPHER_iv_length; -+ EVP_MD_type; -+ v3_asid_canonize; -+ IPAddressRange_free; -+ v3_asid_add_inherit; -+ EVP_CIPHER_CTX_key_length; -+ IPAddressRange_new; -+ ASIdOrRange_new; -+ EVP_MD_size; -+ EVP_MD_CTX_test_flags; -+ BIO_clear_flags; -+ i2d_ASRange; -+ IPAddressRange_it; -+ IPAddressChoice_new; -+ ASIdentifierChoice_new; -+ ASRange_free; -+ EVP_MD_pkey_type; -+ EVP_MD_CTX_clear_flags; -+ IPAddressFamily_free; -+ i2d_IPAddressFamily; -+ IPAddressOrRange_new; -+ EVP_CIPHER_flags; -+ v3_asid_validate_resource_set; -+ d2i_IPAddressRange; -+ AES_bi_ige_encrypt; -+ BIO_get_callback; -+ IPAddressOrRange_free; -+ v3_addr_subset; -+ d2i_IPAddressFamily; -+ v3_asid_subset; -+ BIO_test_flags; -+ i2d_ASIdentifierChoice; -+ ASRange_it; -+ d2i_ASIdentifiers; -+ ASRange_new; -+ d2i_IPAddressChoice; -+ v3_addr_get_afi; -+ EVP_CIPHER_key_length; -+ EVP_Cipher; -+ i2d_IPAddressOrRange; -+ ASIdOrRange_it; -+ EVP_CIPHER_nid; -+ i2d_IPAddressChoice; -+ EVP_CIPHER_CTX_block_size; -+ ASIdentifiers_new; -+ v3_addr_validate_path; -+ IPAddressFamily_new; -+ EVP_MD_CTX_set_flags; -+ v3_addr_is_canonical; -+ i2d_IPAddressRange; -+ IPAddressFamily_it; -+ v3_asid_inherits; -+ EVP_CIPHER_CTX_cipher; -+ EVP_CIPHER_CTX_get_app_data; -+ EVP_MD_block_size; -+ EVP_CIPHER_CTX_flags; -+ v3_asid_validate_path; -+ d2i_IPAddressOrRange; -+ v3_addr_canonize; -+ ASIdentifierChoice_it; -+ EVP_MD_CTX_md; -+ d2i_ASIdentifierChoice; -+ BIO_method_name; -+ EVP_CIPHER_CTX_iv_length; -+ ASIdOrRange_free; -+ ASIdentifierChoice_free; -+ BIO_get_callback_arg; -+ BIO_set_callback; -+ d2i_ASIdOrRange; -+ i2d_ASIdentifiers; -+ SEED_decrypt; -+ SEED_encrypt; -+ SEED_cbc_encrypt; -+ EVP_seed_ofb; -+ SEED_cfb128_encrypt; -+ SEED_ofb128_encrypt; -+ EVP_seed_cbc; -+ SEED_ecb_encrypt; -+ EVP_seed_ecb; -+ SEED_set_key; -+ EVP_seed_cfb128; -+ X509_EXTENSIONS_it; -+ X509_get1_ocsp; -+ OCSP_REQ_CTX_free; -+ i2d_X509_EXTENSIONS; -+ OCSP_sendreq_nbio; -+ OCSP_sendreq_new; -+ d2i_X509_EXTENSIONS; -+ X509_ALGORS_it; -+ X509_ALGOR_get0; -+ X509_ALGOR_set0; -+ AES_unwrap_key; -+ AES_wrap_key; -+ X509at_get0_data_by_OBJ; -+ ASN1_TYPE_set1; -+ ASN1_STRING_set0; -+ i2d_X509_ALGORS; -+ BIO_f_zlib; -+ COMP_zlib_cleanup; -+ d2i_X509_ALGORS; -+ CMS_ReceiptRequest_free; -+ PEM_write_CMS; -+ CMS_add0_CertificateChoices; -+ CMS_unsigned_add1_attr_by_OBJ; -+ ERR_load_CMS_strings; -+ CMS_sign_receipt; -+ i2d_CMS_ContentInfo; -+ CMS_signed_delete_attr; -+ d2i_CMS_bio; -+ CMS_unsigned_get_attr_by_NID; -+ CMS_verify; -+ SMIME_read_CMS; -+ CMS_decrypt_set1_key; -+ CMS_SignerInfo_get0_algs; -+ CMS_add1_cert; -+ CMS_set_detached; -+ CMS_encrypt; -+ CMS_EnvelopedData_create; -+ CMS_uncompress; -+ CMS_add0_crl; -+ CMS_SignerInfo_verify_content; -+ CMS_unsigned_get0_data_by_OBJ; -+ PEM_write_bio_CMS; -+ CMS_unsigned_get_attr; -+ CMS_RecipientInfo_ktri_cert_cmp; -+ CMS_RecipientInfo_ktri_get0_algs; -+ CMS_RecipInfo_ktri_get0_algs; -+ CMS_ContentInfo_free; -+ CMS_final; -+ CMS_add_simple_smimecap; -+ CMS_SignerInfo_verify; -+ CMS_data; -+ CMS_ContentInfo_it; -+ d2i_CMS_ReceiptRequest; -+ CMS_compress; -+ CMS_digest_create; -+ CMS_SignerInfo_cert_cmp; -+ CMS_SignerInfo_sign; -+ CMS_data_create; -+ i2d_CMS_bio; -+ CMS_EncryptedData_set1_key; -+ CMS_decrypt; -+ int_smime_write_ASN1; -+ CMS_unsigned_delete_attr; -+ CMS_unsigned_get_attr_count; -+ CMS_add_smimecap; -+ PEM_read_CMS; -+ CMS_signed_get_attr_by_OBJ; -+ d2i_CMS_ContentInfo; -+ CMS_add_standard_smimecap; -+ CMS_ContentInfo_new; -+ CMS_RecipientInfo_type; -+ CMS_get0_type; -+ CMS_is_detached; -+ CMS_sign; -+ CMS_signed_add1_attr; -+ CMS_unsigned_get_attr_by_OBJ; -+ SMIME_write_CMS; -+ CMS_EncryptedData_decrypt; -+ CMS_get0_RecipientInfos; -+ CMS_add0_RevocationInfoChoice; -+ CMS_decrypt_set1_pkey; -+ CMS_SignerInfo_set1_signer_cert; -+ CMS_get0_signers; -+ CMS_ReceiptRequest_get0_values; -+ CMS_signed_get0_data_by_OBJ; -+ CMS_get0_SignerInfos; -+ CMS_add0_cert; -+ CMS_EncryptedData_encrypt; -+ CMS_digest_verify; -+ CMS_set1_signers_certs; -+ CMS_signed_get_attr; -+ CMS_RecipientInfo_set0_key; -+ CMS_SignedData_init; -+ CMS_RecipientInfo_kekri_get0_id; -+ CMS_verify_receipt; -+ CMS_ReceiptRequest_it; -+ PEM_read_bio_CMS; -+ CMS_get1_crls; -+ CMS_add0_recipient_key; -+ SMIME_read_ASN1; -+ CMS_ReceiptRequest_new; -+ CMS_get0_content; -+ CMS_get1_ReceiptRequest; -+ CMS_signed_add1_attr_by_OBJ; -+ CMS_RecipientInfo_kekri_id_cmp; -+ CMS_add1_ReceiptRequest; -+ CMS_SignerInfo_get0_signer_id; -+ CMS_unsigned_add1_attr_by_NID; -+ CMS_unsigned_add1_attr; -+ CMS_signed_get_attr_by_NID; -+ CMS_get1_certs; -+ CMS_signed_add1_attr_by_NID; -+ CMS_unsigned_add1_attr_by_txt; -+ CMS_dataFinal; -+ CMS_RecipientInfo_ktri_get0_signer_id; -+ CMS_RecipInfo_ktri_get0_sigr_id; -+ i2d_CMS_ReceiptRequest; -+ CMS_add1_recipient_cert; -+ CMS_dataInit; -+ CMS_signed_add1_attr_by_txt; -+ CMS_RecipientInfo_decrypt; -+ CMS_signed_get_attr_count; -+ CMS_get0_eContentType; -+ CMS_set1_eContentType; -+ CMS_ReceiptRequest_create0; -+ CMS_add1_signer; -+ CMS_RecipientInfo_set0_pkey; -+ ENGINE_set_load_ssl_client_cert_function; -+ ENGINE_set_ld_ssl_clnt_cert_fn; -+ ENGINE_get_ssl_client_cert_function; -+ ENGINE_get_ssl_client_cert_fn; -+ ENGINE_load_ssl_client_cert; -+ ENGINE_load_capi; -+ OPENSSL_isservice; -+ FIPS_dsa_sig_decode; -+ EVP_CIPHER_CTX_clear_flags; -+ FIPS_rand_status; -+ FIPS_rand_set_key; -+ CRYPTO_set_mem_info_functions; -+ RSA_X931_generate_key_ex; -+ int_ERR_set_state_func; -+ int_EVP_MD_set_engine_callbacks; -+ int_CRYPTO_set_do_dynlock_callback; -+ FIPS_rng_stick; -+ EVP_CIPHER_CTX_set_flags; -+ BN_X931_generate_prime_ex; -+ FIPS_selftest_check; -+ FIPS_rand_set_dt; -+ CRYPTO_dbg_pop_info; -+ FIPS_dsa_free; -+ RSA_X931_derive_ex; -+ FIPS_rsa_new; -+ FIPS_rand_bytes; -+ fips_cipher_test; -+ EVP_CIPHER_CTX_test_flags; -+ CRYPTO_malloc_debug_init; -+ CRYPTO_dbg_push_info; -+ FIPS_corrupt_rsa_keygen; -+ FIPS_dh_new; -+ FIPS_corrupt_dsa_keygen; -+ FIPS_dh_free; -+ fips_pkey_signature_test; -+ EVP_add_alg_module; -+ int_RAND_init_engine_callbacks; -+ int_EVP_CIPHER_set_engine_callbacks; -+ int_EVP_MD_init_engine_callbacks; -+ FIPS_rand_test_mode; -+ FIPS_rand_reset; -+ FIPS_dsa_new; -+ int_RAND_set_callbacks; -+ BN_X931_derive_prime_ex; -+ int_ERR_lib_init; -+ int_EVP_CIPHER_init_engine_callbacks; -+ FIPS_rsa_free; -+ FIPS_dsa_sig_encode; -+ CRYPTO_dbg_remove_all_info; -+ OPENSSL_init; -+ CRYPTO_strdup; -+ JPAKE_STEP3A_process; -+ JPAKE_STEP1_release; -+ JPAKE_get_shared_key; -+ JPAKE_STEP3B_init; -+ JPAKE_STEP1_generate; -+ JPAKE_STEP1_init; -+ JPAKE_STEP3B_process; -+ JPAKE_STEP2_generate; -+ JPAKE_CTX_new; -+ JPAKE_CTX_free; -+ JPAKE_STEP3B_release; -+ JPAKE_STEP3A_release; -+ JPAKE_STEP2_process; -+ JPAKE_STEP3B_generate; -+ JPAKE_STEP1_process; -+ JPAKE_STEP3A_generate; -+ JPAKE_STEP2_release; -+ JPAKE_STEP3A_init; -+ ERR_load_JPAKE_strings; -+ JPAKE_STEP2_init; -+ pqueue_size; -+ i2d_TS_ACCURACY; -+ i2d_TS_MSG_IMPRINT_fp; -+ i2d_TS_MSG_IMPRINT; -+ EVP_PKEY_print_public; -+ EVP_PKEY_CTX_new; -+ i2d_TS_TST_INFO; -+ EVP_PKEY_asn1_find; -+ DSO_METHOD_beos; -+ TS_CONF_load_cert; -+ TS_REQ_get_ext; -+ EVP_PKEY_sign_init; -+ ASN1_item_print; -+ TS_TST_INFO_set_nonce; -+ TS_RESP_dup; -+ ENGINE_register_pkey_meths; -+ EVP_PKEY_asn1_add0; -+ PKCS7_add0_attrib_signing_time; -+ i2d_TS_TST_INFO_fp; -+ BIO_asn1_get_prefix; -+ TS_TST_INFO_set_time; -+ EVP_PKEY_meth_set_decrypt; -+ EVP_PKEY_set_type_str; -+ EVP_PKEY_CTX_get_keygen_info; -+ TS_REQ_set_policy_id; -+ d2i_TS_RESP_fp; -+ ENGINE_get_pkey_asn1_meth_engine; -+ ENGINE_get_pkey_asn1_meth_eng; -+ WHIRLPOOL_Init; -+ TS_RESP_set_status_info; -+ EVP_PKEY_keygen; -+ EVP_DigestSignInit; -+ TS_ACCURACY_set_millis; -+ TS_REQ_dup; -+ GENERAL_NAME_dup; -+ ASN1_SEQUENCE_ANY_it; -+ WHIRLPOOL; -+ X509_STORE_get1_crls; -+ ENGINE_get_pkey_asn1_meth; -+ EVP_PKEY_asn1_new; -+ BIO_new_NDEF; -+ ENGINE_get_pkey_meth; -+ TS_MSG_IMPRINT_set_algo; -+ i2d_TS_TST_INFO_bio; -+ TS_TST_INFO_set_ordering; -+ TS_TST_INFO_get_ext_by_OBJ; -+ CRYPTO_THREADID_set_pointer; -+ TS_CONF_get_tsa_section; -+ SMIME_write_ASN1; -+ TS_RESP_CTX_set_signer_key; -+ EVP_PKEY_encrypt_old; -+ EVP_PKEY_encrypt_init; -+ CRYPTO_THREADID_cpy; -+ ASN1_PCTX_get_cert_flags; -+ i2d_ESS_SIGNING_CERT; -+ TS_CONF_load_key; -+ i2d_ASN1_SEQUENCE_ANY; -+ d2i_TS_MSG_IMPRINT_bio; -+ EVP_PKEY_asn1_set_public; -+ b2i_PublicKey_bio; -+ BIO_asn1_set_prefix; -+ EVP_PKEY_new_mac_key; -+ BIO_new_CMS; -+ CRYPTO_THREADID_cmp; -+ TS_REQ_ext_free; -+ EVP_PKEY_asn1_set_free; -+ EVP_PKEY_get0_asn1; -+ d2i_NETSCAPE_X509; -+ EVP_PKEY_verify_recover_init; -+ EVP_PKEY_CTX_set_data; -+ EVP_PKEY_keygen_init; -+ TS_RESP_CTX_set_status_info; -+ TS_MSG_IMPRINT_get_algo; -+ TS_REQ_print_bio; -+ EVP_PKEY_CTX_ctrl_str; -+ EVP_PKEY_get_default_digest_nid; -+ PEM_write_bio_PKCS7_stream; -+ TS_MSG_IMPRINT_print_bio; -+ BN_asc2bn; -+ TS_REQ_get_policy_id; -+ ENGINE_set_default_pkey_asn1_meths; -+ ENGINE_set_def_pkey_asn1_meths; -+ d2i_TS_ACCURACY; -+ DSO_global_lookup; -+ TS_CONF_set_tsa_name; -+ i2d_ASN1_SET_ANY; -+ ENGINE_load_gost; -+ WHIRLPOOL_BitUpdate; -+ ASN1_PCTX_get_flags; -+ TS_TST_INFO_get_ext_by_NID; -+ TS_RESP_new; -+ ESS_CERT_ID_dup; -+ TS_STATUS_INFO_dup; -+ TS_REQ_delete_ext; -+ EVP_DigestVerifyFinal; -+ EVP_PKEY_print_params; -+ i2d_CMS_bio_stream; -+ TS_REQ_get_msg_imprint; -+ OBJ_find_sigid_by_algs; -+ TS_TST_INFO_get_serial; -+ TS_REQ_get_nonce; -+ X509_PUBKEY_set0_param; -+ EVP_PKEY_CTX_set0_keygen_info; -+ DIST_POINT_set_dpname; -+ i2d_ISSUING_DIST_POINT; -+ ASN1_SET_ANY_it; -+ EVP_PKEY_CTX_get_data; -+ TS_STATUS_INFO_print_bio; -+ EVP_PKEY_derive_init; -+ d2i_TS_TST_INFO; -+ EVP_PKEY_asn1_add_alias; -+ d2i_TS_RESP_bio; -+ OTHERNAME_cmp; -+ GENERAL_NAME_set0_value; -+ PKCS7_RECIP_INFO_get0_alg; -+ TS_RESP_CTX_new; -+ TS_RESP_set_tst_info; -+ PKCS7_final; -+ EVP_PKEY_base_id; -+ TS_RESP_CTX_set_signer_cert; -+ TS_REQ_set_msg_imprint; -+ EVP_PKEY_CTX_ctrl; -+ TS_CONF_set_digests; -+ d2i_TS_MSG_IMPRINT; -+ EVP_PKEY_meth_set_ctrl; -+ TS_REQ_get_ext_by_NID; -+ PKCS5_pbe_set0_algor; -+ BN_BLINDING_thread_id; -+ TS_ACCURACY_new; -+ X509_CRL_METHOD_free; -+ ASN1_PCTX_get_nm_flags; -+ EVP_PKEY_meth_set_sign; -+ CRYPTO_THREADID_current; -+ EVP_PKEY_decrypt_init; -+ NETSCAPE_X509_free; -+ i2b_PVK_bio; -+ EVP_PKEY_print_private; -+ GENERAL_NAME_get0_value; -+ b2i_PVK_bio; -+ ASN1_UTCTIME_adj; -+ TS_TST_INFO_new; -+ EVP_MD_do_all_sorted; -+ TS_CONF_set_default_engine; -+ TS_ACCURACY_set_seconds; -+ TS_TST_INFO_get_time; -+ PKCS8_pkey_get0; -+ EVP_PKEY_asn1_get0; -+ OBJ_add_sigid; -+ PKCS7_SIGNER_INFO_sign; -+ EVP_PKEY_paramgen_init; -+ EVP_PKEY_sign; -+ OBJ_sigid_free; -+ EVP_PKEY_meth_set_init; -+ d2i_ESS_ISSUER_SERIAL; -+ ISSUING_DIST_POINT_new; -+ ASN1_TIME_adj; -+ TS_OBJ_print_bio; -+ EVP_PKEY_meth_set_verify_recover; -+ EVP_PKEY_meth_set_vrfy_recover; -+ TS_RESP_get_status_info; -+ CMS_stream; -+ EVP_PKEY_CTX_set_cb; -+ PKCS7_to_TS_TST_INFO; -+ ASN1_PCTX_get_oid_flags; -+ TS_TST_INFO_add_ext; -+ EVP_PKEY_meth_set_derive; -+ i2d_TS_RESP_fp; -+ i2d_TS_MSG_IMPRINT_bio; -+ TS_RESP_CTX_set_accuracy; -+ TS_REQ_set_nonce; -+ ESS_CERT_ID_new; -+ ENGINE_pkey_asn1_find_str; -+ TS_REQ_get_ext_count; -+ BUF_reverse; -+ TS_TST_INFO_print_bio; -+ d2i_ISSUING_DIST_POINT; -+ ENGINE_get_pkey_meths; -+ i2b_PrivateKey_bio; -+ i2d_TS_RESP; -+ b2i_PublicKey; -+ TS_VERIFY_CTX_cleanup; -+ TS_STATUS_INFO_free; -+ TS_RESP_verify_token; -+ OBJ_bsearch_ex_; -+ ASN1_bn_print; -+ EVP_PKEY_asn1_get_count; -+ ENGINE_register_pkey_asn1_meths; -+ ASN1_PCTX_set_nm_flags; -+ EVP_DigestVerifyInit; -+ ENGINE_set_default_pkey_meths; -+ TS_TST_INFO_get_policy_id; -+ TS_REQ_get_cert_req; -+ X509_CRL_set_meth_data; -+ PKCS8_pkey_set0; -+ ASN1_STRING_copy; -+ d2i_TS_TST_INFO_fp; -+ X509_CRL_match; -+ EVP_PKEY_asn1_set_private; -+ TS_TST_INFO_get_ext_d2i; -+ TS_RESP_CTX_add_policy; -+ d2i_TS_RESP; -+ TS_CONF_load_certs; -+ TS_TST_INFO_get_msg_imprint; -+ ERR_load_TS_strings; -+ TS_TST_INFO_get_version; -+ EVP_PKEY_CTX_dup; -+ EVP_PKEY_meth_set_verify; -+ i2b_PublicKey_bio; -+ TS_CONF_set_certs; -+ EVP_PKEY_asn1_get0_info; -+ TS_VERIFY_CTX_free; -+ TS_REQ_get_ext_by_critical; -+ TS_RESP_CTX_set_serial_cb; -+ X509_CRL_get_meth_data; -+ TS_RESP_CTX_set_time_cb; -+ TS_MSG_IMPRINT_get_msg; -+ TS_TST_INFO_ext_free; -+ TS_REQ_get_version; -+ TS_REQ_add_ext; -+ EVP_PKEY_CTX_set_app_data; -+ OBJ_bsearch_; -+ EVP_PKEY_meth_set_verifyctx; -+ i2d_PKCS7_bio_stream; -+ CRYPTO_THREADID_set_numeric; -+ PKCS7_sign_add_signer; -+ d2i_TS_TST_INFO_bio; -+ TS_TST_INFO_get_ordering; -+ TS_RESP_print_bio; -+ TS_TST_INFO_get_exts; -+ HMAC_CTX_copy; -+ PKCS5_pbe2_set_iv; -+ ENGINE_get_pkey_asn1_meths; -+ b2i_PrivateKey; -+ EVP_PKEY_CTX_get_app_data; -+ TS_REQ_set_cert_req; -+ CRYPTO_THREADID_set_callback; -+ TS_CONF_set_serial; -+ TS_TST_INFO_free; -+ d2i_TS_REQ_fp; -+ TS_RESP_verify_response; -+ i2d_ESS_ISSUER_SERIAL; -+ TS_ACCURACY_get_seconds; -+ EVP_CIPHER_do_all; -+ b2i_PrivateKey_bio; -+ OCSP_CERTID_dup; -+ X509_PUBKEY_get0_param; -+ TS_MSG_IMPRINT_dup; -+ PKCS7_print_ctx; -+ i2d_TS_REQ_bio; -+ EVP_whirlpool; -+ EVP_PKEY_asn1_set_param; -+ EVP_PKEY_meth_set_encrypt; -+ ASN1_PCTX_set_flags; -+ i2d_ESS_CERT_ID; -+ TS_VERIFY_CTX_new; -+ TS_RESP_CTX_set_extension_cb; -+ ENGINE_register_all_pkey_meths; -+ TS_RESP_CTX_set_status_info_cond; -+ TS_RESP_CTX_set_stat_info_cond; -+ EVP_PKEY_verify; -+ WHIRLPOOL_Final; -+ X509_CRL_METHOD_new; -+ EVP_DigestSignFinal; -+ TS_RESP_CTX_set_def_policy; -+ NETSCAPE_X509_it; -+ TS_RESP_create_response; -+ PKCS7_SIGNER_INFO_get0_algs; -+ TS_TST_INFO_get_nonce; -+ EVP_PKEY_decrypt_old; -+ TS_TST_INFO_set_policy_id; -+ TS_CONF_set_ess_cert_id_chain; -+ EVP_PKEY_CTX_get0_pkey; -+ d2i_TS_REQ; -+ EVP_PKEY_asn1_find_str; -+ BIO_f_asn1; -+ ESS_SIGNING_CERT_new; -+ EVP_PBE_find; -+ X509_CRL_get0_by_cert; -+ EVP_PKEY_derive; -+ i2d_TS_REQ; -+ TS_TST_INFO_delete_ext; -+ ESS_ISSUER_SERIAL_free; -+ ASN1_PCTX_set_str_flags; -+ ENGINE_get_pkey_asn1_meth_str; -+ TS_CONF_set_signer_key; -+ TS_ACCURACY_get_millis; -+ TS_RESP_get_token; -+ TS_ACCURACY_dup; -+ ENGINE_register_all_pkey_asn1_meths; -+ ENGINE_reg_all_pkey_asn1_meths; -+ X509_CRL_set_default_method; -+ CRYPTO_THREADID_hash; -+ CMS_ContentInfo_print_ctx; -+ TS_RESP_free; -+ ISSUING_DIST_POINT_free; -+ ESS_ISSUER_SERIAL_new; -+ CMS_add1_crl; -+ PKCS7_add1_attrib_digest; -+ TS_RESP_CTX_add_md; -+ TS_TST_INFO_dup; -+ ENGINE_set_pkey_asn1_meths; -+ PEM_write_bio_Parameters; -+ TS_TST_INFO_get_accuracy; -+ X509_CRL_get0_by_serial; -+ TS_TST_INFO_set_version; -+ TS_RESP_CTX_get_tst_info; -+ TS_RESP_verify_signature; -+ CRYPTO_THREADID_get_callback; -+ TS_TST_INFO_get_tsa; -+ TS_STATUS_INFO_new; -+ EVP_PKEY_CTX_get_cb; -+ TS_REQ_get_ext_d2i; -+ GENERAL_NAME_set0_othername; -+ TS_TST_INFO_get_ext_count; -+ TS_RESP_CTX_get_request; -+ i2d_NETSCAPE_X509; -+ ENGINE_get_pkey_meth_engine; -+ EVP_PKEY_meth_set_signctx; -+ EVP_PKEY_asn1_copy; -+ ASN1_TYPE_cmp; -+ EVP_CIPHER_do_all_sorted; -+ EVP_PKEY_CTX_free; -+ ISSUING_DIST_POINT_it; -+ d2i_TS_MSG_IMPRINT_fp; -+ X509_STORE_get1_certs; -+ EVP_PKEY_CTX_get_operation; -+ d2i_ESS_SIGNING_CERT; -+ TS_CONF_set_ordering; -+ EVP_PBE_alg_add_type; -+ TS_REQ_set_version; -+ EVP_PKEY_get0; -+ BIO_asn1_set_suffix; -+ i2d_TS_STATUS_INFO; -+ EVP_MD_do_all; -+ TS_TST_INFO_set_accuracy; -+ PKCS7_add_attrib_content_type; -+ ERR_remove_thread_state; -+ EVP_PKEY_meth_add0; -+ TS_TST_INFO_set_tsa; -+ EVP_PKEY_meth_new; -+ WHIRLPOOL_Update; -+ TS_CONF_set_accuracy; -+ ASN1_PCTX_set_oid_flags; -+ ESS_SIGNING_CERT_dup; -+ d2i_TS_REQ_bio; -+ X509_time_adj_ex; -+ TS_RESP_CTX_add_flags; -+ d2i_TS_STATUS_INFO; -+ TS_MSG_IMPRINT_set_msg; -+ BIO_asn1_get_suffix; -+ TS_REQ_free; -+ EVP_PKEY_meth_free; -+ TS_REQ_get_exts; -+ TS_RESP_CTX_set_clock_precision_digits; -+ TS_RESP_CTX_set_clk_prec_digits; -+ TS_RESP_CTX_add_failure_info; -+ i2d_TS_RESP_bio; -+ EVP_PKEY_CTX_get0_peerkey; -+ PEM_write_bio_CMS_stream; -+ TS_REQ_new; -+ TS_MSG_IMPRINT_new; -+ EVP_PKEY_meth_find; -+ EVP_PKEY_id; -+ TS_TST_INFO_set_serial; -+ a2i_GENERAL_NAME; -+ TS_CONF_set_crypto_device; -+ EVP_PKEY_verify_init; -+ TS_CONF_set_policies; -+ ASN1_PCTX_new; -+ ESS_CERT_ID_free; -+ ENGINE_unregister_pkey_meths; -+ TS_MSG_IMPRINT_free; -+ TS_VERIFY_CTX_init; -+ PKCS7_stream; -+ TS_RESP_CTX_set_certs; -+ TS_CONF_set_def_policy; -+ ASN1_GENERALIZEDTIME_adj; -+ NETSCAPE_X509_new; -+ TS_ACCURACY_free; -+ TS_RESP_get_tst_info; -+ EVP_PKEY_derive_set_peer; -+ PEM_read_bio_Parameters; -+ TS_CONF_set_clock_precision_digits; -+ TS_CONF_set_clk_prec_digits; -+ ESS_ISSUER_SERIAL_dup; -+ TS_ACCURACY_get_micros; -+ ASN1_PCTX_get_str_flags; -+ NAME_CONSTRAINTS_check; -+ ASN1_BIT_STRING_check; -+ X509_check_akid; -+ ENGINE_unregister_pkey_asn1_meths; -+ ENGINE_unreg_pkey_asn1_meths; -+ ASN1_PCTX_free; -+ PEM_write_bio_ASN1_stream; -+ i2d_ASN1_bio_stream; -+ TS_X509_ALGOR_print_bio; -+ EVP_PKEY_meth_set_cleanup; -+ EVP_PKEY_asn1_free; -+ ESS_SIGNING_CERT_free; -+ TS_TST_INFO_set_msg_imprint; -+ GENERAL_NAME_cmp; -+ d2i_ASN1_SET_ANY; -+ ENGINE_set_pkey_meths; -+ i2d_TS_REQ_fp; -+ d2i_ASN1_SEQUENCE_ANY; -+ GENERAL_NAME_get0_otherName; -+ d2i_ESS_CERT_ID; -+ OBJ_find_sigid_algs; -+ EVP_PKEY_meth_set_keygen; -+ PKCS5_PBKDF2_HMAC; -+ EVP_PKEY_paramgen; -+ EVP_PKEY_meth_set_paramgen; -+ BIO_new_PKCS7; -+ EVP_PKEY_verify_recover; -+ TS_ext_print_bio; -+ TS_ASN1_INTEGER_print_bio; -+ check_defer; -+ DSO_pathbyaddr; -+ EVP_PKEY_set_type; -+ TS_ACCURACY_set_micros; -+ TS_REQ_to_TS_VERIFY_CTX; -+ EVP_PKEY_meth_set_copy; -+ ASN1_PCTX_set_cert_flags; -+ TS_TST_INFO_get_ext; -+ EVP_PKEY_asn1_set_ctrl; -+ TS_TST_INFO_get_ext_by_critical; -+ EVP_PKEY_CTX_new_id; -+ TS_REQ_get_ext_by_OBJ; -+ TS_CONF_set_signer_cert; -+ X509_NAME_hash_old; -+ ASN1_TIME_set_string; -+ EVP_MD_flags; -+ TS_RESP_CTX_free; -+ DSAparams_dup; -+ DHparams_dup; -+ OCSP_REQ_CTX_add1_header; -+ OCSP_REQ_CTX_set1_req; -+ X509_STORE_set_verify_cb; -+ X509_STORE_CTX_get0_current_crl; -+ X509_STORE_CTX_get0_parent_ctx; -+ X509_STORE_CTX_get0_current_issuer; -+ X509_STORE_CTX_get0_cur_issuer; -+ X509_issuer_name_hash_old; -+ X509_subject_name_hash_old; -+ EVP_CIPHER_CTX_copy; -+ UI_method_get_prompt_constructor; -+ UI_method_get_prompt_constructr; -+ UI_method_set_prompt_constructor; -+ UI_method_set_prompt_constructr; -+ EVP_read_pw_string_min; -+ CRYPTO_cts128_encrypt; -+ CRYPTO_cts128_decrypt_block; -+ CRYPTO_cfb128_1_encrypt; -+ CRYPTO_cbc128_encrypt; -+ CRYPTO_ctr128_encrypt; -+ CRYPTO_ofb128_encrypt; -+ CRYPTO_cts128_decrypt; -+ CRYPTO_cts128_encrypt_block; -+ CRYPTO_cbc128_decrypt; -+ CRYPTO_cfb128_encrypt; -+ CRYPTO_cfb128_8_encrypt; -+ SSL_renegotiate_abbreviated; -+ TLSv1_1_method; -+ TLSv1_1_client_method; -+ TLSv1_1_server_method; -+ SSL_CTX_set_srp_client_pwd_callback; -+ SSL_CTX_set_srp_client_pwd_cb; -+ SSL_get_srp_g; -+ SSL_CTX_set_srp_username_callback; -+ SSL_CTX_set_srp_un_cb; -+ SSL_get_srp_userinfo; -+ SSL_set_srp_server_param; -+ SSL_set_srp_server_param_pw; -+ SSL_get_srp_N; -+ SSL_get_srp_username; -+ SSL_CTX_set_srp_password; -+ SSL_CTX_set_srp_strength; -+ SSL_CTX_set_srp_verify_param_callback; -+ SSL_CTX_set_srp_vfy_param_cb; -+ SSL_CTX_set_srp_cb_arg; -+ SSL_CTX_set_srp_username; -+ SSL_CTX_SRP_CTX_init; -+ SSL_SRP_CTX_init; -+ SRP_Calc_A_param; -+ SRP_generate_server_master_secret; -+ SRP_gen_server_master_secret; -+ SSL_CTX_SRP_CTX_free; -+ SRP_generate_client_master_secret; -+ SRP_gen_client_master_secret; -+ SSL_srp_server_param_with_username; -+ SSL_srp_server_param_with_un; -+ SSL_SRP_CTX_free; -+ SSL_set_debug; -+ SSL_SESSION_get0_peer; -+ TLSv1_2_client_method; -+ SSL_SESSION_set1_id_context; -+ TLSv1_2_server_method; -+ SSL_cache_hit; -+ SSL_get0_kssl_ctx; -+ SSL_set0_kssl_ctx; -+ SSL_set_state; -+ SSL_CIPHER_get_id; -+ TLSv1_2_method; -+ kssl_ctx_get0_client_princ; -+ SSL_export_keying_material; -+ SSL_set_tlsext_use_srtp; -+ SSL_CTX_set_next_protos_advertised_cb; -+ SSL_CTX_set_next_protos_adv_cb; -+ SSL_get0_next_proto_negotiated; -+ SSL_get_selected_srtp_profile; -+ SSL_CTX_set_tlsext_use_srtp; -+ SSL_select_next_proto; -+ SSL_get_srtp_profiles; -+ SSL_CTX_set_next_proto_select_cb; -+ SSL_CTX_set_next_proto_sel_cb; -+ SSL_SESSION_get_compress_id; -+ -+ SRP_VBASE_get_by_user; -+ SRP_Calc_server_key; -+ SRP_create_verifier; -+ SRP_create_verifier_BN; -+ SRP_Calc_u; -+ SRP_VBASE_free; -+ SRP_Calc_client_key; -+ SRP_get_default_gN; -+ SRP_Calc_x; -+ SRP_Calc_B; -+ SRP_VBASE_new; -+ SRP_check_known_gN_param; -+ SRP_Calc_A; -+ SRP_Verify_A_mod_N; -+ SRP_VBASE_init; -+ SRP_Verify_B_mod_N; -+ EC_KEY_set_public_key_affine_coordinates; -+ EC_KEY_set_pub_key_aff_coords; -+ EVP_aes_192_ctr; -+ EVP_PKEY_meth_get0_info; -+ EVP_PKEY_meth_copy; -+ ERR_add_error_vdata; -+ EVP_aes_128_ctr; -+ EVP_aes_256_ctr; -+ EC_GFp_nistp224_method; -+ EC_KEY_get_flags; -+ RSA_padding_add_PKCS1_PSS_mgf1; -+ EVP_aes_128_xts; -+ EVP_aes_256_xts; -+ EVP_aes_128_gcm; -+ EC_KEY_clear_flags; -+ EC_KEY_set_flags; -+ EVP_aes_256_ccm; -+ RSA_verify_PKCS1_PSS_mgf1; -+ EVP_aes_128_ccm; -+ EVP_aes_192_gcm; -+ X509_ALGOR_set_md; -+ RAND_init_fips; -+ EVP_aes_256_gcm; -+ EVP_aes_192_ccm; -+ CMAC_CTX_copy; -+ CMAC_CTX_free; -+ CMAC_CTX_get0_cipher_ctx; -+ CMAC_CTX_cleanup; -+ CMAC_Init; -+ CMAC_Update; -+ CMAC_resume; -+ CMAC_CTX_new; -+ CMAC_Final; -+ CRYPTO_ctr128_encrypt_ctr32; -+ CRYPTO_gcm128_release; -+ CRYPTO_ccm128_decrypt_ccm64; -+ CRYPTO_ccm128_encrypt; -+ CRYPTO_gcm128_encrypt; -+ CRYPTO_xts128_encrypt; -+ EVP_rc4_hmac_md5; -+ CRYPTO_nistcts128_decrypt_block; -+ CRYPTO_gcm128_setiv; -+ CRYPTO_nistcts128_encrypt; -+ EVP_aes_128_cbc_hmac_sha1; -+ CRYPTO_gcm128_tag; -+ CRYPTO_ccm128_encrypt_ccm64; -+ ENGINE_load_rdrand; -+ CRYPTO_ccm128_setiv; -+ CRYPTO_nistcts128_encrypt_block; -+ CRYPTO_gcm128_aad; -+ CRYPTO_ccm128_init; -+ CRYPTO_nistcts128_decrypt; -+ CRYPTO_gcm128_new; -+ CRYPTO_ccm128_tag; -+ CRYPTO_ccm128_decrypt; -+ CRYPTO_ccm128_aad; -+ CRYPTO_gcm128_init; -+ CRYPTO_gcm128_decrypt; -+ ENGINE_load_rsax; -+ CRYPTO_gcm128_decrypt_ctr32; -+ CRYPTO_gcm128_encrypt_ctr32; -+ CRYPTO_gcm128_finish; -+ EVP_aes_256_cbc_hmac_sha1; -+ PKCS5_pbkdf2_set; -+ CMS_add0_recipient_password; -+ CMS_decrypt_set1_password; -+ CMS_RecipientInfo_set0_password; -+ RAND_set_fips_drbg_type; -+ X509_REQ_sign_ctx; -+ RSA_PSS_PARAMS_new; -+ X509_CRL_sign_ctx; -+ X509_signature_dump; -+ d2i_RSA_PSS_PARAMS; -+ RSA_PSS_PARAMS_it; -+ RSA_PSS_PARAMS_free; -+ X509_sign_ctx; -+ i2d_RSA_PSS_PARAMS; -+ ASN1_item_sign_ctx; -+ EC_GFp_nistp521_method; -+ EC_GFp_nistp256_method; -+ OPENSSL_stderr; -+ OPENSSL_cpuid_setup; -+ OPENSSL_showfatal; -+ BIO_new_dgram_sctp; -+ BIO_dgram_sctp_msg_waiting; -+ BIO_dgram_sctp_wait_for_dry; -+ BIO_s_datagram_sctp; -+ BIO_dgram_is_sctp; -+ BIO_dgram_sctp_notification_cb; -+ CRYPTO_memcmp; -+ SSL_CTX_set_alpn_protos; -+ SSL_set_alpn_protos; -+ SSL_CTX_set_alpn_select_cb; -+ SSL_get0_alpn_selected; -+ SSL_CTX_set_custom_cli_ext; -+ SSL_CTX_set_custom_srv_ext; -+ SSL_CTX_set_srv_supp_data; -+ SSL_CTX_set_cli_supp_data; -+ SSL_set_cert_cb; -+ SSL_CTX_use_serverinfo; -+ SSL_CTX_use_serverinfo_file; -+ SSL_CTX_set_cert_cb; -+ SSL_CTX_get0_param; -+ SSL_get0_param; -+ SSL_certs_clear; -+ DTLSv1_2_method; -+ DTLSv1_2_server_method; -+ DTLSv1_2_client_method; -+ DTLS_method; -+ DTLS_server_method; -+ DTLS_client_method; -+ SSL_CTX_get_ssl_method; -+ SSL_CTX_get0_certificate; -+ SSL_CTX_get0_privatekey; -+ SSL_COMP_set0_compression_methods; -+ SSL_COMP_free_compression_methods; -+ SSL_CIPHER_find; -+ SSL_is_server; -+ SSL_CONF_CTX_new; -+ SSL_CONF_CTX_finish; -+ SSL_CONF_CTX_free; -+ SSL_CONF_CTX_set_flags; -+ SSL_CONF_CTX_clear_flags; -+ SSL_CONF_CTX_set1_prefix; -+ SSL_CONF_CTX_set_ssl; -+ SSL_CONF_CTX_set_ssl_ctx; -+ SSL_CONF_cmd; -+ SSL_CONF_cmd_argv; -+ SSL_CONF_cmd_value_type; -+ SSL_trace; -+ SSL_CIPHER_standard_name; -+ SSL_get_tlsa_record_byname; -+ ASN1_TIME_diff; -+ BIO_hex_string; -+ CMS_RecipientInfo_get0_pkey_ctx; -+ CMS_RecipientInfo_encrypt; -+ CMS_SignerInfo_get0_pkey_ctx; -+ CMS_SignerInfo_get0_md_ctx; -+ CMS_SignerInfo_get0_signature; -+ CMS_RecipientInfo_kari_get0_alg; -+ CMS_RecipientInfo_kari_get0_reks; -+ CMS_RecipientInfo_kari_get0_orig_id; -+ CMS_RecipientInfo_kari_orig_id_cmp; -+ CMS_RecipientEncryptedKey_get0_id; -+ CMS_RecipientEncryptedKey_cert_cmp; -+ CMS_RecipientInfo_kari_set0_pkey; -+ CMS_RecipientInfo_kari_get0_ctx; -+ CMS_RecipientInfo_kari_decrypt; -+ CMS_SharedInfo_encode; -+ DH_compute_key_padded; -+ d2i_DHxparams; -+ i2d_DHxparams; -+ DH_get_1024_160; -+ DH_get_2048_224; -+ DH_get_2048_256; -+ DH_KDF_X9_42; -+ ECDH_KDF_X9_62; -+ ECDSA_METHOD_new; -+ ECDSA_METHOD_free; -+ ECDSA_METHOD_set_app_data; -+ ECDSA_METHOD_get_app_data; -+ ECDSA_METHOD_set_sign; -+ ECDSA_METHOD_set_sign_setup; -+ ECDSA_METHOD_set_verify; -+ ECDSA_METHOD_set_flags; -+ ECDSA_METHOD_set_name; -+ EVP_des_ede3_wrap; -+ EVP_aes_128_wrap; -+ EVP_aes_192_wrap; -+ EVP_aes_256_wrap; -+ EVP_aes_128_cbc_hmac_sha256; -+ EVP_aes_256_cbc_hmac_sha256; -+ CRYPTO_128_wrap; -+ CRYPTO_128_unwrap; -+ OCSP_REQ_CTX_nbio; -+ OCSP_REQ_CTX_new; -+ OCSP_set_max_response_length; -+ OCSP_REQ_CTX_i2d; -+ OCSP_REQ_CTX_nbio_d2i; -+ OCSP_REQ_CTX_get0_mem_bio; -+ OCSP_REQ_CTX_http; -+ RSA_padding_add_PKCS1_OAEP_mgf1; -+ RSA_padding_check_PKCS1_OAEP_mgf1; -+ RSA_OAEP_PARAMS_free; -+ RSA_OAEP_PARAMS_it; -+ RSA_OAEP_PARAMS_new; -+ SSL_get_sigalgs; -+ SSL_get_shared_sigalgs; -+ SSL_check_chain; -+ X509_chain_up_ref; -+ X509_http_nbio; -+ X509_CRL_http_nbio; -+ X509_REVOKED_dup; -+ i2d_re_X509_tbs; -+ X509_get0_signature; -+ X509_get_signature_nid; -+ X509_CRL_diff; -+ X509_chain_check_suiteb; -+ X509_CRL_check_suiteb; -+ X509_check_host; -+ X509_check_email; -+ X509_check_ip; -+ X509_check_ip_asc; -+ X509_STORE_set_lookup_crls_cb; -+ X509_STORE_CTX_get0_store; -+ X509_VERIFY_PARAM_set1_host; -+ X509_VERIFY_PARAM_add1_host; -+ X509_VERIFY_PARAM_set_hostflags; -+ X509_VERIFY_PARAM_get0_peername; -+ X509_VERIFY_PARAM_set1_email; -+ X509_VERIFY_PARAM_set1_ip; -+ X509_VERIFY_PARAM_set1_ip_asc; -+ X509_VERIFY_PARAM_get0_name; -+ X509_VERIFY_PARAM_get_count; -+ X509_VERIFY_PARAM_get0; -+ X509V3_EXT_free; -+ EC_GROUP_get_mont_data; -+ EC_curve_nid2nist; -+ EC_curve_nist2nid; -+ PEM_write_bio_DHxparams; -+ PEM_write_DHxparams; -+ SSL_CTX_add_client_custom_ext; -+ SSL_CTX_add_server_custom_ext; -+ SSL_extension_supported; -+ BUF_strnlen; -+ sk_deep_copy; -+ SSL_test_functions; -+ -+ local: -+ *; -+}; -+ -+OPENSSL_1.0.2g { -+ global: -+ SRP_VBASE_get1_by_user; -+ SRP_user_pwd_free; -+} OPENSSL_1.0.2d; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.2 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ -Index: openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ openssl-1.0.2~beta1.obsolete.0.0498436515490575/engines/ccgost/openssl.ld 2014-02-24 21:02:30.000000000 +0100 -@@ -0,0 +1,10 @@ -+OPENSSL_1.0.2 { -+ global: -+ bind_engine; -+ v_check; -+ OPENSSL_init; -+ OPENSSL_finish; -+ local: -+ *; -+}; -+ diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/engines-install-in-libdir-ssl.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/engines-install-in-libdir-ssl.patch deleted file mode 100644 index a5746483..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/engines-install-in-libdir-ssl.patch +++ /dev/null @@ -1,64 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - - -Index: openssl-1.0.2/engines/Makefile -=================================================================== ---- openssl-1.0.2.orig/engines/Makefile -+++ openssl-1.0.2/engines/Makefile -@@ -107,13 +107,13 @@ install: - @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... - @if [ -n "$(SHARED_LIBS)" ]; then \ - set -e; \ -- $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines; \ -+ $(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines; \ - for l in $(LIBNAMES); do \ - ( echo installing $$l; \ - pfx=lib; \ - if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ - sfx=".so"; \ -- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ - else \ - case "$(CFLAGS)" in \ - *DSO_BEOS*) sfx=".so";; \ -@@ -122,10 +122,10 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -+ cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx ); \ - done; \ - fi - @target=install; $(RECURSIVE_MAKE) -Index: openssl-1.0.2/engines/ccgost/Makefile -=================================================================== ---- openssl-1.0.2.orig/engines/ccgost/Makefile -+++ openssl-1.0.2/engines/ccgost/Makefile -@@ -47,7 +47,7 @@ install: - pfx=lib; \ - if expr "$(PLATFORM)" : "Cygwin" >/dev/null; then \ - sfx=".so"; \ -- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - else \ - case "$(CFLAGS)" in \ - *DSO_BEOS*) sfx=".so";; \ -@@ -56,10 +56,10 @@ install: - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \ - *) sfx=".bad";; \ - esac; \ -- cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ - fi; \ -- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \ -+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new; \ -+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$${pfx}$(LIBNAME)$$sfx; \ - fi - - links: diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/oe-ldflags.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/oe-ldflags.patch deleted file mode 100644 index 292e13dc..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/oe-ldflags.patch +++ /dev/null @@ -1,24 +0,0 @@ -Upstream-Status: Inappropriate [open-embedded] - -Index: openssl-1.0.0/Makefile.shared -=================================================================== ---- openssl-1.0.0.orig/Makefile.shared -+++ openssl-1.0.0/Makefile.shared -@@ -92,7 +92,7 @@ - LINK_APP= \ - ( $(SET_X); \ - LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ -- LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ -+ LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$(OE_LDFLAGS) $${LDFLAGS:-$(CFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ -@@ -102,7 +102,7 @@ - ( $(SET_X); \ - LIBDEPS="$${LIBDEPS:-$(LIBDEPS)}"; \ - SHAREDCMD="$${SHAREDCMD:-$(CC)}"; \ -- SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ -+ SHAREDFLAGS="$(OE_LDFLAGS) $${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-c_rehash.sh b/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-c_rehash.sh deleted file mode 100644 index 6620fdcb..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-c_rehash.sh +++ /dev/null @@ -1,222 +0,0 @@ -#!/bin/sh -# -# Ben Secrest -# -# sh c_rehash script, scan all files in a directory -# and add symbolic links to their hash values. -# -# based on the c_rehash perl script distributed with openssl -# -# LICENSE: See OpenSSL license -# ^^acceptable?^^ -# - -# default certificate location -DIR=/etc/openssl - -# for filetype bitfield -IS_CERT=$(( 1 << 0 )) -IS_CRL=$(( 1 << 1 )) - - -# check to see if a file is a certificate file or a CRL file -# arguments: -# 1. the filename to be scanned -# returns: -# bitfield of file type; uses ${IS_CERT} and ${IS_CRL} -# -check_file() -{ - local IS_TYPE=0 - - # make IFS a newline so we can process grep output line by line - local OLDIFS=${IFS} - IFS=$( printf "\n" ) - - # XXX: could be more efficient to have two 'grep -m' but is -m portable? - for LINE in $( grep '^-----BEGIN .*-----' ${1} ) - do - if echo ${LINE} \ - | grep -q -E '^-----BEGIN (X509 |TRUSTED )?CERTIFICATE-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CERT} )) - - if [ $(( ${IS_TYPE} & ${IS_CRL} )) -ne 0 ] - then - break - fi - elif echo ${LINE} | grep -q '^-----BEGIN X509 CRL-----' - then - IS_TYPE=$(( ${IS_TYPE} | ${IS_CRL} )) - - if [ $(( ${IS_TYPE} & ${IS_CERT} )) -ne 0 ] - then - break - fi - fi - done - - # restore IFS - IFS=${OLDIFS} - - return ${IS_TYPE} -} - - -# -# use openssl to fingerprint a file -# arguments: -# 1. the filename to fingerprint -# 2. the method to use (x509, crl) -# returns: -# none -# assumptions: -# user will capture output from last stage of pipeline -# -fingerprint() -{ - ${SSL_CMD} ${2} -fingerprint -noout -in ${1} | sed 's/^.*=//' | tr -d ':' -} - - -# -# link_hash - create links to certificate files -# arguments: -# 1. the filename to create a link for -# 2. the type of certificate being linked (x509, crl) -# returns: -# 0 on success, 1 otherwise -# -link_hash() -{ - local FINGERPRINT=$( fingerprint ${1} ${2} ) - local HASH=$( ${SSL_CMD} ${2} -hash -noout -in ${1} ) - local SUFFIX=0 - local LINKFILE='' - local TAG='' - - if [ ${2} = "crl" ] - then - TAG='r' - fi - - LINKFILE=${HASH}.${TAG}${SUFFIX} - - while [ -f ${LINKFILE} ] - do - if [ ${FINGERPRINT} = $( fingerprint ${LINKFILE} ${2} ) ] - then - echo "NOTE: Skipping duplicate file ${1}" >&2 - return 1 - fi - - SUFFIX=$(( ${SUFFIX} + 1 )) - LINKFILE=${HASH}.${TAG}${SUFFIX} - done - - echo "${3} => ${LINKFILE}" - - # assume any system with a POSIX shell will either support symlinks or - # do something to handle this gracefully - ln -s ${3} ${LINKFILE} - - return 0 -} - - -# hash_dir create hash links in a given directory -hash_dir() -{ - echo "Doing ${1}" - - cd ${1} - - ls -1 * 2>/dev/null | while read FILE - do - if echo ${FILE} | grep -q -E '^[[:xdigit:]]{8}\.r?[[:digit:]]+$' \ - && [ -h "${FILE}" ] - then - rm ${FILE} - fi - done - - ls -1 *.pem *.cer *.crt *.crl 2>/dev/null | while read FILE - do - REAL_FILE=${FILE} - # if we run on build host then get to the real files in rootfs - if [ -n "${SYSROOT}" -a -h ${FILE} ] - then - FILE=$( readlink ${FILE} ) - # check the symlink is absolute (or dangling in other word) - if [ "x/" = "x$( echo ${FILE} | cut -c1 -)" ] - then - REAL_FILE=${SYSROOT}/${FILE} - fi - fi - - check_file ${REAL_FILE} - local FILE_TYPE=${?} - local TYPE_STR='' - - if [ $(( ${FILE_TYPE} & ${IS_CERT} )) -ne 0 ] - then - TYPE_STR='x509' - elif [ $(( ${FILE_TYPE} & ${IS_CRL} )) -ne 0 ] - then - TYPE_STR='crl' - else - echo "NOTE: ${FILE} does not contain a certificate or CRL: skipping" >&2 - continue - fi - - link_hash ${REAL_FILE} ${TYPE_STR} ${FILE} - done -} - - -# choose the name of an ssl application -if [ -n "${OPENSSL}" ] -then - SSL_CMD=$(which ${OPENSSL} 2>/dev/null) -else - SSL_CMD=/usr/bin/openssl - OPENSSL=${SSL_CMD} - export OPENSSL -fi - -# fix paths -PATH=${PATH}:${DIR}/bin -export PATH - -# confirm existance/executability of ssl command -if ! [ -x ${SSL_CMD} ] -then - echo "${0}: rehashing skipped ('openssl' program not available)" >&2 - exit 0 -fi - -# determine which directories to process -old_IFS=$IFS -if [ ${#} -gt 0 ] -then - IFS=':' - DIRLIST=${*} -elif [ -n "${SSL_CERT_DIR}" ] -then - DIRLIST=$SSL_CERT_DIR -else - DIRLIST=${DIR}/certs -fi - -IFS=':' - -# process directories -for CERT_DIR in ${DIRLIST} -do - if [ -d ${CERT_DIR} -a -w ${CERT_DIR} ] - then - IFS=$old_IFS - hash_dir ${CERT_DIR} - IFS=':' - fi -done diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-fix-des.pod-error.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-fix-des.pod-error.patch deleted file mode 100644 index de49729e..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl-fix-des.pod-error.patch +++ /dev/null @@ -1,19 +0,0 @@ -openssl: Fix pod2man des.pod error on Ubuntu 12.04 - -This is a formatting fix, '=back' is required before -'=head1' on Ubuntu 12.04. - -Upstream-Status: Pending -Signed-off-by: Baogen Shang -diff -urpN a_origin/des.pod b_modify/des.pod ---- a_origin/crypto/des/des.pod 2013-08-15 15:02:56.211674589 +0800 -+++ b_modify/crypto/des/des.pod 2013-08-15 15:04:14.439674580 +0800 -@@ -181,6 +181,8 @@ the uuencoded file to embed in the begin - output. If there is no name specified after the B<-u>, the name text.des - will be embedded in the header. - -+=back -+ - =head1 SEE ALSO - - ps(1), diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl_fix_for_x32.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl_fix_for_x32.patch deleted file mode 100644 index 0f08a642..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/openssl_fix_for_x32.patch +++ /dev/null @@ -1,39 +0,0 @@ -Upstream-Status: Pending - -Received from H J Liu @ Intel -Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors. -Signed-off-by: Nitin A Kamble 2011/07/13 - -ported the patch to the 1.0.0e version -Signed-off-by: Nitin A Kamble 2011/12/01 -Index: openssl-1.0.2/crypto/bn/bn.h -=================================================================== ---- openssl-1.0.2.orig/crypto/bn/bn.h -+++ openssl-1.0.2/crypto/bn/bn.h -@@ -173,6 +173,13 @@ extern "C" { - # endif - # endif - -+/* Address type. */ -+#ifdef _WIN64 -+#define BN_ADDR unsigned long long -+#else -+#define BN_ADDR unsigned long -+#endif -+ - /* - * assuming long is 64bit - this is the DEC Alpha unsigned long long is only - * 64 bits :-(, don't define BN_LLONG for the DEC Alpha -Index: openssl-1.0.2/crypto/bn/bn_exp.c -=================================================================== ---- openssl-1.0.2.orig/crypto/bn/bn_exp.c -+++ openssl-1.0.2/crypto/bn/bn_exp.c -@@ -638,7 +638,7 @@ static int MOD_EXP_CTIME_COPY_FROM_PREBU - * multiple. - */ - #define MOD_EXP_CTIME_ALIGN(x_) \ -- ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((size_t)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) -+ ((unsigned char*)(x_) + (MOD_EXP_CTIME_MIN_CACHE_LINE_WIDTH - (((BN_ADDR)(x_)) & (MOD_EXP_CTIME_MIN_CACHE_LINE_MASK)))) - - /* - * This variant of BN_mod_exp_mont() uses fixed windows and the special diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/parallel.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/parallel.patch deleted file mode 100644 index 41abf3d6..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/parallel.patch +++ /dev/null @@ -1,368 +0,0 @@ -From 7fb1192f112c1920bfd39f4185f34e9afff3cff2 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Sat, 5 Mar 2016 00:12:02 +0000 -Subject: [PATCH 24/28] Fix the parallel races in the Makefiles. - -This patch was taken from the Gentoo packaging: -https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch - -Upstream-Status: Pending -Signed-off-by: Ross Burton - -Refreshed for 1.0.2i -Signed-off-by: Patrick Ohly - ---- - Makefile.org | 14 ++-- - Makefile.shared | 2 + - crypto/Makefile | 10 +-- - engines/Makefile | 6 +- - test/Makefile | 94 +++++++++++----------- - 5 files changed, 64 insertions(+), 62 deletions(-) - -diff --git a/Makefile.org b/Makefile.org -index efcfafb..82eab91 100644 ---- a/Makefile.org -+++ b/Makefile.org -@@ -282,17 +282,17 @@ build_libcrypto: build_crypto build_engines libcrypto.pc - build_libssl: build_ssl libssl.pc - - build_crypto: -- @dir=crypto; target=all; $(BUILD_ONE_CMD) -+ +@dir=crypto; target=all; $(BUILD_ONE_CMD) - build_ssl: build_crypto -- @dir=ssl; target=all; $(BUILD_ONE_CMD) -+ +@dir=ssl; target=all; $(BUILD_ONE_CMD) - build_engines: build_crypto -- @dir=engines; target=all; $(BUILD_ONE_CMD) -+ +@dir=engines; target=all; $(BUILD_ONE_CMD) - build_apps: build_libs -- @dir=apps; target=all; $(BUILD_ONE_CMD) -+ +@dir=apps; target=all; $(BUILD_ONE_CMD) - build_tests: build_libs -- @dir=test; target=all; $(BUILD_ONE_CMD) -+ +@dir=test; target=all; $(BUILD_ONE_CMD) - build_tools: build_libs -- @dir=tools; target=all; $(BUILD_ONE_CMD) -+ +@dir=tools; target=all; $(BUILD_ONE_CMD) - - all_testapps: build_libs build_testapps - build_testapps: -@@ -564,7 +564,7 @@ install_sw: - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ - done; -- @set -e; target=install; $(RECURSIVE_BUILD_CMD) -+ +@set -e; target=install; $(RECURSIVE_BUILD_CMD) - @set -e; liblist="$(LIBS)"; for i in $$liblist ;\ - do \ - if [ -f "$$i" ]; then \ -diff --git a/Makefile.shared b/Makefile.shared -index bbefb2b..18013a9 100644 ---- a/Makefile.shared -+++ b/Makefile.shared -@@ -105,6 +105,7 @@ LINK_SO= \ - SHAREDFLAGS="$(OE_LDFLAGS) $${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ - LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ - LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ -+ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \ - LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ - $${SHAREDCMD} $${SHAREDFLAGS} \ - -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ -@@ -122,6 +123,7 @@ SYMLINK_SO= \ - done; \ - fi; \ - if [ -n "$$SHLIB_SOVER" ]; then \ -+ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \ - ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \ - ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \ - fi; \ -diff --git a/crypto/Makefile b/crypto/Makefile -index 875ea1a..c22b683 100644 ---- a/crypto/Makefile -+++ b/crypto/Makefile -@@ -85,11 +85,11 @@ testapps: - @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi - - subdirs: -- @target=all; $(RECURSIVE_MAKE) -+ +@target=all; $(RECURSIVE_MAKE) - - files: - $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO -- @target=files; $(RECURSIVE_MAKE) -+ +@target=files; $(RECURSIVE_MAKE) - - links: - @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER) -@@ -100,7 +100,7 @@ links: - # lib: $(LIB): are splitted to avoid end-less loop - lib: $(LIB) - @touch lib --$(LIB): $(LIBOBJ) -+$(LIB): $(LIBOBJ) | subdirs - $(AR) $(LIB) $(LIBOBJ) - test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o - $(RANLIB) $(LIB) || echo Never mind. -@@ -111,7 +111,7 @@ shared: buildinf.h lib subdirs - fi - - libs: -- @target=lib; $(RECURSIVE_MAKE) -+ +@target=lib; $(RECURSIVE_MAKE) - - install: - @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile... -@@ -120,7 +120,7 @@ install: - (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \ - done; -- @target=install; $(RECURSIVE_MAKE) -+ +@target=install; $(RECURSIVE_MAKE) - - lint: - @target=lint; $(RECURSIVE_MAKE) -diff --git a/engines/Makefile b/engines/Makefile -index fe8e9ca..a43d21b 100644 ---- a/engines/Makefile -+++ b/engines/Makefile -@@ -72,7 +72,7 @@ top: - - all: lib subdirs - --lib: $(LIBOBJ) -+lib: $(LIBOBJ) | subdirs - @if [ -n "$(SHARED_LIBS)" ]; then \ - set -e; \ - for l in $(LIBNAMES); do \ -@@ -89,7 +89,7 @@ lib: $(LIBOBJ) - - subdirs: - echo $(EDIRS) -- @target=all; $(RECURSIVE_MAKE) -+ +@target=all; $(RECURSIVE_MAKE) - - files: - $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO -@@ -128,7 +128,7 @@ install: - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/ssl/engines/$$pfx$$l$$sfx ); \ - done; \ - fi -- @target=install; $(RECURSIVE_MAKE) -+ +@target=install; $(RECURSIVE_MAKE) - - tags: - ctags $(SRC) -diff --git a/test/Makefile b/test/Makefile -index 36506cf..c69af8b 100644 ---- a/test/Makefile -+++ b/test/Makefile -@@ -145,7 +145,7 @@ install: - tags: - ctags $(SRC) - --tests: exe apps $(TESTS) -+tests: exe $(TESTS) - - apps: - @(cd ..; $(MAKE) DIRS=apps all) -@@ -448,142 +448,142 @@ BUILD_CMD_STATIC=shlib_target=; \ - link_app.$${shlib_target} - - $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) -- @target=$(RSATEST); $(BUILD_CMD) -+ +@target=$(RSATEST); $(BUILD_CMD) - - $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO) -- @target=$(BNTEST); $(BUILD_CMD) -+ +@target=$(BNTEST); $(BUILD_CMD) - - $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO) -- @target=$(ECTEST); $(BUILD_CMD) -+ +@target=$(ECTEST); $(BUILD_CMD) - - $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO) -- @target=$(EXPTEST); $(BUILD_CMD) -+ +@target=$(EXPTEST); $(BUILD_CMD) - - $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO) -- @target=$(IDEATEST); $(BUILD_CMD) -+ +@target=$(IDEATEST); $(BUILD_CMD) - - $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO) -- @target=$(MD2TEST); $(BUILD_CMD) -+ +@target=$(MD2TEST); $(BUILD_CMD) - - $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO) -- @target=$(SHATEST); $(BUILD_CMD) -+ +@target=$(SHATEST); $(BUILD_CMD) - - $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO) -- @target=$(SHA1TEST); $(BUILD_CMD) -+ +@target=$(SHA1TEST); $(BUILD_CMD) - - $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO) -- @target=$(SHA256TEST); $(BUILD_CMD) -+ +@target=$(SHA256TEST); $(BUILD_CMD) - - $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO) -- @target=$(SHA512TEST); $(BUILD_CMD) -+ +@target=$(SHA512TEST); $(BUILD_CMD) - - $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO) -- @target=$(RMDTEST); $(BUILD_CMD) -+ +@target=$(RMDTEST); $(BUILD_CMD) - - $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO) -- @target=$(MDC2TEST); $(BUILD_CMD) -+ +@target=$(MDC2TEST); $(BUILD_CMD) - - $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO) -- @target=$(MD4TEST); $(BUILD_CMD) -+ +@target=$(MD4TEST); $(BUILD_CMD) - - $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO) -- @target=$(MD5TEST); $(BUILD_CMD) -+ +@target=$(MD5TEST); $(BUILD_CMD) - - $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO) -- @target=$(HMACTEST); $(BUILD_CMD) -+ +@target=$(HMACTEST); $(BUILD_CMD) - - $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO) -- @target=$(WPTEST); $(BUILD_CMD) -+ +@target=$(WPTEST); $(BUILD_CMD) - - $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO) -- @target=$(RC2TEST); $(BUILD_CMD) -+ +@target=$(RC2TEST); $(BUILD_CMD) - - $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO) -- @target=$(BFTEST); $(BUILD_CMD) -+ +@target=$(BFTEST); $(BUILD_CMD) - - $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO) -- @target=$(CASTTEST); $(BUILD_CMD) -+ +@target=$(CASTTEST); $(BUILD_CMD) - - $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO) -- @target=$(RC4TEST); $(BUILD_CMD) -+ +@target=$(RC4TEST); $(BUILD_CMD) - - $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO) -- @target=$(RC5TEST); $(BUILD_CMD) -+ +@target=$(RC5TEST); $(BUILD_CMD) - - $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO) -- @target=$(DESTEST); $(BUILD_CMD) -+ +@target=$(DESTEST); $(BUILD_CMD) - - $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO) -- @target=$(RANDTEST); $(BUILD_CMD) -+ +@target=$(RANDTEST); $(BUILD_CMD) - - $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO) -- @target=$(DHTEST); $(BUILD_CMD) -+ +@target=$(DHTEST); $(BUILD_CMD) - - $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO) -- @target=$(DSATEST); $(BUILD_CMD) -+ +@target=$(DSATEST); $(BUILD_CMD) - - $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO) -- @target=$(METHTEST); $(BUILD_CMD) -+ +@target=$(METHTEST); $(BUILD_CMD) - - $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO) -- @target=$(SSLTEST); $(FIPS_BUILD_CMD) -+ +@target=$(SSLTEST); $(FIPS_BUILD_CMD) - - $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO) -- @target=$(ENGINETEST); $(BUILD_CMD) -+ +@target=$(ENGINETEST); $(BUILD_CMD) - - $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO) -- @target=$(EVPTEST); $(BUILD_CMD) -+ +@target=$(EVPTEST); $(BUILD_CMD) - - $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO) -- @target=$(EVPEXTRATEST); $(BUILD_CMD) -+ +@target=$(EVPEXTRATEST); $(BUILD_CMD) - - $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO) -- @target=$(ECDSATEST); $(BUILD_CMD) -+ +@target=$(ECDSATEST); $(BUILD_CMD) - - $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO) -- @target=$(ECDHTEST); $(BUILD_CMD) -+ +@target=$(ECDHTEST); $(BUILD_CMD) - - $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO) -- @target=$(IGETEST); $(BUILD_CMD) -+ +@target=$(IGETEST); $(BUILD_CMD) - - $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO) -- @target=$(JPAKETEST); $(BUILD_CMD) -+ +@target=$(JPAKETEST); $(BUILD_CMD) - - $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO) -- @target=$(ASN1TEST); $(BUILD_CMD) -+ +@target=$(ASN1TEST); $(BUILD_CMD) - - $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) -- @target=$(SRPTEST); $(BUILD_CMD) -+ +@target=$(SRPTEST); $(BUILD_CMD) - - $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) -- @target=$(V3NAMETEST); $(BUILD_CMD) -+ +@target=$(V3NAMETEST); $(BUILD_CMD) - - $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) -- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) -+ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) - - $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o -- @target=$(CONSTTIMETEST) $(BUILD_CMD) -+ +@target=$(CONSTTIMETEST) $(BUILD_CMD) - - $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o -- @target=$(VERIFYEXTRATEST) $(BUILD_CMD) -+ +@target=$(VERIFYEXTRATEST) $(BUILD_CMD) - - $(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o -- @target=$(CLIENTHELLOTEST) $(BUILD_CMD) -+ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD) - - $(BADDTLSTEST)$(EXE_EXT): $(BADDTLSTEST).o -- @target=$(BADDTLSTEST) $(BUILD_CMD) -+ +@target=$(BADDTLSTEST) $(BUILD_CMD) - - $(FATALERRTEST)$(EXE_EXT): $(FATALERRTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO) - @target=$(FATALERRTEST); exobj=ssltestlib.o; $(BUILD_CMD) - - $(X509TIMETEST)$(EXE_EXT): $(X509TIMETEST).o -- @target=$(X509TIMETEST) $(BUILD_CMD) -+ +@target=$(X509TIMETEST) $(BUILD_CMD) - - $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o -- @target=$(SSLV2CONFTEST) $(BUILD_CMD) -+ +@target=$(SSLV2CONFTEST) $(BUILD_CMD) - - $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO) -- @target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD) -+ +@target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD) - - #$(AESTEST).o: $(AESTEST).c - # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c -@@ -596,7 +596,7 @@ $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO) - # fi - - dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO) -- @target=dummytest; $(BUILD_CMD) -+ +@target=dummytest; $(BUILD_CMD) - - # DO NOT DELETE THIS LINE -- make depend depends on it. - --- -2.15.1 - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest-deps.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest-deps.patch deleted file mode 100644 index ef6d1793..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest-deps.patch +++ /dev/null @@ -1,34 +0,0 @@ -Remove Makefile dependencies for test targets - -These are probably here because the executables aren't always built for -other platforms (e.g. Windows); however we can safely assume they'll -always be there. None of the other test targets have such dependencies -and if we don't remove them, make tries to rebuild the executables and -fails during run-ptest. - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Paul Eggleton - -Index: openssl-1.0.2/test/Makefile -=================================================================== ---- openssl-1.0.2.orig/test/Makefile -+++ openssl-1.0.2/test/Makefile -@@ -330,7 +330,7 @@ test_cms: ../apps/openssl$(EXE_EXT) cms- - @echo "CMS consistency test" - $(PERL) cms-test.pl - --test_srp: $(SRPTEST)$(EXE_EXT) -+test_srp: - @echo "Test SRP" - ../util/shlib_wrap.sh ./srptest - -@@ -342,7 +342,7 @@ test_v3name: $(V3NAMETEST)$(EXE_EXT) - @echo "Test X509v3_check_*" - ../util/shlib_wrap.sh ./$(V3NAMETEST) - --test_heartbeat: $(HEARTBEATTEST)$(EXE_EXT) -+test_heartbeat: - ../util/shlib_wrap.sh ./$(HEARTBEATTEST) - - test_constant_time: $(CONSTTIMETEST)$(EXE_EXT) diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest_makefile_deps.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest_makefile_deps.patch deleted file mode 100644 index 4202e61d..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/ptest_makefile_deps.patch +++ /dev/null @@ -1,248 +0,0 @@ -Additional Makefile dependencies removal for test targets - -Removing the dependency check for test targets as these tests are -causing a number of failures and "noise" during ptest execution. - -Upstream-Status: Inappropriate [config] - -Signed-off-by: Maxin B. John - -diff -Naur openssl-1.0.2d-orig/test/Makefile openssl-1.0.2d/test/Makefile ---- openssl-1.0.2d-orig/test/Makefile 2015-09-28 12:50:41.530022979 +0300 -+++ openssl-1.0.2d/test/Makefile 2015-09-28 12:57:45.930717240 +0300 -@@ -155,67 +155,67 @@ - ( $(MAKE) $$i && echo "PASS: $$i" ) || echo "FAIL: $$i"; \ - done) - --test_evp: $(EVPTEST)$(EXE_EXT) evptests.txt -+test_evp: - ../util/shlib_wrap.sh ./$(EVPTEST) evptests.txt - --test_evp_extra: $(EVPEXTRATEST)$(EXE_EXT) -+test_evp_extra: - ../util/shlib_wrap.sh ./$(EVPEXTRATEST) - --test_des: $(DESTEST)$(EXE_EXT) -+test_des: - ../util/shlib_wrap.sh ./$(DESTEST) - --test_idea: $(IDEATEST)$(EXE_EXT) -+test_idea: - ../util/shlib_wrap.sh ./$(IDEATEST) - --test_sha: $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) -+test_sha: - ../util/shlib_wrap.sh ./$(SHATEST) - ../util/shlib_wrap.sh ./$(SHA1TEST) - ../util/shlib_wrap.sh ./$(SHA256TEST) - ../util/shlib_wrap.sh ./$(SHA512TEST) - --test_mdc2: $(MDC2TEST)$(EXE_EXT) -+test_mdc2: - ../util/shlib_wrap.sh ./$(MDC2TEST) - --test_md5: $(MD5TEST)$(EXE_EXT) -+test_md5: - ../util/shlib_wrap.sh ./$(MD5TEST) - --test_md4: $(MD4TEST)$(EXE_EXT) -+test_md4: - ../util/shlib_wrap.sh ./$(MD4TEST) - --test_hmac: $(HMACTEST)$(EXE_EXT) -+test_hmac: - ../util/shlib_wrap.sh ./$(HMACTEST) - --test_wp: $(WPTEST)$(EXE_EXT) -+test_wp: - ../util/shlib_wrap.sh ./$(WPTEST) - --test_md2: $(MD2TEST)$(EXE_EXT) -+test_md2: - ../util/shlib_wrap.sh ./$(MD2TEST) - --test_rmd: $(RMDTEST)$(EXE_EXT) -+test_rmd: - ../util/shlib_wrap.sh ./$(RMDTEST) - --test_bf: $(BFTEST)$(EXE_EXT) -+test_bf: - ../util/shlib_wrap.sh ./$(BFTEST) - --test_cast: $(CASTTEST)$(EXE_EXT) -+test_cast: - ../util/shlib_wrap.sh ./$(CASTTEST) - --test_rc2: $(RC2TEST)$(EXE_EXT) -+test_rc2: - ../util/shlib_wrap.sh ./$(RC2TEST) - --test_rc4: $(RC4TEST)$(EXE_EXT) -+test_rc4: - ../util/shlib_wrap.sh ./$(RC4TEST) - --test_rc5: $(RC5TEST)$(EXE_EXT) -+test_rc5: - ../util/shlib_wrap.sh ./$(RC5TEST) - --test_rand: $(RANDTEST)$(EXE_EXT) -+test_rand: - ../util/shlib_wrap.sh ./$(RANDTEST) - --test_enc: ../apps/openssl$(EXE_EXT) testenc -+test_enc: - @sh ./testenc - --test_x509: ../apps/openssl$(EXE_EXT) tx509 testx509.pem v3-cert1.pem v3-cert2.pem -+test_x509: - echo test normal x509v1 certificate - sh ./tx509 2>/dev/null - echo test first x509v3 certificate -@@ -223,25 +223,25 @@ - echo test second x509v3 certificate - sh ./tx509 v3-cert2.pem 2>/dev/null - --test_rsa: ../apps/openssl$(EXE_EXT) trsa testrsa.pem -+test_rsa: - @sh ./trsa 2>/dev/null - ../util/shlib_wrap.sh ./$(RSATEST) - --test_crl: ../apps/openssl$(EXE_EXT) tcrl testcrl.pem -+test_crl: - @sh ./tcrl 2>/dev/null - --test_sid: ../apps/openssl$(EXE_EXT) tsid testsid.pem -+test_sid: - @sh ./tsid 2>/dev/null - --test_req: ../apps/openssl$(EXE_EXT) treq testreq.pem testreq2.pem -+test_req: - @sh ./treq 2>/dev/null - @sh ./treq testreq2.pem 2>/dev/null - --test_pkcs7: ../apps/openssl$(EXE_EXT) tpkcs7 tpkcs7d testp7.pem pkcs7-1.pem -+test_pkcs7: - @sh ./tpkcs7 2>/dev/null - @sh ./tpkcs7d 2>/dev/null - --test_bn: $(BNTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) bctest -+test_bn: - @echo starting big number library test, could take a while... - @../util/shlib_wrap.sh ./$(BNTEST) >tmp.bntest - @echo quit >>tmp.bntest -@@ -250,33 +250,33 @@ - @echo 'test a^b%c implementations' - ../util/shlib_wrap.sh ./$(EXPTEST) - --test_ec: $(ECTEST)$(EXE_EXT) -+test_ec: - @echo 'test elliptic curves' - ../util/shlib_wrap.sh ./$(ECTEST) - --test_ecdsa: $(ECDSATEST)$(EXE_EXT) -+test_ecdsa: - @echo 'test ecdsa' - ../util/shlib_wrap.sh ./$(ECDSATEST) - --test_ecdh: $(ECDHTEST)$(EXE_EXT) -+test_ecdh: - @echo 'test ecdh' - ../util/shlib_wrap.sh ./$(ECDHTEST) - --test_verify: ../apps/openssl$(EXE_EXT) -+test_verify: - @echo "The following command should have some OK's and some failures" - @echo "There are definitly a few expired certificates" - ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs/demo ../certs/demo/*.pem - --test_dh: $(DHTEST)$(EXE_EXT) -+test_dh: - @echo "Generate a set of DH parameters" - ../util/shlib_wrap.sh ./$(DHTEST) - --test_dsa: $(DSATEST)$(EXE_EXT) -+test_dsa: - @echo "Generate a set of DSA parameters" - ../util/shlib_wrap.sh ./$(DSATEST) - ../util/shlib_wrap.sh ./$(DSATEST) -app2_1 - --test_gen testreq.pem: ../apps/openssl$(EXE_EXT) testgen test.cnf -+test_gen testreq.pem: - @echo "Generate and verify a certificate request" - @sh ./testgen - -@@ -288,13 +288,11 @@ - @cat certCA.ss certU.ss > intP1.ss - @cat certCA.ss certU.ss certP1.ss > intP2.ss - --test_engine: $(ENGINETEST)$(EXE_EXT) -+test_engine: - @echo "Manipulate the ENGINE structures" - ../util/shlib_wrap.sh ./$(ENGINETEST) - --test_ssl: keyU.ss certU.ss certCA.ss certP1.ss keyP1.ss certP2.ss keyP2.ss \ -- intP1.ss intP2.ss $(SSLTEST)$(EXE_EXT) testssl testsslproxy \ -- ../apps/server2.pem serverinfo.pem -+test_ssl: - @echo "test SSL protocol" - @if [ -n "$(FIPSCANLIB)" ]; then \ - sh ./testfipsssl keyU.ss certU.ss certCA.ss; \ -@@ -304,7 +302,7 @@ - @sh ./testsslproxy keyP1.ss certP1.ss intP1.ss - @sh ./testsslproxy keyP2.ss certP2.ss intP2.ss - --test_ca: ../apps/openssl$(EXE_EXT) testca CAss.cnf Uss.cnf -+test_ca: - @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \ - echo "skipping CA.sh test -- requires RSA"; \ - else \ -@@ -312,11 +310,11 @@ - sh ./testca; \ - fi - --test_aes: #$(AESTEST) -+test_aes: - # @echo "test Rijndael" - # ../util/shlib_wrap.sh ./$(AESTEST) - --test_tsa: ../apps/openssl$(EXE_EXT) testtsa CAtsa.cnf ../util/shlib_wrap.sh -+test_tsa: - @if ../util/shlib_wrap.sh ../apps/openssl no-rsa; then \ - echo "skipping testtsa test -- requires RSA"; \ - else \ -@@ -331,7 +329,7 @@ - @echo "Test JPAKE" - ../util/shlib_wrap.sh ./$(JPAKETEST) - --test_cms: ../apps/openssl$(EXE_EXT) cms-test.pl smcont.txt -+test_cms: - @echo "CMS consistency test" - $(PERL) cms-test.pl - -@@ -339,22 +337,22 @@ - @echo "Test SRP" - ../util/shlib_wrap.sh ./srptest - --test_ocsp: ../apps/openssl$(EXE_EXT) tocsp -+test_ocsp: - @echo "Test OCSP" - @sh ./tocsp - --test_v3name: $(V3NAMETEST)$(EXE_EXT) -+test_v3name: - @echo "Test X509v3_check_*" - ../util/shlib_wrap.sh ./$(V3NAMETEST) - - test_heartbeat: - ../util/shlib_wrap.sh ./$(HEARTBEATTEST) - --test_constant_time: $(CONSTTIMETEST)$(EXE_EXT) -+test_constant_time: - @echo "Test constant time utilites" - ../util/shlib_wrap.sh ./$(CONSTTIMETEST) - --test_verify_extra: $(VERIFYEXTRATEST)$(EXE_EXT) -+test_verify_extra: - @echo $(START) $@ - ../util/shlib_wrap.sh ./$(VERIFYEXTRATEST) - diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-cflags.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-cflags.patch deleted file mode 100644 index 2803cb03..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-cflags.patch +++ /dev/null @@ -1,20 +0,0 @@ -Allow passing custom c-flags to mkbuildinf.pl in order to pass -flags without any build host references - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Juro Bystricky - ---- Makefile 2018-03-06 14:50:18.342138147 -0800 -+++ Makefile 2018-03-06 15:24:04.794239071 -0800 ---- a/crypto/Makefile -+++ b/crypto/Makefile -@@ -55,7 +55,7 @@ - all: shared - - buildinf.h: ../Makefile -- $(PERL) $(TOP)/util/mkbuildinf.pl "$(CC) $(CFLAGS)" "$(PLATFORM)" >buildinf.h -+ $(PERL) $(TOP)/util/mkbuildinf.pl "$(CC_INFO)" "$(PLATFORM)" >buildinf.h - - x86cpuid.s: x86cpuid.pl perlasm/x86asm.pl - $(PERL) x86cpuid.pl $(PERLASM_SCHEME) $(CFLAGS) $(PROCESSOR) > $@ diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-mkbuildinf.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-mkbuildinf.patch deleted file mode 100644 index b5567312..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/reproducible-mkbuildinf.patch +++ /dev/null @@ -1,21 +0,0 @@ -If SOURCE_DATE_EPOCH is present in the environment, use it as build date. -Also make sure to use UTC time. - -Upstream-Status: Backport [ https://github.com/openssl/openssl/blob/master/util/mkbuildinf.pl ] - -Signed-off-by: Juro Bystricky - ---- mkbuildinf.pl 2018-03-06 14:20:09.438048058 -0800 -+++ mkbuildinf.pl 2018-03-06 14:19:20.722045632 -0800 ---- a/util/mkbuildinf.pl -+++ b/util/mkbuildinf.pl -@@ -3,7 +3,8 @@ - my ($cflags, $platform) = @ARGV; - - $cflags = "compiler: $cflags"; --$date = localtime(); -+my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC"; -+ - print <<"END_OUTPUT"; - #ifndef MK1MF_BUILD - /* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */ diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/run-ptest b/external/poky/meta/recipes-connectivity/openssl/openssl10/run-ptest deleted file mode 100755 index 3b20fce1..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/run-ptest +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -make -k runtest diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10/shared-libs.patch b/external/poky/meta/recipes-connectivity/openssl/openssl10/shared-libs.patch deleted file mode 100644 index a7ca0a30..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10/shared-libs.patch +++ /dev/null @@ -1,41 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -Index: openssl-1.0.1e/crypto/Makefile -=================================================================== ---- openssl-1.0.1e.orig/crypto/Makefile -+++ openssl-1.0.1e/crypto/Makefile -@@ -108,7 +108,7 @@ $(LIB): $(LIBOBJ) - - shared: buildinf.h lib subdirs - if [ -n "$(SHARED_LIBS)" ]; then \ -- (cd ..; $(MAKE) $(SHARED_LIB)); \ -+ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ - fi - - libs: -Index: openssl-1.0.1e/Makefile.org -=================================================================== ---- openssl-1.0.1e.orig/Makefile.org -+++ openssl-1.0.1e/Makefile.org -@@ -310,7 +310,7 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_ - - libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a - @if [ "$(SHLIB_TARGET)" != "" ]; then \ -- $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ -+ $(MAKE) -e SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \ - else \ - echo "There's no support for shared libraries on this platform" >&2; \ - exit 1; \ -Index: openssl-1.0.1e/ssl/Makefile -=================================================================== ---- openssl-1.0.1e.orig/ssl/Makefile -+++ openssl-1.0.1e/ssl/Makefile -@@ -62,7 +62,7 @@ lib: $(LIBOBJ) - - shared: lib - if [ -n "$(SHARED_LIBS)" ]; then \ -- (cd ..; $(MAKE) $(SHARED_LIB)); \ -+ (cd ..; $(MAKE) -e $(SHARED_LIB)); \ - fi - - files: diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl10_1.0.2r.bb b/external/poky/meta/recipes-connectivity/openssl/openssl10_1.0.2r.bb deleted file mode 100644 index da7223dc..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl10_1.0.2r.bb +++ /dev/null @@ -1,363 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl | SSLeay" dual license -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=f475368924827d06d4b416111c8bdb77" - -DEPENDS = "hostperl-runtime-native" -DEPENDS_append_class-target = " openssl-native" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - file://run-ptest \ - file://openssl-c_rehash.sh \ - file://configure-targets.patch \ - file://shared-libs.patch \ - file://oe-ldflags.patch \ - file://engines-install-in-libdir-ssl.patch \ - file://debian1.0.2/block_diginotar.patch \ - file://debian1.0.2/block_digicert_malaysia.patch \ - file://debian/c_rehash-compat.patch \ - file://debian/debian-targets.patch \ - file://debian/man-dir.patch \ - file://debian/man-section.patch \ - file://debian/no-rpath.patch \ - file://debian/no-symbolic.patch \ - file://debian/pic.patch \ - file://debian1.0.2/version-script.patch \ - file://debian1.0.2/soname.patch \ - file://openssl_fix_for_x32.patch \ - file://openssl-fix-des.pod-error.patch \ - file://Makefiles-ptest.patch \ - file://ptest-deps.patch \ - file://ptest_makefile_deps.patch \ - file://configure-musl-target.patch \ - file://parallel.patch \ - file://Use-SHA256-not-MD5-as-default-digest.patch \ - file://0001-Fix-build-with-clang-using-external-assembler.patch \ - file://0001-openssl-force-soft-link-to-avoid-rare-race.patch \ - file://0001-allow-manpages-to-be-disabled.patch \ - file://0001-Fix-BN_LLONG-breakage.patch \ - file://0001-Fix-DES_LONG-breakage.patch \ - " - -SRC_URI_append_class-target = " \ - file://reproducible-cflags.patch \ - file://reproducible-mkbuildinf.patch \ - " - -SRC_URI_append_class-nativesdk = " \ - file://environment.d-openssl.sh \ - " - -SRC_URI[md5sum] = "0d2baaf04c56d542f6cc757b9c2a2aac" -SRC_URI[sha256sum] = "ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6" - -S = "${WORKDIR}/openssl-${PV}" - -UPSTREAM_CHECK_REGEX = "openssl-(?P1\.0.+)\.tar" - -inherit pkgconfig siteinfo multilib_header ptest manpages - -PACKAGECONFIG ?= "cryptodev-linux" -PACKAGECONFIG_class-native = "" -PACKAGECONFIG_class-nativesdk = "" - -PACKAGECONFIG[cryptodev-linux] = "-DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS,,cryptodev-linux" -PACKAGECONFIG[manpages] = ",,," -PACKAGECONFIG[perl] = ",,," - -# Remove this to enable SSLv3. SSLv3 is defaulted to disabled due to the POODLE -# vulnerability -EXTRA_OECONF = "no-ssl3" - -EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'manpages', '', 'OE_DISABLE_MANPAGES=1', d)}" - -export OE_LDFLAGS = "${LDFLAGS}" - -# openssl fails with ccache: https://bugzilla.yoctoproject.org/show_bug.cgi?id=12810 -CCACHE = "" - -TERMIO ?= "-DTERMIO" -TERMIO_libc-musl = "-DTERMIOS" -EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" - -CFLAG = "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DL_ENDIAN', '-DB_ENDIAN', d)} \ - ${TERMIO} ${CFLAGS} -Wall" - -# Avoid binaries being marked as requiring an executable stack since they don't -# (and it causes issues with SELinux) -CFLAG += "-Wa,--noexecstack" - -CFLAG_append_class-native = " -fPIC" - -do_configure () { - # The crypto_use_bigint patch means that perl's bignum module needs to be - # installed, but some distributions (for example Fedora 23) don't ship it by - # default. As the resulting error is very misleading check for bignum before - # building. - if ! perl -Mbigint -e true; then - bbfatal "The perl module 'bignum' was not found but this is required to build openssl. Please install this module (often packaged as perl-bignum) and re-run bitbake." - fi - - ln -sf apps/openssl.pod crypto/crypto.pod ssl/ssl.pod doc/ - - os=${HOST_OS} - case $os in - linux-gnueabi |\ - linux-gnuspe |\ - linux-musleabi |\ - linux-muslspe |\ - linux-musl ) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm) - target=linux-armv4 - ;; - linux-armeb) - target=linux-elf-armeb - ;; - linux-aarch64*) - target=linux-aarch64 - ;; - linux-sh3) - target=debian-sh3 - ;; - linux-sh4) - target=debian-sh4 - ;; - linux-i486) - target=debian-i386-i486 - ;; - linux-i586 | linux-viac3) - target=debian-i386-i586 - ;; - linux-i686) - target=debian-i386-i686/cmov - ;; - linux-gnux32-x86_64 | linux-muslx32-x86_64 ) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-gnun32-mips*el) - target=debian-mipsn32el - ;; - linux-gnun32-mips*) - target=debian-mipsn32 - ;; - linux-mips*64*el) - target=debian-mips64el - ;; - linux-mips*64*) - target=debian-mips64 - ;; - linux-mips*el) - target=debian-mipsel - ;; - linux-mips*) - target=debian-mips - ;; - linux-microblaze* | linux-nios2* | linux-gnu*ilp32** | linux-arc*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-riscv32) - target=linux-generic32 - ;; - linux-riscv64) - target=linux-generic64 - ;; - linux-sparc | linux-supersparc) - target=linux-sparcv8 - ;; - esac - - # inject machine-specific flags - sed -i -e "s|^\(\"$target\",\s*\"[^:]\+\):\([^:]\+\)|\1:${CFLAG}|g" Configure - - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - fi - libdirleaf="$( echo "${libdir}" | sed "s:^$useprefix/*::" )" - perl ./Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} shared --prefix=$useprefix --openssldir=${libdir}/ssl --libdir=$libdirleaf $target -} - -do_compile () { - oe_runmake depend - oe_runmake -} - -do_compile_class-target () { - sed -i 's/\((OPENSSL=\)".*"/\1"openssl"/' Makefile - oe_runmake depend - cc_sanitized=$(echo "${CC} ${CFLAG}" | sed -e 's,--sysroot=${STAGING_DIR_TARGET},,g' -e 's|${DEBUG_PREFIX_MAP}||g' -e 's/[ \t]\+/ /g') - oe_runmake CC_INFO="$cc_sanitized" -} - -do_compile_ptest () { - oe_runmake buildtest -} - -do_install () { - # Create ${D}/${prefix} to fix parallel issues - mkdir -p ${D}/${prefix}/ - - oe_runmake INSTALL_PREFIX="${D}" MANDIR="${mandir}" install - - oe_libinstall -so libcrypto ${D}${libdir} - oe_libinstall -so libssl ${D}${libdir} - - install -d ${D}${includedir} - cp --dereference -R include/openssl ${D}${includedir} - - oe_multilib_header openssl/opensslconf.h - - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash - - if [ "${@bb.utils.filter('PACKAGECONFIG', 'perl', d)}" ]; then - sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/CA.pl - sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/tsget - else - rm -f ${D}${libdir}/ssl/misc/CA.pl ${D}${libdir}/ssl/misc/tsget - fi - - # Create SSL structure for packages such as ca-certificates which - # contain hard-coded paths to /etc/ssl. Debian does the same. - install -d ${D}${sysconfdir}/ssl - mv ${D}${libdir}/ssl/certs \ - ${D}${libdir}/ssl/private \ - ${D}${libdir}/ssl/openssl.cnf \ - ${D}${sysconfdir}/ssl/ - - # Although absolute symlinks would be OK for the target, they become - # invalid if native or nativesdk are relocated from sstate. - ln -sf ${@oe.path.relative('${libdir}/ssl', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl/certs - ln -sf ${@oe.path.relative('${libdir}/ssl', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl/private - ln -sf ${@oe.path.relative('${libdir}/ssl', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl/openssl.cnf - - # Rename man pages to prefix openssl10-* - for f in `find ${D}${mandir} -type f`; do - mv $f $(dirname $f)/openssl10-$(basename $f) - done - for f in `find ${D}${mandir} -type l`; do - ln_f=`readlink $f` - rm -f $f - ln -s openssl10-$ln_f $(dirname $f)/openssl10-$(basename $f) - done -} - -do_install_append_class-native () { - create_wrapper ${D}${bindir}/openssl \ - OPENSSL_CONF=${libdir}/ssl/openssl.cnf \ - SSL_CERT_DIR=${libdir}/ssl/certs \ - SSL_CERT_FILE=${libdir}/ssl/cert.pem \ - OPENSSL_ENGINES=${libdir}/ssl/engines -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh -} - -do_install_ptest () { - cp -r -L Makefile.org Makefile test ${D}${PTEST_PATH} - - # Replace the path to native perl with the path to target perl - sed -i 's,^PERL=.*,PERL=${bindir}/perl,' ${D}${PTEST_PATH}/Makefile - - cp Configure config e_os.h ${D}${PTEST_PATH} - cp -r -L include ${D}${PTEST_PATH} - ln -sf ${libdir}/libcrypto.a ${D}${PTEST_PATH} - ln -sf ${libdir}/libssl.a ${D}${PTEST_PATH} - mkdir -p ${D}${PTEST_PATH}/crypto - cp crypto/constant_time_locl.h ${D}${PTEST_PATH}/crypto - cp -r certs ${D}${PTEST_PATH} - mkdir -p ${D}${PTEST_PATH}/apps - ln -sf ${libdir}/ssl/misc/CA.sh ${D}${PTEST_PATH}/apps - ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${PTEST_PATH}/apps - ln -sf ${bindir}/openssl ${D}${PTEST_PATH}/apps - cp apps/server.pem ${D}${PTEST_PATH}/apps - cp apps/server2.pem ${D}${PTEST_PATH}/apps - mkdir -p ${D}${PTEST_PATH}/util - install util/opensslwrap.sh ${D}${PTEST_PATH}/util - install util/shlib_wrap.sh ${D}${PTEST_PATH}/util - # Time stamps are relevant for "make alltests", otherwise - # make may try to recompile binaries. Not only must the - # binary files be newer than the sources, they also must - # be more recent than the header files in /usr/include. - # - # Using "cp -a" is not sufficient, because do_install - # does not preserve the original time stamps. - # - # So instead of using the original file stamps, we set - # the current time for all files. Binaries will get - # modified again later when stripping them, but that's okay. - touch ${D}${PTEST_PATH} - find ${D}${PTEST_PATH} -type f -print0 | xargs --verbose -0 touch -r ${D}${PTEST_PATH} - - # exclude binary files or the package won't install - for d in ssltest_old v3ext x509aux; do - rm -rf ${D}${libdir}/${BPN}/ptest/test/$d - done - - # Remove build host references - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - ${D}${PTEST_PATH}/Makefile ${D}${PTEST_PATH}/Configure -} - -# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto -# package RRECOMMENDS on this package. This will enable the configuration -# file to be installed for both the base openssl package and the libcrypto -# package since the base openssl package depends on the libcrypto package. - -PACKAGES =+ "libcrypto10 libssl10 openssl10-conf ${PN}-engines ${PN}-misc" - -FILES_libcrypto10 = "${libdir}/libcrypto${SOLIBS}" -FILES_libssl10 = "${libdir}/libssl${SOLIBS}" -FILES_openssl10-conf = "${sysconfdir}/ssl/openssl.cnf" -FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines" -FILES_${PN}-misc = "${libdir}/ssl/misc" -FILES_${PN} =+ "${libdir}/ssl/*" -FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh" - -CONFFILES_openssl10-conf = "${sysconfdir}/ssl/openssl.cnf" - -RRECOMMENDS_libcrypto10 += "openssl10-conf" -RDEPENDS_${PN}-misc = "${@bb.utils.filter('PACKAGECONFIG', 'perl', d)}" -RDEPENDS_${PN}-ptest += "${PN}-misc make perl perl-module-filehandle bc" - -BBCLASSEXTEND = "native nativesdk" -PACKAGE_PREPROCESS_FUNCS += "openssl_package_preprocess" - -# openssl 1.0 development files and executable binaries clash with openssl 1.1 -# files when installed into target rootfs. So we don't put them into -# packages, but they continue to be provided via target sysroot for -# cross-compilation on the host, if some software still depends on openssl 1.0. -openssl_package_preprocess () { - for file in `find ${PKGD} -name *.h -o -name *.pc -o -name *.so`; do - rm $file - done - rm ${PKGD}${bindir}/openssl - rm ${PKGD}${bindir}/c_rehash - rmdir ${PKGD}${bindir} - -} diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1b.bb b/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1b.bb deleted file mode 100644 index 337aaa17..00000000 --- a/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1b.bb +++ /dev/null @@ -1,218 +0,0 @@ -SUMMARY = "Secure Socket Layer" -DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." -HOMEPAGE = "http://www.openssl.org/" -BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" -SECTION = "libs/network" - -# "openssl" here actually means both OpenSSL and SSLeay licenses apply -# (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped) -LICENSE = "openssl" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" - -DEPENDS = "hostperl-runtime-native" - -SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ - file://run-ptest \ - file://openssl-c_rehash.sh \ - file://0001-skip-test_symbol_presence.patch \ - file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ - file://afalg.patch \ - file://CVE-2019-1543.patch \ - " - -SRC_URI_append_class-nativesdk = " \ - file://environment.d-openssl.sh \ - " - -SRC_URI[md5sum] = "4532712e7bcc9414f5bce995e4e13930" -SRC_URI[sha256sum] = "5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b" - -inherit lib_package multilib_header ptest - -PACKAGECONFIG ?= "" -PACKAGECONFIG_class-native = "" -PACKAGECONFIG_class-nativesdk = "" - -PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux" - -B = "${WORKDIR}/build" -do_configure[cleandirs] = "${B}" - -#| ./libcrypto.so: undefined reference to `getcontext' -#| ./libcrypto.so: undefined reference to `setcontext' -#| ./libcrypto.so: undefined reference to `makecontext' -EXTRA_OECONF_append_libc-musl = " no-async" -EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" - -# This prevents openssl from using getrandom() which is not available on older glibc versions -# (native versions can be built with newer glibc, but then relocated onto a system with older glibc) -EXTRA_OECONF_class-native = "--with-rand-seed=devrandom" -EXTRA_OECONF_class-nativesdk = "--with-rand-seed=devrandom" - -# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate. -CFLAGS_append_class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" -CFLAGS_append_class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" - -do_configure () { - os=${HOST_OS} - case $os in - linux-gnueabi |\ - linux-gnuspe |\ - linux-musleabi |\ - linux-muslspe |\ - linux-musl ) - os=linux - ;; - *) - ;; - esac - target="$os-${HOST_ARCH}" - case $target in - linux-arm*) - target=linux-armv4 - ;; - linux-aarch64*) - target=linux-aarch64 - ;; - linux-i?86 | linux-viac3) - target=linux-x86 - ;; - linux-gnux32-x86_64 | linux-muslx32-x86_64 ) - target=linux-x32 - ;; - linux-gnu64-x86_64) - target=linux-x86_64 - ;; - linux-mips | linux-mipsel) - # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags - target="linux-mips32 ${TARGET_CC_ARCH}" - ;; - linux-gnun32-mips*) - target=linux-mips64 - ;; - linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el) - target=linux64-mips64 - ;; - linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*) - target=linux-generic32 - ;; - linux-powerpc) - target=linux-ppc - ;; - linux-powerpc64) - target=linux-ppc64 - ;; - linux-riscv32) - target=linux-generic32 - ;; - linux-riscv64) - target=linux-generic64 - ;; - linux-sparc | linux-supersparc) - target=linux-sparcv9 - ;; - esac - - useprefix=${prefix} - if [ "x$useprefix" = "x" ]; then - useprefix=/ - 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/" \ - perl ${S}/Configure ${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS} --prefix=$useprefix --openssldir=${libdir}/ssl-1.1 --libdir=${libdir} $target -} - -do_install () { - oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install - - oe_multilib_header openssl/opensslconf.h - - # Create SSL structure for packages such as ca-certificates which - # contain hard-coded paths to /etc/ssl. Debian does the same. - install -d ${D}${sysconfdir}/ssl - mv ${D}${libdir}/ssl-1.1/certs \ - ${D}${libdir}/ssl-1.1/private \ - ${D}${libdir}/ssl-1.1/openssl.cnf \ - ${D}${sysconfdir}/ssl/ - - # Although absolute symlinks would be OK for the target, they become - # invalid if native or nativesdk are relocated from sstate. - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-1.1/certs - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-1.1/private - ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-1.1/openssl.cnf -} - -do_install_append_class-native () { - create_wrapper ${D}${bindir}/openssl \ - 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 - - # Install a custom version of c_rehash that can handle sysroots properly. - # This version is used for example when installing ca-certificates during - # image creation. - install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash - sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash -} - -do_install_append_class-nativesdk () { - mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh - sed 's|/usr/lib/ssl/|/usr/lib/ssl-1.1/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh -} - -PTEST_BUILD_HOST_FILES += "configdata.pm" -PTEST_BUILD_HOST_PATTERN = "perl_version =" -do_install_ptest () { - # Prune the build tree - rm -f ${B}/fuzz/*.* ${B}/test/*.* - - cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} - cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} - - # For test_shlibload - ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/libcrypto.so - ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/libssl.so - - install -d ${D}${PTEST_PATH}/apps - ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps - install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps - install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps - - install -d ${D}${PTEST_PATH}/engines - install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines -} - -# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto -# package RRECOMMENDS on this package. This will enable the configuration -# file to be installed for both the openssl-bin package and the libcrypto -# package since the openssl-bin package depends on the libcrypto package. - -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_${PN}-engines = "${libdir}/engines-1.1" -FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" -FILES_${PN} =+ "${libdir}/ssl-1.1/*" -FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh" - -CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" - -RRECOMMENDS_libcrypto += "openssl-conf" -RDEPENDS_${PN}-bin = "perl" -RDEPENDS_${PN}-misc = "perl" -RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash" - -RPROVIDES_openssl-conf = "openssl10-conf" -RREPLACES_openssl-conf = "openssl10-conf" -RCONFLICTS_openssl-conf = "openssl10-conf" - -BBCLASSEXTEND = "native nativesdk" - -inherit multilib_script - -MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash" diff --git a/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb b/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb new file mode 100644 index 00000000..81595583 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb @@ -0,0 +1,215 @@ +SUMMARY = "Secure Socket Layer" +DESCRIPTION = "Secure Socket Layer (SSL) binary and related cryptographic tools." +HOMEPAGE = "http://www.openssl.org/" +BUGTRACKER = "http://www.openssl.org/news/vulnerabilities.html" +SECTION = "libs/network" + +# "openssl" here actually means both OpenSSL and SSLeay licenses apply +# (see meta/files/common-licenses/OpenSSL to which "openssl" is SPDXLICENSEMAPped) +LICENSE = "openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" + +DEPENDS = "hostperl-runtime-native" + +SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ + file://run-ptest \ + 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[sha256sum] = "ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46" + +inherit lib_package multilib_header multilib_script ptest +MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash" + +PACKAGECONFIG ?= "" +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_class-nativesdk = "" + +PACKAGECONFIG[cryptodev-linux] = "enable-devcryptoeng,disable-devcryptoeng,cryptodev-linux,,cryptodev-module" + +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + +#| ./libcrypto.so: undefined reference to `getcontext' +#| ./libcrypto.so: undefined reference to `setcontext' +#| ./libcrypto.so: undefined reference to `makecontext' +EXTRA_OECONF_append_libc-musl = " no-async" +EXTRA_OECONF_append_libc-musl_powerpc64 = " no-asm" + +# adding devrandom prevents openssl from using getrandom() which is not available on older glibc versions +# (native versions can be built with newer glibc, but then relocated onto a system with older glibc) +EXTRA_OECONF_class-native = "--with-rand-seed=os,devrandom" +EXTRA_OECONF_class-nativesdk = "--with-rand-seed=os,devrandom" + +# Relying on hardcoded built-in paths causes openssl-native to not be relocateable from sstate. +CFLAGS_append_class-native = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" +CFLAGS_append_class-nativesdk = " -DOPENSSLDIR=/not/builtin -DENGINESDIR=/not/builtin" + +do_configure () { + os=${HOST_OS} + case $os in + linux-gnueabi |\ + linux-gnuspe |\ + linux-musleabi |\ + linux-muslspe |\ + linux-musl ) + os=linux + ;; + *) + ;; + esac + target="$os-${HOST_ARCH}" + case $target in + linux-arm*) + target=linux-armv4 + ;; + linux-aarch64*) + target=linux-aarch64 + ;; + linux-i?86 | linux-viac3) + target=linux-x86 + ;; + linux-gnux32-x86_64 | linux-muslx32-x86_64 ) + target=linux-x32 + ;; + linux-gnu64-x86_64) + target=linux-x86_64 + ;; + linux-mips | linux-mipsel) + # specifying TARGET_CC_ARCH prevents openssl from (incorrectly) adding target architecture flags + target="linux-mips32 ${TARGET_CC_ARCH}" + ;; + linux-gnun32-mips*) + target=linux-mips64 + ;; + linux-*-mips64 | linux-mips64 | linux-*-mips64el | linux-mips64el) + target=linux64-mips64 + ;; + linux-microblaze* | linux-nios2* | linux-sh3 | linux-sh4 | linux-arc*) + target=linux-generic32 + ;; + linux-powerpc) + target=linux-ppc + ;; + linux-powerpc64) + target=linux-ppc64 + ;; + linux-powerpc64le) + target=linux-ppc64le + ;; + linux-riscv32) + target=linux-generic32 + ;; + linux-riscv64) + target=linux-generic64 + ;; + linux-sparc | linux-supersparc) + target=linux-sparcv9 + ;; + esac + + useprefix=${prefix} + if [ "x$useprefix" = "x" ]; then + useprefix=/ + 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. + 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 +} + +do_install () { + oe_runmake DESTDIR="${D}" MANDIR="${mandir}" MANSUFFIX=ssl install + + oe_multilib_header openssl/opensslconf.h + + # Create SSL structure for packages such as ca-certificates which + # contain hard-coded paths to /etc/ssl. Debian does the same. + install -d ${D}${sysconfdir}/ssl + mv ${D}${libdir}/ssl-1.1/certs \ + ${D}${libdir}/ssl-1.1/private \ + ${D}${libdir}/ssl-1.1/openssl.cnf \ + ${D}${sysconfdir}/ssl/ + + # Although absolute symlinks would be OK for the target, they become + # invalid if native or nativesdk are relocated from sstate. + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/certs')} ${D}${libdir}/ssl-1.1/certs + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/private')} ${D}${libdir}/ssl-1.1/private + ln -sf ${@oe.path.relative('${libdir}/ssl-1.1', '${sysconfdir}/ssl/openssl.cnf')} ${D}${libdir}/ssl-1.1/openssl.cnf +} + +do_install_append_class-native () { + create_wrapper ${D}${bindir}/openssl \ + 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}/engines-1.1 +} + +do_install_append_class-nativesdk () { + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-openssl.sh ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh + sed 's|/usr/lib/ssl/|/usr/lib/ssl-1.1/|g' -i ${D}${SDKPATHNATIVE}/environment-setup.d/openssl.sh +} + +PTEST_BUILD_HOST_FILES += "configdata.pm" +PTEST_BUILD_HOST_PATTERN = "perl_version =" +do_install_ptest () { + # Prune the build tree + rm -f ${B}/fuzz/*.* ${B}/test/*.* + + cp ${S}/Configure ${B}/configdata.pm ${D}${PTEST_PATH} + cp -r ${S}/external ${B}/test ${S}/test ${B}/fuzz ${S}/util ${B}/util ${D}${PTEST_PATH} + + # For test_shlibload + ln -s ${libdir}/libcrypto.so.1.1 ${D}${PTEST_PATH}/ + ln -s ${libdir}/libssl.so.1.1 ${D}${PTEST_PATH}/ + + install -d ${D}${PTEST_PATH}/apps + ln -s ${bindir}/openssl ${D}${PTEST_PATH}/apps + install -m644 ${S}/apps/*.pem ${S}/apps/*.srl ${S}/apps/openssl.cnf ${D}${PTEST_PATH}/apps + install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps + + install -d ${D}${PTEST_PATH}/engines + install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines +} + +# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto +# package RRECOMMENDS on this package. This will enable the configuration +# file to be installed for both the openssl-bin package and the libcrypto +# package since the openssl-bin package depends on the libcrypto package. + +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 \ + ${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/*" +FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh" + +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/external/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch b/external/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch new file mode 100644 index 00000000..b7ba7ba6 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Paul Mackerras + +Upstream-Status: Backport +[https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426] + +CVE: CVE-2020-8597 + +Signed-off-by: Yi Zhao +--- + 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/external/poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb b/external/poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb index 644cde45..60c56dd0 100644 --- a/external/poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb +++ b/external/poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb @@ -33,6 +33,7 @@ SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \ 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 = "\ diff --git a/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb b/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb deleted file mode 100644 index 85501772..00000000 --- a/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb +++ /dev/null @@ -1,67 +0,0 @@ -SUMMARY = "name server information handler" -DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \ -information about currently available nameservers. It sets \ -itself up as the intermediary between programs that supply \ -nameserver information and programs that need nameserver \ -information." -SECTION = "console/network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" -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 \ - file://fix-path-for-busybox.patch \ - file://99_resolvconf \ - " - -SRC_URI[md5sum] = "aab2382020fc518f06a06e924c56d300" -SRC_URI[sha256sum] = "8e2843cd4162b706f0481b3c281657728cbc2822e50a64fff79b79bd8aa870a0" - -# 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/r/resolvconf/" - -inherit allarch - -do_compile () { - : -} - -do_install () { - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/tmpfiles.d - echo "d /run/${BPN}/interface - - - -" \ - > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf - fi - install -d ${D}${base_libdir}/${BPN} - install -d ${D}${sysconfdir}/${BPN} - ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run - install -d ${D}${sysconfdir} ${D}${base_sbindir} - install -d ${D}${mandir}/man8 ${D}${docdir}/${P} - cp -pPR etc/* ${D}${sysconfdir}/ - chown -R root:root ${D}${sysconfdir}/ - install -m 0755 bin/resolvconf ${D}${base_sbindir}/ - install -m 0755 bin/list-records ${D}${base_libdir}/${BPN} - install -d ${D}/${sysconfdir}/network/if-up.d - install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf - install -d ${D}/${sysconfdir}/network/if-down.d - install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf - install -m 0644 README ${D}${docdir}/${P}/ - install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/ -} - -pkg_postinst_${PN} () { - if [ -z "$D" ]; then - if command -v systemd-tmpfiles >/dev/null; then - systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf - elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then - ${sysconfdir}/init.d/populate-volatile.sh update - fi - fi -} - -FILES_${PN} += "${base_libdir}/${BPN}" diff --git a/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb b/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb new file mode 100644 index 00000000..67959576 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.82.bb @@ -0,0 +1,68 @@ +SUMMARY = "name server information handler" +DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \ +information about currently available nameservers. It sets \ +itself up as the intermediary between programs that supply \ +nameserver information and programs that need nameserver \ +information." +SECTION = "console/network" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b" +AUTHOR = "Thomas Hood" +HOMEPAGE = "http://packages.debian.org/resolvconf" +RDEPENDS_${PN} = "bash" + +SRC_URI = "git://salsa.debian.org/debian/resolvconf.git;protocol=https \ + file://fix-path-for-busybox.patch \ + file://99_resolvconf \ + " + +SRCREV = "cb19bbfbe7e52174332f68bf2f295b39d119fad3" + +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 +UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/" + +inherit allarch + +do_compile () { + : +} + +do_install () { + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN}/interface - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf + fi + install -d ${D}${base_libdir}/${BPN} + install -d ${D}${sysconfdir}/${BPN} + ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run + install -d ${D}${sysconfdir} ${D}${base_sbindir} + install -d ${D}${mandir}/man8 ${D}${docdir}/${P} + cp -pPR etc/* ${D}${sysconfdir}/ + chown -R root:root ${D}${sysconfdir}/ + install -m 0755 bin/resolvconf ${D}${base_sbindir}/ + install -m 0755 bin/list-records ${D}${base_libdir}/${BPN} + install -d ${D}/${sysconfdir}/network/if-up.d + install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf + install -d ${D}/${sysconfdir}/network/if-down.d + install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf + install -m 0644 README ${D}${docdir}/${P}/ + install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/ +} + +pkg_postinst_${PN} () { + if [ -z "$D" ]; then + if command -v systemd-tmpfiles >/dev/null; then + systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf + elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then + ${sysconfdir}/init.d/populate-volatile.sh update + fi + fi +} + +FILES_${PN} += "${base_libdir}/${BPN}" diff --git a/external/poky/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch b/external/poky/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch deleted file mode 100644 index c0e27f3d..00000000 --- a/external/poky/meta/recipes-connectivity/socat/socat/0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch +++ /dev/null @@ -1,52 +0,0 @@ -From fb10ab134d630705cae0c7be42437cc289af7d32 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 15 Mar 2016 21:36:02 +0000 -Subject: [PATCH] Use __c_ispeed and __c_ospeed on musl - -Original intention of these asserts is to find if termios structure -is mapped correctly to locally define union, the get* APIs for -baudrate would not do the right thing since they do not return the -value from c_ospeed/c_ispeed but the value which is stored in iflag -for baudrate. - -So we check if we are on Linux but not using glibc then we use -__c_ispeed and __c_ospeed as defined in musl, however these are -internal elements of structs it should not have been used this -way. - -Signed-off-by: Khem Raj - ---- -Upstream-Status: Pending - - xioinitialize.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/xioinitialize.c b/xioinitialize.c -index 9f50155..8fb2e4c 100644 ---- a/xioinitialize.c -+++ b/xioinitialize.c -@@ -65,6 +65,12 @@ int xioinitialize(void) { - #if HAVE_TERMIOS_ISPEED && (ISPEED_OFFSET != -1) && (OSPEED_OFFSET != -1) - #if defined(ISPEED_OFFSET) && (ISPEED_OFFSET != -1) - #if defined(OSPEED_OFFSET) && (OSPEED_OFFSET != -1) -+#if defined(__linux__) && !defined(__GLIBC__) -+ tdata.termarg.__c_ispeed = 0x56789abc; -+ tdata.termarg.__c_ospeed = 0x6789abcd; -+ assert(tdata.termarg.__c_ispeed == tdata.speeds[ISPEED_OFFSET]); -+ assert(tdata.termarg.__c_ospeed == tdata.speeds[OSPEED_OFFSET]); -+#else - tdata.termarg.c_ispeed = 0x56789abc; - tdata.termarg.c_ospeed = 0x6789abcd; - assert(tdata.termarg.c_ispeed == tdata.speeds[ISPEED_OFFSET]); -@@ -72,6 +78,7 @@ int xioinitialize(void) { - #endif - #endif - #endif -+#endif - } - #endif - --- -2.8.0 - diff --git a/external/poky/meta/recipes-connectivity/socat/socat/0001-define-NETDB_INTERNAL-to-1-if-not-available.patch b/external/poky/meta/recipes-connectivity/socat/socat/0001-define-NETDB_INTERNAL-to-1-if-not-available.patch deleted file mode 100644 index 4bbd3676..00000000 --- a/external/poky/meta/recipes-connectivity/socat/socat/0001-define-NETDB_INTERNAL-to-1-if-not-available.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e6a7d96fa3675bdd3f4d7a3d7682381789eef22f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 15 Feb 2016 20:25:34 +0000 -Subject: [PATCH] define NETDB_INTERNAL to -1 if not available - -helps build with musl - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - compat.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/compat.h b/compat.h -index c8bee4d..bfb013a 100644 ---- a/compat.h -+++ b/compat.h -@@ -666,6 +666,10 @@ typedef int sig_atomic_t; - # define NETDB_INTERNAL h_NETDB_INTERNAL - #endif - -+#if !defined(NETDB_INTERNAL) -+# define NETDB_INTERNAL (-1) -+#endif -+ - #ifndef INET_ADDRSTRLEN - # define INET_ADDRSTRLEN sizeof(struct sockaddr_in) - #endif --- -2.7.1 - diff --git a/external/poky/meta/recipes-connectivity/socat/socat/Makefile.in-fix-for-parallel-build.patch b/external/poky/meta/recipes-connectivity/socat/socat/Makefile.in-fix-for-parallel-build.patch deleted file mode 100644 index aa4db65a..00000000 --- a/external/poky/meta/recipes-connectivity/socat/socat/Makefile.in-fix-for-parallel-build.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c6f0080b55679b6e8b5d332d6e05fdcbda1e4064 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 4 May 2015 00:58:47 -0700 -Subject: [PATCH] Makefile.in: fix for parallel build - -Fixed: -vsnprintf_r.o: file not recognized: File truncated -collect2: error: ld returned 3 exit status -Makefile:122: recipe for target 'filan' failed - -Let filan depend on vsnprintf_r.o and snprinterr.o to fix the issue. - -Upstream-Status: Pending - -Signed-off-by: Robert Yang ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index f2a6edb..88b784b 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -118,7 +118,7 @@ PROCAN_OBJS=procan_main.o procan.o procan-cdefs.o hostan.o error.o sycls.o sysut - procan: $(PROCAN_OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(PROCAN_OBJS) $(CLIBS) - --filan: filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o -+filan: filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o vsnprintf_r.o snprinterr.o - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ filan_main.o filan.o fdname.o error.o sycls.o sysutils.o utils.o vsnprintf_r.o snprinterr.o $(CLIBS) - - libxio.a: $(XIOOBJS) $(UTLOBJS) --- -1.7.9.5 - diff --git a/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.2.bb b/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.2.bb deleted file mode 100644 index b2d6b1de..00000000 --- a/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.2.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "Multipurpose relay for bidirectional data transfer" -DESCRIPTION = "Socat is a relay for bidirectional data \ -transfer between two independent data channels." -HOMEPAGE = "http://www.dest-unreach.org/socat/" - -SECTION = "console/network" - -DEPENDS = "openssl readline" - -LICENSE = "GPL-2.0-with-OpenSSL-exception" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://README;beginline=257;endline=287;md5=338c05eadd013872abb1d6e198e10a3f" - -SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \ - file://Makefile.in-fix-for-parallel-build.patch \ - file://0001-define-NETDB_INTERNAL-to-1-if-not-available.patch \ - file://0001-Access-c_ispeed-and-c_ospeed-via-APIs.patch \ -" - -SRC_URI[md5sum] = "607a24c15bd2cb54e9328bfbbd3a1ae9" -SRC_URI[sha256sum] = "e3561f808739383eb10fada1e5d4f26883f0311b34fd0af7837d0c95ef379251" - -inherit autotools - -EXTRA_AUTORECONF += "--exclude=autoheader" - -EXTRA_OECONF += "ac_cv_have_z_modifier=yes \ - ac_cv_header_bsd_libutil_h=no \ - sc_cv_termios_ispeed=no \ - ${TERMBITS_SHIFTS} \ -" - -TERMBITS_SHIFTS ?= "sc_cv_sys_crdly_shift=9 \ - sc_cv_sys_tabdly_shift=11 \ - sc_cv_sys_csize_shift=4" - -TERMBITS_SHIFTS_powerpc = "sc_cv_sys_crdly_shift=12 \ - sc_cv_sys_tabdly_shift=10 \ - sc_cv_sys_csize_shift=8" - -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[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" - -do_install_prepend () { - mkdir -p ${D}${bindir} - install -d ${D}${bindir} ${D}${mandir}/man1 -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.4.bb b/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.4.bb new file mode 100644 index 00000000..9b0d4071 --- /dev/null +++ b/external/poky/meta/recipes-connectivity/socat/socat_1.7.3.4.bb @@ -0,0 +1,54 @@ +SUMMARY = "Multipurpose relay for bidirectional data transfer" +DESCRIPTION = "Socat is a relay for bidirectional data \ +transfer between two independent data channels." +HOMEPAGE = "http://www.dest-unreach.org/socat/" + +SECTION = "console/network" + +DEPENDS = "openssl" + +LICENSE = "GPL-2.0-with-OpenSSL-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://README;beginline=257;endline=287;md5=338c05eadd013872abb1d6e198e10a3f" + +SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2 \ +" + +SRC_URI[md5sum] = "3cca4f8cd9d2d1caabd9cc099451bac9" +SRC_URI[sha256sum] = "972374ca86f65498e23e3259c2ee1b8f9dbeb04d12c2a78c0c9b5d1cb97dfdfc" + +inherit autotools + +EXTRA_AUTORECONF += "--exclude=autoheader" + +EXTRA_OECONF += "ac_cv_have_z_modifier=yes \ + ac_cv_header_bsd_libutil_h=no \ + sc_cv_termios_ispeed=no \ + ${TERMBITS_SHIFTS} \ +" + +TERMBITS_SHIFTS ?= "sc_cv_sys_crdly_shift=9 \ + sc_cv_sys_tabdly_shift=11 \ + sc_cv_sys_csize_shift=4" + +TERMBITS_SHIFTS_powerpc = "sc_cv_sys_crdly_shift=12 \ + sc_cv_sys_tabdly_shift=10 \ + sc_cv_sys_csize_shift=8" + +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 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} + install -d ${D}${bindir} ${D}${mandir}/man1 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-AP-Silently-ignore-management-frame-from-unexpected-.patch new file mode 100644 index 00000000..7b0713cf --- /dev/null +++ b/external/poky/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 + +From 8c07fa9eda13e835f3f968b2e1c9a8be3a851ff9 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +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 +--- + 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/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch new file mode 100644 index 00000000..53ad5d02 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Armin Kuster + +--- + 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/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch new file mode 100644 index 00000000..59640859 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Armin Kuster + +--- + 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/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch new file mode 100644 index 00000000..8a014ef2 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Armin Kuster + +--- + 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/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple1.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple1.patch deleted file mode 100644 index d4d49e7f..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple1.patch +++ /dev/null @@ -1,191 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From cf4cab804c7afd5c45505528a8d16e46163243a2 Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef -Date: Fri, 14 Jul 2017 15:15:35 +0200 -Subject: [PATCH 1/8] hostapd: Avoid key reinstallation in FT handshake - -Do not reinstall TK to the driver during Reassociation Response frame -processing if the first attempt of setting the TK succeeded. This avoids -issues related to clearing the TX/RX PN that could result in reusing -same PN values for transmitted frames (e.g., due to CCM nonce reuse and -also hitting replay protection on the receiver) and accepting replayed -frames on RX side. - -This issue was introduced by the commit -0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in -authenticator') which allowed wpa_ft_install_ptk() to be called multiple -times with the same PTK. While the second configuration attempt is -needed with some drivers, it must be done only if the first attempt -failed. - -Signed-off-by: Mathy Vanhoef ---- - src/ap/ieee802_11.c | 16 +++++++++++++--- - src/ap/wpa_auth.c | 11 +++++++++++ - src/ap/wpa_auth.h | 3 ++- - src/ap/wpa_auth_ft.c | 10 ++++++++++ - src/ap/wpa_auth_i.h | 1 + - 5 files changed, 37 insertions(+), 4 deletions(-) - -diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c -index 4e04169..333035f 100644 ---- a/src/ap/ieee802_11.c -+++ b/src/ap/ieee802_11.c -@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd, - { - struct ieee80211_ht_capabilities ht_cap; - struct ieee80211_vht_capabilities vht_cap; -+ int set = 1; - - /* - * Remove the STA entry to ensure the STA PS state gets cleared and -@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd, - * FT-over-the-DS, where a station re-associates back to the same AP but - * skips the authentication flow, or if working with a driver that - * does not support full AP client state. -+ * -+ * Skip this if the STA has already completed FT reassociation and the -+ * TK has been configured since the TX/RX PN must not be reset to 0 for -+ * the same key. - */ -- if (!sta->added_unassoc) -+ if (!sta->added_unassoc && -+ (!(sta->flags & WLAN_STA_AUTHORIZED) || -+ !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) { - hostapd_drv_sta_remove(hapd, sta->addr); -+ wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED); -+ set = 0; -+ } - - #ifdef CONFIG_IEEE80211N - if (sta->flags & WLAN_STA_HT) -@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd, - sta->flags & WLAN_STA_VHT ? &vht_cap : NULL, - sta->flags | WLAN_STA_ASSOC, sta->qosinfo, - sta->vht_opmode, sta->p2p_ie ? 1 : 0, -- sta->added_unassoc)) { -+ set)) { - hostapd_logger(hapd, sta->addr, - HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE, - "Could not %s STA to kernel driver", -- sta->added_unassoc ? "set" : "add"); -+ set ? "set" : "add"); - - if (sta->added_unassoc) { - hostapd_drv_sta_remove(hapd, sta->addr); -diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c -index 3587086..707971d 100644 ---- a/src/ap/wpa_auth.c -+++ b/src/ap/wpa_auth.c -@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event) - #else /* CONFIG_IEEE80211R */ - break; - #endif /* CONFIG_IEEE80211R */ -+ case WPA_DRV_STA_REMOVED: -+ sm->tk_already_set = FALSE; -+ return 0; - } - - #ifdef CONFIG_IEEE80211R -@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm) - } - - -+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm) -+{ -+ if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt)) -+ return 0; -+ return sm->tk_already_set; -+} -+ -+ - int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, - struct rsn_pmksa_cache_entry *entry) - { -diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h -index 0de8d97..97461b0 100644 ---- a/src/ap/wpa_auth.h -+++ b/src/ap/wpa_auth.h -@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth, - u8 *data, size_t data_len); - enum wpa_event { - WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH, -- WPA_REAUTH_EAPOL, WPA_ASSOC_FT -+ WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED - }; - void wpa_remove_ptk(struct wpa_state_machine *sm); - int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event); -@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm); - int wpa_auth_get_pairwise(struct wpa_state_machine *sm); - int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm); - int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm); -+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm); - int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, - struct rsn_pmksa_cache_entry *entry); - struct rsn_pmksa_cache_entry * -diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c -index 42242a5..e63b99a 100644 ---- a/src/ap/wpa_auth_ft.c -+++ b/src/ap/wpa_auth_ft.c -@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) - return; - } - -+ if (sm->tk_already_set) { -+ /* Must avoid TK reconfiguration to prevent clearing of TX/RX -+ * PN in the driver */ -+ wpa_printf(MSG_DEBUG, -+ "FT: Do not re-install same PTK to the driver"); -+ return; -+ } -+ - /* FIX: add STA entry to kernel/driver here? The set_key will fail - * most likely without this.. At the moment, STA entry is added only - * after association has been completed. This function will be called -@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm) - - /* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */ - sm->pairwise_set = TRUE; -+ sm->tk_already_set = TRUE; - } - - -@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm, - - sm->pairwise = pairwise; - sm->PTK_valid = TRUE; -+ sm->tk_already_set = FALSE; - wpa_ft_install_ptk(sm); - - buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + -diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h -index 72b7eb3..7fd8f05 100644 ---- a/src/ap/wpa_auth_i.h -+++ b/src/ap/wpa_auth_i.h -@@ -65,6 +65,7 @@ struct wpa_state_machine { - struct wpa_ptk PTK; - Boolean PTK_valid; - Boolean pairwise_set; -+ Boolean tk_already_set; - int keycount; - Boolean Pair; - struct wpa_key_replay_counter { --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple2.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple2.patch deleted file mode 100644 index 501bb4b5..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple2.patch +++ /dev/null @@ -1,267 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 927f891007c402fefd1ff384645b3f07597c3ede Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef -Date: Wed, 12 Jul 2017 16:03:24 +0200 -Subject: [PATCH 2/8] Prevent reinstallation of an already in-use group key - -Track the current GTK and IGTK that is in use and when receiving a -(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do -not install the given key if it is already in use. This prevents an -attacker from trying to trick the client into resetting or lowering the -sequence counter associated to the group key. - -Signed-off-by: Mathy Vanhoef ---- - src/common/wpa_common.h | 11 +++++ - src/rsn_supp/wpa.c | 116 ++++++++++++++++++++++++++++++------------------ - src/rsn_supp/wpa_i.h | 4 ++ - 3 files changed, 87 insertions(+), 44 deletions(-) - -diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h -index af1d0f0..d200285 100644 ---- a/src/common/wpa_common.h -+++ b/src/common/wpa_common.h -@@ -217,6 +217,17 @@ struct wpa_ptk { - size_t tk_len; - }; - -+struct wpa_gtk { -+ u8 gtk[WPA_GTK_MAX_LEN]; -+ size_t gtk_len; -+}; -+ -+#ifdef CONFIG_IEEE80211W -+struct wpa_igtk { -+ u8 igtk[WPA_IGTK_MAX_LEN]; -+ size_t igtk_len; -+}; -+#endif /* CONFIG_IEEE80211W */ - - /* WPA IE version 1 - * 00-50-f2:1 (OUI:OUI type) -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 3c47879..95bd7be 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - const u8 *_gtk = gd->gtk; - u8 gtk_buf[32]; - -+ /* Detect possible key reinstallation */ -+ if (sm->gtk.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", -+ gd->keyidx, gd->tx, gd->gtk_len); -+ return 0; -+ } -+ - wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len); - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)", -@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - } - os_memset(gtk_buf, 0, sizeof(gtk_buf)); - -+ sm->gtk.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ - return 0; - } - -@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - } - - -+#ifdef CONFIG_IEEE80211W -+static int wpa_supplicant_install_igtk(struct wpa_sm *sm, -+ const struct wpa_igtk_kde *igtk) -+{ -+ size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); -+ u16 keyidx = WPA_GET_LE16(igtk->keyid); -+ -+ /* Detect possible key reinstallation */ -+ if (sm->igtk.igtk_len == len && -+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", -+ keyidx); -+ return 0; -+ } -+ -+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, -+ "WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x", -+ keyidx, MAC2STR(igtk->pn)); -+ wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len); -+ if (keyidx > 4095) { -+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -+ "WPA: Invalid IGTK KeyID %d", keyidx); -+ return -1; -+ } -+ if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -+ broadcast_ether_addr, -+ keyidx, 0, igtk->pn, sizeof(igtk->pn), -+ igtk->igtk, len) < 0) { -+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -+ "WPA: Failed to configure IGTK to the driver"); -+ return -1; -+ } -+ -+ sm->igtk.igtk_len = len; -+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ -+ return 0; -+} -+#endif /* CONFIG_IEEE80211W */ -+ -+ - static int ieee80211w_set_keys(struct wpa_sm *sm, - struct wpa_eapol_ie_parse *ie) - { -@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, - if (ie->igtk) { - size_t len; - const struct wpa_igtk_kde *igtk; -- u16 keyidx; -+ - len = wpa_cipher_key_len(sm->mgmt_group_cipher); - if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len) - return -1; -+ - igtk = (const struct wpa_igtk_kde *) ie->igtk; -- keyidx = WPA_GET_LE16(igtk->keyid); -- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d " -- "pn %02x%02x%02x%02x%02x%02x", -- keyidx, MAC2STR(igtk->pn)); -- wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", -- igtk->igtk, len); -- if (keyidx > 4095) { -- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -- "WPA: Invalid IGTK KeyID %d", keyidx); -- return -1; -- } -- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -- broadcast_ether_addr, -- keyidx, 0, igtk->pn, sizeof(igtk->pn), -- igtk->igtk, len) < 0) { -- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -- "WPA: Failed to configure IGTK to the driver"); -+ if (wpa_supplicant_install_igtk(sm, igtk) < 0) - return -1; -- } - } - - return 0; -@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm) - */ - void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - { -- int clear_ptk = 1; -+ int clear_keys = 1; - - if (sm == NULL) - return; -@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - /* Prepare for the next transition */ - wpa_ft_prepare_auth_request(sm, NULL); - -- clear_ptk = 0; -+ clear_keys = 0; - } - #endif /* CONFIG_IEEE80211R */ - -- if (clear_ptk) { -+ if (clear_keys) { - /* - * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if - * this is not part of a Fast BSS Transition. -@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - sm->tptk_set = 0; - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); -+ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+#ifdef CONFIG_IEEE80211W -+ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+#endif /* CONFIG_IEEE80211W */ - } - - #ifdef CONFIG_TDLS -@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) - os_memset(sm->pmk, 0, sizeof(sm->pmk)); - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); -+ os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+#ifdef CONFIG_IEEE80211W -+ os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+#endif /* CONFIG_IEEE80211W */ - #ifdef CONFIG_IEEE80211R - os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); - os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0)); -@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - os_memset(&gd, 0, sizeof(gd)); - #ifdef CONFIG_IEEE80211W - } else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) { -- struct wpa_igtk_kde igd; -- u16 keyidx; -- -- os_memset(&igd, 0, sizeof(igd)); -- keylen = wpa_cipher_key_len(sm->mgmt_group_cipher); -- os_memcpy(igd.keyid, buf + 2, 2); -- os_memcpy(igd.pn, buf + 4, 6); -- -- keyidx = WPA_GET_LE16(igd.keyid); -- os_memcpy(igd.igtk, buf + 10, keylen); -- -- wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)", -- igd.igtk, keylen); -- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher), -- broadcast_ether_addr, -- keyidx, 0, igd.pn, sizeof(igd.pn), -- igd.igtk, keylen) < 0) { -- wpa_printf(MSG_DEBUG, "Failed to install the IGTK in " -- "WNM mode"); -- os_memset(&igd, 0, sizeof(igd)); -+ const struct wpa_igtk_kde *igtk; -+ -+ igtk = (const struct wpa_igtk_kde *) (buf + 2); -+ if (wpa_supplicant_install_igtk(sm, igtk) < 0) - return -1; -- } -- os_memset(&igd, 0, sizeof(igd)); - #endif /* CONFIG_IEEE80211W */ - } else { - wpa_printf(MSG_DEBUG, "Unknown element id"); -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index f653ba6..afc9e37 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -31,6 +31,10 @@ struct wpa_sm { - u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN]; - int rx_replay_counter_set; - u8 request_counter[WPA_REPLAY_COUNTER_LEN]; -+ struct wpa_gtk gtk; -+#ifdef CONFIG_IEEE80211W -+ struct wpa_igtk igtk; -+#endif /* CONFIG_IEEE80211W */ - - struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ - --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple3.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple3.patch deleted file mode 100644 index 2e226558..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple3.patch +++ /dev/null @@ -1,201 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 8280294e74846ea342389a0cd17215050fa5afe8 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Sun, 1 Oct 2017 12:12:24 +0300 -Subject: [PATCH 3/8] Extend protection of GTK/IGTK reinstallation of WNM-Sleep - Mode cases - -This extends the protection to track last configured GTK/IGTK value -separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a -corner case where these two different mechanisms may get used when the -GTK/IGTK has changed and tracking a single value is not sufficient to -detect a possible key reconfiguration. - -Signed-off-by: Jouni Malinen ---- - src/rsn_supp/wpa.c | 53 +++++++++++++++++++++++++++++++++++++--------------- - src/rsn_supp/wpa_i.h | 2 ++ - 2 files changed, 40 insertions(+), 15 deletions(-) - -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 95bd7be..7a2c68d 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -709,14 +709,17 @@ struct wpa_gtk_data { - - static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - const struct wpa_gtk_data *gd, -- const u8 *key_rsc) -+ const u8 *key_rsc, int wnm_sleep) - { - const u8 *_gtk = gd->gtk; - u8 gtk_buf[32]; - - /* Detect possible key reinstallation */ -- if (sm->gtk.gtk_len == (size_t) gd->gtk_len && -- os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) { -+ if ((sm->gtk.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) || -+ (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len && -+ os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk, -+ sm->gtk_wnm_sleep.gtk_len) == 0)) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)", - gd->keyidx, gd->tx, gd->gtk_len); -@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm, - } - os_memset(gtk_buf, 0, sizeof(gtk_buf)); - -- sm->gtk.gtk_len = gd->gtk_len; -- os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ if (wnm_sleep) { -+ sm->gtk_wnm_sleep.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk, -+ sm->gtk_wnm_sleep.gtk_len); -+ } else { -+ sm->gtk.gtk_len = gd->gtk_len; -+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len); -+ } - - return 0; - } -@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - (wpa_supplicant_check_group_cipher(sm, sm->group_cipher, - gtk_len, gtk_len, - &gd.key_rsc_len, &gd.alg) || -- wpa_supplicant_install_gtk(sm, &gd, key_rsc))) { -+ wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "RSN: Failed to install GTK"); - os_memset(&gd, 0, sizeof(gd)); -@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm, - - #ifdef CONFIG_IEEE80211W - static int wpa_supplicant_install_igtk(struct wpa_sm *sm, -- const struct wpa_igtk_kde *igtk) -+ const struct wpa_igtk_kde *igtk, -+ int wnm_sleep) - { - size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher); - u16 keyidx = WPA_GET_LE16(igtk->keyid); - - /* Detect possible key reinstallation */ -- if (sm->igtk.igtk_len == len && -- os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) { -+ if ((sm->igtk.igtk_len == len && -+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) || -+ (sm->igtk_wnm_sleep.igtk_len == len && -+ os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk, -+ sm->igtk_wnm_sleep.igtk_len) == 0)) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)", - keyidx); -@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm, - return -1; - } - -- sm->igtk.igtk_len = len; -- os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ if (wnm_sleep) { -+ sm->igtk_wnm_sleep.igtk_len = len; -+ os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk, -+ sm->igtk_wnm_sleep.igtk_len); -+ } else { -+ sm->igtk.igtk_len = len; -+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len); -+ } - - return 0; - } -@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm, - return -1; - - igtk = (const struct wpa_igtk_kde *) ie->igtk; -- if (wpa_supplicant_install_igtk(sm, igtk) < 0) -+ if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0) - return -1; - } - -@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm, - if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc)) - key_rsc = null_rsc; - -- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) || -+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) || - wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0) - goto failed; - os_memset(&gd, 0, sizeof(gd)); -@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid) - sm->tptk_set = 0; - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); - os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); - #ifdef CONFIG_IEEE80211W - os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); - #endif /* CONFIG_IEEE80211W */ - } - -@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm) - os_memset(&sm->ptk, 0, sizeof(sm->ptk)); - os_memset(&sm->tptk, 0, sizeof(sm->tptk)); - os_memset(&sm->gtk, 0, sizeof(sm->gtk)); -+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep)); - #ifdef CONFIG_IEEE80211W - os_memset(&sm->igtk, 0, sizeof(sm->igtk)); -+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep)); - #endif /* CONFIG_IEEE80211W */ - #ifdef CONFIG_IEEE80211R - os_memset(sm->xxkey, 0, sizeof(sm->xxkey)); -@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - - wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)", - gd.gtk, gd.gtk_len); -- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) { -+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) { - os_memset(&gd, 0, sizeof(gd)); - wpa_printf(MSG_DEBUG, "Failed to install the GTK in " - "WNM mode"); -@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf) - const struct wpa_igtk_kde *igtk; - - igtk = (const struct wpa_igtk_kde *) (buf + 2); -- if (wpa_supplicant_install_igtk(sm, igtk) < 0) -+ if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0) - return -1; - #endif /* CONFIG_IEEE80211W */ - } else { -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index afc9e37..9a54631 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -32,8 +32,10 @@ struct wpa_sm { - int rx_replay_counter_set; - u8 request_counter[WPA_REPLAY_COUNTER_LEN]; - struct wpa_gtk gtk; -+ struct wpa_gtk gtk_wnm_sleep; - #ifdef CONFIG_IEEE80211W - struct wpa_igtk igtk; -+ struct wpa_igtk igtk_wnm_sleep; - #endif /* CONFIG_IEEE80211W */ - - struct eapol_sm *eapol; /* EAPOL state machine from upper level code */ --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple4.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple4.patch deleted file mode 100644 index 6c194869..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple4.patch +++ /dev/null @@ -1,96 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 8f82bc94e8697a9d47fa8774dfdaaede1084912c Mon Sep 17 00:00:00 2001 -From: Mathy Vanhoef -Date: Fri, 29 Sep 2017 04:22:51 +0200 -Subject: [PATCH 4/8] Prevent installation of an all-zero TK - -Properly track whether a PTK has already been installed to the driver -and the TK part cleared from memory. This prevents an attacker from -trying to trick the client into installing an all-zero TK. - -This fixes the earlier fix in commit -ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the -driver in EAPOL-Key 3/4 retry case') which did not take into account -possibility of an extra message 1/4 showing up between retries of -message 3/4. - -Signed-off-by: Mathy Vanhoef ---- - src/common/wpa_common.h | 1 + - src/rsn_supp/wpa.c | 5 ++--- - src/rsn_supp/wpa_i.h | 1 - - 3 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h -index d200285..1021ccb 100644 ---- a/src/common/wpa_common.h -+++ b/src/common/wpa_common.h -@@ -215,6 +215,7 @@ struct wpa_ptk { - size_t kck_len; - size_t kek_len; - size_t tk_len; -+ int installed; /* 1 if key has already been installed to driver */ - }; - - struct wpa_gtk { -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 7a2c68d..0550a41 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm, - os_memset(buf, 0, sizeof(buf)); - } - sm->tptk_set = 1; -- sm->tk_to_set = 1; - - kde = sm->assoc_wpa_ie; - kde_len = sm->assoc_wpa_ie_len; -@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, - enum wpa_alg alg; - const u8 *key_rsc; - -- if (!sm->tk_to_set) { -+ if (sm->ptk.installed) { - wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, - "WPA: Do not re-install same PTK to the driver"); - return 0; -@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm, - - /* TK is not needed anymore in supplicant */ - os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN); -- sm->tk_to_set = 0; -+ sm->ptk.installed = 1; - - if (sm->wpa_ptk_rekey) { - eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL); -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index 9a54631..41f371f 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -24,7 +24,6 @@ struct wpa_sm { - struct wpa_ptk ptk, tptk; - int ptk_set, tptk_set; - unsigned int msg_3_of_4_ok:1; -- unsigned int tk_to_set:1; - u8 snonce[WPA_NONCE_LEN]; - u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */ - int renew_snonce; --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple5.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple5.patch deleted file mode 100644 index b262dcac..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple5.patch +++ /dev/null @@ -1,81 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 12fac09b437a1dc8a0f253e265934a8aaf4d2f8b Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Sun, 1 Oct 2017 12:32:57 +0300 -Subject: [PATCH 5/8] Fix PTK rekeying to generate a new ANonce - -The Authenticator state machine path for PTK rekeying ended up bypassing -the AUTHENTICATION2 state where a new ANonce is generated when going -directly to the PTKSTART state since there is no need to try to -determine the PMK again in such a case. This is far from ideal since the -new PTK would depend on a new nonce only from the supplicant. - -Fix this by generating a new ANonce when moving to the PTKSTART state -for the purpose of starting new 4-way handshake to rekey PTK. - -Signed-off-by: Jouni Malinen ---- - src/ap/wpa_auth.c | 24 +++++++++++++++++++++--- - 1 file changed, 21 insertions(+), 3 deletions(-) - -diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c -index 707971d..bf10cc1 100644 ---- a/src/ap/wpa_auth.c -+++ b/src/ap/wpa_auth.c -@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2) - } - - -+static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm) -+{ -+ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) { -+ wpa_printf(MSG_ERROR, -+ "WPA: Failed to get random data for ANonce"); -+ sm->Disconnect = TRUE; -+ return -1; -+ } -+ wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce, -+ WPA_NONCE_LEN); -+ sm->TimeoutCtr = 0; -+ return 0; -+} -+ -+ - SM_STATE(WPA_PTK, INITPMK) - { - u8 msk[2 * PMK_LEN]; -@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK) - SM_ENTER(WPA_PTK, AUTHENTICATION); - else if (sm->ReAuthenticationRequest) - SM_ENTER(WPA_PTK, AUTHENTICATION2); -- else if (sm->PTKRequest) -- SM_ENTER(WPA_PTK, PTKSTART); -- else switch (sm->wpa_ptk_state) { -+ else if (sm->PTKRequest) { -+ if (wpa_auth_sm_ptk_update(sm) < 0) -+ SM_ENTER(WPA_PTK, DISCONNECTED); -+ else -+ SM_ENTER(WPA_PTK, PTKSTART); -+ } else switch (sm->wpa_ptk_state) { - case WPA_PTK_INITIALIZE: - break; - case WPA_PTK_DISCONNECT: --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple6.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple6.patch deleted file mode 100644 index 15183f40..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple6.patch +++ /dev/null @@ -1,149 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 6c4bed4f47d1960ec04981a9d50e5076aea5223d Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Fri, 22 Sep 2017 11:03:15 +0300 -Subject: [PATCH 6/8] TDLS: Reject TPK-TK reconfiguration - -Do not try to reconfigure the same TPK-TK to the driver after it has -been successfully configured. This is an explicit check to avoid issues -related to resetting the TX/RX packet number. There was already a check -for this for TPK M2 (retries of that message are ignored completely), so -that behavior does not get modified. - -For TPK M3, the TPK-TK could have been reconfigured, but that was -followed by immediate teardown of the link due to an issue in updating -the STA entry. Furthermore, for TDLS with any real security (i.e., -ignoring open/WEP), the TPK message exchange is protected on the AP path -and simple replay attacks are not feasible. - -As an additional corner case, make sure the local nonce gets updated if -the peer uses a very unlikely "random nonce" of all zeros. - -Signed-off-by: Jouni Malinen ---- - src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++-- - 1 file changed, 36 insertions(+), 2 deletions(-) - -diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c -index e424168..9eb9738 100644 ---- a/src/rsn_supp/tdls.c -+++ b/src/rsn_supp/tdls.c -@@ -112,6 +112,7 @@ struct wpa_tdls_peer { - u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */ - } tpk; - int tpk_set; -+ int tk_set; /* TPK-TK configured to the driver */ - int tpk_success; - int tpk_in_progress; - -@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - u8 rsc[6]; - enum wpa_alg alg; - -+ if (peer->tk_set) { -+ /* -+ * This same TPK-TK has already been configured to the driver -+ * and this new configuration attempt (likely due to an -+ * unexpected retransmitted frame) would result in clearing -+ * the TX/RX sequence number which can break security, so must -+ * not allow that to happen. -+ */ -+ wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR -+ " has already been configured to the driver - do not reconfigure", -+ MAC2STR(peer->addr)); -+ return -1; -+ } -+ - os_memset(rsc, 0, 6); - - switch (peer->cipher) { -@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - return -1; - } - -+ wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR, -+ MAC2STR(peer->addr)); - if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1, - rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) { - wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the " - "driver"); - return -1; - } -+ peer->tk_set = 1; - return 0; - } - -@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer) - peer->cipher = 0; - peer->qos_info = 0; - peer->wmm_capable = 0; -- peer->tpk_set = peer->tpk_success = 0; -+ peer->tk_set = peer->tpk_set = peer->tpk_success = 0; - peer->chan_switch_enabled = 0; - os_memset(&peer->tpk, 0, sizeof(peer->tpk)); - os_memset(peer->inonce, 0, WPA_NONCE_LEN); -@@ -1159,6 +1177,7 @@ skip_rsnie: - wpa_tdls_peer_free(sm, peer); - return -1; - } -+ peer->tk_set = 0; /* A new nonce results in a new TK */ - wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake", - peer->inonce, WPA_NONCE_LEN); - os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN); -@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer, - } - - -+static int tdls_nonce_set(const u8 *nonce) -+{ -+ int i; -+ -+ for (i = 0; i < WPA_NONCE_LEN; i++) { -+ if (nonce[i]) -+ return 1; -+ } -+ -+ return 0; -+} -+ -+ - static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr, - const u8 *buf, size_t len) - { -@@ -2004,7 +2036,8 @@ skip_rsn: - peer->rsnie_i_len = kde.rsn_ie_len; - peer->cipher = cipher; - -- if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) { -+ if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 || -+ !tdls_nonce_set(peer->inonce)) { - /* - * There is no point in updating the RNonce for every obtained - * TPK M1 frame (e.g., retransmission due to timeout) with the -@@ -2020,6 +2053,7 @@ skip_rsn: - "TDLS: Failed to get random data for responder nonce"); - goto error; - } -+ peer->tk_set = 0; /* A new nonce results in a new TK */ - } - - #if 0 --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple7.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple7.patch deleted file mode 100644 index 2e12bc75..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple7.patch +++ /dev/null @@ -1,60 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 53c5eb58e95004f86e65ee9fbfccbc291b139057 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Fri, 22 Sep 2017 11:25:02 +0300 -Subject: [PATCH 7/8] WNM: Ignore WNM-Sleep Mode Response without pending - request - -Commit 03ed0a52393710be6bdae657d1b36efa146520e5 ('WNM: Ignore WNM-Sleep -Mode Response if WNM-Sleep Mode has not been used') started ignoring the -response when no WNM-Sleep Mode Request had been used during the -association. This can be made tighter by clearing the used flag when -successfully processing a response. This adds an additional layer of -protection against unexpected retransmissions of the response frame. - -Signed-off-by: Jouni Malinen ---- - wpa_supplicant/wnm_sta.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c -index 1b3409c..67a07ff 100644 ---- a/wpa_supplicant/wnm_sta.c -+++ b/wpa_supplicant/wnm_sta.c -@@ -260,7 +260,7 @@ static void ieee802_11_rx_wnmsleep_resp(struct wpa_supplicant *wpa_s, - - if (!wpa_s->wnmsleep_used) { - wpa_printf(MSG_DEBUG, -- "WNM: Ignore WNM-Sleep Mode Response frame since WNM-Sleep Mode has not been used in this association"); -+ "WNM: Ignore WNM-Sleep Mode Response frame since WNM-Sleep Mode operation has not been requested"); - return; - } - -@@ -299,6 +299,8 @@ static void ieee802_11_rx_wnmsleep_resp(struct wpa_supplicant *wpa_s, - return; - } - -+ wpa_s->wnmsleep_used = 0; -+ - if (wnmsleep_ie->status == WNM_STATUS_SLEEP_ACCEPT || - wnmsleep_ie->status == WNM_STATUS_SLEEP_EXIT_ACCEPT_GTK_UPDATE) { - wpa_printf(MSG_DEBUG, "Successfully recv WNM-Sleep Response " --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple8.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple8.patch deleted file mode 100644 index 7f5390c3..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/key-replay-cve-multiple8.patch +++ /dev/null @@ -1,99 +0,0 @@ -The WPA2 four-way handshake protocol is vulnerable to replay attacks which can -result in unauthenticated clients gaining access to the network. - -Backport a number of patches from upstream to fix this. - -CVE: CVE-2017-13077 -CVE: CVE-2017-13078 -CVE: CVE-2017-13079 -CVE: CVE-2017-13080 -CVE: CVE-2017-13081 -CVE: CVE-2017-13082 -CVE: CVE-2017-13086 -CVE: CVE-2017-13087 -CVE: CVE-2017-13088 - -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From b372ab0b7daea719749194dc554b26e6367603f2 Mon Sep 17 00:00:00 2001 -From: Jouni Malinen -Date: Fri, 22 Sep 2017 12:06:37 +0300 -Subject: [PATCH 8/8] FT: Do not allow multiple Reassociation Response frames - -The driver is expected to not report a second association event without -the station having explicitly request a new association. As such, this -case should not be reachable. However, since reconfiguring the same -pairwise or group keys to the driver could result in nonce reuse issues, -be extra careful here and do an additional state check to avoid this -even if the local driver ends up somehow accepting an unexpected -Reassociation Response frame. - -Signed-off-by: Jouni Malinen ---- - src/rsn_supp/wpa.c | 3 +++ - src/rsn_supp/wpa_ft.c | 8 ++++++++ - src/rsn_supp/wpa_i.h | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 0550a41..2a53c6f 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm) - #ifdef CONFIG_TDLS - wpa_tdls_disassoc(sm); - #endif /* CONFIG_TDLS */ -+#ifdef CONFIG_IEEE80211R -+ sm->ft_reassoc_completed = 0; -+#endif /* CONFIG_IEEE80211R */ - - /* Keys are not needed in the WPA state machine anymore */ - wpa_sm_drop_sa(sm); -diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c -index 205793e..d45bb45 100644 ---- a/src/rsn_supp/wpa_ft.c -+++ b/src/rsn_supp/wpa_ft.c -@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len, - u16 capab; - - sm->ft_completed = 0; -+ sm->ft_reassoc_completed = 0; - - buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) + - 2 + sm->r0kh_id_len + ric_ies_len + 100; -@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, - return -1; - } - -+ if (sm->ft_reassoc_completed) { -+ wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission"); -+ return 0; -+ } -+ - if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) { - wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs"); - return -1; -@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies, - return -1; - } - -+ sm->ft_reassoc_completed = 1; -+ - if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0) - return -1; - -diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h -index 41f371f..56f88dc 100644 ---- a/src/rsn_supp/wpa_i.h -+++ b/src/rsn_supp/wpa_i.h -@@ -128,6 +128,7 @@ struct wpa_sm { - size_t r0kh_id_len; - u8 r1kh_id[FT_R1KH_ID_LEN]; - int ft_completed; -+ int ft_reassoc_completed; - int over_the_ds_in_progress; - u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */ - int set_ptk_after_assoc; --- -2.7.4 \ No newline at end of file diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/wpa_supplicant-CVE-2018-14526.patch b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/wpa_supplicant-CVE-2018-14526.patch deleted file mode 100644 index e800a410..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/wpa_supplicant-CVE-2018-14526.patch +++ /dev/null @@ -1,44 +0,0 @@ -wpa_supplicant-2.6: Fix CVE-2018-14526 - -[No upstream tracking] -- https://w1.fi/security/2018-1/unauthenticated-eapol-key-decryption.txt - -wpa: Ignore unauthenticated encrypted EAPOL-Key data - -Ignore unauthenticated encrypted EAPOL-Key data in supplicant -processing. When using WPA2, these are frames that have the Encrypted -flag set, but not the MIC flag. - -When using WPA2, EAPOL-Key frames that had the Encrypted flag set but -not the MIC flag, had their data field decrypted without first verifying -the MIC. In case the data field was encrypted using RC4 (i.e., when -negotiating TKIP as the pairwise cipher), this meant that -unauthenticated but decrypted data would then be processed. An adversary -could abuse this as a decryption oracle to recover sensitive information -in the data field of EAPOL-Key messages (e.g., the group key). - -Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/src/rsn_supp/wpa.c?id=3e34cfdff6b192fe337c6fb3f487f73e96582961] -CVE: CVE-2018-14526 -Signed-off-by: Andrej Valek - -diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c -index 3c47879..6bdf923 100644 ---- a/src/rsn_supp/wpa.c -+++ b/src/rsn_supp/wpa.c -@@ -2016,6 +2016,17 @@ int wpa_sm_rx_eapol(struct wpa_sm *sm, const u8 *src_addr, - - if ((sm->proto == WPA_PROTO_RSN || sm->proto == WPA_PROTO_OSEN) && - (key_info & WPA_KEY_INFO_ENCR_KEY_DATA)) { -+ /* -+ * Only decrypt the Key Data field if the frame's authenticity -+ * was verified. When using AES-SIV (FILS), the MIC flag is not -+ * set, so this check should only be performed if mic_len != 0 -+ * which is the case in this code branch. -+ */ -+ if (!(key_info & WPA_KEY_INFO_MIC)) { -+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING, -+ "WPA: Ignore EAPOL-Key with encrypted but unauthenticated data"); -+ goto out; -+ } - if (wpa_supplicant_decrypt_key_data(sm, key, ver, key_data, - &key_data_len)) - goto out; diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb deleted file mode 100644 index c92ed4ab..00000000 --- a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb +++ /dev/null @@ -1,120 +0,0 @@ -SUMMARY = "Client for Wi-Fi Protected Access (WPA)" -HOMEPAGE = "http://w1.fi/wpa_supplicant/" -BUGTRACKER = "http://w1.fi/security/" -SECTION = "network" -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=292eece3f2ebbaa25608eed8464018a3 \ - file://README;beginline=1;endline=56;md5=3f01d778be8f953962388307ee38ed2b \ - file://wpa_supplicant/wpa_supplicant.c;beginline=1;endline=12;md5=4061612fc5715696134e3baf933e8aba" -DEPENDS = "dbus libnl" -RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[gnutls] = ",,gnutls libgcrypt" -PACKAGECONFIG[openssl] = ",,openssl" - -inherit pkgconfig systemd - -SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service wpa_supplicant-nl80211@.service wpa_supplicant-wired@.service" -SYSTEMD_AUTO_ENABLE = "disable" - -SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ - file://defconfig \ - file://wpa-supplicant.sh \ - file://wpa_supplicant.conf \ - file://wpa_supplicant.conf-sane \ - file://99_wpa_supplicant \ - file://key-replay-cve-multiple1.patch \ - file://key-replay-cve-multiple2.patch \ - file://key-replay-cve-multiple3.patch \ - file://key-replay-cve-multiple4.patch \ - file://key-replay-cve-multiple5.patch \ - file://key-replay-cve-multiple6.patch \ - file://key-replay-cve-multiple7.patch \ - file://key-replay-cve-multiple8.patch \ - file://wpa_supplicant-CVE-2018-14526.patch \ - file://0001-replace-systemd-install-Alias-with-WantedBy.patch \ - " -SRC_URI[md5sum] = "091569eb4440b7d7f2b4276dbfc03c3c" -SRC_URI[sha256sum] = "b4936d34c4e6cdd44954beba74296d964bc2c9668ecaa5255e499636fe2b1450" - -CVE_PRODUCT = "wpa_supplicant" - -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/*" -CONFFILES_${PN} += "${sysconfdir}/wpa_supplicant.conf" - -do_configure () { - ${MAKE} -C wpa_supplicant clean - install -m 0755 ${WORKDIR}/defconfig wpa_supplicant/.config - echo "CFLAGS +=\"-I${STAGING_INCDIR}/libnl3\"" >> wpa_supplicant/.config - echo "DRV_CFLAGS +=\"-I${STAGING_INCDIR}/libnl3\"" >> wpa_supplicant/.config - - if echo "${PACKAGECONFIG}" | grep -qw "openssl"; then - ssl=openssl - elif echo "${PACKAGECONFIG}" | grep -qw "gnutls"; then - ssl=gnutls - fi - if [ -n "$ssl" ]; then - sed -i "s/%ssl%/$ssl/" wpa_supplicant/.config - fi - - # For rebuild - rm -f wpa_supplicant/*.d wpa_supplicant/dbus/*.d -} - -export EXTRA_CFLAGS = "${CFLAGS}" -export BINDIR = "${sbindir}" - -do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS - sed -e "s:CFLAGS\ =.*:& \$(EXTRA_CFLAGS):g" -i ${S}/src/lib.rules - oe_runmake -C wpa_supplicant -} - -do_install () { - install -d ${D}${sbindir} - install -m 755 wpa_supplicant/wpa_supplicant ${D}${sbindir} - install -m 755 wpa_supplicant/wpa_cli ${D}${sbindir} - - install -d ${D}${bindir} - install -m 755 wpa_supplicant/wpa_passphrase ${D}${bindir} - - install -d ${D}${docdir}/wpa_supplicant - install -m 644 wpa_supplicant/README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant - - install -d ${D}${sysconfdir} - install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf - - install -d ${D}${sysconfdir}/network/if-pre-up.d/ - install -d ${D}${sysconfdir}/network/if-post-down.d/ - install -d ${D}${sysconfdir}/network/if-down.d/ - install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant - cd ${D}${sysconfdir}/network/ && \ - ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant - - install -d ${D}/${sysconfdir}/dbus-1/system.d - install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d - install -d ${D}/${datadir}/dbus-1/system-services - install -m 644 ${S}/wpa_supplicant/dbus/*.service ${D}/${datadir}/dbus-1/system-services - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}/${systemd_unitdir}/system - install -m 644 ${S}/wpa_supplicant/systemd/*.service ${D}/${systemd_unitdir}/system - fi - - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles -} - -pkg_postinst_wpa-supplicant () { - # If we're offline, we don't need to do this. - if [ "x$D" = "x" ]; then - killall -q -HUP dbus-daemon || true - fi - -} diff --git a/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb new file mode 100644 index 00000000..7cc03fef --- /dev/null +++ b/external/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb @@ -0,0 +1,113 @@ +SUMMARY = "Client for Wi-Fi Protected Access (WPA)" +HOMEPAGE = "http://w1.fi/wpa_supplicant/" +BUGTRACKER = "http://w1.fi/security/" +SECTION = "network" +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" +DEPENDS = "dbus libnl" +RRECOMMENDS_${PN} = "wpa-supplicant-passphrase wpa-supplicant-cli" + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[gnutls] = ",,gnutls libgcrypt" +PACKAGECONFIG[openssl] = ",,openssl" + +inherit pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "wpa_supplicant.service" +SYSTEMD_AUTO_ENABLE = "disable" + +SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ + file://defconfig \ + file://wpa-supplicant.sh \ + file://wpa_supplicant.conf \ + 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" + +CVE_PRODUCT = "wpa_supplicant" + +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/* ${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 + ssl=gnutls + fi + if [ -n "$ssl" ]; then + sed -i "s/%ssl%/$ssl/" wpa_supplicant/.config + fi + + # For rebuild + rm -f wpa_supplicant/*.d wpa_supplicant/dbus/*.d +} + +export EXTRA_CFLAGS = "${CFLAGS}" +export BINDIR = "${sbindir}" + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS + sed -e "s:CFLAGS\ =.*:& \$(EXTRA_CFLAGS):g" -i ${S}/src/lib.rules + oe_runmake -C wpa_supplicant +} + +do_install () { + install -d ${D}${sbindir} + install -m 755 wpa_supplicant/wpa_supplicant ${D}${sbindir} + install -m 755 wpa_supplicant/wpa_cli ${D}${sbindir} + + install -d ${D}${bindir} + install -m 755 wpa_supplicant/wpa_passphrase ${D}${bindir} + + install -d ${D}${docdir}/wpa_supplicant + install -m 644 wpa_supplicant/README ${WORKDIR}/wpa_supplicant.conf ${D}${docdir}/wpa_supplicant + + install -d ${D}${sysconfdir} + install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf + + install -d ${D}${sysconfdir}/network/if-pre-up.d/ + install -d ${D}${sysconfdir}/network/if-post-down.d/ + install -d ${D}${sysconfdir}/network/if-down.d/ + install -m 755 ${WORKDIR}/wpa-supplicant.sh ${D}${sysconfdir}/network/if-pre-up.d/wpa-supplicant + cd ${D}${sysconfdir}/network/ && \ + ln -sf ../if-pre-up.d/wpa-supplicant if-post-down.d/wpa-supplicant + + install -d ${D}/${sysconfdir}/dbus-1/system.d + install -m 644 ${S}/wpa_supplicant/dbus/dbus-wpa_supplicant.conf ${D}/${sysconfdir}/dbus-1/system.d + install -d ${D}/${datadir}/dbus-1/system-services + install -m 644 ${S}/wpa_supplicant/dbus/*.service ${D}/${datadir}/dbus-1/system-services + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 644 ${S}/wpa_supplicant/systemd/*.service ${D}/${systemd_unitdir}/system + fi + + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_wpa_supplicant ${D}/etc/default/volatiles +} + +pkg_postinst_wpa-supplicant () { + # If we're offline, we don't need to do this. + if [ "x$D" = "x" ]; then + killall -q -HUP dbus-daemon || true + fi + +} diff --git a/external/poky/meta/recipes-core/base-files/base-files/filesystems b/external/poky/meta/recipes-core/base-files/base-files/filesystems deleted file mode 100644 index 7e6c41c3..00000000 --- a/external/poky/meta/recipes-core/base-files/base-files/filesystems +++ /dev/null @@ -1,8 +0,0 @@ -ext4 -ext3 -ext2 -vfat -fat -btrfs -minix -* diff --git a/external/poky/meta/recipes-core/base-files/base-files/fstab b/external/poky/meta/recipes-core/base-files/base-files/fstab index d79a0160..70e400f5 100644 --- a/external/poky/meta/recipes-core/base-files/base-files/fstab +++ b/external/poky/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/external/poky/meta/recipes-core/base-files/base-files/hosts b/external/poky/meta/recipes-core/base-files/base-files/hosts new file mode 100644 index 00000000..b94f414d --- /dev/null +++ b/external/poky/meta/recipes-core/base-files/base-files/hosts @@ -0,0 +1,8 @@ +127.0.0.1 localhost.localdomain localhost + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters diff --git a/external/poky/meta/recipes-core/base-files/base-files/usbd b/external/poky/meta/recipes-core/base-files/base-files/usbd deleted file mode 100644 index e69de29b..00000000 diff --git a/external/poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/external/poky/meta/recipes-core/base-files/base-files_3.0.14.bb index 6e75652f..94299431 100644 --- a/external/poky/meta/recipes-core/base-files/base-files_3.0.14.bb +++ b/external/poky/meta/recipes-core/base-files/base-files_3.0.14.bb @@ -13,14 +13,13 @@ LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI = "file://rotation \ file://nsswitch.conf \ file://motd \ + file://hosts \ file://host.conf \ file://profile \ file://shells \ file://fstab \ - file://filesystems \ file://issue.net \ file://issue \ - file://usbd \ file://share/dot.bashrc \ file://share/dot.profile \ file://licenses/GPL-2 \ @@ -113,6 +112,7 @@ do_install () { ln -snf ../run ${D}${localstatedir}/run ln -snf ../run/lock ${D}${localstatedir}/lock + install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts ${BASEFILESISSUEINSTALL} rotation=`cat ${WORKDIR}/rotation` @@ -121,33 +121,36 @@ do_install () { fi install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}/fstab - install -m 0644 ${WORKDIR}/filesystems ${D}${sysconfdir}/filesystems - install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc - install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd ln -sf /proc/mounts ${D}${sysconfdir}/mtab -} -DISTRO_VERSION[vardepsexclude] += "DATE" -do_install_basefilesissue () { + # deal with hostname if [ "${hostname}" ]; then echo ${hostname} > ${D}${sysconfdir}/hostname + echo "127.0.1.1 ${hostname}" >> ${D}${sysconfdir}/hosts fi +} +do_install_append_libc-glibc () { + install -m 0644 ${WORKDIR}/nsswitch.conf ${D}${sysconfdir}/nsswitch.conf +} + +DISTRO_VERSION[vardepsexclude] += "DATE" +do_install_basefilesissue () { install -m 644 ${WORKDIR}/issue* ${D}${sysconfdir} if [ -n "${DISTRO_NAME}" ]; then printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue printf "${DISTRO_NAME} " >> ${D}${sysconfdir}/issue.net if [ -n "${DISTRO_VERSION}" ]; then - distro_version_nodate=${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot').replace('${DATE}','')} + distro_version_nodate="${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot').replace('${DATE}','')}" printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue printf "%s " $distro_version_nodate >> ${D}${sysconfdir}/issue.net fi @@ -177,5 +180,5 @@ FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses" PACKAGE_ARCH = "${MACHINE_ARCH}" -CONFFILES_${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname'][(d.getVar('hostname') != '')]} ${sysconfdir}/shells" +CONFFILES_${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname ${sysconfdir}/hosts'][(d.getVar('hostname') != '')]} ${sysconfdir}/shells" CONFFILES_${PN} += "${sysconfdir}/motd ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile" diff --git a/external/poky/meta/recipes-core/base-passwd/base-passwd/kvm.patch b/external/poky/meta/recipes-core/base-passwd/base-passwd/kvm.patch new file mode 100644 index 00000000..113d5151 --- /dev/null +++ b/external/poky/meta/recipes-core/base-passwd/base-passwd/kvm.patch @@ -0,0 +1,23 @@ +From 6355278b9f744291864c373a32a8da8f84aaaf37 Mon Sep 17 00:00:00 2001 +From: Jacob Kroon +Date: Wed, 30 Jan 2019 04:53:48 +0000 +Subject: [PATCH] Add kvm group + +Upstream-Status: Pending +Signed-off-by: Jacob Kroon +--- + group.master | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/group.master b/group.master +index cea9d60..5b62284 100644 +--- a/group.master ++++ b/group.master +@@ -34,6 +34,7 @@ utmp:*:43: + video:*:44: + sasl:*:45: + plugdev:*:46: ++kvm:*:47: + staff:*:50: + games:*:60: + shutdown:*:70: diff --git a/external/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb b/external/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb index c6be1c1d..d01cd7e2 100644 --- a/external/poky/meta/recipes-core/base-passwd/base-passwd_3.5.29.bb +++ b/external/poky/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" @@ -12,7 +12,8 @@ SRC_URI = "https://launchpad.net/debian/+archive/primary/+files/${BPN}_${PV}.tar file://noshadow.patch \ file://input.patch \ file://disable-docs.patch \ - " + file://kvm.patch \ + " SRC_URI[md5sum] = "6beccac48083fe8ae5048acd062e5421" SRC_URI[sha256sum] = "f0b66388b2c8e49c15692439d2bee63bcdd4bbbf7a782c7f64accc55986b6a36" diff --git a/external/poky/meta/recipes-core/busybox/busybox-inittab_1.29.3.bb b/external/poky/meta/recipes-core/busybox/busybox-inittab_1.29.3.bb deleted file mode 100644 index a83620e8..00000000 --- a/external/poky/meta/recipes-core/busybox/busybox-inittab_1.29.3.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "inittab configuration for BusyBox" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" - -SRC_URI = "file://inittab" - -S = "${WORKDIR}" - -INHIBIT_DEFAULT_DEPS = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${sysconfdir} - install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab - tmp="${SERIAL_CONSOLES}" - for i in $tmp - do - j=`echo ${i} | sed s/\;/\ /g` - id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` - echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab - done -} - -# SERIAL_CONSOLES is generally defined by the MACHINE .conf. -# Set PACKAGE_ARCH appropriately. -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES_${PN} = "${sysconfdir}/inittab" -CONFFILES_${PN} = "${sysconfdir}/inittab" diff --git a/external/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb b/external/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb new file mode 100644 index 00000000..61fb8cba --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "inittab configuration for BusyBox" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inittab" + +S = "${WORKDIR}" + +INHIBIT_DEFAULT_DEPS = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab + tmp="${SERIAL_CONSOLES}" + [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab + for i in $tmp + do + j=`echo ${i} | sed s/\;/\ /g` + id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` + echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab + done +} + +# SERIAL_CONSOLES is generally defined by the MACHINE .conf. +# Set PACKAGE_ARCH appropriately. +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} = "${sysconfdir}/inittab" +CONFFILES_${PN} = "${sysconfdir}/inittab" + +RCONFLICTS_${PN} = "sysvinit-inittab" diff --git a/external/poky/meta/recipes-core/busybox/busybox.inc b/external/poky/meta/recipes-core/busybox/busybox.inc index 0c0d26ed..6cfdcd73 100644 --- a/external/poky/meta/recipes-core/busybox/busybox.inc +++ b/external/poky/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" @@ -53,6 +53,9 @@ RDEPENDS_${PN} = "${@["", "busybox-inittab"][(d.getVar('VIRTUAL-RUNTIME_init_man inherit cml1 systemd update-rc.d ptest +# busybox's unzip test case needs zip command, which busybox itself does not provide +RDEPENDS_${PN}-ptest = "zip" + # internal helper def busybox_cfg(feature, tokens, cnf, rem): if type(tokens) == type(""): @@ -72,8 +75,7 @@ def features_to_busybox_settings(d): busybox_cfg(bb.utils.contains('DISTRO_FEATURES', 'nls', True, False, d), 'CONFIG_LOCALE_SUPPORT', cnf, rem) busybox_cfg(bb.utils.contains('DISTRO_FEATURES', 'ipv4', True, False, d), 'CONFIG_FEATURE_IFUPDOWN_IPV4', cnf, rem) busybox_cfg(bb.utils.contains('DISTRO_FEATURES', 'ipv6', True, False, d), 'CONFIG_FEATURE_IFUPDOWN_IPV6', cnf, rem) - busybox_cfg(bb.utils.contains('DISTRO_FEATURES', 'wifi', True, False, d), 'CONFIG_RFKILL', cnf, rem) - busybox_cfg(bb.utils.contains('DISTRO_FEATURES', 'bluetooth', True, False, d), 'CONFIG_RFKILL', cnf, rem) + busybox_cfg(bb.utils.contains_any('DISTRO_FEATURES', 'bluetooth wifi', True, False, d), 'CONFIG_RFKILL', cnf, rem) return "\n".join(cnf), "\n".join(rem) # X, Y = ${@features_to_busybox_settings(d)} @@ -126,7 +128,9 @@ do_prepare_config () { ${S}/.config.oe-tmp > ${S}/.config fi sed -i 's/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"/' ${S}/.config - sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config + if [ -n "${DEBUG_PREFIX_MAP}" ]; then + sed -i 's|${DEBUG_PREFIX_MAP}||g' ${S}/.config + fi } # returns all the elements from the src uri that are .cfg files @@ -140,6 +144,7 @@ def find_cfgs(d): return sources_list do_configure () { + set -x do_prepare_config merge_config.sh -m .config ${@" ".join(find_cfgs(d))} cml1_do_configure @@ -314,8 +319,8 @@ do_install () { fi fi if grep -q "CONFIG_INIT=y" ${B}/.config; then - install -D -m 0777 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS - install -D -m 0777 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK + install -D -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS + install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK fi if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then @@ -345,9 +350,13 @@ do_install () { fi } +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 } @@ -388,36 +397,68 @@ python do_package_prepend () { set_alternative_vars("${sysconfdir}/busybox.links.suid", "${base_bindir}/busybox.suid") } -pkg_postinst_${PN} () { - # This part of code is dedicated to the on target upgrade problem. - # It's known that if we don't make appropriate symlinks before update-alternatives calls, - # there will be errors indicating missing commands such as 'sed'. - # These symlinks will later be updated by update-alternatives calls. - test -n 2 > /dev/null || alias test='busybox test' - if test "x$D" = "x"; then - # Remove busybox.nosuid if it's a symlink, because this situation indicates - # that we're installing or upgrading to a one-binary busybox. - if test -h ${base_bindir}/busybox.nosuid; then - rm -f ${base_bindir}/busybox.nosuid - fi - for suffix in "" ".nosuid" ".suid"; do - if test -e ${sysconfdir}/busybox.links$suffix; then - while read link; do - if test ! -e "$link"; then - # we can use busybox here because even if we are using splitted busybox - # we've made a symlink from /bin/busybox to /bin/busybox.nosuid. - busybox rm -f $link - busybox ln -s "${base_bindir}/busybox$suffix" $link - fi - done < ${sysconfdir}/busybox.links$suffix - fi - done - fi - if grep -q "^${base_bindir}/bash$" $D${sysconfdir}/busybox.links*; then - grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells - fi +# This part of code is dedicated to the on target upgrade problem. It's known +# that if we don't make appropriate symlinks before update-alternatives calls, +# there will be errors indicating missing commands such as 'sed'. +# These symlinks will later be updated by update-alternatives calls. +# The update-alternatives.bbclass' postinst script runs firstly before other +# postinst, but this part of code needs run firstly, so add this funtion. +python populate_packages_updatealternatives_append() { + postinst = """ +test -n 2 > /dev/null || alias test='busybox test' +if test "x$D" = "x"; then + # Remove busybox.nosuid if it's a symlink, because this situation indicates + # that we're installing or upgrading to a one-binary busybox. + if test -h ${base_bindir}/busybox.nosuid; then + rm -f ${base_bindir}/busybox.nosuid + fi + for suffix in "" ".nosuid" ".suid"; do + if test -e ${sysconfdir}/busybox.links$suffix; then + while read link; do + if test ! -e "$link"; then + # we can use busybox here because even if we are using splitted busybox + # we've made a symlink from /bin/busybox to /bin/busybox.nosuid. + busybox rm -f $link + busybox ln -s "${base_bindir}/busybox$suffix" $link + fi + done < ${sysconfdir}/busybox.links$suffix + fi + done +fi +if grep -q "^${base_bindir}/bash$" $D${sysconfdir}/busybox.links*; then + grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells +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 @@ -438,9 +479,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 @@ -455,4 +513,4 @@ pkg_prerm_${PN}-syslog () { fi } -RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}" +RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh /bin/ash', '', d)}" diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch new file mode 100644 index 00000000..9b943284 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch @@ -0,0 +1,85 @@ +From d3539be8f27b8cbfdfee460fe08299158f08bcd9 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Tue, 19 Nov 2019 13:06:40 +0100 +Subject: [PATCH] Remove stime() function calls + +stime() has been deprecated in glibc 2.31 and replaced with +clock_settime(). Let's replace the stime() function calls with +clock_settime() in preperation. + +function old new delta +rdate_main 197 224 +27 +clock_settime - 27 +27 +date_main 926 941 +15 +stime 37 - -37 +------------------------------------------------------------------------------ +(add/remove: 2/2 grow/shrink: 2/0 up/down: 69/-37) Total: 32 bytes + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9] +Signed-off-by: Alistair Francis +Signed-off-by: Denys Vlasenko +--- + coreutils/date.c | 6 +++++- + libbb/missing_syscalls.c | 8 -------- + util-linux/rdate.c | 8 ++++++-- + 3 files changed, 11 insertions(+), 11 deletions(-) + +--- a/coreutils/date.c ++++ b/coreutils/date.c +@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, cha + time(&ts.tv_sec); + #endif + } ++#if !ENABLE_FEATURE_DATE_NANO ++ ts.tv_nsec = 0; ++#endif + localtime_r(&ts.tv_sec, &tm_time); + + /* If date string is given, update tm_time, and maybe set date */ +@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, cha + if (date_str[0] != '@') + tm_time.tm_isdst = -1; + ts.tv_sec = validate_tm_time(date_str, &tm_time); ++ ts.tv_nsec = 0; + + /* if setting time, set it */ +- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) { ++ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) { + bb_perror_msg("can't set date"); + } + } +--- a/libbb/missing_syscalls.c ++++ b/libbb/missing_syscalls.c +@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid) + return syscall(__NR_getsid, pid); + } + +-int stime(const time_t *t) +-{ +- struct timeval tv; +- tv.tv_sec = *t; +- tv.tv_usec = 0; +- return settimeofday(&tv, NULL); +-} +- + int sethostname(const char *name, size_t len) + { + return syscall(__NR_sethostname, name, len); +--- a/util-linux/rdate.c ++++ b/util-linux/rdate.c +@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, ch + if (!(flags & 2)) { /* no -p (-s may be present) */ + if (time(NULL) == remote_time) + bb_error_msg("current time matches remote time"); +- else +- if (stime(&remote_time) < 0) ++ else { ++ struct timespec ts; ++ ts.tv_sec = remote_time; ++ ts.tv_nsec = 0; ++ if (clock_settime(CLOCK_REALTIME, &ts) < 0) + bb_perror_msg_and_die("can't set time of day"); ++ } + } + + if (flags != 1) /* not lone -s */ diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch new file mode 100644 index 00000000..0c7f9b81 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch @@ -0,0 +1,120 @@ +From be5a505d771a77c640acc35ceaa470c80e62f954 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Thu, 24 Oct 2019 16:26:55 +0200 +Subject: [PATCH] Remove syscall wrappers around clock_gettime, closes 12091 + +12091 "Direct use of __NR_clock_gettime is not time64-safe". + +function old new delta +runsv_main 1698 1712 +14 +startservice 378 383 +5 +get_mono 31 25 -6 +date_main 932 926 -6 +gettimeofday_ns 17 - -17 +------------------------------------------------------------------------------ +(add/remove: 0/1 grow/shrink: 2/2 up/down: 19/-29) Total: -10 bytes + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=be5a505d771a77c640acc35ceaa470c80e62f954] +Signed-off-by: Denys Vlasenko +--- + Makefile.flags | 6 ++++-- + coreutils/date.c | 16 +++------------- + libbb/time.c | 11 +---------- + runit/runsv.c | 11 +---------- + 4 files changed, 9 insertions(+), 35 deletions(-) + +--- a/Makefile.flags ++++ b/Makefile.flags +@@ -129,10 +129,12 @@ endif + # fall back to using a temp file: + CRYPT_AVAILABLE := $(shell echo 'int main(void){return 0;}' >crypttest.c; $(CC) $(CFLAGS) -lcrypt -o /dev/null crypttest.c >/dev/null 2>&1 && echo "y"; rm crypttest.c) + ifeq ($(CRYPT_AVAILABLE),y) +-LDLIBS += m crypt ++LDLIBS += m rt crypt + else +-LDLIBS += m ++LDLIBS += m rt + endif ++# libm may be needed for dc, awk, ntpd ++# librt may be needed for clock_gettime() + + # libpam may use libpthread, libdl and/or libaudit. + # On some platforms that requires an explicit -lpthread, -ldl, -laudit. +--- a/coreutils/date.c ++++ b/coreutils/date.c +@@ -33,10 +33,9 @@ + //config: Enable option (-I) to output an ISO-8601 compliant + //config: date/time string. + //config: +-//config:# defaults to "no": stat's nanosecond field is a bit non-portable + //config:config FEATURE_DATE_NANO + //config: bool "Support %[num]N nanosecond format specifier" +-//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) ++//config: default n # stat's nanosecond field is a bit non-portable + //config: depends on DATE + //config: select PLATFORM_LINUX + //config: help +@@ -271,17 +270,8 @@ int date_main(int argc UNUSED_PARAM, cha + */ + #endif + } else { +-#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) +- /* libc has incredibly messy way of doing this, +- * typically requiring -lrt. We just skip all this mess */ +- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); +-#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 +- /* Let's only support the 64 suffix syscalls for 64-bit time_t. +- * This simplifies the code for us as we don't need to convert +- * between 64-bit and 32-bit. We also don't have a way to +- * report overflow errors here. +- */ +- syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); ++#if ENABLE_FEATURE_DATE_NANO ++ clock_gettime(CLOCK_REALTIME, &ts); + #else + time(&ts.tv_sec); + #endif +--- a/libbb/time.c ++++ b/libbb/time.c +@@ -253,18 +253,9 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( + #define CLOCK_MONOTONIC 1 + #endif + +-/* libc has incredibly messy way of doing this, +- * typically requiring -lrt. We just skip all this mess */ + static void get_mono(struct timespec *ts) + { +-#if defined(__NR_clock_gettime) +- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) +-#elif __TIMESIZE == 64 +- if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) +-#else +-# error "We currently don't support architectures without " \ +- "the __NR_clock_gettime syscall and 32-bit time_t" +-#endif ++ if (clock_gettime(CLOCK_MONOTONIC, ts)) + bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); + } + unsigned long long FAST_FUNC monotonic_ns(void) +--- a/runit/runsv.c ++++ b/runit/runsv.c +@@ -51,18 +51,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAG + #if ENABLE_MONOTONIC_SYSCALL + #include + +-/* libc has incredibly messy way of doing this, +- * typically requiring -lrt. We just skip all this mess */ + static void gettimeofday_ns(struct timespec *ts) + { +-#if defined(__NR_clock_gettime) +- syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); +-#elif __TIMESIZE == 64 +- syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); +-#else +-# error "We currently don't support architectures without " \ +- "the __NR_clock_gettime syscall and 32-bit time_t" +-#endif ++ clock_gettime(CLOCK_REALTIME, ts); + } + #else + static void gettimeofday_ns(struct timespec *ts) diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch new file mode 100644 index 00000000..944526b7 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch @@ -0,0 +1,53 @@ +From b7b7452f292f03eefafa6fd1da9bcfc933dee15a Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Wed, 18 Sep 2019 09:28:49 -0700 +Subject: [PATCH] date: Use 64 prefix syscall if we have to + +Some 32-bit architectures no longer have the 32-bit time_t syscalls. +Instead they have suffixed syscalls that returns a 64-bit time_t. If +the architecture doesn't have the non-suffixed syscall and is using a +64-bit time_t let's use the suffixed syscall instead. + +This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel +headers. + +If an architecture only supports the suffixed syscalls, but is still +using a 32-bit time_t fall back to the libc call. + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=b7b7452f292f03eefafa6fd1da9bcfc933dee15a] +Signed-off-by: Alistair Francis +Signed-off-by: Denys Vlasenko +--- + coreutils/date.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +--- a/coreutils/date.c ++++ b/coreutils/date.c +@@ -36,7 +36,7 @@ + //config:# defaults to "no": stat's nanosecond field is a bit non-portable + //config:config FEATURE_DATE_NANO + //config: bool "Support %[num]N nanosecond format specifier" +-//config: default n # syscall(__NR_clock_gettime) ++//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) + //config: depends on DATE + //config: select PLATFORM_LINUX + //config: help +@@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, cha + */ + #endif + } else { +-#if ENABLE_FEATURE_DATE_NANO ++#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) + /* libc has incredibly messy way of doing this, + * typically requiring -lrt. We just skip all this mess */ + syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); ++#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 ++ /* Let's only support the 64 suffix syscalls for 64-bit time_t. ++ * This simplifies the code for us as we don't need to convert ++ * between 64-bit and 32-bit. We also don't have a way to ++ * report overflow errors here. ++ */ ++ syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); + #else + time(&ts.tv_sec); + #endif diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-du-l-works-fix-to-use-145-instead-of-144.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-du-l-works-fix-to-use-145-instead-of-144.patch new file mode 100644 index 00000000..bb5f7533 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-du-l-works-fix-to-use-145-instead-of-144.patch @@ -0,0 +1,32 @@ +From c69feb2fdb755d6db34d0eb0a9e9994386c15e3a Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Wed, 14 Nov 2018 15:19:57 +0800 +Subject: [PATCH] du-l-works: fix to use 145 instead of 144 + +64 + 64 + 16 = 144 +144 + size_of_directory >= 145 +So fix to use 145 instead of 144. + +Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2018-November/086836.html] + +Signed-off-by: Chen Qi +--- + testsuite/du/du-l-works | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testsuite/du/du-l-works b/testsuite/du/du-l-works +index af87345..575064a 100644 +--- a/testsuite/du/du-l-works ++++ b/testsuite/du/du-l-works +@@ -5,7 +5,7 @@ cd du.testdir + dd if=/dev/zero of=file1 bs=1k count=64 2>/dev/null + ln file1 file1.1 + dd if=/dev/zero of=file2 bs=1k count=16 2>/dev/null +-test x"`busybox du -l .`" = x"144 ." \ ++test x"`busybox du -l .`" = x"145 ." \ + -o x"`busybox du -l .`" = x"146 ." \ + -o x"`busybox du -l .`" = x"148 ." \ + -o x"`busybox du -l .`" = x"152 ." \ +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch new file mode 100644 index 00000000..0a141ceb --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch @@ -0,0 +1,83 @@ +From 19a6baf0b79346deb383bbd2b5b825d59add7d5d Mon Sep 17 00:00:00 2001 +From: Sakib Sajal +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 +--- + 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 29f5102..088ab3b 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_perror_msg_and_die("settimeofday"); ++ if (settimeofday(NULL, &tz)) ++ bb_perror_msg_and_die("settimeofday: timezone"); ++ if (settimeofday(&tv, NULL)) ++ bb_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_perror_msg_and_die("settimeofday"); ++ if (settimeofday(NULL, &tz)) ++ bb_perror_msg_and_die("settimeofday: timezone"); ++ if (settimeofday(&tv, NULL)) ++ bb_perror_msg_and_die("settimeofday: timeval"); + } + + //usage:#define hwclock_trivial_usage +-- +2.27.0 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch new file mode 100644 index 00000000..9f58eaef --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-check-uudecode-before-using-it.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-check-uudecode-before-using-it.patch new file mode 100644 index 00000000..25472f0b --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-check-uudecode-before-using-it.patch @@ -0,0 +1,45 @@ +From 85f164ec427fecbae24140b3c93acbbe2ba1c817 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Tue, 13 Nov 2018 11:27:01 +0800 +Subject: [PATCH] testsuite: check uudecode before using it + +The unzip and tar test cases use uudecode command, so also +check it via optional function. + +Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2018-November/086833.html] + +Signed-off-by: Chen Qi +--- + testsuite/tar.tests | 2 +- + testsuite/unzip.tests | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/testsuite/tar.tests b/testsuite/tar.tests +index d71a349..8c88567 100755 +--- a/testsuite/tar.tests ++++ b/testsuite/tar.tests +@@ -336,7 +336,7 @@ SKIP= + cd .. || exit 1; rm -rf tar.tempdir 2>/dev/null + + mkdir tar.tempdir && cd tar.tempdir || exit 1 +-optional FEATURE_SEAMLESS_BZ2 FEATURE_TAR_AUTODETECT LS ++optional FEATURE_SEAMLESS_BZ2 FEATURE_TAR_AUTODETECT LS UUDECODE + testing "Symlink attack: create symlink and then write through it" '\ + exec 2>&1 + uudecode -o input && tar xvf input; echo $? +diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests +index af53de9..3b45ece 100755 +--- a/testsuite/unzip.tests ++++ b/testsuite/unzip.tests +@@ -31,7 +31,7 @@ rmdir foo + rm foo.zip + + # File containing some damaged encrypted stream +-optional FEATURE_UNZIP_CDF CONFIG_UNICODE_SUPPORT ++optional FEATURE_UNZIP_CDF CONFIG_UNICODE_SUPPORT UUDECODE + testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \ + "Archive: bad.zip + inflating: ]3j½r«I??K-%Ix +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-use-www.example.org-for-wget-test-cases.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-use-www.example.org-for-wget-test-cases.patch new file mode 100644 index 00000000..7ba0f77f --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-testsuite-use-www.example.org-for-wget-test-cases.patch @@ -0,0 +1,62 @@ +From 03acf460990dfcf6e52b298301b348b9504460a8 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Tue, 13 Nov 2018 13:51:42 +0800 +Subject: [PATCH] testsuite: use www.example.org for wget test cases + +Use example.org instead of google.com to make sure it's +always reachible. + +Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2018-November/086835.html] + +Signed-off-by: Chen Qi +--- + testsuite/wget/wget--O-overrides--P | 2 +- + testsuite/wget/wget-handles-empty-path | 2 +- + testsuite/wget/wget-retrieves-google-index | 2 +- + testsuite/wget/wget-supports--P | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/testsuite/wget/wget--O-overrides--P b/testsuite/wget/wget--O-overrides--P +index 40a3a96..490d743 100644 +--- a/testsuite/wget/wget--O-overrides--P ++++ b/testsuite/wget/wget--O-overrides--P +@@ -1,5 +1,5 @@ + test x"$SKIP_INTERNET_TESTS" != x"" && exit + + mkdir foo +-busybox wget -q -O index.html -P foo http://www.google.com/ ++busybox wget -q -O index.html -P foo http://www.example.org/ + test -s index.html +diff --git a/testsuite/wget/wget-handles-empty-path b/testsuite/wget/wget-handles-empty-path +index 01d60bd..1802db6 100644 +--- a/testsuite/wget/wget-handles-empty-path ++++ b/testsuite/wget/wget-handles-empty-path +@@ -1,3 +1,3 @@ + test x"$SKIP_INTERNET_TESTS" != x"" && exit + +-busybox wget http://www.google.com ++busybox wget http://www.example.org +diff --git a/testsuite/wget/wget-retrieves-google-index b/testsuite/wget/wget-retrieves-google-index +index f9dbb8b..fc801d4 100644 +--- a/testsuite/wget/wget-retrieves-google-index ++++ b/testsuite/wget/wget-retrieves-google-index +@@ -1,4 +1,4 @@ + test x"$SKIP_INTERNET_TESTS" != x"" && exit + +-busybox wget -q -O foo http://www.google.com/ ++busybox wget -q -O foo http://www.example.org/ + test -s foo +diff --git a/testsuite/wget/wget-supports--P b/testsuite/wget/wget-supports--P +index bfe4ac4..4ff2fe0 100644 +--- a/testsuite/wget/wget-supports--P ++++ b/testsuite/wget/wget-supports--P +@@ -1,5 +1,5 @@ + test x"$SKIP_INTERNET_TESTS" != x"" && exit + + mkdir foo +-busybox wget -q -P foo http://www.google.com/ ++busybox wget -q -P foo http://www.example.org/ + test -s foo/index.html +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch b/external/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch new file mode 100644 index 00000000..58a6c0d8 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch @@ -0,0 +1,43 @@ +From 902d3992922fc8db8495d5fb30a4581711b60c62 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Wed, 18 Sep 2019 09:28:50 -0700 +Subject: [PATCH] time: Use 64 prefix syscall if we have to + +Some 32-bit architectures no longer have the 32-bit time_t syscalls. +Instead they have suffixed syscalls that returns a 64-bit time_t. If +the architecture doesn't have the non-suffixed syscall and is using a +64-bit time_t let's use the suffixed syscall instead. + +This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel +headers. + +If an architecture only supports the suffixed syscalls, but is still +using a 32-bit time_t report a compilation error. This avoids us have to +deal with converting between 64-bit and 32-bit values. There are +currently no architectures where this is the case. + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=902d3992922fc8db8495d5fb30a4581711b60c62] +Signed-off-by: Alistair Francis +Signed-off-by: Denys Vlasenko +--- + libbb/time.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/libbb/time.c ++++ b/libbb/time.c +@@ -257,7 +257,14 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( + * typically requiring -lrt. We just skip all this mess */ + static void get_mono(struct timespec *ts) + { +- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) ++#if defined(__NR_clock_gettime) ++ if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) ++#elif __TIMESIZE == 64 ++ if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) ++#else ++# error "We currently don't support architectures without " \ ++ "the __NR_clock_gettime syscall and 32-bit time_t" ++#endif + bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); + } + unsigned long long FAST_FUNC monotonic_ns(void) diff --git a/external/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch b/external/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch new file mode 100644 index 00000000..47605704 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch @@ -0,0 +1,46 @@ +From 8c7419649d6e6fda8fa7d0e863084c78ac728628 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Wed, 28 Aug 2019 10:54:15 -0700 +Subject: [PATCH 3/3] runsv: Use 64 prefix syscall if we have to + +Some 32-bit architectures no longer have the 32-bit time_t syscalls. +Instead they have suffixed syscalls that returns a 64-bit time_t. If +the architecture doesn't have the non-suffixed syscall and is using a +64-bit time_t let's use the suffixed syscall instead. + +This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel +headers. + +If an architecture only supports the suffixed syscalls, but is still +using a 32-bit time_t report a compilation error. This avoids us have to +deal with converting between 64-bit and 32-bit values. There are +currently no architectures where this is the case. + +Signed-off-by: Alistair Francis +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=ad27d44ebe950335616f37e36863469dc181b455] +--- + runit/runsv.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/runit/runsv.c b/runit/runsv.c +index ccc762d78..737909b0e 100644 +--- a/runit/runsv.c ++++ b/runit/runsv.c +@@ -55,7 +55,14 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * typically requiring -lrt. We just skip all this mess */ + static void gettimeofday_ns(struct timespec *ts) + { ++#if defined(__NR_clock_gettime) + syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); ++#elif __TIMESIZE == 64 ++ syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); ++#else ++# error "We currently don't support architectures without " \ ++ "the __NR_clock_gettime syscall and 32-bit time_t" ++#endif + } + #else + static void gettimeofday_ns(struct timespec *ts) +-- +2.22.0 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/CVE-2018-20679.patch b/external/poky/meta/recipes-core/busybox/busybox/CVE-2018-20679.patch deleted file mode 100644 index e4693768..00000000 --- a/external/poky/meta/recipes-core/busybox/busybox/CVE-2018-20679.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 6d3b4bb24da9a07c263f3c1acf8df85382ff562c Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Mon, 17 Dec 2018 18:07:18 +0100 -Subject: [PATCH] udhcpc: check that 4-byte options are indeed 4-byte, closes - 11506 - -function old new delta -udhcp_get_option32 - 27 +27 -udhcp_get_option 231 248 +17 ------------------------------------------------------------------------------- -(add/remove: 1/0 grow/shrink: 1/0 up/down: 44/0) Total: 44 bytes - -Signed-off-by: Denys Vlasenko - -Upstream-Status: Backport -CVE: CVE-2018-20679 - -Affects < 1.30.0 - -signed-off-by: Armin Kuster - ---- - networking/udhcp/common.c | 19 +++++++++++++++++++ - networking/udhcp/common.h | 4 ++++ - networking/udhcp/dhcpc.c | 6 +++--- - networking/udhcp/dhcpd.c | 6 +++--- - 4 files changed, 29 insertions(+), 6 deletions(-) - -Index: busybox-1.29.3/networking/udhcp/common.c -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/common.c -+++ busybox-1.29.3/networking/udhcp/common.c -@@ -270,6 +270,15 @@ uint8_t* FAST_FUNC udhcp_get_option(stru - goto complain; /* complain and return NULL */ - - if (optionptr[OPT_CODE] == code) { -+ if (optionptr[OPT_LEN] == 0) { -+ /* So far no valid option with length 0 known. -+ * Having this check means that searching -+ * for DHCP_MESSAGE_TYPE need not worry -+ * that returned pointer might be unsafe -+ * to dereference. -+ */ -+ goto complain; /* complain and return NULL */ -+ } - log_option("option found", optionptr); - return optionptr + OPT_DATA; - } -@@ -287,6 +296,16 @@ uint8_t* FAST_FUNC udhcp_get_option(stru - return NULL; - } - -+uint8_t* FAST_FUNC udhcp_get_option32(struct dhcp_packet *packet, int code) -+{ -+ uint8_t *r = udhcp_get_option(packet, code); -+ if (r) { -+ if (r[-1] != 4) -+ r = NULL; -+ } -+ return r; -+} -+ - /* Return the position of the 'end' option (no bounds checking) */ - int FAST_FUNC udhcp_end_option(uint8_t *optionptr) - { -Index: busybox-1.29.3/networking/udhcp/common.h -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/common.h -+++ busybox-1.29.3/networking/udhcp/common.h -@@ -204,6 +204,10 @@ extern const uint8_t dhcp_option_lengths - unsigned FAST_FUNC udhcp_option_idx(const char *name, const char *option_strings); - - uint8_t *udhcp_get_option(struct dhcp_packet *packet, int code) FAST_FUNC; -+/* Same as above + ensures that option length is 4 bytes -+ * (returns NULL if size is different) -+ */ -+uint8_t *udhcp_get_option32(struct dhcp_packet *packet, int code) FAST_FUNC; - int udhcp_end_option(uint8_t *optionptr) FAST_FUNC; - void udhcp_add_binary_option(struct dhcp_packet *packet, uint8_t *addopt) FAST_FUNC; - #if ENABLE_UDHCPC || ENABLE_UDHCPD -Index: busybox-1.29.3/networking/udhcp/dhcpc.c -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/dhcpc.c -+++ busybox-1.29.3/networking/udhcp/dhcpc.c -@@ -1694,7 +1694,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c - * They say ISC DHCP client supports this case. - */ - server_addr = 0; -- temp = udhcp_get_option(&packet, DHCP_SERVER_ID); -+ temp = udhcp_get_option32(&packet, DHCP_SERVER_ID); - if (!temp) { - bb_error_msg("no server ID, using 0.0.0.0"); - } else { -@@ -1721,7 +1721,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c - struct in_addr temp_addr; - uint8_t *temp; - -- temp = udhcp_get_option(&packet, DHCP_LEASE_TIME); -+ temp = udhcp_get_option32(&packet, DHCP_LEASE_TIME); - if (!temp) { - bb_error_msg("no lease time with ACK, using 1 hour lease"); - lease_seconds = 60 * 60; -@@ -1817,7 +1817,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c - uint32_t svid; - uint8_t *temp; - -- temp = udhcp_get_option(&packet, DHCP_SERVER_ID); -+ temp = udhcp_get_option32(&packet, DHCP_SERVER_ID); - if (!temp) { - non_matching_svid: - log1("received DHCP NAK with wrong" -Index: busybox-1.29.3/networking/udhcp/dhcpd.c -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/dhcpd.c -+++ busybox-1.29.3/networking/udhcp/dhcpd.c -@@ -640,7 +640,7 @@ static void add_server_options(struct dh - static uint32_t select_lease_time(struct dhcp_packet *packet) - { - uint32_t lease_time_sec = server_config.max_lease_sec; -- uint8_t *lease_time_opt = udhcp_get_option(packet, DHCP_LEASE_TIME); -+ uint8_t *lease_time_opt = udhcp_get_option32(packet, DHCP_LEASE_TIME); - if (lease_time_opt) { - move_from_unaligned32(lease_time_sec, lease_time_opt); - lease_time_sec = ntohl(lease_time_sec); -@@ -987,7 +987,7 @@ int udhcpd_main(int argc UNUSED_PARAM, c - } - - /* Get SERVER_ID if present */ -- server_id_opt = udhcp_get_option(&packet, DHCP_SERVER_ID); -+ server_id_opt = udhcp_get_option32(&packet, DHCP_SERVER_ID); - if (server_id_opt) { - uint32_t server_id_network_order; - move_from_unaligned32(server_id_network_order, server_id_opt); -@@ -1011,7 +1011,7 @@ int udhcpd_main(int argc UNUSED_PARAM, c - } - - /* Get REQUESTED_IP if present */ -- requested_ip_opt = udhcp_get_option(&packet, DHCP_REQUESTED_IP); -+ requested_ip_opt = udhcp_get_option32(&packet, DHCP_REQUESTED_IP); - if (requested_ip_opt) { - move_from_unaligned32(requested_nip, requested_ip_opt); - } diff --git a/external/poky/meta/recipes-core/busybox/busybox/CVE-2019-5747.patch b/external/poky/meta/recipes-core/busybox/busybox/CVE-2019-5747.patch deleted file mode 100644 index 4225b11e..00000000 --- a/external/poky/meta/recipes-core/busybox/busybox/CVE-2019-5747.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 74d9f1ba37010face4bd1449df4d60dd84450b06 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Mon, 7 Jan 2019 15:33:42 +0100 -Subject: [PATCH] udhcpc: when decoding DHCP_SUBNET, ensure it is 4 bytes long - -function old new delta -udhcp_run_script 795 801 +6 - -Signed-off-by: Denys Vlasenko - -Upstream-Status: Backport -CVE: CVE-2019-5747 -Affects < 1.30.0 -Signed-off-by: Armin Kuster - ---- - networking/udhcp/common.c | 2 +- - networking/udhcp/common.h | 2 +- - networking/udhcp/dhcpc.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -Index: busybox-1.29.3/networking/udhcp/common.c -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/common.c -+++ busybox-1.29.3/networking/udhcp/common.c -@@ -300,7 +300,7 @@ uint8_t* FAST_FUNC udhcp_get_option32(st - { - uint8_t *r = udhcp_get_option(packet, code); - if (r) { -- if (r[-1] != 4) -+ if (r[-OPT_DATA + OPT_LEN] != 4) - r = NULL; - } - return r; -Index: busybox-1.29.3/networking/udhcp/common.h -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/common.h -+++ busybox-1.29.3/networking/udhcp/common.h -@@ -119,7 +119,7 @@ enum { - //#define DHCP_TIME_SERVER 0x04 /* RFC 868 time server (32-bit, 0 = 1.1.1900) */ - //#define DHCP_NAME_SERVER 0x05 /* IEN 116 _really_ ancient kind of NS */ - //#define DHCP_DNS_SERVER 0x06 --//#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) -+//#define DHCP_LOG_SERVER 0x07 /* port 704 UDP log (not syslog) */ - //#define DHCP_COOKIE_SERVER 0x08 /* "quote of the day" server */ - //#define DHCP_LPR_SERVER 0x09 - #define DHCP_HOST_NAME 0x0c /* either client informs server or server gives name to client */ -Index: busybox-1.29.3/networking/udhcp/dhcpc.c -=================================================================== ---- busybox-1.29.3.orig/networking/udhcp/dhcpc.c -+++ busybox-1.29.3/networking/udhcp/dhcpc.c -@@ -526,7 +526,7 @@ static char **fill_envp(struct dhcp_pack - temp = udhcp_get_option(packet, code); - *curr = xmalloc_optname_optval(temp, &dhcp_optflags[i], opt_name); - putenv(*curr++); -- if (code == DHCP_SUBNET) { -+ if (code == DHCP_SUBNET && temp[-OPT_DATA + OPT_LEN] == 4) { - /* Subnet option: make things like "$ip/$mask" possible */ - uint32_t subnet; - move_from_unaligned32(subnet, temp); diff --git a/external/poky/meta/recipes-core/busybox/busybox/busybox-CVE-2018-1000500.patch b/external/poky/meta/recipes-core/busybox/busybox/busybox-CVE-2018-1000500.patch new file mode 100644 index 00000000..d1a33e4a --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/busybox-CVE-2018-1000500.patch @@ -0,0 +1,98 @@ +From 71e7e2fb35c806d20f9739d832cd9ae3a86fdee2 Mon Sep 17 00:00:00 2001 +From: Dimitri John Ledkov +Date: Tue, 19 May 2020 18:20:39 +0100 +Subject: [PATCH] wget: implement TLS verification with + ENABLE_FEATURE_WGET_OPENSSL + +When ENABLE_FEATURE_WGET_OPENSSL is enabled, correctly implement TLS +verification by default. And only ignore verification errors, if +--no-check-certificate was passed. + +Also note, that previously OPENSSL implementation did not implement +TLS verification, nor printed any warning messages that verification +was not performed. + +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1879533 + +CVE-2018-1000500 + +Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=45fa3f18adf57ef9d743038743d9c90573aeeb91] +CVE: CVE-2018-1000500 + +Signed-off-by: Dimitri John Ledkov +Signed-off-by: Denys Vlasenko +Signed-off-by: Rahul Kumar +--- + networking/wget.c | 20 +++++++++++++++++--- + 1 file changed, 17 insertions(+), 3 deletions(-) + +diff --git a/networking/wget.c b/networking/wget.c +index 9153264..a7e6deb 100644 +--- a/networking/wget.c ++++ b/networking/wget.c +@@ -91,6 +91,9 @@ + //config: patches, but do want to waste bandwidth expaining how wrong + //config: it is, you will be ignored. + //config: ++//config: FEATURE_WGET_OPENSSL does implement TLS verification ++//config: using the certificates available to OpenSSL. ++//config: + //config:config FEATURE_WGET_OPENSSL + //config: bool "Try to connect to HTTPS using openssl" + //config: default y +@@ -115,6 +118,9 @@ + //config: If openssl can't be executed, internal TLS code will be used + //config: (if you enabled it); if openssl can be executed but fails later, + //config: wget can't detect this, and download will fail. ++//config: ++//config: By default TLS verification is performed, unless ++//config: --no-check-certificate option is passed. + + //applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP)) + +@@ -124,8 +130,11 @@ + //usage: IF_FEATURE_WGET_LONG_OPTIONS( + //usage: "[-c|--continue] [--spider] [-q|--quiet] [-O|--output-document FILE]\n" + //usage: " [-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]\n" ++//usage: IF_FEATURE_WGET_OPENSSL( ++//usage: " [--no-check-certificate]\n" ++//usage: ) + /* Since we ignore these opts, we don't show them in --help */ +-/* //usage: " [--no-check-certificate] [--no-cache] [--passive-ftp] [-t TRIES]" */ ++/* //usage: " [--no-cache] [--passive-ftp] [-t TRIES]" */ + /* //usage: " [-nv] [-nc] [-nH] [-np]" */ + //usage: " [-P DIR] [-S|--server-response] [-U|--user-agent AGENT]" IF_FEATURE_WGET_TIMEOUT(" [-T SEC]") " URL..." + //usage: ) +@@ -137,7 +146,9 @@ + //usage: "Retrieve files via HTTP or FTP\n" + //usage: IF_FEATURE_WGET_LONG_OPTIONS( + //usage: "\n --spider Only check URL existence: $? is 0 if exists" +-///////: "\n --no-check-certificate Don't validate the server's certificate" ++//usage: IF_FEATURE_WGET_OPENSSL( ++//usage: "\n --no-check-certificate Don't validate the server's certificate" ++//usage: ) + //usage: ) + //usage: "\n -c Continue retrieval of aborted transfer" + //usage: "\n -q Quiet" +@@ -662,7 +673,7 @@ static int spawn_https_helper_openssl(const char *host, unsigned port) + pid = xvfork(); + if (pid == 0) { + /* Child */ +- char *argv[8]; ++ char *argv[9]; + + close(sp[0]); + xmove_fd(sp[1], 0); +@@ -689,6 +700,9 @@ static int spawn_https_helper_openssl(const char *host, unsigned port) + argv[5] = (char*)"-servername"; + argv[6] = (char*)servername; + } ++ if (!(option_mask32 & WGET_OPT_NO_CHECK_CERT)) { ++ argv[7] = (char*)"-verify_return_error"; ++ } + + BB_EXECVP(argv[0], argv); + xmove_fd(3, 2); +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/external/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch index 76daaf1f..2a0a40c5 100644 --- a/external/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch +++ b/external/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch @@ -31,10 +31,10 @@ Signed-off-by: Andreas Oberritter networking/udhcp/dhcpc.c | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) -Index: busybox-1.29.1/networking/udhcp/dhcpc.c +Index: busybox-1.31.0/networking/udhcp/dhcpc.c =================================================================== ---- busybox-1.29.1.orig/networking/udhcp/dhcpc.c -+++ busybox-1.29.1/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 @@ }; #endif @@ -42,21 +42,21 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c +/* option whether to down the interface when reconfiguring */ +static int allow_deconfig = 1; - /* "struct client_config_t client_config" is in bb_common_bufsiz1 */ + /* "struct client_data_t client_data" is in bb_common_bufsiz1 */ -@@ -103,8 +105,9 @@ +@@ -103,8 +105,10 @@ OPT_x = 1 << 18, OPT_f = 1 << 19, OPT_B = 1 << 20, + OPT_D = 1 << 21, /* The rest has variable bit positions, need to be clever */ -- OPTBIT_B = 20, + OPTBIT_B = 20, + OPTBIT_D = 21, USE_FOR_MMU( OPTBIT_b,) IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,) IF_FEATURE_UDHCP_PORT( OPTBIT_P,) -@@ -1116,7 +1119,8 @@ - state = RENEW_REQUESTED; +@@ -1124,7 +1128,8 @@ + client_data.state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ - udhcp_run_script(NULL, "deconfig"); @@ -65,7 +65,7 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c case REQUESTING: case RELEASED: change_listen_mode(LISTEN_RAW); -@@ -1152,7 +1156,8 @@ +@@ -1160,7 +1165,8 @@ * Users requested to be notified in all cases, even if not in one * of the states above. */ @@ -74,8 +74,8 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c + udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_NONE); - state = RELEASED; -@@ -1265,7 +1270,7 @@ + client_data.state = RELEASED; +@@ -1278,7 +1284,7 @@ /* Parse command line */ opt = getopt32long(argv, "^" /* O,x: list; -T,-t,-A take numeric param */ @@ -84,7 +84,7 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c USE_FOR_MMU("b") IF_FEATURE_UDHCPC_ARPING("a::") IF_FEATURE_UDHCP_PORT("P:") -@@ -1376,6 +1381,10 @@ +@@ -1389,6 +1395,10 @@ logmode |= LOGMODE_SYSLOG; } @@ -92,52 +92,52 @@ Index: busybox-1.29.1/networking/udhcp/dhcpc.c + allow_deconfig = 0; + } + - /* Make sure fd 0,1,2 are open */ - bb_sanitize_stdio(); /* Create pidfile */ -@@ -1388,7 +1397,8 @@ + write_pidfile(client_data.pidfile); + /* Goes to stdout (unless NOMMU) and possibly syslog */ +@@ -1397,7 +1407,8 @@ srand(monotonic_us()); - state = INIT_SELECTING; + client_data.state = INIT_SELECTING; - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_RAW); packet_num = 0; timeout = 0; -@@ -1555,7 +1565,8 @@ +@@ -1570,7 +1581,8 @@ } /* Timed out, enter init state */ - bb_error_msg("lease lost, entering init state"); + bb_info_msg("lease lost, entering init state"); - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); - state = INIT_SELECTING; - client_config.first_secs = 0; /* make secs field count from 0 */ + client_data.state = INIT_SELECTING; + client_data.first_secs = 0; /* make secs field count from 0 */ /*timeout = 0; - already is */ -@@ -1748,8 +1759,10 @@ +@@ -1762,8 +1774,10 @@ "(got ARP reply), declining"); send_decline(/*xid,*/ server_addr, packet.yiaddr); -- if (state != REQUESTING) +- if (client_data.state != REQUESTING) - udhcp_run_script(NULL, "deconfig"); -+ if (state != REQUESTING) { ++ if (client_data.state != REQUESTING) { + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); + } change_listen_mode(LISTEN_RAW); - state = INIT_SELECTING; - client_config.first_secs = 0; /* make secs field count from 0 */ -@@ -1818,8 +1831,10 @@ + client_data.state = INIT_SELECTING; + client_data.first_secs = 0; /* make secs field count from 0 */ +@@ -1832,8 +1846,10 @@ /* return to init state */ - bb_error_msg("received %s", "DHCP NAK"); + bb_info_msg("received %s", "DHCP NAK"); udhcp_run_script(&packet, "nak"); -- if (state != REQUESTING) +- if (client_data.state != REQUESTING) - udhcp_run_script(NULL, "deconfig"); -+ if (state != REQUESTING) { ++ if (client_data.state != REQUESTING) { + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); + } change_listen_mode(LISTEN_RAW); sleep(3); /* avoid excessive network traffic */ - state = INIT_SELECTING; + client_data.state = INIT_SELECTING; diff --git a/external/poky/meta/recipes-core/busybox/busybox/defconfig b/external/poky/meta/recipes-core/busybox/busybox/defconfig index 32213c06..0b27fcd4 100644 --- a/external/poky/meta/recipes-core/busybox/busybox/defconfig +++ b/external/poky/meta/recipes-core/busybox/busybox/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.29.1 -# Thu Jul 19 11:09:46 2018 +# Busybox version: 1.30.1 +# Sun Feb 17 18:12:27 2019 # CONFIG_HAVE_DOT_CONFIG=y @@ -12,29 +12,29 @@ CONFIG_HAVE_DOT_CONFIG=y # CONFIG_EXTRA_COMPAT is not set # CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set -# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y # CONFIG_FEATURE_VERBOSE_USAGE is not set CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_BUSYBOX=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_INSTALL_NO_USR is not set +CONFIG_LFS=y # CONFIG_PAM is not set -CONFIG_LONG_OPTS=y CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_UTMP=y # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +# CONFIG_FEATURE_SHOW_SCRIPT is not set +# CONFIG_FEATURE_INSTALLER is not set +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y CONFIG_FEATURE_SUID_CONFIG=y CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set CONFIG_FEATURE_SYSLOG=y -# CONFIG_FEATURE_HAVE_RPC is not set CONFIG_PLATFORM_LINUX=y # @@ -44,14 +44,16 @@ CONFIG_PLATFORM_LINUX=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y # # Installation Options ("make install" behavior) @@ -81,7 +83,9 @@ CONFIG_NO_DEBUG_LIB=y # Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +# CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS is not set CONFIG_FEATURE_BUFFERS_USE_MALLOC=y # CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set # CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set @@ -101,6 +105,7 @@ CONFIG_FEATURE_EDITING_SAVEHISTORY=y CONFIG_FEATURE_TAB_COMPLETION=y CONFIG_FEATURE_USERNAME_COMPLETION=y CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +# CONFIG_FEATURE_EDITING_WINCH is not set # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set # CONFIG_LOCALE_SUPPORT is not set # CONFIG_UNICODE_SUPPORT is not set @@ -146,11 +151,10 @@ CONFIG_BZCAT=y # CONFIG_UNLZMA is not set CONFIG_LZCAT=y # CONFIG_LZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set # CONFIG_UNXZ is not set CONFIG_XZCAT=y # CONFIG_XZ is not set -# CONFIG_BZIP2 is not set +CONFIG_BZIP2=y CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y # CONFIG_FEATURE_CPIO_O is not set @@ -185,12 +189,14 @@ CONFIG_FEATURE_UNZIP_CDF=y # CONFIG_FEATURE_UNZIP_BZIP2 is not set # CONFIG_FEATURE_UNZIP_LZMA is not set # CONFIG_FEATURE_UNZIP_XZ is not set +# CONFIG_FEATURE_LZMA_FAST is not set # # Coreutils # CONFIG_BASENAME=y CONFIG_CAT=y +CONFIG_FEATURE_CATN=y # CONFIG_FEATURE_CATV is not set CONFIG_CHGRP=y CONFIG_CHMOD=y @@ -201,6 +207,7 @@ CONFIG_CHROOT=y # CONFIG_COMM is not set CONFIG_CP=y # CONFIG_FEATURE_CP_LONG_OPTIONS is not set +# CONFIG_FEATURE_CP_REFLINK is not set CONFIG_CUT=y CONFIG_DATE=y # CONFIG_FEATURE_DATE_ISOFMT is not set @@ -221,11 +228,8 @@ CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y # CONFIG_EXPAND is not set -# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set # CONFIG_UNEXPAND is not set -# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y # CONFIG_FACTOR is not set @@ -263,12 +267,10 @@ CONFIG_MD5SUM=y # CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y CONFIG_MKTEMP=y CONFIG_MV=y -# CONFIG_FEATURE_MV_LONG_OPTIONS is not set # CONFIG_NICE is not set # CONFIG_NL is not set CONFIG_NOHUP=y @@ -283,15 +285,14 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set CONFIG_SEQ=y # CONFIG_SHRED is not set CONFIG_SHUF=y CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set # CONFIG_SPLIT is not set # CONFIG_FEATURE_SPLIT_FANCY is not set CONFIG_STAT=y @@ -331,10 +332,10 @@ CONFIG_USLEEP=y # CONFIG_UUENCODE is not set CONFIG_WC=y # CONFIG_FEATURE_WC_LARGE is not set +CONFIG_WHOAMI=y CONFIG_WHO=y # CONFIG_W is not set CONFIG_USERS=y -CONFIG_WHOAMI=y CONFIG_YES=y # @@ -443,6 +444,7 @@ CONFIG_FEATURE_FIND_MTIME=y CONFIG_FEATURE_FIND_MMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y @@ -456,6 +458,7 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y # CONFIG_FEATURE_FIND_DELETE is not set CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y @@ -471,6 +474,8 @@ CONFIG_XARGS=y # CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set # CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +# CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL is not set +# CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE is not set # # Init Utilities @@ -481,6 +486,7 @@ CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y # CONFIG_HALT is not set # CONFIG_POWEROFF is not set CONFIG_REBOOT=y +# CONFIG_FEATURE_WAIT_FOR_INIT is not set # CONFIG_FEATURE_CALL_TELINIT is not set # CONFIG_TELINIT_PATH is not set # CONFIG_INIT is not set @@ -503,13 +509,11 @@ CONFIG_REBOOT=y # CONFIG_USE_BB_SHADOW is not set CONFIG_USE_BB_CRYPT=y # CONFIG_USE_BB_CRYPT_SHA is not set -# CONFIG_ADD_SHELL is not set -# CONFIG_REMOVE_SHELL is not set # CONFIG_ADDGROUP is not set -# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set # CONFIG_FEATURE_ADDUSER_TO_GROUP is not set +# CONFIG_ADD_SHELL is not set +# CONFIG_REMOVE_SHELL is not set # CONFIG_ADDUSER is not set -# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 @@ -585,8 +589,11 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_BLOCKDEV is not set # CONFIG_CAL is not set +# CONFIG_CHRT is not set CONFIG_DMESG=y CONFIG_FEATURE_DMESG_PRETTY=y +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FALLOCATE is not set # CONFIG_FATATTR is not set CONFIG_FBSET=y @@ -616,8 +623,8 @@ CONFIG_HEXDUMP=y # CONFIG_HD is not set # CONFIG_XXD is not set CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +# CONFIG_IONICE is not set # CONFIG_IPCRM is not set # CONFIG_IPCS is not set # CONFIG_LAST is not set @@ -653,8 +660,10 @@ CONFIG_MOUNT=y CONFIG_FEATURE_MOUNT_FLAGS=y CONFIG_FEATURE_MOUNT_FSTAB=y # CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_MOUNTPOINT=y +# CONFIG_NOLOGIN is not set +# CONFIG_NOLOGIN_DEPENDENCIES is not set # CONFIG_NSENTER is not set -# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y # CONFIG_RDEV is not set @@ -668,10 +677,15 @@ CONFIG_RENICE=y # CONFIG_LINUX32 is not set # CONFIG_LINUX64 is not set # CONFIG_SETPRIV is not set +# CONFIG_FEATURE_SETPRIV_DUMP is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set +# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set +CONFIG_SETSID=y CONFIG_SWAPON=y CONFIG_FEATURE_SWAPON_DISCARD=y CONFIG_FEATURE_SWAPON_PRI=y CONFIG_SWAPOFF=y +# CONFIG_FEATURE_SWAPONOFF_LABEL is not set CONFIG_SWITCH_ROOT=y # CONFIG_TASKSET is not set # CONFIG_FEATURE_TASKSET_FANCY is not set @@ -702,9 +716,11 @@ CONFIG_FEATURE_MOUNT_LOOP_CREATE=y # CONFIG_FEATURE_VOLUMEID_HFS is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set # CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LFS is not set # CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set # CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_MINIX is not set # CONFIG_FEATURE_VOLUMEID_NILFS is not set # CONFIG_FEATURE_VOLUMEID_NTFS is not set # CONFIG_FEATURE_VOLUMEID_OCFS2 is not set @@ -719,19 +735,44 @@ CONFIG_FEATURE_MOUNT_LOOP_CREATE=y # # Miscellaneous Utilities # +# CONFIG_ADJTIMEX is not set +# CONFIG_BBCONFIG is not set +# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +# CONFIG_BC is not set +CONFIG_DC=y +# CONFIG_FEATURE_DC_BIG is not set +# CONFIG_FEATURE_DC_LIBM is not set +# CONFIG_FEATURE_BC_INTERACTIVE is not set +# CONFIG_FEATURE_BC_LONG_OPTIONS is not set # CONFIG_BEEP is not set CONFIG_FEATURE_BEEP_FREQ=0 CONFIG_FEATURE_BEEP_LENGTH_MS=0 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set # CONFIG_CONSPY is not set # CONFIG_CROND is not set # CONFIG_FEATURE_CROND_D is not set # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set CONFIG_FEATURE_CROND_DIR="" +# CONFIG_CRONTAB is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +# CONFIG_FBSPLASH is not set +# CONFIG_FLASHCP is not set +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set # CONFIG_HDPARM is not set # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set @@ -744,6 +785,7 @@ CONFIG_FEATURE_CROND_DIR="" # CONFIG_I2CSET is not set # CONFIG_I2CDUMP is not set # CONFIG_I2CDETECT is not set +# CONFIG_INOTIFYD is not set CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_BRACKETS=y @@ -755,78 +797,35 @@ CONFIG_FEATURE_LESS_FLAGS=y # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set # CONFIG_FEATURE_LESS_DASHCMD is not set # CONFIG_FEATURE_LESS_LINENUMS is not set +# CONFIG_FEATURE_LESS_RAW is not set +# CONFIG_FEATURE_LESS_ENV is not set # CONFIG_LSSCSI is not set -# CONFIG_NANDWRITE is not set -# CONFIG_NANDDUMP is not set -# CONFIG_PARTPROBE is not set -CONFIG_RFKILL=y -# CONFIG_SETSERIAL is not set -# CONFIG_UBIATTACH is not set -# CONFIG_UBIDETACH is not set -# CONFIG_UBIMKVOL is not set -# CONFIG_UBIRMVOL is not set -# CONFIG_UBIRSVOL is not set -# CONFIG_UBIUPDATEVOL is not set -# CONFIG_UBIRENAME is not set -# CONFIG_ADJTIMEX is not set -# CONFIG_BBCONFIG is not set -# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set -# CONFIG_BEEP is not set -CONFIG_FEATURE_BEEP_FREQ=0 -CONFIG_FEATURE_BEEP_LENGTH_MS=0 -# CONFIG_CHAT is not set -# CONFIG_FEATURE_CHAT_NOFAIL is not set -# CONFIG_FEATURE_CHAT_TTY_HIFI is not set -# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set -# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set -# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set -# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set -# CONFIG_FEATURE_CHAT_CLR_ABORT is not set -# CONFIG_CHRT is not set -# CONFIG_CRONTAB is not set -CONFIG_DC=y -# CONFIG_FEATURE_DC_LIBM is not set -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -# CONFIG_DEVMEM is not set -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set -# CONFIG_FBSPLASH is not set -# CONFIG_FLASHCP is not set -# CONFIG_FLASH_LOCK is not set -# CONFIG_FLASH_UNLOCK is not set -# CONFIG_FLASH_ERASEALL is not set -# CONFIG_IONICE is not set -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_FANCY is not set -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set CONFIG_MICROCOM=y -# CONFIG_MOUNTPOINT is not set # CONFIG_MT is not set +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +# CONFIG_PARTPROBE is not set # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set +CONFIG_RFKILL=y # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -# CONFIG_SETSID is not set # CONFIG_SETFATTR is not set +# CONFIG_SETSERIAL is not set CONFIG_STRINGS=y CONFIG_TIME=y -# CONFIG_TIMEOUT is not set # CONFIG_TTYSIZE is not set +# CONFIG_UBIRENAME is not set +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set # CONFIG_VOLNAME is not set # CONFIG_WATCHDOG is not set @@ -837,6 +836,7 @@ CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set # CONFIG_BRCTL is not set @@ -911,6 +911,7 @@ CONFIG_FEATURE_IP_TUNNEL=y # CONFIG_FEATURE_NAMEIF_EXTENDED is not set # CONFIG_NBDCLIENT is not set CONFIG_NC=y +# CONFIG_NETCAT is not set # CONFIG_NC_SERVER is not set # CONFIG_NC_EXTRA is not set # CONFIG_NC_110_COMPAT is not set @@ -918,9 +919,12 @@ CONFIG_NETSTAT=y # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set CONFIG_NSLOOKUP=y +# CONFIG_FEATURE_NSLOOKUP_BIG is not set +# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set CONFIG_PING=y CONFIG_PING6=y CONFIG_FEATURE_FANCY_PING=y @@ -940,15 +944,11 @@ CONFIG_FEATURE_TELNET_WIDTH=y # CONFIG_FEATURE_TELNETD_STANDALONE is not set # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set CONFIG_TFTP=y +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set # CONFIG_TFTPD is not set - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set # CONFIG_TFTP_DEBUG is not set CONFIG_TLS=y CONFIG_TRACEROUTE=y @@ -988,9 +988,8 @@ CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" # # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 -# CONFIG_FEATURE_UDHCP_RFC3397 is not set -# CONFIG_FEATURE_UDHCP_8021Q is not set CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +# CONFIG_FEATURE_UDHCP_8021Q is not set CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b" # @@ -1071,13 +1070,11 @@ CONFIG_SV_DEFAULT_SERVICE_DIR="" # CONFIG_SVOK is not set # CONFIG_SVLOGD is not set # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set # CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set @@ -1099,6 +1096,8 @@ CONFIG_ASH=y CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y # CONFIG_ASH_RANDOM_SUPPORT is not set @@ -1115,6 +1114,8 @@ CONFIG_ASH_CMDCMD=y # CONFIG_HUSH is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_LINENO_VAR is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1132,17 +1133,20 @@ CONFIG_ASH_CMDCMD=y # CONFIG_HUSH_HELP is not set # CONFIG_HUSH_EXPORT is not set # CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set # CONFIG_HUSH_KILL is not set # CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set # CONFIG_HUSH_TRAP is not set # CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set # CONFIG_HUSH_READ is not set # CONFIG_HUSH_SET is not set # CONFIG_HUSH_UNSET is not set # CONFIG_HUSH_ULIMIT is not set # CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set # CONFIG_HUSH_MEMLEAK is not set -# CONFIG_MSH is not set # # Options common to all shells @@ -1152,7 +1156,9 @@ CONFIG_FEATURE_SH_MATH=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +# CONFIG_FEATURE_SH_READ_FRAC is not set CONFIG_FEATURE_SH_HISTFILESIZE=y +# CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS is not set # # System Logging Utilities diff --git a/external/poky/meta/recipes-core/busybox/busybox/unicode.cfg b/external/poky/meta/recipes-core/busybox/busybox/unicode.cfg new file mode 100644 index 00000000..ecb5a64f --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox/unicode.cfg @@ -0,0 +1,10 @@ +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=767 +CONFIG_UNICODE_COMBINING_WCHARS=y +CONFIG_UNICODE_WIDE_WCHARS=y +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set diff --git a/external/poky/meta/recipes-core/busybox/busybox_1.29.3.bb b/external/poky/meta/recipes-core/busybox/busybox_1.29.3.bb deleted file mode 100644 index 5714d707..00000000 --- a/external/poky/meta/recipes-core/busybox/busybox_1.29.3.bb +++ /dev/null @@ -1,50 +0,0 @@ -require busybox.inc - -SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ - file://busybox-udhcpc-no_deconfig.patch \ - file://find-touchscreen.sh \ - file://busybox-cron \ - file://busybox-httpd \ - file://busybox-udhcpd \ - file://default.script \ - file://simple.script \ - file://hwclock.sh \ - file://mount.busybox \ - file://syslog \ - file://syslog-startup.conf \ - file://syslog.conf \ - file://busybox-syslog.default \ - file://mdev \ - file://mdev.conf \ - file://mdev-mount.sh \ - file://umount.busybox \ - file://defconfig \ - file://busybox-syslog.service.in \ - file://busybox-klogd.service.in \ - file://fail_on_no_media.patch \ - file://run-ptest \ - file://inetd.conf \ - file://inetd \ - file://login-utilities.cfg \ - file://recognize_connmand.patch \ - file://busybox-cross-menuconfig.patch \ - file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ - file://mount-via-label.cfg \ - file://sha1sum.cfg \ - file://sha256sum.cfg \ - file://getopts.cfg \ - file://resize.cfg \ - ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ - ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ - file://syslog.cfg \ - file://inittab \ - file://rcS \ - file://rcK \ - file://makefile-libbb-race.patch \ - file://CVE-2018-20679.patch \ - file://CVE-2019-5747.patch \ -" -SRC_URI_append_libc-musl = " file://musl.cfg " - -SRC_URI[tarball.md5sum] = "0a367e19cdfd157e8258d87f893ee516" -SRC_URI[tarball.sha256sum] = "97648636e579462296478e0218e65e4bc1e9cd69089a3b1aeb810bff7621efb7" diff --git a/external/poky/meta/recipes-core/busybox/busybox_1.31.1.bb b/external/poky/meta/recipes-core/busybox/busybox_1.31.1.bb new file mode 100644 index 00000000..75633682 --- /dev/null +++ b/external/poky/meta/recipes-core/busybox/busybox_1.31.1.bb @@ -0,0 +1,57 @@ +require busybox.inc + +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 \ + file://busybox-httpd \ + file://busybox-udhcpd \ + file://default.script \ + file://simple.script \ + file://hwclock.sh \ + file://syslog \ + file://syslog-startup.conf \ + file://syslog.conf \ + file://busybox-syslog.default \ + file://mdev \ + file://mdev.conf \ + file://mdev-mount.sh \ + file://defconfig \ + file://busybox-syslog.service.in \ + file://busybox-klogd.service.in \ + file://fail_on_no_media.patch \ + file://run-ptest \ + file://inetd.conf \ + file://inetd \ + file://login-utilities.cfg \ + file://recognize_connmand.patch \ + file://busybox-cross-menuconfig.patch \ + file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ + file://mount-via-label.cfg \ + file://sha1sum.cfg \ + file://sha256sum.cfg \ + file://getopts.cfg \ + file://resize.cfg \ + ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ + ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ + file://syslog.cfg \ + file://unicode.cfg \ + file://rcS \ + file://rcK \ + file://makefile-libbb-race.patch \ + file://0001-testsuite-check-uudecode-before-using-it.patch \ + file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ + file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ + file://0001-date-Use-64-prefix-syscall-if-we-have-to.patch \ + file://0001-time-Use-64-prefix-syscall-if-we-have-to.patch \ + file://0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch \ + file://0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch \ + file://0001-Remove-stime-function-calls.patch \ + file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ + file://busybox-CVE-2018-1000500.patch \ + file://0001-hwclock-make-glibc-2.31-compatible.patch \ +" +SRC_URI_append_libc-musl = " file://musl.cfg " + +SRC_URI[tarball.md5sum] = "70913edaf2263a157393af07565c17f0" +SRC_URI[tarball.sha256sum] = "d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998" diff --git a/external/poky/meta/recipes-core/busybox/files/inittab b/external/poky/meta/recipes-core/busybox/files/inittab index 2bc831c7..e8ec2ab6 100644 --- a/external/poky/meta/recipes-core/busybox/files/inittab +++ b/external/poky/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/external/poky/meta/recipes-core/busybox/files/mount.busybox b/external/poky/meta/recipes-core/busybox/files/mount.busybox deleted file mode 100755 index fef945b7..00000000 --- a/external/poky/meta/recipes-core/busybox/files/mount.busybox +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec /bin/busybox mount $@ diff --git a/external/poky/meta/recipes-core/busybox/files/run-ptest b/external/poky/meta/recipes-core/busybox/files/run-ptest index 3608a8eb..76873c9d 100644 --- a/external/poky/meta/recipes-core/busybox/files/run-ptest +++ b/external/poky/meta/recipes-core/busybox/files/run-ptest @@ -1,7 +1,9 @@ #!/bin/sh -current_dir=$(readlink -f $0) -export bindir=$(dirname $current_dir) +current_path=$(readlink -f $0) +export bindir=$(dirname $current_path) +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/external/poky/meta/recipes-core/busybox/files/simple.script b/external/poky/meta/recipes-core/busybox/files/simple.script index 6ed02935..01344057 100644 --- a/external/poky/meta/recipes-core/busybox/files/simple.script +++ b/external/poky/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/external/poky/meta/recipes-core/busybox/files/syslog b/external/poky/meta/recipes-core/busybox/files/syslog index 89c4d12e..2208613e 100644 --- a/external/poky/meta/recipes-core/busybox/files/syslog +++ b/external/poky/meta/recipes-core/busybox/files/syslog @@ -51,6 +51,22 @@ else SYSLOG_ARGS="-C" fi +waitpid () +{ + pid=$1 + # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals + if [ -z "$pid" ]; then + return + fi + timeout=5; + while [ $timeout -gt 0 ] + do + timeout=$(( $timeout-1 )) + kill -0 $pid 2> /dev/null || break + sleep 1 + done +} + case "$1" in start) echo -n "Starting syslogd/klogd: " @@ -65,7 +81,11 @@ case "$1" in echo "done" ;; restart) - $0 stop + pid1=`pidof syslogd` + pid2=`pidof klogd` + $0 stop + waitpid $pid1 + waitpid $pid2 $0 start ;; *) diff --git a/external/poky/meta/recipes-core/busybox/files/umount.busybox b/external/poky/meta/recipes-core/busybox/files/umount.busybox deleted file mode 100755 index f3731626..00000000 --- a/external/poky/meta/recipes-core/busybox/files/umount.busybox +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec /bin/busybox umount $@ diff --git a/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Cover-the-else-with-__GLIBC__.patch deleted file mode 100644 index ace4bf0a..00000000 --- a/external/poky/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 -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 ---- -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 - #if (__GNU_LIBRARY__ >= 6) - # include --#else -+#elif defined __GLIBC__ - # include - # include - #endif --- -2.7.0 - diff --git a/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-Fix-format-security-compilation-error.patch deleted file mode 100644 index 6e72ec66..00000000 --- a/external/poky/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 ---- - 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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/0001-kbdtools-Include-sys-types.h-for-u_char-and-u_short-.patch b/external/poky/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 64b5b044..00000000 --- a/external/poky/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 -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 ---- -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 - #include - #include -+#include - #include - #include - #include -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 - #include - #include -+#include - #include - #include - #include --- -2.6.4 - diff --git a/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/Makevars deleted file mode 100644 index 32692ab4..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/codepage.patch deleted file mode 100644 index c2870147..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/compile.patch deleted file mode 100644 index c93f5119..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/configure.patch deleted file mode 100644 index 15c100c9..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/fix-libconsole-linking.patch deleted file mode 100644 index be61eb84..00000000 --- a/external/poky/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 - -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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch deleted file mode 100644 index f370be85..00000000 --- a/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/kbdrate.patch +++ /dev/null @@ -1,75 +0,0 @@ -Patch from Matthias Goebl -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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4 b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/lcmessage.m4 deleted file mode 100644 index 18d47a94..00000000 --- a/external/poky/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 . -# Ulrich Drepper , 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 ], [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 file defines LC_MESSAGES.]) - fi - fi]) diff --git a/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/no-dep-on-libfl.patch deleted file mode 100644 index a6735a53..00000000 --- a/external/poky/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 - -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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/nodocs.patch deleted file mode 100644 index 2ed60921..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch b/external/poky/meta/recipes-core/console-tools/console-tools-0.3.2/uclibc-fileno.patch deleted file mode 100644 index 0c95068a..00000000 --- a/external/poky/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 - - --#ifdef HAVE_LOCALE_H -+#if defined(HAVE_LOCALE_H) && defined(HAVE_LIBINTL_H) - # include - # define _(String) gettext (String) - # ifdef gettext_noop diff --git a/external/poky/meta/recipes-core/console-tools/console-tools_0.3.2.bb b/external/poky/meta/recipes-core/console-tools/console-tools_0.3.2.bb deleted file mode 100644 index ba44fbe6..00000000 --- a/external/poky/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(\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/external/poky/meta/recipes-core/coreutils/coreutils/run-ptest b/external/poky/meta/recipes-core/coreutils/coreutils/run-ptest new file mode 100755 index 00000000..6d4a7b36 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch b/external/poky/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch new file mode 100644 index 00000000..77770093 --- /dev/null +++ b/external/poky/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch @@ -0,0 +1,56 @@ +From 0562b040fa17f1722ba2b3096067b45d0582ca53 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +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 + +--- + 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/external/poky/meta/recipes-core/coreutils/coreutils_8.30.bb b/external/poky/meta/recipes-core/coreutils/coreutils_8.30.bb deleted file mode 100644 index 8f4ee557..00000000 --- a/external/poky/meta/recipes-core/coreutils/coreutils_8.30.bb +++ /dev/null @@ -1,139 +0,0 @@ -SUMMARY = "The basic file, shell and text manipulation utilities" -DESCRIPTION = "The GNU Core Utilities provide the basic file, shell and text \ -manipulation utilities. These are the core utilities which are expected to exist on \ -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=dbe356a88b09c29232b083d1ff8ac82a" -DEPENDS = "gmp libcap" -DEPENDS_class-native = "" - -inherit autotools gettext texinfo - -SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ - file://remove-usr-local-lib-from-m4.patch \ - file://fix-selinux-flask.patch \ - file://0001-uname-report-processor-and-hardware-correctly.patch \ - file://disable-ls-output-quoting.patch \ - file://0001-local.mk-fix-cross-compiling-problem.patch \ - " - -SRC_URI[md5sum] = "ab06d68949758971fe744db66b572816" -SRC_URI[sha256sum] = "e831b3a86091496cdba720411f9748de81507798f6130adeaef872d206e1b057" - -EXTRA_OECONF_class-native = "--without-gmp" -EXTRA_OECONF_class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}" -EXTRA_OECONF_class-nativesdk = "--enable-install-program=arch,hostname" - -# acl and xattr are not default features -# -PACKAGECONFIG_class-target ??= "\ - ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \ -" - -# The lib/oe/path.py requires xattr -PACKAGECONFIG_class-native ??= "xattr" - -# with, without, depends, rdepends -# -PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," -PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," -PACKAGECONFIG[single-binary] = "--enable-single-binary,--disable-single-binary,," - -# [ df mktemp nice printenv base64 gets a special treatment and is not included in this -bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname du \ - 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 \ - 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 -base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \ - mknod mv pwd rm rmdir sleep stty sync touch true uname stat" - -sbindir_progs= "chroot" - -# 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 -# directory. -acpaths = "-I ./m4" - -# Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h -do_compile_prepend () { - mkdir -p ${B}/src -} - -do_install_class-native() { - autotools_do_install - # remove groups to fix conflict with shadow-native - rm -f ${D}${STAGING_BINDIR_NATIVE}/groups - # The return is a must since native doesn't need the - # do_install_append() in the below. - return -} - -do_install_append() { - for i in df mktemp nice printenv base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done - - install -d ${D}${base_bindir} - [ "${base_bindir}" != "${bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i.${BPN}; done - - install -d ${D}${sbindir} - [ "${sbindir}" != "${bindir}" ] && for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i.${BPN}; done - - # [ requires special handling because [.coreutils will cause the sed stuff - # in update-alternatives to fail, therefore use lbracket - the name used - # for the actual source file. - mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN} -} - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" -# Make hostname's priority higher than busybox but lower than net-tools -ALTERNATIVE_PRIORITY[hostname] = "90" -ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base64 nice printenv mktemp df" -ALTERNATIVE_${PN}-doc = "base64.1 nice.1 mktemp.1 df.1 groups.1 kill.1 uptime.1 stat.1 hostname.1" - -ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" - -ALTERNATIVE_LINK_NAME[base64] = "${base_bindir}/base64" -ALTERNATIVE_TARGET[base64] = "${bindir}/base64.${BPN}" -ALTERNATIVE_LINK_NAME[base64.1] = "${mandir}/man1/base64.1" - -ALTERNATIVE_LINK_NAME[mktemp] = "${base_bindir}/mktemp" -ALTERNATIVE_TARGET[mktemp] = "${bindir}/mktemp.${BPN}" -ALTERNATIVE_LINK_NAME[mktemp.1] = "${mandir}/man1/mktemp.1" - -ALTERNATIVE_LINK_NAME[df] = "${base_bindir}/df" -ALTERNATIVE_TARGET[df] = "${bindir}/df.${BPN}" -ALTERNATIVE_LINK_NAME[df.1] = "${mandir}/man1/df.1" - -ALTERNATIVE_LINK_NAME[nice] = "${base_bindir}/nice" -ALTERNATIVE_TARGET[nice] = "${bindir}/nice.${BPN}" -ALTERNATIVE_LINK_NAME[nice.1] = "${mandir}/man1/nice.1" - -ALTERNATIVE_LINK_NAME[printenv] = "${base_bindir}/printenv" -ALTERNATIVE_TARGET[printenv] = "${bindir}/printenv.${BPN}" - -ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/[" -ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}" - -ALTERNATIVE_LINK_NAME[groups.1] = "${mandir}/man1/groups.1" -ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1" -ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1" -ALTERNATIVE_LINK_NAME[stat.1] = "${mandir}/man1/stat.1" - -python __anonymous() { - for prog in d.getVar('base_bindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) - - for prog in d.getVar('sbindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog)) -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/coreutils/coreutils_8.31.bb b/external/poky/meta/recipes-core/coreutils/coreutils_8.31.bb new file mode 100644 index 00000000..0c8452da --- /dev/null +++ b/external/poky/meta/recipes-core/coreutils/coreutils_8.31.bb @@ -0,0 +1,201 @@ +SUMMARY = "The basic file, shell and text manipulation utilities" +DESCRIPTION = "The GNU Core Utilities provide the basic file, shell and text \ +manipulation utilities. These are the core utilities which are expected to exist on \ +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" +DEPENDS = "gmp libcap" +DEPENDS_class-native = "" + +inherit autotools gettext texinfo + +SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz \ + file://remove-usr-local-lib-from-m4.patch \ + file://fix-selinux-flask.patch \ + 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 \ + " + +SRC_URI_append_libc-musl = "file://strtod_fix_clash_with_strtold.patch" + +SRC_URI[md5sum] = "0009a224d8e288e8ec406ef0161f9293" +SRC_URI[sha256sum] = "ff7a9c918edce6b4f4b2725e3f9b37b0c4d193531cac49a48b56c4d0d3a9e9fd" + +EXTRA_OECONF_class-native = "--without-gmp" +EXTRA_OECONF_class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}" +EXTRA_OECONF_class-nativesdk = "--enable-install-program=arch,hostname" + +# acl and xattr are not default features +# +PACKAGECONFIG_class-target ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \ +" + +# The lib/oe/path.py requires xattr +PACKAGECONFIG_class-native ??= "xattr" + +# with, without, depends, rdepends +# +PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," +PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr," +PACKAGECONFIG[single-binary] = "--enable-single-binary,--disable-single-binary,," + +# [ df mktemp nice printenv base64 gets a special treatment and is not included in this +bindir_progs = "arch basename chcon cksum comm csplit cut dir dircolors dirname du \ + 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 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 +base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \ + mknod mv pwd rm rmdir sleep stty sync touch true uname stat" + +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 +# directory. +acpaths = "-I ./m4" + +# Deal with a separate builddir failure if src doesn't exist when creating version.c/version.h +do_compile_prepend () { + mkdir -p ${B}/src +} + +do_install_class-native() { + autotools_do_install + # remove groups to fix conflict with shadow-native + rm -f ${D}${STAGING_BINDIR_NATIVE}/groups + # The return is a must since native doesn't need the + # do_install_append() in the below. + return +} + +do_install_append() { + for i in df mktemp nice printenv base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done + + install -d ${D}${base_bindir} + [ "${base_bindir}" != "${bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i.${BPN}; done + + install -d ${D}${sbindir} + [ "${sbindir}" != "${bindir}" ] && for i in ${sbindir_progs}; do mv ${D}${bindir}/$i ${D}${sbindir}/$i.${BPN}; done + + # [ requires special handling because [.coreutils will cause the sed stuff + # in update-alternatives to fail, therefore use lbracket - the name used + # for the actual source file. + mv ${D}${bindir}/[ ${D}${bindir}/lbracket.${BPN} +} + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" +# Make hostname's priority higher than busybox but lower than net-tools +ALTERNATIVE_PRIORITY[hostname] = "90" +ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base64 nice printenv mktemp df" +ALTERNATIVE_${PN}-doc = "base64.1 nice.1 mktemp.1 df.1 groups.1 kill.1 uptime.1 stat.1 hostname.1" + +ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" + +ALTERNATIVE_LINK_NAME[base64] = "${base_bindir}/base64" +ALTERNATIVE_TARGET[base64] = "${bindir}/base64.${BPN}" +ALTERNATIVE_LINK_NAME[base64.1] = "${mandir}/man1/base64.1" + +ALTERNATIVE_LINK_NAME[mktemp] = "${base_bindir}/mktemp" +ALTERNATIVE_TARGET[mktemp] = "${bindir}/mktemp.${BPN}" +ALTERNATIVE_LINK_NAME[mktemp.1] = "${mandir}/man1/mktemp.1" + +ALTERNATIVE_LINK_NAME[df] = "${base_bindir}/df" +ALTERNATIVE_TARGET[df] = "${bindir}/df.${BPN}" +ALTERNATIVE_LINK_NAME[df.1] = "${mandir}/man1/df.1" + +ALTERNATIVE_LINK_NAME[nice] = "${base_bindir}/nice" +ALTERNATIVE_TARGET[nice] = "${bindir}/nice.${BPN}" +ALTERNATIVE_LINK_NAME[nice.1] = "${mandir}/man1/nice.1" + +ALTERNATIVE_LINK_NAME[printenv] = "${base_bindir}/printenv" +ALTERNATIVE_TARGET[printenv] = "${bindir}/printenv.${BPN}" + +ALTERNATIVE_LINK_NAME[lbracket] = "${bindir}/[" +ALTERNATIVE_TARGET[lbracket] = "${bindir}/lbracket.${BPN}" + +ALTERNATIVE_LINK_NAME[groups.1] = "${mandir}/man1/groups.1" +ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1" +ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1" +ALTERNATIVE_LINK_NAME[stat.1] = "${mandir}/man1/stat.1" + +python __anonymous() { + for prog in d.getVar('base_bindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) + + for prog in d.getVar('sbindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog)) +} + +BBCLASSEXTEND = "native nativesdk" + +inherit ptest + +RDEPENDS_${PN}-ptest += "bash findutils gawk liberror-perl libmodule-build-perl make perl perl-module-file-stat 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/external/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb b/external/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb index b7383bd2..0b45805c 100644 --- a/external/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb +++ b/external/poky/meta/recipes-core/dbus/dbus-glib_0.110.bb @@ -1,8 +1,8 @@ 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" -LICENSE = "AFL-2 | GPLv2+" +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" SECTION = "base" @@ -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/external/poky/meta/recipes-core/dbus/dbus-test_1.12.10.bb b/external/poky/meta/recipes-core/dbus/dbus-test_1.12.10.bb deleted file mode 100644 index 25b93951..00000000 --- a/external/poky/meta/recipes-core/dbus/dbus-test_1.12.10.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "D-Bus test package (for D-bus functionality testing only)" -HOMEPAGE = "http://dbus.freedesktop.org" -SECTION = "base" -LICENSE = "AFL-2 | GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \ - file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c" - -DEPENDS = "dbus glib-2.0" - -RDEPENDS_${PN} += "make" -RDEPENDS_${PN}-dev = "" - -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 \ - " - -SRC_URI[md5sum] = "c3e12b4206e2a7da39d7cc42567790ef" -SRC_URI[sha256sum] = "4b693d24976258c3f2fa9cc33ad9288c5fbfa7a16481dbd9a8a429f7aa8cdcf7" - -S="${WORKDIR}/dbus-${PV}" -FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:" - -inherit autotools pkgconfig gettext ptest upstream-version-is-even - -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 \ - --enable-modular-tests \ - --enable-installed-tests \ - --enable-checks \ - --enable-asserts \ - --enable-verbose-mode \ - --enable-largefile \ - --disable-xml-docs \ - --disable-doxygen-docs \ - --disable-libaudit \ - --with-dbus-test-dir=${PTEST_PATH} \ - ${EXTRA_OECONF_X}" - -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" - -do_install() { - : -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/test - l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay \ - variant uid-permissions syntax spawn sd-activation names monitor message fdpass " - for i in $l; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done - - l="bus bus-system bus-launch-helper" - for i in $l; do install ${B}/bus/.libs/test-$i ${D}${PTEST_PATH}/test; done - - cp -r ${B}/test/data ${D}${PTEST_PATH}/test - install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test - - install -d ${D}${PTEST_PATH}/test/.libs - cp -a ${B}/dbus/.libs/*.so* ${D}${PTEST_PATH}/test/.libs - - # Remove build host references... - find "${D}${PTEST_PATH}/test/data" \( -name *.service -o -name *.conf -o -name "*.aaprofile" \) -type f -exec \ - sed -i \ - -e 's:${B}:${PTEST_PATH}:g' \ - {} + - sed -i -e 's;@PTEST_PATH@;${PTEST_PATH};g' ${D}${PTEST_PATH}/run-ptest -} - -RDEPENDS_${PN}-ptest += "bash" - -PRIVATE_LIBS_${PN}-ptest = "libdbus-1.so.3" diff --git a/external/poky/meta/recipes-core/dbus/dbus-test_1.12.16.bb b/external/poky/meta/recipes-core/dbus/dbus-test_1.12.16.bb new file mode 100644 index 00000000..bea0e74e --- /dev/null +++ b/external/poky/meta/recipes-core/dbus/dbus-test_1.12.16.bb @@ -0,0 +1,90 @@ +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" + +RDEPENDS_${PN}-dev = "" + +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 \ + " + +SRC_URI[md5sum] = "2dbeae80dfc9e3632320c6a53d5e8890" +SRC_URI[sha256sum] = "54a22d2fa42f2eb2a871f32811c6005b531b9613b1b93a0d269b05e7549fec80" + +S="${WORKDIR}/dbus-${PV}" +FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:" + +inherit autotools pkgconfig gettext ptest upstream-version-is-even + +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 \ + --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() { + : +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay \ + variant uid-permissions syntax spawn sd-activation names monitor message fdpass service shell-service" + for i in $l; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done + + l="bus bus-system bus-launch-helper" + for i in $l; do install ${B}/bus/.libs/test-$i ${D}${PTEST_PATH}/test; done + + install -d ${D}${PTEST_PATH}/bus + install ${B}/bus/.libs/dbus-daemon-launch-helper-test ${D}${PTEST_PATH}/bus + + install ${B}/test/test-segfault ${D}${PTEST_PATH}/test + + cp -r ${B}/test/data ${D}${PTEST_PATH}/test + install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test + + install -d ${D}${PTEST_PATH}/test/.libs + cp -a ${B}/dbus/.libs/*.so* ${D}${PTEST_PATH}/test/.libs + + # Remove build host references... + find "${D}${PTEST_PATH}/test/data" \( -name *.service -o -name *.conf -o -name "*.aaprofile" \) -type f -exec \ + sed -i \ + -e 's:${B}:${PTEST_PATH}:g' \ + {} + + sed -i -e 's;@PTEST_PATH@;${PTEST_PATH};g' ${D}${PTEST_PATH}/run-ptest +} + +RDEPENDS_${PN}-ptest += "bash make dbus" +RDEPENDS_${PN}-ptest_remove = "${PN}" + +PRIVATE_LIBS_${PN}-ptest = "libdbus-1.so.3" diff --git a/external/poky/meta/recipes-core/dbus/dbus/CVE-2019-12749.patch b/external/poky/meta/recipes-core/dbus/dbus/CVE-2019-12749.patch deleted file mode 100644 index 393c70ca..00000000 --- a/external/poky/meta/recipes-core/dbus/dbus/CVE-2019-12749.patch +++ /dev/null @@ -1,127 +0,0 @@ -From f0120c5d97a4cc1b659e86d38f2b1f646ca20ea3 Mon Sep 17 00:00:00 2001 -From: Simon McVittie -Date: Thu, 30 May 2019 12:53:03 +0100 -Subject: [PATCH] auth: Reject DBUS_COOKIE_SHA1 for users other than the server - owner - -The DBUS_COOKIE_SHA1 authentication mechanism aims to prove ownership -of a shared home directory by having the server write a secret "cookie" -into a .dbus-keyrings subdirectory of the desired identity's home -directory with 0700 permissions, and having the client prove that it can -read the cookie. This never actually worked for non-malicious clients in -the case where server uid != client uid (unless the server and client -both have privileges, such as Linux CAP_DAC_OVERRIDE or traditional -Unix uid 0) because an unprivileged server would fail to write out the -cookie, and an unprivileged client would be unable to read the resulting -file owned by the server. - -Additionally, since dbus 1.7.10 we have checked that ~/.dbus-keyrings -is owned by the uid of the server (a side-effect of a check added to -harden our use of XDG_RUNTIME_DIR), further ruling out successful use -by a non-malicious client with a uid differing from the server's. - -Joe Vennix of Apple Information Security discovered that the -implementation of DBUS_COOKIE_SHA1 was susceptible to a symbolic link -attack: a malicious client with write access to its own home directory -could manipulate a ~/.dbus-keyrings symlink to cause the DBusServer to -read and write in unintended locations. In the worst case this could -result in the DBusServer reusing a cookie that is known to the -malicious client, and treating that cookie as evidence that a subsequent -client connection came from an attacker-chosen uid, allowing -authentication bypass. - -This is mitigated by the fact that by default, the well-known system -dbus-daemon (since 2003) and the well-known session dbus-daemon (in -stable releases since dbus 1.10.0 in 2015) only accept the EXTERNAL -authentication mechanism, and as a result will reject DBUS_COOKIE_SHA1 -at an early stage, before manipulating cookies. As a result, this -vulnerability only applies to: - -* system or session dbus-daemons with non-standard configuration -* third-party dbus-daemon invocations such as at-spi2-core (although - in practice at-spi2-core also only accepts EXTERNAL by default) -* third-party uses of DBusServer such as the one in Upstart - -Avoiding symlink attacks in a portable way is difficult, because APIs -like openat() and Linux /proc/self/fd are not universally available. -However, because DBUS_COOKIE_SHA1 already doesn't work in practice for -a non-matching uid, we can solve this vulnerability in an easier way -without regressions, by rejecting it early (before looking at -~/.dbus-keyrings) whenever the requested identity doesn't match the -identity of the process hosting the DBusServer. - -Signed-off-by: Simon McVittie -Closes: https://gitlab.freedesktop.org/dbus/dbus/issues/269 -Closes: CVE-2019-12749 - -Upstream-Status: Backport -[https://gitlab.freedesktop.org/dbus/dbus/commit -/47b1a4c41004bf494b87370987b222c934b19016] - -CVE: CVE-2019-12749 - -Signed-off-by: Kevin Weng ---- - dbus/dbus-auth.c | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/dbus/dbus-auth.c b/dbus/dbus-auth.c -index 37d8d4c9..7390a9d5 100644 ---- a/dbus/dbus-auth.c -+++ b/dbus/dbus-auth.c -@@ -529,6 +529,7 @@ sha1_handle_first_client_response (DBusAuth *auth, - DBusString tmp2; - dbus_bool_t retval = FALSE; - DBusError error = DBUS_ERROR_INIT; -+ DBusCredentials *myself = NULL; - - _dbus_string_set_length (&auth->challenge, 0); - -@@ -565,6 +566,34 @@ sha1_handle_first_client_response (DBusAuth *auth, - return FALSE; - } - -+ myself = _dbus_credentials_new_from_current_process (); -+ -+ if (myself == NULL) -+ goto out; -+ -+ if (!_dbus_credentials_same_user (myself, auth->desired_identity)) -+ { -+ /* -+ * DBUS_COOKIE_SHA1 is not suitable for authenticating that the -+ * client is anyone other than the user owning the process -+ * containing the DBusServer: we probably aren't allowed to write -+ * to other users' home directories. Even if we can (for example -+ * uid 0 on traditional Unix or CAP_DAC_OVERRIDE on Linux), we -+ * must not, because the other user controls their home directory, -+ * and could carry out symlink attacks to make us read from or -+ * write to unintended locations. It's difficult to avoid symlink -+ * attacks in a portable way, so we just don't try. This isn't a -+ * regression, because DBUS_COOKIE_SHA1 never worked for other -+ * users anyway. -+ */ -+ _dbus_verbose ("%s: client tried to authenticate as \"%s\", " -+ "but that doesn't match this process", -+ DBUS_AUTH_NAME (auth), -+ _dbus_string_get_const_data (data)); -+ retval = send_rejected (auth); -+ goto out; -+ } -+ - /* we cache the keyring for speed, so here we drop it if it's the - * wrong one. FIXME caching the keyring here is useless since we use - * a different DBusAuth for every connection. -@@ -679,6 +708,9 @@ sha1_handle_first_client_response (DBusAuth *auth, - _dbus_string_zero (&tmp2); - _dbus_string_free (&tmp2); - -+ if (myself != NULL) -+ _dbus_credentials_unref (myself); -+ - return retval; - } - --- -2.22.0 - diff --git a/external/poky/meta/recipes-core/dbus/dbus/CVE-2020-12049.patch b/external/poky/meta/recipes-core/dbus/dbus/CVE-2020-12049.patch new file mode 100644 index 00000000..ac7a4b7a --- /dev/null +++ b/external/poky/meta/recipes-core/dbus/dbus/CVE-2020-12049.patch @@ -0,0 +1,78 @@ +From 872b085f12f56da25a2dbd9bd0b2dff31d5aea63 Mon Sep 17 00:00:00 2001 +From: Simon McVittie +Date: Thu, 16 Apr 2020 14:45:11 +0100 +Subject: [PATCH] sysdeps-unix: On MSG_CTRUNC, close the fds we did receive + +MSG_CTRUNC indicates that we have received fewer fds that we should +have done because the buffer was too small, but we were treating it +as though it indicated that we received *no* fds. If we received any, +we still have to make sure we close them, otherwise they will be leaked. + +On the system bus, if an attacker can induce us to leak fds in this +way, that's a local denial of service via resource exhaustion. + +Reported-by: Kevin Backhouse, GitHub Security Lab +Fixes: dbus#294 +Fixes: CVE-2020-12049 +Fixes: GHSL-2020-057 + +Upstream-Status: Backport [https://gitlab.freedesktop.org/dbus/dbus/-/commit/872b085f12f56da25a2dbd9bd0b2dff31d5aea63] +CVE: CVE-2020-12049 +Signed-off-by: Lee Chee Yang +--- + dbus/dbus-sysdeps-unix.c | 32 ++++++++++++++++++++------------ + 1 file changed, 20 insertions(+), 12 deletions(-) + +diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c +index b5fc2466..b176dae1 100644 +--- a/dbus/dbus-sysdeps-unix.c ++++ b/dbus/dbus-sysdeps-unix.c +@@ -435,18 +435,6 @@ _dbus_read_socket_with_unix_fds (DBusSocket fd, + struct cmsghdr *cm; + dbus_bool_t found = FALSE; + +- if (m.msg_flags & MSG_CTRUNC) +- { +- /* Hmm, apparently the control data was truncated. The bad +- thing is that we might have completely lost a couple of fds +- without chance to recover them. Hence let's treat this as a +- serious error. */ +- +- errno = ENOSPC; +- _dbus_string_set_length (buffer, start); +- return -1; +- } +- + for (cm = CMSG_FIRSTHDR(&m); cm; cm = CMSG_NXTHDR(&m, cm)) + if (cm->cmsg_level == SOL_SOCKET && cm->cmsg_type == SCM_RIGHTS) + { +@@ -501,6 +489,26 @@ _dbus_read_socket_with_unix_fds (DBusSocket fd, + if (!found) + *n_fds = 0; + ++ if (m.msg_flags & MSG_CTRUNC) ++ { ++ unsigned int i; ++ ++ /* Hmm, apparently the control data was truncated. The bad ++ thing is that we might have completely lost a couple of fds ++ without chance to recover them. Hence let's treat this as a ++ serious error. */ ++ ++ /* We still need to close whatever fds we *did* receive, ++ * otherwise they'll never get closed. (CVE-2020-12049) */ ++ for (i = 0; i < *n_fds; i++) ++ close (fds[i]); ++ ++ *n_fds = 0; ++ errno = ENOSPC; ++ _dbus_string_set_length (buffer, start); ++ return -1; ++ } ++ + /* put length back (doesn't actually realloc) */ + _dbus_string_set_length (buffer, start + bytes_read); + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-core/dbus/dbus/dbus-1.init b/external/poky/meta/recipes-core/dbus/dbus/dbus-1.init index 42c86297..90e167e5 100644 --- a/external/poky/meta/recipes-core/dbus/dbus/dbus-1.init +++ b/external/poky/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/external/poky/meta/recipes-core/dbus/dbus/run-ptest b/external/poky/meta/recipes-core/dbus/dbus/run-ptest index 353ba1e9..d3eec082 100755 --- a/external/poky/meta/recipes-core/dbus/dbus/run-ptest +++ b/external/poky/meta/recipes-core/dbus/dbus/run-ptest @@ -17,8 +17,19 @@ export LD_LIBRARY_PATH=@PTEST_PATH@/test/.libs files=`ls test/test-*` for i in $files - do - ./$i ./test/data >/dev/null - output - done +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-names" ] + then + continue + fi + + ./$i ./test/data >/dev/null 2>&1 + output +done diff --git a/external/poky/meta/recipes-core/dbus/dbus_1.12.10.bb b/external/poky/meta/recipes-core/dbus/dbus_1.12.10.bb deleted file mode 100644 index d7ad1d8b..00000000 --- a/external/poky/meta/recipes-core/dbus/dbus_1.12.10.bb +++ /dev/null @@ -1,177 +0,0 @@ -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" -SECTION = "base" -LICENSE = "AFL-2 | GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \ - file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c" -DEPENDS = "expat virtual/libintl autoconf-archive" -RDEPENDS_dbus_class-native = "" -RDEPENDS_dbus_class-nativesdk = "" -PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}" -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 \ - file://CVE-2019-12749.patch \ -" - -SRC_URI[md5sum] = "c3e12b4206e2a7da39d7cc42567790ef" -SRC_URI[sha256sum] = "4b693d24976258c3f2fa9cc33ad9288c5fbfa7a16481dbd9a8a429f7aa8cdcf7" - -inherit useradd autotools pkgconfig gettext update-rc.d upstream-version-is-even - -INITSCRIPT_NAME = "dbus-1" -INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ." - -python __anonymous() { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") -} - -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" - -CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf" - -DEBIANNAME_${PN} = "dbus-1" - -PACKAGES =+ "${PN}-lib" - -OLDPKGNAME = "dbus-x11" -OLDPKGNAME_class-nativesdk = "" - -# for compatibility -RPROVIDES_${PN} = "${OLDPKGNAME}" -RREPLACES_${PN} += "${OLDPKGNAME}" - -FILES_${PN} = "${bindir}/dbus-daemon* \ - ${bindir}/dbus-uuidgen \ - ${bindir}/dbus-cleanup-sockets \ - ${bindir}/dbus-send \ - ${bindir}/dbus-monitor \ - ${bindir}/dbus-launch \ - ${bindir}/dbus-run-session \ - ${bindir}/dbus-update-activation-environment \ - ${libexecdir}/dbus* \ - ${sysconfdir} \ - ${localstatedir} \ - ${datadir}/dbus-1/services \ - ${datadir}/dbus-1/system-services \ - ${datadir}/dbus-1/session.d \ - ${datadir}/dbus-1/session.conf \ - ${datadir}/dbus-1/system.d \ - ${datadir}/dbus-1/system.conf \ - ${datadir}/xml/dbus-1 \ - ${systemd_system_unitdir} \ - ${systemd_user_unitdir} \ - ${nonarch_libdir}/sysusers.d/dbus.conf \ - ${nonarch_libdir}/tmpfiles.d/dbus.conf \ -" -FILES_${PN}-lib = "${libdir}/lib*.so.*" -RRECOMMENDS_${PN}-lib = "${PN}" -FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${libdir}/cmake/DBus1 ${bindir}/dbus-test-tool" - -PACKAGE_WRITE_DEPS += "${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','systemd-systemctl-native','',d)}" -pkg_postinst_dbus() { - # If both systemd and sysvinit are enabled, mask the dbus-1 init script - if ${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','true','false',d)}; then - if [ -n "$D" ]; then - OPTS="--root=$D" - fi - systemctl $OPTS mask dbus-1.service - fi - - if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then - /etc/init.d/populate-volatile.sh update - 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" - -do_install() { - autotools_do_install - - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/init.d - sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh - install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1 - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - for i in dbus.target.wants sockets.target.wants multi-user.target.wants; do \ - install -d ${D}${systemd_system_unitdir}/$i; done - install -m 0644 ${B}/bus/dbus.service ${B}/bus/dbus.socket ${D}${systemd_system_unitdir}/ - ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/dbus.target.wants/dbus.socket - ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/sockets.target.wants/dbus.socket - ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service - fi - - install -d ${D}${sysconfdir}/default/volatiles - echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" \ - > ${D}${sysconfdir}/default/volatiles/99_dbus - - - mkdir -p ${D}${localstatedir}/lib/dbus - - chown messagebus:messagebus ${D}${localstatedir}/lib/dbus - - chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper - chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper - - # Remove Red Hat initscript - rm -rf ${D}${sysconfdir}/rc.d - - # Remove empty testexec directory as we don't build tests - rm -rf ${D}${libdir}/dbus-1.0/test - - # Remove /var/run as it is created on startup - rm -rf ${D}${localstatedir}/run -} - -do_install_class-native() { - autotools_do_install - - # dbus-launch has no X support so lets not install it in case the host - # has a more featured and useful version - rm -f ${D}${bindir}/dbus-launch -} - -do_install_class-nativesdk() { - autotools_do_install - - # dbus-launch has no X support so lets not install it in case the host - # has a more featured and useful version - rm -f ${D}${bindir}/dbus-launch - - # Remove /var/run to avoid QA error - rm -rf ${D}${localstatedir}/run -} -BBCLASSEXTEND = "native nativesdk" - -INSANE_SKIP_${PN}-ptest += "build-deps" diff --git a/external/poky/meta/recipes-core/dbus/dbus_1.12.16.bb b/external/poky/meta/recipes-core/dbus/dbus_1.12.16.bb new file mode 100644 index 00000000..10d1b344 --- /dev/null +++ b/external/poky/meta/recipes-core/dbus/dbus_1.12.16.bb @@ -0,0 +1,177 @@ +SUMMARY = "D-Bus message bus" +DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \"single instance\" application or daemon, and to launch applications and daemons on demand when their services are needed." +HOMEPAGE = "https://dbus.freedesktop.org" +SECTION = "base" +LICENSE = "AFL-2.1 | GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \ + file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c" +DEPENDS = "expat virtual/libintl autoconf-archive" +RDEPENDS_dbus_class-native = "" +RDEPENDS_dbus_class-nativesdk = "" +PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}" +ALLOW_EMPTY_dbus-ptest = "1" +RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest" + +SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ + file://tmpdir.patch \ + file://dbus-1.init \ + file://clear-guid_from_server-if-send_negotiate_unix_f.patch \ + file://CVE-2020-12049.patch \ +" + +SRC_URI[md5sum] = "2dbeae80dfc9e3632320c6a53d5e8890" +SRC_URI[sha256sum] = "54a22d2fa42f2eb2a871f32811c6005b531b9613b1b93a0d269b05e7549fec80" + +inherit useradd autotools pkgconfig gettext update-rc.d upstream-version-is-even + +INITSCRIPT_NAME = "dbus-1" +INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ." + +python __anonymous() { + if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): + d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") +} + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \ + --no-create-home --shell /bin/false \ + --user-group messagebus" + +CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf" + +DEBIANNAME_${PN} = "dbus-1" + +PACKAGES =+ "${PN}-lib" + +OLDPKGNAME = "dbus-x11" +OLDPKGNAME_class-nativesdk = "" + +# for compatibility +RPROVIDES_${PN} = "${OLDPKGNAME}" +RREPLACES_${PN} += "${OLDPKGNAME}" + +FILES_${PN} = "${bindir}/dbus-daemon* \ + ${bindir}/dbus-uuidgen \ + ${bindir}/dbus-cleanup-sockets \ + ${bindir}/dbus-send \ + ${bindir}/dbus-monitor \ + ${bindir}/dbus-launch \ + ${bindir}/dbus-run-session \ + ${bindir}/dbus-update-activation-environment \ + ${libexecdir}/dbus* \ + ${sysconfdir} \ + ${localstatedir} \ + ${datadir}/dbus-1/services \ + ${datadir}/dbus-1/system-services \ + ${datadir}/dbus-1/session.d \ + ${datadir}/dbus-1/session.conf \ + ${datadir}/dbus-1/system.d \ + ${datadir}/dbus-1/system.conf \ + ${datadir}/xml/dbus-1 \ + ${systemd_system_unitdir} \ + ${systemd_user_unitdir} \ + ${nonarch_libdir}/sysusers.d/dbus.conf \ + ${nonarch_libdir}/tmpfiles.d/dbus.conf \ +" +FILES_${PN}-lib = "${libdir}/lib*.so.*" +RRECOMMENDS_${PN}-lib = "${PN}" +FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${libdir}/cmake/DBus1 ${bindir}/dbus-test-tool" + +PACKAGE_WRITE_DEPS += "${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','systemd-systemctl-native','',d)}" +pkg_postinst_dbus() { + # If both systemd and sysvinit are enabled, mask the dbus-1 init script + if ${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','true','false',d)}; then + if [ -n "$D" ]; then + OPTS="--root=$D" + fi + systemctl $OPTS mask dbus-1.service + fi + + if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then + /etc/init.d/populate-volatile.sh update + fi +} + + +EXTRA_OECONF = "--disable-tests \ + --disable-xml-docs \ + --disable-doxygen-docs \ + --disable-libaudit \ + --enable-largefile \ + --with-system-socket=/run/dbus/system_bus_socket \ + " + +EXTRA_OECONF_append_class-target = " SYSTEMCTL=${base_bindir}/systemctl" +EXTRA_OECONF_append_class-native = " --disable-selinux" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ + user-session \ + " + +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_class-nativesdk = "" + +PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd" +PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm" +PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session" + +do_install() { + autotools_do_install + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/init.d + sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh + install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1 + install -d ${D}${sysconfdir}/default/volatiles + echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" \ + > ${D}${sysconfdir}/default/volatiles/99_dbus + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + for i in dbus.target.wants sockets.target.wants multi-user.target.wants; do \ + install -d ${D}${systemd_system_unitdir}/$i; done + install -m 0644 ${B}/bus/dbus.service ${B}/bus/dbus.socket ${D}${systemd_system_unitdir}/ + ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/dbus.target.wants/dbus.socket + ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/sockets.target.wants/dbus.socket + ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service + fi + + + mkdir -p ${D}${localstatedir}/lib/dbus + + chown messagebus:messagebus ${D}${localstatedir}/lib/dbus + + chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper + chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper + + # Remove Red Hat initscript + rm -rf ${D}${sysconfdir}/rc.d + + # Remove empty testexec directory as we don't build tests + rm -rf ${D}${libdir}/dbus-1.0/test + + # Remove /var/run as it is created on startup + rm -rf ${D}${localstatedir}/run +} + +do_install_class-native() { + autotools_do_install + + # dbus-launch has no X support so lets not install it in case the host + # has a more featured and useful version + rm -f ${D}${bindir}/dbus-launch +} + +do_install_class-nativesdk() { + autotools_do_install + + # dbus-launch has no X support so lets not install it in case the host + # has a more featured and useful version + rm -f ${D}${bindir}/dbus-launch + + # Remove /var/run to avoid QA error + rm -rf ${D}${localstatedir}/run +} +BBCLASSEXTEND = "native nativesdk" + +INSANE_SKIP_${PN}-ptest += "build-deps" diff --git a/external/poky/meta/recipes-core/dropbear/dropbear.inc b/external/poky/meta/recipes-core/dropbear/dropbear.inc index d92a2f39..7269888a 100644 --- a/external/poky/meta/recipes-core/dropbear/dropbear.inc +++ b/external/poky/meta/recipes-core/dropbear/dropbear.inc @@ -9,18 +9,19 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=a5ec40cafba26fc4396d0b550f824e01" DEPENDS = "zlib virtual/crypt" RPROVIDES_${PN} = "ssh sshd" +RCONFLICTS_${PN} = "openssh-sshd openssh" DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \ - file://CVE-2018-15599.patch \ file://0001-urandom-xauth-changes-to-options.h.patch \ file://init \ file://dropbearkey.service \ file://dropbear@.service \ file://dropbear.socket \ file://dropbear.default \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} " + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} " PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \ file://0006-dropbear-configuration-file.patch \ @@ -35,6 +36,8 @@ RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_PLUGINS inherit autotools update-rc.d systemd +CVE_PRODUCT = "dropbear_ssh" + INITSCRIPT_NAME = "dropbear" INITSCRIPT_PARAMS = "defaults 10" @@ -44,8 +47,9 @@ SBINCOMMANDS = "dropbear dropbearkey dropbearconvert" BINCOMMANDS = "dbclient ssh scp" EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"' -PACKAGECONFIG ?= "" +PACKAGECONFIG ?= "disable-weak-ciphers" PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt" +PACKAGECONFIG[disable-weak-ciphers] = "" EXTRA_OECONF += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}" @@ -66,8 +70,13 @@ do_install() { install -m 0644 ${WORKDIR}/dropbear.default ${D}${sysconfdir}/default/dropbear install -m 0755 dropbearmulti ${D}${sbindir}/ - ln -s ${sbindir}/dropbearmulti ${D}${bindir}/dbclient + for i in ${BINCOMMANDS} + do + # ssh and scp symlinks are created by update-alternatives + if [ $i = ssh ] || [ $i = scp ]; then continue; fi + ln -s ${sbindir}/dropbearmulti ${D}${bindir}/$i + done for i in ${SBINCOMMANDS} do ln -s ./dropbearmulti ${D}${sbindir}/$i @@ -97,7 +106,7 @@ do_install() { inherit update-alternatives ALTERNATIVE_PRIORITY = "20" -ALTERNATIVE_${PN} = "scp ssh" +ALTERNATIVE_${PN} = "${@bb.utils.filter('BINCOMMANDS', 'scp ssh', d)}" ALTERNATIVE_TARGET = "${sbindir}/dropbearmulti" @@ -109,3 +118,5 @@ pkg_postrm_append_${PN} () { rm ${sysconfdir}/dropbear/dropbear_dss_host_key fi } + +FILES_${PN} += "${bindir}" diff --git a/external/poky/meta/recipes-core/dropbear/dropbear/CVE-2018-15599.patch b/external/poky/meta/recipes-core/dropbear/dropbear/CVE-2018-15599.patch deleted file mode 100644 index 912545c9..00000000 --- a/external/poky/meta/recipes-core/dropbear/dropbear/CVE-2018-15599.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 256e2abb8150f9fea33cd026597dbe70f0379296 Mon Sep 17 00:00:00 2001 -From: Matt Johnston -Date: Thu, 23 Aug 2018 23:43:12 +0800 -Subject: [PATCH] Wait to fail invalid usernames - -Wait to fail invalid usernames - -Upstream-Status: Backport [https://secure.ucc.asn.au/hg/dropbear/rev/5d2d1021ca00] -CVE: CVE-2018-15599 -Signed-off-by: Mingli Yu ---- - auth.h | 6 +++--- - svr-auth.c | 19 +++++-------------- - svr-authpam.c | 26 ++++++++++++++++++++++---- - svr-authpasswd.c | 27 ++++++++++++++------------- - svr-authpubkey.c | 11 ++++++++++- - 5 files changed, 54 insertions(+), 35 deletions(-) - -diff --git a/auth.h b/auth.h -index da498f5..98f5468 100644 ---- a/auth.h -+++ b/auth.h -@@ -37,9 +37,9 @@ void recv_msg_userauth_request(void); - void send_msg_userauth_failure(int partial, int incrfail); - void send_msg_userauth_success(void); - void send_msg_userauth_banner(const buffer *msg); --void svr_auth_password(void); --void svr_auth_pubkey(void); --void svr_auth_pam(void); -+void svr_auth_password(int valid_user); -+void svr_auth_pubkey(int valid_user); -+void svr_auth_pam(int valid_user); - - #if DROPBEAR_SVR_PUBKEY_OPTIONS_BUILT - int svr_pubkey_allows_agentfwd(void); -diff --git a/svr-auth.c b/svr-auth.c -index 64d97aa..1f364ca 100644 ---- a/svr-auth.c -+++ b/svr-auth.c -@@ -149,10 +149,8 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PASSWORD_LEN && - strncmp(methodname, AUTH_METHOD_PASSWORD, - AUTH_METHOD_PASSWORD_LEN) == 0) { -- if (valid_user) { -- svr_auth_password(); -- goto out; -- } -+ svr_auth_password(valid_user); -+ goto out; - } - } - #endif -@@ -164,10 +162,8 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PASSWORD_LEN && - strncmp(methodname, AUTH_METHOD_PASSWORD, - AUTH_METHOD_PASSWORD_LEN) == 0) { -- if (valid_user) { -- svr_auth_pam(); -- goto out; -- } -+ svr_auth_pam(valid_user); -+ goto out; - } - } - #endif -@@ -177,12 +173,7 @@ void recv_msg_userauth_request() { - if (methodlen == AUTH_METHOD_PUBKEY_LEN && - strncmp(methodname, AUTH_METHOD_PUBKEY, - AUTH_METHOD_PUBKEY_LEN) == 0) { -- if (valid_user) { -- svr_auth_pubkey(); -- } else { -- /* pubkey has no failure delay */ -- send_msg_userauth_failure(0, 0); -- } -+ svr_auth_pubkey(valid_user); - goto out; - } - #endif -diff --git a/svr-authpam.c b/svr-authpam.c -index 05e4f3e..d201bc9 100644 ---- a/svr-authpam.c -+++ b/svr-authpam.c -@@ -178,13 +178,14 @@ pamConvFunc(int num_msg, - * Keyboard interactive would be a lot nicer, but since PAM is synchronous, it - * gets very messy trying to send the interactive challenges, and read the - * interactive responses, over the network. */ --void svr_auth_pam() { -+void svr_auth_pam(int valid_user) { - - struct UserDataS userData = {NULL, NULL}; - struct pam_conv pamConv = { - pamConvFunc, - &userData /* submitted to pamvConvFunc as appdata_ptr */ - }; -+ const char* printable_user = NULL; - - pam_handle_t* pamHandlep = NULL; - -@@ -204,12 +205,23 @@ void svr_auth_pam() { - - password = buf_getstring(ses.payload, &passwordlen); - -+ /* We run the PAM conversation regardless of whether the username is valid -+ in case the conversation function has an inherent delay. -+ Use ses.authstate.username rather than ses.authstate.pw_name. -+ After PAM succeeds we then check the valid_user flag too */ -+ - /* used to pass data to the PAM conversation function - don't bother with - * strdup() etc since these are touched only by our own conversation - * function (above) which takes care of it */ -- userData.user = ses.authstate.pw_name; -+ userData.user = ses.authstate.username; - userData.passwd = password; - -+ if (ses.authstate.pw_name) { -+ printable_user = ses.authstate.pw_name; -+ } else { -+ printable_user = ""; -+ } -+ - /* Init pam */ - if ((rc = pam_start("sshd", NULL, &pamConv, &pamHandlep)) != PAM_SUCCESS) { - dropbear_log(LOG_WARNING, "pam_start() failed, rc=%d, %s", -@@ -242,7 +254,7 @@ void svr_auth_pam() { - rc, pam_strerror(pamHandlep, rc)); - dropbear_log(LOG_WARNING, - "Bad PAM password attempt for '%s' from %s", -- ses.authstate.pw_name, -+ printable_user, - svr_ses.addrstring); - send_msg_userauth_failure(0, 1); - goto cleanup; -@@ -253,12 +265,18 @@ void svr_auth_pam() { - rc, pam_strerror(pamHandlep, rc)); - dropbear_log(LOG_WARNING, - "Bad PAM password attempt for '%s' from %s", -- ses.authstate.pw_name, -+ printable_user, - svr_ses.addrstring); - send_msg_userauth_failure(0, 1); - goto cleanup; - } - -+ if (!valid_user) { -+ /* PAM auth succeeded but the username isn't allowed in for another reason -+ (checkusername() failed) */ -+ send_msg_userauth_failure(0, 1); -+ } -+ - /* successful authentication */ - dropbear_log(LOG_NOTICE, "PAM password auth succeeded for '%s' from %s", - ses.authstate.pw_name, -diff --git a/svr-authpasswd.c b/svr-authpasswd.c -index bdee2aa..69c7d8a 100644 ---- a/svr-authpasswd.c -+++ b/svr-authpasswd.c -@@ -48,22 +48,14 @@ static int constant_time_strcmp(const char* a, const char* b) { - - /* Process a password auth request, sending success or failure messages as - * appropriate */ --void svr_auth_password() { -+void svr_auth_password(int valid_user) { - - char * passwdcrypt = NULL; /* the crypt from /etc/passwd or /etc/shadow */ - char * testcrypt = NULL; /* crypt generated from the user's password sent */ -- char * password; -+ char * password = NULL; - unsigned int passwordlen; -- - unsigned int changepw; - -- passwdcrypt = ses.authstate.pw_passwd; -- --#ifdef DEBUG_HACKCRYPT -- /* debugging crypt for non-root testing with shadows */ -- passwdcrypt = DEBUG_HACKCRYPT; --#endif -- - /* check if client wants to change password */ - changepw = buf_getbool(ses.payload); - if (changepw) { -@@ -73,12 +65,21 @@ void svr_auth_password() { - } - - password = buf_getstring(ses.payload, &passwordlen); -- -- /* the first bytes of passwdcrypt are the salt */ -- testcrypt = crypt(password, passwdcrypt); -+ if (valid_user) { -+ /* the first bytes of passwdcrypt are the salt */ -+ passwdcrypt = ses.authstate.pw_passwd; -+ testcrypt = crypt(password, passwdcrypt); -+ } - m_burn(password, passwordlen); - m_free(password); - -+ /* After we have got the payload contents we can exit if the username -+ is invalid. Invalid users have already been logged. */ -+ if (!valid_user) { -+ send_msg_userauth_failure(0, 1); -+ return; -+ } -+ - if (testcrypt == NULL) { - /* crypt() with an invalid salt like "!!" */ - dropbear_log(LOG_WARNING, "User account '%s' is locked", -diff --git a/svr-authpubkey.c b/svr-authpubkey.c -index aa6087c..ff481c8 100644 ---- a/svr-authpubkey.c -+++ b/svr-authpubkey.c -@@ -79,7 +79,7 @@ static int checkfileperm(char * filename); - - /* process a pubkey auth request, sending success or failure message as - * appropriate */ --void svr_auth_pubkey() { -+void svr_auth_pubkey(int valid_user) { - - unsigned char testkey; /* whether we're just checking if a key is usable */ - char* algo = NULL; /* pubkey algo */ -@@ -102,6 +102,15 @@ void svr_auth_pubkey() { - keybloblen = buf_getint(ses.payload); - keyblob = buf_getptr(ses.payload, keybloblen); - -+ if (!valid_user) { -+ /* Return failure once we have read the contents of the packet -+ required to validate a public key. -+ Avoids blind user enumeration though it isn't possible to prevent -+ testing for user existence if the public key is known */ -+ send_msg_userauth_failure(0, 0); -+ goto out; -+ } -+ - /* check if the key is valid */ - if (checkpubkey(algo, algolen, keyblob, keybloblen) == DROPBEAR_FAILURE) { - send_msg_userauth_failure(0, 0); diff --git a/external/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch b/external/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch new file mode 100644 index 00000000..e48a34ba --- /dev/null +++ b/external/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch @@ -0,0 +1,44 @@ +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 + +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 + * Small systems should generally include either curve25519 or ecdh for performance. + * curve25519 is less widely supported but is faster + */ +-#define DROPBEAR_DH_GROUP14_SHA1 1 ++#define DROPBEAR_DH_GROUP14_SHA1 0 + #define DROPBEAR_DH_GROUP14_SHA256 1 + #define DROPBEAR_DH_GROUP16 0 + #define DROPBEAR_CURVE25519 1 + #define DROPBEAR_ECDH 1 +-#define DROPBEAR_DH_GROUP1 1 ++#define DROPBEAR_DH_GROUP1 0 + + /* When group1 is enabled it will only be allowed by Dropbear client + not as a server, due to concerns over its strength. Set to 0 to allow diff --git a/external/poky/meta/recipes-core/dropbear/dropbear_2018.76.bb b/external/poky/meta/recipes-core/dropbear/dropbear_2018.76.bb deleted file mode 100644 index 36a58d5c..00000000 --- a/external/poky/meta/recipes-core/dropbear/dropbear_2018.76.bb +++ /dev/null @@ -1,5 +0,0 @@ -require dropbear.inc - -SRC_URI[md5sum] = "c3912f7fcdcc57c99937e4a79480d2c2" -SRC_URI[sha256sum] = "f2fb9167eca8cf93456a5fc1d4faf709902a3ab70dd44e352f3acbc3ffdaea65" - diff --git a/external/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb b/external/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb new file mode 100644 index 00000000..d2cd8161 --- /dev/null +++ b/external/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb @@ -0,0 +1,4 @@ +require dropbear.inc + +SRC_URI[md5sum] = "a972c85ed678ad0fdcb7844e1294fb54" +SRC_URI[sha256sum] = "525965971272270995364a0eb01f35180d793182e63dd0b0c3eb0292291644a4" diff --git a/external/poky/meta/recipes-core/ell/ell_0.32.bb b/external/poky/meta/recipes-core/ell/ell_0.32.bb new file mode 100644 index 00000000..07dc4d4c --- /dev/null +++ b/external/poky/meta/recipes-core/ell/ell_0.32.bb @@ -0,0 +1,21 @@ +SUMMARY = "Embedded Linux Library" +DESCRIPTION = "The Embedded Linux Library (ELL) provides core, \ +low-level functionality for system daemons. It typically has no \ +dependencies other than the Linux kernel, C standard library, and \ +libdl (for dynamic linking). While ELL is designed to be efficient \ +and compact enough for use on embedded Linux platforms, it is not \ +limited to resource-constrained systems." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" + +DEPENDS = "dbus" + +inherit autotools pkgconfig + +SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "42fdb9e24ff561a101389d51445cab1ff7d55f5385dc22a05b0493088cf99e30" + +do_configure_prepend () { + mkdir -p ${S}/build-aux +} diff --git a/external/poky/meta/recipes-core/expat/expat/CVE-2018-20843.patch b/external/poky/meta/recipes-core/expat/expat/CVE-2018-20843.patch deleted file mode 100644 index af6641ef..00000000 --- a/external/poky/meta/recipes-core/expat/expat/CVE-2018-20843.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 11f8838bf99ea0a6f0b76f9760c43704d00c4ff6 Mon Sep 17 00:00:00 2001 -From: Sebastian Pipping -Date: Wed, 12 Jun 2019 15:42:22 +0200 -Subject: [PATCH] xmlparse.c: Fix extraction of namespace prefix from XML name - (#186) - -Upstream-Status: Backport -CVE: CVE-2018-20843 -Signed-off-by: Anuj Mittal ---- - expat/lib/xmlparse.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c -index 30d55c5c..737d7cd2 100644 ---- a/expat/lib/xmlparse.c -+++ b/expat/lib/xmlparse.c -@@ -6071,7 +6071,7 @@ setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType) - else - poolDiscard(&dtd->pool); - elementType->prefix = prefix; -- -+ break; - } - } - return 1; diff --git a/external/poky/meta/recipes-core/expat/expat/autotools.patch b/external/poky/meta/recipes-core/expat/expat/autotools.patch deleted file mode 100644 index 104717ea..00000000 --- a/external/poky/meta/recipes-core/expat/expat/autotools.patch +++ /dev/null @@ -1,25 +0,0 @@ -Avoid using expat's m4 files - -Upstream-Status: Inappropriate [Other] -Workaround specific to our build system. - -Signed-off-by: Kevin Tian -Signed-off-by: Scott Garman - -Updated to apply over expat 2.1.0 - -Signed-off-by: Marko Lindqvist - -Index: expat-2.2.5/configure.ac -=================================================================== ---- expat-2.2.5.orig/configure.ac -+++ expat-2.2.5/configure.ac -@@ -53,8 +53,6 @@ LIBAGE=6 # CMakeLists.txt! - CPPFLAGS="${CPPFLAGS} -DHAVE_EXPAT_CONFIG_H" - AC_CONFIG_HEADER(expat_config.h) - --sinclude(conftools/ac_c_bigendian_cross.m4) -- - AC_LIBTOOL_WIN32_DLL - AC_PROG_LIBTOOL - diff --git a/external/poky/meta/recipes-core/expat/expat_2.2.6.bb b/external/poky/meta/recipes-core/expat/expat_2.2.6.bb deleted file mode 100644 index 0cef7055..00000000 --- a/external/poky/meta/recipes-core/expat/expat_2.2.6.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "A stream-oriented XML parser library" -DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)" -HOMEPAGE = "http://expat.sourceforge.net/" -SECTION = "libs" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79" - -SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \ - file://autotools.patch \ - file://libtool-tag.patch \ - file://CVE-2018-20843.patch;striplevel=2 \ - " - -SRC_URI[md5sum] = "ca047ae951b40020ac831c28859161b2" -SRC_URI[sha256sum] = "17b43c2716d521369f82fc2dc70f359860e90fa440bea65b3b85f0b246ea81f2" - -inherit autotools lib_package - -do_configure_prepend () { - rm -f ${S}/conftools/libtool.m4 -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/expat/expat_2.2.9.bb b/external/poky/meta/recipes-core/expat/expat_2.2.9.bb new file mode 100644 index 00000000..8f3db413 --- /dev/null +++ b/external/poky/meta/recipes-core/expat/expat_2.2.9.bb @@ -0,0 +1,22 @@ +SUMMARY = "A stream-oriented XML parser library" +DESCRIPTION = "Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)" +HOMEPAGE = "http://expat.sourceforge.net/" +SECTION = "libs" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79" + +SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \ + file://libtool-tag.patch \ + " + +SRC_URI[md5sum] = "875a2c2ff3e8eb9e5a5cd62db2033ab5" +SRC_URI[sha256sum] = "f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237" + +inherit autotools lib_package + +do_configure_prepend () { + rm -f ${S}/conftools/libtool.m4 +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/fts/fts.bb b/external/poky/meta/recipes-core/fts/fts.bb deleted file mode 100644 index 02f54086..00000000 --- a/external/poky/meta/recipes-core/fts/fts.bb +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright (C) 2015 Khem Raj -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "POSIX file tree stream operations library" -HOMEPAGE = "https://sites.google.com/a/bostic.com/keithbostic" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=5ffe358174aad383f1b69ce3b53da982" -SECTION = "libs" - -SRCREV = "944333aed9dc24cfa76cc64bfe70c75d25652753" -PV = "1.2+git${SRCPV}" - -SRC_URI = "git://github.com/voidlinux/musl-fts \ -" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig -# -# We will skip parsing for non-musl systems -# -COMPATIBLE_HOST = ".*-musl.*" - diff --git a/external/poky/meta/recipes-core/fts/fts_1.2.7.bb b/external/poky/meta/recipes-core/fts/fts_1.2.7.bb new file mode 100644 index 00000000..589ae0e9 --- /dev/null +++ b/external/poky/meta/recipes-core/fts/fts_1.2.7.bb @@ -0,0 +1,21 @@ +# Copyright (C) 2015 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "Implementation of ftsfor musl libc packages" +HOMEPAGE = "https://github.com/pullmoll/musl-fts" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=5ffe358174aad383f1b69ce3b53da982" +SECTION = "libs" + +SRCREV = "0bde52df588e8969879a2cae51c3a4774ec62472" + +SRC_URI = "git://github.com/pullmoll/musl-fts.git" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig +# +# We will skip parsing for non-musl systems +# +COMPATIBLE_HOST = ".*-musl.*" + diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch b/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch deleted file mode 100644 index 35a13106..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch b/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/cr-statement.c-timsort.h-fix-formatting-issues.patch deleted file mode 100644 index 6af16041..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch b/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch deleted file mode 100644 index c8e2c94a..00000000 --- a/external/poky/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 - ---- 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/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch b/external/poky/meta/recipes-core/gettext/gettext-0.19.8.1/use-pkgconfig.patch deleted file mode 100644 index 6156a153..00000000 --- a/external/poky/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 - -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 ], -- [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 ], -- [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 ], -- [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 --#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 --#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 --#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 -- #include -- #include -- ], -- [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 -- #include -- #include -- ], -- [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, is self-contained. -- dnl In libxml2-2.6, it includes which is -- dnl self-contained. -- libxml2_include_dir= -- AC_TRY_CPP([#include ], -- [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 ], -- [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 -- #include -- #include -- ], -- [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 --#include --#include --#include -+#include -+#include -+#include -+#include -@@ -31 +31 @@ --# include -+# include -@@ -33 +33 @@ --#include -+#include diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-init-env.in-do-not-add-C-CXX-parameters.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-init-env.in-do-not-add-C-CXX-parameters.patch new file mode 100644 index 00000000..d45b7586 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/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 +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 +--- + 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/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch new file mode 100644 index 00000000..22458893 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-msgmerge-Fix-behaviour-of-for-msgfmt-on-PO-files-wit.patch @@ -0,0 +1,87 @@ +From 75e315fdec82d1a17ebcd9e0712d109323578d68 Mon Sep 17 00:00:00 2001 +From: Bruno Haible +Date: Sun, 19 May 2019 11:10:06 +0200 +Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no + translations. + +msgmerge: Fix behaviour of --for-msgfmt on PO files with no translations. + +Reported by Don Lawrence +in +via Daiki Ueno +in . + +* gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt +is true. +* gettext-tools/tests/msgmerge-26: Add test of PO file with no translations. + +Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=2336451ed68d91ff4b5ae1acbc1eca30e47a86a9] +Signed-off-by: Khem Raj +--- + gettext-tools/src/msgmerge.c | 4 ++-- + gettext-tools/tests/msgmerge-26 | 36 ++++++++++++++++++++++++++++++--- + 2 files changed, 35 insertions(+), 5 deletions(-) + +diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c +index cd762c0..92c9b7a 100644 +--- a/gettext-tools/src/msgmerge.c ++++ b/gettext-tools/src/msgmerge.c +@@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\ + else + { + /* Write the merged message list out. */ +- msgdomain_list_print (result, output_file, output_syntax, force_po, +- false); ++ msgdomain_list_print (result, output_file, output_syntax, ++ for_msgfmt || force_po, false); + } + + exit (EXIT_SUCCESS); +diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26 +index cd3862e..b86f7a0 100755 +--- a/gettext-tools/tests/msgmerge-26 ++++ b/gettext-tools/tests/msgmerge-26 +@@ -73,7 +73,37 @@ msgstr "Papaya" + EOF + + : ${DIFF=diff} +-${DIFF} mm-test26.ok mm-test26.out +-result=$? ++${DIFF} mm-test26.ok mm-test26.out || Exit 1 + +-exit $result ++# Test with a PO file that has no translated messages. ++ ++cat <<\EOF > mm-test26a.in1 ++msgid "" ++msgstr "" ++"Content-Type: text/plain; charset=UTF-8\n" ++ ++msgid "Hello world" ++msgstr "Hallo Welt" ++EOF ++ ++cat <<\EOF > mm-test26a.in2 ++msgid "" ++msgstr "" ++"Content-Type: text/plain; charset=ASCII\n" ++ ++msgid "Hello, world!" ++msgstr "" ++EOF ++ ++: ${MSGMERGE=msgmerge} ++${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \ ++ || Exit 1 ++LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1 ++ ++cat <<\EOF > mm-test26a.ok ++msgid "" ++msgstr "Content-Type: text/plain; charset=UTF-8\n" ++EOF ++ ++: ${DIFF=diff} ++${DIFF} mm-test26a.ok mm-test26a.out || Exit 1 +-- +2.24.1 + diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch new file mode 100644 index 00000000..b0bc6b97 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/0001-tests-autopoint-3-unset-MAKEFLAGS.patch @@ -0,0 +1,26 @@ +From 38b256e5aa7dfeb42acffd89565e53a2c0bab3e3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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 +--- + 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/external/poky/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch new file mode 100644 index 00000000..35a13106 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/add-with-bisonlocaledir.patch @@ -0,0 +1,58 @@ +From 04bd40fe2c48c6e01ab418a04d27c4aff644ad96 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +--- + 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/external/poky/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch new file mode 100644 index 00000000..0561ed7d --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/cr-statement.c-timsort.h-fix-formatting-issues.patch @@ -0,0 +1,71 @@ +From f6245ef5530fc37a6243e798df34162fbbeab6f0 Mon Sep 17 00:00:00 2001 +From: Robert Yang +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 + +--- + libtextstyle/lib/libcroco/cr-statement.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/libtextstyle/lib/libcroco/cr-statement.c b/libtextstyle/lib/libcroco/cr-statement.c +index 617520f..100104b 100644 +--- a/libtextstyle/lib/libcroco/cr-statement.c ++++ b/libtextstyle/lib/libcroco/cr-statement.c +@@ -2607,7 +2607,7 @@ cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, glong a_indent) + g_return_if_fail (a_fp && a_this); + str = cr_statement_ruleset_to_string (a_this, a_indent); + if (str) { +- fprintf (a_fp, str); ++ fprintf (a_fp, "%s", str); + g_free (str); + str = NULL; + } +@@ -2658,7 +2658,7 @@ cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent) + str = cr_statement_charset_to_string (a_this, + a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } +@@ -2685,7 +2685,7 @@ cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent) + + str = cr_statement_at_page_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str); ++ fprintf (a_fp, "%s", str); + g_free (str) ; + str = NULL ; + } +@@ -2711,7 +2711,7 @@ cr_statement_dump_media_rule (CRStatement * a_this, + + str = cr_statement_media_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } +@@ -2737,7 +2737,7 @@ cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp, + + str = cr_statement_import_rule_to_string (a_this, a_indent) ; + if (str) { +- fprintf (a_fp, str) ; ++ fprintf (a_fp, "%s", str) ; + g_free (str) ; + str = NULL ; + } diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch new file mode 100644 index 00000000..d96a376b --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/parallel.patch @@ -0,0 +1,32 @@ +From 4a2a0a93b469093b60ffd0bec55d33d1e03d4713 Mon Sep 17 00:00:00 2001 +From: Joe Slater +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 + +--- + 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/external/poky/meta/recipes-core/gettext/gettext-0.20.1/run-ptest b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/run-ptest new file mode 100644 index 00000000..f17f3c87 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh +# +#This script is used to run gettext test suites +cd tests + +make -k runtest-TESTS top_srcdir=.. srcdir=. abs_srcdir=$PWD top_builddir=$PWD/../ abs_top_srcdir=$PWD/../ | cat diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch new file mode 100644 index 00000000..93f7c033 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/serial-tests-config.patch @@ -0,0 +1,56 @@ +From ed64a5724ef7d6eb4e9a876f817ea266a536e195 Mon Sep 17 00:00:00 2001 +From: "Hongjun.Yang" +Date: Thu, 28 Jul 2016 12:36:15 +0800 +Subject: [PATCH] fix for ptest + +Add serial-tests support, ptest need it + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li + +--- + configure.ac | 2 +- + gettext-runtime/configure.ac | 2 +- + gettext-tools/configure.ac | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 38db6fd..f019ae0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -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 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} chf - --format=ustar --owner=root --group=root "$$tardir"' +diff --git a/gettext-runtime/configure.ac b/gettext-runtime/configure.ac +index de203e7..138a07f 100644 +--- a/gettext-runtime/configure.ac ++++ b/gettext-runtime/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([gettext-runtime], + [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]) ++AM_INIT_AUTOMAKE([1.11.1 silent-rules serial-tests]) + AC_CONFIG_HEADERS([config.h]) + + dnl Installation directories. +diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac +index cf1dd73..b544d6d 100644 +--- a/gettext-tools/configure.ac ++++ b/gettext-tools/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([gettext-tools], + [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]) ++AM_INIT_AUTOMAKE([1.11.1 silent-rules serial-tests]) + AC_CONFIG_HEADERS([config.h]) + + dnl Installation directories. diff --git a/external/poky/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch new file mode 100644 index 00000000..d3f3fe8e --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-0.20.1/use-pkgconfig.patch @@ -0,0 +1,713 @@ +From ef414b06be80c6f605731abc9e674e396b80ec9e Mon Sep 17 00:00:00 2001 +From: Ross Burton +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 + +--- + 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 | 104 +++--------------- + libtextstyle/gnulib-m4/libcroco.m4 | 99 +++-------------- + libtextstyle/gnulib-m4/libglib.m4 | 104 +++--------------- + libtextstyle/lib/term-styled-ostream.c | 12 +- + libtextstyle/lib/term-styled-ostream.oo.c | 12 +- + 8 files changed, 87 insertions(+), 454 deletions(-) + +diff --git a/gettext-tools/gnulib-m4/libxml.m4 b/gettext-tools/gnulib-m4/libxml.m4 +index 05b9550..031ee65 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 +- #include +- #include +- ], +- [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 +- #include +- #include +- ], +- [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, is self-contained. +- dnl In libxml2-2.6, it includes which is +- dnl self-contained. +- libxml2_include_dir= +- AC_TRY_CPP([#include ], +- [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 ], +- [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 +- #include +- #include +- ], +- [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 2cfd4a8..d42c8b4 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 + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + /* has a broken double-inclusion guard in libcroco-0.6.1. */ + #ifndef __CR_FONTS_H__ +-# include ++# include + #endif +-#include ++#include + + #include "term-ostream.h" + #include "hash.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 ], +- [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 ], +- [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 ], +- [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 bef6fa3..8841755 100644 +--- a/libtextstyle/gnulib-local/m4/libglib.m4 ++++ b/libtextstyle/gnulib-local/m4/libglib.m4 +@@ -1,105 +1,31 @@ +-# libglib.m4 serial 4 +-dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc. ++# libglib.m4 serial 3 (gettext-0.17) ++dnl Copyright (C) 2006-2007, 2015-2016 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + 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 +-#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 +-#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 +-#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 ], +- [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 ], +- [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 ], +- [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 bef6fa3..8841755 100644 +--- a/libtextstyle/gnulib-m4/libglib.m4 ++++ b/libtextstyle/gnulib-m4/libglib.m4 +@@ -1,105 +1,31 @@ +-# libglib.m4 serial 4 +-dnl Copyright (C) 2006-2007, 2019 Free Software Foundation, Inc. ++# libglib.m4 serial 3 (gettext-0.17) ++dnl Copyright (C) 2006-2007, 2015-2016 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, + dnl with or without modifications, as long as this notice is preserved. + + 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 +-#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 +-#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 +-#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 3675b5f..811e546 100644 +--- a/libtextstyle/lib/term-styled-ostream.c ++++ b/libtextstyle/lib/term-styled-ostream.c +@@ -28,15 +28,15 @@ + + #include + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + /* has a broken double-inclusion guard in libcroco-0.6.1. */ + #ifndef __CR_FONTS_H__ +-# include ++# include + #endif +-#include ++#include + + #include "term-ostream.h" + #include "hash.h" +diff --git a/libtextstyle/lib/term-styled-ostream.oo.c b/libtextstyle/lib/term-styled-ostream.oo.c +index 2cfd4a8..d42c8b4 100644 +--- a/libtextstyle/lib/term-styled-ostream.oo.c ++++ b/libtextstyle/lib/term-styled-ostream.oo.c +@@ -22,15 +22,15 @@ + + #include + +-#include +-#include +-#include +-#include ++#include ++#include ++#include ++#include + /* has a broken double-inclusion guard in libcroco-0.6.1. */ + #ifndef __CR_FONTS_H__ +-# include ++# include + #endif +-#include ++#include + + #include "term-ostream.h" + #include "hash.h" diff --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch b/external/poky/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 29ef2a5a..00000000 --- a/external/poky/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 ---- - 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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING deleted file mode 100644 index 3671ab69..00000000 --- a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING +++ /dev/null @@ -1,4 +0,0 @@ -dnl Copyright (C) 1995-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. diff --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in deleted file mode 100644 index 38c293d2..00000000 --- a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in +++ /dev/null @@ -1,483 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper -# -# 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 - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - -SED = @SED@ -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -localedir = @localedir@ -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -# We use $(mkdir_p). -# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as -# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, -# @install_sh@ does not start with $(SHELL), so we add it. -# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined -# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake -# versions, $(mkinstalldirs) and $(install_sh) are unused. -mkinstalldirs = $(SHELL) @install_sh@ -d -install_sh = $(SHELL) @install_sh@ -MKDIR_P = @MKDIR_P@ -mkdir_p = @mkdir_p@ - -# When building gettext-tools, we prefer to use the built programs -# rather than installed programs. However, we can't do that when we -# are cross compiling. -CROSS_COMPILING = @CROSS_COMPILING@ - -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_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot -POFILESDEPS_yes = $(POFILESDEPS_) -POFILESDEPS_no = -POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) - -DISTFILESDEPS_ = update-po -DISTFILESDEPS_yes = $(DISTFILESDEPS_) -DISTFILESDEPS_no = -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 - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.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 - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: all-@USE_NLS@ - -all-yes: stamp-po -all-no: - -# Ensure that the gettext macros and this Makefile.in.in are in sync. -CHECK_MACRO_VERSION = \ - test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ - || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ - exit 1; \ - } - -# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no -# 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 - @$(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; \ - } - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -# This target rebuilds $(DOMAIN).pot; it is an expensive operation. -# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. -# The determination of whether the package xyz is a GNU one is based on the -# heuristic whether some file in the top level directory mentions "GNU xyz". -# If GNU 'find' is available, we avoid grepping through monster files. -$(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; \ - else \ - LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ - fi; \ - } | grep -v 'libtool:' >/dev/null; then \ - package_gnu=yes; \ - else \ - package_gnu=no; \ - fi; \ - }; \ - if test "$$package_gnu" = "yes"; then \ - package_prefix='GNU '; \ - else \ - package_prefix=''; \ - fi; \ - if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ - msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ - else \ - msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ - fi; \ - 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@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - *) \ - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' \ - --package-name="$${package_prefix}@PACKAGE@" \ - --package-version='@VERSION@' \ - --msgid-bugs-address="$$msgid_bugs_address" \ - ;; \ - 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; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -# This rule has no dependencies: we don't need to update $(DOMAIN).pot at -# every "make" invocation, only create it when it is missing. -# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -# 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) - @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"; \ - 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].*) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ - esac; \ - }; \ - else \ - $(MAKE) $${lang}.po-create; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common) Makevars.template; do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - for file in Makevars; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkdir_p) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext-tools"; then \ - for file in $(DISTFILES.common) Makevars.template; do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -info dvi ps pdf html tags TAGS ctags CTAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f 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 - -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) - -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)"; \ - if test "$(PACKAGE)" = "gettext-tools"; then \ - dists="$$dists Makevars.template"; \ - fi; \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - dists="$$dists $(DOMAIN).pot stamp-po"; \ - fi; \ - if test -f $(srcdir)/ChangeLog; then \ - dists="$$dists ChangeLog"; \ - fi; \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - if test -f $(srcdir)/ChangeLog.$$i; then \ - dists="$$dists ChangeLog.$$i"; \ - fi; \ - done; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir) || exit 1; \ - else \ - cp -p $(srcdir)/$$file $(distdir) || exit 1; \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for creating PO files. - -.nop.po-create: - @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ - echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ - exit 1 - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ - 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"; \ - 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].*) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - *) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ - esac; \ - }; 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 "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -# Recreate Makefile by invoking config.status. Explicitly invoke the shell, -# because execution permission bits may not work on the current file system. -# Use @SHELL@, which is the shell determined by autoconf for the use by its -# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. -Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ - cd $(top_builddir) \ - && @SHELL@ ./config.status $(subdir)/$@.in po-directories - -force: - -# 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 --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz deleted file mode 100644 index 9b2d1f56..00000000 Binary files a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz and /dev/null differ diff --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath deleted file mode 100755 index 98183ff2..00000000 --- a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath +++ /dev/null @@ -1,684 +0,0 @@ -#! /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-2016 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit , 1996 -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. -# -# 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 MSVC, -# 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 _LT_CC_BASENAME. - -for cc_temp in $CC""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` - -# Code taken from libtool.m4's _LT_COMPILER_PIC. - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix*) - wl='-Wl,' - ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6* | nonstopux*) - wl='-Wl,' - ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) - case $cc_basename in - ecc*) - wl='-Wl,' - ;; - icc* | ifort*) - wl='-Wl,' - ;; - lf95*) - wl='-Wl,' - ;; - nagfor*) - wl='-Wl,-Wl,,' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - wl='-Wl,' - ;; - ccc*) - wl='-Wl,' - ;; - xl* | bgxl* | bgf* | mpixl*) - wl='-Wl,' - ;; - como) - wl='-lopt=' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ F* | *Sun*Fortran*) - wl= - ;; - *Sun\ C*) - wl='-Wl,' - ;; - esac - ;; - esac - ;; - newsos6) - ;; - *nto* | *qnx*) - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - rdos*) - ;; - solaris*) - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - wl='-Qoption ld ' - ;; - *) - wl='-Wl,' - ;; - esac - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3*) - wl='-Wl,' - ;; - sysv4*MP*) - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - wl='-Wl,' - ;; - unicos*) - wl='-Wl,' - ;; - uts4*) - ;; - esac -fi - -# Code taken from libtool.m4's _LT_LINKER_SHLIBS. - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) - # 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - # 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' - case "$host_os" in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test "$host_cpu" != ia64; then - ld_shlibs=no - fi - ;; - amigaos*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32* | cegcc*) - # 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 - ;; - haiku*) - ;; - interix[3-9]*) - hardcode_direct=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - netbsd*) - ;; - solaris*) - 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 - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - else - ld_shlibs=no - fi - ;; - esac - ;; - 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" = no; then - hardcode_libdir_flag_spec= - 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 - ;; - aix[4-9]*) - 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].*|aix[5-9]*) - 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 - : - 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*) - case "$host_cpu" in - powerpc) - ;; - m68k) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - bsdi[45]*) - ;; - cygwin* | mingw* | pw32* | cegcc*) - # 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*) - hardcode_direct=no - if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then - : - else - ld_shlibs=no - fi - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - freebsd2.[01]*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd* | dragonfly*) - 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*) - if test "$with_gnu_ld" = no; then - 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 - fi - ;; - hpux11*) - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - ;; - *) - 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=: - ;; - *nto* | *qnx*) - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - 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 - else - ld_shlibs=no - 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=: - ;; - 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - ;; - sysv5* | sco3.2v5* | sco5v6*) - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. -# Unlike libtool.m4, here we don't care about _all_ names of the library, but -# only about the one the linker finds when passed -lNAME. This is the last -# element of library_names_spec in libtool.m4, or possibly two of them if the -# linker has special search rules. -library_names_spec= # the last element of library_names_spec in libtool.m4 -libname_spec='lib$name' -case "$host_os" in - aix3*) - library_names_spec='$libname.a' - ;; - aix[4-9]*) - library_names_spec='$libname$shrext' - ;; - amigaos*) - case "$host_cpu" in - powerpc*) - library_names_spec='$libname$shrext' ;; - m68k) - library_names_spec='$libname.a' ;; - esac - ;; - beos*) - library_names_spec='$libname$shrext' - ;; - bsdi[45]*) - library_names_spec='$libname$shrext' - ;; - cygwin* | mingw* | pw32* | cegcc*) - shrext=.dll - library_names_spec='$libname.dll.a $libname.lib' - ;; - darwin* | rhapsody*) - shrext=.dylib - library_names_spec='$libname$shrext' - ;; - dgux*) - library_names_spec='$libname$shrext' - ;; - freebsd[23].*) - library_names_spec='$libname$shrext$versuffix' - ;; - freebsd* | dragonfly*) - library_names_spec='$libname$shrext' - ;; - gnu*) - library_names_spec='$libname$shrext' - ;; - haiku*) - library_names_spec='$libname$shrext' - ;; - hpux9* | hpux10* | hpux11*) - case $host_cpu in - ia64*) - shrext=.so - ;; - hppa*64*) - shrext=.sl - ;; - *) - shrext=.sl - ;; - esac - library_names_spec='$libname$shrext' - ;; - interix[3-9]*) - library_names_spec='$libname$shrext' - ;; - irix5* | irix6* | nonstopux*) - library_names_spec='$libname$shrext' - 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* | k*bsd*-gnu | kopensolaris*-gnu) - library_names_spec='$libname$shrext' - ;; - knetbsd*-gnu) - library_names_spec='$libname$shrext' - ;; - netbsd*) - library_names_spec='$libname$shrext' - ;; - newsos6) - library_names_spec='$libname$shrext' - ;; - *nto* | *qnx*) - library_names_spec='$libname$shrext' - ;; - openbsd*) - library_names_spec='$libname$shrext$versuffix' - ;; - os2*) - libname_spec='$name' - shrext=.dll - library_names_spec='$libname.a' - ;; - osf3* | osf4* | osf5*) - library_names_spec='$libname$shrext' - ;; - rdos*) - ;; - solaris*) - library_names_spec='$libname$shrext' - ;; - sunos4*) - library_names_spec='$libname$shrext$versuffix' - ;; - sysv4 | sysv4.3*) - library_names_spec='$libname$shrext' - ;; - sysv4*MP*) - library_names_spec='$libname$shrext' - ;; - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - library_names_spec='$libname$shrext' - ;; - tpf*) - library_names_spec='$libname$shrext' - ;; - uts4*) - library_names_spec='$libname$shrext' - ;; -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_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < +# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# Origin: gettext-0.20 +GETTEXT_MACRO_VERSION = 0.20 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SED = @SED@ +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +# When building gettext-tools, we prefer to use the built programs +# rather than installed programs. However, we can't do that when we +# are cross compiling. +CROSS_COMPILING = @CROSS_COMPILING@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot +POFILESDEPS_yes = $(POFILESDEPS_) +POFILESDEPS_no = +POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) + +DISTFILESDEPS_ = update-po +DISTFILESDEPS_yes = $(DISTFILESDEPS_) +DISTFILESDEPS_no = +DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) + +# Makevars gets inserted here. (Don't remove this line!) + +.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 +# : +# "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. +.po.gmo: $(srcdir)/$(DOMAIN).pot + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + 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: $(srcdir)/stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +CHECK_MACRO_VERSION = \ + test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# 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, $(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 $(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', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(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 -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + 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: \ + --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: \ + --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 \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# 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 "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { 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} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +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 $(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 + +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 $(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: $(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"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + 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-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 --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 \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# 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 --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4 new file mode 100644 index 00000000..e7832418 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/gettext.m4 @@ -0,0 +1,386 @@ +# gettext.m4 serial 70 (gettext-0.20) +dnl Copyright (C) 1995-2014, 2016, 2018 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl 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 is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 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 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 +#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 +#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 +#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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4 new file mode 100644 index 00000000..4407296d --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/host-cpu-c-abi.m4 @@ -0,0 +1,644 @@ +# host-cpu-c-abi.m4 serial 11 +dnl Copyright (C) 2002-2019 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 . +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[4567]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 ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), 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 < +#include + ]], + [[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 +#include + ]], + [[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 +#include + +#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 +#include +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 . + 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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4 new file mode 100644 index 00000000..30e6f50e --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/intlmacosx.m4 @@ -0,0 +1,72 @@ +# intlmacosx.m4 serial 6 (gettext-0.20) +dnl Copyright (C) 2004-2014, 2016, 2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl 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 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 ]], + [[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 Check for API introduced in Mac OS X 10.5. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + 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 ]], + [[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_CFLocaleCopyCurrent = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4 new file mode 100644 index 00000000..a1871963 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-ld.m4 @@ -0,0 +1,168 @@ +# lib-ld.m4 serial 9 +dnl Copyright (C) 1996-2003, 2009-2019 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 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 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\" + ]) + 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\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && test ! -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + 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= + 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 + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$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"; 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 + 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"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$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"; 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"; 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" + ;; + 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*) + 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/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; 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$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 "$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"; 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"; 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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4 new file mode 100644 index 00000000..8adb17bb --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/lib-prefix.m4 @@ -0,0 +1,249 @@ +# lib-prefix.m4 serial 14 +dnl Copyright (C) 2001-2005, 2008-2019 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 variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl 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]) + + case "$host_os" in + solaris*) + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _LP64 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_solaris_64bit=yes], + [gl_cv_solaris_64bit=no]) + ]);; + esac + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib, not $prefix/lib64. + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + dnl The result is a property of the system. However, non-system + dnl compilers sometimes have odd library search paths. Therefore + dnl prefer asking /usr/bin/gcc, if available, rather than $CC. + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2" + ]) + # Decompose acl_cv_libdirstems into acl_libdirstem and acl_libdirstem2. + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e '/,/s/.*,//'` +]) diff --git a/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4 new file mode 100644 index 00000000..b62f6148 --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl 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 is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4 b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4 new file mode 100644 index 00000000..143792db --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/aclocal/po.m4 @@ -0,0 +1,450 @@ +# po.m4 serial 30 (gettext-0.20) +dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl 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 is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 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 < "$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" < /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" <> "$ac_file.tmp" <, 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/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath new file mode 100755 index 00000000..be202c1a --- /dev/null +++ b/external/poky/meta/recipes-core/gettext/gettext-minimal-0.20.1/config.rpath @@ -0,0 +1,684 @@ +#! /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-2019 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# 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 MSVC, +# 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 _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # 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 + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # 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' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # 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 + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + 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 + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + 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" = no; then + hardcode_libdir_flag_spec= + 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 + ;; + aix[4-9]*) + 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].*|aix[5-9]*) + 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 + : + 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*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # 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*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + 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*) + if test "$with_gnu_ld" = no; then + 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 + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + 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=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + 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 + else + ld_shlibs=no + 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=: + ;; + 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + 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* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +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_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < +Date: Fri, 15 Feb 2019 11:17:27 +0100 +Subject: [PATCH] Do not write $bindir into pkg-config files + +This would otherwise break when using the files to build other target +components (we need to rely on PATH containing the paths to utilities, +rather than use target paths). + +Upstream-Status: Inappropriate [upstream wants the paths in .pc files] +Signed-off-by: Alexander Kanavin + +--- + 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 71e88c4..8ce3987 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -831,14 +831,14 @@ pkg.generate(libgio, + 'schemasdir=' + join_paths('${datadir}', schemas_subdir), + 'bindir=' + join_paths('${prefix}', get_option('bindir')), + '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=' + 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=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 91a48f1..978fb73 100644 +--- a/glib/meson.build ++++ b/glib/meson.build +@@ -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')), +- 'glib_genmarshal=' + join_paths('${bindir}', 'glib-genmarshal'), +- 'gobject_query=' + join_paths('${bindir}', 'gobject-query'), +- 'glib_mkenums=' + join_paths('${bindir}', 'glib-mkenums')], ++ 'glib_genmarshal=glib-genmarshal', ++ 'gobject_query=gobject-query', ++ 'glib_mkenums=glib-mkenums'], + version : glib_version, + install_dir : glib_pkgconfigreldir, + filebase : 'glib-2.0', diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch new file mode 100644 index 00000000..d8cf269b --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Fix-DATADIRNAME-on-uclibc-Linux.patch @@ -0,0 +1,34 @@ +From 15f807481de53942525b48952c5b6bbb9fb66542 Mon Sep 17 00:00:00 2001 +From: Khem Raj +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 +Upstream-Status: Pending + +%% original patch: uclibc_musl_translation.patch +--- + 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 +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch index 97d0aff5..a3d71f2b 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Install-gio-querymodules-as-libexec_PROGRAM.patch @@ -1,4 +1,4 @@ -From 856045927b9ab391165c0ebabf401835f8439eab Mon Sep 17 00:00:00 2001 +From d29dfba67b1808eea6d428085f95b6e42cf2d1e4 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Tue, 22 Mar 2016 15:14:58 +0200 Subject: [PATCH] Install gio-querymodules as libexec_PROGRAM @@ -10,20 +10,18 @@ Signed-off-by: Jussi Kukkonen Upstream-Status: Inappropriate [OE specific] --- - gio/Makefile.am | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + gio/meson.build | 1 + + 1 file changed, 1 insertion(+) -diff --git a/gio/Makefile.am b/gio/Makefile.am -index e14cad2..bf2bcc7 100644 ---- a/gio/Makefile.am -+++ b/gio/Makefile.am -@@ -835,7 +835,8 @@ gio.def: libgio-2.0.la - gio-2.0.lib: libgio-2.0.la gio.def - $(AM_V_GEN) lib.exe -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:$(builddir)/gio.def -out:$@ +diff --git a/gio/meson.build b/gio/meson.build +index 4e5e021..90a741a 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -940,6 +940,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, ++ install_dir: glib_libexecdir, + dependencies : [libgio_dep, libgobject_dep, libgmodule_dep, libglib_dep]) --bin_PROGRAMS = gio-querymodules glib-compile-schemas glib-compile-resources gsettings gio-launch-desktop -+bin_PROGRAMS = glib-compile-schemas glib-compile-resources gsettings gio-launch-desktop -+libexec_PROGRAMS = gio-querymodules - - glib_compile_resources_LDADD = libgio-2.0.la \ - $(top_builddir)/gobject/libgobject-2.0.la \ + glib_compile_schemas = executable('glib-compile-schemas', diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch new file mode 100644 index 00000000..b02169e0 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Set-host_machine-correctly-when-building-with-mingw3.patch @@ -0,0 +1,95 @@ +From cfff734af6bff6a30a649f784ecf698658c01884 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 13 Feb 2019 15:32:05 +0100 +Subject: [PATCH] Set host_machine correctly when building with mingw32 + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + gio/tests/meson.build | 8 ++++---- + glib/tests/meson.build | 2 +- + meson.build | 3 +++ + tests/meson.build | 2 +- + 4 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/gio/tests/meson.build b/gio/tests/meson.build +index 95aafc1..9025eb2 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -13,7 +13,7 @@ test_c_args = [ + '-UG_DISABLE_ASSERT', + ] + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + common_gio_tests_deps += [iphlpapi_dep, winsock2, cc.find_library ('secur32')] + endif + +@@ -120,7 +120,7 @@ if dbus1_dep.found() + endif + + # Test programs buildable on UNIX only +-if host_machine.system() != 'windows' ++if host_system != 'windows' + gio_tests += { + 'file' : {}, + 'gdbus-peer' : { +@@ -332,7 +332,7 @@ if host_machine.system() != 'windows' + endif # unix + + # Test programs buildable on Windows only +-if host_machine.system() == 'windows' ++if host_system == 'windows' + gio_tests += {'win32-streams' : {}} + endif + +@@ -397,7 +397,7 @@ if cc.get_id() != 'msvc' and cc.get_id() != 'clang-cl' + } + endif + +-if host_machine.system() != 'windows' ++if host_system != 'windows' + test_extra_programs += { + 'gdbus-example-unix-fd-client' : { + 'install' : false, +diff --git a/glib/tests/meson.build b/glib/tests/meson.build +index c47133f..cad975f 100644 +--- a/glib/tests/meson.build ++++ b/glib/tests/meson.build +@@ -132,7 +132,7 @@ if glib_conf.has('HAVE_EVENTFD') + } + endif + +-if host_machine.system() == 'windows' ++if host_system == 'windows' + if winsock2.found() + glib_tests += { + 'gpoll' : { +diff --git a/meson.build b/meson.build +index 717d1bc..2a3beb8 100644 +--- a/meson.build ++++ b/meson.build +@@ -32,6 +32,9 @@ else + endif + + host_system = host_machine.system() ++if host_system == 'mingw32' ++ host_system = 'windows' ++endif + + glib_version = meson.project_version() + glib_api_version = '2.0' +diff --git a/tests/meson.build b/tests/meson.build +index ce30442..5710f2c 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -66,7 +66,7 @@ test_extra_programs = { + 'unicode-collate' : {}, + } + +-if host_machine.system() != 'windows' ++if host_system != 'windows' + tests += { + 'timeloop' : {}, + 'iochannel-test' : {}, diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch b/external/poky/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 00000000..3dfef176 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch @@ -0,0 +1,27 @@ +From 730803f2bc3f2f1a74f4db809a224066e7eae114 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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 +--- + 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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch new file mode 100644 index 00000000..833ad254 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-meson-Run-atomics-test-on-clang-as-well.patch @@ -0,0 +1,31 @@ +From cce617bec254e327ed7bcad60f58208024c6dc42 Mon Sep 17 00:00:00 2001 +From: Khem Raj +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 +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 9731de4..c678931 100644 +--- a/meson.build ++++ b/meson.build +@@ -1634,7 +1634,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 +-- +2.23.0 + diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch index 697d63d5..872340df 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/0010-Do-not-hardcode-python-path-into-various-tools.patch @@ -12,7 +12,7 @@ Signed-off-by: Alexander Kanavin 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 100644 +index 8050981..e693ef3 100755 --- a/gio/gdbus-2.0/codegen/gdbus-codegen.in +++ b/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -1,4 +1,4 @@ diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch deleted file mode 100644 index 37ad5808..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-12450.patch +++ /dev/null @@ -1,59 +0,0 @@ -From d8f8f4d637ce43f8699ba94c9b7648beda0ca174 Mon Sep 17 00:00:00 2001 -From: Ondrej Holy -Date: Thu, 23 May 2019 10:41:53 +0200 -Subject: [PATCH] gfile: Limit access to files when copying - -file_copy_fallback creates new files with default permissions and -set the correct permissions after the operation is finished. This -might cause that the files can be accessible by more users during -the operation than expected. Use G_FILE_CREATE_PRIVATE for the new -files to limit access to those files. - -Upstream-Status: Backport -https://gitlab.gnome.org/GNOME/glib/commit/d8f8f4d637ce43f8699ba94c9b7648beda0ca174 -CVE: CVE-2019-12450 -Signed-off-by: Armin kuster - ---- - gio/gfile.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/gio/gfile.c b/gio/gfile.c -index 24b136d..74b5804 100644 ---- a/gio/gfile.c -+++ b/gio/gfile.c -@@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source, - out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), - FALSE, NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -- info, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, info, - cancellable, error); - else - out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), -- FALSE, 0, info, -+ FALSE, G_FILE_CREATE_PRIVATE, info, - cancellable, error); - } - else if (flags & G_FILE_COPY_OVERWRITE) -@@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source, - out = (GOutputStream *)g_file_replace (destination, - NULL, - flags & G_FILE_COPY_BACKUP, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - cancellable, error); - } - else - { -- out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); -+ out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error); - } - - if (!out) --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch deleted file mode 100644 index 29c5d984..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-13012.patch +++ /dev/null @@ -1,47 +0,0 @@ -From c7f7fd53780f8caebccc903d61ffc21632b46a6c Mon Sep 17 00:00:00 2001 -From: Matthias Clasen -Date: Tue, 22 Jan 2019 13:26:31 -0500 -Subject: [PATCH] keyfile settings: Use tighter permissions - -When creating directories, create them with 700 permissions, -instead of 777. - -Closes: #1658 - -Upstream-Status: Backport -[https://gitlab.gnome.org/GNOME/glib/commit -/5e4da714f00f6bfb2ccd6d73d61329c6f3a08429] - -CVE: CVE-2019-13012 - -Signed-off-by: Kevin Weng ---- - gio/gkeyfilesettingsbackend.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/gio/gkeyfilesettingsbackend.c b/gio/gkeyfilesettingsbackend.c -index a37978e83..580a0b0a1 100644 ---- a/gio/gkeyfilesettingsbackend.c -+++ b/gio/gkeyfilesettingsbackend.c -@@ -89,7 +89,8 @@ g_keyfile_settings_backend_keyfile_write (GKeyfileSettingsBackend *kfsb) - - contents = g_key_file_to_data (kfsb->keyfile, &length, NULL); - g_file_replace_contents (kfsb->file, contents, length, NULL, FALSE, -- G_FILE_CREATE_REPLACE_DESTINATION, -+ G_FILE_CREATE_REPLACE_DESTINATION | -+ G_FILE_CREATE_PRIVATE, - NULL, NULL, NULL); - - compute_checksum (kfsb->digest, contents, length); -@@ -640,7 +641,7 @@ g_keyfile_settings_backend_new (const gchar *filename, - - kfsb->file = g_file_new_for_path (filename); - kfsb->dir = g_file_get_parent (kfsb->file); -- g_file_make_directory_with_parents (kfsb->dir, NULL, NULL); -+ g_mkdir_with_parents (g_file_peek_path (kfsb->dir), 0700); - - kfsb->file_monitor = g_file_monitor (kfsb->file, 0, NULL, NULL); - kfsb->dir_monitor = g_file_monitor (kfsb->dir, 0, NULL, NULL); --- -2.22.0 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch deleted file mode 100644 index f95716ae..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p1.patch +++ /dev/null @@ -1,316 +0,0 @@ -From c1e32b90576af11556c8a9178e43902f3394a4b0 Mon Sep 17 00:00:00 2001 -From: Patrick Griffis -Date: Mon, 29 Oct 2018 09:53:07 -0400 -Subject: [PATCH] gsocketclient: Improve handling of slow initial connections - -Currently a new connection will not be attempted until the previous -one has timed out and as the current API only exposes a single -timeout value in practice it often means that it will wait 30 seconds -(or forever with 0 (the default)) on each connection. - -This is unacceptable so we are now trying to follow the behavior -RFC 8305 recommends by making multiple connection attempts if -the connection takes longer than 250ms. The first connection -to make it to completion then wins. - -Upstream-Status: Backport -CVE: CVE-2019-9633 patch 1 -Affects: < 2.59.2 -Signed-off-by: Armin Kuster - ---- - gio/gsocketclient.c | 176 ++++++++++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 151 insertions(+), 25 deletions(-) - -diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c -index ddd1497..5c6513c 100644 ---- a/gio/gsocketclient.c -+++ b/gio/gsocketclient.c -@@ -2,6 +2,7 @@ - * - * Copyright © 2008, 2009 codethink - * Copyright © 2009 Red Hat, Inc -+ * Copyright © 2018 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -49,6 +50,10 @@ - #include - #include "glibintl.h" - -+/* As recommended by RFC 8305 this is the time it waits -+ * on a connection before starting another concurrent attempt. -+ */ -+#define HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS 250 - - /** - * SECTION:gsocketclient -@@ -1328,28 +1333,82 @@ typedef struct - GSocketConnectable *connectable; - GSocketAddressEnumerator *enumerator; - GProxyAddress *proxy_addr; -- GSocketAddress *current_addr; -- GSocket *current_socket; -+ GSocket *socket; - GIOStream *connection; - -+ GSList *connection_attempts; - GError *last_error; - } GSocketClientAsyncConnectData; - -+static void connection_attempt_unref (gpointer attempt); -+ - static void - g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data) - { - g_clear_object (&data->connectable); - g_clear_object (&data->enumerator); - g_clear_object (&data->proxy_addr); -- g_clear_object (&data->current_addr); -- g_clear_object (&data->current_socket); -+ g_clear_object (&data->socket); - g_clear_object (&data->connection); -+ g_slist_free_full (data->connection_attempts, connection_attempt_unref); - - g_clear_error (&data->last_error); - - g_slice_free (GSocketClientAsyncConnectData, data); - } - -+typedef struct -+{ -+ GSocketAddress *address; -+ GSocket *socket; -+ GIOStream *connection; -+ GSocketClientAsyncConnectData *data; /* unowned */ -+ GSource *timeout_source; -+ GCancellable *cancellable; -+ grefcount ref; -+} ConnectionAttempt; -+ -+static ConnectionAttempt * -+connection_attempt_new (void) -+{ -+ ConnectionAttempt *attempt = g_new0 (ConnectionAttempt, 1); -+ g_ref_count_init (&attempt->ref); -+ return attempt; -+} -+ -+static ConnectionAttempt * -+connection_attempt_ref (ConnectionAttempt *attempt) -+{ -+ g_ref_count_inc (&attempt->ref); -+ return attempt; -+} -+ -+static void -+connection_attempt_unref (gpointer pointer) -+{ -+ ConnectionAttempt *attempt = pointer; -+ if (g_ref_count_dec (&attempt->ref)) -+ { -+ g_clear_object (&attempt->address); -+ g_clear_object (&attempt->socket); -+ g_clear_object (&attempt->connection); -+ g_clear_object (&attempt->cancellable); -+ if (attempt->timeout_source) -+ { -+ g_source_destroy (attempt->timeout_source); -+ g_source_unref (attempt->timeout_source); -+ } -+ g_free (attempt); -+ } -+} -+ -+static void -+connection_attempt_remove (ConnectionAttempt *attempt) -+{ -+ attempt->data->connection_attempts = g_slist_remove (attempt->data->connection_attempts, attempt); -+ connection_attempt_unref (attempt); -+} -+ - static void - g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data) - { -@@ -1359,8 +1418,7 @@ g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data) - { - GSocketConnection *wrapper_connection; - -- wrapper_connection = g_tcp_wrapper_connection_new (data->connection, -- data->current_socket); -+ wrapper_connection = g_tcp_wrapper_connection_new (data->connection, data->socket); - g_object_unref (data->connection); - data->connection = (GIOStream *)wrapper_connection; - } -@@ -1389,8 +1447,7 @@ static void - enumerator_next_async (GSocketClientAsyncConnectData *data) - { - /* We need to cleanup the state */ -- g_clear_object (&data->current_socket); -- g_clear_object (&data->current_addr); -+ g_clear_object (&data->socket); - g_clear_object (&data->proxy_addr); - g_clear_object (&data->connection); - -@@ -1485,34 +1542,68 @@ g_socket_client_connected_callback (GObject *source, - GAsyncResult *result, - gpointer user_data) - { -- GSocketClientAsyncConnectData *data = user_data; -+ ConnectionAttempt *attempt = user_data; -+ GSocketClientAsyncConnectData *data = attempt->data; -+ GSList *l; - GError *error = NULL; - GProxy *proxy; - const gchar *protocol; - -- if (g_task_return_error_if_cancelled (data->task)) -+ /* data is NULL once the task is completed */ -+ if (data && g_task_return_error_if_cancelled (data->task)) - { - g_object_unref (data->task); -+ connection_attempt_unref (attempt); - return; - } - -+ if (attempt->timeout_source) -+ { -+ g_source_destroy (attempt->timeout_source); -+ g_clear_pointer (&attempt->timeout_source, g_source_unref); -+ } -+ - if (!g_socket_connection_connect_finish (G_SOCKET_CONNECTION (source), - result, &error)) - { -- clarify_connect_error (error, data->connectable, -- data->current_addr); -- set_last_error (data, error); -+ if (!g_cancellable_is_cancelled (attempt->cancellable)) -+ { -+ clarify_connect_error (error, data->connectable, attempt->address); -+ set_last_error (data, error); -+ } -+ else -+ g_clear_error (&error); -+ -+ if (data) -+ { -+ connection_attempt_remove (attempt); -+ enumerator_next_async (data); -+ } -+ else -+ connection_attempt_unref (attempt); - -- /* try next one */ -- enumerator_next_async (data); - return; - } - -+ data->socket = g_steal_pointer (&attempt->socket); -+ data->connection = g_steal_pointer (&attempt->connection); -+ -+ for (l = data->connection_attempts; l; l = g_slist_next (l)) -+ { -+ ConnectionAttempt *attempt_entry = l->data; -+ g_cancellable_cancel (attempt_entry->cancellable); -+ attempt_entry->data = NULL; -+ connection_attempt_unref (attempt_entry); -+ } -+ g_slist_free (data->connection_attempts); -+ data->connection_attempts = NULL; -+ connection_attempt_unref (attempt); -+ - g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, NULL); - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTED, data->connectable, data->connection); - - /* wrong, but backward compatible */ -- g_socket_set_blocking (data->current_socket, TRUE); -+ g_socket_set_blocking (data->socket, TRUE); - - if (!data->proxy_addr) - { -@@ -1565,6 +1656,26 @@ g_socket_client_connected_callback (GObject *source, - } - } - -+static gboolean -+on_connection_attempt_timeout (gpointer data) -+{ -+ ConnectionAttempt *attempt = data; -+ -+ enumerator_next_async (attempt->data); -+ -+ g_clear_pointer (&attempt->timeout_source, g_source_unref); -+ return G_SOURCE_REMOVE; -+} -+ -+static void -+on_connection_cancelled (GCancellable *cancellable, -+ gpointer data) -+{ -+ GCancellable *attempt_cancellable = data; -+ -+ g_cancellable_cancel (attempt_cancellable); -+} -+ - static void - g_socket_client_enumerator_callback (GObject *object, - GAsyncResult *result, -@@ -1573,6 +1684,7 @@ g_socket_client_enumerator_callback (GObject *object, - GSocketClientAsyncConnectData *data = user_data; - GSocketAddress *address = NULL; - GSocket *socket; -+ ConnectionAttempt *attempt; - GError *error = NULL; - - if (g_task_return_error_if_cancelled (data->task)) -@@ -1585,6 +1697,9 @@ g_socket_client_enumerator_callback (GObject *object, - result, &error); - if (address == NULL) - { -+ if (data->connection_attempts) -+ return; -+ - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL); - if (!error) - { -@@ -1621,16 +1736,27 @@ g_socket_client_enumerator_callback (GObject *object, - return; - } - -- data->current_socket = socket; -- data->current_addr = address; -- data->connection = (GIOStream *) g_socket_connection_factory_create_connection (socket); -- -- g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, address); -- g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, data->connection); -- g_socket_connection_connect_async (G_SOCKET_CONNECTION (data->connection), -+ attempt = connection_attempt_new (); -+ attempt->data = data; -+ attempt->socket = socket; -+ attempt->address = address; -+ attempt->cancellable = g_cancellable_new (); -+ attempt->connection = (GIOStream *)g_socket_connection_factory_create_connection (socket); -+ attempt->timeout_source = g_timeout_source_new (HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS); -+ g_source_set_callback (attempt->timeout_source, on_connection_attempt_timeout, attempt, NULL); -+ g_source_attach (attempt->timeout_source, g_main_context_get_thread_default ()); -+ data->connection_attempts = g_slist_append (data->connection_attempts, attempt); -+ -+ if (g_task_get_cancellable (data->task)) -+ g_cancellable_connect (g_task_get_cancellable (data->task), G_CALLBACK (on_connection_cancelled), -+ g_object_ref (attempt->cancellable), g_object_unref); -+ -+ g_socket_connection_set_cached_remote_address ((GSocketConnection *)attempt->connection, address); -+ g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, attempt->connection); -+ g_socket_connection_connect_async (G_SOCKET_CONNECTION (attempt->connection), - address, -- g_task_get_cancellable (data->task), -- g_socket_client_connected_callback, data); -+ attempt->cancellable, -+ g_socket_client_connected_callback, connection_attempt_ref (attempt)); - } - - /** --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch deleted file mode 100644 index 3bb2f5d9..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/CVE-2019-9633_p2.patch +++ /dev/null @@ -1,231 +0,0 @@ -From d553d92d6e9f53cbe5a34166fcb919ba652c6a8e Mon Sep 17 00:00:00 2001 -From: Patrick Griffis -Date: Tue, 29 Jan 2019 10:07:06 -0500 -Subject: [PATCH] gsocketclient: Fix criticals - -This ensures the parent GTask is kept alive as long as an enumeration -is running and trying to connect. - -Closes #1646 -Closes #1649 - -Upstream-Status: Backport -CVE: CVE-2019-9633 patch 2 -Affects: < 2.59.2 -Signed-off-by: Armin Kuster - ---- - gio/gsocketclient.c | 74 +++++++++++++++++++++++++++++------------- - gio/tests/gsocketclient-slow.c | 55 ++++++++++++++++++++++++++++++- - 2 files changed, 106 insertions(+), 23 deletions(-) - -Index: glib-2.58.0/gio/gsocketclient.c -=================================================================== ---- glib-2.58.0.orig/gio/gsocketclient.c -+++ glib-2.58.0/gio/gsocketclient.c -@@ -1327,7 +1327,7 @@ g_socket_client_connect_to_uri (GSocketC - - typedef struct - { -- GTask *task; -+ GTask *task; /* unowned */ - GSocketClient *client; - - GSocketConnectable *connectable; -@@ -1345,6 +1345,7 @@ static void connection_attempt_unref (gp - static void - g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data) - { -+ data->task = NULL; - g_clear_object (&data->connectable); - g_clear_object (&data->enumerator); - g_clear_object (&data->proxy_addr); -@@ -1444,13 +1445,19 @@ set_last_error (GSocketClientAsyncConnec - } - - static void --enumerator_next_async (GSocketClientAsyncConnectData *data) -+enumerator_next_async (GSocketClientAsyncConnectData *data, -+ gboolean add_task_ref) - { - /* We need to cleanup the state */ - g_clear_object (&data->socket); - g_clear_object (&data->proxy_addr); - g_clear_object (&data->connection); - -+ /* Each enumeration takes a ref. This arg just avoids repeated unrefs when -+ an enumeration starts another enumeration */ -+ if (add_task_ref) -+ g_object_ref (data->task); -+ - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_RESOLVING, data->connectable, NULL); - g_socket_address_enumerator_next_async (data->enumerator, - g_task_get_cancellable (data->task), -@@ -1478,7 +1485,7 @@ g_socket_client_tls_handshake_callback ( - else - { - g_object_unref (object); -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1509,7 +1516,7 @@ g_socket_client_tls_handshake (GSocketCl - } - else - { -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1530,13 +1537,24 @@ g_socket_client_proxy_connect_callback ( - } - else - { -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - return; - } - - g_socket_client_tls_handshake (data); - } - -+static gboolean -+task_completed_or_cancelled (GTask *task) -+{ -+ if (g_task_get_completed (task)) -+ return TRUE; -+ else if (g_task_return_error_if_cancelled (task)) -+ return TRUE; -+ else -+ return FALSE; -+} -+ - static void - g_socket_client_connected_callback (GObject *source, - GAsyncResult *result, -@@ -1549,8 +1567,7 @@ g_socket_client_connected_callback (GObj - GProxy *proxy; - const gchar *protocol; - -- /* data is NULL once the task is completed */ -- if (data && g_task_return_error_if_cancelled (data->task)) -+ if (g_cancellable_is_cancelled (attempt->cancellable) || task_completed_or_cancelled (data->task)) - { - g_object_unref (data->task); - connection_attempt_unref (attempt); -@@ -1570,17 +1587,15 @@ g_socket_client_connected_callback (GObj - { - clarify_connect_error (error, data->connectable, attempt->address); - set_last_error (data, error); -+ connection_attempt_remove (attempt); -+ enumerator_next_async (data, FALSE); - } - else -- g_clear_error (&error); -- -- if (data) - { -- connection_attempt_remove (attempt); -- enumerator_next_async (data); -+ g_clear_error (&error); -+ g_object_unref (data->task); -+ connection_attempt_unref (attempt); - } -- else -- connection_attempt_unref (attempt); - - return; - } -@@ -1592,7 +1607,6 @@ g_socket_client_connected_callback (GObj - { - ConnectionAttempt *attempt_entry = l->data; - g_cancellable_cancel (attempt_entry->cancellable); -- attempt_entry->data = NULL; - connection_attempt_unref (attempt_entry); - } - g_slist_free (data->connection_attempts); -@@ -1625,7 +1639,7 @@ g_socket_client_connected_callback (GObj - G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, - _("Proxying over a non-TCP connection is not supported.")); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - else if (g_hash_table_contains (data->client->priv->app_proxies, protocol)) - { -@@ -1652,7 +1666,7 @@ g_socket_client_connected_callback (GObj - _("Proxy protocol “%s†is not supported."), - protocol); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - } - -@@ -1661,7 +1675,7 @@ on_connection_attempt_timeout (gpointer - { - ConnectionAttempt *attempt = data; - -- enumerator_next_async (attempt->data); -+ enumerator_next_async (attempt->data, TRUE); - - g_clear_pointer (&attempt->timeout_source, g_source_unref); - return G_SOURCE_REMOVE; -@@ -1687,7 +1701,7 @@ g_socket_client_enumerator_callback (GOb - ConnectionAttempt *attempt; - GError *error = NULL; - -- if (g_task_return_error_if_cancelled (data->task)) -+ if (task_completed_or_cancelled (data->task)) - { - g_object_unref (data->task); - return; -@@ -1698,7 +1712,10 @@ g_socket_client_enumerator_callback (GOb - if (address == NULL) - { - if (data->connection_attempts) -- return; -+ { -+ g_object_unref (data->task); -+ return; -+ } - - g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL); - if (!error) -@@ -1732,7 +1749,7 @@ g_socket_client_enumerator_callback (GOb - if (socket == NULL) - { - g_object_unref (address); -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - return; - } - -@@ -1804,11 +1821,24 @@ g_socket_client_connect_async (GSocketCl - else - data->enumerator = g_socket_connectable_enumerate (connectable); - -+ /* The flow and ownership here isn't quite obvious: -+ - The task starts an async attempt to connect. -+ - Each attempt holds a single ref on task. -+ - Each attempt may create new attempts by timing out (not a failure) so -+ there are multiple attempts happening in parallel. -+ - Upon failure an attempt will start a new attempt that steals its ref -+ until there are no more attempts left and it drops its ref. -+ - Upon success it will cancel all other attempts and continue on -+ to the rest of the connection (tls, proxies, etc) which do not -+ happen in parallel and at the very end drop its ref. -+ - Upon cancellation an attempt drops its ref. -+ */ -+ - data->task = g_task_new (client, cancellable, callback, user_data); - g_task_set_source_tag (data->task, g_socket_client_connect_async); - g_task_set_task_data (data->task, data, (GDestroyNotify)g_socket_client_async_connect_data_free); - -- enumerator_next_async (data); -+ enumerator_next_async (data, FALSE); - } - - /** diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch index 50781e78..48899ce8 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch @@ -1,4 +1,4 @@ -From 4b1a6d247c78125096a6ea5ab3cab8a1f000dc23 Mon Sep 17 00:00:00 2001 +From 0061d66057dfd7e7267772df60b36474fb180eed Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Mon, 9 Nov 2015 11:07:27 +0200 Subject: [PATCH] Enable more tests while cross-compiling @@ -11,70 +11,111 @@ Upstream-Status: Inappropriate [OE specific] Signed-off-by: Jussi Kukkonen --- - gio/tests/Makefile.am | 10 ++++++---- - tests/gobject/Makefile.am | 8 +++++--- - 2 files changed, 11 insertions(+), 7 deletions(-) + gio/tests/meson.build | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) -diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am -index 1f0bed7..8295deb 100644 ---- a/gio/tests/Makefile.am -+++ b/gio/tests/Makefile.am -@@ -550,10 +550,9 @@ test_programs += \ - endif - - # ----------------------------------------------------------------------------- --# The resources test is a bit more complicated, and we cannot build it when --# cross-compiling GIO because it requires running a binary... -+# The resources test is a bit more complicated, and requires glib-native -+# for running a binary +diff --git a/gio/tests/meson.build b/gio/tests/meson.build +index 382dfcc..c171717 100644 +--- a/gio/tests/meson.build ++++ b/gio/tests/meson.build +@@ -191,7 +191,7 @@ if host_machine.system() != 'windows' --if !CROSS_COMPILING - test_programs += resources - resources_SOURCES = resources.c - nodist_resources_SOURCES = test_resources.c test_resources2.c test_resources2.h -@@ -578,7 +577,11 @@ if !ENABLE_INSTALLED_TESTS - libresourceplugin_la_LDFLAGS += -rpath / + # Test programs that need to bring up a session bus (requires dbus-daemon) + have_dbus_daemon = find_program('dbus-daemon', required : false).found() +- if have_dbus_daemon ++ if true + annotate_args = [ + '--annotate', 'org.project.Bar', 'Key1', 'Value1', + '--annotate', 'org.project.Bar', 'org.gtk.GDBus.Internal', 'Value2', +@@ -465,12 +465,12 @@ if installed_tests_enabled + install_data('static-link.py', install_dir : installed_tests_execdir) endif -+if !CROSS_COMPILING - glib_compile_resources=$(top_builddir)/gio/glib-compile-resources -+else -+glib_compile_resources=glib-compile-resources -+endif - - test-generated.txt: test1.txt - $(AM_V_GEN) echo "Generated" > $@ && \ -@@ -599,7 +602,6 @@ test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) -- - - EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml - CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource --endif # !CROSS_COMPILING - - BUILT_SOURCES += giotypefuncs.inc - -diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am -index 0e60987..927d13a 100644 ---- a/tests/gobject/Makefile.am -+++ b/tests/gobject/Makefile.am -@@ -51,10 +51,13 @@ if ENABLE_TIMELOOP - installed_test_programs += timeloop-closure - endif +-if not meson.is_cross_build() or meson.has_exe_wrapper() ++if meson.is_cross_build() --# The marshal test requires running a binary, which means we cannot --# build it when cross-compiling -+# The marshal test requires running a binary, which means we require -+# glib-native when cross-compiling - if !CROSS_COMPILING - glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal -+else -+glib_genmarshal=$(shell which glib-genmarshal) -+endif + plugin_resources_c = custom_target('plugin-resources.c', + input : 'test4.gresource.xml', + output : 'plugin-resources.c', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--generate-source', +@@ -494,7 +494,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', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -505,7 +505,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + test_resources2_c = custom_target('test_resources2.c', + input : 'test3.gresource.xml', + output : 'test_resources2.c', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--generate', +@@ -516,7 +516,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', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--generate', +@@ -528,7 +528,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + input : 'test2.gresource.xml', + depends : big_test_resource, + output : 'test_resources.c', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -539,7 +539,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + digit_test_resources_c = custom_target('digit_test_resources.c', + input : '111_digit_test.gresource.xml', + output : 'digit_test_resources.c', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -550,7 +550,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + digit_test_resources_h = custom_target('digit_test_resources.h', + input : '111_digit_test.gresource.xml', + output : 'digit_test_resources.h', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--generate', +@@ -579,11 +579,11 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + # LLVM once that support is in a stable release. + objcopy = find_program('objcopy', required : false) - testmarshal.h: stamp-testmarshal.h - @true -@@ -71,4 +74,3 @@ testmarshal.c: testmarshal.h testmarshal.list $(glib_genmarshal) - BUILT_SOURCES += testmarshal.h testmarshal.c - CLEANFILES += stamp-testmarshal.h testmarshal.h testmarshal.c - EXTRA_DIST += testcommon.h testmarshal.list --endif # !CROSS_COMPILING -\ No newline at end of file +- if build_machine.system() == 'linux' and cc.get_id() == 'gcc' and objcopy.found() ++ if not meson.is_cross_build() + test_gresource_binary = custom_target('test5.gresource', + input : 'test5.gresource.xml', + output : 'test5.gresource', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), +@@ -595,7 +595,7 @@ if not meson.is_cross_build() or meson.has_exe_wrapper() + test_resources_binary_c = custom_target('test_resources_binary.c', + input : 'test5.gresource.xml', + output : 'test_resources_binary.c', +- command : [glib_compile_resources, ++ command : ['glib-compile-resources', + '--target=@OUTPUT@', + '--sourcedir=' + meson.current_source_dir(), + '--sourcedir=' + meson.current_build_dir(), diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch deleted file mode 100644 index 59b89134..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/configure-libtool.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1dd1e6ddca5deada049bac2e1ee1fe4ecc5342c5 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sat, 28 Apr 2012 18:24:50 +0200 -Subject: [PATCH 01/10] configure: use $host_alias-libtool instead of libtool - directly - -Poky renames libtool to $host_alias-libtool. -./$host_alias-libtool isn't created until after configure runs with -libtool >= 2.2.2 -so we can't call # it at this point. We can safely assume a version is -available -from PATH though - -Rebased to glib-2.27.3 by Dongxiao Xu -Rebased to glib-2.32.1 by Martin Jansa -Rebased to glib-2.31.20+ by Andre McCurdy - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Martin Jansa - ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 6fa6eb0..b6f78a6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1428,9 +1428,9 @@ AS_IF([ test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL" ], [ - LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS" - dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness - echo "void glib_plugin_test(void) { }" > plugin.c -- ${SHELL} ./libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ -+ ${SHELL} ./$host_alias-libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \ - ${CPPFLAGS} -c -o plugin.lo plugin.c >/dev/null 2>&1 -- ${SHELL} ./libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ -+ ${SHELL} ./$host_alias-libtool --mode=link --tag=CC ${CC} ${CFLAGS} \ - ${LDFLAGS} -module -o plugin.la -export-dynamic \ - -shrext ".o" -avoid-version plugin.lo \ - -rpath /dont/care >/dev/null 2>&1 --- -2.14.1 - diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch deleted file mode 100644 index dd0aff72..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/date-lt.patch +++ /dev/null @@ -1,20 +0,0 @@ -Update Lithuanian month names in the test suite as glibc changed the translations. - -Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/glib/merge_requests/373] -Signed-off-by: Ross Burton - -diff --git a/glib/tests/date.c b/glib/tests/date.c -index b801ca704..6646c227c 100644 ---- a/glib/tests/date.c -+++ b/glib/tests/date.c -@@ -365,8 +365,8 @@ test_month_names (void) - TEST_DATE ( 1, 4, 2018, "%Y m. %OB", "2018 m. balandis"); - TEST_DATE ( 1, 5, 2018, "%Y m. %OB", "2018 m. gegužė"); - TEST_DATE ( 1, 6, 2018, "%Y m. %OB", "2018 m. birželis"); -- TEST_DATE (17, 7, 2018, "%Y m. %b %e d.", "2018 m. Lie 17 d."); -- TEST_DATE ( 1, 8, 2018, "%Y m. %Ob", "2018 m. Rgp"); -+ TEST_DATE (17, 7, 2018, "%Y m. %b %e d.", "2018 m. Liep. 17 d."); -+ TEST_DATE ( 1, 8, 2018, "%Y m. %Ob", "2018 m. rugp."); - } - else - g_test_skip ("locale lt_LT not available, skipping Lithuanian month names test"); diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common new file mode 100644 index 00000000..0d7c5fa3 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc new file mode 100644 index 00000000..c4648f58 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-glibc @@ -0,0 +1,5 @@ +[properties] +have_c99_vsnprintf = true +have_c99_snprintf = true +have_unix98_printf = true +va_val_copy = true diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux new file mode 100644 index 00000000..83596e0e --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-mingw new file mode 100644 index 00000000..75f911ba --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-musl new file mode 100644 index 00000000..3049e511 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch index f9794d3d..36d32506 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -1,4 +1,4 @@ -From 8326961841f4d16c7239e747de11e3817c35cfd2 Mon Sep 17 00:00:00 2001 +From 8c623acdbea3ecc2812bbaafcfc892758fa978da Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 11 Mar 2016 15:35:55 +0000 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds @@ -19,10 +19,10 @@ Signed-off-by: Jussi Kukkonen 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gio/giomodule.c b/gio/giomodule.c -index 36c0cef..912e490 100644 +index 1007abd..5380982 100644 --- a/gio/giomodule.c +++ b/gio/giomodule.c -@@ -40,6 +40,8 @@ +@@ -44,6 +44,8 @@ #include "gnetworkmonitor.h" #ifdef G_OS_WIN32 #include "gregistrysettingsbackend.h" @@ -31,8 +31,8 @@ index 36c0cef..912e490 100644 #endif #include -@@ -1099,7 +1101,15 @@ get_gio_module_dir (void) - #endif +@@ -1149,7 +1151,15 @@ get_gio_module_dir (void) + NULL); g_free (install_dir); #else - module_dir = g_strdup (GIO_MODULE_DIR); diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest index 8f082d34..7a231b51 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/run-ptest +++ b/external/poky/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 +su glib2-test -c 'gnome-desktop-testing-runner glib' userdel glib2-test diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/uclibc_musl_translation.patch deleted file mode 100644 index 7aa6217d..00000000 --- a/external/poky/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 -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/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb deleted file mode 100644 index 611abd8e..00000000 --- a/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.58.0.bb +++ /dev/null @@ -1,26 +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://configure-libtool.patch \ - file://run-ptest \ - file://uclibc_musl_translation.patch \ - file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \ - file://Enable-more-tests-while-cross-compiling.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://date-lt.patch \ - file://CVE-2019-12450.patch \ - file://CVE-2019-9633_p1.patch \ - file://CVE-2019-9633_p2.patch \ - file://CVE-2019-13012.patch \ - " - -SRC_URI_append_class-native = " file://relocate-modules.patch" - -SRC_URI[md5sum] = "9b5d21c802f55bf37171c4fbfe7d32d1" -SRC_URI[sha256sum] = "c0f4ce0730b4f95c47b711613b5406a887c2ee13ea6d25930d72a4fa7fdb77f6" diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb new file mode 100644 index 00000000..911152dd --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0_2.62.6.bb @@ -0,0 +1,50 @@ +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[md5sum] = "46bba5410ad4e75f65e4b2cc61a1afc8" +SRC_URI[sha256sum] = "104fa26fbefae8024ff898330c671ec23ad075c1c0bce45c325c6d5657d58b9c" + +# 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/external/poky/meta/recipes-core/glib-2.0/glib.inc b/external/poky/meta/recipes-core/glib-2.0/glib.inc index e8215da5..7ebed0e5 100644 --- a/external/poky/meta/recipes-core/glib-2.0/glib.inc +++ b/external/poky/meta/recipes-core/glib-2.0/glib.inc @@ -22,34 +22,33 @@ DEPENDS = "glib-2.0-native \ virtual/libintl \ virtual/libiconv \ libffi \ - zlib \ - ${@bb.utils.contains('PTEST_ENABLED', '1', 'dbus', '', d)}" + zlib" PACKAGES += "${PN}-codegen ${PN}-utils" LEAD_SONAME = "libglib-2.0.*" -inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages +inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages features_check -S = "${WORKDIR}/glib-${PV}" +GTKDOC_MESON_OPTION = "gtk_doc" -PACKAGECONFIG ??= "system-pcre libmount" -# To use the system pcre it must be configured with --enable-unicode-properties -PACKAGECONFIG[system-pcre] = "--with-pcre=system,--with-pcre=internal,libpcre" -PACKAGECONFIG[libmount] = "--enable-libmount,--disable-libmount,util-linux" -PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native" -PACKAGECONFIG[libelf] = "--enable-libelf,--disable-libelf,elfutils" +# This avoids the need to depend on target python3, which in case of mingw is not even possible. +# meson's python configuration pokes into python3 configuration, so this provides the native config to it. +unset _PYTHON_SYSCONFIGDATA_NAME -CORECONF = "--disable-dtrace --disable-fam --disable-systemtap" +S = "${WORKDIR}/glib-${PV}" -PRINTF = "--enable-included-printf=no" -PRINTF_darwin = "--enable-included-printf=yes" -PRINTF_mingw32 = "--enable-included-printf=yes" -EXTRA_OECONF = "${PRINTF} ${CORECONF}" -EXTRA_OECONF_class-native = "${CORECONF} --disable-selinux" +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[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" -# Tell configure that we'll have dbus-daemon on the target for the tests -EXTRA_OECONF_append_class-target = " ${@bb.utils.contains('PTEST_ENABLED', '1', ' ac_cv_prog_DBUS_DAEMON=dbus-daemon', '', d)}" +EXTRA_OEMESON = "-Ddtrace=false -Dfam=false -Dsystemtap=false -Dselinux=disabled" do_configure_prepend() { sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in @@ -59,13 +58,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 \ @@ -75,9 +76,12 @@ FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \ ${bindir}/gdbus-codegen" FILES_${PN}-utils = "${bindir}/*" -RRECOMMENDS_${PN} += "shared-mime-info" +SHAREDMIMEDEP = "shared-mime-info" +SHAREDMIMEDEP_class-native = "" # When cross compiling for Windows we don't want to include this -RRECOMMENDS_${PN}_remove_mingw32 = "shared-mime-info" +SHAREDMIMEDEP_mingw32 = "" + +RRECOMMENDS_${PN} += "${SHAREDMIMEDEP}" ARM_INSTRUCTION_SET_armv4 = "arm" ARM_INSTRUCTION_SET_armv5 = "arm" @@ -112,6 +116,8 @@ do_install_append () { if test "x${MLPREFIX}" != "x"; then mv ${D}${libexecdir}/gio-querymodules${EXEEXT} ${D}${libexecdir}/${MLPREFIX}gio-querymodules${EXEEXT} fi + # Autotools does this, meson does not + mkdir -p ${D}${libdir}/gio/modules } do_install_append_class-target () { @@ -122,6 +128,16 @@ 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 +do_install_append_mingw32() { + rm -f ${D}${bindir}/gtester-report } CODEGEN_PYTHON_RDEPENDS = "python3 python3-distutils python3-xml" @@ -129,7 +145,11 @@ CODEGEN_PYTHON_RDEPENDS_mingw32 = "" RDEPENDS_${PN}-codegen += "${CODEGEN_PYTHON_RDEPENDS}" +RDEPENDS_${PN}-ptest += "${PN}-utils" + RDEPENDS_${PN}-ptest += "\ + coreutils \ + libgcc \ dbus \ gnome-desktop-testing \ tzdata \ @@ -138,10 +158,18 @@ RDEPENDS_${PN}-ptest += "\ tzdata-europe \ tzdata-posix \ shared-mime-info \ + ${PN}-locale-ja \ + ${PN}-locale-fr \ + ${PN}-locale-el \ + ${PN}-locale-hr \ + ${PN}-locale-lt \ + ${PN}-locale-pl \ + ${PN}-locale-ru \ + ${PN}-locale-th \ + python3-core \ + python3-modules \ " -# When https://gitlab.gnome.org/GNOME/glib/issues/1343 is -# fixed add locale-base-pl-pl RDEPENDS_${PN}-ptest_append_libc-glibc = "\ glibc-gconv-utf-16 \ glibc-charmap-utf-8 \ @@ -165,6 +193,7 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = "\ locale-base-fr-fr \ locale-base-es-es \ locale-base-en-gb \ + locale-base-en-us \ + locale-base-pl-pl \ + locale-base-pl-pl.iso-8859-2 \ " - -INSANE_SKIP_${PN}-ptest += "libdir" diff --git a/external/poky/meta/recipes-core/glib-networking/glib-networking_2.54.1.bb b/external/poky/meta/recipes-core/glib-networking/glib-networking_2.54.1.bb deleted file mode 100644 index 5d17a824..00000000 --- a/external/poky/meta/recipes-core/glib-networking/glib-networking_2.54.1.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "GLib networking extensions" -DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies." -HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/" -BUGTRACKER = "http://bugzilla.gnome.org" - -LICENSE = "LGPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -SECTION = "libs" -DEPENDS = "glib-2.0" - -SRC_URI[archive.md5sum] = "99867463f182c2767bce0c74bc9cc981" -SRC_URI[archive.sha256sum] = "eaa787b653015a0de31c928e9a17eb57b4ce23c8cf6f277afaec0d685335012f" - -PACKAGECONFIG ??= "ca-certificates gnutls" - -# No explicit dependency as it works without ca-certificates installed -PACKAGECONFIG[ca-certificates] = "--with-ca-certificates=${sysconfdir}/ssl/certs/ca-certificates.crt,--without-ca-certificates" -PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" -PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy" -PACKAGECONFIG[pkcs11] = "--with-pkcs11,--without-pkcs11,p11-kit" - -EXTRA_OECONF = "--without-gnome-proxy" - -inherit gnomebase gettext upstream-version-is-even gio-module-cache - -FILES_${PN} += "${libdir}/gio/modules/libgio*.so ${datadir}/dbus-1/services/" -FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la" -FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a" diff --git a/external/poky/meta/recipes-core/glib-networking/glib-networking_2.62.4.bb b/external/poky/meta/recipes-core/glib-networking/glib-networking_2.62.4.bb new file mode 100644 index 00000000..b7453208 --- /dev/null +++ b/external/poky/meta/recipes-core/glib-networking/glib-networking_2.62.4.bb @@ -0,0 +1,34 @@ +SUMMARY = "GLib networking extensions" +DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/glib-networking/" +BUGTRACKER = "http://bugzilla.gnome.org" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SECTION = "libs" +DEPENDS = "glib-2.0" + +SRC_URI[archive.md5sum] = "fad14a4a2cac73f0c2f9d426f1a9e5af" +SRC_URI[archive.sha256sum] = "c18f289eec480fdce12044c0a06f77521edf9f460d16ad4213de61f2a3b294cf" + +PACKAGECONFIG ??= "gnutls" + +PACKAGECONFIG[gnutls] = "-Dgnutls=enabled,-Dgnutls=disabled,gnutls" +PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl" +PACKAGECONFIG[libproxy] = "-Dlibproxy=enabled,-Dlibproxy=disabled,libproxy" + +EXTRA_OEMESON = "-Dgnome_proxy=disabled" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gettext upstream-version-is-even gio-module-cache + +FILES_${PN} += "\ + ${libdir}/gio/modules/libgio*.so \ + ${datadir}/dbus-1/services/ \ + ${systemd_user_unitdir} \ + " +FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la" +FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.28.bb b/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.28.bb deleted file mode 100644 index a05b94e3..00000000 --- a/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.28.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Cross locale generation tool for glibc" -HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" -SECTION = "libs" -LICENSE = "LGPL-2.1" - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -# Tell autotools that we're working in the localedef directory -# -AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" - -inherit native -inherit autotools - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" - -SRCBRANCH ?= "release/${PV}/master" -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -SRCREV_glibc ?= "3c03baca37fdcb52c3881e653ca392bba7a99c2b" -SRCREV_localedef ?= "c328777219ccc480be3112cf807217ca6b570b64" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ - 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://0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ -" -# Makes for a rather long rev (22 characters), but... -# -SRCREV_FORMAT = "glibc_localedef" - -S = "${WORKDIR}/git" - -EXTRA_OECONF = "--with-glibc=${S}" -CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef -} diff --git a/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb b/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb new file mode 100644 index 00000000..24de55d9 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb @@ -0,0 +1,52 @@ +SUMMARY = "Cross locale generation tool for glibc" +HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" +SECTION = "libs" +LICENSE = "LGPL-2.1" + +LIC_FILES_CHKSUM = "file://LICENSES;md5=1541fd8f5e8f1579512bf05f533371ba \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + +require glibc-version.inc + +# Tell autotools that we're working in the localedef directory +# +AUTOTOOLS_SCRIPT_PATH = "${S}/localedef" + +inherit native +inherit autotools + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:" + +SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ + git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \ + \ + file://0001-localedef-Add-hardlink-resolver-to-build.patch;patchdir=localedef \ + \ + file://0001-localedef-Add-hardlink-resolver-from-util-linux.patch \ + file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \ + \ + file://0018-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0019-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0020-eglibc-Cross-building-and-testing-instructions.patch \ + file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ +" +# Makes for a rather long rev (22 characters), but... +# +SRCREV_FORMAT = "glibc_localedef" + +S = "${WORKDIR}/git" + +EXTRA_OECONF = "--with-glibc=${S}" +CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'" + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef + install -m 0755 ${B}/cross-localedef-hardlink ${D}${bindir}/cross-localedef-hardlink +} diff --git a/external/poky/meta/recipes-core/glibc/glibc-collateral.inc b/external/poky/meta/recipes-core/glibc/glibc-collateral.inc index 536edfb0..52880791 100644 --- a/external/poky/meta/recipes-core/glibc/glibc-collateral.inc +++ b/external/poky/meta/recipes-core/glibc/glibc-collateral.inc @@ -1,15 +1,7 @@ -INHIBIT_DEFAULT_DEPS = "1" -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM ?= "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ - file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" -HOMEPAGE = "http://www.gnu.org/software/libc/index.html" +require glibc-common.inc -# This needs to match with glibc.inc, otherwise glibc-scripts and glibc-locale -# will fail to find main glibc, for details see -# http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100679.html -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \ + file://${COMMON_LICENSE_DIR}/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780" deltask do_fetch deltask do_unpack @@ -18,6 +10,3 @@ do_configure[noexec] = "1" do_compile[noexec] = "1" do_install[depends] += "virtual/${MLPREFIX}libc:do_stash_locale" - -COMPATIBLE_HOST_libc-musl_class-target = "null" - diff --git a/external/poky/meta/recipes-core/glibc/glibc-common.inc b/external/poky/meta/recipes-core/glibc/glibc-common.inc index b05e162f..8d412cc8 100644 --- a/external/poky/meta/recipes-core/glibc/glibc-common.inc +++ b/external/poky/meta/recipes-core/glibc/glibc-common.inc @@ -3,8 +3,23 @@ DESCRIPTION = "The GNU C Library is used as the system C library in most systems HOMEPAGE = "http://www.gnu.org/software/libc/libc.html" SECTION = "libs" LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM ?= "file://LICENSES;md5=07a394b26e0902b9ffdec03765209770 \ - file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ + +LIC_FILES_CHKSUM ?= "file://LICENSES;md5=1541fd8f5e8f1579512bf05f533371ba \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff " + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" + CVE_PRODUCT = "glibc" + +INHIBIT_DEFAULT_DEPS = "1" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" +# +# We will skip parsing glibc when target system C library selection is not glibc +# this helps in easing out parsing for non-glibc system libraries +# +COMPATIBLE_HOST_libc-musl_class-target = "null" + +PV = "2.31" diff --git a/external/poky/meta/recipes-core/glibc/glibc-initial.inc b/external/poky/meta/recipes-core/glibc/glibc-initial.inc deleted file mode 100644 index acd0d6b1..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc-initial.inc +++ /dev/null @@ -1,57 +0,0 @@ -DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial libgcc-initial make-native bison-native" -PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" - -PACKAGES = "" -PACKAGES_DYNAMIC = "" - -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" - -do_configure () { - (cd ${S} && gnu-configize) || die "failure in running gnu-configize" - find ${S} -name "configure" | xargs touch - cfgscript=`python3 -c "import os; print(os.path.relpath('${S}', '.'))"`/configure - $cfgscript --host=${TARGET_SYS} --build=${BUILD_SYS} \ - --prefix=/usr \ - --disable-sanity-checks \ - --with-headers=${STAGING_DIR_TARGET}${includedir} \ - --enable-hacker-mode -} - -do_compile () { - : -} - -do_install () { - oe_runmake cross-compiling=yes install_root=${D} \ - includedir='${includedir}' prefix='${prefix}' \ - install-bootstrap-headers=yes install-headers - - oe_runmake csu/subdir_lib - mkdir -p ${D}${libdir}/ - install -m 644 csu/crt[1in].o ${D}${libdir} - - # Two headers -- stubs.h and features.h -- aren't installed by install-headers, - # so do them by hand. We can tolerate an empty stubs.h for the moment. - # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html - mkdir -p ${D}${includedir}/gnu/ - touch ${D}${includedir}/gnu/stubs.h - cp ${S}/include/features.h ${D}${includedir}/features.h - - if [ -e ${B}/bits/stdio_lim.h ]; then - cp ${B}/bits/stdio_lim.h ${D}${includedir}/bits/ - fi -} - -do_stash_locale() { - : -} - -do_siteconfig () { - : -} - -inherit nopackages - -# We really only want this built by things that need it, not any recrdeptask -deltask do_build diff --git a/external/poky/meta/recipes-core/glibc/glibc-initial_2.28.bb b/external/poky/meta/recipes-core/glibc/glibc-initial_2.28.bb deleted file mode 100644 index e86770e1..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc-initial_2.28.bb +++ /dev/null @@ -1,9 +0,0 @@ -require glibc_${PV}.bb -require glibc-initial.inc - -# main glibc recipes muck with TARGET_CPPFLAGS to point into -# final target sysroot but we -# are not there when building glibc-initial -# so reset it here - -TARGET_CPPFLAGS = "" diff --git a/external/poky/meta/recipes-core/glibc/glibc-ld.inc b/external/poky/meta/recipes-core/glibc/glibc-ld.inc index bb167b32..041ffbb9 100644 --- a/external/poky/meta/recipes-core/glibc/glibc-ld.inc +++ b/external/poky/meta/recipes-core/glibc/glibc-ld.inc @@ -10,8 +10,8 @@ def glibc_dl_info(d): infos['ldconfig'].add('{"' + loader + '",' + "FLAG_ELF_LIBC6" + ' }') infos['lddrewrite'].add(loader) - infos['ldconfig'] = ','.join(infos['ldconfig']) - infos['lddrewrite'] = ' '.join(infos['lddrewrite']) + infos['ldconfig'] = ','.join(sorted(infos['ldconfig'])) + infos['lddrewrite'] = ' '.join(sorted(infos['lddrewrite'])) return infos EGLIBC_KNOWN_INTERPRETER_NAMES = "${@glibc_dl_info(d)['ldconfig']}" diff --git a/external/poky/meta/recipes-core/glibc/glibc-locale.inc b/external/poky/meta/recipes-core/glibc/glibc-locale.inc index 97d83cb8..ef06389f 100644 --- a/external/poky/meta/recipes-core/glibc/glibc-locale.inc +++ b/external/poky/meta/recipes-core/glibc/glibc-locale.inc @@ -12,9 +12,7 @@ BINUTILSDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot" BINUTILSDEP_class-nativesdk = "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot" do_package[depends] += "${BINUTILSDEP}" -# localedef links with libc.so and glibc-collateral.inc inhibits all default deps -# cannot add virtual/libc to DEPENDS, because it would conflict with libc-initial in RSS -RDEPENDS_localedef += "glibc" +DEPENDS += "virtual/libc" # Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION # is set. The idea is to avoid running localedef on the target (at first boot) @@ -27,7 +25,7 @@ ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-glibc-locale = "1" #enable locale generation on these arches # BINARY_LOCALE_ARCHES is a space separated list of regular expressions -BINARY_LOCALE_ARCHES ?= "arm.* aarch64 i[3-6]86 x86_64 powerpc mips mips64 riscv32 riscv64" +BINARY_LOCALE_ARCHES ?= "arc arm.* aarch64 i[3-6]86 x86_64 powerpc mips mips64 riscv32 riscv64" # set "1" to use cross-localedef for locale generation # set "0" for qemu emulation of native localedef for locale generation @@ -71,25 +69,30 @@ FILES_localedef = "${bindir}/localedef" LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale" -do_install () { - mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir} - if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${bindir}/* ${D}${bindir} - fi - if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then - mkdir -p ${D}${localedir} - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${localedir}/* ${D}${localedir} - fi - if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir} - fi - if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir} - fi - if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/locale ${D}${datadir} +copy_locale_files() { + local dir=$1 mode=$2 + + [ -e "${LOCALETREESRC}$dir" ] || return 0 + + for d in . $(find "${LOCALETREESRC}$dir" -type d -printf '%P '); do + install -d ${D}$dir/$d + find "${LOCALETREESRC}$dir/$d" -maxdepth 1 -type f \ + -exec install -m $mode -t "${D}$dir/$d" {} \; + done +} + +do_install() { + copy_locale_files ${bindir} 0755 + copy_locale_files ${localedir} 0644 + if [ ${PACKAGE_NO_GCONV} -eq 0 ]; then + copy_locale_files ${libdir}/gconv 0755 + copy_locale_files ${datadir}/i18n 0644 + else + # Remove the libdir if it is empty when gconv is not copied + find ${D}${libdir} -type d -empty -delete fi - cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/SUPPORTED ${WORKDIR} + copy_locale_files ${datadir}/locale 0644 + install -m 0644 ${LOCALETREESRC}/SUPPORTED ${WORKDIR}/SUPPORTED } inherit libc-package diff --git a/external/poky/meta/recipes-core/glibc/glibc-locale_2.28.bb b/external/poky/meta/recipes-core/glibc/glibc-locale_2.28.bb deleted file mode 100644 index f7702e03..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc-locale_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-locale.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb b/external/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb new file mode 100644 index 00000000..f7702e03 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb @@ -0,0 +1 @@ +require glibc-locale.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.28.bb b/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.28.bb deleted file mode 100644 index 0b69bad4..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-mtrace.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb b/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb new file mode 100644 index 00000000..0b69bad4 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb @@ -0,0 +1 @@ +require glibc-mtrace.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-package.inc b/external/poky/meta/recipes-core/glibc/glibc-package.inc index a98ae1a2..285a9aa2 100644 --- a/external/poky/meta/recipes-core/glibc/glibc-package.inc +++ b/external/poky/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)" @@ -15,10 +15,17 @@ RPROVIDES_glibc-thread-db = "eglibc-thread-db" RPROVIDES_${PN}-pcprofile = "eglibc-pcprofile" RPROVIDES_${PN}-dbg = "eglibc-dbg" libc_baselibs = "${base_libdir}/libc.so.* ${base_libdir}/libc-*.so ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so ${base_libdir}/libmvec-*.so ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so ${base_libdir}/libnss_files*.so.* ${base_libdir}/libnss_files-*.so ${base_libdir}/libnss_compat*.so.* ${base_libdir}/libnss_compat-*.so ${base_libdir}/libnss_dns*.so.* ${base_libdir}/libnss_dns-*.so ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so ${base_libdir}/libanl*.so.* ${base_libdir}/libanl-*.so ${base_libdir}/libBrokenLocale*.so.* ${base_libdir}/libBrokenLocale-*.so" -libc_baselibs_append_aarch64 = " /lib/ld-linux-aarch64*.so.1" +ARCH_DYNAMIC_LOADER = "" +# The aarch64 ABI says the dynamic linker -must- be +# /lib/ld-linux-aarch64{,_be}.so.1. With usrmerge, that may mean that +# we need to install it in /usr/lib. +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}/*" +RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}" +FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf" FILES_ldd = "${bindir}/ldd" FILES_libsegfault = "${base_libdir}/libSegFault*" FILES_libcidn = "${base_libdir}/libcidn-*.so ${base_libdir}/libcidn.so.*" @@ -31,6 +38,7 @@ FILES_${PN}-pic = "${libdir}/*_pic.a ${libdir}/*_pic.map ${libdir}/libc_pic/*.o" FILES_libsotruss = "${libdir}/audit/sotruss-lib.so" FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}" FILES_${PN}-dev += "${libdir}/*_nonshared.a ${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal" +RDEPENDS_${PN}-dev = "linux-libc-headers-dev" FILES_${PN}-staticdev += "${libdir}/*.a ${base_libdir}/*.a" FILES_nscd = "${sbindir}/nscd* ${sysconfdir}/init.d/nscd ${systemd_unitdir}/system/nscd* ${sysconfdir}/tmpfiles.d/nscd.conf \ ${sysconfdir}/nscd.conf ${sysconfdir}/default/volatiles/98_nscd ${localstatedir}/db/nscd" @@ -57,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 @@ -67,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 @@ -77,21 +97,6 @@ do_install_append () { rm -f ${D}${infodir}/dir fi - 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 - # This directory will be empty now so remove it too. - # But check whether it exists first, since it won't for glibc-initial. - if [ -d ${D}${sysconfdir} ]; then - rmdir ${D}${sysconfdir} - fi - fi - - if echo ${PN}|grep -q "glibc-initial"; then - return - fi - install -d ${D}${sysconfdir}/init.d install -d ${D}${localstatedir}/db/nscd install -m 0755 ${S}/nscd/nscd.init ${D}${sysconfdir}/init.d/nscd @@ -103,29 +108,38 @@ do_install_append () { install -d ${D}${systemd_unitdir}/system install -m 0644 ${S}/nscd/nscd.service ${D}${systemd_unitdir}/system/ + # The dynamic loader will have been installed into + # ${base_libdir}. However, if that isn't going to end up being + # available in the ABI-mandated location, then a symlink must + # be created. + + if [ -n "${ARCH_DYNAMIC_LOADER}" -a ! -e "${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then + install -d ${D}${root_prefix}/lib + ln -s ${@oe.path.relative('${root_prefix}/lib', '${base_libdir}')}/${ARCH_DYNAMIC_LOADER} \ + ${D}${root_prefix}/lib/${ARCH_DYNAMIC_LOADER} + 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', 'systemd', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/tmpfiles.d echo "d /run/nscd 755 root root -" \ > ${D}${sysconfdir}/tmpfiles.d/nscd.conf - else + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/default/volatiles echo "d root root 0755 /var/run/nscd none" \ > ${D}${sysconfdir}/default/volatiles/98_nscd fi -} +} do_install_append_aarch64 () { - if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then - # The aarch64 ABI says the dynamic linker -must- be /lib/ld-linux-aarch64[_be].so.1 - install -d ${D}${nonarch_base_libdir} - if [ -e ${D}${base_libdir}/ld-linux-aarch64.so.1 ]; then - ln -s ${@oe.path.relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64.so.1 \ - ${D}${nonarch_base_libdir}/ld-linux-aarch64.so.1 - elif [ -e ${D}${base_libdir}/ld-linux-aarch64_be.so.1 ]; then - ln -s ${@oe.path.relative('${nonarch_base_libdir}', '${base_libdir}')}/ld-linux-aarch64_be.so.1 \ - ${D}${nonarch_base_libdir}/ld-linux-aarch64_be.so.1 - fi - fi do_install_armmultilib } @@ -141,6 +155,7 @@ 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/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 oe_multilib_header fpu_control.h gnu/lib-names.h gnu/stubs.h ieee754.h @@ -153,27 +168,34 @@ bashscripts = "mtrace sotruss xtrace" do_stash_locale () { dest=${LOCALESTASH} - install -d ${dest}${base_libdir} ${dest}${bindir} ${dest}${libdir} ${dest}${datadir} - if [ "${base_libdir}" != "${libdir}" ]; then - cp -fpPR ${D}${base_libdir}/* ${dest}${base_libdir} - fi + install -d $dest${base_libdir} $dest${bindir} $dest${libdir} $dest${datadir} + # Hide away the locale data from the deployment if [ -e ${D}${bindir}/localedef ]; then - mv -f ${D}${bindir}/localedef ${dest}${bindir} + cp -a ${D}${bindir}/localedef $dest${bindir} fi if [ -e ${D}${libdir}/gconv ]; then - mv -f ${D}${libdir}/gconv ${dest}${libdir} - fi - if [ -e ${D}${exec_prefix}/lib ]; then - cp -fpPR ${D}${exec_prefix}/lib ${dest}${exec_prefix} + cp -a ${D}${libdir}/gconv $dest${libdir} fi if [ -e ${D}${datadir}/i18n ]; then - mv ${D}${datadir}/i18n ${dest}${datadir} + cp -a ${D}${datadir}/i18n $dest${datadir} fi - cp -fpPR ${D}${datadir}/* ${dest}${datadir} + + # Make a copy of all the libraries into the locale stash + cp -fpPR ${D}${libdir}/* $dest${libdir} + if [ "${base_libdir}" != "${libdir}" ]; then + cp -fpPR ${D}${base_libdir}/* $dest${base_libdir} + fi + if [ -e ${D}${exec_prefix}/lib ]; then + if [ ${exec_prefix}/lib != ${base_libdir} ] && [ ${exec_prefix}/lib != ${libdir} ]; then + cp -fpPR ${D}${exec_prefix}/lib $dest${exec_prefix} + fi + fi + + cp -fpPR ${D}${datadir}/* $dest${datadir} rm -rf ${D}${datadir}/locale/ - cp -fpPR ${WORKDIR}/SUPPORTED ${dest} + cp -fpPR ${WORKDIR}/SUPPORTED $dest - target=${dest}/scripts + target=$dest/scripts mkdir -p $target for i in ${bashscripts}; do if [ -f ${D}${bindir}/$i ]; then @@ -195,27 +217,59 @@ python do_stash_locale_setscene () { } addtask do_stash_locale_setscene -do_poststash_install_cleanup () { - # Remove all files which do_stash_locale would remove (mv) - # since that task could have come from sstate and not get run. +PACKAGE_PREPROCESS_FUNCS += "stash_locale_package_cleanup" +SYSROOT_PREPROCESS_FUNCS += "stash_locale_sysroot_cleanup" +stash_locale_cleanup () { + cleanupdir=$1 + # Remove all files which do_stash_locale() copies for i in ${bashscripts}; do - rm -f ${D}${bindir}/$i + rm -f $cleanupdir${bindir}/$i done - rm -f ${D}${bindir}/localedef - rm -rf ${D}${datadir}/i18n - rm -rf ${D}${libdir}/gconv - rm -rf ${D}/${localedir} - rm -rf ${D}${datadir}/locale - if [ "${libdir}" != "${exec_prefix}/lib" ]; then - if [ -d ${D}${exec_prefix}/lib ]; then - # error out if directory isn't empty - # this dir should only contain locale dir - # which has been deleted in the previous step - rmdir ${D}${exec_prefix}/lib + rm -f $cleanupdir${bindir}/localedef + rm -rf $cleanupdir${datadir}/i18n + 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 \ + ! -e "$cleanupdir${exec_prefix}/lib/${ARCH_DYNAMIC_LOADER}" ]; then + # error out if directory isn't empty + # this dir should only contain locale dir + # which has been deleted in the previous step + rmdir $cleanupdir${exec_prefix}/lib + fi fi fi } -addtask do_poststash_install_cleanup after do_stash_locale do_install before do_populate_sysroot do_package + +stash_locale_sysroot_cleanup() { + stash_locale_cleanup ${SYSROOT_DESTDIR} +} +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 diff --git a/external/poky/meta/recipes-core/glibc/glibc-scripts_2.28.bb b/external/poky/meta/recipes-core/glibc/glibc-scripts_2.28.bb deleted file mode 100644 index 5a89bd80..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc-scripts_2.28.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-scripts.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb b/external/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb new file mode 100644 index 00000000..5a89bd80 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb @@ -0,0 +1 @@ +require glibc-scripts.inc diff --git a/external/poky/meta/recipes-core/glibc/glibc-testing.inc b/external/poky/meta/recipes-core/glibc/glibc-testing.inc deleted file mode 100644 index 0a42ae7f..00000000 --- a/external/poky/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: -# /usr/include/c++/ -# /usr/include/c++// - -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/external/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb b/external/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb new file mode 100644 index 00000000..d887aeff --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb @@ -0,0 +1,63 @@ +require glibc_${PV}.bb + +EXCLUDE_FROM_WORLD = "1" + +# handle PN differences +FILESEXTRAPATHS_prepend := "${THISDIR}/glibc:" + +# strip provides +PROVIDES = "" +# setup depends +INHIBIT_DEFAULT_DEPS = "" + +python () { + libc = d.getVar("PREFERRED_PROVIDER_virtual/libc") + libclocale = d.getVar("PREFERRED_PROVIDER_virtual/libc-locale") + if libc != "glibc" or libclocale != "glibc-locale": + raise bb.parse.SkipRecipe("glibc-testsuite requires that virtual/libc is glibc") +} + +DEPENDS += "glibc-locale libgcc gcc-runtime" + +# remove the initial depends +DEPENDS_remove = "libgcc-initial" + +inherit qemu + +SRC_URI += "file://check-test-wrapper" + +DEPENDS += "${@'qemu-native' if d.getVar('TOOLCHAIN_TEST_TARGET') == 'user' else ''}" + +TOOLCHAIN_TEST_TARGET ??= "user" +TOOLCHAIN_TEST_HOST ??= "localhost" +TOOLCHAIN_TEST_HOST_USER ??= "root" +TOOLCHAIN_TEST_HOST_PORT ??= "2222" + +do_check[dirs] += "${B}" +do_check[nostamp] = "1" +do_check () { + chmod 0755 ${WORKDIR}/check-test-wrapper + + # clean out previous test results + oe_runmake tests-clean + # makefiles don't clean entirely (and also sometimes fails due to too many args) + find ${B} -type f -name "*.out" -delete + find ${B} -type f -name "*.test-result" -delete + find ${B}/catgets -name "*.cat" -delete + find ${B}/conform -name "symlist-*" -delete + [ ! -e ${B}/timezone/testdata ] || rm -rf ${B}/timezone/testdata + + oe_runmake -i \ + QEMU_SYSROOT="${RECIPE_SYSROOT}" \ + QEMU_OPTIONS="${@qemu_target_binary(d)} ${QEMU_OPTIONS}" \ + SSH_HOST="${TOOLCHAIN_TEST_HOST}" \ + SSH_HOST_USER="${TOOLCHAIN_TEST_HOST_USER}" \ + SSH_HOST_PORT="${TOOLCHAIN_TEST_HOST_PORT}" \ + test-wrapper="${WORKDIR}/check-test-wrapper ${TOOLCHAIN_TEST_TARGET}" \ + check +} +addtask do_check after do_compile + +inherit nopackages +deltask do_stash_locale +deltask do_install diff --git a/external/poky/meta/recipes-core/glibc/glibc-version.inc b/external/poky/meta/recipes-core/glibc/glibc-version.inc new file mode 100644 index 00000000..3bcd336d --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc-version.inc @@ -0,0 +1,8 @@ +SRCBRANCH ?= "release/2.31/master" +PV = "2.31+git${SRCPV}" +SRCREV_glibc ?= "6fdf971c9dbf7dac9bea552113fe4694015bbc4d" +SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655" + +GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" diff --git a/external/poky/meta/recipes-core/glibc/glibc.inc b/external/poky/meta/recipes-core/glibc/glibc.inc index 99c92ce4..23a6ca99 100644 --- a/external/poky/meta/recipes-core/glibc/glibc.inc +++ b/external/poky/meta/recipes-core/glibc/glibc.inc @@ -1,44 +1,19 @@ require glibc-common.inc require glibc-ld.inc -require glibc-testing.inc -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" +DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc-initial linux-libc-headers" -python () { - opt_effective = "-O" - for opt in d.getVar('SELECTED_OPTIMIZATION').split(): - if opt in ("-O0", "-O", "-O1", "-O2", "-O3", "-Os"): - opt_effective = opt - if opt_effective == "-O0": - bb.fatal("%s can't be built with %s, try -O1 instead" % (d.getVar('PN'), opt_effective)) -} - -# siteconfig.bbclass runs configure which needs a working compiler -# For the compiler to work we need a working libc yet libc isn't -# in the sysroots directory at this point. This means the libc.so -# linker script won't work as the --sysroot setting isn't correct. -# Here we create a hacked up libc linker script and pass in the right -# flags to let configure work. Ugly. -EXTRASITECONFIG = "CFLAGS='${CFLAGS} -Wl,-L${WORKDIR}/site_config_libc -L${WORKDIR}/site_config_libc -L${SYSROOT_DESTDIR}${libdir} -L${SYSROOT_DESTDIR}${base_libdir} -Wl,-L${SYSROOT_DESTDIR}${libdir} -Wl,-L${SYSROOT_DESTDIR}${base_libdir}'" -siteconfig_do_siteconfig_gencache_prepend = " \ - mkdir -p ${WORKDIR}/site_config_libc; \ - cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \ - sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \ -" - -# nptl needs unwind support in gcc, which can't be built without glibc. -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial libgcc-initial linux-libc-headers virtual/${TARGET_PREFIX}libc-initial" - -PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" +PROVIDES = "virtual/libc" PROVIDES += "virtual/libintl virtual/libiconv" -inherit autotools texinfo distro_features_check systemd +inherit autotools texinfo features_check 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} \ @@ -47,16 +22,11 @@ CACHED_CONFIGUREVARS += " \ libc_cv_ssp=no \ " +# ifunc doesn't appear to work on mips, casuses libbfd assertion failures +CACHED_CONFIGUREVARS_append_mipsarch = " libc_cv_ld_gnu_indirect_function=no" + GLIBC_EXTRA_OECONF ?= "" GLIBC_EXTRA_OECONF_class-nativesdk = "" -INHIBIT_DEFAULT_DEPS = "1" - -# This needs to match with glibc-collateral.inc, otherwise glibc-scripts and glibc-locale -# will fail to find main glibc, for details see -# http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100679.html -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" # glibc uses PARALLELMFLAGS variable to pass parallel build info so transfer # PARALLEL_MAKE into PARALLELMFLAGS and empty out PARALLEL_MAKE diff --git a/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch b/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch new file mode 100644 index 00000000..d0786be8 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch @@ -0,0 +1,1130 @@ +From 3dcf144e998aed17b3fb957a255b1e923ba07d71 Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Sat, 7 Dec 2019 09:59:22 -0800 +Subject: [PATCH] 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 +Signed-off-by: Khem Raj +--- + 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#ifdef HAVE_ERR_H ++# include ++#endif ++ ++#ifdef HAVE_SYS_SYSMACROS_H ++# include /* 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 ++#include ++static inline int dirfd(DIR *d) ++{ ++ return d->dd_fd; ++} ++#endif ++ ++/* ++ * Fallback defines for old versions of glibc ++ */ ++#include ++ ++#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 @@ ++/* ++ * hardlink - consolidate duplicate files via hardlinks ++ * ++ * Copyright (C) 2018 Red Hat, Inc. All rights reserved. ++ * Written by Jakub Jelinek ++ * ++ * Copyright (C) 2019 Karel Zak ++ * ++ * 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 would 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., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_PCRE ++# define PCRE2_CODE_UNIT_WIDTH 8 ++# include ++#endif ++ ++#include "c.h" ++#include "xalloc.h" ++#include "nls.h" ++#include "closestream.h" ++ ++#define NHASH (1<<17) /* Must be a power of 2! */ ++#define NBUF 64 ++ ++struct hardlink_file; ++ ++struct hardlink_hash { ++ struct hardlink_hash *next; ++ struct hardlink_file *chain; ++ off_t size; ++ time_t mtime; ++}; ++ ++struct hardlink_dir { ++ struct hardlink_dir *next; ++ char name[]; ++}; ++ ++struct hardlink_file { ++ struct hardlink_file *next; ++ ino_t ino; ++ dev_t dev; ++ unsigned int cksum; ++ char name[]; ++}; ++ ++struct hardlink_dynstr { ++ char *buf; ++ size_t alloc; ++}; ++ ++struct hardlink_ctl { ++ struct hardlink_dir *dirs; ++ struct hardlink_hash *hps[NHASH]; ++ char iobuf1[BUFSIZ]; ++ char iobuf2[BUFSIZ]; ++ /* summary counters */ ++ unsigned long long ndirs; ++ unsigned long long nobjects; ++ unsigned long long nregfiles; ++ unsigned long long ncomp; ++ unsigned long long nlinks; ++ unsigned long long nsaved; ++ /* current device */ ++ dev_t dev; ++ /* flags */ ++ unsigned int verbose; ++ unsigned int ++ no_link:1, ++ content_only:1, ++ force:1; ++}; ++/* ctl is in global scope due use in atexit() */ ++struct hardlink_ctl global_ctl; ++ ++__attribute__ ((always_inline)) ++static inline unsigned int hash(off_t size, time_t mtime) ++{ ++ return (size ^ mtime) & (NHASH - 1); ++} ++ ++__attribute__ ((always_inline)) ++static inline int stcmp(struct stat *st1, struct stat *st2, int content_scope) ++{ ++ if (content_scope) ++ return st1->st_size != st2->st_size; ++ ++ return st1->st_mode != st2->st_mode ++ || st1->st_uid != st2->st_uid ++ || st1->st_gid != st2->st_gid ++ || st1->st_size != st2->st_size ++ || st1->st_mtime != st2->st_mtime; ++} ++ ++static void print_summary(void) ++{ ++ struct hardlink_ctl const *const ctl = &global_ctl; ++ ++ if (!ctl->verbose) ++ return; ++ ++ if (ctl->verbose > 1 && ctl->nlinks) ++ fputc('\n', stdout); ++ ++ printf(_("Directories: %9lld\n"), ctl->ndirs); ++ printf(_("Objects: %9lld\n"), ctl->nobjects); ++ printf(_("Regular files: %9lld\n"), ctl->nregfiles); ++ printf(_("Comparisons: %9lld\n"), ctl->ncomp); ++ printf( "%s%9lld\n", (ctl->no_link ? ++ _("Would link: ") : ++ _("Linked: ")), ctl->nlinks); ++ printf( "%s %9lld\n", (ctl->no_link ? ++ _("Would save: ") : ++ _("Saved: ")), ctl->nsaved); ++} ++ ++static void __attribute__((__noreturn__)) usage(void) ++{ ++ fputs(USAGE_HEADER, stdout); ++ printf(_(" %s [options] directory...\n"), program_invocation_short_name); ++ ++ fputs(USAGE_SEPARATOR, stdout); ++ puts(_("Consolidate duplicate files using hardlinks.")); ++ ++ fputs(USAGE_OPTIONS, stdout); ++ puts(_(" -c, --content compare only contents, ignore permission, etc.")); ++ puts(_(" -n, --dry-run don't actually link anything")); ++ puts(_(" -v, --verbose print summary after hardlinking")); ++ puts(_(" -vv print every hardlinked file and summary")); ++ puts(_(" -f, --force force hardlinking across filesystems")); ++ puts(_(" -x, --exclude exclude files matching pattern")); ++ ++ fputs(USAGE_SEPARATOR, stdout); ++ printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */ ++ printf(USAGE_MAN_TAIL("hardlink(1)")); ++ exit(EXIT_SUCCESS); ++} ++ ++__attribute__ ((always_inline)) ++static inline size_t add2(size_t a, size_t b) ++{ ++ size_t sum = a + b; ++ ++ if (sum < a) ++ errx(EXIT_FAILURE, _("integer overflow")); ++ return sum; ++} ++ ++__attribute__ ((always_inline)) ++static inline size_t add3(size_t a, size_t b, size_t c) ++{ ++ return add2(add2(a, b), c); ++} ++ ++static void growstr(struct hardlink_dynstr *str, size_t newlen) ++{ ++ if (newlen < str->alloc) ++ return; ++ str->buf = xrealloc(str->buf, str->alloc = add2(newlen, 1)); ++} ++ ++static void process_path(struct hardlink_ctl *ctl, const char *name) ++{ ++ struct stat st, st2, st3; ++ const size_t namelen = strlen(name); ++ ++ ctl->nobjects++; ++ if (lstat(name, &st)) ++ return; ++ ++ if (st.st_dev != ctl->dev && !ctl->force) { ++ if (ctl->dev) ++ errx(EXIT_FAILURE, ++ _("%s is on different filesystem than the rest " ++ "(use -f option to override)."), name); ++ ctl->dev = st.st_dev; ++ } ++ if (S_ISDIR(st.st_mode)) { ++ struct hardlink_dir *dp = xmalloc(add3(sizeof(*dp), namelen, 1)); ++ memcpy(dp->name, name, namelen + 1); ++ dp->next = ctl->dirs; ++ ctl->dirs = dp; ++ ++ } else if (S_ISREG(st.st_mode)) { ++ int fd, i; ++ struct hardlink_file *fp, *fp2; ++ struct hardlink_hash *hp; ++ const char *n1, *n2; ++ unsigned int buf[NBUF]; ++ int cksumsize = sizeof(buf); ++ unsigned int cksum; ++ time_t mtime = ctl->content_only ? 0 : st.st_mtime; ++ unsigned int hsh = hash(st.st_size, mtime); ++ off_t fsize; ++ ++ ctl->nregfiles++; ++ if (ctl->verbose > 1) ++ printf("%s\n", name); ++ ++ fd = open(name, O_RDONLY); ++ if (fd < 0) ++ return; ++ ++ if ((size_t)st.st_size < sizeof(buf)) { ++ cksumsize = st.st_size; ++ memset(((char *)buf) + cksumsize, 0, ++ (sizeof(buf) - cksumsize) % sizeof(buf[0])); ++ } ++ if (read(fd, buf, cksumsize) != cksumsize) { ++ close(fd); ++ return; ++ } ++ cksumsize = (cksumsize + sizeof(buf[0]) - 1) / sizeof(buf[0]); ++ for (i = 0, cksum = 0; i < cksumsize; i++) { ++ if (cksum + buf[i] < cksum) ++ cksum += buf[i] + 1; ++ else ++ cksum += buf[i]; ++ } ++ for (hp = ctl->hps[hsh]; hp; hp = hp->next) { ++ if (hp->size == st.st_size && hp->mtime == mtime) ++ break; ++ } ++ if (!hp) { ++ hp = xmalloc(sizeof(*hp)); ++ hp->size = st.st_size; ++ hp->mtime = mtime; ++ hp->chain = NULL; ++ hp->next = ctl->hps[hsh]; ++ ctl->hps[hsh] = hp; ++ } ++ for (fp = hp->chain; fp; fp = fp->next) { ++ if (fp->cksum == cksum) ++ break; ++ } ++ for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) { ++ if (fp2->ino == st.st_ino && fp2->dev == st.st_dev) { ++ close(fd); ++ return; ++ } ++ } ++ for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) { ++ ++ if (!lstat(fp2->name, &st2) && S_ISREG(st2.st_mode) && ++ !stcmp(&st, &st2, ctl->content_only) && ++ st2.st_ino != st.st_ino && ++ st2.st_dev == st.st_dev) { ++ ++ int fd2 = open(fp2->name, O_RDONLY); ++ if (fd2 < 0) ++ continue; ++ ++ if (fstat(fd2, &st2) || !S_ISREG(st2.st_mode) ++ || st2.st_size == 0) { ++ close(fd2); ++ continue; ++ } ++ ctl->ncomp++; ++ lseek(fd, 0, SEEK_SET); ++ ++ for (fsize = st.st_size; fsize > 0; ++ fsize -= (off_t)sizeof(ctl->iobuf1)) { ++ ssize_t xsz; ++ ssize_t rsize = fsize > (ssize_t) sizeof(ctl->iobuf1) ? ++ (ssize_t) sizeof(ctl->iobuf1) : fsize; ++ ++ if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize) ++ warn(_("cannot read %s"), name); ++ else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize) ++ warn(_("cannot read %s"), fp2->name); ++ ++ if (xsz != rsize) { ++ close(fd); ++ close(fd2); ++ return; ++ } ++ if (memcmp(ctl->iobuf1, ctl->iobuf2, rsize)) ++ break; ++ } ++ close(fd2); ++ if (fsize > 0) ++ continue; ++ if (lstat(name, &st3)) { ++ warn(_("cannot stat %s"), name); ++ close(fd); ++ return; ++ } ++ st3.st_atime = st.st_atime; ++ if (stcmp(&st, &st3, 0)) { ++ warnx(_("file %s changed underneath us"), name); ++ close(fd); ++ return; ++ } ++ n1 = fp2->name; ++ n2 = name; ++ ++ if (!ctl->no_link) { ++ const char *suffix = ++ ".$$$___cleanit___$$$"; ++ const size_t suffixlen = strlen(suffix); ++ size_t n2len = strlen(n2); ++ struct hardlink_dynstr nam2 = { NULL, 0 }; ++ ++ growstr(&nam2, add2(n2len, suffixlen)); ++ memcpy(nam2.buf, n2, n2len); ++ memcpy(&nam2.buf[n2len], suffix, ++ suffixlen + 1); ++ /* First create a temporary link to n1 under a new name */ ++ if (link(n1, nam2.buf)) { ++ warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"), ++ n1, n2, nam2.buf); ++ free(nam2.buf); ++ continue; ++ } ++ /* Then rename into place over the existing n2 */ ++ if (rename(nam2.buf, n2)) { ++ warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"), ++ n1, n2, n2); ++ /* Something went wrong, try to remove the now redundant temporary link */ ++ if (unlink(nam2.buf)) ++ warn(_("failed to remove temporary link %s"), nam2.buf); ++ free(nam2.buf); ++ continue; ++ } ++ free(nam2.buf); ++ } ++ ctl->nlinks++; ++ if (st3.st_nlink > 1) { ++ /* We actually did not save anything this time, since the link second argument ++ had some other links as well. */ ++ if (ctl->verbose > 1) ++ printf(_(" %s %s to %s\n"), ++ (ctl->no_link ? _("Would link") : _("Linked")), ++ n1, n2); ++ } else { ++ ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096; ++ if (ctl->verbose > 1) ++ printf(_(" %s %s to %s, %s %jd\n"), ++ (ctl->no_link ? _("Would link") : _("Linked")), ++ n1, n2, ++ (ctl->no_link ? _("would save") : _("saved")), ++ (intmax_t)st.st_size); ++ } ++ close(fd); ++ return; ++ } ++ } ++ fp2 = xmalloc(add3(sizeof(*fp2), namelen, 1)); ++ close(fd); ++ fp2->ino = st.st_ino; ++ fp2->dev = st.st_dev; ++ fp2->cksum = cksum; ++ memcpy(fp2->name, name, namelen + 1); ++ ++ if (fp) { ++ fp2->next = fp->next; ++ fp->next = fp2; ++ } else { ++ fp2->next = hp->chain; ++ hp->chain = fp2; ++ } ++ return; ++ } ++} ++ ++int main(int argc, char **argv) ++{ ++ int ch; ++ int i; ++#ifdef HAVE_PCRE ++ int errornumber; ++ PCRE2_SIZE erroroffset; ++ pcre2_code *re = NULL; ++ PCRE2_SPTR exclude_pattern = NULL; ++ pcre2_match_data *match_data = NULL; ++#endif ++ struct hardlink_dynstr nam1 = { NULL, 0 }; ++ struct hardlink_ctl *ctl = &global_ctl; ++ ++ static const struct option longopts[] = { ++ { "content", no_argument, NULL, 'c' }, ++ { "dry-run", no_argument, NULL, 'n' }, ++ { "exclude", required_argument, NULL, 'x' }, ++ { "force", no_argument, NULL, 'f' }, ++ { "help", no_argument, NULL, 'h' }, ++ { "verbose", no_argument, NULL, 'v' }, ++ { "version", no_argument, NULL, 'V' }, ++ { NULL, 0, NULL, 0 }, ++ }; ++ ++ setlocale(LC_ALL, ""); ++ bindtextdomain(PACKAGE, LOCALEDIR); ++ textdomain(PACKAGE); ++ close_stdout_atexit(); ++ ++ while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) { ++ switch (ch) { ++ case 'n': ++ ctl->no_link = 1; ++ break; ++ case 'v': ++ ctl->verbose++; ++ break; ++ case 'c': ++ ctl->content_only = 1; ++ break; ++ case 'f': ++ ctl->force = 1; ++ break; ++ case 'x': ++#ifdef HAVE_PCRE ++ exclude_pattern = (PCRE2_SPTR) optarg; ++#else ++ errx(EXIT_FAILURE, ++ _("option --exclude not supported (built without pcre2)")); ++#endif ++ break; ++ case 'V': ++ print_version(EXIT_SUCCESS); ++ case 'h': ++ usage(); ++ default: ++ errtryhelp(EXIT_FAILURE); ++ } ++ } ++ ++ if (optind == argc) { ++ warnx(_("no directory specified")); ++ errtryhelp(EXIT_FAILURE); ++ } ++ ++#ifdef HAVE_PCRE ++ if (exclude_pattern) { ++ re = pcre2_compile(exclude_pattern, /* the pattern */ ++ PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminate */ ++ 0, /* default options */ ++ &errornumber, &erroroffset, NULL); /* use default compile context */ ++ if (!re) { ++ PCRE2_UCHAR buffer[256]; ++ pcre2_get_error_message(errornumber, buffer, ++ sizeof(buffer)); ++ errx(EXIT_FAILURE, _("pattern error at offset %d: %s"), ++ (int)erroroffset, buffer); ++ } ++ match_data = pcre2_match_data_create_from_pattern(re, NULL); ++ } ++#endif ++ atexit(print_summary); ++ ++ for (i = optind; i < argc; i++) ++ process_path(ctl, argv[i]); ++ ++ while (ctl->dirs) { ++ DIR *dh; ++ struct dirent *di; ++ struct hardlink_dir *dp = ctl->dirs; ++ size_t nam1baselen = strlen(dp->name); ++ ++ ctl->dirs = dp->next; ++ growstr(&nam1, add2(nam1baselen, 1)); ++ memcpy(nam1.buf, dp->name, nam1baselen); ++ free(dp); ++ nam1.buf[nam1baselen++] = '/'; ++ nam1.buf[nam1baselen] = 0; ++ dh = opendir(nam1.buf); ++ ++ if (dh == NULL) ++ continue; ++ ctl->ndirs++; ++ ++ while ((di = readdir(dh)) != NULL) { ++ if (!di->d_name[0]) ++ continue; ++ if (di->d_name[0] == '.') { ++ if (!di->d_name[1] || !strcmp(di->d_name, "..")) ++ continue; ++ } ++#ifdef HAVE_PCRE ++ if (re && pcre2_match(re, /* compiled regex */ ++ (PCRE2_SPTR) di->d_name, strlen(di->d_name), 0, /* start at offset 0 */ ++ 0, /* default options */ ++ match_data, /* block for storing the result */ ++ NULL) /* use default match context */ ++ >=0) { ++ if (ctl->verbose) { ++ nam1.buf[nam1baselen] = 0; ++ printf(_("Skipping %s%s\n"), nam1.buf, di->d_name); ++ } ++ continue; ++ } ++#endif ++ { ++ size_t subdirlen; ++ growstr(&nam1, ++ add2(nam1baselen, subdirlen = ++ strlen(di->d_name))); ++ memcpy(&nam1.buf[nam1baselen], di->d_name, ++ add2(subdirlen, 1)); ++ } ++ process_path(ctl, nam1.buf); ++ } ++ closedir(dh); ++ } ++ ++ return 0; ++} +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 @@ ++/* ++ * Copyright (C) 2010 Davidlohr Bueso ++ * ++ * This file may be redistributed under the terms of the ++ * GNU Lesser General Public License. ++ * ++ * General memory allocation wrappers for malloc, realloc, calloc and strdup ++ */ ++ ++#ifndef UTIL_LINUX_XALLOC_H ++#define UTIL_LINUX_XALLOC_H ++ ++#include ++#include ++ ++#include "c.h" ++ ++#ifndef XALLOC_EXIT_CODE ++# define XALLOC_EXIT_CODE EXIT_FAILURE ++#endif ++ ++static inline void __attribute__((__noreturn__)) ++__err_oom(const char *file, unsigned int line) ++{ ++ err(XALLOC_EXIT_CODE, "%s: %u: cannot allocate memory", file, line); ++} ++ ++#define err_oom() __err_oom(__FILE__, __LINE__) ++ ++static inline __ul_alloc_size(1) __ul_returns_nonnull ++void *xmalloc(const size_t size) ++{ ++ void *ret = malloc(size); ++ ++ if (!ret && size) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline __ul_alloc_size(2) __ul_returns_nonnull ++void *xrealloc(void *ptr, const size_t size) ++{ ++ void *ret = realloc(ptr, size); ++ ++ if (!ret && size) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline __ul_calloc_size(1, 2) __ul_returns_nonnull ++void *xcalloc(const size_t nelems, const size_t size) ++{ ++ void *ret = calloc(nelems, size); ++ ++ if (!ret && size && nelems) ++ err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size); ++ return ret; ++} ++ ++static inline char __attribute__((warn_unused_result)) __ul_returns_nonnull ++*xstrdup(const char *str) ++{ ++ char *ret; ++ ++ if (!str) ++ return NULL; ++ ++ ret = strdup(str); ++ ++ if (!ret) ++ err(XALLOC_EXIT_CODE, "cannot duplicate string"); ++ return ret; ++} ++ ++static inline char * __attribute__((warn_unused_result)) __ul_returns_nonnull ++xstrndup(const char *str, size_t size) ++{ ++ char *ret; ++ ++ if (!str) ++ return NULL; ++ ++ ret = strndup(str, size); ++ ++ if (!ret) ++ err(XALLOC_EXIT_CODE, "cannot duplicate string"); ++ return ret; ++} ++ ++ ++static inline int __attribute__ ((__format__(printf, 2, 3))) ++ xasprintf(char **strp, const char *fmt, ...) ++{ ++ int ret; ++ va_list args; ++ va_start(args, fmt); ++ ret = vasprintf(&(*strp), fmt, args); ++ va_end(args); ++ if (ret < 0) ++ err(XALLOC_EXIT_CODE, "cannot allocate string"); ++ return ret; ++} ++ ++static inline int __attribute__ ((__format__(printf, 2, 0))) ++xvasprintf(char **strp, const char *fmt, va_list ap) ++{ ++ int ret = vasprintf(&(*strp), fmt, ap); ++ if (ret < 0) ++ err(XALLOC_EXIT_CODE, "cannot allocate string"); ++ return ret; ++} ++ ++ ++static inline char * __attribute__((warn_unused_result)) xgethostname(void) ++{ ++ char *name; ++ size_t sz = get_hostname_max() + 1; ++ ++ name = xmalloc(sizeof(char) * sz); ++ ++ if (gethostname(name, sz) != 0) { ++ free(name); ++ return NULL; ++ } ++ name[sz - 1] = '\0'; ++ return name; ++} ++ ++#endif diff --git a/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch b/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch new file mode 100644 index 00000000..d6652981 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch @@ -0,0 +1,52 @@ +From 56ae260ac24ade94e2e0e77c81751312372d253f Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Sat, 7 Dec 2019 09:56:23 -0800 +Subject: [PATCH] localedef: Add hardlink resolver to build + +The sourcecode for this is imported from util-linux and is kept with +glibc sources + +Upstream-Status: Pending +Signed-off-by: Jason Wessel +Signed-off-by: Khem Raj +--- + Makefile.in | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 77fbded..a87e5b2 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -40,6 +40,8 @@ WARNFLAGS = -Wall -Wno-format + FULLCC = $(CC) $(CPPFLAGS) $(CFLAGS) \ + $(DEFINES) $(INCLUDES) $(WARNFLAGS) + ++CROSS_LOCALEDEF_HARDLINK_OBJS = cross-localedef-hardlink.o ++ + LOCALEDEF_OBJS = charmap.o charmap-dir.o ld-address.o ld-collate.o \ + ld-ctype.o ld-identification.o ld-measurement.o \ + ld-messages.o ld-monetary.o ld-name.o ld-numeric.o \ +@@ -54,11 +56,14 @@ LOCALEDEF_OBJS = charmap.o charmap-dir.o ld-address.o ld-collate.o \ + asprintf.o getdelim.o localedef_extra.o \ + obstack_printf.o vasprintf.o + +-all: localedef$(EXEEXT) ++all: localedef$(EXEEXT) cross-localedef-hardlink$(EXEEXT) + + localedef$(EXEEXT): $(LOCALEDEF_OBJS) + $(CC) -o $@ $(LOCALEDEF_OBJS) $(LIBS) + ++cross-localedef-hardlink$(EXEEXT): $(CROSS_LOCALEDEF_HARDLINK_OBJS) ++ $(CC) -o $@ $(CROSS_LOCALEDEF_HARDLINK_OBJS) $(LIBS) ++ + clean: + rm -f locale$(EXEEXT) $(LOCALEDEF_OBJS) + +@@ -77,6 +82,7 @@ clean: + %.o: $(srcdir)/%.c + $(FULLCC) -c -o $@ $< + ++cross-localedef-hardlink.o: glibc/locale/programs/cross-localedef-hardlink.c + charmap.o: glibc/locale/programs/charmap.c + charmap-dir.o: glibc/locale/programs/charmap-dir.c + ld-address.o: glibc/locale/programs/ld-address.c diff --git a/external/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/external/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch deleted file mode 100644 index 5df26a85..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch +++ /dev/null @@ -1,65 +0,0 @@ -From bd51b3add89a5cb2d8f44029a1027c780b2afff5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 01:48:24 +0000 -Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well - -Upstream-Status: Inappropriate [embedded specific] - -The default lib search path order is: - - 1) LD_LIBRARY_PATH - 2) RPATH from the binary - 3) ld.so.cache - 4) default search paths embedded in the linker - -For nativesdk binaries which are being used alongside binaries on a host system, we -need the search paths to firstly search the shipped nativesdk libs but then also -cover the host system. For example we want the host system's libGL and this may be -in a non-standard location like /usr/lib/mesa. The only place the location is know -about is in the ld.so.cache of the host system. - -Since nativesdk has a simple structure and doesn't need to use a cache itself, we -repurpose the cache for use as a last resort in finding host system binaries. This -means we need to switch the order of 3 and 4 above to make this work effectively. - -RP 14/10/2010 - -Signed-off-by: Khem Raj ---- - elf/dl-load.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/elf/dl-load.c b/elf/dl-load.c -index c51e4b3718..44bbb69dc4 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -2085,6 +2085,14 @@ _dl_map_object (struct link_map *loader, const char *name, - } - } - -+ /* try the default path. */ -+ if (fd == -1 -+ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL -+ || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) -+ && rtld_search_dirs.dirs != (void *) -1) -+ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, -+ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); -+ /* Finally try ld.so.cache */ - #ifdef USE_LDCONFIG - if (fd == -1 - && (__glibc_likely ((mode & __RTLD_SECURE) == 0) -@@ -2143,14 +2151,6 @@ _dl_map_object (struct link_map *loader, const char *name, - } - #endif - -- /* Finally, try the default path. */ -- if (fd == -1 -- && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL -- || __glibc_likely (!(l->l_flags_1 & DF_1_NODEFLIB))) -- && rtld_search_dirs.dirs != (void *) -1) -- fd = open_path (name, namelen, mode, &rtld_search_dirs, -- &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); -- - /* Add another newline when we are tracing the library loading. */ - if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) - _dl_debug_printf ("\n"); diff --git a/external/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch b/external/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch new file mode 100644 index 00000000..5222e37d --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch @@ -0,0 +1,238 @@ +From b52dba15527380cc18635e3696e0ef87efee9a84 Mon Sep 17 00:00:00 2001 +From: Jason Wessel +Date: Sat, 7 Dec 2019 10:01:37 -0800 +Subject: [PATCH] localedef: fix-ups hardlink to make it compile + +Upstream-Status: Pending +Signed-off-by: Jason Wessel +Signed-off-by: Khem Raj +--- + 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 @@ + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ ++ ++#undef HAVE_PCRE + #include + #include + #include +@@ -38,8 +40,8 @@ + + #include "c.h" + #include "xalloc.h" +-#include "nls.h" +-#include "closestream.h" ++//#include "nls.h" ++//#include "closestream.h" + + #define NHASH (1<<17) /* Must be a power of 2! */ + #define NBUF 64 +@@ -124,33 +126,33 @@ static void print_summary(void) + if (ctl->verbose > 1 && ctl->nlinks) + fputc('\n', stdout); + +- printf(_("Directories: %9lld\n"), ctl->ndirs); +- printf(_("Objects: %9lld\n"), ctl->nobjects); +- printf(_("Regular files: %9lld\n"), ctl->nregfiles); +- printf(_("Comparisons: %9lld\n"), ctl->ncomp); ++ printf(("Directories: %9lld\n"), ctl->ndirs); ++ printf(("Objects: %9lld\n"), ctl->nobjects); ++ printf(("Regular files: %9lld\n"), ctl->nregfiles); ++ printf(("Comparisons: %9lld\n"), ctl->ncomp); + printf( "%s%9lld\n", (ctl->no_link ? +- _("Would link: ") : +- _("Linked: ")), ctl->nlinks); ++ ("Would link: ") : ++ ("Linked: ")), ctl->nlinks); + printf( "%s %9lld\n", (ctl->no_link ? +- _("Would save: ") : +- _("Saved: ")), ctl->nsaved); ++ ("Would save: ") : ++ ("Saved: ")), ctl->nsaved); + } + + static void __attribute__((__noreturn__)) usage(void) + { + fputs(USAGE_HEADER, stdout); +- printf(_(" %s [options] directory...\n"), program_invocation_short_name); ++ printf((" %s [options] directory...\n"), program_invocation_short_name); + + fputs(USAGE_SEPARATOR, stdout); +- puts(_("Consolidate duplicate files using hardlinks.")); ++ puts(("Consolidate duplicate files using hardlinks.")); + + fputs(USAGE_OPTIONS, stdout); +- puts(_(" -c, --content compare only contents, ignore permission, etc.")); +- puts(_(" -n, --dry-run don't actually link anything")); +- puts(_(" -v, --verbose print summary after hardlinking")); +- puts(_(" -vv print every hardlinked file and summary")); +- puts(_(" -f, --force force hardlinking across filesystems")); +- puts(_(" -x, --exclude exclude files matching pattern")); ++ puts((" -c, --content compare only contents, ignore permission, etc.")); ++ puts((" -n, --dry-run don't actually link anything")); ++ puts((" -v, --verbose print summary after hardlinking")); ++ puts((" -vv print every hardlinked file and summary")); ++ puts((" -f, --force force hardlinking across filesystems")); ++ puts((" -x, --exclude exclude files matching pattern")); + + 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_t b) + size_t sum = a + b; + + if (sum < a) +- errx(EXIT_FAILURE, _("integer overflow")); ++ errx(EXIT_FAILURE, ("integer overflow")); + return sum; + } + +@@ -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, +- _("%s is on different filesystem than the rest " ++ ("%s is on different filesystem than the rest " + "(use -f option to override)."), name); + ctl->dev = st.st_dev; + } +@@ -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) +- warn(_("cannot read %s"), name); ++ warn(("cannot read %s"), name); + else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize) +- warn(_("cannot read %s"), fp2->name); ++ warn(("cannot read %s"), fp2->name); + + if (xsz != rsize) { + close(fd); +@@ -303,13 +305,13 @@ static void process_path(struct hardlink_ctl *ctl, const char *name) + if (fsize > 0) + continue; + if (lstat(name, &st3)) { +- warn(_("cannot stat %s"), name); ++ warn(("cannot stat %s"), name); + close(fd); + return; + } + st3.st_atime = st.st_atime; + if (stcmp(&st, &st3, 0)) { +- warnx(_("file %s changed underneath us"), name); ++ warnx(("file %s changed underneath us"), name); + close(fd); + return; + } +@@ -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)) { +- warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"), ++ warn(("failed to hardlink %s to %s (create temporary link as %s failed)"), + n1, n2, nam2.buf); + free(nam2.buf); + continue; + } + /* Then rename into place over the existing n2 */ + if (rename(nam2.buf, n2)) { +- warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"), ++ warn(("failed to hardlink %s to %s (rename temporary link to %s failed)"), + n1, n2, n2); + /* Something went wrong, try to remove the now redundant temporary link */ + if (unlink(nam2.buf)) +- warn(_("failed to remove temporary link %s"), nam2.buf); ++ warn(("failed to remove temporary link %s"), nam2.buf); + free(nam2.buf); + continue; + } +@@ -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) +- printf(_(" %s %s to %s\n"), +- (ctl->no_link ? _("Would link") : _("Linked")), ++ printf((" %s %s to %s\n"), ++ (ctl->no_link ? ("Would link") : ("Linked")), + n1, n2); + } else { + ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096; + if (ctl->verbose > 1) +- printf(_(" %s %s to %s, %s %jd\n"), +- (ctl->no_link ? _("Would link") : _("Linked")), ++ printf((" %s %s to %s, %s %jd\n"), ++ (ctl->no_link ? ("Would link") : ("Linked")), + n1, n2, +- (ctl->no_link ? _("would save") : _("saved")), ++ (ctl->no_link ? ("would save") : ("saved")), + (intmax_t)st.st_size); + } + close(fd); +@@ -410,11 +412,6 @@ int main(int argc, char **argv) + { NULL, 0, NULL, 0 }, + }; + +- setlocale(LC_ALL, ""); +- bindtextdomain(PACKAGE, LOCALEDIR); +- textdomain(PACKAGE); +- close_stdout_atexit(); +- + while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) { + switch (ch) { + case 'n': +@@ -434,7 +431,7 @@ int main(int argc, char **argv) + exclude_pattern = (PCRE2_SPTR) optarg; + #else + errx(EXIT_FAILURE, +- _("option --exclude not supported (built without pcre2)")); ++ ("option --exclude not supported (built without pcre2)")); + #endif + break; + case 'V': +@@ -447,7 +444,7 @@ int main(int argc, char **argv) + } + + if (optind == argc) { +- warnx(_("no directory specified")); ++ warnx(("no directory specified")); + errtryhelp(EXIT_FAILURE); + } + +@@ -461,7 +458,7 @@ int main(int argc, char **argv) + PCRE2_UCHAR buffer[256]; + pcre2_get_error_message(errornumber, buffer, + sizeof(buffer)); +- errx(EXIT_FAILURE, _("pattern error at offset %d: %s"), ++ errx(EXIT_FAILURE, ("pattern error at offset %d: %s"), + (int)erroroffset, buffer); + } + match_data = pcre2_match_data_create_from_pattern(re, NULL); +@@ -506,7 +503,7 @@ int main(int argc, char **argv) + >=0) { + if (ctl->verbose) { + nam1.buf[nam1baselen] = 0; +- printf(_("Skipping %s%s\n"), nam1.buf, di->d_name); ++ printf(("Skipping %s%s\n"), nam1.buf, di->d_name); + } + continue; + } diff --git a/external/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/external/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch deleted file mode 100644 index daadec76..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fdc8a33ac2c81a0237b8a6d8b1aac7f1cdbb46af Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 01:50:00 +0000 -Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK - -When ld-linux-*.so.2 is relocated to a path that is longer than the -original fixed location, the dynamic loader will crash in open_path -because it implicitly assumes that max_dirnamelen is a fixed size that -never changes. - -The allocated buffer will not be large enough to contain the directory -path string which is larger than the fixed location provided at build -time. - -Upstream-Status: Inappropriate [OE SDK specific] - -Signed-off-by: Jason Wessel -Signed-off-by: Khem Raj ---- - elf/dl-load.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/elf/dl-load.c b/elf/dl-load.c -index 44bbb69dc4..74e2e5e962 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -1785,7 +1785,19 @@ open_path (const char *name, size_t namelen, int mode, - given on the command line when rtld is run directly. */ - return -1; - -+ do -+ { -+ struct r_search_path_elem *this_dir = *dirs; -+ if (this_dir->dirnamelen > max_dirnamelen) -+ { -+ max_dirnamelen = this_dir->dirnamelen; -+ } -+ } -+ while (*++dirs != NULL); -+ - buf = alloca (max_dirnamelen + max_capstrlen + namelen); -+ -+ dirs = sps->dirs; - do - { - struct r_search_path_elem *this_dir = *dirs; diff --git a/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch new file mode 100644 index 00000000..4cdc8354 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch @@ -0,0 +1,65 @@ +From 6987ad183770cb56680ccc4f6ea065a04f31ccb6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 01:48:24 +0000 +Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well + +Upstream-Status: Inappropriate [embedded specific] + +The default lib search path order is: + + 1) LD_LIBRARY_PATH + 2) RPATH from the binary + 3) ld.so.cache + 4) default search paths embedded in the linker + +For nativesdk binaries which are being used alongside binaries on a host system, we +need the search paths to firstly search the shipped nativesdk libs but then also +cover the host system. For example we want the host system's libGL and this may be +in a non-standard location like /usr/lib/mesa. The only place the location is know +about is in the ld.so.cache of the host system. + +Since nativesdk has a simple structure and doesn't need to use a cache itself, we +repurpose the cache for use as a last resort in finding host system binaries. This +means we need to switch the order of 3 and 4 above to make this work effectively. + +RP 14/10/2010 + +Signed-off-by: Khem Raj +--- + elf/dl-load.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index a6b80f9395..3226f2e531 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -2073,6 +2073,14 @@ _dl_map_object (struct link_map *loader, const char *name, + } + } + ++ /* try the default path. */ ++ if (fd == -1 ++ && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL ++ || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) ++ && rtld_search_dirs.dirs != (void *) -1) ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, ++ &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); ++ /* Finally try ld.so.cache */ + #ifdef USE_LDCONFIG + if (fd == -1 + && (__glibc_likely ((mode & __RTLD_SECURE) == 0) +@@ -2131,14 +2139,6 @@ _dl_map_object (struct link_map *loader, const char *name, + } + #endif + +- /* Finally, try the default path. */ +- if (fd == -1 +- && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL +- || __glibc_likely (!(l->l_flags_1 & DF_1_NODEFLIB))) +- && rtld_search_dirs.dirs != (void *) -1) +- fd = open_path (name, namelen, mode, &rtld_search_dirs, +- &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); +- + /* Add another newline when we are tracing the library loading. */ + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) + _dl_debug_printf ("\n"); diff --git a/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch deleted file mode 100644 index e0825403..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch +++ /dev/null @@ -1,136 +0,0 @@ -From 055dd46b793168fb08e44913153010b088011ba2 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 01:51:38 +0000 -Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths - -This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings -and lengths as well as ld.so.cache path in the dynamic loader to specific -sections in memory. The sections that contain paths have been allocated a 4096 -byte section, which is the maximum path length in linux. This will allow the -relocating script to parse the ELF binary, detect the section and easily replace -the strings in a certain path. - -Upstream-Status: Inappropriate [SDK specific] - -Signed-off-by: Laurentiu Palcu -Signed-off-by: Khem Raj ---- - elf/dl-cache.c | 4 ++++ - elf/dl-load.c | 4 ++-- - elf/interp.c | 2 +- - elf/ldconfig.c | 3 +++ - elf/rtld.c | 5 +++-- - iconv/gconv_conf.c | 2 +- - sysdeps/generic/dl-cache.h | 4 ---- - 7 files changed, 14 insertions(+), 10 deletions(-) - -diff --git a/elf/dl-cache.c b/elf/dl-cache.c -index 6ee5153ff9..37a5f701fa 100644 ---- a/elf/dl-cache.c -+++ b/elf/dl-cache.c -@@ -133,6 +133,10 @@ do \ - while (0) - - -+const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) = -+ SYSCONFDIR "/ld.so.cache"; -+ -+ - int - _dl_cache_libcmp (const char *p1, const char *p2) - { -diff --git a/elf/dl-load.c b/elf/dl-load.c -index 74e2e5e962..8f19186e1c 100644 ---- a/elf/dl-load.c -+++ b/elf/dl-load.c -@@ -110,8 +110,8 @@ static size_t max_capstrlen attribute_relro; - gen-trusted-dirs.awk. */ - #include "trusted-dirs.h" - --static const char system_dirs[] = SYSTEM_DIRS; --static const size_t system_dirs_len[] = -+static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS; -+volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) = - { - SYSTEM_DIRS_LEN - }; -diff --git a/elf/interp.c b/elf/interp.c -index 9cd50c7291..fc2f39d73c 100644 ---- a/elf/interp.c -+++ b/elf/interp.c -@@ -18,5 +18,5 @@ - - #include - --const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) -+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) - = RUNTIME_LINKER; -diff --git a/elf/ldconfig.c b/elf/ldconfig.c -index fbdd814edf..9f4d8d69b1 100644 ---- a/elf/ldconfig.c -+++ b/elf/ldconfig.c -@@ -168,6 +168,9 @@ static struct argp argp = - options, parse_opt, NULL, doc, NULL, more_help, NULL - }; - -+ -+extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); -+ - /* Check if string corresponds to an important hardware capability or - a platform. */ - static int -diff --git a/elf/rtld.c b/elf/rtld.c -index 1b0c74739f..a70a62d31e 100644 ---- a/elf/rtld.c -+++ b/elf/rtld.c -@@ -130,6 +130,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. */ -@@ -1001,12 +1002,12 @@ 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\ -- --inhibit-cache Do not use " LD_SO_CACHE "\n\ -+ --inhibit-cache Do not use %s\n\ - --library-path PATH use given PATH instead of content of the environment\n\ - variable LD_LIBRARY_PATH\n\ - --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ - in LIST\n\ -- --audit LIST use objects named in LIST as auditors\n"); -+ --audit LIST use objects named in LIST as auditors\n", LD_SO_CACHE); - - ++_dl_skip_args; - --_dl_argc; -diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c -index f173cde71b..5c3205026f 100644 ---- a/iconv/gconv_conf.c -+++ b/iconv/gconv_conf.c -@@ -36,7 +36,7 @@ - - - /* This is the default path where we look for module lists. */ --static const char default_gconv_path[] = GCONV_PATH; -+static char default_gconv_path[4096] __attribute__ ((section (".gccrelocprefix"))) = GCONV_PATH; - - /* The path elements, as determined by the __gconv_get_path function. - All path elements end in a slash. */ -diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h -index cf43f1cf3b..7f07adde53 100644 ---- a/sysdeps/generic/dl-cache.h -+++ b/sysdeps/generic/dl-cache.h -@@ -27,10 +27,6 @@ - ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID) - #endif - --#ifndef LD_SO_CACHE --# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" --#endif -- - #ifndef add_system_dir - # define add_system_dir(dir) add_dir (dir) - #endif diff --git a/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch deleted file mode 100644 index 1ae2e33b..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a237553ccd15276462be2023057a017fa8ee5d7c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 31 Dec 2015 14:35:35 -0800 -Subject: [PATCH] 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. -It also makes the synchronization more efficient. - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Juro Bystricky -Signed-off-by: Richard Purdie -Signed-off-by: Khem Raj ---- - sysdeps/i386/atomic-machine.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/i386/atomic-machine.h b/sysdeps/i386/atomic-machine.h -index 272da5dd8f..409c759f14 100644 ---- a/sysdeps/i386/atomic-machine.h -+++ b/sysdeps/i386/atomic-machine.h -@@ -54,7 +54,7 @@ typedef uintmax_t uatomic_max_t; - # endif - #endif - --#define __HAVE_64B_ATOMICS 0 -+#define __HAVE_64B_ATOMICS 1 - #define USE_ATOMIC_COMPILER_BUILTINS 0 - #define ATOMIC_EXCHANGE_USES_CAS 0 - diff --git a/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch new file mode 100644 index 00000000..62e12897 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch @@ -0,0 +1,46 @@ +From 7806340c2accc2c51e7e861b618c29fb5609a007 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 01:50:00 +0000 +Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK + +When ld-linux-*.so.2 is relocated to a path that is longer than the +original fixed location, the dynamic loader will crash in open_path +because it implicitly assumes that max_dirnamelen is a fixed size that +never changes. + +The allocated buffer will not be large enough to contain the directory +path string which is larger than the fixed location provided at build +time. + +Upstream-Status: Inappropriate [OE SDK specific] + +Signed-off-by: Jason Wessel +Signed-off-by: Khem Raj +--- + elf/dl-load.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 3226f2e531..7cb8a86fab 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -1773,7 +1773,19 @@ open_path (const char *name, size_t namelen, int mode, + given on the command line when rtld is run directly. */ + return -1; + ++ do ++ { ++ struct r_search_path_elem *this_dir = *dirs; ++ if (this_dir->dirnamelen > max_dirnamelen) ++ { ++ max_dirnamelen = this_dir->dirnamelen; ++ } ++ } ++ while (*++dirs != NULL); ++ + buf = alloca (max_dirnamelen + max_capstrlen + namelen); ++ ++ dirs = sps->dirs; + do + { + struct r_search_path_elem *this_dir = *dirs; diff --git a/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch deleted file mode 100644 index b53f2ef2..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Make-relocatable-install-for-locales.patch +++ /dev/null @@ -1,67 +0,0 @@ -From e1dc85af1800afa4fbf4eb5a59cc41025495af57 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:55:12 -0700 -Subject: [PATCH] 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 -magic segment that we can relocate at install time. - -Upstream-Status: Inappropriate (OE-specific) - -Signed-off-by: Ross Burton -Signed-off-by: Khem Raj ---- - locale/findlocale.c | 4 ++-- - locale/loadarchive.c | 2 +- - locale/localeinfo.h | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/locale/findlocale.c b/locale/findlocale.c -index 872cadb5b9..dd651e07f5 100644 ---- a/locale/findlocale.c -+++ b/locale/findlocale.c -@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attribute_hidden = - which are somehow addressed. */ - struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; - --const char _nl_default_locale_path[] attribute_hidden = COMPLOCALEDIR; -+char _nl_default_locale_path[4096] attribute_hidden __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR; - - /* 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, - - /* Nothing in the archive. Set the default path to search below. */ - locale_path = _nl_default_locale_path; -- locale_path_len = sizeof _nl_default_locale_path; -+ locale_path_len = strlen(locale_path) + 1; - } - 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 516d30d8d1..9bfbe1a5dd 100644 ---- a/locale/loadarchive.c -+++ b/locale/loadarchive.c -@@ -42,7 +42,7 @@ - - - /* Name of the locale archive file. */ --static const char archfname[] = COMPLOCALEDIR "/locale-archive"; -+static const char archfname[4096] __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR "/locale-archive"; - - /* 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 68822a6319..537bc35149 100644 ---- a/locale/localeinfo.h -+++ b/locale/localeinfo.h -@@ -325,7 +325,7 @@ _nl_lookup_word (locale_t l, int category, int item) - } - - /* Default search path if no LOCPATH environment variable. */ --extern const char _nl_default_locale_path[] attribute_hidden; -+extern char _nl_default_locale_path[4096] attribute_hidden; - - /* 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/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch new file mode 100644 index 00000000..294c2b97 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch @@ -0,0 +1,137 @@ +From 1b97befbe693eb93a77b6098f6ae1394a53462f4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 01:51:38 +0000 +Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths + +This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings +and lengths as well as ld.so.cache path in the dynamic loader to specific +sections in memory. The sections that contain paths have been allocated a 4096 +byte section, which is the maximum path length in linux. This will allow the +relocating script to parse the ELF binary, detect the section and easily replace +the strings in a certain path. + +Upstream-Status: Inappropriate [SDK specific] + +Signed-off-by: Laurentiu Palcu +Signed-off-by: Khem Raj +--- + elf/dl-cache.c | 4 ++++ + elf/dl-load.c | 4 ++-- + elf/interp.c | 2 +- + elf/ldconfig.c | 3 +++ + elf/rtld.c | 5 +++-- + iconv/gconv_conf.c | 2 +- + sysdeps/generic/dl-cache.h | 4 ---- + 7 files changed, 14 insertions(+), 10 deletions(-) + +diff --git a/elf/dl-cache.c b/elf/dl-cache.c +index 3eedd9afcf..efdfe5cae7 100644 +--- a/elf/dl-cache.c ++++ b/elf/dl-cache.c +@@ -133,6 +133,10 @@ do \ + while (0) + + ++const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))) = ++ SYSCONFDIR "/ld.so.cache"; ++ ++ + int + _dl_cache_libcmp (const char *p1, const char *p2) + { +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 7cb8a86fab..e32d4aa936 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -110,8 +110,8 @@ static size_t max_capstrlen attribute_relro; + gen-trusted-dirs.awk. */ + #include "trusted-dirs.h" + +-static const char system_dirs[] = SYSTEM_DIRS; +-static const size_t system_dirs_len[] = ++static const char system_dirs[4096] __attribute__ ((section (".sysdirs"))) = SYSTEM_DIRS; ++volatile static const size_t system_dirs_len[] __attribute__ ((section (".sysdirslen"))) = + { + SYSTEM_DIRS_LEN + }; +diff --git a/elf/interp.c b/elf/interp.c +index 331cc1df48..885b2d9476 100644 +--- a/elf/interp.c ++++ b/elf/interp.c +@@ -18,5 +18,5 @@ + + #include + +-const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) ++const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) + = RUNTIME_LINKER; +diff --git a/elf/ldconfig.c b/elf/ldconfig.c +index 681ed78496..8833ed0a6b 100644 +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -168,6 +168,9 @@ static struct argp argp = + options, parse_opt, NULL, doc, NULL, more_help, NULL + }; + ++ ++extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); ++ + /* Check if string corresponds to an important hardware capability or + a platform. */ + static int +diff --git a/elf/rtld.c b/elf/rtld.c +index 553cfbd1b7..39347c2c03 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -175,6 +175,7 @@ dso_name_valid_for_suid (const char *p) + } + return *p != '\0'; + } ++extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); + + /* LD_AUDIT variable contents. Must be processed before the + audit_list below. */ +@@ -1222,13 +1223,13 @@ of this helper program; chances are you did not intend to run this program.\n\ + --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\ +- --inhibit-cache Do not use " LD_SO_CACHE "\n\ ++ --inhibit-cache Do not use %s\n\ + --library-path PATH use given PATH instead of content of the environment\n\ + variable LD_LIBRARY_PATH\n\ + --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names\n\ + in LIST\n\ + --audit LIST use objects named in LIST as auditors\n\ +- --preload LIST preload objects named in LIST\n"); ++ --preload LIST preload objects named in LIST\n", LD_SO_CACHE); + + ++_dl_skip_args; + --_dl_argc; +diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c +index 735bd1f2d5..25100ba666 100644 +--- a/iconv/gconv_conf.c ++++ b/iconv/gconv_conf.c +@@ -36,7 +36,7 @@ + + + /* This is the default path where we look for module lists. */ +-static const char default_gconv_path[] = GCONV_PATH; ++static char default_gconv_path[4096] __attribute__ ((section (".gccrelocprefix"))) = GCONV_PATH; + + /* Type to represent search path. */ + struct path_elem +diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h +index 6b310e9e15..3877311df4 100644 +--- a/sysdeps/generic/dl-cache.h ++++ b/sysdeps/generic/dl-cache.h +@@ -27,10 +27,6 @@ + ((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID) + #endif + +-#ifndef LD_SO_CACHE +-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache" +-#endif +- + #ifndef add_system_dir + # define add_system_dir(dir) add_dir (dir) + #endif diff --git a/external/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/external/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch deleted file mode 100644 index 971700a6..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0006-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch +++ /dev/null @@ -1,1581 +0,0 @@ -From d23c577b0b70b34335971abaf3f50e617dda615e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:01:50 +0000 -Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation - -Upstream-Status: Pending -Signed-off-by: Edmar Wienskoski -Signed-off-by: Khem Raj ---- - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 134 ++++++++++++++++++ - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 101 +++++++++++++ - sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 134 ++++++++++++++++++ - .../powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 101 +++++++++++++ - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 134 ++++++++++++++++++ - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 101 +++++++++++++ - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 134 ++++++++++++++++++ - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 101 +++++++++++++ - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 134 ++++++++++++++++++ - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 101 +++++++++++++ - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 134 ++++++++++++++++++ - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 101 +++++++++++++ - .../linux/powerpc/powerpc32/603e/fpu/Implies | 1 + - .../powerpc/powerpc32/e300c3/fpu/Implies | 2 + - .../powerpc/powerpc32/e500mc/fpu/Implies | 1 + - .../linux/powerpc/powerpc32/e5500/fpu/Implies | 1 + - .../linux/powerpc/powerpc32/e6500/fpu/Implies | 1 + - .../linux/powerpc/powerpc64/e5500/fpu/Implies | 1 + - .../linux/powerpc/powerpc64/e6500/fpu/Implies | 1 + - 19 files changed, 1418 insertions(+) - create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c - create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c - create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c - create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c - create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c - create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c - create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies - create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies - -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -new file mode 100644 -index 0000000000..71e516d1c8 ---- /dev/null -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -@@ -0,0 +1,134 @@ -+/* Double-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float two108 = 3.245185536584267269e+32; -+static const float twom54 = 5.551115123125782702e-17; -+static const float half = 0.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the actual square root and half of its reciprocal -+ simultaneously. */ -+ -+#ifdef __STDC__ -+double -+__ieee754_sqrt (double b) -+#else -+double -+__ieee754_sqrt (b) -+ double b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+ double y, g, h, d, r; -+ ieee_double_shape_type u; -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ u.value = b; -+ -+ relax_fenv_state (); -+ -+ __asm__ ("frsqrte %[estimate], %[x]\n" -+ : [estimate] "=f" (y) : [x] "f" (b)); -+ -+ /* Following Muller et al, page 168, equation 5.20. -+ -+ h goes to 1/(2*sqrt(b)) -+ g goes to sqrt(b). -+ -+ We need three iterations to get within 1ulp. */ -+ -+ /* Indicate that these can be performed prior to the branch. GCC -+ insists on sinking them below the branch, however; it seems like -+ they'd be better before the branch so that we can cover any latency -+ from storing the argument and loading its high word. Oh well. */ -+ -+ g = b * y; -+ h = 0.5 * y; -+ -+ /* Handle small numbers by scaling. */ -+ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -+ return __ieee754_sqrt (b * two108) * twom54; -+ -+#define FMADD(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ r = FNMSUB (g, h, half); -+ g = FMADD (g, r, g); -+ h = FMADD (h, r, h); -+ -+ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ -+ -+ /* Final refinement. */ -+ d = FNMSUB (g, g, b); -+ -+ fesetenv_register (fe); -+ return FMADD (d, h, g); -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_wash (b); -+} -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -new file mode 100644 -index 0000000000..26fa067abf ---- /dev/null -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -@@ -0,0 +1,101 @@ -+/* Single-precision floating point square root. -+ Copyright (C) 2010 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; -+static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; -+static const float threehalf = 1.5; -+ -+/* The method is based on the descriptions in: -+ -+ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; -+ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 -+ -+ We find the reciprocal square root and use that to compute the actual -+ square root. */ -+ -+#ifdef __STDC__ -+float -+__ieee754_sqrtf (float b) -+#else -+float -+__ieee754_sqrtf (b) -+ float b; -+#endif -+{ -+ if (__builtin_expect (b > 0, 1)) -+ { -+#define FMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+#define FNMSUB(a_, c_, b_) \ -+ ({ double __r; \ -+ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ -+ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ -+ __r;}) -+ -+ if (__builtin_expect (b != a_inf.value, 1)) -+ { -+ double y, x; -+ fenv_t fe; -+ -+ fe = fegetenv_register (); -+ -+ relax_fenv_state (); -+ -+ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ -+ y = FMSUB (threehalf, b, b); -+ -+ /* Initial estimate. */ -+ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); -+ -+ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ x = x * FNMSUB (y, x * x, threehalf); -+ -+ /* All done. */ -+ fesetenv_register (fe); -+ return x * b; -+ } -+ } -+ else if (b < 0) -+ { -+ /* For some reason, some PowerPC32 processors don't implement -+ FE_INVALID_SQRT. */ -+#ifdef FE_INVALID_SQRT -+ feraiseexcept (FE_INVALID_SQRT); -+ -+ fenv_union_t u = { .fenv = fegetenv_register () }; -+ if ((u.l & FE_INVALID) == 0) -+#endif -+ feraiseexcept (FE_INVALID); -+ b = a_nan.value; -+ } -+ return f_washf (b); -+} -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies -new file mode 100644 -index 0000000000..b103b4dea5 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc32/603e/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies -new file mode 100644 -index 0000000000..64db17fada ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies -@@ -0,0 +1,2 @@ -+# e300c3 is a variant of 603e so use the same optimizations for sqrt -+powerpc/powerpc32/603e/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies -new file mode 100644 -index 0000000000..7eac5fcf02 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc32/e500mc/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies -new file mode 100644 -index 0000000000..264b2a7700 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc32/e5500/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies -new file mode 100644 -index 0000000000..a25934467b ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc32/e6500/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies -new file mode 100644 -index 0000000000..a7bc854be8 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc64/e5500/fpu -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies -new file mode 100644 -index 0000000000..04ff8cc181 ---- /dev/null -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies -@@ -0,0 +1 @@ -+powerpc/powerpc64/e6500/fpu diff --git a/external/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/external/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch new file mode 100644 index 00000000..db8b6c0f --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch @@ -0,0 +1,39 @@ +From a752857cc342ee5136c9a593037b6ee6ff8af8ee Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Dec 2015 14:35:35 -0800 +Subject: [PATCH] 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. +It also makes the synchronization more efficient. + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Juro Bystricky +Signed-off-by: Richard Purdie +Signed-off-by: Khem Raj +--- + sysdeps/x86/atomic-machine.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h +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; + #endif + + #define USE_ATOMIC_COMPILER_BUILTINS 1 ++# define __HAVE_64B_ATOMICS 1 + + #ifdef __x86_64__ +-# define __HAVE_64B_ATOMICS 1 + # define SP_REG "rsp" + # define SEG_REG "fs" + # define BR_CONSTRAINT "q" + # define IBR_CONSTRAINT "iq" + #else +-# define __HAVE_64B_ATOMICS 0 + # define SP_REG "esp" + # define SEG_REG "gs" + # define BR_CONSTRAINT "r" diff --git a/external/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/external/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch new file mode 100644 index 00000000..27cd17cd --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch @@ -0,0 +1,99 @@ +From 3df91d1d8b9c7a01b3ef8133c4f9b9764227d583 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:55:12 -0700 +Subject: [PATCH] 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 +magic segment that we can relocate at install time. + +Upstream-Status: Inappropriate (OE-specific) + +Signed-off-by: Ross Burton +Signed-off-by: Khem Raj +--- + locale/findlocale.c | 4 ++-- + locale/loadarchive.c | 2 +- + locale/localeinfo.h | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +Index: git/locale/findlocale.c +=================================================================== +--- git.orig/locale/findlocale.c ++++ git/locale/findlocale.c +@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attr + which are somehow addressed. */ + struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST]; + +-const char _nl_default_locale_path[] attribute_hidden = COMPLOCALEDIR; ++char _nl_default_locale_path[4096] attribute_hidden __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR; + + /* Checks if the name is actually present, that is, not NULL and not + empty. */ +@@ -166,7 +166,7 @@ _nl_find_locale (const char *locale_path + + /* Nothing in the archive. Set the default path to search below. */ + locale_path = _nl_default_locale_path; +- locale_path_len = sizeof _nl_default_locale_path; ++ locale_path_len = strlen(locale_path) + 1; + } + else + /* We really have to load some data. First see whether the name is +Index: git/locale/loadarchive.c +=================================================================== +--- git.orig/locale/loadarchive.c ++++ git/locale/loadarchive.c +@@ -42,7 +42,7 @@ + + + /* Name of the locale archive file. */ +-static const char archfname[] = COMPLOCALEDIR "/locale-archive"; ++static const char archfname[4096] __attribute__ ((section (".gccrelocprefix"))) = COMPLOCALEDIR "/locale-archive"; + + /* Size of initial mapping window, optimal if large enough to + cover the header plus the initial locale. */ +Index: git/locale/localeinfo.h +=================================================================== +--- git.orig/locale/localeinfo.h ++++ git/locale/localeinfo.h +@@ -331,7 +331,7 @@ _nl_lookup_word (locale_t l, int categor + } + + /* Default search path if no LOCPATH environment variable. */ +-extern const char _nl_default_locale_path[] attribute_hidden; ++extern char _nl_default_locale_path[4096] attribute_hidden; + + /* Load the locale data for CATEGORY from the file specified by *NAME. + If *NAME is "", use environment variables as specified by POSIX, and +Index: git/locale/programs/locale.c +=================================================================== +--- git.orig/locale/programs/locale.c ++++ git/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, + 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, + 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); + diff --git a/external/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/external/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch deleted file mode 100644 index 48713468..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0007-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d65f6ee214d7d91445fceabc6a5d6bf55b0e8d4b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:11:22 +0000 -Subject: [PATCH] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known names - -This bolts in a hook for OE to pass its own version of interpreter -names into glibc especially for multilib case, where it differs from any -other distros - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Lianhao Lu -Signed-off-by: Khem Raj ---- - elf/readlib.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/elf/readlib.c b/elf/readlib.c -index 573c01476c..d8c7412287 100644 ---- a/elf/readlib.c -+++ b/elf/readlib.c -@@ -51,6 +51,7 @@ static struct known_names interpreters[] = - #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES - SYSDEP_KNOWN_INTERPRETER_NAMES - #endif -+ OECORE_KNOWN_INTERPRETER_NAMES - }; - - static struct known_names known_libs[] = diff --git a/external/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/external/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch new file mode 100644 index 00000000..3dac3253 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch @@ -0,0 +1,1581 @@ +From 61b6c9737897c5828ef4b40699ee0a74c570034a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:01:50 +0000 +Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation + +Upstream-Status: Pending +Signed-off-by: Edmar Wienskoski +Signed-off-by: Khem Raj +--- + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 134 ++++++++++++++++++ + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 101 +++++++++++++ + sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 134 ++++++++++++++++++ + .../powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 101 +++++++++++++ + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 134 ++++++++++++++++++ + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 101 +++++++++++++ + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 134 ++++++++++++++++++ + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 101 +++++++++++++ + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 134 ++++++++++++++++++ + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 101 +++++++++++++ + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 134 ++++++++++++++++++ + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 101 +++++++++++++ + .../linux/powerpc/powerpc32/603e/fpu/Implies | 1 + + .../powerpc/powerpc32/e300c3/fpu/Implies | 2 + + .../powerpc/powerpc32/e500mc/fpu/Implies | 1 + + .../linux/powerpc/powerpc32/e5500/fpu/Implies | 1 + + .../linux/powerpc/powerpc32/e6500/fpu/Implies | 1 + + .../linux/powerpc/powerpc64/e5500/fpu/Implies | 1 + + .../linux/powerpc/powerpc64/e6500/fpu/Implies | 1 + + 19 files changed, 1418 insertions(+) + create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c + create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c + create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c + create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c + create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c + create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c + create mode 100644 sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies + create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies + +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +new file mode 100644 +index 0000000000..71e516d1c8 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +@@ -0,0 +1,134 @@ ++/* Double-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float two108 = 3.245185536584267269e+32; ++static const float twom54 = 5.551115123125782702e-17; ++static const float half = 0.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the actual square root and half of its reciprocal ++ simultaneously. */ ++ ++#ifdef __STDC__ ++double ++__ieee754_sqrt (double b) ++#else ++double ++__ieee754_sqrt (b) ++ double b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++ double y, g, h, d, r; ++ ieee_double_shape_type u; ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ u.value = b; ++ ++ relax_fenv_state (); ++ ++ __asm__ ("frsqrte %[estimate], %[x]\n" ++ : [estimate] "=f" (y) : [x] "f" (b)); ++ ++ /* Following Muller et al, page 168, equation 5.20. ++ ++ h goes to 1/(2*sqrt(b)) ++ g goes to sqrt(b). ++ ++ We need three iterations to get within 1ulp. */ ++ ++ /* Indicate that these can be performed prior to the branch. GCC ++ insists on sinking them below the branch, however; it seems like ++ they'd be better before the branch so that we can cover any latency ++ from storing the argument and loading its high word. Oh well. */ ++ ++ g = b * y; ++ h = 0.5 * y; ++ ++ /* Handle small numbers by scaling. */ ++ if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) ++ return __ieee754_sqrt (b * two108) * twom54; ++ ++#define FMADD(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmadd %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ r = FNMSUB (g, h, half); ++ g = FMADD (g, r, g); ++ h = FMADD (h, r, h); ++ ++ /* g is now +/- 1ulp, or exactly equal to, the square root of b. */ ++ ++ /* Final refinement. */ ++ d = FNMSUB (g, g, b); ++ ++ fesetenv_register (fe); ++ return FMADD (d, h, g); ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_wash (b); ++} +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +new file mode 100644 +index 0000000000..26fa067abf +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +@@ -0,0 +1,101 @@ ++/* Single-precision floating point square root. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; ++static const ieee_float_shape_type a_inf = {.word = 0x7f800000 }; ++static const float threehalf = 1.5; ++ ++/* The method is based on the descriptions in: ++ ++ _The Handbook of Floating-Pointer Arithmetic_ by Muller et al., chapter 5; ++ _IA-64 and Elementary Functions: Speed and Precision_ by Markstein, chapter 9 ++ ++ We find the reciprocal square root and use that to compute the actual ++ square root. */ ++ ++#ifdef __STDC__ ++float ++__ieee754_sqrtf (float b) ++#else ++float ++__ieee754_sqrtf (b) ++ float b; ++#endif ++{ ++ if (__builtin_expect (b > 0, 1)) ++ { ++#define FMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++#define FNMSUB(a_, c_, b_) \ ++ ({ double __r; \ ++ __asm__ ("fnmsub %[r], %[a], %[c], %[b]\n" \ ++ : [r] "=f" (__r) : [a] "f" (a_), [c] "f" (c_), [b] "f" (b_)); \ ++ __r;}) ++ ++ if (__builtin_expect (b != a_inf.value, 1)) ++ { ++ double y, x; ++ fenv_t fe; ++ ++ fe = fegetenv_register (); ++ ++ relax_fenv_state (); ++ ++ /* Compute y = 1.5 * b - b. Uses fewer constants than y = 0.5 * b. */ ++ y = FMSUB (threehalf, b, b); ++ ++ /* Initial estimate. */ ++ __asm__ ("frsqrte %[x], %[b]\n" : [x] "=f" (x) : [b] "f" (b)); ++ ++ /* Iterate. x_{n+1} = x_n * (1.5 - y * (x_n * x_n)). */ ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ x = x * FNMSUB (y, x * x, threehalf); ++ ++ /* All done. */ ++ fesetenv_register (fe); ++ return x * b; ++ } ++ } ++ else if (b < 0) ++ { ++ /* For some reason, some PowerPC32 processors don't implement ++ FE_INVALID_SQRT. */ ++#ifdef FE_INVALID_SQRT ++ feraiseexcept (FE_INVALID_SQRT); ++ ++ fenv_union_t u = { .fenv = fegetenv_register () }; ++ if ((u.l & FE_INVALID) == 0) ++#endif ++ feraiseexcept (FE_INVALID); ++ b = a_nan.value; ++ } ++ return f_washf (b); ++} +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies +new file mode 100644 +index 0000000000..b103b4dea5 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/603e/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc32/603e/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies +new file mode 100644 +index 0000000000..64db17fada +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e300c3/fpu/Implies +@@ -0,0 +1,2 @@ ++# e300c3 is a variant of 603e so use the same optimizations for sqrt ++powerpc/powerpc32/603e/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies +new file mode 100644 +index 0000000000..7eac5fcf02 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500mc/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc32/e500mc/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies +new file mode 100644 +index 0000000000..264b2a7700 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e5500/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc32/e5500/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies +new file mode 100644 +index 0000000000..a25934467b +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/e6500/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc32/e6500/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies +new file mode 100644 +index 0000000000..a7bc854be8 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e5500/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc64/e5500/fpu +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies +new file mode 100644 +index 0000000000..04ff8cc181 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies +@@ -0,0 +1 @@ ++powerpc/powerpc64/e6500/fpu diff --git a/external/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/external/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch deleted file mode 100644 index c0d96eb1..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0008-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch +++ /dev/null @@ -1,205 +0,0 @@ -From ee3aa1464f40c916c62cf326bf4c18f8b71a229b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:15:07 +0000 -Subject: [PATCH] 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' -| collect2: ld returned 1 exit status - -Upstream-Status: Pending - -ChangeLog - -2012-01-06 Khem Raj - - * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias. - Remove cruft. - * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto. - * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto. - * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto. - -Signed-off-by: Khem Raj ---- - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 7 +------ - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 7 +------ - sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 1 + - sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 1 + - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 1 + - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 1 + - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 1 + - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 1 + - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 7 +------ - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 7 +------ - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 1 + - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 1 + - 12 files changed, 12 insertions(+), 24 deletions(-) - -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -index 71e516d1c8..1795fd6c3e 100644 ---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -@@ -39,14 +39,8 @@ static const float half = 0.5; - We find the actual square root and half of its reciprocal - simultaneously. */ - --#ifdef __STDC__ - double - __ieee754_sqrt (double b) --#else --double --__ieee754_sqrt (b) -- double b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -132,3 +126,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -index 26fa067abf..a917f313ab 100644 ---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -@@ -37,14 +37,8 @@ static const float threehalf = 1.5; - We find the reciprocal square root and use that to compute the actual - square root. */ - --#ifdef __STDC__ - float - __ieee754_sqrtf (float b) --#else --float --__ieee754_sqrtf (b) -- float b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -index 71e516d1c8..fc4a74990e 100644 ---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -index 26fa067abf..9d175122a8 100644 ---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -index 71e516d1c8..fc4a74990e 100644 ---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -index 26fa067abf..9d175122a8 100644 ---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -index 71e516d1c8..fc4a74990e 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -index 26fa067abf..9d175122a8 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -index 71e516d1c8..1795fd6c3e 100644 ---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -@@ -39,14 +39,8 @@ static const float half = 0.5; - We find the actual square root and half of its reciprocal - simultaneously. */ - --#ifdef __STDC__ - double - __ieee754_sqrt (double b) --#else --double --__ieee754_sqrt (b) -- double b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -132,3 +126,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -index 26fa067abf..a917f313ab 100644 ---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -@@ -37,14 +37,8 @@ static const float threehalf = 1.5; - We find the reciprocal square root and use that to compute the actual - square root. */ - --#ifdef __STDC__ - float - __ieee754_sqrtf (float b) --#else --float --__ieee754_sqrtf (b) -- float b; --#endif - { - if (__builtin_expect (b > 0, 1)) - { -@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -index 71e516d1c8..fc4a74990e 100644 ---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -@@ -132,3 +132,4 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -index 26fa067abf..9d175122a8 100644 ---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/external/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch deleted file mode 100644 index d0b47cd6..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0009-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ /dev/null @@ -1,384 +0,0 @@ -From 17e82d594b2d8d3a6998face953382f9d14fb046 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:16:38 +0000 -Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out - __slow versions - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 12 ++++++++++-- - sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 8 +++++++- - sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 14 +++++++++++--- - sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 12 ++++++++++-- - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 14 +++++++++++--- - sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 12 ++++++++++-- - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 8 ++++++++ - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 8 ++++++++ - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 12 ++++++++++-- - sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 9 ++++++++- - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 14 +++++++++++--- - sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 12 ++++++++++-- - 12 files changed, 114 insertions(+), 21 deletions(-) - -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -index 1795fd6c3e..daa83f3fe8 100644 ---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c -@@ -40,7 +40,7 @@ static const float half = 0.5; - simultaneously. */ - - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -77,7 +77,7 @@ __ieee754_sqrt (double b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -126,4 +126,12 @@ __ieee754_sqrt (double b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -index a917f313ab..b812cf1705 100644 ---- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c -@@ -38,7 +38,7 @@ static const float threehalf = 1.5; - square root. */ - - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) - } - return f_washf (b); - } -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -index fc4a74990e..7038a70b47 100644 ---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c -@@ -41,10 +41,10 @@ static const float half = 0.5; - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ __ieee754_sqrt (b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -index 9d175122a8..10de1f0cc3 100644 ---- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c -@@ -39,10 +39,10 @@ static const float threehalf = 1.5; - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -index fc4a74990e..7038a70b47 100644 ---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c -@@ -41,10 +41,10 @@ static const float half = 0.5; - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ __ieee754_sqrt (b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -index 9d175122a8..10de1f0cc3 100644 ---- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c -@@ -39,10 +39,10 @@ static const float threehalf = 1.5; - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -index fc4a74990e..1c34244bd8 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -@@ -132,4 +132,12 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -index 9d175122a8..812653558f 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -index 1795fd6c3e..13a81973e3 100644 ---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c -@@ -40,7 +40,7 @@ static const float half = 0.5; - simultaneously. */ - - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -77,7 +77,7 @@ __ieee754_sqrt (double b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -126,4 +126,12 @@ __ieee754_sqrt (double b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -index a917f313ab..fae2d81210 100644 ---- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c -@@ -38,7 +38,7 @@ static const float threehalf = 1.5; - square root. */ - - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - { - if (__builtin_expect (b > 0, 1)) - { -@@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) - } - return f_washf (b); - } -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -index fc4a74990e..7038a70b47 100644 ---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c -@@ -41,10 +41,10 @@ static const float half = 0.5; - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ __ieee754_sqrt (b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -@@ -132,4 +132,12 @@ __ieee754_sqrt (b) - } - return f_wash (b); - } -+ -+#undef __ieee754_sqrt -+double -+__ieee754_sqrt (double x) -+{ -+ return __slow_ieee754_sqrt (x); -+} -+ - strong_alias (__ieee754_sqrt, __sqrt_finite) -diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -index 9d175122a8..10de1f0cc3 100644 ---- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c -@@ -39,10 +39,10 @@ static const float threehalf = 1.5; - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { -@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) - } - return f_washf (b); - } -+ -+#undef __ieee754_sqrtf -+float -+__ieee754_sqrtf (float x) -+{ -+ return __slow_ieee754_sqrtf (x); -+} -+ - strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/external/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch new file mode 100644 index 00000000..456f91fb --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch @@ -0,0 +1,29 @@ +From 13beb1f428ec06778590bf526d6e641f73d5cf62 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:11:22 +0000 +Subject: [PATCH] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known names + +This bolts in a hook for OE to pass its own version of interpreter +names into glibc especially for multilib case, where it differs from any +other distros + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Lianhao Lu +Signed-off-by: Khem Raj +--- + elf/readlib.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/elf/readlib.c b/elf/readlib.c +index 994a4426a1..baabf099b1 100644 +--- a/elf/readlib.c ++++ b/elf/readlib.c +@@ -51,6 +51,7 @@ static struct known_names interpreters[] = + #ifdef SYSDEP_KNOWN_INTERPRETER_NAMES + SYSDEP_KNOWN_INTERPRETER_NAMES + #endif ++ OECORE_KNOWN_INTERPRETER_NAMES + }; + + static struct known_names known_libs[] = diff --git a/external/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/external/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch deleted file mode 100644 index 86ef3a10..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0010-Quote-from-bug-1443-which-explains-what-the-patch-do.patch +++ /dev/null @@ -1,58 +0,0 @@ -From fe8d9b76e7c881cc0a0b728ea2bd637fafca0978 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:20:09 +0000 -Subject: [PATCH] Quote from bug 1443 which explains what the patch does : - - We build some random program and link it with -lust. When we run it, - it dies with a SIGSEGV before reaching main(). - - Libust.so depends on liburcu-bp.so from the usermode-rcu package. - Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this - is critical. - - Libust.so uses a TLS / __thread variable that is defined in liburcu- - bp.so. There are special ARM-specific relocation types that allow two - shared libraries to share thread-specific data. This is critical too. - - One more critical issue: although liburcu-bp.so is prelinked, we can't - load it at its prelinked address, because we also link against - librt.so, and librt.so uses that address. - - The dynamic linker is forced to relink liburcu-bp.so at a different - address. In the course of relinking, it processes the special ARM - relocation record mentioned above. The prelinker has already filled - in the information, which is a short offset into a table of thread- - specific data that is allocated per-thread for each library that uses - TLS. Because the normal behavior of a relocation is to add the symbol - value to an addend stored at the address being relocated, we end up - adding the short offset to itself, doubling it. - - Now we have an awkward situation. The libust.so library doesn't know - about the addend, so its TLS data for this element is correct. The - liburcu-bp.so library has a different offset for the element. When we - go to initialize the element for the first time in liburcu-bp.so, we - write the address of the result at the doubled (broken) offset. - Later, when we refer to the address from libust.so, we check the value - at the correct offset, but it's NULL, so we eat hot SIGSEGV. - -Upstream-Status: Pending - -Signed-off-by: Andrei Dinu -Signed-off-by: Khem Raj ---- - sysdeps/arm/dl-machine.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h -index 1a4fd3f17b..a02c47571a 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, - - case R_ARM_TLS_DTPOFF32: - if (sym != NULL) -- *reloc_addr += sym->st_value; -+ *reloc_addr = sym->st_value; - break; - - case R_ARM_TLS_TPOFF32: diff --git a/external/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/external/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch new file mode 100644 index 00000000..01446abc --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch @@ -0,0 +1,205 @@ +From 4483a83074a340a921e319b88d72166f18e0df0b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:15:07 +0000 +Subject: [PATCH] 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' +| collect2: ld returned 1 exit status + +Upstream-Status: Pending + +ChangeLog + +2012-01-06 Khem Raj + + * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c: Add __*_finite alias. + Remove cruft. + * sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c: Ditto. + * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c: Ditto. + * sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c: Ditto. + +Signed-off-by: Khem Raj +--- + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 7 +------ + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 7 +------ + sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 1 + + sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 1 + + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 1 + + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 1 + + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 1 + + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 1 + + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 7 +------ + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 7 +------ + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 1 + + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 1 + + 12 files changed, 12 insertions(+), 24 deletions(-) + +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +index 71e516d1c8..1795fd6c3e 100644 +--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +@@ -39,14 +39,8 @@ static const float half = 0.5; + We find the actual square root and half of its reciprocal + simultaneously. */ + +-#ifdef __STDC__ + double + __ieee754_sqrt (double b) +-#else +-double +-__ieee754_sqrt (b) +- double b; +-#endif + { + if (__builtin_expect (b > 0, 1)) + { +@@ -132,3 +126,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +index 26fa067abf..a917f313ab 100644 +--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +@@ -37,14 +37,8 @@ static const float threehalf = 1.5; + We find the reciprocal square root and use that to compute the actual + square root. */ + +-#ifdef __STDC__ + float + __ieee754_sqrtf (float b) +-#else +-float +-__ieee754_sqrtf (b) +- float b; +-#endif + { + if (__builtin_expect (b > 0, 1)) + { +@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +index 71e516d1c8..fc4a74990e 100644 +--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +@@ -132,3 +132,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +index 26fa067abf..9d175122a8 100644 +--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +index 71e516d1c8..fc4a74990e 100644 +--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +@@ -132,3 +132,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +index 26fa067abf..9d175122a8 100644 +--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +index 71e516d1c8..fc4a74990e 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +@@ -132,3 +132,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +index 26fa067abf..9d175122a8 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +index 71e516d1c8..1795fd6c3e 100644 +--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +@@ -39,14 +39,8 @@ static const float half = 0.5; + We find the actual square root and half of its reciprocal + simultaneously. */ + +-#ifdef __STDC__ + double + __ieee754_sqrt (double b) +-#else +-double +-__ieee754_sqrt (b) +- double b; +-#endif + { + if (__builtin_expect (b > 0, 1)) + { +@@ -132,3 +126,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +index 26fa067abf..a917f313ab 100644 +--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +@@ -37,14 +37,8 @@ static const float threehalf = 1.5; + We find the reciprocal square root and use that to compute the actual + square root. */ + +-#ifdef __STDC__ + float + __ieee754_sqrtf (float b) +-#else +-float +-__ieee754_sqrtf (b) +- float b; +-#endif + { + if (__builtin_expect (b > 0, 1)) + { +@@ -99,3 +93,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +index 71e516d1c8..fc4a74990e 100644 +--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +@@ -132,3 +132,4 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +index 26fa067abf..9d175122a8 100644 +--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +@@ -99,3 +99,4 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/external/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch new file mode 100644 index 00000000..451f3726 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -0,0 +1,384 @@ +From 347b2e31d010b04c42e78157a028aa1d58fe0f5e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:16:38 +0000 +Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out + __slow versions + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c | 12 ++++++++++-- + sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c | 8 +++++++- + sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c | 14 +++++++++++--- + sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c | 12 ++++++++++-- + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c | 14 +++++++++++--- + sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c | 12 ++++++++++-- + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 8 ++++++++ + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 8 ++++++++ + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c | 12 ++++++++++-- + sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c | 9 ++++++++- + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c | 14 +++++++++++--- + sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c | 12 ++++++++++-- + 12 files changed, 114 insertions(+), 21 deletions(-) + +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +index 1795fd6c3e..daa83f3fe8 100644 +--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrt.c +@@ -40,7 +40,7 @@ static const float half = 0.5; + simultaneously. */ + + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + { + if (__builtin_expect (b > 0, 1)) + { +@@ -77,7 +77,7 @@ __ieee754_sqrt (double b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +@@ -126,4 +126,12 @@ __ieee754_sqrt (double b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +index a917f313ab..b812cf1705 100644 +--- a/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/603e/fpu/e_sqrtf.c +@@ -38,7 +38,7 @@ static const float threehalf = 1.5; + square root. */ + + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + { + if (__builtin_expect (b > 0, 1)) + { +@@ -93,4 +93,10 @@ __ieee754_sqrtf (float b) + } + return f_washf (b); + } ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +index fc4a74990e..7038a70b47 100644 +--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrt.c +@@ -41,10 +41,10 @@ static const float half = 0.5; + + #ifdef __STDC__ + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + #else + double +-__ieee754_sqrt (b) ++__slow_ieee754_sqrt (b) + double b; + #endif + { +@@ -83,7 +83,7 @@ __ieee754_sqrt (b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +@@ -132,4 +132,12 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +index 9d175122a8..10de1f0cc3 100644 +--- a/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e500mc/fpu/e_sqrtf.c +@@ -39,10 +39,10 @@ static const float threehalf = 1.5; + + #ifdef __STDC__ + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + #else + float +-__ieee754_sqrtf (b) ++__slow_ieee754_sqrtf (b) + float b; + #endif + { +@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++ ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} ++ + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +index fc4a74990e..7038a70b47 100644 +--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrt.c +@@ -41,10 +41,10 @@ static const float half = 0.5; + + #ifdef __STDC__ + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + #else + double +-__ieee754_sqrt (b) ++__slow_ieee754_sqrt (b) + double b; + #endif + { +@@ -83,7 +83,7 @@ __ieee754_sqrt (b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +@@ -132,4 +132,12 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +index 9d175122a8..10de1f0cc3 100644 +--- a/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e5500/fpu/e_sqrtf.c +@@ -39,10 +39,10 @@ static const float threehalf = 1.5; + + #ifdef __STDC__ + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + #else + float +-__ieee754_sqrtf (b) ++__slow_ieee754_sqrtf (b) + float b; + #endif + { +@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++ ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} ++ + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +index fc4a74990e..1c34244bd8 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +@@ -132,4 +132,12 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +index 9d175122a8..812653558f 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++ ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} ++ + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +index 1795fd6c3e..13a81973e3 100644 +--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrt.c +@@ -40,7 +40,7 @@ static const float half = 0.5; + simultaneously. */ + + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + { + if (__builtin_expect (b > 0, 1)) + { +@@ -77,7 +77,7 @@ __ieee754_sqrt (double b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +@@ -126,4 +126,12 @@ __ieee754_sqrt (double b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +index a917f313ab..fae2d81210 100644 +--- a/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc64/e5500/fpu/e_sqrtf.c +@@ -38,7 +38,7 @@ static const float threehalf = 1.5; + square root. */ + + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + { + if (__builtin_expect (b > 0, 1)) + { +@@ -93,4 +93,11 @@ __ieee754_sqrtf (float b) + } + return f_washf (b); + } ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} ++ + strong_alias (__ieee754_sqrtf, __sqrtf_finite) +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +index fc4a74990e..7038a70b47 100644 +--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrt.c +@@ -41,10 +41,10 @@ static const float half = 0.5; + + #ifdef __STDC__ + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + #else + double +-__ieee754_sqrt (b) ++__slow_ieee754_sqrt (b) + double b; + #endif + { +@@ -83,7 +83,7 @@ __ieee754_sqrt (b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +@@ -132,4 +132,12 @@ __ieee754_sqrt (b) + } + return f_wash (b); + } ++ ++#undef __ieee754_sqrt ++double ++__ieee754_sqrt (double x) ++{ ++ return __slow_ieee754_sqrt (x); ++} ++ + strong_alias (__ieee754_sqrt, __sqrt_finite) +diff --git a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +index 9d175122a8..10de1f0cc3 100644 +--- a/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc64/e6500/fpu/e_sqrtf.c +@@ -39,10 +39,10 @@ static const float threehalf = 1.5; + + #ifdef __STDC__ + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + #else + float +-__ieee754_sqrtf (b) ++__slow_ieee754_sqrtf (b) + float b; + #endif + { +@@ -99,4 +99,12 @@ __ieee754_sqrtf (b) + } + return f_washf (b); + } ++ ++#undef __ieee754_sqrtf ++float ++__ieee754_sqrtf (float x) ++{ ++ return __slow_ieee754_sqrtf (x); ++} ++ + strong_alias (__ieee754_sqrtf, __sqrtf_finite) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/external/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch deleted file mode 100644 index 32aae5cd..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0011-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 3012cb839a64e7d5c621efa79b643d169290e6e9 Mon Sep 17 00:00:00 2001 -From: Ting Liu -Date: Wed, 19 Dec 2012 04:39:57 -0600 -Subject: [PATCH] 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 -${S}/.pc/ (it does exist after eglibc adds aarch64 support, -${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/ -aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs -in ${S}. - -Upstream-Status: inappropriate [OE specific] - -Signed-off-by: Ting Liu ---- - manual/Makefile | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/manual/Makefile b/manual/Makefile -index c2756640a7..1b5bb16a96 100644 ---- a/manual/Makefile -+++ b/manual/Makefile -@@ -102,7 +102,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err - $(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ - $(dir)/libm-test-ulps)) - pwd=`pwd`; \ -- $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../ports > $(objpfx)libm-err-tmp -+ $(PERL) $< $$pwd/../sysdeps >> $(objpfx)libm-err-tmp - $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi - touch $@ - diff --git a/external/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/external/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch new file mode 100644 index 00000000..a0b46c04 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch @@ -0,0 +1,58 @@ +From 8ca8e5cd78cbd37a713e1181f8f6641b57352aa8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:20:09 +0000 +Subject: [PATCH] Quote from bug 1443 which explains what the patch does : + + We build some random program and link it with -lust. When we run it, + it dies with a SIGSEGV before reaching main(). + + Libust.so depends on liburcu-bp.so from the usermode-rcu package. + Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this + is critical. + + Libust.so uses a TLS / __thread variable that is defined in liburcu- + bp.so. There are special ARM-specific relocation types that allow two + shared libraries to share thread-specific data. This is critical too. + + One more critical issue: although liburcu-bp.so is prelinked, we can't + load it at its prelinked address, because we also link against + librt.so, and librt.so uses that address. + + The dynamic linker is forced to relink liburcu-bp.so at a different + address. In the course of relinking, it processes the special ARM + relocation record mentioned above. The prelinker has already filled + in the information, which is a short offset into a table of thread- + specific data that is allocated per-thread for each library that uses + TLS. Because the normal behavior of a relocation is to add the symbol + value to an addend stored at the address being relocated, we end up + adding the short offset to itself, doubling it. + + Now we have an awkward situation. The libust.so library doesn't know + about the addend, so its TLS data for this element is correct. The + liburcu-bp.so library has a different offset for the element. When we + go to initialize the element for the first time in liburcu-bp.so, we + write the address of the result at the doubled (broken) offset. + Later, when we refer to the address from libust.so, we check the value + at the correct offset, but it's NULL, so we eat hot SIGSEGV. + +Upstream-Status: Pending + +Signed-off-by: Andrei Dinu +Signed-off-by: Khem Raj +--- + sysdeps/arm/dl-machine.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h +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, + + case R_ARM_TLS_DTPOFF32: + if (sym != NULL) +- *reloc_addr += sym->st_value; ++ *reloc_addr = sym->st_value; + break; + + case R_ARM_TLS_TPOFF32: diff --git a/external/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/external/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch deleted file mode 100644 index 93395c38..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0012-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 93ab69ae4c98303929ba9492130a021fa4a215be Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:24:46 +0000 -Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out - __slow versions - -Upstream-Status: Pending - -Signed-off-by: chunrong guo -Signed-off-by: Khem Raj ---- - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 6 +++--- - sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 4 ++-- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -index 1c34244bd8..7038a70b47 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c -@@ -41,10 +41,10 @@ static const float half = 0.5; - - #ifdef __STDC__ - double --__ieee754_sqrt (double b) -+__slow_ieee754_sqrt (double b) - #else - double --__ieee754_sqrt (b) -+__slow_ieee754_sqrt (b) - double b; - #endif - { -@@ -83,7 +83,7 @@ __ieee754_sqrt (b) - - /* Handle small numbers by scaling. */ - if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) -- return __ieee754_sqrt (b * two108) * twom54; -+ return __slow_ieee754_sqrt (b * two108) * twom54; - - #define FMADD(a_, c_, b_) \ - ({ double __r; \ -diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -index 812653558f..10de1f0cc3 100644 ---- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -+++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c -@@ -39,10 +39,10 @@ static const float threehalf = 1.5; - - #ifdef __STDC__ - float --__ieee754_sqrtf (float b) -+__slow_ieee754_sqrtf (float b) - #else - float --__ieee754_sqrtf (b) -+__slow_ieee754_sqrtf (b) - float b; - #endif - { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/external/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch new file mode 100644 index 00000000..736de8cf --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch @@ -0,0 +1,33 @@ +From 21509735678990760d5ebf9d0c65efa4b52b838d Mon Sep 17 00:00:00 2001 +From: Ting Liu +Date: Wed, 19 Dec 2012 04:39:57 -0600 +Subject: [PATCH] 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 +${S}/.pc/ (it does exist after eglibc adds aarch64 support, +${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/ +aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs +in ${S}. + +Upstream-Status: inappropriate [OE specific] + +Signed-off-by: Ting Liu +--- + manual/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/manual/Makefile b/manual/Makefile +index c61e11dcd7..5d859e6f84 100644 +--- a/manual/Makefile ++++ b/manual/Makefile +@@ -103,7 +103,8 @@ $(objpfx)stamp-libm-err: $(..)math/gen-libm-test.py \ + $(wildcard $(foreach dir,$(sysdirs),\ + $(dir)/libm-test-ulps)) + pwd=`pwd`; \ +- $(PYTHON) $< -s $$pwd/.. -m $(objpfx)libm-err-tmp ++ $(PYTHON) $< -s $$pwd/../ports -m $(objpfx)libm-err-tmp ++ $(PYTHON) $< -s $$pwd/../sysdeps -m $(objpfx)libm-err-tmp + $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi + touch $@ + diff --git a/external/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/external/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch deleted file mode 100644 index 9998691f..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a7bd8aa65f3f2755d6dbd0d5adbfd269c1fb0094 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:27:10 +0000 -Subject: [PATCH] sysdeps/gnu/configure.ac: handle correctly - $libc_cv_rootsbindir - -Upstream-Status:Pending - -Signed-off-by: Matthieu Crapet -Signed-off-by: Khem Raj ---- - sysdeps/gnu/configure | 2 +- - sysdeps/gnu/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/sysdeps/gnu/configure b/sysdeps/gnu/configure -index c15d1087e8..37cc983f2a 100644 ---- a/sysdeps/gnu/configure -+++ b/sysdeps/gnu/configure -@@ -32,6 +32,6 @@ case "$prefix" in - else - libc_cv_localstatedir=$localstatedir - fi -- libc_cv_rootsbindir=/sbin -+ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin - ;; - esac -diff --git a/sysdeps/gnu/configure.ac b/sysdeps/gnu/configure.ac -index 634fe4de2a..3db1697f4f 100644 ---- a/sysdeps/gnu/configure.ac -+++ b/sysdeps/gnu/configure.ac -@@ -21,6 +21,6 @@ case "$prefix" in - else - libc_cv_localstatedir=$localstatedir - fi -- libc_cv_rootsbindir=/sbin -+ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin - ;; - esac diff --git a/external/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch b/external/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch deleted file mode 100644 index 9d6ab30e..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 2ce5bc6da23dcb402afdeb967fa44c39eecf6d37 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:28:41 +0000 -Subject: [PATCH] Add unused attribute - -Helps in avoiding gcc warning when header is is included in -a source file which does not use both functions - - * iconv/gconv_charset.h (strip): - Add unused attribute. - -Signed-off-by: Khem Raj - -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 123e2a62ce..63cc83ec84 100644 ---- a/iconv/gconv_charset.h -+++ b/iconv/gconv_charset.h -@@ -21,7 +21,7 @@ - #include - - --static void -+static void __attribute__ ((unused)) - strip (char *wp, const char *s) - { - int slash_count = 0; diff --git a/external/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/external/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch new file mode 100644 index 00000000..e73b640c --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -0,0 +1,58 @@ +From e33deb119734ef443ef44c42a00a569f90e1e149 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:24:46 +0000 +Subject: [PATCH] __ieee754_sqrt{,f} are now inline functions and call out + __slow versions + +Upstream-Status: Pending + +Signed-off-by: chunrong guo +Signed-off-by: Khem Raj +--- + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c | 6 +++--- + sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +index 1c34244bd8..7038a70b47 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrt.c +@@ -41,10 +41,10 @@ static const float half = 0.5; + + #ifdef __STDC__ + double +-__ieee754_sqrt (double b) ++__slow_ieee754_sqrt (double b) + #else + double +-__ieee754_sqrt (b) ++__slow_ieee754_sqrt (b) + double b; + #endif + { +@@ -83,7 +83,7 @@ __ieee754_sqrt (b) + + /* Handle small numbers by scaling. */ + if (__builtin_expect ((u.parts.msw & 0x7ff00000) <= 0x02000000, 0)) +- return __ieee754_sqrt (b * two108) * twom54; ++ return __slow_ieee754_sqrt (b * two108) * twom54; + + #define FMADD(a_, c_, b_) \ + ({ double __r; \ +diff --git a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +index 812653558f..10de1f0cc3 100644 +--- a/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c ++++ b/sysdeps/powerpc/powerpc32/e6500/fpu/e_sqrtf.c +@@ -39,10 +39,10 @@ static const float threehalf = 1.5; + + #ifdef __STDC__ + float +-__ieee754_sqrtf (float b) ++__slow_ieee754_sqrtf (float b) + #else + float +-__ieee754_sqrtf (b) ++__slow_ieee754_sqrtf (b) + float b; + #endif + { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/external/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch new file mode 100644 index 00000000..0cdd0567 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch @@ -0,0 +1,39 @@ +From c50cae36e90c41849301a9a668adf31e81e43a07 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:27:10 +0000 +Subject: [PATCH] sysdeps/gnu/configure.ac: handle correctly + $libc_cv_rootsbindir + +Upstream-Status:Pending + +Signed-off-by: Matthieu Crapet +Signed-off-by: Khem Raj +--- + sysdeps/gnu/configure | 2 +- + sysdeps/gnu/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sysdeps/gnu/configure b/sysdeps/gnu/configure +index c15d1087e8..37cc983f2a 100644 +--- a/sysdeps/gnu/configure ++++ b/sysdeps/gnu/configure +@@ -32,6 +32,6 @@ case "$prefix" in + else + libc_cv_localstatedir=$localstatedir + fi +- libc_cv_rootsbindir=/sbin ++ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin + ;; + esac +diff --git a/sysdeps/gnu/configure.ac b/sysdeps/gnu/configure.ac +index 634fe4de2a..3db1697f4f 100644 +--- a/sysdeps/gnu/configure.ac ++++ b/sysdeps/gnu/configure.ac +@@ -21,6 +21,6 @@ case "$prefix" in + else + libc_cv_localstatedir=$localstatedir + fi +- libc_cv_rootsbindir=/sbin ++ test -n "$libc_cv_rootsbindir" || libc_cv_rootsbindir=/sbin + ;; + esac diff --git a/external/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch b/external/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch deleted file mode 100644 index 0267e7a4..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch +++ /dev/null @@ -1,260 +0,0 @@ -From b382138c41ccf6079b44592f1e74f183ca8281bb Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:31:06 +0000 -Subject: [PATCH] '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 -false-positive matches with the path it is configured into. - -The change is to use a more elaborated string to grep for. - -Upstream-Status: Submitted [libc-alpha@sourceware.org] - -Signed-off-by: Benjamin Esquivel -Signed-off-by: Khem Raj ---- - sysdeps/aarch64/configure | 4 ++-- - sysdeps/aarch64/configure.ac | 4 ++-- - sysdeps/arm/configure | 4 ++-- - sysdeps/arm/configure.ac | 4 ++-- - sysdeps/mips/configure | 4 ++-- - sysdeps/mips/configure.ac | 4 ++-- - sysdeps/nios2/configure | 4 ++-- - sysdeps/nios2/configure.ac | 4 ++-- - sysdeps/unix/sysv/linux/mips/configure | 4 ++-- - sysdeps/unix/sysv/linux/mips/configure.ac | 4 ++-- - sysdeps/unix/sysv/linux/powerpc/powerpc64/configure | 8 ++++---- - sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac | 8 ++++---- - 12 files changed, 28 insertions(+), 28 deletions(-) - -diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure -index 5bd355a691..3bc5537bc0 100644 ---- a/sysdeps/aarch64/configure -+++ b/sysdeps/aarch64/configure -@@ -148,12 +148,12 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef __AARCH64EB__ -- yes -+ is_aarch64_be - #endif - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "is_aarch64_be" >/dev/null 2>&1; then : - libc_cv_aarch64_be=yes - else - libc_cv_aarch64_be=no -diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac -index 7851dd4dac..6e9238171f 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. - # the dynamic linker via %ifdef. - AC_CACHE_CHECK([for big endian], - [libc_cv_aarch64_be], -- [AC_EGREP_CPP(yes,[#ifdef __AARCH64EB__ -- yes -+ [AC_EGREP_CPP(is_aarch64_be,[#ifdef __AARCH64EB__ -+ is_aarch64_be - #endif - ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)]) - if test $libc_cv_aarch64_be = yes; then -diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure -index 431e843b2b..e152461138 100644 ---- a/sysdeps/arm/configure -+++ b/sysdeps/arm/configure -@@ -151,12 +151,12 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef __ARM_PCS_VFP -- yes -+ use_arm_pcs_vfp - #endif - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "use_arm_pcs_vfp" >/dev/null 2>&1; then : - libc_cv_arm_pcs_vfp=yes - else - libc_cv_arm_pcs_vfp=no -diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac -index 90cdd69c75..05a262ba00 100644 ---- a/sysdeps/arm/configure.ac -+++ b/sysdeps/arm/configure.ac -@@ -15,8 +15,8 @@ AC_DEFINE(PI_STATIC_AND_HIDDEN) - # the dynamic linker via %ifdef. - AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI], - [libc_cv_arm_pcs_vfp], -- [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP -- yes -+ [AC_EGREP_CPP(use_arm_pcs_vfp,[#ifdef __ARM_PCS_VFP -+ use_arm_pcs_vfp - #endif - ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)]) - if test $libc_cv_arm_pcs_vfp = yes; then -diff --git a/sysdeps/mips/configure b/sysdeps/mips/configure -index 4e13248c03..f14af952d0 100644 ---- a/sysdeps/mips/configure -+++ b/sysdeps/mips/configure -@@ -143,11 +143,11 @@ else - /* end confdefs.h. */ - dnl - #ifdef __mips_nan2008 --yes -+use_mips_nan2008 - #endif - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "use_mips_nan2008" >/dev/null 2>&1; then : - libc_cv_mips_nan2008=yes - else - libc_cv_mips_nan2008=no -diff --git a/sysdeps/mips/configure.ac b/sysdeps/mips/configure.ac -index bcbdaffd9f..ad3057f4cc 100644 ---- a/sysdeps/mips/configure.ac -+++ b/sysdeps/mips/configure.ac -@@ -6,9 +6,9 @@ dnl position independent way. - dnl AC_DEFINE(PI_STATIC_AND_HIDDEN) - - AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding], -- libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl -+ libc_cv_mips_nan2008, [AC_EGREP_CPP(use_mips_nan2008, [dnl - #ifdef __mips_nan2008 --yes -+use_mips_nan2008 - #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)]) - if test x$libc_cv_mips_nan2008 = xyes; then - AC_DEFINE(HAVE_MIPS_NAN2008) -diff --git a/sysdeps/nios2/configure b/sysdeps/nios2/configure -index 14c8a3a014..dde3814ef2 100644 ---- a/sysdeps/nios2/configure -+++ b/sysdeps/nios2/configure -@@ -142,12 +142,12 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef __nios2_big_endian__ -- yes -+ is_nios2_be - #endif - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "is_nios2_be" >/dev/null 2>&1; then : - libc_cv_nios2_be=yes - else - libc_cv_nios2_be=no -diff --git a/sysdeps/nios2/configure.ac b/sysdeps/nios2/configure.ac -index f05f43802b..dc8639902d 100644 ---- a/sysdeps/nios2/configure.ac -+++ b/sysdeps/nios2/configure.ac -@@ -4,8 +4,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. - # Nios II big endian is not yet supported. - AC_CACHE_CHECK([for big endian], - [libc_cv_nios2_be], -- [AC_EGREP_CPP(yes,[#ifdef __nios2_big_endian__ -- yes -+ [AC_EGREP_CPP(is_nios2_be,[#ifdef __nios2_big_endian__ -+ is_nios2_be - #endif - ], 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 ---- a/sysdeps/unix/sysv/linux/mips/configure -+++ b/sysdeps/unix/sysv/linux/mips/configure -@@ -414,11 +414,11 @@ else - /* end confdefs.h. */ - dnl - #ifdef __mips_nan2008 --yes -+use_mips_nan2008 - #endif - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "use_mips_nan2008" >/dev/null 2>&1; then : - libc_cv_mips_nan2008=yes - 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 ---- a/sysdeps/unix/sysv/linux/mips/configure.ac -+++ b/sysdeps/unix/sysv/linux/mips/configure.ac -@@ -105,9 +105,9 @@ AC_COMPILE_IFELSE( - LIBC_CONFIG_VAR([mips-mode-switch],[${libc_mips_mode_switch}]) - - AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding], -- libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl -+ libc_cv_mips_nan2008, [AC_EGREP_CPP(use_mips_nan2008, [dnl - #ifdef __mips_nan2008 --yes -+use_mips_nan2008 - #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)]) - - libc_mips_nan= -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure -index ae7f254da4..874519000b 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure -@@ -155,12 +155,12 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #if _CALL_ELF == 2 -- yes -+ use_ppc_elfv2_abi - #endif - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "use_ppc_elfv2_abi" >/dev/null 2>&1; then : - libc_cv_ppc64_elfv2_abi=yes - else - libc_cv_ppc64_elfv2_abi=no -@@ -188,12 +188,12 @@ else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #ifdef _CALL_ELF -- yes -+ is_def_call_elf - #endif - - _ACEOF - if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "yes" >/dev/null 2>&1; then : -+ $EGREP "is_def_call_elf" >/dev/null 2>&1; then : - libc_cv_ppc64_def_call_elf=yes - else - libc_cv_ppc64_def_call_elf=no -diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac -index f9cba6e15d..b21f72f1e4 100644 ---- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac -+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac -@@ -6,8 +6,8 @@ LIBC_SLIBDIR_RTLDDIR([lib64], [lib64]) - # Define default-abi according to compiler flags. - AC_CACHE_CHECK([whether the compiler is using the PowerPC64 ELFv2 ABI], - [libc_cv_ppc64_elfv2_abi], -- [AC_EGREP_CPP(yes,[#if _CALL_ELF == 2 -- yes -+ [AC_EGREP_CPP(use_ppc_elfv2_abi,[#if _CALL_ELF == 2 -+ use_ppc_elfv2_abi - #endif - ], libc_cv_ppc64_elfv2_abi=yes, libc_cv_ppc64_elfv2_abi=no)]) - if test $libc_cv_ppc64_elfv2_abi = yes; then -@@ -19,8 +19,8 @@ else - # Compiler that do not support ELFv2 ABI does not define _CALL_ELF - AC_CACHE_CHECK([whether the compiler defines _CALL_ELF], - [libc_cv_ppc64_def_call_elf], -- [AC_EGREP_CPP(yes,[#ifdef _CALL_ELF -- yes -+ [AC_EGREP_CPP(is_def_call_elf,[#ifdef _CALL_ELF -+ is_def_call_elf - #endif - ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)]) - if test $libc_cv_ppc64_def_call_elf = no; then diff --git a/external/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/external/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch deleted file mode 100644 index 15453ec6..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 04fb7b93dc40c1f96ebc05d29a2f02f9e4f0d572 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:33:03 +0000 -Subject: [PATCH] timezone: re-written tzselect as posix sh - -To avoid the bash dependency. - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia -Signed-off-by: Khem Raj ---- - timezone/Makefile | 2 +- - timezone/tzselect.ksh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/timezone/Makefile b/timezone/Makefile -index 0194aba4a1..58e5405a05 100644 ---- a/timezone/Makefile -+++ b/timezone/Makefile -@@ -122,7 +122,7 @@ $(testdata)/XT%: testdata/XT% - cp $< $@ - - $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make -- sed -e 's|/bin/bash|$(BASH)|' \ -+ sed -e 's|/bin/bash|/bin/sh|' \ - -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ - -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ - -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ -diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh -index d2c3a6d1dd..089679f306 100755 ---- a/timezone/tzselect.ksh -+++ b/timezone/tzselect.ksh -@@ -35,7 +35,7 @@ REPORT_BUGS_TO=tz@iana.org - - # Specify default values for environment variables if they are unset. - : ${AWK=awk} --: ${TZDIR=`pwd`} -+: ${TZDIR=$(pwd)} - - # Output one argument as-is to standard output. - # Safer than 'echo', which can mishandle '\' or leading '-'. diff --git a/external/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/external/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch deleted file mode 100644 index 06d2cd1d..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 7a2f244c0980a54ed74f9544ab44a7269ef12bce Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 31 Dec 2015 14:33:02 -0800 -Subject: [PATCH] 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. - -Upstream-Status: Pending - -Signed-off-by: Ross Burton -Signed-off-by: Khem Raj ---- - nscd/nscd.init | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/nscd/nscd.init b/nscd/nscd.init -index a882da7d8b..b02986ec15 100644 ---- a/nscd/nscd.init -+++ b/nscd/nscd.init -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # nscd: Starts the Name Switch Cache Daemon - # -@@ -49,7 +49,7 @@ prog=nscd - start () { - [ -d /var/run/nscd ] || mkdir /var/run/nscd - [ -d /var/db/nscd ] || mkdir /var/db/nscd -- echo -n $"Starting $prog: " -+ echo -n "Starting $prog: " - daemon /usr/sbin/nscd - RETVAL=$? - echo -@@ -58,7 +58,7 @@ start () { - } - - stop () { -- echo -n $"Stopping $prog: " -+ echo -n "Stopping $prog: " - /usr/sbin/nscd -K - RETVAL=$? - if [ $RETVAL -eq 0 ]; then -@@ -67,9 +67,9 @@ stop () { - # a non-privileged user - rm -f /var/run/nscd/nscd.pid - rm -f /var/run/nscd/socket -- success $"$prog shutdown" -+ success "$prog shutdown" - else -- failure $"$prog shutdown" -+ failure "$prog shutdown" - fi - echo - return $RETVAL -@@ -103,13 +103,13 @@ case "$1" in - RETVAL=$? - ;; - force-reload | reload) -- echo -n $"Reloading $prog: " -+ echo -n "Reloading $prog: " - killproc /usr/sbin/nscd -HUP - RETVAL=$? - echo - ;; - *) -- echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" -+ echo "Usage: $0 {start|stop|status|restart|reload|condrestart}" - RETVAL=1 - ;; - esac diff --git a/external/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch b/external/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch new file mode 100644 index 00000000..49089af4 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch @@ -0,0 +1,260 @@ +From c421cd7e885497a99179b982dc4a27e8405f8857 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:31:06 +0000 +Subject: [PATCH] '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 +false-positive matches with the path it is configured into. + +The change is to use a more elaborated string to grep for. + +Upstream-Status: Submitted [libc-alpha@sourceware.org] + +Signed-off-by: Benjamin Esquivel +Signed-off-by: Khem Raj +--- + sysdeps/aarch64/configure | 4 ++-- + sysdeps/aarch64/configure.ac | 4 ++-- + sysdeps/arm/configure | 4 ++-- + sysdeps/arm/configure.ac | 4 ++-- + sysdeps/mips/configure | 4 ++-- + sysdeps/mips/configure.ac | 4 ++-- + sysdeps/nios2/configure | 4 ++-- + sysdeps/nios2/configure.ac | 4 ++-- + sysdeps/unix/sysv/linux/mips/configure | 4 ++-- + sysdeps/unix/sysv/linux/mips/configure.ac | 4 ++-- + sysdeps/unix/sysv/linux/powerpc/powerpc64/configure | 8 ++++---- + sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac | 8 ++++---- + 12 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure +index 5bd355a691..3bc5537bc0 100644 +--- a/sysdeps/aarch64/configure ++++ b/sysdeps/aarch64/configure +@@ -148,12 +148,12 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef __AARCH64EB__ +- yes ++ is_aarch64_be + #endif + + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "is_aarch64_be" >/dev/null 2>&1; then : + libc_cv_aarch64_be=yes + else + libc_cv_aarch64_be=no +diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac +index 7851dd4dac..6e9238171f 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. + # the dynamic linker via %ifdef. + AC_CACHE_CHECK([for big endian], + [libc_cv_aarch64_be], +- [AC_EGREP_CPP(yes,[#ifdef __AARCH64EB__ +- yes ++ [AC_EGREP_CPP(is_aarch64_be,[#ifdef __AARCH64EB__ ++ is_aarch64_be + #endif + ], libc_cv_aarch64_be=yes, libc_cv_aarch64_be=no)]) + if test $libc_cv_aarch64_be = yes; then +diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure +index 431e843b2b..e152461138 100644 +--- a/sysdeps/arm/configure ++++ b/sysdeps/arm/configure +@@ -151,12 +151,12 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef __ARM_PCS_VFP +- yes ++ use_arm_pcs_vfp + #endif + + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "use_arm_pcs_vfp" >/dev/null 2>&1; then : + libc_cv_arm_pcs_vfp=yes + else + libc_cv_arm_pcs_vfp=no +diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac +index 90cdd69c75..05a262ba00 100644 +--- a/sysdeps/arm/configure.ac ++++ b/sysdeps/arm/configure.ac +@@ -15,8 +15,8 @@ AC_DEFINE(PI_STATIC_AND_HIDDEN) + # the dynamic linker via %ifdef. + AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI], + [libc_cv_arm_pcs_vfp], +- [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP +- yes ++ [AC_EGREP_CPP(use_arm_pcs_vfp,[#ifdef __ARM_PCS_VFP ++ use_arm_pcs_vfp + #endif + ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)]) + if test $libc_cv_arm_pcs_vfp = yes; then +diff --git a/sysdeps/mips/configure b/sysdeps/mips/configure +index 4e13248c03..f14af952d0 100644 +--- a/sysdeps/mips/configure ++++ b/sysdeps/mips/configure +@@ -143,11 +143,11 @@ else + /* end confdefs.h. */ + dnl + #ifdef __mips_nan2008 +-yes ++use_mips_nan2008 + #endif + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "use_mips_nan2008" >/dev/null 2>&1; then : + libc_cv_mips_nan2008=yes + else + libc_cv_mips_nan2008=no +diff --git a/sysdeps/mips/configure.ac b/sysdeps/mips/configure.ac +index bcbdaffd9f..ad3057f4cc 100644 +--- a/sysdeps/mips/configure.ac ++++ b/sysdeps/mips/configure.ac +@@ -6,9 +6,9 @@ dnl position independent way. + dnl AC_DEFINE(PI_STATIC_AND_HIDDEN) + + AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding], +- libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl ++ libc_cv_mips_nan2008, [AC_EGREP_CPP(use_mips_nan2008, [dnl + #ifdef __mips_nan2008 +-yes ++use_mips_nan2008 + #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)]) + if test x$libc_cv_mips_nan2008 = xyes; then + AC_DEFINE(HAVE_MIPS_NAN2008) +diff --git a/sysdeps/nios2/configure b/sysdeps/nios2/configure +index 14c8a3a014..dde3814ef2 100644 +--- a/sysdeps/nios2/configure ++++ b/sysdeps/nios2/configure +@@ -142,12 +142,12 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef __nios2_big_endian__ +- yes ++ is_nios2_be + #endif + + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "is_nios2_be" >/dev/null 2>&1; then : + libc_cv_nios2_be=yes + else + libc_cv_nios2_be=no +diff --git a/sysdeps/nios2/configure.ac b/sysdeps/nios2/configure.ac +index f05f43802b..dc8639902d 100644 +--- a/sysdeps/nios2/configure.ac ++++ b/sysdeps/nios2/configure.ac +@@ -4,8 +4,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + # Nios II big endian is not yet supported. + AC_CACHE_CHECK([for big endian], + [libc_cv_nios2_be], +- [AC_EGREP_CPP(yes,[#ifdef __nios2_big_endian__ +- yes ++ [AC_EGREP_CPP(is_nios2_be,[#ifdef __nios2_big_endian__ ++ is_nios2_be + #endif + ], 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 25f98e0c7b..e95bfae359 100644 +--- a/sysdeps/unix/sysv/linux/mips/configure ++++ b/sysdeps/unix/sysv/linux/mips/configure +@@ -414,11 +414,11 @@ else + /* end confdefs.h. */ + dnl + #ifdef __mips_nan2008 +-yes ++use_mips_nan2008 + #endif + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "use_mips_nan2008" >/dev/null 2>&1; then : + libc_cv_mips_nan2008=yes + 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 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( + LIBC_CONFIG_VAR([mips-mode-switch],[${libc_mips_mode_switch}]) + + AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding], +- libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl ++ libc_cv_mips_nan2008, [AC_EGREP_CPP(use_mips_nan2008, [dnl + #ifdef __mips_nan2008 +-yes ++use_mips_nan2008 + #endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)]) + + libc_mips_nan= +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure +index ae7f254da4..874519000b 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure +@@ -155,12 +155,12 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #if _CALL_ELF == 2 +- yes ++ use_ppc_elfv2_abi + #endif + + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "use_ppc_elfv2_abi" >/dev/null 2>&1; then : + libc_cv_ppc64_elfv2_abi=yes + else + libc_cv_ppc64_elfv2_abi=no +@@ -188,12 +188,12 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #ifdef _CALL_ELF +- yes ++ is_def_call_elf + #endif + + _ACEOF + if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | +- $EGREP "yes" >/dev/null 2>&1; then : ++ $EGREP "is_def_call_elf" >/dev/null 2>&1; then : + libc_cv_ppc64_def_call_elf=yes + else + libc_cv_ppc64_def_call_elf=no +diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac +index f9cba6e15d..b21f72f1e4 100644 +--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac ++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac +@@ -6,8 +6,8 @@ LIBC_SLIBDIR_RTLDDIR([lib64], [lib64]) + # Define default-abi according to compiler flags. + AC_CACHE_CHECK([whether the compiler is using the PowerPC64 ELFv2 ABI], + [libc_cv_ppc64_elfv2_abi], +- [AC_EGREP_CPP(yes,[#if _CALL_ELF == 2 +- yes ++ [AC_EGREP_CPP(use_ppc_elfv2_abi,[#if _CALL_ELF == 2 ++ use_ppc_elfv2_abi + #endif + ], libc_cv_ppc64_elfv2_abi=yes, libc_cv_ppc64_elfv2_abi=no)]) + if test $libc_cv_ppc64_elfv2_abi = yes; then +@@ -19,8 +19,8 @@ else + # Compiler that do not support ELFv2 ABI does not define _CALL_ELF + AC_CACHE_CHECK([whether the compiler defines _CALL_ELF], + [libc_cv_ppc64_def_call_elf], +- [AC_EGREP_CPP(yes,[#ifdef _CALL_ELF +- yes ++ [AC_EGREP_CPP(is_def_call_elf,[#ifdef _CALL_ELF ++ is_def_call_elf + #endif + ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)]) + if test $libc_cv_ppc64_def_call_elf = no; then diff --git a/external/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/external/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch deleted file mode 100644 index 29109a26..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch +++ /dev/null @@ -1,616 +0,0 @@ -From 44a5c79efea09f5b990e524ec42abdeef444056a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:42:58 +0000 -Subject: [PATCH] eglibc: Cross building and testing instructions - -Ported from eglibc -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - GLIBC.cross-building | 383 +++++++++++++++++++++++++++++++++++++++++++ - GLIBC.cross-testing | 205 +++++++++++++++++++++++ - 2 files changed, 588 insertions(+) - create mode 100644 GLIBC.cross-building - create mode 100644 GLIBC.cross-testing - -diff --git a/GLIBC.cross-building b/GLIBC.cross-building -new file mode 100644 -index 0000000000..e6e0da1aaf ---- /dev/null -+++ b/GLIBC.cross-building -@@ -0,0 +1,383 @@ -+ -*- mode: text -*- -+ -+ Cross-Compiling GLIBC -+ Jim Blandy -+ -+ -+Introduction -+ -+Most GNU tools have a simple build procedure: you run their -+'configure' script, and then you run 'make'. Unfortunately, the -+process of cross-compiling the GNU C library is quite a bit more -+involved: -+ -+1) Build a cross-compiler, with certain facilities disabled. -+ -+2) Configure the C library using the compiler you built in step 1). -+ Build a few of the C run-time object files, but not the rest of the -+ library. Install the library's header files and the run-time -+ object files, and create a dummy libc.so. -+ -+3) Build a second cross-compiler, using the header files and object -+ files you installed in step 2. -+ -+4) Configure, build, and install a fresh C library, using the compiler -+ built in step 3. -+ -+5) Build a third cross-compiler, based on the C library built in step 4. -+ -+The reason for this complexity is that, although GCC and the GNU C -+library are distributed separately, they are not actually independent -+of each other: GCC requires the C library's headers and some object -+files to compile its own libraries, while the C library depends on -+GCC's libraries. GLIBC includes features and bug fixes to the stock -+GNU C library that simplify this process, but the fundamental -+interdependency stands. -+ -+In this document, we explain how to cross-compile an GLIBC/GCC pair -+from source. Our intended audience is developers who are already -+familiar with the GNU toolchain and comfortable working with -+cross-development tools. While we do present a worked example to -+accompany the explanation, for clarity's sake we do not cover many of -+the options available to cross-toolchain users. -+ -+ -+Preparation -+ -+GLIBC requires recent versions of the GNU binutils, GCC, and the -+Linux kernel. The web page -+documents the current requirements, and lists patches needed for -+certain target architectures. As of this writing, these build -+instructions have been tested with binutils 2.22.51, GCC 4.6.2, -+and Linux 3.1. -+ -+First, let's set some variables, to simplify later commands. We'll -+build GLIBC and GCC for an ARM target, known to the Linux kernel -+as 'arm', and we'll do the build on an Intel x86_64 Linux box: -+ -+ $ build=x86_64-pc-linux-gnu -+ $ host=$build -+ $ target=arm-none-linux-gnueabi -+ $ linux_arch=arm -+ -+We're using the aforementioned versions of Binutils, GCC, and Linux: -+ -+ $ binutilsv=binutils-2.22.51 -+ $ gccv=gcc-4.6.2 -+ $ linuxv=linux-3.1 -+ -+We're carrying out the entire process under '~/cross-build', which -+contains unpacked source trees for binutils, gcc, and linux kernel, -+along with GLIBC svn trunk (which can be checked-out with -+'svn co http://www.eglibc.org/svn/trunk eglibc'): -+ -+ $ top=$HOME/cross-build/$target -+ $ src=$HOME/cross-build/src -+ $ ls $src -+ binutils-2.22.51 glibc gcc-4.6.2 linux-3.1 -+ -+We're going to place our build directories in a subdirectory 'obj', -+we'll install the cross-development toolchain in 'tools', and we'll -+place our sysroot (containing files to be installed on the target -+system) in 'sysroot': -+ -+ $ obj=$top/obj -+ $ tools=$top/tools -+ $ sysroot=$top/sysroot -+ -+ -+Binutils -+ -+Configuring and building binutils for the target is straightforward: -+ -+ $ mkdir -p $obj/binutils -+ $ cd $obj/binutils -+ $ $src/$binutilsv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot -+ $ make -+ $ make install -+ -+ -+The First GCC -+ -+For our work, we need a cross-compiler targeting an ARM Linux -+system. However, that configuration includes the shared library -+'libgcc_s.so', which is compiled against the GLIBC headers (which we -+haven't installed yet) and linked against 'libc.so' (which we haven't -+built yet). -+ -+Fortunately, there are configuration options for GCC which tell it not -+to build 'libgcc_s.so'. The '--without-headers' option is supposed to -+take care of this, but its implementation is incomplete, so you must -+also configure with the '--with-newlib' option. While '--with-newlib' -+appears to mean "Use the Newlib C library", its effect is to tell the -+GCC build machinery, "Don't assume there is a C library available." -+ -+We also need to disable some of the libraries that would normally be -+built along with GCC, and specify that only the compiler for the C -+language is needed. -+ -+So, we create a build directory, configure, make, and install. -+ -+ $ mkdir -p $obj/gcc1 -+ $ cd $obj/gcc1 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --without-headers --with-newlib \ -+ > --disable-shared --disable-threads --disable-libssp \ -+ > --disable-libgomp --disable-libmudflap --disable-libquadmath \ -+ > --disable-decimal-float --disable-libffi \ -+ > --enable-languages=c -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+ -+Linux Kernel Headers -+ -+To configure GLIBC, we also need Linux kernel headers in place. -+Fortunately, the Linux makefiles have a target that installs them for -+us. Since the process does modify the source tree a bit, we make a -+copy first: -+ -+ $ cp -r $src/$linuxv $obj/linux -+ $ cd $obj/linux -+ -+Now we're ready to install the headers into the sysroot: -+ -+ $ PATH=$tools/bin:$PATH \ -+ > make headers_install \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ > INSTALL_HDR_PATH=$sysroot/usr -+ -+ -+GLIBC Headers and Preliminary Objects -+ -+Using the cross-compiler we've just built, we can now configure GLIBC -+well enough to install the headers and build the object files that the -+full cross-compiler will need: -+ -+ $ mkdir -p $obj/glibc-headers -+ $ cd $obj/glibc-headers -+ $ BUILD_CC=gcc \ -+ > CC=$tools/bin/$target-gcc \ -+ > CXX=$tools/bin/$target-g++ \ -+ > AR=$tools/bin/$target-ar \ -+ > RANLIB=$tools/bin/$target-ranlib \ -+ > $src/glibc/libc/configure \ -+ > --prefix=/usr \ -+ > --with-headers=$sysroot/usr/include \ -+ > --build=$build \ -+ > --host=$target \ -+ > --disable-profile --without-gd --without-cvs \ -+ > --enable-add-ons=nptl,libidn,../ports -+ -+The option '--prefix=/usr' may look strange, but you should never -+configure GLIBC with a prefix other than '/usr': in various places, -+GLIBC's build system checks whether the prefix is '/usr', and does -+special handling only if that is the case. Unless you use this -+prefix, you will get a sysroot that does not use the standard Linux -+directory layouts and cannot be used as a basis for the root -+filesystem on your target system compatibly with normal GLIBC -+installations. -+ -+The '--with-headers' option tells GLIBC where the Linux headers have -+been installed. -+ -+The '--enable-add-ons=nptl,libidn,../ports' option tells GLIBC to look -+for the listed glibc add-ons. Most notably the ports add-on (located -+just above the libc sources in the GLIBC svn tree) is required to -+support ARM targets. -+ -+We can now use the 'install-headers' makefile target to install the -+headers: -+ -+ $ make install-headers install_root=$sysroot \ -+ > install-bootstrap-headers=yes -+ -+The 'install_root' variable indicates where the files should actually -+be installed; its value is treated as the parent of the '--prefix' -+directory we passed to the configure script, so the headers will go in -+'$sysroot/usr/include'. The 'install-bootstrap-headers' variable -+requests special handling for certain tricky header files. -+ -+Next, there are a few object files needed to link shared libraries, -+which we build and install by hand: -+ -+ $ mkdir -p $sysroot/usr/lib -+ $ make csu/subdir_lib -+ $ cp csu/crt1.o csu/crti.o csu/crtn.o $sysroot/usr/lib -+ -+Finally, 'libgcc_s.so' requires a 'libc.so' to link against. However, -+since we will never actually execute its code, it doesn't matter what -+it contains. So, treating '/dev/null' as a C source file, we produce -+a dummy 'libc.so' in one step: -+ -+ $ $tools/bin/$target-gcc -nostdlib -nostartfiles -shared -x c /dev/null \ -+ > -o $sysroot/usr/lib/libc.so -+ -+ -+The Second GCC -+ -+With the GLIBC headers and selected object files installed, we can -+now build a GCC that is capable of compiling GLIBC. We configure, -+build, and install the second GCC, again building only the C compiler, -+and avoiding libraries we won't use: -+ -+ $ mkdir -p $obj/gcc2 -+ $ cd $obj/gcc2 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot \ -+ > --disable-libssp --disable-libgomp --disable-libmudflap \ -+ > --disable-libffi --disable-libquadmath \ -+ > --enable-languages=c -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+ -+GLIBC, Complete -+ -+With the second compiler built and installed, we're now ready for the -+full GLIBC build: -+ -+ $ mkdir -p $obj/glibc -+ $ cd $obj/glibc -+ $ BUILD_CC=gcc \ -+ > CC=$tools/bin/$target-gcc \ -+ > CXX=$tools/bin/$target-g++ \ -+ > AR=$tools/bin/$target-ar \ -+ > RANLIB=$tools/bin/$target-ranlib \ -+ > $src/glibc/libc/configure \ -+ > --prefix=/usr \ -+ > --with-headers=$sysroot/usr/include \ -+ > --with-kconfig=$obj/linux/scripts/kconfig \ -+ > --build=$build \ -+ > --host=$target \ -+ > --disable-profile --without-gd --without-cvs \ -+ > --enable-add-ons=nptl,libidn,../ports -+ -+Note the additional '--with-kconfig' option. This tells GLIBC where to -+find the host config tools used by the kernel 'make config' and 'make -+menuconfig'. These tools can be re-used by GLIBC for its own 'make -+*config' support, which will create 'option-groups.config' for you. -+But first make sure those tools have been built by running some -+dummy 'make *config' calls in the kernel directory: -+ -+ $ cd $obj/linux -+ $ PATH=$tools/bin:$PATH make config \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ $ PATH=$tools/bin:$PATH make menuconfig \ -+ > ARCH=$linux_arch CROSS_COMPILE=$target- \ -+ -+Now we can configure and build the full GLIBC: -+ -+ $ cd $obj/glibc -+ $ PATH=$tools/bin:$PATH make defconfig -+ $ PATH=$tools/bin:$PATH make menuconfig -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install install_root=$sysroot -+ -+At this point, we have a complete GLIBC installation in '$sysroot', -+with header files, library files, and most of the C runtime startup -+files in place. -+ -+ -+The Third GCC -+ -+Finally, we recompile GCC against this full installation, enabling -+whatever languages and libraries we would like to use: -+ -+ $ mkdir -p $obj/gcc3 -+ $ cd $obj/gcc3 -+ $ $src/$gccv/configure \ -+ > --target=$target \ -+ > --prefix=$tools \ -+ > --with-sysroot=$sysroot \ -+ > --enable-__cxa_atexit \ -+ > --disable-libssp --disable-libgomp --disable-libmudflap \ -+ > --enable-languages=c,c++ -+ $ PATH=$tools/bin:$PATH make -+ $ PATH=$tools/bin:$PATH make install -+ -+The '--enable-__cxa_atexit' option tells GCC what sort of C++ -+destructor support to expect from the C library; it's required with -+GLIBC. -+ -+And since GCC's installation process isn't designed to help construct -+sysroot trees, we must manually copy certain libraries into place in -+the sysroot. -+ -+ $ cp -d $tools/$target/lib/libgcc_s.so* $sysroot/lib -+ $ cp -d $tools/$target/lib/libstdc++.so* $sysroot/usr/lib -+ -+ -+Trying Things Out -+ -+At this point, '$tools' contains a cross toolchain ready to use -+the GLIBC installation in '$sysroot': -+ -+ $ cat > hello.c < #include -+ > int -+ > main (int argc, char **argv) -+ > { -+ > puts ("Hello, world!"); -+ > return 0; -+ > } -+ > EOF -+ $ $tools/bin/$target-gcc -Wall hello.c -o hello -+ $ cat > c++-hello.cc < #include -+ > int -+ > main (int argc, char **argv) -+ > { -+ > std::cout << "Hello, C++ world!" << std::endl; -+ > return 0; -+ > } -+ > EOF -+ $ $tools/bin/$target-g++ -Wall c++-hello.cc -o c++-hello -+ -+ -+We can use 'readelf' to verify that these are indeed executables for -+our target, using our dynamic linker: -+ -+ $ $tools/bin/$target-readelf -hl hello -+ ELF Header: -+ ... -+ Type: EXEC (Executable file) -+ Machine: ARM -+ -+ ... -+ Program Headers: -+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align -+ PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 -+ INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 -+ [Requesting program interpreter: /lib/ld-linux.so.3] -+ LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 -+ ... -+ -+Looking at the dynamic section of the installed 'libgcc_s.so', we see -+that the 'NEEDED' entry for the C library does include the '.6' -+suffix, indicating that was linked against our fully build GLIBC, and -+not our dummy 'libc.so': -+ -+ $ $tools/bin/$target-readelf -d $sysroot/lib/libgcc_s.so.1 -+ Dynamic section at offset 0x1083c contains 24 entries: -+ Tag Type Name/Value -+ 0x00000001 (NEEDED) Shared library: [libc.so.6] -+ 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] -+ ... -+ -+ -+And on the target machine, we can run our programs: -+ -+ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ -+ > ./hello -+ Hello, world! -+ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ -+ > ./c++-hello -+ Hello, C++ world! -diff --git a/GLIBC.cross-testing b/GLIBC.cross-testing -new file mode 100644 -index 0000000000..b67b468466 ---- /dev/null -+++ b/GLIBC.cross-testing -@@ -0,0 +1,205 @@ -+ -*- mode: text -*- -+ -+ Cross-Testing With GLIBC -+ Jim Blandy -+ -+ -+Introduction -+ -+Developers writing software for embedded systems often use a desktop -+or other similarly capable computer for development, but need to run -+tests on the embedded system, or perhaps on a simulator. When -+configured for cross-compilation, the stock GNU C library simply -+disables running tests altogether: the command 'make tests' builds -+test programs, but does not run them. GLIBC, however, provides -+facilities for compiling tests and generating data files on the build -+system, but running the test programs themselves on a remote system or -+simulator. -+ -+ -+Test environment requirements -+ -+The test environment must meet certain conditions for GLIBC's -+cross-testing facilities to work: -+ -+- Shared filesystems. The 'build' system, on which you configure and -+ compile GLIBC, and the 'host' system, on which you intend to run -+ GLIBC, must share a filesystem containing the GLIBC build and -+ source trees. Files must appear at the same paths on both systems. -+ -+- Remote-shell like invocation. There must be a way to run a program -+ on the host system from the build system, passing it properly quoted -+ command-line arguments, setting environment variables, and -+ inheriting the caller's standard input and output. -+ -+ -+Usage -+ -+To use GLIBC's cross-testing support, provide values for the -+following Make variables when you invoke 'make': -+ -+- cross-test-wrapper -+ -+ This should be the name of the cross-testing wrapper command, along -+ with any arguments. -+ -+- cross-localedef -+ -+ This should be the name of a cross-capable localedef program, like -+ that included in the GLIBC 'localedef' module, along with any -+ arguments needed. -+ -+These are each explained in detail below. -+ -+ -+The Cross-Testing Wrapper -+ -+To run test programs reliably, the stock GNU C library takes care to -+ensure that test programs use the newly compiled dynamic linker and -+shared libraries, and never the host system's installed libraries. To -+accomplish this, it runs the tests by explicitly invoking the dynamic -+linker from the build tree, passing it a list of build tree -+directories to search for shared libraries, followed by the name of -+the executable to run and its arguments. -+ -+For example, where one might normally run a test program like this: -+ -+ $ ./tst-foo arg1 arg2 -+ -+the GNU C library might run that program like this: -+ -+ $ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+(where $objdir is the path to the top of the build tree, and the -+trailing backslash indicates a continuation of the command). In other -+words, each test program invocation is 'wrapped up' inside an explicit -+invocation of the dynamic linker, which must itself execute the test -+program, having loaded shared libraries from the appropriate -+directories. -+ -+To support cross-testing, GLIBC allows the developer to optionally -+set the 'cross-test-wrapper' Make variable to another wrapper command, -+to which it passes the entire dynamic linker invocation shown above as -+arguments. For example, if the developer supplies a wrapper of -+'my-wrapper hostname', then GLIBC would run the test above as -+follows: -+ -+ $ my-wrapper hostname \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+The 'my-wrapper' command is responsible for executing the command -+given on the host system. -+ -+Since tests are run in varying directories, the wrapper should either -+be in your command search path, or 'cross-test-wrapper' should give an -+absolute path for the wrapper. -+ -+The wrapper must meet several requirements: -+ -+- It must preserve the current directory. As explained above, the -+ build directory tree must be visible on both the build and host -+ systems, at the same path. The test wrapper must ensure that the -+ current directory it inherits is also inherited by the dynamic -+ linker (and thus the test program itself). -+ -+- It must preserve environment variables' values. Many GLIBC tests -+ set environment variables for test runs; in native testing, it -+ invokes programs like this: -+ -+ $ GCONV_PATH=$objdir/iconvdata \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+ With the cross-testing wrapper, that invocation becomes: -+ -+ $ GCONV_PATH=$objdir/iconvdata \ -+ my-wrapper hostname \ -+ $objdir/elf/ld-linux.so.3 --library-path $objdir \ -+ ./tst-foo arg1 arg2 -+ -+ Here, 'my-wrapper' must ensure that the value it sees for -+ 'GCONV_PATH' will be seen by the dynamic linker, and thus 'tst-foo' -+ itself. (The wrapper supplied with GLIBC simply preserves the -+ values of *all* enviroment variables, with a fixed set of -+ exceptions.) -+ -+ If your wrapper is a shell script, take care to correctly propagate -+ environment variables whose values contain spaces and shell -+ metacharacters. -+ -+- It must pass the command's arguments, unmodified. The arguments -+ seen by the test program should be exactly those seen by the wrapper -+ (after whatever arguments are given to the wrapper itself). The -+ GLIBC test framework performs all needed shell word splitting and -+ expansion (wildcard expansion, parameter substitution, and so on) -+ before invoking the wrapper; further expansion may break the tests. -+ -+ -+The 'cross-test-ssh.sh' script -+ -+If you want to use 'ssh' (or something sufficiently similar) to run -+test programs on your host system, GLIBC includes a shell script, -+'scripts/cross-test-ssh.sh', which you can use as your wrapper -+command. This script takes care of setting the test command's current -+directory, propagating environment variable values, and carrying -+command-line arguments, all across an 'ssh' connection. You may even -+supply an alternative to 'ssh' on the command line, if needed. -+ -+For more details, pass 'cross-test-ssh.sh' the '--help' option. -+ -+ -+The Cross-Compiling Locale Definition Command -+ -+Some GLIBC tests rely on locales generated especially for the test -+process. In a native configuration, these tests simply run the -+'localedef' command built by the normal GLIBC build process, -+'locale/localedef', to process and install their locales. However, in -+a cross-compiling configuration, this 'localedef' is built for the -+host system, not the build system, and since it requires quite a bit -+of memory to run (we have seen it fail on systems with 64MiB of -+memory), it may not be practical to run it on the host system. -+ -+If set, GLIBC uses the 'cross-localedef' Make variable as the command -+to run on the build system to process and install locales. The -+localedef program built from the GLIBC 'localedef' module is -+suitable. -+ -+The value of 'cross-localedef' may also include command-line arguments -+to be passed to the program; if you are using GLIBC's 'localedef', -+you may include endianness and 'uint32_t' alignment arguments here. -+ -+ -+Example -+ -+In developing GLIBC's cross-testing facility, we invoked 'make' with -+the following script: -+ -+ #!/bin/sh -+ -+ srcdir=... -+ test_hostname=... -+ localedefdir=... -+ cross_gxx=...-g++ -+ -+ wrapper="$srcdir/scripts/cross-test-ssh.sh $test_hostname" -+ localedef="$localedefdir/localedef --little-endian --uint32-align=4" -+ -+ make cross-test-wrapper="$wrapper" \ -+ cross-localedef="$localedef" \ -+ CXX="$cross_gxx" \ -+ "$@" -+ -+ -+Other Cross-Testing Concerns -+ -+Here are notes on some other issues which you may encounter in running -+the GLIBC tests in a cross-compiling environment: -+ -+- Some tests require a C++ cross-compiler; you should set the 'CXX' -+ Make variable to the name of an appropriate cross-compiler. -+ -+- Some tests require access to libstdc++.so.6 and libgcc_s.so.1; we -+ simply place copies of these libraries in the top GLIBC build -+ directory. diff --git a/external/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch b/external/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch new file mode 100644 index 00000000..20b0ee98 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch @@ -0,0 +1,42 @@ +From 2023d88c355b8af6458c8e39ce38b75c1ca4ea2a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:33:03 +0000 +Subject: [PATCH] timezone: re-written tzselect as posix sh + +To avoid the bash dependency. + +Upstream-Status: Pending + +Signed-off-by: Hongxu Jia +Signed-off-by: Khem Raj +--- + timezone/Makefile | 2 +- + timezone/tzselect.ksh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/timezone/Makefile b/timezone/Makefile +index 75f38df527..74e1ab7ff7 100644 +--- a/timezone/Makefile ++++ b/timezone/Makefile +@@ -122,7 +122,7 @@ $(testdata)/XT%: testdata/XT% + cp $< $@ + + $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make +- sed -e 's|/bin/bash|$(BASH)|' \ ++ sed -e 's|/bin/bash|/bin/sh|' \ + -e 's|TZDIR=[^}]*|TZDIR=$(zonedir)|' \ + -e '/TZVERSION=/s|see_Makefile|"$(version)"|' \ + -e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \ +diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh +index 18fce27e24..70745f9d36 100755 +--- a/timezone/tzselect.ksh ++++ b/timezone/tzselect.ksh +@@ -34,7 +34,7 @@ REPORT_BUGS_TO=tz@iana.org + + # Specify default values for environment variables if they are unset. + : ${AWK=awk} +-: ${TZDIR=`pwd`} ++: ${TZDIR=$(pwd)} + + # Output one argument as-is to standard output. + # Safer than 'echo', which can mishandle '\' or leading '-'. diff --git a/external/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch b/external/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch new file mode 100644 index 00000000..1c15a513 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch @@ -0,0 +1,72 @@ +From 06da20d9f89907e5f2777537244e6589ca3c9703 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Dec 2015 14:33:02 -0800 +Subject: [PATCH] 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. + +Upstream-Status: Pending + +Signed-off-by: Ross Burton +Signed-off-by: Khem Raj +--- + nscd/nscd.init | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/nscd/nscd.init b/nscd/nscd.init +index a882da7d8b..b02986ec15 100644 +--- a/nscd/nscd.init ++++ b/nscd/nscd.init +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # nscd: Starts the Name Switch Cache Daemon + # +@@ -49,7 +49,7 @@ prog=nscd + start () { + [ -d /var/run/nscd ] || mkdir /var/run/nscd + [ -d /var/db/nscd ] || mkdir /var/db/nscd +- echo -n $"Starting $prog: " ++ echo -n "Starting $prog: " + daemon /usr/sbin/nscd + RETVAL=$? + echo +@@ -58,7 +58,7 @@ start () { + } + + stop () { +- echo -n $"Stopping $prog: " ++ echo -n "Stopping $prog: " + /usr/sbin/nscd -K + RETVAL=$? + if [ $RETVAL -eq 0 ]; then +@@ -67,9 +67,9 @@ stop () { + # a non-privileged user + rm -f /var/run/nscd/nscd.pid + rm -f /var/run/nscd/socket +- success $"$prog shutdown" ++ success "$prog shutdown" + else +- failure $"$prog shutdown" ++ failure "$prog shutdown" + fi + echo + return $RETVAL +@@ -103,13 +103,13 @@ case "$1" in + RETVAL=$? + ;; + force-reload | reload) +- echo -n $"Reloading $prog: " ++ echo -n "Reloading $prog: " + killproc /usr/sbin/nscd -HUP + RETVAL=$? + echo + ;; + *) +- echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" ++ echo "Usage: $0 {start|stop|status|restart|reload|condrestart}" + RETVAL=1 + ;; + esac diff --git a/external/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/external/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch deleted file mode 100644 index 71c2ab91..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch +++ /dev/null @@ -1,97 +0,0 @@ -From f4ec5527d562d38523abb8587a6c7532e9d21f8a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:49:28 +0000 -Subject: [PATCH] eglibc: Help bootstrap cross toolchain - -Taken from EGLIBC, r1484 + r1525 - - 2007-02-20 Jim Blandy - - * Makefile (install-headers): Preserve old behavior: depend on - $(inst_includedir)/gnu/stubs.h only if install-bootstrap-headers - is set; otherwise, place gnu/stubs.h on the 'install-others' list. - - 2007-02-16 Jim Blandy - - * Makefile: Amend make install-headers to install everything - necessary for building a cross-compiler. Install gnu/stubs.h as - part of 'install-headers', not 'install-others'. - If install-bootstrap-headers is 'yes', install a dummy copy of - gnu/stubs.h, instead of computing the real thing. - * include/stubs-bootstrap.h: New file. - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - Makefile | 22 +++++++++++++++++++++- - include/stubs-bootstrap.h | 12 ++++++++++++ - 2 files changed, 33 insertions(+), 1 deletion(-) - create mode 100644 include/stubs-bootstrap.h - -diff --git a/Makefile b/Makefile -index d3f25a525a..ab383867e2 100644 ---- a/Makefile -+++ b/Makefile -@@ -70,9 +70,18 @@ subdir-dirs = include - vpath %.h $(subdir-dirs) - - # What to install. --install-others = $(inst_includedir)/gnu/stubs.h - install-bin-script = - -+# If we're bootstrapping, install a dummy gnu/stubs.h along with the -+# other headers, so 'make install-headers' produces a useable include -+# tree. Otherwise, install gnu/stubs.h later, after the rest of the -+# build is done. -+ifeq ($(install-bootstrap-headers),yes) -+install-headers: $(inst_includedir)/gnu/stubs.h -+else -+install-others = $(inst_includedir)/gnu/stubs.h -+endif -+ - ifeq (yes,$(build-shared)) - headers += gnu/lib-names.h - endif -@@ -195,6 +204,16 @@ others: $(common-objpfx)testrun.sh - - subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs) - -+# gnu/stubs.h depends (via the subdir 'stubs' targets) on all the .o -+# files in EGLIBC. For bootstrapping a GCC/EGLIBC pair, an empty -+# gnu/stubs.h is good enough. -+ifeq ($(install-bootstrap-headers),yes) -+$(inst_includedir)/gnu/stubs.h: include/stubs-bootstrap.h $(+force) -+ $(make-target-directory) -+ $(INSTALL_DATA) $< $@ -+ -+installed-stubs = -+else - ifndef abi-variants - installed-stubs = $(inst_includedir)/gnu/stubs.h - else -@@ -221,6 +240,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force) - - install-others-nosubdir: $(installed-stubs) - endif -+endif - - - # Since stubs.h is never needed when building the library, we simplify the -diff --git a/include/stubs-bootstrap.h b/include/stubs-bootstrap.h -new file mode 100644 -index 0000000000..1d2b669aff ---- /dev/null -+++ b/include/stubs-bootstrap.h -@@ -0,0 +1,12 @@ -+/* Placeholder stubs.h file for bootstrapping. -+ -+ When bootstrapping a GCC/EGLIBC pair, GCC requires that the EGLIBC -+ headers be installed, but we can't fully build EGLIBC without that -+ GCC. So we run the command: -+ -+ make install-headers install-bootstrap-headers=yes -+ -+ to install the headers GCC needs, but avoid building certain -+ difficult headers. The header depends, via the -+ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but -+ an empty stubs.h like this will do fine for GCC. */ diff --git a/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch b/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch deleted file mode 100644 index 6e475a71..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Clear-cache-lines-on-ppc8xx.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 6c23660d035e71de0e20b40460ad3050bd057665 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 31 Dec 2015 15:15:09 -0800 -Subject: [PATCH] eglibc: Clear cache lines on ppc8xx - -2007-06-13 Nathan Sidwell - Mark Shinwell - - * 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 ---- - 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 78051bc7bc..e24f442320 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 f2ad0c355d..3e6773795e 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 diff --git a/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch b/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch new file mode 100644 index 00000000..eda55653 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch @@ -0,0 +1,616 @@ +From 5641452a24f76c5dafa3749a542fcac93f77390f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:42:58 +0000 +Subject: [PATCH] eglibc: Cross building and testing instructions + +Ported from eglibc +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + GLIBC.cross-building | 383 +++++++++++++++++++++++++++++++++++++++++++ + GLIBC.cross-testing | 205 +++++++++++++++++++++++ + 2 files changed, 588 insertions(+) + create mode 100644 GLIBC.cross-building + create mode 100644 GLIBC.cross-testing + +diff --git a/GLIBC.cross-building b/GLIBC.cross-building +new file mode 100644 +index 0000000000..e6e0da1aaf +--- /dev/null ++++ b/GLIBC.cross-building +@@ -0,0 +1,383 @@ ++ -*- mode: text -*- ++ ++ Cross-Compiling GLIBC ++ Jim Blandy ++ ++ ++Introduction ++ ++Most GNU tools have a simple build procedure: you run their ++'configure' script, and then you run 'make'. Unfortunately, the ++process of cross-compiling the GNU C library is quite a bit more ++involved: ++ ++1) Build a cross-compiler, with certain facilities disabled. ++ ++2) Configure the C library using the compiler you built in step 1). ++ Build a few of the C run-time object files, but not the rest of the ++ library. Install the library's header files and the run-time ++ object files, and create a dummy libc.so. ++ ++3) Build a second cross-compiler, using the header files and object ++ files you installed in step 2. ++ ++4) Configure, build, and install a fresh C library, using the compiler ++ built in step 3. ++ ++5) Build a third cross-compiler, based on the C library built in step 4. ++ ++The reason for this complexity is that, although GCC and the GNU C ++library are distributed separately, they are not actually independent ++of each other: GCC requires the C library's headers and some object ++files to compile its own libraries, while the C library depends on ++GCC's libraries. GLIBC includes features and bug fixes to the stock ++GNU C library that simplify this process, but the fundamental ++interdependency stands. ++ ++In this document, we explain how to cross-compile an GLIBC/GCC pair ++from source. Our intended audience is developers who are already ++familiar with the GNU toolchain and comfortable working with ++cross-development tools. While we do present a worked example to ++accompany the explanation, for clarity's sake we do not cover many of ++the options available to cross-toolchain users. ++ ++ ++Preparation ++ ++GLIBC requires recent versions of the GNU binutils, GCC, and the ++Linux kernel. The web page ++documents the current requirements, and lists patches needed for ++certain target architectures. As of this writing, these build ++instructions have been tested with binutils 2.22.51, GCC 4.6.2, ++and Linux 3.1. ++ ++First, let's set some variables, to simplify later commands. We'll ++build GLIBC and GCC for an ARM target, known to the Linux kernel ++as 'arm', and we'll do the build on an Intel x86_64 Linux box: ++ ++ $ build=x86_64-pc-linux-gnu ++ $ host=$build ++ $ target=arm-none-linux-gnueabi ++ $ linux_arch=arm ++ ++We're using the aforementioned versions of Binutils, GCC, and Linux: ++ ++ $ binutilsv=binutils-2.22.51 ++ $ gccv=gcc-4.6.2 ++ $ linuxv=linux-3.1 ++ ++We're carrying out the entire process under '~/cross-build', which ++contains unpacked source trees for binutils, gcc, and linux kernel, ++along with GLIBC svn trunk (which can be checked-out with ++'svn co http://www.eglibc.org/svn/trunk eglibc'): ++ ++ $ top=$HOME/cross-build/$target ++ $ src=$HOME/cross-build/src ++ $ ls $src ++ binutils-2.22.51 glibc gcc-4.6.2 linux-3.1 ++ ++We're going to place our build directories in a subdirectory 'obj', ++we'll install the cross-development toolchain in 'tools', and we'll ++place our sysroot (containing files to be installed on the target ++system) in 'sysroot': ++ ++ $ obj=$top/obj ++ $ tools=$top/tools ++ $ sysroot=$top/sysroot ++ ++ ++Binutils ++ ++Configuring and building binutils for the target is straightforward: ++ ++ $ mkdir -p $obj/binutils ++ $ cd $obj/binutils ++ $ $src/$binutilsv/configure \ ++ > --target=$target \ ++ > --prefix=$tools \ ++ > --with-sysroot=$sysroot ++ $ make ++ $ make install ++ ++ ++The First GCC ++ ++For our work, we need a cross-compiler targeting an ARM Linux ++system. However, that configuration includes the shared library ++'libgcc_s.so', which is compiled against the GLIBC headers (which we ++haven't installed yet) and linked against 'libc.so' (which we haven't ++built yet). ++ ++Fortunately, there are configuration options for GCC which tell it not ++to build 'libgcc_s.so'. The '--without-headers' option is supposed to ++take care of this, but its implementation is incomplete, so you must ++also configure with the '--with-newlib' option. While '--with-newlib' ++appears to mean "Use the Newlib C library", its effect is to tell the ++GCC build machinery, "Don't assume there is a C library available." ++ ++We also need to disable some of the libraries that would normally be ++built along with GCC, and specify that only the compiler for the C ++language is needed. ++ ++So, we create a build directory, configure, make, and install. ++ ++ $ mkdir -p $obj/gcc1 ++ $ cd $obj/gcc1 ++ $ $src/$gccv/configure \ ++ > --target=$target \ ++ > --prefix=$tools \ ++ > --without-headers --with-newlib \ ++ > --disable-shared --disable-threads --disable-libssp \ ++ > --disable-libgomp --disable-libmudflap --disable-libquadmath \ ++ > --disable-decimal-float --disable-libffi \ ++ > --enable-languages=c ++ $ PATH=$tools/bin:$PATH make ++ $ PATH=$tools/bin:$PATH make install ++ ++ ++Linux Kernel Headers ++ ++To configure GLIBC, we also need Linux kernel headers in place. ++Fortunately, the Linux makefiles have a target that installs them for ++us. Since the process does modify the source tree a bit, we make a ++copy first: ++ ++ $ cp -r $src/$linuxv $obj/linux ++ $ cd $obj/linux ++ ++Now we're ready to install the headers into the sysroot: ++ ++ $ PATH=$tools/bin:$PATH \ ++ > make headers_install \ ++ > ARCH=$linux_arch CROSS_COMPILE=$target- \ ++ > INSTALL_HDR_PATH=$sysroot/usr ++ ++ ++GLIBC Headers and Preliminary Objects ++ ++Using the cross-compiler we've just built, we can now configure GLIBC ++well enough to install the headers and build the object files that the ++full cross-compiler will need: ++ ++ $ mkdir -p $obj/glibc-headers ++ $ cd $obj/glibc-headers ++ $ BUILD_CC=gcc \ ++ > CC=$tools/bin/$target-gcc \ ++ > CXX=$tools/bin/$target-g++ \ ++ > AR=$tools/bin/$target-ar \ ++ > RANLIB=$tools/bin/$target-ranlib \ ++ > $src/glibc/libc/configure \ ++ > --prefix=/usr \ ++ > --with-headers=$sysroot/usr/include \ ++ > --build=$build \ ++ > --host=$target \ ++ > --disable-profile --without-gd --without-cvs \ ++ > --enable-add-ons=nptl,libidn,../ports ++ ++The option '--prefix=/usr' may look strange, but you should never ++configure GLIBC with a prefix other than '/usr': in various places, ++GLIBC's build system checks whether the prefix is '/usr', and does ++special handling only if that is the case. Unless you use this ++prefix, you will get a sysroot that does not use the standard Linux ++directory layouts and cannot be used as a basis for the root ++filesystem on your target system compatibly with normal GLIBC ++installations. ++ ++The '--with-headers' option tells GLIBC where the Linux headers have ++been installed. ++ ++The '--enable-add-ons=nptl,libidn,../ports' option tells GLIBC to look ++for the listed glibc add-ons. Most notably the ports add-on (located ++just above the libc sources in the GLIBC svn tree) is required to ++support ARM targets. ++ ++We can now use the 'install-headers' makefile target to install the ++headers: ++ ++ $ make install-headers install_root=$sysroot \ ++ > install-bootstrap-headers=yes ++ ++The 'install_root' variable indicates where the files should actually ++be installed; its value is treated as the parent of the '--prefix' ++directory we passed to the configure script, so the headers will go in ++'$sysroot/usr/include'. The 'install-bootstrap-headers' variable ++requests special handling for certain tricky header files. ++ ++Next, there are a few object files needed to link shared libraries, ++which we build and install by hand: ++ ++ $ mkdir -p $sysroot/usr/lib ++ $ make csu/subdir_lib ++ $ cp csu/crt1.o csu/crti.o csu/crtn.o $sysroot/usr/lib ++ ++Finally, 'libgcc_s.so' requires a 'libc.so' to link against. However, ++since we will never actually execute its code, it doesn't matter what ++it contains. So, treating '/dev/null' as a C source file, we produce ++a dummy 'libc.so' in one step: ++ ++ $ $tools/bin/$target-gcc -nostdlib -nostartfiles -shared -x c /dev/null \ ++ > -o $sysroot/usr/lib/libc.so ++ ++ ++The Second GCC ++ ++With the GLIBC headers and selected object files installed, we can ++now build a GCC that is capable of compiling GLIBC. We configure, ++build, and install the second GCC, again building only the C compiler, ++and avoiding libraries we won't use: ++ ++ $ mkdir -p $obj/gcc2 ++ $ cd $obj/gcc2 ++ $ $src/$gccv/configure \ ++ > --target=$target \ ++ > --prefix=$tools \ ++ > --with-sysroot=$sysroot \ ++ > --disable-libssp --disable-libgomp --disable-libmudflap \ ++ > --disable-libffi --disable-libquadmath \ ++ > --enable-languages=c ++ $ PATH=$tools/bin:$PATH make ++ $ PATH=$tools/bin:$PATH make install ++ ++ ++GLIBC, Complete ++ ++With the second compiler built and installed, we're now ready for the ++full GLIBC build: ++ ++ $ mkdir -p $obj/glibc ++ $ cd $obj/glibc ++ $ BUILD_CC=gcc \ ++ > CC=$tools/bin/$target-gcc \ ++ > CXX=$tools/bin/$target-g++ \ ++ > AR=$tools/bin/$target-ar \ ++ > RANLIB=$tools/bin/$target-ranlib \ ++ > $src/glibc/libc/configure \ ++ > --prefix=/usr \ ++ > --with-headers=$sysroot/usr/include \ ++ > --with-kconfig=$obj/linux/scripts/kconfig \ ++ > --build=$build \ ++ > --host=$target \ ++ > --disable-profile --without-gd --without-cvs \ ++ > --enable-add-ons=nptl,libidn,../ports ++ ++Note the additional '--with-kconfig' option. This tells GLIBC where to ++find the host config tools used by the kernel 'make config' and 'make ++menuconfig'. These tools can be re-used by GLIBC for its own 'make ++*config' support, which will create 'option-groups.config' for you. ++But first make sure those tools have been built by running some ++dummy 'make *config' calls in the kernel directory: ++ ++ $ cd $obj/linux ++ $ PATH=$tools/bin:$PATH make config \ ++ > ARCH=$linux_arch CROSS_COMPILE=$target- \ ++ $ PATH=$tools/bin:$PATH make menuconfig \ ++ > ARCH=$linux_arch CROSS_COMPILE=$target- \ ++ ++Now we can configure and build the full GLIBC: ++ ++ $ cd $obj/glibc ++ $ PATH=$tools/bin:$PATH make defconfig ++ $ PATH=$tools/bin:$PATH make menuconfig ++ $ PATH=$tools/bin:$PATH make ++ $ PATH=$tools/bin:$PATH make install install_root=$sysroot ++ ++At this point, we have a complete GLIBC installation in '$sysroot', ++with header files, library files, and most of the C runtime startup ++files in place. ++ ++ ++The Third GCC ++ ++Finally, we recompile GCC against this full installation, enabling ++whatever languages and libraries we would like to use: ++ ++ $ mkdir -p $obj/gcc3 ++ $ cd $obj/gcc3 ++ $ $src/$gccv/configure \ ++ > --target=$target \ ++ > --prefix=$tools \ ++ > --with-sysroot=$sysroot \ ++ > --enable-__cxa_atexit \ ++ > --disable-libssp --disable-libgomp --disable-libmudflap \ ++ > --enable-languages=c,c++ ++ $ PATH=$tools/bin:$PATH make ++ $ PATH=$tools/bin:$PATH make install ++ ++The '--enable-__cxa_atexit' option tells GCC what sort of C++ ++destructor support to expect from the C library; it's required with ++GLIBC. ++ ++And since GCC's installation process isn't designed to help construct ++sysroot trees, we must manually copy certain libraries into place in ++the sysroot. ++ ++ $ cp -d $tools/$target/lib/libgcc_s.so* $sysroot/lib ++ $ cp -d $tools/$target/lib/libstdc++.so* $sysroot/usr/lib ++ ++ ++Trying Things Out ++ ++At this point, '$tools' contains a cross toolchain ready to use ++the GLIBC installation in '$sysroot': ++ ++ $ cat > hello.c < #include ++ > int ++ > main (int argc, char **argv) ++ > { ++ > puts ("Hello, world!"); ++ > return 0; ++ > } ++ > EOF ++ $ $tools/bin/$target-gcc -Wall hello.c -o hello ++ $ cat > c++-hello.cc < #include ++ > int ++ > main (int argc, char **argv) ++ > { ++ > std::cout << "Hello, C++ world!" << std::endl; ++ > return 0; ++ > } ++ > EOF ++ $ $tools/bin/$target-g++ -Wall c++-hello.cc -o c++-hello ++ ++ ++We can use 'readelf' to verify that these are indeed executables for ++our target, using our dynamic linker: ++ ++ $ $tools/bin/$target-readelf -hl hello ++ ELF Header: ++ ... ++ Type: EXEC (Executable file) ++ Machine: ARM ++ ++ ... ++ Program Headers: ++ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align ++ PHDR 0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4 ++ INTERP 0x000134 0x00008134 0x00008134 0x00013 0x00013 R 0x1 ++ [Requesting program interpreter: /lib/ld-linux.so.3] ++ LOAD 0x000000 0x00008000 0x00008000 0x0042c 0x0042c R E 0x8000 ++ ... ++ ++Looking at the dynamic section of the installed 'libgcc_s.so', we see ++that the 'NEEDED' entry for the C library does include the '.6' ++suffix, indicating that was linked against our fully build GLIBC, and ++not our dummy 'libc.so': ++ ++ $ $tools/bin/$target-readelf -d $sysroot/lib/libgcc_s.so.1 ++ Dynamic section at offset 0x1083c contains 24 entries: ++ Tag Type Name/Value ++ 0x00000001 (NEEDED) Shared library: [libc.so.6] ++ 0x0000000e (SONAME) Library soname: [libgcc_s.so.1] ++ ... ++ ++ ++And on the target machine, we can run our programs: ++ ++ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ ++ > ./hello ++ Hello, world! ++ $ $sysroot/lib/ld.so.1 --library-path $sysroot/lib:$sysroot/usr/lib \ ++ > ./c++-hello ++ Hello, C++ world! +diff --git a/GLIBC.cross-testing b/GLIBC.cross-testing +new file mode 100644 +index 0000000000..b67b468466 +--- /dev/null ++++ b/GLIBC.cross-testing +@@ -0,0 +1,205 @@ ++ -*- mode: text -*- ++ ++ Cross-Testing With GLIBC ++ Jim Blandy ++ ++ ++Introduction ++ ++Developers writing software for embedded systems often use a desktop ++or other similarly capable computer for development, but need to run ++tests on the embedded system, or perhaps on a simulator. When ++configured for cross-compilation, the stock GNU C library simply ++disables running tests altogether: the command 'make tests' builds ++test programs, but does not run them. GLIBC, however, provides ++facilities for compiling tests and generating data files on the build ++system, but running the test programs themselves on a remote system or ++simulator. ++ ++ ++Test environment requirements ++ ++The test environment must meet certain conditions for GLIBC's ++cross-testing facilities to work: ++ ++- Shared filesystems. The 'build' system, on which you configure and ++ compile GLIBC, and the 'host' system, on which you intend to run ++ GLIBC, must share a filesystem containing the GLIBC build and ++ source trees. Files must appear at the same paths on both systems. ++ ++- Remote-shell like invocation. There must be a way to run a program ++ on the host system from the build system, passing it properly quoted ++ command-line arguments, setting environment variables, and ++ inheriting the caller's standard input and output. ++ ++ ++Usage ++ ++To use GLIBC's cross-testing support, provide values for the ++following Make variables when you invoke 'make': ++ ++- cross-test-wrapper ++ ++ This should be the name of the cross-testing wrapper command, along ++ with any arguments. ++ ++- cross-localedef ++ ++ This should be the name of a cross-capable localedef program, like ++ that included in the GLIBC 'localedef' module, along with any ++ arguments needed. ++ ++These are each explained in detail below. ++ ++ ++The Cross-Testing Wrapper ++ ++To run test programs reliably, the stock GNU C library takes care to ++ensure that test programs use the newly compiled dynamic linker and ++shared libraries, and never the host system's installed libraries. To ++accomplish this, it runs the tests by explicitly invoking the dynamic ++linker from the build tree, passing it a list of build tree ++directories to search for shared libraries, followed by the name of ++the executable to run and its arguments. ++ ++For example, where one might normally run a test program like this: ++ ++ $ ./tst-foo arg1 arg2 ++ ++the GNU C library might run that program like this: ++ ++ $ $objdir/elf/ld-linux.so.3 --library-path $objdir \ ++ ./tst-foo arg1 arg2 ++ ++(where $objdir is the path to the top of the build tree, and the ++trailing backslash indicates a continuation of the command). In other ++words, each test program invocation is 'wrapped up' inside an explicit ++invocation of the dynamic linker, which must itself execute the test ++program, having loaded shared libraries from the appropriate ++directories. ++ ++To support cross-testing, GLIBC allows the developer to optionally ++set the 'cross-test-wrapper' Make variable to another wrapper command, ++to which it passes the entire dynamic linker invocation shown above as ++arguments. For example, if the developer supplies a wrapper of ++'my-wrapper hostname', then GLIBC would run the test above as ++follows: ++ ++ $ my-wrapper hostname \ ++ $objdir/elf/ld-linux.so.3 --library-path $objdir \ ++ ./tst-foo arg1 arg2 ++ ++The 'my-wrapper' command is responsible for executing the command ++given on the host system. ++ ++Since tests are run in varying directories, the wrapper should either ++be in your command search path, or 'cross-test-wrapper' should give an ++absolute path for the wrapper. ++ ++The wrapper must meet several requirements: ++ ++- It must preserve the current directory. As explained above, the ++ build directory tree must be visible on both the build and host ++ systems, at the same path. The test wrapper must ensure that the ++ current directory it inherits is also inherited by the dynamic ++ linker (and thus the test program itself). ++ ++- It must preserve environment variables' values. Many GLIBC tests ++ set environment variables for test runs; in native testing, it ++ invokes programs like this: ++ ++ $ GCONV_PATH=$objdir/iconvdata \ ++ $objdir/elf/ld-linux.so.3 --library-path $objdir \ ++ ./tst-foo arg1 arg2 ++ ++ With the cross-testing wrapper, that invocation becomes: ++ ++ $ GCONV_PATH=$objdir/iconvdata \ ++ my-wrapper hostname \ ++ $objdir/elf/ld-linux.so.3 --library-path $objdir \ ++ ./tst-foo arg1 arg2 ++ ++ Here, 'my-wrapper' must ensure that the value it sees for ++ 'GCONV_PATH' will be seen by the dynamic linker, and thus 'tst-foo' ++ itself. (The wrapper supplied with GLIBC simply preserves the ++ values of *all* enviroment variables, with a fixed set of ++ exceptions.) ++ ++ If your wrapper is a shell script, take care to correctly propagate ++ environment variables whose values contain spaces and shell ++ metacharacters. ++ ++- It must pass the command's arguments, unmodified. The arguments ++ seen by the test program should be exactly those seen by the wrapper ++ (after whatever arguments are given to the wrapper itself). The ++ GLIBC test framework performs all needed shell word splitting and ++ expansion (wildcard expansion, parameter substitution, and so on) ++ before invoking the wrapper; further expansion may break the tests. ++ ++ ++The 'cross-test-ssh.sh' script ++ ++If you want to use 'ssh' (or something sufficiently similar) to run ++test programs on your host system, GLIBC includes a shell script, ++'scripts/cross-test-ssh.sh', which you can use as your wrapper ++command. This script takes care of setting the test command's current ++directory, propagating environment variable values, and carrying ++command-line arguments, all across an 'ssh' connection. You may even ++supply an alternative to 'ssh' on the command line, if needed. ++ ++For more details, pass 'cross-test-ssh.sh' the '--help' option. ++ ++ ++The Cross-Compiling Locale Definition Command ++ ++Some GLIBC tests rely on locales generated especially for the test ++process. In a native configuration, these tests simply run the ++'localedef' command built by the normal GLIBC build process, ++'locale/localedef', to process and install their locales. However, in ++a cross-compiling configuration, this 'localedef' is built for the ++host system, not the build system, and since it requires quite a bit ++of memory to run (we have seen it fail on systems with 64MiB of ++memory), it may not be practical to run it on the host system. ++ ++If set, GLIBC uses the 'cross-localedef' Make variable as the command ++to run on the build system to process and install locales. The ++localedef program built from the GLIBC 'localedef' module is ++suitable. ++ ++The value of 'cross-localedef' may also include command-line arguments ++to be passed to the program; if you are using GLIBC's 'localedef', ++you may include endianness and 'uint32_t' alignment arguments here. ++ ++ ++Example ++ ++In developing GLIBC's cross-testing facility, we invoked 'make' with ++the following script: ++ ++ #!/bin/sh ++ ++ srcdir=... ++ test_hostname=... ++ localedefdir=... ++ cross_gxx=...-g++ ++ ++ wrapper="$srcdir/scripts/cross-test-ssh.sh $test_hostname" ++ localedef="$localedefdir/localedef --little-endian --uint32-align=4" ++ ++ make cross-test-wrapper="$wrapper" \ ++ cross-localedef="$localedef" \ ++ CXX="$cross_gxx" \ ++ "$@" ++ ++ ++Other Cross-Testing Concerns ++ ++Here are notes on some other issues which you may encounter in running ++the GLIBC tests in a cross-compiling environment: ++ ++- Some tests require a C++ cross-compiler; you should set the 'CXX' ++ Make variable to the name of an appropriate cross-compiler. ++ ++- Some tests require access to libstdc++.so.6 and libgcc_s.so.1; we ++ simply place copies of these libraries in the top GLIBC build ++ directory. diff --git a/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch b/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch new file mode 100644 index 00000000..6374ea40 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch @@ -0,0 +1,97 @@ +From 6a32d5bf40deee5d12d24c06f3ea9b5479c16802 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:49:28 +0000 +Subject: [PATCH] eglibc: Help bootstrap cross toolchain + +Taken from EGLIBC, r1484 + r1525 + + 2007-02-20 Jim Blandy + + * Makefile (install-headers): Preserve old behavior: depend on + $(inst_includedir)/gnu/stubs.h only if install-bootstrap-headers + is set; otherwise, place gnu/stubs.h on the 'install-others' list. + + 2007-02-16 Jim Blandy + + * Makefile: Amend make install-headers to install everything + necessary for building a cross-compiler. Install gnu/stubs.h as + part of 'install-headers', not 'install-others'. + If install-bootstrap-headers is 'yes', install a dummy copy of + gnu/stubs.h, instead of computing the real thing. + * include/stubs-bootstrap.h: New file. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + Makefile | 22 +++++++++++++++++++++- + include/stubs-bootstrap.h | 12 ++++++++++++ + 2 files changed, 33 insertions(+), 1 deletion(-) + create mode 100644 include/stubs-bootstrap.h + +diff --git a/Makefile b/Makefile +index 8f0a93aceb..8eba23a868 100644 +--- a/Makefile ++++ b/Makefile +@@ -79,9 +79,18 @@ subdir-dirs = include + vpath %.h $(subdir-dirs) + + # What to install. +-install-others = $(inst_includedir)/gnu/stubs.h + install-bin-script = + ++# If we're bootstrapping, install a dummy gnu/stubs.h along with the ++# other headers, so 'make install-headers' produces a useable include ++# tree. Otherwise, install gnu/stubs.h later, after the rest of the ++# build is done. ++ifeq ($(install-bootstrap-headers),yes) ++install-headers: $(inst_includedir)/gnu/stubs.h ++else ++install-others = $(inst_includedir)/gnu/stubs.h ++endif ++ + ifeq (yes,$(build-shared)) + headers += gnu/lib-names.h + endif +@@ -407,6 +416,16 @@ others: $(common-objpfx)testrun.sh $(common-objpfx)debugglibc.sh + + subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)$(dir)/stubs) + ++# gnu/stubs.h depends (via the subdir 'stubs' targets) on all the .o ++# files in EGLIBC. For bootstrapping a GCC/EGLIBC pair, an empty ++# gnu/stubs.h is good enough. ++ifeq ($(install-bootstrap-headers),yes) ++$(inst_includedir)/gnu/stubs.h: include/stubs-bootstrap.h $(+force) ++ $(make-target-directory) ++ $(INSTALL_DATA) $< $@ ++ ++installed-stubs = ++else + ifndef abi-variants + installed-stubs = $(inst_includedir)/gnu/stubs.h + else +@@ -433,6 +452,7 @@ $(inst_includedir)/gnu/stubs.h: $(+force) + + install-others-nosubdir: $(installed-stubs) + endif ++endif + + + # Since stubs.h is never needed when building the library, we simplify the +diff --git a/include/stubs-bootstrap.h b/include/stubs-bootstrap.h +new file mode 100644 +index 0000000000..1d2b669aff +--- /dev/null ++++ b/include/stubs-bootstrap.h +@@ -0,0 +1,12 @@ ++/* Placeholder stubs.h file for bootstrapping. ++ ++ When bootstrapping a GCC/EGLIBC pair, GCC requires that the EGLIBC ++ headers be installed, but we can't fully build EGLIBC without that ++ GCC. So we run the command: ++ ++ make install-headers install-bootstrap-headers=yes ++ ++ to install the headers GCC needs, but avoid building certain ++ difficult headers. The header depends, via the ++ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but ++ an empty stubs.h like this will do fine for GCC. */ diff --git a/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch b/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch deleted file mode 100644 index 8aecf262..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Resolve-__fpscr_values-on-SH4.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 55531ef57d04006c5a1e3b32a8e0410372f86007 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 00:55:53 +0000 -Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4 - -2010-09-29 Nobuhiro Iwamatsu - Andrew Stubbs - - Resolve SH's __fpscr_values to symbol in libc.so. - - * sysdeps/sh/sh4/fpu/fpu_control.h: Add C++ __set_fpscr prototype. - * sysdeps/unix/sysv/linux/sh/Versions (GLIBC_2.2): Add __fpscr_values. - * sysdeps/unix/sysv/linux/sh/sysdep.S (___fpscr_values): New constant. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - sysdeps/unix/sysv/linux/sh/Versions | 1 + - sysdeps/unix/sysv/linux/sh/sysdep.S | 11 +++++++++++ - 2 files changed, 12 insertions(+) - -diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions -index e0938c4165..ca1d7da339 100644 ---- a/sysdeps/unix/sysv/linux/sh/Versions -+++ b/sysdeps/unix/sysv/linux/sh/Versions -@@ -2,6 +2,7 @@ libc { - GLIBC_2.2 { - # functions used in other libraries - __xstat64; __fxstat64; __lxstat64; -+ __fpscr_values; - - # a* - alphasort64; -diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S -index c4e28ffb98..648bae03d5 100644 ---- a/sysdeps/unix/sysv/linux/sh/sysdep.S -+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S -@@ -30,3 +30,14 @@ ENTRY (__syscall_error) - - #define __syscall_error __syscall_error_1 - #include -+ -+ .data -+ .align 3 -+ .globl ___fpscr_values -+ .type ___fpscr_values, @object -+ .size ___fpscr_values, 8 -+___fpscr_values: -+ .long 0 -+ .long 0x80000 -+weak_alias (___fpscr_values, __fpscr_values) -+ diff --git a/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch b/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch deleted file mode 100644 index aa62c635..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Forward-port-cross-locale-generation-support.patch +++ /dev/null @@ -1,563 +0,0 @@ -From 4bb23fbb07984b93fd14f353fd9325d927b0cd98 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 18 Mar 2015 01:33:49 +0000 -Subject: [PATCH] eglibc: Forward port cross locale generation support - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - locale/Makefile | 3 +- - locale/catnames.c | 48 ++++++++++++++++++++++++++++ - locale/localeinfo.h | 2 +- - locale/programs/charmap-dir.c | 6 ++++ - locale/programs/ld-collate.c | 17 +++++----- - locale/programs/ld-ctype.c | 27 ++++++++-------- - locale/programs/ld-time.c | 31 ++++++++++++------ - locale/programs/linereader.c | 2 +- - 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(-) - create mode 100644 locale/catnames.c - -diff --git a/locale/Makefile b/locale/Makefile -index fd9972279b..176b3946de 100644 ---- a/locale/Makefile -+++ b/locale/Makefile -@@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \ - bits/types/locale_t.h bits/types/__locale_t.h - routines = setlocale findlocale loadlocale loadarchive \ - localeconv nl_langinfo nl_langinfo_l mb_cur_max \ -- newlocale duplocale freelocale uselocale -+ newlocale duplocale freelocale uselocale \ -+ catnames - tests = tst-C-locale tst-locname tst-duplocale - 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 ---- /dev/null -+++ b/locale/catnames.c -@@ -0,0 +1,48 @@ -+/* Copyright (C) 2006 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include "localeinfo.h" -+ -+/* Define an array of category names (also the environment variable names). */ -+const union catnamestr_t _nl_category_names attribute_hidden = -+ { -+ { -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ 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__)), -+#include "categories.def" -+#undef DEFINE_CATEGORY -+ }; -+ -+/* An array of their lengths, for convenience. */ -+const uint8_t _nl_category_name_sizes[] attribute_hidden = -+ { -+#define DEFINE_CATEGORY(category, category_name, items, a) \ -+ [category] = sizeof (category_name) - 1, -+#include "categories.def" -+#undef DEFINE_CATEGORY -+ [LC_ALL] = sizeof ("LC_ALL") - 1 -+ }; -diff --git a/locale/localeinfo.h b/locale/localeinfo.h -index 537bc35149..73ba20d695 100644 ---- a/locale/localeinfo.h -+++ b/locale/localeinfo.h -@@ -224,7 +224,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. */ --#ifndef SHARED -+#if !defined SHARED && !defined IN_GLIBC_LOCALEDEF - # include - # define NL_CURRENT_INDIRECT 1 - #endif -diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c -index 34a8d32c92..cbb9436cd1 100644 ---- a/locale/programs/charmap-dir.c -+++ b/locale/programs/charmap-dir.c -@@ -18,7 +18,9 @@ - #include - #include - #include -+#ifndef NO_UNCOMPRESS - #include -+#endif - #include - #include - #include -@@ -154,6 +156,7 @@ charmap_closedir (CHARMAP_DIR *cdir) - return closedir (dir); - } - -+#ifndef NO_UNCOMPRESS - /* Creates a subprocess decompressing the given pathname, and returns - a stream reading its output (the decompressed data). */ - static -@@ -202,6 +205,7 @@ fopen_uncompressed (const char *pathname, const char *compressor) - } - return NULL; - } -+#endif - - /* Opens a charmap for reading, given its name (not an alias name). */ - FILE * -@@ -224,6 +228,7 @@ charmap_open (const char *directory, const char *name) - if (stream != NULL) - return stream; - -+#ifndef NO_UNCOMPRESS - memcpy (p, ".gz", 4); - stream = fopen_uncompressed (pathname, "gzip"); - if (stream != NULL) -@@ -233,6 +238,7 @@ charmap_open (const char *directory, const char *name) - stream = fopen_uncompressed (pathname, "bzip2"); - if (stream != NULL) - return stream; -+#endif - - return NULL; - } -diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c -index d2eebcfdbb..c3718d6589 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, - } - if (wcs != NULL) - { -- size_t nwcs = wcslen ((wchar_t *) wcs); -+ size_t nwcs = wcslen_uint32 (wcs); - uint32_t zero = 0; - /* Handle as a single character. */ - if (nwcs == 0) -@@ -1772,8 +1772,7 @@ symbol `%s' has the same encoding as"), (*eptr)->name); - - if ((*eptr)->nwcs == runp->nwcs) - { -- int c = wmemcmp ((wchar_t *) (*eptr)->wcs, -- (wchar_t *) runp->wcs, runp->nwcs); -+ int c = wmemcmp_uint32 ((*eptr)->wcs, runp->wcs, runp->nwcs); - - if (c == 0) - { -@@ -2000,9 +1999,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp) - one consecutive entry. */ - if (runp->wcnext != NULL - && runp->nwcs == runp->wcnext->nwcs -- && wmemcmp ((wchar_t *) runp->wcs, -- (wchar_t *)runp->wcnext->wcs, -- runp->nwcs - 1) == 0 -+ && wmemcmp_uint32 (runp->wcs, -+ runp->wcnext->wcs, -+ runp->nwcs - 1) == 0 - && (runp->wcs[runp->nwcs - 1] - == runp->wcnext->wcs[runp->nwcs - 1] + 1)) - { -@@ -2026,9 +2025,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp) - runp = runp->wcnext; - while (runp->wcnext != NULL - && runp->nwcs == runp->wcnext->nwcs -- && wmemcmp ((wchar_t *) runp->wcs, -- (wchar_t *)runp->wcnext->wcs, -- runp->nwcs - 1) == 0 -+ && wmemcmp_uint32 (runp->wcs, -+ runp->wcnext->wcs, -+ runp->nwcs - 1) == 0 - && (runp->wcs[runp->nwcs - 1] - == runp->wcnext->wcs[runp->nwcs - 1] + 1)); - -diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c -index f791e6b7e9..d809d6db7f 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, - allocate_arrays (ctype, charmap, ctype->repertoire); - - default_missing_len = (ctype->default_missing -- ? wcslen ((wchar_t *) ctype->default_missing) -+ ? wcslen_uint32 (ctype->default_missing) - : 0); - - init_locale_data (&file, nelems); -@@ -1926,7 +1926,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype, - ignore = 1; - else - /* This value is usable. */ -- obstack_grow (ob, to_wstr, wcslen ((wchar_t *) to_wstr) * 4); -+ obstack_grow (ob, to_wstr, wcslen_uint32 (to_wstr) * 4); - - first = 0; - } -@@ -2460,8 +2460,8 @@ with character code range values one must use the absolute ellipsis `...'")); - } - - handle_tok_digit: -- class_bit = _ISwdigit; -- class256_bit = _ISdigit; -+ class_bit = BITw (tok_digit); -+ class256_bit = BIT (tok_digit); - handle_digits = 1; - goto read_charclass; - -@@ -3901,8 +3901,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, - - while (idx < number) - { -- int res = wcscmp ((const wchar_t *) sorted[idx]->from, -- (const wchar_t *) runp->from); -+ int res = wcscmp_uint32 (sorted[idx]->from, runp->from); - if (res == 0) - { - replace = 1; -@@ -3939,11 +3938,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, - for (size_t cnt = 0; cnt < number; ++cnt) - { - struct translit_to_t *srunp; -- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1; -+ from_len += wcslen_uint32 (sorted[cnt]->from) + 1; - srunp = sorted[cnt]->to; - while (srunp != NULL) - { -- to_len += wcslen ((const wchar_t *) srunp->str) + 1; -+ to_len += wcslen_uint32 (srunp->str) + 1; - srunp = srunp->next; - } - /* Plus one for the extra NUL character marking the end of -@@ -3967,18 +3966,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, - ctype->translit_from_idx[cnt] = from_len; - ctype->translit_to_idx[cnt] = to_len; - -- len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1; -- wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len], -- (const wchar_t *) sorted[cnt]->from, len); -+ len = wcslen_uint32 (sorted[cnt]->from) + 1; -+ wmemcpy_uint32 (&ctype->translit_from_tbl[from_len], -+ sorted[cnt]->from, len); - from_len += len; - - ctype->translit_to_idx[cnt] = to_len; - srunp = sorted[cnt]->to; - while (srunp != NULL) - { -- len = wcslen ((const wchar_t *) srunp->str) + 1; -- wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len], -- (const wchar_t *) srunp->str, len); -+ len = wcslen_uint32 (srunp->str) + 1; -+ wmemcpy_uint32 (&ctype->translit_to_tbl[to_len], -+ srunp->str, len); - to_len += len; - srunp = srunp->next; - } -diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c -index a755792363..e8b2f85522 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"); - } - else - { -+ static const uint32_t wt_fmt_ampm[] -+ = { '%','I',':','%','M',':','%','S',' ','%','p',0 }; - time->t_fmt_ampm = "%I:%M:%S %p"; -- time->wt_fmt_ampm = (const uint32_t *) L"%I:%M:%S %p"; -+ time->wt_fmt_ampm = wt_fmt_ampm; - } - } - -@@ -231,7 +233,7 @@ No definition for %s category found"), "LC_TIME"); - const int days_per_month[12] = { 31, 29, 31, 30, 31, 30, - 31, 31, 30, 31 ,30, 31 }; - size_t idx; -- wchar_t *wstr; -+ uint32_t *wstr; - - time->era_entries = - (struct era_data *) xmalloc (time->num_era -@@ -457,18 +459,18 @@ No definition for %s category found"), "LC_TIME"); - } - - /* Now generate the wide character name and format. */ -- wstr = wcschr ((wchar_t *) time->wera[idx], L':');/* end direction */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end offset */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end start */ -- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end end */ -+ wstr = wcschr_uint32 (time->wera[idx], L':'); /* end direction */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end offset */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end start */ -+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end end */ - if (wstr != NULL) - { -- time->era_entries[idx].wname = (uint32_t *) wstr + 1; -- wstr = wcschr (wstr + 1, L':'); /* end name */ -+ time->era_entries[idx].wname = wstr + 1; -+ wstr = wcschr_uint32 (wstr + 1, L':'); /* end name */ - if (wstr != NULL) - { - *wstr = L'\0'; -- time->era_entries[idx].wformat = (uint32_t *) wstr + 1; -+ time->era_entries[idx].wformat = wstr + 1; - } - else - time->era_entries[idx].wname = -@@ -527,7 +529,16 @@ No definition for %s category found"), "LC_TIME"); - if (time->date_fmt == NULL) - time->date_fmt = "%a %b %e %H:%M:%S %Z %Y"; - if (time->wdate_fmt == NULL) -- time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y"; -+ { -+ static const uint32_t wdate_fmt[] = -+ { '%','a',' ', -+ '%','b',' ', -+ '%','e',' ', -+ '%','H',':','%','M',':','%','S',' ', -+ '%','Z',' ', -+ '%','Y',0 }; -+ time->wdate_fmt = wdate_fmt; -+ } - } - - -diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c -index 3525c8a43d..f8a7fd9c24 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, - { - int return_widestr = lr->return_widestr; - char *buf; -- wchar_t *buf2 = NULL; -+ uint32_t *buf2 = NULL; - size_t bufact; - size_t bufmax = 56; - -diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c -index d718d2e9f4..e0a3ad5a83 100644 ---- a/locale/programs/localedef.c -+++ b/locale/programs/localedef.c -@@ -105,6 +105,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; - #define OPT_BIG_ENDIAN 401 - #define OPT_NO_WARN 402 - #define OPT_WARN 403 -+#define OPT_UINT32_ALIGN 404 - - /* Definitions of arguments for argp functions. */ - static const struct argp_option options[] = -@@ -147,6 +148,8 @@ static const struct argp_option options[] = - N_("Generate little-endian output") }, - { "big-endian", OPT_BIG_ENDIAN, NULL, 0, - N_("Generate big-endian output") }, -+ { "uint32-align", OPT_UINT32_ALIGN, "ALIGNMENT", 0, -+ N_("Set the target's uint32_t alignment in bytes (default 4)") }, - { NULL, 0, NULL, 0, NULL } - }; - -@@ -236,12 +239,14 @@ main (int argc, char *argv[]) - ctype locale. (P1003.2 4.35.5.2) */ - setlocale (LC_CTYPE, "POSIX"); - -+#ifndef NO_SYSCONF - /* Look whether the system really allows locale definitions. POSIX - defines error code 3 for this situation so I think it must be - a fatal error (see P1003.2 4.35.8). */ - if (sysconf (_SC_2_LOCALEDEF) < 0) - record_error (3, 0, _("\ - FATAL: system does not define `_POSIX2_LOCALEDEF'")); -+#endif - - /* Process charmap file. */ - charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1); -@@ -389,6 +394,9 @@ parse_opt (int key, char *arg, struct argp_state *state) - /* Enable the warnings. */ - set_warnings (arg, true); - break; -+ case OPT_UINT32_ALIGN: -+ uint32_align_mask = strtol (arg, NULL, 0) - 1; -+ break; - case 'c': - force_output = 1; - break; -diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c -index 32e5f761f2..b41e77bd8d 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, - machine running localedef. */ - bool swap_endianness_p; - -+/* The target's value of __align__(uint32_t) - 1. */ -+unsigned int uint32_align_mask = 3; -+ - /* When called outside a start_locale_structure/end_locale_structure - or start_locale_prelude/end_locale_prelude block, record that the - next byte in FILE's obstack will be the first byte of a new element. -@@ -621,7 +624,7 @@ add_locale_string (struct locale_file *file, const char *string) - void - add_locale_wstring (struct locale_file *file, const uint32_t *string) - { -- add_locale_uint32_array (file, string, wcslen ((const wchar_t *) string) + 1); -+ add_locale_uint32_array (file, string, wcslen_uint32 (string) + 1); - } - - /* 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 89b347c72d..a636fc2960 100644 ---- a/locale/programs/locfile.h -+++ b/locale/programs/locfile.h -@@ -71,6 +71,8 @@ extern void write_all_categories (struct localedef_t *definitions, - - extern bool swap_endianness_p; - -+extern unsigned int uint32_align_mask; -+ - /* Change the output to be big-endian if BIG_ENDIAN is true and - little-endian otherwise. */ - static inline void -@@ -89,7 +91,8 @@ maybe_swap_uint32 (uint32_t value) - } - - /* Likewise, but munge an array of N uint32_ts starting at ARRAY. */ --static inline void -+static void -+__attribute__ ((unused)) - maybe_swap_uint32_array (uint32_t *array, size_t n) - { - if (swap_endianness_p) -@@ -99,7 +102,8 @@ maybe_swap_uint32_array (uint32_t *array, size_t n) - - /* Like maybe_swap_uint32_array, but the array of N elements is at - the end of OBSTACK's current object. */ --static inline void -+static void -+__attribute__ ((unused)) - maybe_swap_uint32_obstack (struct obstack *obstack, size_t n) - { - maybe_swap_uint32_array ((uint32_t *) obstack_next_free (obstack) - n, n); -@@ -276,4 +280,55 @@ extern void identification_output (struct localedef_t *locale, - const struct charmap_t *charmap, - const char *output_path); - -+static size_t wcslen_uint32 (const uint32_t *str) __attribute__ ((unused)); -+static uint32_t * wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); -+static uint32_t * wcschr_uint32 (const uint32_t *s, uint32_t ch) __attribute__ ((unused)); -+static int wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) __attribute__ ((unused)); -+static int wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); -+ -+static size_t -+wcslen_uint32 (const uint32_t *str) -+{ -+ size_t len = 0; -+ while (str[len] != 0) -+ len++; -+ return len; -+} -+ -+static int -+wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) -+{ -+ while (n-- != 0) -+ { -+ int diff = *s1++ - *s2++; -+ if (diff != 0) -+ return diff; -+ } -+ return 0; -+} -+ -+static int -+wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) -+{ -+ while (*s1 != 0 && *s1 == *s2) -+ s1++, s2++; -+ return *s1 - *s2; -+} -+ -+static uint32_t * -+wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) -+{ -+ return memcpy (s1, s2, n * sizeof (uint32_t)); -+} -+ -+static uint32_t * -+wcschr_uint32 (const uint32_t *s, uint32_t ch) -+{ -+ do -+ if (*s == ch) -+ return (uint32_t *) s; -+ while (*s++ != 0); -+ return 0; -+} -+ - #endif /* locfile.h */ -diff --git a/locale/setlocale.c b/locale/setlocale.c -index e4de907e1f..b5d8f5c17d 100644 ---- a/locale/setlocale.c -+++ b/locale/setlocale.c -@@ -64,36 +64,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 = -- { -- { --#define DEFINE_CATEGORY(category, category_name, items, a) \ -- 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__)), --#include "categories.def" --#undef DEFINE_CATEGORY -- }; -- --/* An array of their lengths, for convenience. */ --const uint8_t _nl_category_name_sizes[] attribute_hidden = -- { --#define DEFINE_CATEGORY(category, category_name, items, a) \ -- [category] = sizeof (category_name) - 1, --#include "categories.def" --#undef DEFINE_CATEGORY -- [LC_ALL] = sizeof ("LC_ALL") - 1 -- }; -- -- - #ifdef NL_CURRENT_INDIRECT - # define WEAK_POSTLOAD(postload) weak_extern (postload) - #else diff --git a/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch b/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch new file mode 100644 index 00000000..2a503c81 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch @@ -0,0 +1,53 @@ +From 25c21857a3fc0eb26831616ba88a696dd31ecba1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:55:53 +0000 +Subject: [PATCH] eglibc: Resolve __fpscr_values on SH4 + +2010-09-29 Nobuhiro Iwamatsu + Andrew Stubbs + + Resolve SH's __fpscr_values to symbol in libc.so. + + * sysdeps/sh/sh4/fpu/fpu_control.h: Add C++ __set_fpscr prototype. + * sysdeps/unix/sysv/linux/sh/Versions (GLIBC_2.2): Add __fpscr_values. + * sysdeps/unix/sysv/linux/sh/sysdep.S (___fpscr_values): New constant. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + sysdeps/unix/sysv/linux/sh/Versions | 1 + + sysdeps/unix/sysv/linux/sh/sysdep.S | 11 +++++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions +index e0938c4165..ca1d7da339 100644 +--- a/sysdeps/unix/sysv/linux/sh/Versions ++++ b/sysdeps/unix/sysv/linux/sh/Versions +@@ -2,6 +2,7 @@ libc { + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; ++ __fpscr_values; + + # a* + alphasort64; +diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S +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) + + #define __syscall_error __syscall_error_1 + #include ++ ++ .data ++ .align 3 ++ .globl ___fpscr_values ++ .type ___fpscr_values, @object ++ .size ___fpscr_values, 8 ++___fpscr_values: ++ .long 0 ++ .long 0x80000 ++weak_alias (___fpscr_values, __fpscr_values) ++ diff --git a/external/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch b/external/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch deleted file mode 100644 index 68fad964..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0023-Define-DUMMY_LOCALE_T-if-not-defined.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1b2ceb6c2414e3c98c7bcd029583287ced9f3159 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 20 Apr 2016 21:11:00 -0700 -Subject: [PATCH] Define DUMMY_LOCALE_T if not defined - -This is a hack to fix building the locale bits on an older -CentOs 5.X machine - -Upstream-Status: Inappropriate [other] - -Signed-off-by: Khem Raj ---- - locale/programs/config.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/locale/programs/config.h b/locale/programs/config.h -index 9956cd8446..04342f3644 100644 ---- a/locale/programs/config.h -+++ b/locale/programs/config.h -@@ -19,6 +19,9 @@ - #ifndef _LD_CONFIG_H - #define _LD_CONFIG_H 1 - -+#ifndef DUMMY_LOCALE_T -+#define DUMMY_LOCALE_T -+#endif - /* Use the internal textdomain used for libc messages. */ - #define PACKAGE _libc_intl_domainname - #ifndef VERSION diff --git a/external/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch b/external/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch new file mode 100644 index 00000000..1a90f22d --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch @@ -0,0 +1,560 @@ +From 30008327aadf0c775e644bb387d7c25952ed05b5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 01:33:49 +0000 +Subject: [PATCH] eglibc: Forward port cross locale generation support + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + locale/Makefile | 3 +- + locale/catnames.c | 46 +++++++++++++++++++++++++++ + locale/localeinfo.h | 2 +- + locale/programs/charmap-dir.c | 6 ++++ + locale/programs/ld-collate.c | 17 +++++----- + locale/programs/ld-ctype.c | 27 ++++++++-------- + locale/programs/ld-time.c | 31 ++++++++++++------ + locale/programs/linereader.c | 2 +- + locale/programs/localedef.c | 8 +++++ + locale/programs/locfile.c | 5 ++- + locale/programs/locfile.h | 59 +++++++++++++++++++++++++++++++++-- + 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 c9694e236e..ba7105fad6 100644 +--- a/locale/Makefile ++++ b/locale/Makefile +@@ -26,7 +26,8 @@ headers = langinfo.h locale.h bits/locale.h \ + bits/types/locale_t.h bits/types/__locale_t.h + routines = setlocale findlocale loadlocale loadarchive \ + localeconv nl_langinfo nl_langinfo_l mb_cur_max \ +- newlocale duplocale freelocale uselocale ++ newlocale duplocale freelocale uselocale \ ++ catnames + tests = tst-C-locale tst-locname tst-duplocale + categories = ctype messages monetary numeric time paper name \ + address telephone measurement identification collate +diff --git a/locale/catnames.c b/locale/catnames.c +new file mode 100644 +index 0000000000..538f3f5edb +--- /dev/null ++++ b/locale/catnames.c +@@ -0,0 +1,46 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include "localeinfo.h" ++ ++/* Define an array of category names (also the environment variable names). */ ++const struct catnamestr_t _nl_category_names attribute_hidden = ++ { ++#define DEFINE_CATEGORY(category, category_name, items, a) \ ++ 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 (struct catnamestr_t, CATNAMEMF (__LINE__)), ++#include "categories.def" ++#undef DEFINE_CATEGORY ++ }; ++ ++/* An array of their lengths, for convenience. */ ++const uint8_t _nl_category_name_sizes[] attribute_hidden = ++ { ++#define DEFINE_CATEGORY(category, category_name, items, a) \ ++ [category] = sizeof (category_name) - 1, ++#include "categories.def" ++#undef DEFINE_CATEGORY ++ [LC_ALL] = sizeof ("LC_ALL") - 1 ++ }; +diff --git a/locale/localeinfo.h b/locale/localeinfo.h +index fdc283c69a..4eeed35f90 100644 +--- a/locale/localeinfo.h ++++ b/locale/localeinfo.h +@@ -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. */ +-#ifndef SHARED ++#if !defined SHARED && !defined IN_GLIBC_LOCALEDEF + # include + # define NL_CURRENT_INDIRECT 1 + #endif +diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c +index 1a526a240d..0fb2daf936 100644 +--- a/locale/programs/charmap-dir.c ++++ b/locale/programs/charmap-dir.c +@@ -18,7 +18,9 @@ + #include + #include + #include ++#ifndef NO_UNCOMPRESS + #include ++#endif + #include + #include + #include +@@ -154,6 +156,7 @@ charmap_closedir (CHARMAP_DIR *cdir) + return closedir (dir); + } + ++#ifndef NO_UNCOMPRESS + /* Creates a subprocess decompressing the given pathname, and returns + a stream reading its output (the decompressed data). */ + static +@@ -202,6 +205,7 @@ fopen_uncompressed (const char *pathname, const char *compressor) + } + return NULL; + } ++#endif + + /* Opens a charmap for reading, given its name (not an alias name). */ + FILE * +@@ -224,6 +228,7 @@ charmap_open (const char *directory, const char *name) + if (stream != NULL) + return stream; + ++#ifndef NO_UNCOMPRESS + memcpy (p, ".gz", 4); + stream = fopen_uncompressed (pathname, "gzip"); + if (stream != NULL) +@@ -233,6 +238,7 @@ charmap_open (const char *directory, const char *name) + stream = fopen_uncompressed (pathname, "bzip2"); + if (stream != NULL) + return stream; ++#endif + + return NULL; + } +diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c +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, + } + if (wcs != NULL) + { +- size_t nwcs = wcslen ((wchar_t *) wcs); ++ size_t nwcs = wcslen_uint32 (wcs); + uint32_t zero = 0; + /* Handle as a single character. */ + if (nwcs == 0) +@@ -1772,8 +1772,7 @@ symbol `%s' has the same encoding as"), (*eptr)->name); + + if ((*eptr)->nwcs == runp->nwcs) + { +- int c = wmemcmp ((wchar_t *) (*eptr)->wcs, +- (wchar_t *) runp->wcs, runp->nwcs); ++ int c = wmemcmp_uint32 ((*eptr)->wcs, runp->wcs, runp->nwcs); + + if (c == 0) + { +@@ -2000,9 +1999,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp) + one consecutive entry. */ + if (runp->wcnext != NULL + && runp->nwcs == runp->wcnext->nwcs +- && wmemcmp ((wchar_t *) runp->wcs, +- (wchar_t *)runp->wcnext->wcs, +- runp->nwcs - 1) == 0 ++ && wmemcmp_uint32 (runp->wcs, ++ runp->wcnext->wcs, ++ runp->nwcs - 1) == 0 + && (runp->wcs[runp->nwcs - 1] + == runp->wcnext->wcs[runp->nwcs - 1] + 1)) + { +@@ -2026,9 +2025,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp) + runp = runp->wcnext; + while (runp->wcnext != NULL + && runp->nwcs == runp->wcnext->nwcs +- && wmemcmp ((wchar_t *) runp->wcs, +- (wchar_t *)runp->wcnext->wcs, +- runp->nwcs - 1) == 0 ++ && wmemcmp_uint32 (runp->wcs, ++ runp->wcnext->wcs, ++ runp->nwcs - 1) == 0 + && (runp->wcs[runp->nwcs - 1] + == runp->wcnext->wcs[runp->nwcs - 1] + 1)); + +diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c +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, + allocate_arrays (ctype, charmap, ctype->repertoire); + + default_missing_len = (ctype->default_missing +- ? wcslen ((wchar_t *) ctype->default_missing) ++ ? wcslen_uint32 (ctype->default_missing) + : 0); + + init_locale_data (&file, nelems); +@@ -1927,7 +1927,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype, + ignore = 1; + else + /* This value is usable. */ +- obstack_grow (ob, to_wstr, wcslen ((wchar_t *) to_wstr) * 4); ++ obstack_grow (ob, to_wstr, wcslen_uint32 (to_wstr) * 4); + + first = 0; + } +@@ -2461,8 +2461,8 @@ with character code range values one must use the absolute ellipsis `...'")); + } + + handle_tok_digit: +- class_bit = _ISwdigit; +- class256_bit = _ISdigit; ++ class_bit = BITw (tok_digit); ++ class256_bit = BIT (tok_digit); + handle_digits = 1; + goto read_charclass; + +@@ -3904,8 +3904,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, + + while (idx < number) + { +- int res = wcscmp ((const wchar_t *) sorted[idx]->from, +- (const wchar_t *) runp->from); ++ int res = wcscmp_uint32 (sorted[idx]->from, runp->from); + if (res == 0) + { + replace = 1; +@@ -3942,11 +3941,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, + for (size_t cnt = 0; cnt < number; ++cnt) + { + struct translit_to_t *srunp; +- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1; ++ from_len += wcslen_uint32 (sorted[cnt]->from) + 1; + srunp = sorted[cnt]->to; + while (srunp != NULL) + { +- to_len += wcslen ((const wchar_t *) srunp->str) + 1; ++ to_len += wcslen_uint32 (srunp->str) + 1; + srunp = srunp->next; + } + /* Plus one for the extra NUL character marking the end of +@@ -3970,18 +3969,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap, + ctype->translit_from_idx[cnt] = from_len; + ctype->translit_to_idx[cnt] = to_len; + +- len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1; +- wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len], +- (const wchar_t *) sorted[cnt]->from, len); ++ len = wcslen_uint32 (sorted[cnt]->from) + 1; ++ wmemcpy_uint32 (&ctype->translit_from_tbl[from_len], ++ sorted[cnt]->from, len); + from_len += len; + + ctype->translit_to_idx[cnt] = to_len; + srunp = sorted[cnt]->to; + while (srunp != NULL) + { +- len = wcslen ((const wchar_t *) srunp->str) + 1; +- wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len], +- (const wchar_t *) srunp->str, len); ++ len = wcslen_uint32 (srunp->str) + 1; ++ wmemcpy_uint32 (&ctype->translit_to_tbl[to_len], ++ srunp->str, len); + to_len += len; + srunp = srunp->next; + } +diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c +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"); + } + else + { ++ static const uint32_t wt_fmt_ampm[] ++ = { '%','I',':','%','M',':','%','S',' ','%','p',0 }; + time->t_fmt_ampm = "%I:%M:%S %p"; +- time->wt_fmt_ampm = (const uint32_t *) L"%I:%M:%S %p"; ++ time->wt_fmt_ampm = wt_fmt_ampm; + } + } + +@@ -231,7 +233,7 @@ No definition for %s category found"), "LC_TIME"); + const int days_per_month[12] = { 31, 29, 31, 30, 31, 30, + 31, 31, 30, 31 ,30, 31 }; + size_t idx; +- wchar_t *wstr; ++ uint32_t *wstr; + + time->era_entries = + (struct era_data *) xmalloc (time->num_era +@@ -457,18 +459,18 @@ No definition for %s category found"), "LC_TIME"); + } + + /* Now generate the wide character name and format. */ +- wstr = wcschr ((wchar_t *) time->wera[idx], L':');/* end direction */ +- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end offset */ +- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end start */ +- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end end */ ++ wstr = wcschr_uint32 (time->wera[idx], L':'); /* end direction */ ++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end offset */ ++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end start */ ++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end end */ + if (wstr != NULL) + { +- time->era_entries[idx].wname = (uint32_t *) wstr + 1; +- wstr = wcschr (wstr + 1, L':'); /* end name */ ++ time->era_entries[idx].wname = wstr + 1; ++ wstr = wcschr_uint32 (wstr + 1, L':'); /* end name */ + if (wstr != NULL) + { + *wstr = L'\0'; +- time->era_entries[idx].wformat = (uint32_t *) wstr + 1; ++ time->era_entries[idx].wformat = wstr + 1; + } + else + time->era_entries[idx].wname = +@@ -527,7 +529,16 @@ No definition for %s category found"), "LC_TIME"); + if (time->date_fmt == NULL) + time->date_fmt = "%a %b %e %H:%M:%S %Z %Y"; + if (time->wdate_fmt == NULL) +- time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y"; ++ { ++ static const uint32_t wdate_fmt[] = ++ { '%','a',' ', ++ '%','b',' ', ++ '%','e',' ', ++ '%','H',':','%','M',':','%','S',' ', ++ '%','Z',' ', ++ '%','Y',0 }; ++ time->wdate_fmt = wdate_fmt; ++ } + } + + +diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c +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, + { + int return_widestr = lr->return_widestr; + char *buf; +- wchar_t *buf2 = NULL; ++ uint32_t *buf2 = NULL; + size_t bufact; + size_t bufmax = 56; + +diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c +index dbbb0145c0..097a8b6193 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; + #define OPT_NO_WARN 402 + #define OPT_WARN 403 + #define OPT_NO_HARD_LINKS 404 ++#define OPT_UINT32_ALIGN 405 + + /* Definitions of arguments for argp functions. */ + static const struct argp_option options[] = +@@ -153,6 +154,8 @@ static const struct argp_option options[] = + N_("Generate little-endian output") }, + { "big-endian", OPT_BIG_ENDIAN, NULL, 0, + N_("Generate big-endian output") }, ++ { "uint32-align", OPT_UINT32_ALIGN, "ALIGNMENT", 0, ++ N_("Set the target's uint32_t alignment in bytes (default 4)") }, + { NULL, 0, NULL, 0, NULL } + }; + +@@ -242,12 +245,14 @@ main (int argc, char *argv[]) + ctype locale. (P1003.2 4.35.5.2) */ + setlocale (LC_CTYPE, "POSIX"); + ++#ifndef NO_SYSCONF + /* Look whether the system really allows locale definitions. POSIX + defines error code 3 for this situation so I think it must be + a fatal error (see P1003.2 4.35.8). */ + if (sysconf (_SC_2_LOCALEDEF) < 0) + record_error (3, 0, _("\ + FATAL: system does not define `_POSIX2_LOCALEDEF'")); ++#endif + + /* 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) + /* Do not hard link to other locales. */ + hard_links = false; + break; ++ case OPT_UINT32_ALIGN: ++ uint32_align_mask = strtol (arg, NULL, 0) - 1; ++ break; + case 'c': + force_output = 1; + break; +diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c +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, + machine running localedef. */ + bool swap_endianness_p; + ++/* The target's value of __align__(uint32_t) - 1. */ ++unsigned int uint32_align_mask = 3; ++ + /* When called outside a start_locale_structure/end_locale_structure + or start_locale_prelude/end_locale_prelude block, record that the + next byte in FILE's obstack will be the first byte of a new element. +@@ -621,7 +624,7 @@ add_locale_string (struct locale_file *file, const char *string) + void + add_locale_wstring (struct locale_file *file, const uint32_t *string) + { +- add_locale_uint32_array (file, string, wcslen ((const wchar_t *) string) + 1); ++ add_locale_uint32_array (file, string, wcslen_uint32 (string) + 1); + } + + /* 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 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, + + extern bool swap_endianness_p; + ++extern unsigned int uint32_align_mask; ++ + /* Change the output to be big-endian if BIG_ENDIAN is true and + little-endian otherwise. */ + static inline void +@@ -89,7 +91,8 @@ maybe_swap_uint32 (uint32_t value) + } + + /* Likewise, but munge an array of N uint32_ts starting at ARRAY. */ +-static inline void ++static void ++__attribute__ ((unused)) + maybe_swap_uint32_array (uint32_t *array, size_t n) + { + if (swap_endianness_p) +@@ -99,7 +102,8 @@ maybe_swap_uint32_array (uint32_t *array, size_t n) + + /* Like maybe_swap_uint32_array, but the array of N elements is at + the end of OBSTACK's current object. */ +-static inline void ++static void ++__attribute__ ((unused)) + maybe_swap_uint32_obstack (struct obstack *obstack, size_t n) + { + maybe_swap_uint32_array ((uint32_t *) obstack_next_free (obstack) - n, n); +@@ -276,4 +280,55 @@ extern void identification_output (struct localedef_t *locale, + const struct charmap_t *charmap, + const char *output_path); + ++static size_t wcslen_uint32 (const uint32_t *str) __attribute__ ((unused)); ++static uint32_t * wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); ++static uint32_t * wcschr_uint32 (const uint32_t *s, uint32_t ch) __attribute__ ((unused)); ++static int wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) __attribute__ ((unused)); ++static int wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused)); ++ ++static size_t ++wcslen_uint32 (const uint32_t *str) ++{ ++ size_t len = 0; ++ while (str[len] != 0) ++ len++; ++ return len; ++} ++ ++static int ++wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) ++{ ++ while (n-- != 0) ++ { ++ int diff = *s1++ - *s2++; ++ if (diff != 0) ++ return diff; ++ } ++ return 0; ++} ++ ++static int ++wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) ++{ ++ while (*s1 != 0 && *s1 == *s2) ++ s1++, s2++; ++ return *s1 - *s2; ++} ++ ++static uint32_t * ++wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) ++{ ++ return memcpy (s1, s2, n * sizeof (uint32_t)); ++} ++ ++static uint32_t * ++wcschr_uint32 (const uint32_t *s, uint32_t ch) ++{ ++ do ++ if (*s == ch) ++ return (uint32_t *) s; ++ while (*s++ != 0); ++ return 0; ++} ++ + #endif /* locfile.h */ +diff --git a/locale/setlocale.c b/locale/setlocale.c +index 030f1727bd..096d8ed895 100644 +--- a/locale/setlocale.c ++++ b/locale/setlocale.c +@@ -63,35 +63,6 @@ static char *const _nl_current_used[] = + + #endif + +- +-/* Define an array of category names (also the environment variable names). */ +-const struct catnamestr_t _nl_category_names attribute_hidden = +- { +-#define DEFINE_CATEGORY(category, category_name, items, a) \ +- 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 (struct catnamestr_t, CATNAMEMF (__LINE__)), +-#include "categories.def" +-#undef DEFINE_CATEGORY +- }; +- +-/* An array of their lengths, for convenience. */ +-const uint8_t _nl_category_name_sizes[] attribute_hidden = +- { +-#define DEFINE_CATEGORY(category, category_name, items, a) \ +- [category] = sizeof (category_name) - 1, +-#include "categories.def" +-#undef DEFINE_CATEGORY +- [LC_ALL] = sizeof ("LC_ALL") - 1 +- }; +- +- + #ifdef NL_CURRENT_INDIRECT + # define WEAK_POSTLOAD(postload) weak_extern (postload) + #else diff --git a/external/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch b/external/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch new file mode 100644 index 00000000..15e460eb --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch @@ -0,0 +1,29 @@ +From 067f71a381ce6626ef1179be3dd90c4ed2aa52fb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 20 Apr 2016 21:11:00 -0700 +Subject: [PATCH] Define DUMMY_LOCALE_T if not defined + +This is a hack to fix building the locale bits on an older +CentOs 5.X machine + +Upstream-Status: Inappropriate [other] + +Signed-off-by: Khem Raj +--- + locale/programs/config.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/locale/programs/config.h b/locale/programs/config.h +index d76d9f7e8b..92b56d7df3 100644 +--- a/locale/programs/config.h ++++ b/locale/programs/config.h +@@ -19,6 +19,9 @@ + #ifndef _LD_CONFIG_H + #define _LD_CONFIG_H 1 + ++#ifndef DUMMY_LOCALE_T ++#define DUMMY_LOCALE_T ++#endif + /* Use the internal textdomain used for libc messages. */ + #define PACKAGE _libc_intl_domainname + #ifndef VERSION diff --git a/external/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/external/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch deleted file mode 100644 index 28cff2b9..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a6159c9486745664a5f116ee9cc45837021b7624 Mon Sep 17 00:00:00 2001 -From: Mark Hatle -Date: Thu, 18 Aug 2016 14:07:58 -0500 -Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first - -According to the ELF specification: - -When resolving symbolic references, the dynamic linker examines the symbol -tables with a breadth-first search. - -This function was using a depth first search. By doing so the conflict -resolution reported to the prelinker (when LD_TRACE_PRELINKING=1 is set) -was incorrect. This caused problems when their were various circular -dependencies between libraries. The problem usually manifested itself by -the wrong IFUNC being executed. - -[BZ# 20488] - -Upstream-Status: Submitted [libc-alpha] - -Signed-off-by: Mark Hatle ---- - elf/dl-deps.c | 14 ++++++++++---- - 1 file changed, 10 insertions(+), 4 deletions(-) - -diff --git a/elf/dl-deps.c b/elf/dl-deps.c -index 9d9b1ba7f2..8414028c58 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) - { - struct link_map **p = list; - struct link_map **q; -+ struct link_map **r; - - *p++ = map; - map->l_reserved = 1; -- if (map->l_initfini) -- for (q = map->l_initfini + 1; *q; ++q) -- if (! (*q)->l_reserved) -- p += _dl_build_local_scope (p, *q); -+ -+ for (r = list; r < p; ++r) -+ if ((*r)->l_initfini) -+ for (q = (*r)->l_initfini + 1; *q; ++q) -+ if (! (*q)->l_reserved) -+ { -+ *p++ = *q; -+ (*q)->l_reserved = 1; -+ } - return p - list; - } - diff --git a/external/poky/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch b/external/poky/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch deleted file mode 100644 index 4a7919ff..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0025-locale-fix-hard-coded-reference-to-gcc-E.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 6c6aecba19b3e7947100623532a41b6f16734ace Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Rosen?= -Date: Mon, 22 Aug 2016 16:09:25 +0200 -Subject: [PATCH] locale: fix hard-coded reference to gcc -E - -When new version of compilers are published, they may not be compatible with -older versions of software. This is particularly common when software is built -with -Werror. - -Autotools provides a way for a user to specify the name of his compiler using a -set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when -compiling glibc but the script used to generate transliterations in the locale/ -subdirectory directly calls the gcc binary to get the output of the -preprocessor instead of using the $CPP variable provided by the build -environment. - -This patch replaces the hard-coded reference to the gcc binary with the proper -environment variable, thus allowing a user to override it. - -Upstream-Status: Submitted [https://sourceware.org/ml/libc-alpha/2016-08/msg00746.html] ---- - locale/gen-translit.pl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl -index 30d3f2f195..e97653017c 100644 ---- a/locale/gen-translit.pl -+++ b/locale/gen-translit.pl -@@ -1,5 +1,5 @@ - #!/usr/bin/perl -w --open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file"; -+open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file"; - - - sub cstrlen { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/external/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch new file mode 100644 index 00000000..543f65d6 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch @@ -0,0 +1,80 @@ +From 8f4b0bac85d14b184e08848b02de3f30775f05b1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:42:06 -0700 +Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path + +it doesn't exist in normal use, and there's no way to pass an +alternative filename. + +Add a fallback of $LOCALEARCHIVE from the environment, and allow +creation of new locale archives that are not the system archive. + +Upstream-Status: Inappropriate (OE-specific) + +Signed-off-by: Ross Burton +Signed-off-by: Khem Raj +--- + locale/programs/locarchive.c | 35 +++++++++++++++++++++++++---------- + 1 file changed, 25 insertions(+), 10 deletions(-) + +diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c +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) + struct namehashent *oldnamehashtab; + struct locarhandle new_ah; + size_t prefix_len = output_prefix ? strlen (output_prefix) : 0; +- char archivefname[prefix_len + sizeof (ARCHIVE_NAME)]; +- char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1]; ++ char *archivefname; ++ char *fname; ++ char *envarchive = getenv("LOCALEARCHIVE"); + +- if (output_prefix) +- memcpy (archivefname, output_prefix, prefix_len); +- strcpy (archivefname + prefix_len, ARCHIVE_NAME); ++ if (envarchive != NULL) ++ { ++ archivefname = xmalloc(strlen(envarchive) + 1); ++ fname = xmalloc(strlen(envarchive) + sizeof (".XXXXXX")); ++ strcpy (archivefname, envarchive); ++ } ++ else ++ { ++ archivefname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME)); ++ fname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1); ++ if (output_prefix) ++ memcpy (archivefname, output_prefix, prefix_len); ++ strcpy (archivefname + prefix_len, ARCHIVE_NAME); ++ } + strcpy (stpcpy (fname, archivefname), ".XXXXXX"); + + /* Not all of the old file has to be mapped. Change this now this +@@ -569,10 +581,13 @@ open_archive (struct locarhandle *ah, bool readonly) + /* If ah has a non-NULL fname open that otherwise open the default. */ + if (archivefname == NULL) + { +- archivefname = default_fname; +- if (output_prefix) +- memcpy (default_fname, output_prefix, prefix_len); +- strcpy (default_fname + prefix_len, ARCHIVE_NAME); ++ archivefname = getenv("LOCALEARCHIVE"); ++ if (archivefname == NULL) { ++ archivefname = default_fname; ++ if (output_prefix) ++ memcpy (default_fname, output_prefix, prefix_len); ++ strcpy (default_fname + prefix_len, ARCHIVE_NAME); ++ } + } + + while (1) +@@ -585,7 +600,7 @@ open_archive (struct locarhandle *ah, bool readonly) + the default locale archive we ignore the failure and + list an empty archive, otherwise we print an error + and exit. */ +- if (errno == ENOENT && archivefname == default_fname) ++ if (errno == ENOENT) + { + if (readonly) + { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/external/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch new file mode 100644 index 00000000..5f6ee40f --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch @@ -0,0 +1,53 @@ +From 1dad746ce93928a57b2fe618c74722f710751826 Mon Sep 17 00:00:00 2001 +From: Mark Hatle +Date: Thu, 18 Aug 2016 14:07:58 -0500 +Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first + +According to the ELF specification: + +When resolving symbolic references, the dynamic linker examines the symbol +tables with a breadth-first search. + +This function was using a depth first search. By doing so the conflict +resolution reported to the prelinker (when LD_TRACE_PRELINKING=1 is set) +was incorrect. This caused problems when their were various circular +dependencies between libraries. The problem usually manifested itself by +the wrong IFUNC being executed. + +[BZ# 20488] + +Upstream-Status: Submitted [libc-alpha] + +Signed-off-by: Mark Hatle +--- + elf/dl-deps.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/elf/dl-deps.c b/elf/dl-deps.c +index 5103a8a111..54cd80aaff 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) + { + struct link_map **p = list; + struct link_map **q; ++ struct link_map **r; + + *p++ = map; + map->l_reserved = 1; +- if (map->l_initfini) +- for (q = map->l_initfini + 1; *q; ++q) +- if (! (*q)->l_reserved) +- p += _dl_build_local_scope (p, *q); ++ ++ for (r = list; r < p; ++r) ++ if ((*r)->l_initfini) ++ for (q = (*r)->l_initfini + 1; *q; ++q) ++ if (! (*q)->l_reserved) ++ { ++ *p++ = *q; ++ (*q)->l_reserved = 1; ++ } + return p - list; + } + diff --git a/external/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch b/external/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch new file mode 100644 index 00000000..2c317d58 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch @@ -0,0 +1,31 @@ +From 3c8d9eae83ab4f1677afc9b379f97114e8503363 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:44:00 -0700 +Subject: [PATCH] intl: Emit no lines in bison generated files + +Improve reproducibility: +Do not put any #line preprocessor commands in bison generated files. +These lines contain absolute paths containing file locations on +the host build machine. + +Upstream-Status: Pending + +Signed-off-by: Juro Bystricky +Signed-off-by: Khem Raj +--- + intl/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/intl/Makefile b/intl/Makefile +index ce3072420f..58457840d9 100644 +--- a/intl/Makefile ++++ b/intl/Makefile +@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out + + CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ + -D'LOCALE_ALIAS_PATH="$(localedir)"' +-BISONFLAGS = --yacc --name-prefix=__gettext --output ++BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output + + $(inst_localedir)/locale.alias: locale.alias $(+force) + $(do-install) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch b/external/poky/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch deleted file mode 100644 index fae8d004..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 38fad3e5ab3b45c56810abd35fa11a72fa10b8f1 Mon Sep 17 00:00:00 2001 -From: Pratyush Anand -Date: Wed, 22 Mar 2017 17:02:38 +0530 -Subject: [PATCH] bits/siginfo-consts.h: enum definition for TRAP_HWBKPT is - missing -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Compile following linux kernel test code with latest glibc: - -https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/breakpoints/breakpoint_test_arm64.c - -and we get following error: -breakpoint_test_arm64.c: In function ‘run_test’: -breakpoint_test_arm64.c:171:25: error: ‘TRAP_HWBKPT’ undeclared (first use in this function) - if (siginfo.si_code != TRAP_HWBKPT) { - ^ -I can compile test code by modifying my local -/usr/include/bits/siginfo.h and test works great. Therefore, this patch -will be needed in upstream glibc so that issue is fixed there as well. - -Signed-off-by: Pratyush Anand - -Upstream-Status: Submitted [https://sourceware.org/bugzilla/show_bug.cgi?id=21286] ---- - bits/siginfo-consts.h | 6 +++++- - sysdeps/unix/sysv/linux/bits/siginfo-consts.h | 6 +++++- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/bits/siginfo-consts.h b/bits/siginfo-consts.h -index 7464c1882b..298314527a 100644 ---- a/bits/siginfo-consts.h -+++ b/bits/siginfo-consts.h -@@ -106,8 +106,12 @@ enum - { - TRAP_BRKPT = 1, /* Process breakpoint. */ - # define TRAP_BRKPT TRAP_BRKPT -- TRAP_TRACE /* Process trace trap. */ -+ TRAP_TRACE, /* Process trace trap. */ - # define TRAP_TRACE TRAP_TRACE -+ TRAP_BRANCH, /* Process branch trap. */ -+# define TRAP_BRANCH TRAP_BRANCH -+ TRAP_HWBKPT /* hardware breakpoint/watchpoint */ -+# define TRAP_HWBKPT TRAP_HWBKPT - }; - # endif - -diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -index 193bd9c471..3fe852bc5f 100644 ---- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -+++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h -@@ -141,8 +141,12 @@ enum - { - TRAP_BRKPT = 1, /* Process breakpoint. */ - # define TRAP_BRKPT TRAP_BRKPT -- TRAP_TRACE /* Process trace trap. */ -+ TRAP_TRACE, /* Process trace trap. */ - # define TRAP_TRACE TRAP_TRACE -+ TRAP_BRANCH, /* Process branch trap. */ -+# define TRAP_BRANCH TRAP_BRANCH -+ TRAP_HWBKPT /* hardware breakpoint/watchpoint */ -+# define TRAP_HWBKPT TRAP_HWBKPT - }; - # endif - diff --git a/external/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch b/external/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch new file mode 100644 index 00000000..e1a030d1 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch @@ -0,0 +1,301 @@ +From 420454f7098b5445730caa855c37b8143bfccc1b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Nov 2018 17:29:35 -0800 +Subject: [PATCH] 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 +.S assembler files during the glibc build. No STT_FILE section is added +during the assembly but when linking, ld decides to add one to aid +debugging and ensure references between the different object files its +linking remain clear. + +We can avoid this by injecting a file header into the assembler files +ahead of time, choosing a filename which does not contain build system +paths. + +This is a bit of a workaround/hack but does significantly reduce the +build system references in target binaries for the non-IA architectures +which use .S files. + +RP +2018/10/3 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + csu/abi-note.S | 2 ++ + sysdeps/aarch64/crti.S | 2 ++ + sysdeps/aarch64/crtn.S | 2 ++ + 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 ++ + sysdeps/arm/dl-trampoline.S | 2 ++ + sysdeps/arm/start.S | 2 ++ + sysdeps/mips/start.S | 2 ++ + sysdeps/powerpc/powerpc32/dl-start.S | 2 ++ + sysdeps/powerpc/powerpc32/start.S | 2 ++ + sysdeps/powerpc/powerpc64/start.S | 2 ++ + sysdeps/unix/sysv/linux/aarch64/__read_tp.S | 2 ++ + 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(+) + +diff --git a/csu/abi-note.S b/csu/abi-note.S +index 2b4b5f8824..964843016c 100644 +--- a/csu/abi-note.S ++++ b/csu/abi-note.S +@@ -56,6 +56,8 @@ offset length contents + #include + #include /* OS-specific ABI tag value */ + ++ .file "abi-note.S" ++ + /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose + name begins with `.note' and creates a PT_NOTE program header entry + pointing at it. */ +diff --git a/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S +index 1728eac37a..76a8ab590b 100644 +--- a/sysdeps/aarch64/crti.S ++++ b/sysdeps/aarch64/crti.S +@@ -50,6 +50,8 @@ + # define PREINIT_FUNCTION_WEAK 1 + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + weak_extern (PREINIT_FUNCTION) + #else +diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S +index c3e97cc449..fc2e5c2df8 100644 +--- a/sysdeps/aarch64/crtn.S ++++ b/sysdeps/aarch64/crtn.S +@@ -37,6 +37,8 @@ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + ++ .file "crtn.S" ++ + .section .init,"ax",%progbits + ldp x29, x30, [sp], 16 + RET +diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S +index 557ad1d505..194a8531da 100644 +--- a/sysdeps/aarch64/dl-tlsdesc.S ++++ b/sysdeps/aarch64/dl-tlsdesc.S +@@ -22,6 +22,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + #define NSAVEDQREGPAIRS 16 + #define SAVE_Q_REGISTERS \ + stp q0, q1, [sp, #-32*NSAVEDQREGPAIRS]!; \ +diff --git a/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S +index 94e965c096..ba18742f3e 100644 +--- a/sysdeps/aarch64/dl-trampoline.S ++++ b/sysdeps/aarch64/dl-trampoline.S +@@ -21,6 +21,8 @@ + + #include "dl-link.h" + ++ .file "dl-trampoline.S" ++ + #define ip0 x16 + #define ip0l PTR_REG (16) + #define ip1 x17 +diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S +index d96cf57e2d..07a523978a 100644 +--- a/sysdeps/aarch64/start.S ++++ b/sysdeps/aarch64/start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "start.S" ++ + /* This is the canonical entry point, usually the first thing in the text + segment. + +diff --git a/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S +index 07bd4c4619..7213b16f27 100644 +--- a/sysdeps/arm/abi-note.S ++++ b/sysdeps/arm/abi-note.S +@@ -1,3 +1,5 @@ ++ .file "abi-note.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/arm/crti.S b/sysdeps/arm/crti.S +index 8169783267..f56e0c85a6 100644 +--- a/sysdeps/arm/crti.S ++++ b/sysdeps/arm/crti.S +@@ -57,6 +57,8 @@ + .hidden PREINIT_FUNCTION + #endif + ++ .file "crti.S" ++ + #if PREINIT_FUNCTION_WEAK + .p2align 2 + .type call_weak_fn, %function +diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S +index d60f9f05de..1e10ec439f 100644 +--- a/sysdeps/arm/crtn.S ++++ b/sysdeps/arm/crtn.S +@@ -37,6 +37,8 @@ + #define NO_THUMB + #include + ++ .file "crtn.S" ++ + /* crtn.S puts function epilogues in the .init and .fini sections + corresponding to the prologues in crti.S. */ + +diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S +index 8415e47607..29c2cb8128 100644 +--- a/sysdeps/arm/dl-tlsdesc.S ++++ b/sysdeps/arm/dl-tlsdesc.S +@@ -21,6 +21,8 @@ + #include + #include "tlsdesc.h" + ++ .file "dl-tlsdesc.S" ++ + .text + @ emit debug information with cfi + @ use arm-specific pseudos for unwinding itself +diff --git a/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S +index a20baf555e..2dd3bef04e 100644 +--- a/sysdeps/arm/dl-trampoline.S ++++ b/sysdeps/arm/dl-trampoline.S +@@ -21,6 +21,8 @@ + #include + #include + ++ .file "dl-trampoline.S" ++ + .text + .globl _dl_runtime_resolve + .type _dl_runtime_resolve, #function +diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S +index 2ff56179d2..c118046ec6 100644 +--- a/sysdeps/arm/start.S ++++ b/sysdeps/arm/start.S +@@ -57,6 +57,8 @@ + NULL + */ + ++ .file "start.S" ++ + /* Tag_ABI_align8_preserved: This code preserves 8-byte + alignment in any callee. */ + .eabi_attribute 25, 1 +diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S +index fabc8080df..83c6b91d7d 100644 +--- a/sysdeps/mips/start.S ++++ b/sysdeps/mips/start.S +@@ -38,6 +38,8 @@ + #include + #include + ++ .file "start.S" ++ + #ifndef ENTRY_POINT + #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. + #endif +diff --git a/sysdeps/powerpc/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S +index c15242d3bc..6ca27715a4 100644 +--- a/sysdeps/powerpc/powerpc32/dl-start.S ++++ b/sysdeps/powerpc/powerpc32/dl-start.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "dl-start.S" ++ + /* Initial entry point code for the dynamic linker. + The C function `_dl_start' is the real entry point; + its return value is the user program's entry point. */ +diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S +index b7b9a133a2..8df714f81a 100644 +--- a/sysdeps/powerpc/powerpc32/start.S ++++ b/sysdeps/powerpc/powerpc32/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S +index 94bf771e83..cffb99500a 100644 +--- a/sysdeps/powerpc/powerpc64/start.S ++++ b/sysdeps/powerpc/powerpc64/start.S +@@ -35,6 +35,8 @@ + + #include + ++ .file "start.S" ++ + /* We do not want .eh_frame info for crt1.o since crt1.o is linked + before crtbegin.o, the file defining __EH_FRAME_BEGIN__. */ + #undef cfi_startproc +diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +index 12e1131fe7..767e0d043b 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S ++++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S +@@ -18,6 +18,8 @@ + + #include + ++ .file "__read_tp.S" ++ + .hidden __read_tp + ENTRY (__read_tp) + mrs x0, tpidr_el0 +diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +index 3b0d611039..4a7e476c37 100644 +--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S ++++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S +@@ -39,6 +39,8 @@ + a normal function call) in a high page of memory; tail call to the + helper. */ + ++ .file "aeabi_read_tp.S" ++ + .hidden __aeabi_read_tp + ENTRY (__aeabi_read_tp) + #ifdef ARCH_HAS_HARD_TP +diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +index fb5e0c7d97..bd07bdb38b 100644 +--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S ++++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S +@@ -27,6 +27,8 @@ + ARM unwind tables for register to register moves, the actual opcodes + are not defined. */ + ++ .file "libc-do-syscall.S" ++ + #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 diff --git a/external/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/external/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch new file mode 100644 index 00000000..c8c359f2 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch @@ -0,0 +1,53 @@ +From 66963ad83bdd3b075006ddca9dfe357aed181d6a Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 17 Dec 2018 21:36:18 +0000 +Subject: [PATCH] locale: prevent maybe-uninitialized errors with -Os [BZ + #19444] + +Fixes following error when building for aarch64 with -Os: +| In file included from strcoll_l.c:43: +| strcoll_l.c: In function '__strcoll_l': +| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ +| In file included from strcoll_l.c:43: +| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] +| int_fast32_t i = table[*(*cpp)++]; +| ^~~~~~~~~ +| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here +| coll_seq seq1, seq2; +| ^~~~ + + Partial fix for [BZ #19444] + * locale/weight.h: Fix build with -Os. + +Upstream-Status: Submitted [https://patchwork.ozlabs.org/patch/1014766] + +Signed-off-by: Martin Jansa +Signed-off-by: Khem Raj +--- + locale/weight.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/locale/weight.h b/locale/weight.h +index e071253f85..2889c395f1 100644 +--- a/locale/weight.h ++++ b/locale/weight.h +@@ -28,7 +28,14 @@ findidx (const int32_t *table, + const unsigned char *extra, + const unsigned char **cpp, size_t len) + { ++ /* With GCC 8 when compiling with -Os the compiler warns that ++ seq1.back_us and seq2.back_us might be used uninitialized. ++ This uninitialized use is impossible for the same reason ++ as described in comments in locale/weightwc.h. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); + int_fast32_t i = table[*(*cpp)++]; ++ DIAG_POP_NEEDS_COMMENT; + const unsigned char *cp; + const unsigned char *usrc; + diff --git a/external/poky/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/external/poky/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch deleted file mode 100644 index e17f6aa3..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 865651d2496a90f7ae8e7cc19a2e54b6f17a8ad5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:42:06 -0700 -Subject: [PATCH] localedef --add-to-archive uses a hard-coded locale path - -it doesn't exist in normal use, and there's no way to pass an -alternative filename. - -Add a fallback of $LOCALEARCHIVE from the environment, and allow -creation of new locale archives that are not the system archive. - -Upstream-Status: Inappropriate (OE-specific) - -Signed-off-by: Ross Burton -Signed-off-by: Khem Raj ---- - locale/programs/locarchive.c | 37 ++++++++++++++++++++++++++---------- - 1 file changed, 27 insertions(+), 10 deletions(-) - -diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c -index ca332a345f..91f62da662 100644 ---- a/locale/programs/locarchive.c -+++ b/locale/programs/locarchive.c -@@ -340,12 +340,24 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) - struct namehashent *oldnamehashtab; - struct locarhandle new_ah; - size_t prefix_len = output_prefix ? strlen (output_prefix) : 0; -- char archivefname[prefix_len + sizeof (ARCHIVE_NAME)]; -- char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1]; -+ char *archivefname; -+ char *fname; -+ char *envarchive = getenv("LOCALEARCHIVE"); - -- if (output_prefix) -- memcpy (archivefname, output_prefix, prefix_len); -- strcpy (archivefname + prefix_len, ARCHIVE_NAME); -+ if (envarchive != NULL) -+ { -+ archivefname = xmalloc(strlen(envarchive) + 1); -+ fname = xmalloc(strlen(envarchive) + sizeof (".XXXXXX")); -+ strcpy (archivefname, envarchive); -+ } -+ else -+ { -+ archivefname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME)); -+ fname = xmalloc(prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1); -+ if (output_prefix) -+ memcpy (archivefname, output_prefix, prefix_len); -+ strcpy (archivefname + prefix_len, ARCHIVE_NAME); -+ } - strcpy (stpcpy (fname, archivefname), ".XXXXXX"); - - /* Not all of the old file has to be mapped. Change this now this -@@ -551,6 +563,8 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head) - - /* Add the information for the new one. */ - *ah = new_ah; -+ free(archivefname); -+ free(fname); - } - - -@@ -569,10 +583,13 @@ open_archive (struct locarhandle *ah, bool readonly) - /* If ah has a non-NULL fname open that otherwise open the default. */ - if (archivefname == NULL) - { -- archivefname = default_fname; -- if (output_prefix) -- memcpy (default_fname, output_prefix, prefix_len); -- strcpy (default_fname + prefix_len, ARCHIVE_NAME); -+ archivefname = getenv("LOCALEARCHIVE"); -+ if (archivefname == NULL) { -+ archivefname = default_fname; -+ if (output_prefix) -+ memcpy (default_fname, output_prefix, prefix_len); -+ strcpy (default_fname + prefix_len, ARCHIVE_NAME); -+ } - } - - while (1) -@@ -585,7 +602,7 @@ open_archive (struct locarhandle *ah, bool readonly) - the default locale archive we ignore the failure and - list an empty archive, otherwise we print an error - and exit. */ -- if (errno == ENOENT && archivefname == default_fname) -+ if (errno == ENOENT) - { - if (readonly) - { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch b/external/poky/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch deleted file mode 100644 index db97d91c..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0030-intl-Emit-no-lines-in-bison-generated-files.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a54c15d0567d547137066f41b1b22eba4875c27b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Aug 2018 09:44:00 -0700 -Subject: [PATCH] intl: Emit no lines in bison generated files - -Improve reproducibility: -Do not put any #line preprocessor commands in bison generated files. -These lines contain absolute paths containing file locations on -the host build machine. - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - intl/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/intl/Makefile b/intl/Makefile -index 672edf1b38..d31888d013 100644 ---- a/intl/Makefile -+++ b/intl/Makefile -@@ -155,7 +155,7 @@ $(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out - - CPPFLAGS += -D'LOCALEDIR="$(localedir)"' \ - -D'LOCALE_ALIAS_PATH="$(localedir)"' --BISONFLAGS = --yacc --name-prefix=__gettext --output -+BISONFLAGS = --yacc --no-lines --name-prefix=__gettext --output - - $(inst_localedir)/locale.alias: locale.alias $(+force) - $(do-install) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch b/external/poky/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch deleted file mode 100644 index 61f55d4f..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch +++ /dev/null @@ -1,258 +0,0 @@ -From 546b46c309a52ed74dc906114b1e984bb9703d74 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Fri, 14 Sep 2018 23:23:03 +0000 -Subject: [PATCH] sysdeps/ieee754: prevent maybe-uninitialized errors with -O - [BZ #19444] - -With -O included in CFLAGS it fails to build with: - -../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_jnl': -../sysdeps/ieee754/ldbl-96/e_jnl.c:146:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrtl (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_ynl': -../sysdeps/ieee754/ldbl-96/e_jnl.c:375:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrtl (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_jn': -../sysdeps/ieee754/dbl-64/e_jn.c:113:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrt (x); - ~~~~~~~~~~^~~~~~ -../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_yn': -../sysdeps/ieee754/dbl-64/e_jn.c:320:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized] - b = invsqrtpi * temp / sqrt (x); - ~~~~~~~~~~^~~~~~ - -Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64 -with -O, -O1, -Os. -For soft-fp ARM it needs one more fix for -O1: -https://sourceware.org/ml/libc-alpha/2018-09/msg00300.html -For AARCH64 it needs one more fix in locale for -Os. - - [BZ #23716] - * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O - * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise. - * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise. - * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise. - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00299.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 7 +++++++ - sysdeps/ieee754/dbl-64/e_jn.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-128/e_jnl.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 21 +++++++++++++++++++++ - sysdeps/ieee754/ldbl-96/e_jnl.c | 21 +++++++++++++++++++++ - 5 files changed, 91 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 11a9b8d98e..922e916f2c 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,10 @@ -+2018-09-29 Martin Jansa -+ Partial fix for [BZ #23716] -+ * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O -+ * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise. -+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Likewise. -+ - 2018-09-28 Adhemerval Zanella - - [BZ #23579] -diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c -index 9181b22bb8..9ff52c737f 100644 ---- a/sysdeps/ieee754/dbl-64/e_jn.c -+++ b/sysdeps/ieee754/dbl-64/e_jn.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - static const double - invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ -@@ -109,7 +110,17 @@ __ieee754_jn (int n, double x) - case 2: temp = -c - s; break; - case 3: temp = c - s; break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrt (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -316,7 +327,17 @@ __ieee754_yn (int n, double x) - case 2: temp = -s + c; break; - case 3: temp = s + c; break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrt (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c -index 7739eec291..8706a11575 100644 ---- a/sysdeps/ieee754/ldbl-128/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const _Float128 - invsqrtpi = L(5.6418958354775628694807945156077258584405E-1), -@@ -150,7 +151,17 @@ __ieee754_jnl (int n, _Float128 x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -386,7 +397,17 @@ __ieee754_ynl (int n, _Float128 x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -index 71b3addfba..3226d02309 100644 ---- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const long double - invsqrtpi = 5.6418958354775628694807945156077258584405E-1L, -@@ -150,7 +151,17 @@ __ieee754_jnl (int n, long double x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -386,7 +397,17 @@ __ieee754_ynl (int n, long double x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c -index 394921f564..da5c2cc93e 100644 ---- a/sysdeps/ieee754/ldbl-96/e_jnl.c -+++ b/sysdeps/ieee754/ldbl-96/e_jnl.c -@@ -61,6 +61,7 @@ - #include - #include - #include -+#include - - static const long double - invsqrtpi = 5.64189583547756286948079e-1L, two = 2.0e0L, one = 1.0e0L; -@@ -143,7 +144,17 @@ __ieee754_jnl (int n, long double x) - temp = c - s; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { -@@ -372,7 +383,17 @@ __ieee754_ynl (int n, long double x) - temp = s + c; - break; - } -+ /* With GCC 8 (and older) when compiling with -O the compiler -+ warns that the variable 'temp', may be used uninitialized. -+ The switch above covers all possible values of n & 3 -+ but GCC without VRP enabled isn't able to figure out the -+ range of possible values is [0,3] as explained in: -+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69230 -+ so it's false possitive with -O1 and lower. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - b = invsqrtpi * temp / sqrtl (x); -+ DIAG_POP_NEEDS_COMMENT; - } - else - { diff --git a/external/poky/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch b/external/poky/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch deleted file mode 100644 index 99cd2509..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 618668540e263c09b0eb28131dde7b4500158fd4 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 16 Sep 2018 12:39:22 +0000 -Subject: [PATCH] sysdeps/ieee754/soft-fp: ignore maybe-uninitialized with -O - [BZ #19444] - -* with -O, -O1, -Os it fails with: - -In file included from ../soft-fp/soft-fp.h:318, - from ../sysdeps/ieee754/soft-fp/s_fdiv.c:28: -../sysdeps/ieee754/soft-fp/s_fdiv.c: In function '__fdiv': -../soft-fp/op-2.h:98:25: error: 'R_f1' may be used uninitialized in this function [-Werror=maybe-uninitialized] - X##_f0 = (X##_f1 << (_FP_W_TYPE_SIZE - (N)) | X##_f0 >> (N) \ - ^~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:14: note: 'R_f1' was declared here - FP_DECL_D (R); - ^ -../soft-fp/op-2.h:37:36: note: in definition of macro '_FP_FRAC_DECL_2' - _FP_W_TYPE X##_f0 _FP_ZERO_INIT, X##_f1 _FP_ZERO_INIT - ^ -../soft-fp/double.h:95:24: note: in expansion of macro '_FP_DECL' - # define FP_DECL_D(X) _FP_DECL (2, X) - ^~~~~~~~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:3: note: in expansion of macro 'FP_DECL_D' - FP_DECL_D (R); - ^~~~~~~~~ -../soft-fp/op-2.h:101:17: error: 'R_f0' may be used uninitialized in this function [-Werror=maybe-uninitialized] - : (X##_f0 << (_FP_W_TYPE_SIZE - (N))) != 0)); \ - ^~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:14: note: 'R_f0' was declared here - FP_DECL_D (R); - ^ -../soft-fp/op-2.h:37:14: note: in definition of macro '_FP_FRAC_DECL_2' - _FP_W_TYPE X##_f0 _FP_ZERO_INIT, X##_f1 _FP_ZERO_INIT - ^ -../soft-fp/double.h:95:24: note: in expansion of macro '_FP_DECL' - # define FP_DECL_D(X) _FP_DECL (2, X) - ^~~~~~~~ -../sysdeps/ieee754/soft-fp/s_fdiv.c:38:3: note: in expansion of macro 'FP_DECL_D' - FP_DECL_D (R); - ^~~~~~~~~ - -Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64 -with -O, -O1, -Os. -For AARCH64 it needs one more fix in locale for -Os. - - Partial fix for [BZ #23716] - * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00300.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 4 ++++ - sysdeps/ieee754/soft-fp/s_fdiv.c | 12 ++++++++++++ - 2 files changed, 16 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 922e916f2c..216336edc9 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,7 @@ -+2018-09-30 Martin Jansa -+ Partial fix for [BZ #23716] -+ * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O. -+ - 2018-09-29 Martin Jansa - Partial fix for [BZ #23716] - * sysdeps/ieee754/dbl-96/e_jnl.c: Fix build with -O -diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c -index 341339f5ed..14655b77da 100644 ---- a/sysdeps/ieee754/soft-fp/s_fdiv.c -+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c -@@ -25,6 +25,16 @@ - #undef fdivl - - #include -+ -+#include -+/* R_f[01] are not set in cases where it is not used in packing, but the -+ compiler does not see that it is set in all cases where it is -+ used, resulting in warnings that it may be used uninitialized. -+ The location of the warning differs in different versions of GCC, -+ it may be where R is defined using a macro or it may be where the -+ macro is defined. */ -+DIAG_PUSH_NEEDS_COMMENT; -+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - #include - #include - #include -@@ -53,4 +63,6 @@ __fdiv (double x, double y) - CHECK_NARROW_DIV (ret, x, y); - return ret; - } -+DIAG_POP_NEEDS_COMMENT; -+ - libm_alias_float_double (div) diff --git a/external/poky/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/external/poky/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch deleted file mode 100644 index 31058ca9..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch +++ /dev/null @@ -1,68 +0,0 @@ -From cbada1a1b218c1ef61d0eb4363fad7598e6509d6 Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Sun, 30 Sep 2018 09:16:48 +0000 -Subject: [PATCH] locale: prevent maybe-uninitialized errors with -Os [BZ - #19444] - -Fixes following error when building for aarch64 with -Os: -| In file included from strcoll_l.c:43: -| strcoll_l.c: In function '__strcoll_l': -| ../locale/weight.h:31:26: error: 'seq2.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:18: note: 'seq2.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ -| In file included from strcoll_l.c:43: -| ../locale/weight.h:31:26: error: 'seq1.back_us' may be used uninitialized in this function [-Werror=maybe-uninitialized] -| int_fast32_t i = table[*(*cpp)++]; -| ^~~~~~~~~ -| strcoll_l.c:304:12: note: 'seq1.back_us' was declared here -| coll_seq seq1, seq2; -| ^~~~ - - Partial fix for [BZ #23716] - * locale/weight.h: Fix build with -Os. - -Work around the issue instead of removing -O like we do with -SELECTED_OPTIMIZATION - -Upstream-Status: Submitted [https://www.sourceware.org/ml/libc-alpha/2018-09/msg00539.html] - -Signed-off-by: Martin Jansa ---- - ChangeLog | 4 ++++ - locale/weight.h | 7 +++++++ - 2 files changed, 11 insertions(+) - -diff --git a/ChangeLog b/ChangeLog -index 216336edc9..84fbbf47ed 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,7 @@ -+2018-09-30 Martin Jansa -+ Partial fix for [BZ #23716] -+ * locale/weight.h: Fix build with -Os. -+ - 2018-09-30 Martin Jansa - Partial fix for [BZ #23716] - * sysdeps/ieee754/soft-fp/s_fdiv.c: Fix build with -O. -diff --git a/locale/weight.h b/locale/weight.h -index 6028d3595e..10bcea25e5 100644 ---- a/locale/weight.h -+++ b/locale/weight.h -@@ -28,7 +28,14 @@ findidx (const int32_t *table, - const unsigned char *extra, - const unsigned char **cpp, size_t len) - { -+ /* With GCC 8 when compiling with -Os the compiler warns that -+ seq1.back_us and seq2.back_us might be used uninitialized. -+ This uninitialized use is impossible for the same reason -+ as described in comments in locale/weightwc.h. */ -+ DIAG_PUSH_NEEDS_COMMENT; -+ DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized"); - int_fast32_t i = table[*(*cpp)++]; -+ DIAG_POP_NEEDS_COMMENT; - const unsigned char *cp; - const unsigned char *usrc; - diff --git a/external/poky/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch b/external/poky/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch deleted file mode 100644 index 55eba2d4..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/0034-inject-file-assembly-directives.patch +++ /dev/null @@ -1,272 +0,0 @@ -Currently, non-IA builds are not reproducibile since build paths are -being injected into the debug symbols. These are coming from the use of -.S assembler files during the glibc build. No STT_FILE section is added -during the assembly but when linking, ld decides to add one to aid -debugging and ensure references between the different object files its -linking remain clear. - -We can avoid this by injecting a file header into the assembler files -ahead of time, choosing a filename which does not contain build system -paths. - -This is a bit of a workaround/hack but does significantly reduce the -build system references in target binaries for the non-IA architectures -which use .S files. - -RP -2018/10/3 - -Upstream-Status: Pending - -diff --git a/csu/abi-note.S b/csu/abi-note.S -index 5d0ca7803d..8ce41581b1 100644 ---- a/csu/abi-note.S -+++ b/csu/abi-note.S -@@ -56,6 +56,8 @@ offset length contents - #include - #include /* 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 2b213758b2..736f33e314 100644 ---- a/sysdeps/aarch64/crti.S -+++ b/sysdeps/aarch64/crti.S -@@ -50,6 +50,8 @@ - # define PREINIT_FUNCTION_WEAK 1 - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - weak_extern (PREINIT_FUNCTION) - #else -diff --git a/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S -index d72300af80..cb249bf3ca 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 - corresponding to the prologues in crti.S. */ - -+ .file "crtn.S" -+ - .section .init,"ax",%progbits - ldp x29, x30, [sp], 16 - RET -diff --git a/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S -index bad000f555..5957c028cd 100644 ---- a/sysdeps/aarch64/start.S -+++ b/sysdeps/aarch64/start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "start.S" -+ - /* This is the canonical entry point, usually the first thing in the text - segment. - -diff --git a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -index 92fc0191a5..715bfcb9e4 100644 ---- a/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -+++ b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "__read_tp.S" -+ - .hidden __read_tp - ENTRY (__read_tp) - mrs x0, tpidr_el0 -diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S -index 43a62ef307..42f85cdde9 100644 ---- a/sysdeps/aarch64/dl-tlsdesc.S -+++ b/sysdeps/aarch64/dl-tlsdesc.S -@@ -22,6 +22,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - #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 a86d0722d4..92edab1d01 100644 ---- a/sysdeps/aarch64/dl-trampoline.S -+++ b/sysdeps/aarch64/dl-trampoline.S -@@ -21,6 +21,8 @@ - - #include "dl-link.h" - -+ .file "dl-trampoline.S" -+ - #define ip0 x16 - #define ip0l PTR_REG (16) - #define ip1 x17 -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 a1424d0333..bca1dab256 100644 ---- a/sysdeps/arm/crti.S -+++ b/sysdeps/arm/crti.S -@@ -57,6 +57,8 @@ - .hidden PREINIT_FUNCTION - #endif - -+ .file "crti.S" -+ - #if PREINIT_FUNCTION_WEAK - .p2align 2 - .type call_weak_fn, %function -diff --git a/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S -index 26027693ce..65a0502826 100644 ---- a/sysdeps/arm/crtn.S -+++ b/sysdeps/arm/crtn.S -@@ -37,6 +37,8 @@ - #define NO_THUMB - #include - -+ .file "crtn.S" -+ - /* 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 056e17d52d..a98c68dfb9 100644 ---- a/sysdeps/arm/dl-tlsdesc.S -+++ b/sysdeps/arm/dl-tlsdesc.S -@@ -21,6 +21,8 @@ - #include - #include "tlsdesc.h" - -+ .file "dl-tlsdesc.S" -+ - .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 c731b01286..4b37b25344 100644 ---- a/sysdeps/arm/dl-trampoline.S -+++ b/sysdeps/arm/dl-trampoline.S -@@ -21,6 +21,8 @@ - #include - #include - -+ .file "dl-trampoline.S" -+ - .text - .globl _dl_runtime_resolve - .type _dl_runtime_resolve, #function -diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S -index adef090717..d22e4128e0 100644 ---- a/sysdeps/arm/start.S -+++ b/sysdeps/arm/start.S -@@ -57,6 +57,8 @@ - NULL - */ - -+ .file "start.S" -+ - /* Tag_ABI_align8_preserved: This code preserves 8-byte - alignment in any callee. */ - .eabi_attribute 25, 1 -diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S -index 871702317a..20a942dbac 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 @@ - a normal function call) in a high page of memory; tail call to the - helper. */ - -+ .file "aeabi_read_tp.S" -+ - .hidden __aeabi_read_tp - ENTRY (__aeabi_read_tp) - #ifdef ARCH_HAS_HARD_TP -diff --git a/sysdeps/mips/start.S b/sysdeps/mips/start.S -index a4c4ef0fae..d00fff31a8 100644 ---- a/sysdeps/mips/start.S -+++ b/sysdeps/mips/start.S -@@ -38,6 +38,8 @@ - #include - #include - -+ .file "start.S" -+ - #ifndef ENTRY_POINT - #error ENTRY_POINT needs to be defined for start.S on MIPS/ELF. - #endif -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 -diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S -index 5c10a22f8a..2b52627f27 100644 ---- a/sysdeps/powerpc/powerpc32/start.S -+++ b/sysdeps/powerpc/powerpc32/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* 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 bd7189310c..2e22b8472d 100644 ---- a/sysdeps/powerpc/powerpc64/start.S -+++ b/sysdeps/powerpc/powerpc64/start.S -@@ -35,6 +35,8 @@ - - #include - -+ .file "start.S" -+ - /* 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/powerpc32/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S -index 244d87fb6d..14d3e2ce14 100644 ---- a/sysdeps/powerpc/powerpc32/dl-start.S -+++ b/sysdeps/powerpc/powerpc32/dl-start.S -@@ -18,6 +18,8 @@ - - #include - -+ .file "dl-start.S" -+ - /* 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/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S -index d26ad1f8d3..a0de10bf81 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 @@ - ARM unwind tables for register to register moves, the actual opcodes - are not defined. */ - -+ .file "libc-do-syscall.S" -+ - #if defined(__thumb__) - .thumb - .syntax unified diff --git a/external/poky/meta/recipes-core/glibc/glibc/CVE-2016-10739.patch b/external/poky/meta/recipes-core/glibc/glibc/CVE-2016-10739.patch deleted file mode 100644 index 7dc84288..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/CVE-2016-10739.patch +++ /dev/null @@ -1,1136 +0,0 @@ -CVE: CVE-2016-10739 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 8e92ca5dd7a7e38a4dddf1ebc4e1e8f0cb27e4aa Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Mon, 21 Jan 2019 08:59:42 +0100 -Subject: [PATCH 1/4] resolv: Reformat inet_addr, inet_aton to GNU style - -(cherry picked from commit 5e30b8ef0758763effa115634e0ed7d8938e4bc0) ---- - ChangeLog | 5 ++ - resolv/inet_addr.c | 192 ++++++++++++++++++++++++--------------------- - 2 files changed, 106 insertions(+), 91 deletions(-) - -diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c -index 022f7ea084..32f58b0e13 100644 ---- a/resolv/inet_addr.c -+++ b/resolv/inet_addr.c -@@ -1,3 +1,21 @@ -+/* Legacy IPv4 text-to-address functions. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ - /* - * Copyright (c) 1983, 1990, 1993 - * The Regents of the University of California. All rights reserved. -@@ -78,105 +96,97 @@ - #include - #include - --/* -- * Ascii internet address interpretation routine. -- * The value returned is in network order. -- */ -+/* ASCII IPv4 Internet address interpretation routine. The value -+ returned is in network order. */ - in_addr_t --__inet_addr(const char *cp) { -- struct in_addr val; -+__inet_addr (const char *cp) -+{ -+ struct in_addr val; - -- if (__inet_aton(cp, &val)) -- return (val.s_addr); -- return (INADDR_NONE); -+ if (__inet_aton (cp, &val)) -+ return val.s_addr; -+ return INADDR_NONE; - } - weak_alias (__inet_addr, inet_addr) - --/* -- * Check whether "cp" is a valid ascii representation -- * of an Internet address and convert to a binary address. -- * Returns 1 if the address is valid, 0 if not. -- * This replaces inet_addr, the return value from which -- * cannot distinguish between failure and a local broadcast address. -- */ -+/* Check whether "cp" is a valid ASCII representation of an IPv4 -+ Internet address and convert it to a binary address. Returns 1 if -+ the address is valid, 0 if not. This replaces inet_addr, the -+ return value from which cannot distinguish between failure and a -+ local broadcast address. */ - int --__inet_aton(const char *cp, struct in_addr *addr) -+__inet_aton (const char *cp, struct in_addr *addr) - { -- static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff }; -- in_addr_t val; -- char c; -- union iaddr { -- uint8_t bytes[4]; -- uint32_t word; -- } res; -- uint8_t *pp = res.bytes; -- int digit; -- -- int saved_errno = errno; -- __set_errno (0); -- -- res.word = 0; -- -- c = *cp; -- for (;;) { -- /* -- * Collect number up to ``.''. -- * Values are specified as for C: -- * 0x=hex, 0=octal, isdigit=decimal. -- */ -- if (!isdigit(c)) -- goto ret_0; -- { -- char *endp; -- unsigned long ul = strtoul (cp, (char **) &endp, 0); -- if (ul == ULONG_MAX && errno == ERANGE) -- goto ret_0; -- if (ul > 0xfffffffful) -- goto ret_0; -- val = ul; -- digit = cp != endp; -- cp = endp; -- } -- c = *cp; -- if (c == '.') { -- /* -- * Internet format: -- * a.b.c.d -- * a.b.c (with c treated as 16 bits) -- * a.b (with b treated as 24 bits) -- */ -- if (pp > res.bytes + 2 || val > 0xff) -- goto ret_0; -- *pp++ = val; -- c = *++cp; -- } else -- break; -- } -- /* -- * Check for trailing characters. -- */ -- if (c != '\0' && (!isascii(c) || !isspace(c))) -- goto ret_0; -- /* -- * Did we get a valid digit? -- */ -- if (!digit) -- goto ret_0; -- -- /* Check whether the last part is in its limits depending on -- the number of parts in total. */ -- if (val > max[pp - res.bytes]) -+ static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff }; -+ in_addr_t val; -+ char c; -+ union iaddr -+ { -+ uint8_t bytes[4]; -+ uint32_t word; -+ } res; -+ uint8_t *pp = res.bytes; -+ int digit; -+ -+ int saved_errno = errno; -+ __set_errno (0); -+ -+ res.word = 0; -+ -+ c = *cp; -+ for (;;) -+ { -+ /* Collect number up to ``.''. Values are specified as for C: -+ 0x=hex, 0=octal, isdigit=decimal. */ -+ if (!isdigit (c)) -+ goto ret_0; -+ { -+ char *endp; -+ unsigned long ul = strtoul (cp, &endp, 0); -+ if (ul == ULONG_MAX && errno == ERANGE) - goto ret_0; -- -- if (addr != NULL) -- addr->s_addr = res.word | htonl (val); -- -- __set_errno (saved_errno); -- return (1); -- --ret_0: -- __set_errno (saved_errno); -- return (0); -+ if (ul > 0xfffffffful) -+ goto ret_0; -+ val = ul; -+ digit = cp != endp; -+ cp = endp; -+ } -+ c = *cp; -+ if (c == '.') -+ { -+ /* Internet format: -+ a.b.c.d -+ a.b.c (with c treated as 16 bits) -+ a.b (with b treated as 24 bits). */ -+ if (pp > res.bytes + 2 || val > 0xff) -+ goto ret_0; -+ *pp++ = val; -+ c = *++cp; -+ } -+ else -+ break; -+ } -+ /* Check for trailing characters. */ -+ if (c != '\0' && (!isascii (c) || !isspace (c))) -+ goto ret_0; -+ /* Did we get a valid digit? */ -+ if (!digit) -+ goto ret_0; -+ -+ /* Check whether the last part is in its limits depending on the -+ number of parts in total. */ -+ if (val > max[pp - res.bytes]) -+ goto ret_0; -+ -+ if (addr != NULL) -+ addr->s_addr = res.word | htonl (val); -+ -+ __set_errno (saved_errno); -+ return 1; -+ -+ ret_0: -+ __set_errno (saved_errno); -+ return 0; - } - weak_alias (__inet_aton, inet_aton) - libc_hidden_def (__inet_aton) --- -2.20.1 - - -From 37edf1d3f8ab9adefb61cc466ac52b53114fbd5b Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Mon, 21 Jan 2019 09:26:41 +0100 -Subject: [PATCH 2/4] resolv: Do not send queries for non-host-names in nss_dns - [BZ #24112] - -Before this commit, nss_dns would send a query which did not contain a -host name as the query name (such as invalid\032name.example.com) and -then reject the answer in getanswer_r and gaih_getanswer_slice, using -a check based on res_hnok. With this commit, no query is sent, and a -host-not-found error is returned to NSS without network interaction. - -(cherry picked from commit 6ca53a2453598804a2559a548a08424fca96434a) ---- - ChangeLog | 9 +++++++++ - resolv/nss_dns/dns-host.c | 24 ++++++++++++++++++++++-- - 2 files changed, 31 insertions(+), 2 deletions(-) - -diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c -index 5dc2829cd1..99c3b61e1c 100644 ---- a/resolv/nss_dns/dns-host.c -+++ b/resolv/nss_dns/dns-host.c -@@ -274,11 +274,26 @@ gethostbyname3_context (struct resolv_context *ctx, - return status; - } - -+/* Verify that the name looks like a host name. There is no point in -+ sending a query which will not produce a usable name in the -+ response. */ -+static enum nss_status -+check_name (const char *name, int *h_errnop) -+{ -+ if (res_hnok (name)) -+ return NSS_STATUS_SUCCESS; -+ *h_errnop = HOST_NOT_FOUND; -+ return NSS_STATUS_NOTFOUND; -+} -+ - enum nss_status - _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result, - char *buffer, size_t buflen, int *errnop, - int *h_errnop) - { -+ enum nss_status status = check_name (name, h_errnop); -+ if (status != NSS_STATUS_SUCCESS) -+ return status; - return _nss_dns_gethostbyname3_r (name, af, result, buffer, buflen, errnop, - h_errnop, NULL, NULL); - } -@@ -289,6 +304,9 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result, - char *buffer, size_t buflen, int *errnop, - int *h_errnop) - { -+ enum nss_status status = check_name (name, h_errnop); -+ if (status != NSS_STATUS_SUCCESS) -+ return status; - struct resolv_context *ctx = __resolv_context_get (); - if (ctx == NULL) - { -@@ -296,7 +314,7 @@ _nss_dns_gethostbyname_r (const char *name, struct hostent *result, - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_UNAVAIL; - } -- enum nss_status status = NSS_STATUS_NOTFOUND; -+ status = NSS_STATUS_NOTFOUND; - if (res_use_inet6 ()) - status = gethostbyname3_context (ctx, name, AF_INET6, result, buffer, - buflen, errnop, h_errnop, NULL, NULL); -@@ -313,6 +331,9 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat, - char *buffer, size_t buflen, int *errnop, - int *herrnop, int32_t *ttlp) - { -+ enum nss_status status = check_name (name, herrnop); -+ if (status != NSS_STATUS_SUCCESS) -+ return status; - struct resolv_context *ctx = __resolv_context_get (); - if (ctx == NULL) - { -@@ -347,7 +368,6 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat, - int ans2p_malloced = 0; - - int olderr = errno; -- enum nss_status status; - int n = __res_context_search (ctx, name, C_IN, T_QUERY_A_AND_AAAA, - host_buffer.buf->buf, 2048, &host_buffer.ptr, - &ans2p, &nans2p, &resplen2, &ans2p_malloced); --- -2.20.1 - - -From 2373941bd73cb288c8a42a33e23e7f7bb81151e7 Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Mon, 21 Jan 2019 21:26:03 +0100 -Subject: [PATCH 3/4] CVE-2016-10739: getaddrinfo: Fully parse IPv4 address - strings [BZ #20018] - -The IPv4 address parser in the getaddrinfo function is changed so that -it does not ignore trailing whitespace and all characters after it. -For backwards compatibility, the getaddrinfo function still recognizes -legacy name syntax, such as 192.000.002.010 interpreted as 192.0.2.8 -(octal). - -This commit does not change the behavior of inet_addr and inet_aton. -gethostbyname already had additional sanity checks (but is switched -over to the new __inet_aton_exact function for completeness as well). - -To avoid sending the problematic query names over DNS, commit -6ca53a2453598804a2559a548a08424fca96434a ("resolv: Do not send queries -for non-host-names in nss_dns [BZ #24112]") is needed. - -(cherry picked from commit 108bc4049f8ae82710aec26a92ffdb4b439c83fd) ---- - ChangeLog | 33 ++++++++ - NEWS | 4 + - include/arpa/inet.h | 6 +- - nscd/gai.c | 1 - - nscd/gethstbynm3_r.c | 2 - - nss/digits_dots.c | 3 +- - resolv/Makefile | 7 ++ - resolv/Versions | 1 + - resolv/inet_addr.c | 62 ++++++++++----- - resolv/res_init.c | 17 ++-- - resolv/tst-aton.c | 35 +++++++-- - resolv/tst-inet_aton_exact.c | 47 +++++++++++ - resolv/tst-resolv-nondecimal.c | 139 +++++++++++++++++++++++++++++++++ - resolv/tst-resolv-trailing.c | 136 ++++++++++++++++++++++++++++++++ - sysdeps/posix/getaddrinfo.c | 2 +- - 15 files changed, 455 insertions(+), 40 deletions(-) - create mode 100644 resolv/tst-inet_aton_exact.c - create mode 100644 resolv/tst-resolv-nondecimal.c - create mode 100644 resolv/tst-resolv-trailing.c - -diff --git a/include/arpa/inet.h b/include/arpa/inet.h -index c3f28f2baa..19aec74275 100644 ---- a/include/arpa/inet.h -+++ b/include/arpa/inet.h -@@ -1,10 +1,10 @@ - #include - - #ifndef _ISOMAC --extern int __inet_aton (const char *__cp, struct in_addr *__inp); --libc_hidden_proto (__inet_aton) -+/* Variant of inet_aton which rejects trailing garbage. */ -+extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); -+libc_hidden_proto (__inet_aton_exact) - --libc_hidden_proto (inet_aton) - libc_hidden_proto (inet_ntop) - libc_hidden_proto (inet_pton) - extern __typeof (inet_pton) __inet_pton; -diff --git a/nscd/gai.c b/nscd/gai.c -index 24bdfee1db..f57f396f57 100644 ---- a/nscd/gai.c -+++ b/nscd/gai.c -@@ -19,7 +19,6 @@ - - /* This file uses the getaddrinfo code but it compiles it without NSCD - support. We just need a few symbol renames. */ --#define __inet_aton inet_aton - #define __ioctl ioctl - #define __getsockname getsockname - #define __socket socket -diff --git a/nscd/gethstbynm3_r.c b/nscd/gethstbynm3_r.c -index 7beb9dce9f..f792c4fcd0 100644 ---- a/nscd/gethstbynm3_r.c -+++ b/nscd/gethstbynm3_r.c -@@ -38,8 +38,6 @@ - #define HAVE_LOOKUP_BUFFER 1 - #define HAVE_AF 1 - --#define __inet_aton inet_aton -- - /* We are nscd, so we don't want to be talking to ourselves. */ - #undef USE_NSCD - -diff --git a/nss/digits_dots.c b/nss/digits_dots.c -index 39bff38865..5441bce16e 100644 ---- a/nss/digits_dots.c -+++ b/nss/digits_dots.c -@@ -29,7 +29,6 @@ - #include "nsswitch.h" - - #ifdef USE_NSCD --# define inet_aton __inet_aton - # include - #endif - -@@ -160,7 +159,7 @@ __nss_hostname_digits_dots_context (struct resolv_context *ctx, - 255.255.255.255? The test below will succeed - spuriously... ??? */ - if (af == AF_INET) -- ok = __inet_aton (name, (struct in_addr *) host_addr); -+ ok = __inet_aton_exact (name, (struct in_addr *) host_addr); - else - { - assert (af == AF_INET6); -diff --git a/resolv/Makefile b/resolv/Makefile -index ea395ac3eb..d36eedd34a 100644 ---- a/resolv/Makefile -+++ b/resolv/Makefile -@@ -34,6 +34,9 @@ routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \ - tests = tst-aton tst-leaks tst-inet_ntop - xtests = tst-leaks2 - -+tests-internal += tst-inet_aton_exact -+ -+ - generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace - - extra-libs := libresolv libnss_dns -@@ -54,8 +57,10 @@ tests += \ - tst-resolv-binary \ - tst-resolv-edns \ - tst-resolv-network \ -+ tst-resolv-nondecimal \ - tst-resolv-res_init-multi \ - tst-resolv-search \ -+ tst-resolv-trailing \ - - # These tests need libdl. - ifeq (yes,$(build-shared)) -@@ -190,9 +195,11 @@ $(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \ - $(shared-thread-library) - $(objpfx)tst-resolv-res_init-thread: $(libdl) $(objpfx)libresolv.so \ - $(shared-thread-library) -+$(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) - $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library) - $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library) - $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library) -+$(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library) - $(objpfx)tst-resolv-threads: \ - $(libdl) $(objpfx)libresolv.so $(shared-thread-library) - $(objpfx)tst-resolv-canonname: \ -diff --git a/resolv/Versions b/resolv/Versions -index b05778d965..9a82704af7 100644 ---- a/resolv/Versions -+++ b/resolv/Versions -@@ -27,6 +27,7 @@ libc { - __h_errno; __resp; - - __res_iclose; -+ __inet_aton_exact; - __inet_pton_length; - __resolv_context_get; - __resolv_context_get_preinit; -diff --git a/resolv/inet_addr.c b/resolv/inet_addr.c -index 32f58b0e13..41b6166a5b 100644 ---- a/resolv/inet_addr.c -+++ b/resolv/inet_addr.c -@@ -96,26 +96,14 @@ - #include - #include - --/* ASCII IPv4 Internet address interpretation routine. The value -- returned is in network order. */ --in_addr_t --__inet_addr (const char *cp) --{ -- struct in_addr val; -- -- if (__inet_aton (cp, &val)) -- return val.s_addr; -- return INADDR_NONE; --} --weak_alias (__inet_addr, inet_addr) -- - /* Check whether "cp" is a valid ASCII representation of an IPv4 - Internet address and convert it to a binary address. Returns 1 if - the address is valid, 0 if not. This replaces inet_addr, the - return value from which cannot distinguish between failure and a -- local broadcast address. */ --int --__inet_aton (const char *cp, struct in_addr *addr) -+ local broadcast address. Write a pointer to the first -+ non-converted character to *endp. */ -+static int -+inet_aton_end (const char *cp, struct in_addr *addr, const char **endp) - { - static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff }; - in_addr_t val; -@@ -180,6 +168,7 @@ __inet_aton (const char *cp, struct in_addr *addr) - - if (addr != NULL) - addr->s_addr = res.word | htonl (val); -+ *endp = cp; - - __set_errno (saved_errno); - return 1; -@@ -188,6 +177,41 @@ __inet_aton (const char *cp, struct in_addr *addr) - __set_errno (saved_errno); - return 0; - } --weak_alias (__inet_aton, inet_aton) --libc_hidden_def (__inet_aton) --libc_hidden_weak (inet_aton) -+ -+int -+__inet_aton_exact (const char *cp, struct in_addr *addr) -+{ -+ struct in_addr val; -+ const char *endp; -+ /* Check that inet_aton_end parsed the entire string. */ -+ if (inet_aton_end (cp, &val, &endp) != 0 && *endp == 0) -+ { -+ *addr = val; -+ return 1; -+ } -+ else -+ return 0; -+} -+libc_hidden_def (__inet_aton_exact) -+ -+/* inet_aton ignores trailing garbage. */ -+int -+__inet_aton_ignore_trailing (const char *cp, struct in_addr *addr) -+{ -+ const char *endp; -+ return inet_aton_end (cp, addr, &endp); -+} -+weak_alias (__inet_aton_ignore_trailing, inet_aton) -+ -+/* ASCII IPv4 Internet address interpretation routine. The value -+ returned is in network order. */ -+in_addr_t -+__inet_addr (const char *cp) -+{ -+ struct in_addr val; -+ const char *endp; -+ if (inet_aton_end (cp, &val, &endp)) -+ return val.s_addr; -+ return INADDR_NONE; -+} -+weak_alias (__inet_addr, inet_addr) -diff --git a/resolv/res_init.c b/resolv/res_init.c -index f5e52cbbb9..94743a252e 100644 ---- a/resolv/res_init.c -+++ b/resolv/res_init.c -@@ -399,8 +399,16 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser) - cp = parser->buffer + sizeof ("nameserver") - 1; - while (*cp == ' ' || *cp == '\t') - cp++; -+ -+ /* Ignore trailing contents on the name server line. */ -+ { -+ char *el; -+ if ((el = strpbrk (cp, " \t\n")) != NULL) -+ *el = '\0'; -+ } -+ - struct sockaddr *sa; -- if ((*cp != '\0') && (*cp != '\n') && __inet_aton (cp, &a)) -+ if ((*cp != '\0') && (*cp != '\n') && __inet_aton_exact (cp, &a)) - { - sa = allocate_address_v4 (a, NAMESERVER_PORT); - if (sa == NULL) -@@ -410,9 +418,6 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser) - { - struct in6_addr a6; - char *el; -- -- if ((el = strpbrk (cp, " \t\n")) != NULL) -- *el = '\0'; - if ((el = strchr (cp, SCOPE_DELIMITER)) != NULL) - *el = '\0'; - if ((*cp != '\0') && (__inet_pton (AF_INET6, cp, &a6) > 0)) -@@ -472,7 +477,7 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser) - char separator = *cp; - *cp = 0; - struct resolv_sortlist_entry e; -- if (__inet_aton (net, &a)) -+ if (__inet_aton_exact (net, &a)) - { - e.addr = a; - if (is_sort_mask (separator)) -@@ -484,7 +489,7 @@ res_vinit_1 (FILE *fp, struct resolv_conf_parser *parser) - cp++; - separator = *cp; - *cp = 0; -- if (__inet_aton (net, &a)) -+ if (__inet_aton_exact (net, &a)) - e.mask = a.s_addr; - else - e.mask = net_mask (e.addr); -diff --git a/resolv/tst-aton.c b/resolv/tst-aton.c -index 08110a007a..eb734d7758 100644 ---- a/resolv/tst-aton.c -+++ b/resolv/tst-aton.c -@@ -1,11 +1,29 @@ -+/* Test legacy IPv4 text-to-address function inet_aton. -+ Copyright (C) 1998-2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include - #include - #include - #include - #include - #include - -- --static struct tests -+static const struct tests - { - const char *input; - int valid; -@@ -16,6 +34,7 @@ static struct tests - { "-1", 0, 0 }, - { "256", 1, 0x00000100 }, - { "256.", 0, 0 }, -+ { "255a", 0, 0 }, - { "256a", 0, 0 }, - { "0x100", 1, 0x00000100 }, - { "0200.0x123456", 1, 0x80123456 }, -@@ -40,7 +59,12 @@ static struct tests - { "1.2.256.4", 0, 0 }, - { "1.2.3.0x100", 0, 0 }, - { "323543357756889", 0, 0 }, -- { "10.1.2.3.4", 0, 0}, -+ { "10.1.2.3.4", 0, 0 }, -+ { "192.0.2.1", 1, 0xc0000201 }, -+ { "192.0.2.2\nX", 1, 0xc0000202 }, -+ { "192.0.2.3 Y", 1, 0xc0000203 }, -+ { "192.0.2.3Z", 0, 0 }, -+ { "192.000.002.010", 1, 0xc0000208 }, - }; - - -@@ -50,7 +74,7 @@ do_test (void) - int result = 0; - size_t cnt; - -- for (cnt = 0; cnt < sizeof (tests) / sizeof (tests[0]); ++cnt) -+ for (cnt = 0; cnt < array_length (tests); ++cnt) - { - struct in_addr addr; - -@@ -73,5 +97,4 @@ do_test (void) - return result; - } - --#define TEST_FUNCTION do_test () --#include "../test-skeleton.c" -+#include -diff --git a/resolv/tst-inet_aton_exact.c b/resolv/tst-inet_aton_exact.c -new file mode 100644 -index 0000000000..0fdfa3d6aa ---- /dev/null -+++ b/resolv/tst-inet_aton_exact.c -@@ -0,0 +1,47 @@ -+/* Test internal legacy IPv4 text-to-address function __inet_aton_exact. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+ -+static int -+do_test (void) -+{ -+ struct in_addr addr = { }; -+ -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.1", &addr), 1); -+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000201); -+ -+ TEST_COMPARE (__inet_aton_exact ("192.000.002.010", &addr), 1); -+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000208); -+ TEST_COMPARE (__inet_aton_exact ("0xC0000234", &addr), 1); -+ TEST_COMPARE (ntohl (addr.s_addr), 0xC0000234); -+ -+ /* Trailing content is not accepted. */ -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.2X", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.3 Y", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.4\nZ", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.5\tT", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.6 Y", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.7\n", &addr), 0); -+ TEST_COMPARE (__inet_aton_exact ("192.0.2.8\t", &addr), 0); -+ -+ return 0; -+} -+ -+#include -diff --git a/resolv/tst-resolv-nondecimal.c b/resolv/tst-resolv-nondecimal.c -new file mode 100644 -index 0000000000..a0df6f332a ---- /dev/null -+++ b/resolv/tst-resolv-nondecimal.c -@@ -0,0 +1,139 @@ -+/* Test name resolution behavior for octal, hexadecimal IPv4 addresses. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static void -+response (const struct resolv_response_context *ctx, -+ struct resolv_response_builder *b, -+ const char *qname, uint16_t qclass, uint16_t qtype) -+{ -+ /* The tests are not supposed send any DNS queries. */ -+ FAIL_EXIT1 ("unexpected DNS query for %s/%d/%d", qname, qclass, qtype); -+} -+ -+static void -+run_query_addrinfo (const char *query, const char *address) -+{ -+ char *quoted_query = support_quote_string (query); -+ -+ struct addrinfo *ai; -+ struct addrinfo hints = -+ { -+ .ai_socktype = SOCK_STREAM, -+ .ai_protocol = IPPROTO_TCP, -+ }; -+ -+ char *context = xasprintf ("getaddrinfo \"%s\" AF_INET", quoted_query); -+ char *expected = xasprintf ("address: STREAM/TCP %s 80\n", address); -+ hints.ai_family = AF_INET; -+ int ret = getaddrinfo (query, "80", &hints, &ai); -+ check_addrinfo (context, ai, ret, expected); -+ if (ret == 0) -+ freeaddrinfo (ai); -+ free (context); -+ -+ context = xasprintf ("getaddrinfo \"%s\" AF_UNSPEC", quoted_query); -+ hints.ai_family = AF_UNSPEC; -+ ret = getaddrinfo (query, "80", &hints, &ai); -+ check_addrinfo (context, ai, ret, expected); -+ if (ret == 0) -+ freeaddrinfo (ai); -+ free (expected); -+ free (context); -+ -+ context = xasprintf ("getaddrinfo \"%s\" AF_INET6", quoted_query); -+ expected = xasprintf ("flags: AI_V4MAPPED\n" -+ "address: STREAM/TCP ::ffff:%s 80\n", -+ address); -+ hints.ai_family = AF_INET6; -+ hints.ai_flags = AI_V4MAPPED; -+ ret = getaddrinfo (query, "80", &hints, &ai); -+ check_addrinfo (context, ai, ret, expected); -+ if (ret == 0) -+ freeaddrinfo (ai); -+ free (expected); -+ free (context); -+ -+ free (quoted_query); -+} -+ -+static void -+run_query (const char *query, const char *address) -+{ -+ char *quoted_query = support_quote_string (query); -+ char *context = xasprintf ("gethostbyname (\"%s\")", quoted_query); -+ char *expected = xasprintf ("name: %s\n" -+ "address: %s\n", query, address); -+ check_hostent (context, gethostbyname (query), expected); -+ free (context); -+ -+ context = xasprintf ("gethostbyname_r \"%s\"", quoted_query); -+ struct hostent storage; -+ char buf[4096]; -+ struct hostent *e = NULL; -+ TEST_COMPARE (gethostbyname_r (query, &storage, buf, sizeof (buf), -+ &e, &h_errno), 0); -+ check_hostent (context, e, expected); -+ free (context); -+ -+ context = xasprintf ("gethostbyname2 (\"%s\", AF_INET)", quoted_query); -+ check_hostent (context, gethostbyname2 (query, AF_INET), expected); -+ free (context); -+ -+ context = xasprintf ("gethostbyname2_r \"%s\" AF_INET", quoted_query); -+ e = NULL; -+ TEST_COMPARE (gethostbyname2_r (query, AF_INET, &storage, buf, sizeof (buf), -+ &e, &h_errno), 0); -+ check_hostent (context, e, expected); -+ free (context); -+ free (expected); -+ -+ free (quoted_query); -+ -+ /* The gethostbyname tests are always valid for getaddrinfo, but not -+ vice versa. */ -+ run_query_addrinfo (query, address); -+} -+ -+static int -+do_test (void) -+{ -+ struct resolv_test *aux = resolv_test_start -+ ((struct resolv_redirect_config) -+ { -+ .response_callback = response, -+ }); -+ -+ run_query ("192.000.002.010", "192.0.2.8"); -+ -+ /* Hexadecimal numbers are not accepted by gethostbyname. */ -+ run_query_addrinfo ("0xc0000210", "192.0.2.16"); -+ run_query_addrinfo ("192.0x234", "192.0.2.52"); -+ -+ resolv_test_end (aux); -+ -+ return 0; -+} -+ -+#include -diff --git a/resolv/tst-resolv-trailing.c b/resolv/tst-resolv-trailing.c -new file mode 100644 -index 0000000000..7504bdae57 ---- /dev/null -+++ b/resolv/tst-resolv-trailing.c -@@ -0,0 +1,136 @@ -+/* Test name resolution behavior with trailing characters. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static void -+response (const struct resolv_response_context *ctx, -+ struct resolv_response_builder *b, -+ const char *qname, uint16_t qclass, uint16_t qtype) -+{ -+ /* The tests are not supposed send any DNS queries. */ -+ FAIL_EXIT1 ("unexpected DNS query for %s/%d/%d", qname, qclass, qtype); -+} -+ -+static int -+do_test (void) -+{ -+ struct resolv_test *aux = resolv_test_start -+ ((struct resolv_redirect_config) -+ { -+ .response_callback = response, -+ }); -+ -+ static const char *const queries[] = -+ { -+ "192.0.2.1 ", -+ "192.0.2.2\t", -+ "192.0.2.3\n", -+ "192.0.2.4 X", -+ "192.0.2.5\tY", -+ "192.0.2.6\nZ", -+ "192.0.2. ", -+ "192.0.2.\t", -+ "192.0.2.\n", -+ "192.0.2. X", -+ "192.0.2.\tY", -+ "192.0.2.\nZ", -+ "2001:db8::1 ", -+ "2001:db8::2\t", -+ "2001:db8::3\n", -+ "2001:db8::4 X", -+ "2001:db8::5\tY", -+ "2001:db8::6\nZ", -+ }; -+ for (size_t query_idx = 0; query_idx < array_length (queries); ++query_idx) -+ { -+ const char *query = queries[query_idx]; -+ struct hostent storage; -+ char buf[4096]; -+ struct hostent *e; -+ -+ h_errno = 0; -+ TEST_VERIFY (gethostbyname (query) == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ h_errno = 0; -+ e = NULL; -+ TEST_COMPARE (gethostbyname_r (query, &storage, buf, sizeof (buf), -+ &e, &h_errno), 0); -+ TEST_VERIFY (e == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ h_errno = 0; -+ TEST_VERIFY (gethostbyname2 (query, AF_INET) == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ h_errno = 0; -+ e = NULL; -+ TEST_COMPARE (gethostbyname2_r (query, AF_INET, -+ &storage, buf, sizeof (buf), -+ &e, &h_errno), 0); -+ TEST_VERIFY (e == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ h_errno = 0; -+ TEST_VERIFY (gethostbyname2 (query, AF_INET6) == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ h_errno = 0; -+ e = NULL; -+ TEST_COMPARE (gethostbyname2_r (query, AF_INET6, -+ &storage, buf, sizeof (buf), -+ &e, &h_errno), 0); -+ TEST_VERIFY (e == NULL); -+ TEST_COMPARE (h_errno, HOST_NOT_FOUND); -+ -+ static const int gai_flags[] = -+ { -+ 0, -+ AI_ADDRCONFIG, -+ AI_NUMERICHOST, -+ AI_IDN, -+ AI_IDN | AI_NUMERICHOST, -+ AI_V4MAPPED, -+ AI_V4MAPPED | AI_NUMERICHOST, -+ }; -+ for (size_t gai_flags_idx; gai_flags_idx < array_length (gai_flags); -+ ++gai_flags_idx) -+ { -+ struct addrinfo hints = { .ai_flags = gai_flags[gai_flags_idx], }; -+ struct addrinfo *ai; -+ hints.ai_family = AF_INET; -+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME); -+ hints.ai_family = AF_INET6; -+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME); -+ hints.ai_family = AF_UNSPEC; -+ TEST_COMPARE (getaddrinfo (query, "80", &hints, &ai), EAI_NONAME); -+ } -+ }; -+ -+ resolv_test_end (aux); -+ -+ return 0; -+} -+ -+#include -diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c -index 553833d1f2..c91b281e31 100644 ---- a/sysdeps/posix/getaddrinfo.c -+++ b/sysdeps/posix/getaddrinfo.c -@@ -488,7 +488,7 @@ gaih_inet (const char *name, const struct gaih_service *service, - malloc_name = true; - } - -- if (__inet_aton (name, (struct in_addr *) at->addr) != 0) -+ if (__inet_aton_exact (name, (struct in_addr *) at->addr) != 0) - { - if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET) - at->family = AF_INET; --- -2.20.1 - - -From c533244b8e00ae701583ec50aeb43377d292452d Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Mon, 4 Feb 2019 20:07:18 +0100 -Subject: [PATCH 4/4] nscd: Do not use __inet_aton_exact@GLIBC_PRIVATE [BZ - #20018] - -This commit avoids referencing the __inet_aton_exact@GLIBC_PRIVATE -symbol from nscd. In master, the separately-compiled getaddrinfo -implementation in nscd needs it, however such an internal ABI change -is not desirable on a release branch if it can be avoided. ---- - ChangeLog | 10 ++++++++++ - nscd/Makefile | 2 +- - nscd/gai.c | 6 ++++++ - nscd/nscd-inet_addr.c | 32 ++++++++++++++++++++++++++++++++ - 4 files changed, 49 insertions(+), 1 deletion(-) - create mode 100644 nscd/nscd-inet_addr.c - -diff --git a/nscd/Makefile b/nscd/Makefile -index b713a84c49..eb23c01a39 100644 ---- a/nscd/Makefile -+++ b/nscd/Makefile -@@ -36,7 +36,7 @@ nscd-modules := nscd connections pwdcache getpwnam_r getpwuid_r grpcache \ - getsrvbynm_r getsrvbypt_r servicescache \ - dbg_log nscd_conf nscd_stat cache mem nscd_setup_thread \ - xmalloc xstrdup aicache initgrcache gai res_hconf \ -- netgroupcache -+ netgroupcache nscd-inet_addr - - ifeq ($(build-nscd)$(have-thread-library),yesyes) - -diff --git a/nscd/gai.c b/nscd/gai.c -index f57f396f57..68a4abd30e 100644 ---- a/nscd/gai.c -+++ b/nscd/gai.c -@@ -33,6 +33,12 @@ - #define __getifaddrs getifaddrs - #define __freeifaddrs freeifaddrs - -+/* We do not want to export __inet_aton_exact. Get the prototype and -+ change its visibility to hidden. */ -+#include -+__typeof__ (__inet_aton_exact) __inet_aton_exact -+ __attribute__ ((visibility ("hidden"))); -+ - /* We are nscd, so we don't want to be talking to ourselves. */ - #undef USE_NSCD - -diff --git a/nscd/nscd-inet_addr.c b/nscd/nscd-inet_addr.c -new file mode 100644 -index 0000000000..f366b9567d ---- /dev/null -+++ b/nscd/nscd-inet_addr.c -@@ -0,0 +1,32 @@ -+/* Legacy IPv4 text-to-address functions. Version for nscd. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#include -+ -+/* We do not want to export __inet_aton_exact. Get the prototype and -+ change the visibility to hidden. */ -+#include -+__typeof__ (__inet_aton_exact) __inet_aton_exact -+ __attribute__ ((visibility ("hidden"))); -+ -+/* Do not provide definitions of the public symbols exported from -+ libc. */ -+#undef weak_alias -+#define weak_alias(from, to) -+ -+#include --- -2.20.1 diff --git a/external/poky/meta/recipes-core/glibc/glibc/CVE-2018-19591.patch b/external/poky/meta/recipes-core/glibc/glibc/CVE-2018-19591.patch deleted file mode 100644 index 9c78a3df..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/CVE-2018-19591.patch +++ /dev/null @@ -1,48 +0,0 @@ -CVE: CVE-2018-19591 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From ce6ba630dbc96f49eb1f30366aa62261df4792f9 Mon Sep 17 00:00:00 2001 -From: Florian Weimer -Date: Tue, 27 Nov 2018 16:12:43 +0100 -Subject: [PATCH] CVE-2018-19591: if_nametoindex: Fix descriptor for overlong - name [BZ #23927] - -(cherry picked from commit d527c860f5a3f0ed687bd03f0cb464612dc23408) ---- - ChangeLog | 7 +++++++ - NEWS | 6 ++++++ - sysdeps/unix/sysv/linux/if_index.c | 11 ++++++----- - 3 files changed, 19 insertions(+), 5 deletions(-) - -diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c -index e3d08982d9..782fc5e175 100644 ---- a/sysdeps/unix/sysv/linux/if_index.c -+++ b/sysdeps/unix/sysv/linux/if_index.c -@@ -38,11 +38,6 @@ __if_nametoindex (const char *ifname) - return 0; - #else - struct ifreq ifr; -- int fd = __opensock (); -- -- if (fd < 0) -- return 0; -- - if (strlen (ifname) >= IFNAMSIZ) - { - __set_errno (ENODEV); -@@ -50,6 +45,12 @@ __if_nametoindex (const char *ifname) - } - - strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name)); -+ -+ int fd = __opensock (); -+ -+ if (fd < 0) -+ return 0; -+ - if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0) - { - int saved_errno = errno; --- -2.11.0 diff --git a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-6488.patch b/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-6488.patch deleted file mode 100644 index fa423754..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-6488.patch +++ /dev/null @@ -1,274 +0,0 @@ -From 718016100d889a986c536b595bf6ec0d6ab4b90e Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Fri, 1 Feb 2019 12:17:09 -0800 -Subject: [PATCH] x86-64 memchr/wmemchr: Properly handle the length parameter - [BZ #24097] -Reply-To: muislam@microsoft.com - -On x32, the size_t parameter may be passed in the lower 32 bits of a -64-bit register with the non-zero upper 32 bits. The string/memory -functions written in assembly can only use the lower 32 bits of a -64-bit register as length or must clear the upper 32 bits before using -the full 64-bit register for length. - -This pach fixes memchr/wmemchr for x32. Tested on x86-64 and x32. On -x86-64, libc.so is the same with and withou the fix. - - [BZ #24097] - CVE-2019-6488 - * sysdeps/x86_64/memchr.S: Use RDX_LP for length. Clear the - upper 32 bits of RDX register. - * sysdeps/x86_64/multiarch/memchr-avx2.S: Likewise. - * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memchr and - tst-size_t-wmemchr. - * sysdeps/x86_64/x32/test-size_t.h: New file. - * sysdeps/x86_64/x32/tst-size_t-memchr.c: Likewise. - * sysdeps/x86_64/x32/tst-size_t-wmemchr.c: Likewise. - -(cherry picked from commit 97700a34f36721b11a754cf37a1cc40695ece1fd) - -CVE: CVE-2019-6488 - -Upstream-Status: Backport - -Signed-off-by: Muminul Islam ---- - NEWS | 1 - - sysdeps/x86_64/memchr.S | 10 ++-- - sysdeps/x86_64/multiarch/memchr-avx2.S | 8 ++- - sysdeps/x86_64/x32/Makefile | 8 +++ - sysdeps/x86_64/x32/test-size_t.h | 35 ++++++++++++ - sysdeps/x86_64/x32/tst-size_t-memchr.c | 72 +++++++++++++++++++++++++ - sysdeps/x86_64/x32/tst-size_t-wmemchr.c | 20 +++++++ - 7 files changed, 148 insertions(+), 6 deletions(-) - create mode 100644 sysdeps/x86_64/x32/test-size_t.h - create mode 100644 sysdeps/x86_64/x32/tst-size_t-memchr.c - create mode 100644 sysdeps/x86_64/x32/tst-size_t-wmemchr.c - -diff --git a/NEWS b/NEWS -index fd14941128..b158973a30 100644 ---- a/NEWS -+++ b/NEWS -@@ -17,7 +17,6 @@ The following bugs are resolved with this release: - [23606] Missing ENDBR32 in sysdeps/i386/start.S - [23679] gethostid: Missing NULL check for gethostbyname_r result - [23717] Fix stack overflow in stdlib/tst-setcontext9 -- - - Version 2.28 - -diff --git a/sysdeps/x86_64/memchr.S b/sysdeps/x86_64/memchr.S -index feef5d4f24..cb320257a2 100644 ---- a/sysdeps/x86_64/memchr.S -+++ b/sysdeps/x86_64/memchr.S -@@ -34,12 +34,16 @@ ENTRY(MEMCHR) - mov %edi, %ecx - - #ifdef USE_AS_WMEMCHR -- test %rdx, %rdx -+ test %RDX_LP, %RDX_LP - jz L(return_null) -- shl $2, %rdx -+ shl $2, %RDX_LP - #else -+# ifdef __ILP32__ -+ /* Clear the upper 32 bits. */ -+ movl %edx, %edx -+# endif - punpcklbw %xmm1, %xmm1 -- test %rdx, %rdx -+ test %RDX_LP, %RDX_LP - jz L(return_null) - punpcklbw %xmm1, %xmm1 - #endif -diff --git a/sysdeps/x86_64/multiarch/memchr-avx2.S b/sysdeps/x86_64/multiarch/memchr-avx2.S -index 5f5e772554..c81da19bf0 100644 ---- a/sysdeps/x86_64/multiarch/memchr-avx2.S -+++ b/sysdeps/x86_64/multiarch/memchr-avx2.S -@@ -40,16 +40,20 @@ - ENTRY (MEMCHR) - # ifndef USE_AS_RAWMEMCHR - /* Check for zero length. */ -- testq %rdx, %rdx -+ test %RDX_LP, %RDX_LP - jz L(null) - # endif - movl %edi, %ecx - /* Broadcast CHAR to YMM0. */ - vmovd %esi, %xmm0 - # ifdef USE_AS_WMEMCHR -- shl $2, %rdx -+ shl $2, %RDX_LP - vpbroadcastd %xmm0, %ymm0 - # else -+# ifdef __ILP32__ -+ /* Clear the upper 32 bits. */ -+ movl %edx, %edx -+# endif - vpbroadcastb %xmm0, %ymm0 - # endif - /* Check if we may cross page boundary with one vector load. */ -diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile -index f2ebc24fb0..7d528889c6 100644 ---- a/sysdeps/x86_64/x32/Makefile -+++ b/sysdeps/x86_64/x32/Makefile -@@ -4,3 +4,11 @@ ifeq ($(subdir),math) - # 64-bit llround. Add -fno-builtin-lround to silence the compiler. - CFLAGS-s_llround.c += -fno-builtin-lround - endif -+ -+ifeq ($(subdir),string) -+tests += tst-size_t-memchr -+endif -+ -+ifeq ($(subdir),wcsmbs) -+tests += tst-size_t-wmemchr -+endif -diff --git a/sysdeps/x86_64/x32/test-size_t.h b/sysdeps/x86_64/x32/test-size_t.h -new file mode 100644 -index 0000000000..78a940863e ---- /dev/null -+++ b/sysdeps/x86_64/x32/test-size_t.h -@@ -0,0 +1,35 @@ -+/* Test string/memory functions with size_t in the lower 32 bits of -+ 64-bit register. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define TEST_MAIN -+#include -+ -+/* On x32, parameter_t may be passed in a 64-bit register with the LEN -+ field in the lower 32 bits. When the LEN field of 64-bit register -+ is passed to string/memory function as the size_t parameter, only -+ the lower 32 bits can be used. */ -+typedef struct -+{ -+ union -+ { -+ size_t len; -+ void (*fn) (void); -+ }; -+ void *p; -+} parameter_t; -diff --git a/sysdeps/x86_64/x32/tst-size_t-memchr.c b/sysdeps/x86_64/x32/tst-size_t-memchr.c -new file mode 100644 -index 0000000000..29a3daf102 ---- /dev/null -+++ b/sysdeps/x86_64/x32/tst-size_t-memchr.c -@@ -0,0 +1,72 @@ -+/* Test memchr with size_t in the lower 32 bits of 64-bit register. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef WIDE -+# define TEST_NAME "memchr" -+#else -+# define TEST_NAME "wmemchr" -+#endif /* WIDE */ -+#include "test-size_t.h" -+ -+#ifndef WIDE -+# define MEMCHR memchr -+# define CHAR char -+# define UCHAR unsigned char -+#else -+# include -+# define MEMCHR wmemchr -+# define CHAR wchar_t -+# define UCHAR wchar_t -+#endif /* WIDE */ -+ -+IMPL (MEMCHR, 1) -+ -+typedef CHAR * (*proto_t) (const CHAR*, int, size_t); -+ -+static CHAR * -+__attribute__ ((noinline, noclone)) -+do_memchr (parameter_t a, parameter_t b) -+{ -+ return CALL (&b, a.p, (uintptr_t) b.p, a.len); -+} -+ -+static int -+test_main (void) -+{ -+ test_init (); -+ -+ parameter_t src = { { page_size / sizeof (CHAR) }, buf2 }; -+ parameter_t c = { { 0 }, (void *) (uintptr_t) 0x12 }; -+ -+ int ret = 0; -+ FOR_EACH_IMPL (impl, 0) -+ { -+ c.fn = impl->fn; -+ CHAR *res = do_memchr (src, c); -+ if (res) -+ { -+ error (0, 0, "Wrong result in function %s: %p != NULL", -+ impl->name, res); -+ ret = 1; -+ } -+ } -+ -+ return ret ? EXIT_FAILURE : EXIT_SUCCESS; -+} -+ -+#include -diff --git a/sysdeps/x86_64/x32/tst-size_t-wmemchr.c b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c -new file mode 100644 -index 0000000000..877801d646 ---- /dev/null -+++ b/sysdeps/x86_64/x32/tst-size_t-wmemchr.c -@@ -0,0 +1,20 @@ -+/* Test wmemchr with size_t in the lower 32 bits of 64-bit register. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define WIDE 1 -+#include "tst-size_t-memchr.c" --- -2.23.0 - diff --git a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-7309.patch b/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-7309.patch deleted file mode 100644 index 04963c29..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-7309.patch +++ /dev/null @@ -1,207 +0,0 @@ -From af7f46c45a60e6df754fb6258b546917e61ae6f1 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Mon, 4 Feb 2019 08:55:52 -0800 -Subject: [PATCH] x86-64 memcmp: Use unsigned Jcc instructions on size [BZ - #24155] -Reply-To: muislam@microsoft.com - -Since the size argument is unsigned. we should use unsigned Jcc -instructions, instead of signed, to check size. - -Tested on x86-64 and x32, with and without --disable-multi-arch. - - [BZ #24155] - CVE-2019-7309 - * NEWS: Updated for CVE-2019-7309. - * sysdeps/x86_64/memcmp.S: Use RDX_LP for size. Clear the - upper 32 bits of RDX register for x32. Use unsigned Jcc - instructions, instead of signed. - * sysdeps/x86_64/x32/Makefile (tests): Add tst-size_t-memcmp-2. - * sysdeps/x86_64/x32/tst-size_t-memcmp-2.c: New test. - -(cherry picked from commit 3f635fb43389b54f682fc9ed2acc0b2aaf4a923d) - -Signed-off-by: Muminul Islam - -CVE: CVE-2019-7309 - -Upstream-Status: Backport ---- - sysdeps/x86_64/memcmp.S | 20 +++--- - sysdeps/x86_64/x32/Makefile | 2 +- - sysdeps/x86_64/x32/tst-size_t-memcmp-2.c | 79 ++++++++++++++++++++++++ - 3 files changed, 92 insertions(+), 9 deletions(-) - create mode 100644 sysdeps/x86_64/x32/tst-size_t-memcmp-2.c - -diff --git a/sysdeps/x86_64/memcmp.S b/sysdeps/x86_64/memcmp.S -index bcb4a2e88d..45918d375a 100644 ---- a/sysdeps/x86_64/memcmp.S -+++ b/sysdeps/x86_64/memcmp.S -@@ -21,14 +21,18 @@ - - .text - ENTRY (memcmp) -- test %rdx, %rdx -+#ifdef __ILP32__ -+ /* Clear the upper 32 bits. */ -+ movl %edx, %edx -+#endif -+ test %RDX_LP, %RDX_LP - jz L(finz) - cmpq $1, %rdx -- jle L(finr1b) -+ jbe L(finr1b) - subq %rdi, %rsi - movq %rdx, %r10 - cmpq $32, %r10 -- jge L(gt32) -+ jae L(gt32) - /* Handle small chunks and last block of less than 32 bytes. */ - L(small): - testq $1, %r10 -@@ -156,7 +160,7 @@ L(A32): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - /* Pre-unroll to be ready for unrolled 64B loop. */ - testq $32, %rdi - jz L(A64) -@@ -178,7 +182,7 @@ L(A64): - movq %r11, %r10 - andq $-64, %r10 - cmpq %r10, %rdi -- jge L(mt32) -+ jae L(mt32) - - L(A64main): - movdqu (%rdi,%rsi), %xmm0 -@@ -216,7 +220,7 @@ L(mt32): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - - L(A32main): - movdqu (%rdi,%rsi), %xmm0 -@@ -254,7 +258,7 @@ L(ATR): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - testq $16, %rdi - jz L(ATR32) - -@@ -325,7 +329,7 @@ L(ATR64main): - movq %r11, %r10 - andq $-32, %r10 - cmpq %r10, %rdi -- jge L(mt16) -+ jae L(mt16) - - L(ATR32res): - movdqa (%rdi,%rsi), %xmm0 -diff --git a/sysdeps/x86_64/x32/Makefile b/sysdeps/x86_64/x32/Makefile -index 7d528889c6..c9850beeb5 100644 ---- a/sysdeps/x86_64/x32/Makefile -+++ b/sysdeps/x86_64/x32/Makefile -@@ -6,7 +6,7 @@ CFLAGS-s_llround.c += -fno-builtin-lround - endif - - ifeq ($(subdir),string) --tests += tst-size_t-memchr -+tests += tst-size_t-memchr tst-size_t-memcmp-2 - endif - - ifeq ($(subdir),wcsmbs) -diff --git a/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c -new file mode 100644 -index 0000000000..d8ae1a0813 ---- /dev/null -+++ b/sysdeps/x86_64/x32/tst-size_t-memcmp-2.c -@@ -0,0 +1,79 @@ -+/* Test memcmp with size_t in the lower 32 bits of 64-bit register. -+ Copyright (C) 2019 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#define TEST_MAIN -+#ifdef WIDE -+# define TEST_NAME "wmemcmp" -+#else -+# define TEST_NAME "memcmp" -+#endif -+ -+#include "test-size_t.h" -+ -+#ifdef WIDE -+# include -+# include -+ -+# define MEMCMP wmemcmp -+# define CHAR wchar_t -+#else -+# define MEMCMP memcmp -+# define CHAR char -+#endif -+ -+IMPL (MEMCMP, 1) -+ -+typedef int (*proto_t) (const CHAR *, const CHAR *, size_t); -+ -+static int -+__attribute__ ((noinline, noclone)) -+do_memcmp (parameter_t a, parameter_t b) -+{ -+ return CALL (&b, a.p, b.p, a.len); -+} -+ -+static int -+test_main (void) -+{ -+ test_init (); -+ -+ parameter_t dest = { { page_size / sizeof (CHAR) }, buf1 }; -+ parameter_t src = { { 0 }, buf2 }; -+ -+ memcpy (buf1, buf2, page_size); -+ -+ CHAR *p = (CHAR *) buf1; -+ p[page_size / sizeof (CHAR) - 1] = (CHAR) 1; -+ -+ int ret = 0; -+ FOR_EACH_IMPL (impl, 0) -+ { -+ src.fn = impl->fn; -+ int res = do_memcmp (dest, src); -+ if (res >= 0) -+ { -+ error (0, 0, "Wrong result in function %s: %i >= 0", -+ impl->name, res); -+ ret = 1; -+ } -+ } -+ -+ return ret ? EXIT_FAILURE : EXIT_SUCCESS; -+} -+ -+#include --- -2.23.0 - diff --git a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch b/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch deleted file mode 100644 index 14cfaa35..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc/CVE-2019-9169.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 583dd860d5b833037175247230a328f0050dbfe9 Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Mon, 21 Jan 2019 11:08:13 -0800 -Subject: [PATCH] regex: fix read overrun [BZ #24114] - -Problem found by AddressSanitizer, reported by Hongxu Chen in: -https://debbugs.gnu.org/34140 -* posix/regexec.c (proceed_next_node): -Do not read past end of input buffer. - -Upstream-Status: Backport -https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=583dd860d5b833037175247230a328f0050dbfe9 - -CVE: CVE-2019-9169 -Signed-off-by: Armin Kuster - ---- - ChangeLog | 10 +++++++++- - posix/regexec.c | 6 ++++-- - 2 files changed, 13 insertions(+), 3 deletions(-) - -Index: git/ChangeLog -=================================================================== ---- git.orig/ChangeLog -+++ git/ChangeLog -@@ -1,3 +1,11 @@ -+2019-01-31 Paul Eggert -+ -+ regex: fix read overrun [BZ #24114] -+ Problem found by AddressSanitizer, reported by Hongxu Chen in: -+ https://debbugs.gnu.org/34140 -+ * posix/regexec.c (proceed_next_node): -+ Do not read past end of input buffer. -+ - 2018-09-30 Martin Jansa - Partial fix for [BZ #23716] - * locale/weight.h: Fix build with -Os. -@@ -10917,7 +10925,7 @@ - (CFLAGS-wcstof_l.c): Likewise. - (CPPFLAGS-tst-wchar-h.c): Likewise. - (CPPFLAGS-wcstold_l.c): Likewise. ----- -+ - 2017-12-11 Paul A. Clarke - - * sysdeps/ieee754/flt-32/s_cosf.c: New implementation. -Index: git/posix/regexec.c -=================================================================== ---- git.orig/posix/regexec.c -+++ git/posix/regexec.c -@@ -1289,8 +1289,10 @@ proceed_next_node (const re_match_contex - else if (naccepted) - { - char *buf = (char *) re_string_get_buffer (&mctx->input); -- if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, -- naccepted) != 0) -+ if (mctx->input.valid_len - *pidx < naccepted -+ || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, -+ naccepted) -+ != 0)) - return -1; - } - } diff --git a/external/poky/meta/recipes-core/glibc/glibc/check-test-wrapper b/external/poky/meta/recipes-core/glibc/glibc/check-test-wrapper new file mode 100644 index 00000000..f8e04e02 --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc/check-test-wrapper @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +import sys +import os +import subprocess + +env = os.environ.copy() +args = sys.argv[1:] +targettype = args.pop(0) + +if targettype == "user": + qemuargs = os.environ.get("QEMU_OPTIONS", "").split() + if not os.path.exists(qemuargs[0]): + # ensure qemu args has a valid absolute path + for i in os.environ.get("PATH", "").split(":"): + if os.path.exists(os.path.join(i, qemuargs[0])): + qemuargs[0] = os.path.join(i, qemuargs[0]) + break + sysroot = os.environ.get("QEMU_SYSROOT", None) + if not sysroot: + sys.exit(-1) + libpaths = [sysroot + "/usr/lib", sysroot + "/lib"] + + if args[0] == "env": + args.pop(0) + if len(args) == 0: + args = ["env"] + else: + # process options + while args[0].startswith("-"): + opt = args.pop(0).lstrip("-") + if "i" in opt: + env.clear() + # process environment vars + while "=" in args[0]: + key, val = args.pop(0).split("=", 1) + if key == "LD_LIBRARY_PATH": + libpaths += val.split(":") + else: + env[key] = val + if args[0] == "cp": + # ignore copies, the filesystem is the same + sys.exit(0) + + qemuargs += ["-L", sysroot] + qemuargs += ["-E", "LD_LIBRARY_PATH={}".format(":".join(libpaths))] + command = qemuargs + args +elif targettype == "ssh": + host = os.environ.get("SSH_HOST", None) + user = os.environ.get("SSH_HOST_USER", None) + port = os.environ.get("SSH_HOST_PORT", None) + + command = ["ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no"] + if port: + command += ["-p", str(port)] + if not host: + sys.exit(-1) + command += ["{}@{}".format(user, host) if user else host] + + # wrap and replace quotes for correct transformation on ssh + wrapped = " ".join(["'{0}'".format(i.replace("'", r"'\''")) for i in ["cd", os.getcwd()]]) + "; " + wrapped += " ".join(["'{0}'".format(i.replace("'", r"'\''")) for i in args]) + command += ["sh", "-c", "\"{}\"".format(wrapped)] +else: + sys.exit(-1) + +try: + r = subprocess.run(command, timeout = 1800, env = env) + sys.exit(r.returncode) +except subprocess.TimeoutExpired: + sys.exit(-1) + diff --git a/external/poky/meta/recipes-core/glibc/glibc_2.28.bb b/external/poky/meta/recipes-core/glibc/glibc_2.28.bb deleted file mode 100644 index 4e6ee4dc..00000000 --- a/external/poky/meta/recipes-core/glibc/glibc_2.28.bb +++ /dev/null @@ -1,138 +0,0 @@ -require glibc.inc - -LIC_FILES_CHKSUM = "file://LICENSES;md5=cfc0ed77a9f62fa62eded042ebe31d72 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c" - -DEPENDS += "gperf-native bison-native make-native" - -SRCREV ?= "044c96f0d5595aeb0bb4e79355081c5a7f4faca5" - -SRCBRANCH ?= "release/${PV}/master" - -GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.(?!90)\d+)*)" - -SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \ - file://etc/ld.so.conf \ - file://generate-supported.mk \ - 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://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-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ - file://0025-locale-fix-hard-coded-reference-to-gcc-E.patch \ - file://0028-bits-siginfo-consts.h-enum-definition-for-TRAP_HWBKP.patch \ - file://0029-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ - file://0030-intl-Emit-no-lines-in-bison-generated-files.patch \ - file://0031-sysdeps-ieee754-prevent-maybe-uninitialized-errors-w.patch \ - file://0032-sysdeps-ieee754-soft-fp-ignore-maybe-uninitialized-w.patch \ - file://0033-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ - file://0034-inject-file-assembly-directives.patch \ - file://CVE-2019-9169.patch \ - file://CVE-2016-10739.patch \ - file://CVE-2018-19591.patch \ - file://CVE-2019-6488.patch \ - file://CVE-2019-7309.patch \ -" - -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 \ -" - -S = "${WORKDIR}/git" -B = "${WORKDIR}/build-${TARGET_SYS}" - -PACKAGES_DYNAMIC = "" - -# the -isystem in bitbake.conf screws up glibc do_stage -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" - -GLIBC_BROKEN_LOCALES = "" -# -# We will skip parsing glibc when target system C library selection is not glibc -# this helps in easing out parsing for non-glibc system libraries -# -COMPATIBLE_HOST_libc-musl_class-target = "null" - -GLIBCPIE ??= "" - -EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ - --disable-profile \ - --disable-debug --without-gd \ - --enable-clocale=gnu \ - --with-headers=${STAGING_INCDIR} \ - --without-selinux \ - --enable-tunables \ - --enable-bind-now \ - --enable-stack-protector=strong \ - --enable-stackguard-randomization \ - --disable-crypt \ - ${GLIBCPIE} \ - ${GLIBC_EXTRA_OECONF}" - -EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'libc-inet-anl', '--enable-nscd', '--disable-nscd', d)}" - - -do_patch_append() { - bb.build.exec_func('do_fix_readlib_c', d) -} - -do_fix_readlib_c () { - sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c -} - -do_configure () { -# override this function to avoid the autoconf/automake/aclocal/autoheader -# calls for now -# don't pass CPPFLAGS into configure, since it upsets the kernel-headers -# version check and doesn't really help with anything - (cd ${S} && gnu-configize) || die "failure in running gnu-configize" - find ${S} -name "configure" | xargs touch - CPPFLAGS="" oe_runconf -} - -do_compile () { - # -Wl,-rpath-link /lib in LDFLAGS can cause breakage if another glibc is in staging - unset LDFLAGS - base_do_compile - echo "Adjust ldd script" - if [ -n "${RTLDLIST}" ] - then - prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` - if [ "${prevrtld}" != "${RTLDLIST}" ] - then - sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#" - fi - fi - -} - -require glibc-package.inc - -BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-core/glibc/glibc_2.31.bb b/external/poky/meta/recipes-core/glibc/glibc_2.31.bb new file mode 100644 index 00000000..3d486fbb --- /dev/null +++ b/external/poky/meta/recipes-core/glibc/glibc_2.31.bb @@ -0,0 +1,111 @@ +require glibc.inc +require glibc-version.inc + +CVE_CHECK_WHITELIST += "CVE-2020-10029 CVE-2020-6096 CVE-2016-10228 CVE-2020-1751 CVE-2020-1752" + +DEPENDS += "gperf-native bison-native make-native" + +NATIVESDKFIXES ?= "" +NATIVESDKFIXES_class-nativesdk = "\ + 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 \ + file://etc/ld.so.conf \ + file://generate-supported.mk \ + file://makedbs.sh \ + \ + ${NATIVESDKFIXES} \ + file://0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \ + file://0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ + file://0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ + file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ + file://0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ + file://0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ + file://0017-yes-within-the-path-sets-wrong-config-variables.patch \ + file://0018-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0019-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0020-eglibc-Cross-building-and-testing-instructions.patch \ + file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ + file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \ + file://0028-inject-file-assembly-directives.patch \ + file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ + " +S = "${WORKDIR}/git" +B = "${WORKDIR}/build-${TARGET_SYS}" + +PACKAGES_DYNAMIC = "" + +# the -isystem in bitbake.conf screws up glibc do_stage +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" + +GLIBC_BROKEN_LOCALES = "" + +GLIBCPIE ??= "" + +EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ + --disable-profile \ + --disable-debug --without-gd \ + --enable-clocale=gnu \ + --with-headers=${STAGING_INCDIR} \ + --without-selinux \ + --enable-tunables \ + --enable-bind-now \ + --enable-stack-protector=strong \ + --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)}" + +do_patch_append() { + bb.build.exec_func('do_fix_readlib_c', d) +} + +do_fix_readlib_c () { + sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c +} + +do_configure () { +# override this function to avoid the autoconf/automake/aclocal/autoheader +# calls for now +# don't pass CPPFLAGS into configure, since it upsets the kernel-headers +# version check and doesn't really help with anything + (cd ${S} && gnu-configize) || die "failure in running gnu-configize" + find ${S} -name "configure" | xargs touch + CPPFLAGS="" oe_runconf +} + +LDFLAGS += "-fuse-ld=bfd" +do_compile () { + base_do_compile + echo "Adjust ldd script" + if [ -n "${RTLDLIST}" ] + then + prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'` + # remove duplicate entries + newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)` + echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\"" + sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#" + fi +} + +require glibc-package.inc + +BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-core/glibc/site_config/funcs b/external/poky/meta/recipes-core/glibc/site_config/funcs deleted file mode 100644 index ccc85392..00000000 --- a/external/poky/meta/recipes-core/glibc/site_config/funcs +++ /dev/null @@ -1,474 +0,0 @@ -a64l -abs -access -__adjtimex -alarm -alphasort -argz_append -__argz_count -argz_create_sep -argz_insert -__argz_next -argz_next -__argz_stringify -argz_stringify -asprintf -atexit -atof -atoi -bcmp -bcopy -bindresvport -bind_textdomain_codeset -btowc -bzero -calloc -canonicalize_file_name -catgets -cfgetospeed -cfsetispeed -cfsetspeed -chmod -chown -chroot -clock -close -closedir -closelog -confstr -connect -daemon -dcgettext -difftime -dirfd -dirname -dngettext -dup2 -ecvt -endgrent -endmntent -endpwent -endutent -endutxent -epoll_ctl -err -ether_hostton -ether_ntohost -euidaccess -execv -fchdir -fchmod -fchmodat -fchown -fchownat -fcntl -fcvt -fdatasync -fdopendir -feof_unlocked -fgets_unlocked -fgetxattr -finite -flistxattr -flock -flockfile -fnmatch -fork -fpathconf -__fpending -fprintf -free -freeaddrinfo -freeifaddrs -fseeko -__fsetlocking -fsetxattr -fstat64 -fstat -fstatfs -fsync -ftello -ftime -ftruncate -funlockfile -futimes -futimesat -gai_strerror -gcvt -getaddrinfo -getc_unlocked -getcwd -getdelim -getdomainname -getdtablesize -getegid -getenv -geteuid -getgid -getgrent -getgrent_r -getgrgid_r -getgrnam -getgrnam_r -getgrouplist -getgroups -gethostbyaddr_r -gethostbyname2 -gethostbyname -gethostbyname_r -gethostent -gethostid -gethostname -getifaddrs -getline -getloadavg -getmntent -getmsg -getnameinfo -getnetbyaddr_r -getnetgrent_r -getopt -getopt_long -getopt_long_only -getpagesize -getpass -getpeername -getpgrp -getpid -getppid -getprotoent_r -getpwent -getpwent_r -getpwnam -getpwnam_r -getpwuid -getpwuid_r -getresuid -getrlimit -getrusage -getservbyname -getservbyname_r -getservbyport_r -getservent -getservent_r -getspnam -getspnam_r -gettimeofday -getttyent -getttynam -getuid -getusershell -getutent -getutid -getutline -getutmp -getutmpx -getutxent -getutxid -getutxline -getwd -getxattr -glob -gmtime -gmtime_r -grantpt -group_member -herror -hstrerror -iconv -iconv_open -if_freenameindex -if_indextoname -if_nameindex -if_nametoindex -index -inet_addr -inet_aton -inet_ntoa -inet_ntop -inet_pton -initgroups -innetgr -iruserok -isascii -isatty -isblank -isgraph -isinf -isnan -isprint -isspace -iswalnum -iswcntrl -iswctype -iswprint -iswspace -iswupper -isxdigit -kill -killpg -lchown -lckpwdf -lgetxattr -link -listxattr -llistxattr -localtime -localtime_r -lockf -lrand48 -lsearch -lseek64 -lsetxattr -lstat -mallinfo -malloc -mblen -mbrlen -mbrtowc -mbsinit -mbsrtowcs -mbtowc -memalign -memchr -memcmp -memcpy -memmove -mempcpy -memrchr -memset -mkdir -mkdirat -mkdtemp -mkfifo -mknod -mkstemp64 -mkstemp -mktime -mlock -mmap -mtrace -munlock -munmap -nanosleep -nice -nl_langinfo -ntp_adjtime -ntp_gettime -_obstack_free -on_exit -open64 -open -openat -opendir -openlog -pathconf -pipe -poll -popen -posix_memalign -prctl -pread -printf -__progname -pselect -pthread_mutex_lock -ptsname -putenv -putgrent -putpwent -putspent -pututline -pututxline -putwc -pwrite -qsort -raise -rand -random -rand_r -read -readdir -readdir_r -readlink -realloc -realpath -re_comp -recvmsg -re_exec -regcomp -regexec -remove -rename -re_search -rmdir -rpmatch -rresvport_af -ruserok -ruserok_af -sbrk -scandir -sched_setscheduler -sched_yield -__secure_getenv -select -semctl -semget -sendmsg -setbuf -setbuffer -setegid -setenv -seteuid -setgid -setgroups -sethostname -setitimer -_setjmp -setjmp -setlinebuf -setlocale -setmntent -setpgid -setpgrp -setpriority -setregid -setresgid -setresuid -setreuid -setrlimit -setsid -setsockopt -settimeofday -setuid -setutent -setutxent -setvbuf -setxattr -sgetspent -shmat -shmctl -shmdt -shmget -shutdown -sigaction -sigaddset -sigaltstack -sigblock -sigemptyset -sighold -siginterrupt -signal -sigprocmask -sigset -sigsetmask -sigstack -sigsuspend -sigvec -snprintf -socket -socketpair -sprintf -srand48 -srand -srandom -sscanf -stat -statfs -statvfs -stime -stpcpy -strcasecmp -strcasestr -strchr -strchrnul -strcmp -strcspn -strdup -strerror -strerror_r -strftime -strlen -strncasecmp -strncmp -strndup -strnlen -strpbrk -strptime -strrchr -strsep -strsignal -strspn -strstr -strtod -strtoimax -strtok_r -strtol -strtoll -strtoul -strtoull -strtoumax -strverscmp -strxfrm -symlink -sync -sysconf -sysctl -sysinfo -syslog -_sys_siglist -sys_siglist -system -tcgetattr -tcgetpgrp -tcsetattr -tcsetpgrp -time -timegm -times -timezone -tmpnam -towlower -towupper -truncate -tsearch -ttyname -tzset -ulimit -umask -uname -unlink -unsetenv -unshare -updwtmp -updwtmpx -usleep -ustat -utime -utimes -utmpname -utmpxname -valloc -vasprintf -verrx -vfork -vfprintf -vfscanf -vhangup -vprintf -vsnprintf -vsprintf -wait3 -wait4 -waitpid -wcrtomb -wcscoll -wcsdup -wcslen -wctob -wctomb -wctype -wcwidth -wmemchr -wmemcpy -wmempcpy diff --git a/external/poky/meta/recipes-core/glibc/site_config/headers b/external/poky/meta/recipes-core/glibc/site_config/headers deleted file mode 100644 index 69fedea4..00000000 --- a/external/poky/meta/recipes-core/glibc/site_config/headers +++ /dev/null @@ -1,155 +0,0 @@ -aio.h -alloca.h -argz.h -arpa/inet.h -arpa/nameser.h -asm/byteorder.h -asm/ioctls.h -asm/page.h -asm/types.h -assert.h -byteswap.h -ctype.h -dirent.h -dlfcn.h -elf.h -endian.h -err.h -errno.h -execinfo.h -fcntl.h -features.h -float.h -fstab.h -ftw.h -getopt.h -glob.h -grp.h -iconv.h -ifaddrs.h -inttypes.h -langinfo.h -lastlog.h -libgen.h -libintl.h -limits.h -linux/capability.h -linux/fd.h -linux/fs.h -linux/hayesesp.h -linux/hdreg.h -linux/icmp.h -linux/in6.h -linux/joystick.h -linux/ptrace.h -linux/serial.h -linux/sonypi.h -linux/unistd.h -linux/utsname.h -linux/version.h -locale.h -malloc.h -math.h -mcheck.h -memory.h -mntent.h -mqueue.h -netdb.h -net/if.h -netinet/ether.h -netinet/in.h -netinet/ip6.h -netinet/ip.h -netinet/tcp.h -netinet/udp.h -netipx/ipx.h -net/route.h -paths.h -poll.h -pthread.h -pty.h -pwd.h -regex.h -resolv.h -rpc/rpc.h -rpc/types.h -sched.h -scsi/scsi.h -search.h -semaphore.h -setjmp.h -sgtty.h -shadow.h -signal.h -stdarg.h -stdbool.h -stdc -stddef.h -stdint.h -stdio.h -stdlib.h -string.h -strings.h -stropts.h -sys/bitypes.h -sys/cdefs.h -sys/dir.h -sys/epoll.h -sysexits.h -sys/fcntl.h -sys/file.h -sys/fsuid.h -sys/ioctl.h -sys/ipc.h -syslog.h -sys/mman.h -sys/mount.h -sys/mtio.h -sys/param.h -sys/poll.h -sys/prctl.h -sys/ptrace.h -sys/queue.h -sys/reg.h -sys/resource.h -sys/select.h -sys/sem.h -sys/shm.h -sys/signal.h -sys/socket.h -sys/socketvar.h -sys/soundcard.h -sys/statfs.h -sys/stat.h -sys/statvfs.h -sys/stropts.h -sys/swap.h -sys/sysctl.h -sys/sysinfo.h -sys/sysmacros.h -sys/termios.h -sys/timeb.h -sys/time.h -sys/times.h -sys/timex.h -sys/types.h -sys/uio.h -sys/un.h -sys/unistd.h -sys/user.h -sys/utsname.h -sys/vfs.h -sys/wait.h -termio.h -termios.h -time.h -ttyent.h -ulimit.h -unistd.h -ustat.h -utime.h -utmp.h -utmpx.h -values.h -wchar.h -wctype.h diff --git a/external/poky/meta/recipes-core/glibc/site_config/types b/external/poky/meta/recipes-core/glibc/site_config/types deleted file mode 100644 index 178bd85a..00000000 --- a/external/poky/meta/recipes-core/glibc/site_config/types +++ /dev/null @@ -1,21 +0,0 @@ -char -char * -double -float -int -long -long double -long int -long long -long long int -short -short int -signed char -unsigned char -unsigned int -unsigned long -unsigned long int -unsigned long long int -unsigned short -unsigned short int -void * diff --git a/external/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch b/external/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch new file mode 100644 index 00000000..7bf02ea5 --- /dev/null +++ b/external/poky/meta/recipes-core/ifupdown/files/0001-Define-FNM_EXTMATCH-for-musl.patch @@ -0,0 +1,47 @@ +From ff714d6461569d69b253089110ec659e4ebec248 Mon Sep 17 00:00:00 2001 +From: Oleksandr Kravchuk +Date: Tue, 2 Jul 2019 20:10:42 +0200 +Subject: [PATCH] Define FNM_EXTMATCH for musl + +Fixes the following compilation errors with musl that does not have +FNM_EXTMATCH defined: + +| main.c: In function 'expand_matches': +| main.c:700:40: error: 'FNM_EXTMATCH' undeclared (first use in this +function); did you mean 'FNM_NOMATCH'? +| 700 | if(fnmatch(pattern, ifa->ifa_name, FNM_EXTMATCH)) +| | ^~~~~~~~~~~~ +| | FNM_NOMATCH + +and + +| archlinux.c:40:28: error: 'FNM_EXTMATCH' undeclared (first use in this +function); did you mean 'FNM_NOMATCH'? +| 40 | if(fnmatch(pattern, buf, FNM_EXTMATCH) == 0) { +| | ^~~~~~~~~~~~ +| | FNM_NOMATCH + +Upstream-Status: Submitted [https://salsa.debian.org/debian/ifupdown/merge_requests/5] + +Signed-off-by: Oleksandr Kravchuk +--- + archcommon.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/archcommon.h b/archcommon.h +index fe99950..f257f9d 100644 +--- a/archcommon.h ++++ b/archcommon.h +@@ -1,5 +1,9 @@ + #include "header.h" + ++#if !defined(FNM_EXTMATCH) ++#define FNM_EXTMATCH 0 ++#endif ++ + bool execable(const char *); + + #define iface_is_link() (!_iface_has(ifd->real_iface, ":.")) +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch b/external/poky/meta/recipes-core/ifupdown/files/0001-Makefile-do-not-use-dpkg-for-determining-OS-type.patch new file mode 100644 index 00000000..57c8d04f --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch b/external/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch index a24b8cda..d1c3d260 100644 --- a/external/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch +++ b/external/poky/meta/recipes-core/ifupdown/files/defn2-c-man-don-t-rely-on-dpkg-architecture-to-set-a.patch @@ -1,4 +1,4 @@ -From 7af9db748974cb3a2c6ef8f9e03d7db1f9f8ee16 Mon Sep 17 00:00:00 2001 +From 40257d65b338b6e2ed9d89d6fa7c7b8701a4c311 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Wed, 6 Aug 2014 14:54:12 -0400 Subject: [PATCH 1/2] defn2[c|man]: don't rely on dpkg-architecture to set arch @@ -19,7 +19,7 @@ Upstream-Status: Pending 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/defn2c.pl b/defn2c.pl -index c449de2f3d1c..38845e374c76 100755 +index 8798dc2..f2551c7 100755 --- a/defn2c.pl +++ b/defn2c.pl @@ -2,9 +2,9 @@ @@ -36,7 +36,7 @@ index c449de2f3d1c..38845e374c76 100755 # declarations my $address_family = ""; diff --git a/defn2man.pl b/defn2man.pl -index 6ddcfdd4fe68..c9c4dd046597 100755 +index 6ddcfdd..c9c4dd0 100755 --- a/defn2man.pl +++ b/defn2man.pl @@ -2,9 +2,9 @@ @@ -53,5 +53,5 @@ index 6ddcfdd4fe68..c9c4dd046597 100755 # declarations my $line; -- -1.9.1 +2.17.1 diff --git a/external/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch b/external/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch deleted file mode 100644 index 37a61c9b..00000000 --- a/external/poky/meta/recipes-core/ifupdown/files/inet-6-.defn-fix-inverted-checks-for-loopback.patch +++ /dev/null @@ -1,406 +0,0 @@ -From 7efe4676747e4e4a056b9bfb4e9424c8354e9996 Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" -Date: Wed, 21 Dec 2016 15:32:07 +0200 -Subject: [PATCH] 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 -Signed-off-by: Maxin B. John -Signed-off-by: Yi Zhao ---- - inet.defn | 140 +++++++++++++++++++++++++++++++------------------------------- - 1 file changed, 70 insertions(+), 70 deletions(-) - -diff --git a/inet.defn b/inet.defn -index 75e6744..23c7756 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 -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 -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 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ -+ dhclient -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 \ -+ if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(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 -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 -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 -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \ -+ dhclient -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 \ -+ if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(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 -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ -+ dhclient -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 -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \ -+ dhclient -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 \ -+ if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(cat /run/udhcpc.%iface///.%.pid); kill -TERM $(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.7.4 - diff --git a/external/poky/meta/recipes-core/ifupdown/files/run-ptest b/external/poky/meta/recipes-core/ifupdown/files/run-ptest new file mode 100644 index 00000000..86940423 --- /dev/null +++ b/external/poky/meta/recipes-core/ifupdown/files/run-ptest @@ -0,0 +1,4 @@ +#!/bin/sh + +CURDIR=$(dirname `readlink -f $0`) +cd $CURDIR/tests && ./testbuild-linux diff --git a/external/poky/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch b/external/poky/meta/recipes-core/ifupdown/files/tweak-ptest-script.patch new file mode 100644 index 00000000..d7600cf2 --- /dev/null +++ b/external/poky/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 + +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/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb b/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb deleted file mode 100644 index e9f3a2ae..00000000 --- a/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.16.bb +++ /dev/null @@ -1,46 +0,0 @@ -SUMMARY = "ifupdown: basic ifup and ifdown used by initscripts" -DESCRIPTION = "High level tools to configure network interfaces \ -This package provides the tools ifup and ifdown which may be used to \ -configure (or, respectively, deconfigure) network interfaces, based on \ -the file /etc/network/interfaces." -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 \ - " -SRCREV = "11b9f99f7ecc7052497e6786156cfed531f11823" - -S = "${WORKDIR}/git" - - -inherit update-alternatives - -do_compile () { - chmod a+rx *.pl *.sh - oe_runmake 'CC=${CC}' "CFLAGS=${CFLAGS} -Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'" -} - -do_install () { - install -d ${D}${mandir}/man8 \ - ${D}${mandir}/man5 \ - ${D}${base_sbindir} - - # If volatiles are used, then we'll also need /run/network there too. - install -d ${D}/etc/default/volatiles - install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles - - install -m 0755 ifup ${D}${base_sbindir}/ - ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown - install -m 0644 ifup.8 ${D}${mandir}/man8 - install -m 0644 interfaces.5 ${D}${mandir}/man5 - cd ${D}${mandir}/man8 && ln -s ifup.8 ifdown.8 -} - -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_${PN} = "ifup ifdown" - -ALTERNATIVE_LINK_NAME[ifup] = "${base_sbindir}/ifup" -ALTERNATIVE_LINK_NAME[ifdown] = "${base_sbindir}/ifdown" diff --git a/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb b/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb new file mode 100644 index 00000000..53cb971d --- /dev/null +++ b/external/poky/meta/recipes-core/ifupdown/ifupdown_0.8.35.bb @@ -0,0 +1,55 @@ +SUMMARY = "ifupdown: basic ifup and ifdown used by initscripts" +DESCRIPTION = "High level tools to configure network interfaces \ +This package provides the tools ifup and ifdown which may be used to \ +configure (or, respectively, deconfigure) network interfaces, based on \ +the file /etc/network/interfaces." +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://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 ptest update-alternatives + +do_compile () { + chmod a+rx *.pl *.sh + oe_runmake 'CC=${CC}' "CFLAGS=${CFLAGS} -Wall -W -D'IFUPDOWN_VERSION=\"${PV}\"'" +} + +do_install () { + install -d ${D}${mandir}/man8 \ + ${D}${mandir}/man5 \ + ${D}${base_sbindir} + + # If volatiles are used, then we'll also need /run/network there too. + install -d ${D}/etc/default/volatiles + install -m 0644 ${WORKDIR}/99_network ${D}/etc/default/volatiles + + install -m 0755 ifup ${D}${base_sbindir}/ + ln ${D}${base_sbindir}/ifup ${D}${base_sbindir}/ifdown + install -m 0644 ifup.8 ${D}${mandir}/man8 + install -m 0644 interfaces.5 ${D}${mandir}/man5 + 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" + +ALTERNATIVE_LINK_NAME[ifup] = "${base_sbindir}/ifup" +ALTERNATIVE_LINK_NAME[ifdown] = "${base_sbindir}/ifdown" diff --git a/external/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/external/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb index 2099a124..3e1ffe19 100644 --- a/external/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/external/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -11,6 +11,8 @@ IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegro IMAGE_FEATURES += "x11-base package-management splash" +QB_MEM = '${@bb.utils.contains("DISTRO_FEATURES", "opengl", "-m 512", "-m 256", d)}' + # Ensure there's enough space to do a core-image-sato build, with rm_work enabled IMAGE_ROOTFS_EXTRA_SPACE = "41943040" @@ -22,13 +24,14 @@ IMAGE_FSTYPES = "wic.vmdk" inherit core-image module-base setuptools3 -SRCREV ?= "2c5af52109bca8c0452b1539589cf073f6f0064a" -SRC_URI = "git://git.yoctoproject.org/poky;branch=thud \ +SRCREV ?= "ff7dbd392aced161a79303f5312c2b356f3305dc" +SRC_URI = "git://git.yoctoproject.org/poky;branch=dunfell \ file://Yocto_Build_Appliance.vmx \ file://Yocto_Build_Appliance.vmxf \ file://README_VirtualBox_Guest_Additions.txt \ file://README_VirtualBox_Toaster.txt \ " +RECIPE_NO_UPDATE_REASON = "Recipe is recursive and handled as part of the release process" BA_INCLUDE_SOURCES ??= "0" IMAGE_CMD_ext4_append () { diff --git a/external/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb b/external/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb index 7df8ab1e..83d0eaa8 100644 --- a/external/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb +++ b/external/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb @@ -27,5 +27,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/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh b/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh index 9c4b263d..b351985a 100644 --- a/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh +++ b/external/poky/meta/recipes-core/initrdscripts/files/init-install-efi-testfs.sh @@ -27,7 +27,7 @@ do # Try sleeping here to avoid getting kernel messages # obscuring/confusing user sleep 5 - echo "Found drive at /dev/${device}. Do you want to install this image there ? [y/n]" + echo "Found drive at /dev/${device}. Do you want to install this image there? [y/n]" read answer if [ "$answer" = "y" ] ; then break diff --git a/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh b/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh old mode 100644 new mode 100755 index 65183d7e..b20660b6 --- a/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh +++ b/external/poky/meta/recipes-core/initrdscripts/files/init-live.sh @@ -28,8 +28,7 @@ udev_daemon() { _UDEV_DAEMON=`udev_daemon` early_setup() { - mkdir -p /proc - mkdir -p /sys + mkdir -p /proc /sys /run /var/run mount -t proc proc /proc mount -t sysfs sysfs /sys mount -t devtmpfs none /dev @@ -37,9 +36,6 @@ early_setup() { # support modular kernel modprobe isofs 2> /dev/null - mkdir -p /run - mkdir -p /var/run - $_UDEV_DAEMON --daemon udevadm trigger --action=add } diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb index 7ae7969f..29ec5ec2 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb @@ -9,8 +9,13 @@ S = "${WORKDIR}" do_install() { install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init + + # Create device nodes expected by some kernels in initramfs + # before even executing /init. + install -d ${D}/dev + mknod -m 622 ${D}/dev/console c 5 1 } inherit allarch -FILES_${PN} += " /init " +FILES_${PN} += "/init /dev/console" diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init index 3c7e0942..c71ce0ce 100755 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -72,6 +72,7 @@ ROOTFS_DIR="/rootfs" # where to do the switch root MODULE_PRE_HOOKS="" # functions to call before running each module MODULE_POST_HOOKS="" # functions to call after running each module MODULES_DIR=/init.d # place to look for modules +EFI_DIR=/sys/firmware/efi # place to store device firmware information # make mount stop complaining about missing /etc/fstab touch /etc/fstab @@ -81,6 +82,10 @@ mkdir -p /proc /sys /run/lock /var/lock mount -t proc proc /proc mount -t sysfs sysfs /sys +if [ -d $EFI_DIR ];then + mount -t efivarfs none /sys/firmware/efi/efivars +fi + # populate bootparam environment for p in `cat /proc/cmdline`; do opt=`echo $p | cut -d'=' -f1` diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm new file mode 100644 index 00000000..7deeccb9 --- /dev/null +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/lvm @@ -0,0 +1,13 @@ +#!/bin/sh + +lvm_enabled() { + if ! lvscan |grep -i -w "inactive" &>/dev/null;then + return 1 + fi + return 0 +} + +lvm_run() { + lvm pvscan --cache --activate ay + udevadm trigger --action=add +} diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs index 76fa84d3..748c9391 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs @@ -27,8 +27,18 @@ rootfs_run() { fi if [ "`echo ${bootparam_root} | cut -c1-9`" = "PARTUUID=" ]; then - root_uuid=`echo $bootparam_root | cut -c10-` - bootparam_root="/dev/disk/by-partuuid/$root_uuid" + root_partuuid=`echo $bootparam_root | cut -c10-` + bootparam_root="/dev/disk/by-partuuid/$root_partuuid" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" + fi + + if [ "`echo ${bootparam_root} | cut -c1-10`" = "PARTLABEL=" ]; then + root_partlabel=`echo $bootparam_root | cut -c11-` + bootparam_root="/dev/disk/by-partlabel/$root_partlabel" fi if [ "`echo ${bootparam_root} | cut -c1-6`" = "LABEL=" ]; then diff --git a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev index 87551ff4..4898b892 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework/udev +++ b/external/poky/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/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb index 660343ea..c53a0c03 100644 --- a/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb +++ b/external/poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb @@ -17,6 +17,7 @@ SRC_URI = "file://init \ file://udev \ file://e2fs \ file://debug \ + file://lvm \ " S = "${WORKDIR}" @@ -45,6 +46,9 @@ do_install() { # debug install -m 0755 ${WORKDIR}/debug ${D}/init.d/00-debug + # lvm + install -m 0755 ${WORKDIR}/lvm ${D}/init.d/09-lvm + # Create device nodes expected by some kernels in initramfs # before even executing /init. install -d ${D}/dev @@ -59,6 +63,7 @@ PACKAGES = "${PN}-base \ initramfs-module-nfsrootfs \ initramfs-module-rootfs \ initramfs-module-debug \ + initramfs-module-lvm \ " FILES_${PN}-base = "/init /init.d/99-finish /dev" @@ -98,3 +103,7 @@ FILES_initramfs-module-rootfs = "/init.d/90-rootfs" SUMMARY_initramfs-module-debug = "initramfs dynamic debug support" RDEPENDS_initramfs-module-debug = "${PN}-base" FILES_initramfs-module-debug = "/init.d/00-debug" + +SUMMARY_initramfs-module-lvm = "initramfs lvm rootfs support" +RDEPENDS_initramfs-module-lvm = "${PN}-base" +FILES_initramfs-module-lvm = "/init.d/09-lvm" diff --git a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh new file mode 100644 index 00000000..b577b9a0 --- /dev/null +++ b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/alignment.sh @@ -0,0 +1,13 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: alignment +# Required-Start: mountkernfs +# Required-Stop: mountkernfs +# Default-Start: S +# Default-Stop: +### END INIT INFO + +if [ -e /proc/cpu/alignment ]; then + echo "3" > /proc/cpu/alignment +fi + diff --git a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh deleted file mode 100644 index b577b9a0..00000000 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/arm/alignment.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: alignment -# Required-Start: mountkernfs -# Required-Stop: mountkernfs -# Default-Start: S -# Default-Stop: -### END INIT INFO - -if [ -e /proc/cpu/alignment ]; then - echo "3" > /proc/cpu/alignment -fi - diff --git a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh index df553bc0..591591f8 100755 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh +++ b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/bootmisc.sh @@ -8,7 +8,10 @@ # Short-Description: Misc and other. ### END INIT INFO +TIMESTAMP_FILE=/etc/timestamp + . /etc/default/rcS +[ -f /etc/default/timestamp ] && . /etc/default/timestamp # # Put a nologin file in /etc to prevent people from logging in before # system startup is complete. @@ -64,10 +67,10 @@ fi # If the timestamp is more recent than the current time, # use the timestamp instead. test -x /etc/init.d/hwclock.sh && /etc/init.d/hwclock.sh start -if test -e /etc/timestamp +if test -e "$TIMESTAMP_FILE" then SYSTEMDATE=`date -u +%4Y%2m%2d%2H%2M%2S` - read TIMESTAMP < /etc/timestamp + read TIMESTAMP < "$TIMESTAMP_FILE" if [ ${TIMESTAMP} -gt $SYSTEMDATE ]; then # format the timestamp as date expects it (2m2d2H2M4Y.2S) TS_YR=${TIMESTAMP%??????????} diff --git a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh index 6f965a68..f21f48dd 100755 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh +++ b/external/poky/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,23 +64,23 @@ 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() { EXEC=" if [ -L \"$2\" ]; then - [ \"\$(readlink -f \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; }; + [ \"\$(readlink \"$2\")\" != \"$1\" ] && { rm -f \"$2\"; ln -sf \"$1\" \"$2\"; }; elif [ -d \"$2\" ]; then if awk '\$2 == \"$2\" {exit 1}' /proc/mounts; then cp -a $2/* $1 2>/dev/null; @@ -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&- -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/external/poky/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh index 1632a5f6..ffa1eee4 100644 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh +++ b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/save-rtc.sh @@ -9,5 +9,9 @@ # Description: ### END INIT INFO +TIMESTAMP_FILE=/etc/timestamp + +[ -f /etc/default/timestamp ] && . /etc/default/timestamp + # Update the timestamp -date -u +%4Y%2m%2d%2H%2M%2S 2>/dev/null > /etc/timestamp +date -u +%4Y%2m%2d%2H%2M%2S 2>/dev/null > "$TIMESTAMP_FILE" diff --git a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh index f5b5b990..4871ee94 100644 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/sysfs.sh +++ b/external/poky/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/external/poky/meta/recipes-core/initscripts/initscripts-1.0/volatiles b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/volatiles index 20110664..cd8a4be0 100644 --- a/external/poky/meta/recipes-core/initscripts/initscripts-1.0/volatiles +++ b/external/poky/meta/recipes-core/initscripts/initscripts-1.0/volatiles @@ -8,7 +8,7 @@ # The # character introduces a comment lasting until end of line. # Blank lines are ignored. # -# : d|f|l : (d)irectory|(f)ile|(l)ink +# : d|f|l|b : (d)irectory|(f)ile|(l)ink|(b)ind # # A linking example: # l root root 0777 /var/test /tmp/testfile diff --git a/external/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/external/poky/meta/recipes-core/initscripts/initscripts_1.0.bb index 91eea4b8..f98e42eb 100644 --- a/external/poky/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/external/poky/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -40,6 +40,7 @@ SRC_URI = "file://functions \ S = "${WORKDIR}" SRC_URI_append_arm = " file://alignment.sh" +SRC_URI_append_armeb = " file://alignment.sh" KERNEL_VERSION = "" @@ -168,7 +169,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/external/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch b/external/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch new file mode 100644 index 00000000..dc523606 --- /dev/null +++ b/external/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch @@ -0,0 +1,45 @@ +From 4c12f76f4177cfd560cf708a16774ebfadbd41a5 Mon Sep 17 00:00:00 2001 +From: "Mingde (Matthew) Zeng" +Date: Wed, 22 Jan 2020 11:02:17 -0500 +Subject: [PATCH] Use DATADIR and append i386 to fix libkbdfile-test08 ptest + failure + +Replace ABS_DATADIR with DATADIR and append i386 to dirpath. + +Upstream-Status: Inappropriate [OE specific] + +This OE specific patch applies to kbd v2.2.0 for now, the upstream +made drastic changes since v2.2.0, in fact they got rid of ABS_DATADIR +in commit 5b6df5c along with a series of other commits which may or +may not fix this issue. We will find out in future releases. + +Signed-off-by: Matthew Zeng +--- + tests/libkbdfile-test08.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/libkbdfile-test08.c b/tests/libkbdfile-test08.c +index bf41707..5e287f1 100644 +--- a/tests/libkbdfile-test08.c ++++ b/tests/libkbdfile-test08.c +@@ -14,14 +14,14 @@ main(int __attribute__((unused)) argc, char **argv) + if (!fp) + kbd_error(EXIT_FAILURE, 0, "unable to create kbdfile"); + +- const char *const dirpath[] = { "", DATADIR "/findfile/test_0/keymaps/**", 0 }; ++ const char *const dirpath[] = { "", DATADIR "/findfile/test_0/keymaps/i386/**", 0 }; + const char *const suffixes[] = { "", ".map", ".kmap", 0 }; + +- const char *expect = ABS_DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0.map"; ++ const char *expect = DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0.map"; + + int rc = 0; + +- rc = kbdfile_find((char *)(ABS_DATADIR "/findfile/test_0/keymaps/i386/qwerty/test0"), (char **) dirpath, (char **) suffixes, fp); ++ rc = kbdfile_find((char *)"test0", (char **) dirpath, (char **) suffixes, fp); + + if (rc != 0) + kbd_error(EXIT_FAILURE, 0, "unable to find file"); +-- +2.24.1 + diff --git a/external/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch b/external/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch new file mode 100644 index 00000000..8916fd9f --- /dev/null +++ b/external/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch @@ -0,0 +1,24 @@ +From dc6bf2ae0835c6569b270e8e1f26a3173f3927d9 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 4 Dec 2019 13:14:01 +0100 +Subject: [PATCH] analyze.l: add missing string format + +Upstream-Status: Submitted [https://github.com/legionus/kbd/pull/35] +Signed-off-by: Alexander Kanavin +--- + src/libkeymap/analyze.l | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libkeymap/analyze.l b/src/libkeymap/analyze.l +index e32ace6..de62f46 100644 +--- a/src/libkeymap/analyze.l ++++ b/src/libkeymap/analyze.l +@@ -463,7 +463,7 @@ To to|To|TO + + strerror_r(errno, buf, sizeof(buf)); + +- ERR(yyextra, buf); ++ ERR(yyextra, "%s", buf); + return(ERROR); + } + diff --git a/external/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch b/external/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch new file mode 100644 index 00000000..37220960 --- /dev/null +++ b/external/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch @@ -0,0 +1,25 @@ +We need to ensure our CFLAGS are preserved as well as whatever tweak configure +tries to make. Without these, the debug prefix changes get lost and we lose +build reproducibility, likely with other side effects. + +Signed-off-by: Richard Purdie +Upstream-Status: Pending +2020/1/27 + +Index: kbd-2.2.0/configure.ac +=================================================================== +--- kbd-2.2.0.orig/configure.ac ++++ kbd-2.2.0/configure.ac +@@ -72,9 +72,9 @@ if test "$enable_code_coverage" = yes; t + fi + + case "$GCC,$ac_cv_prog_cc_g" in +- yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE" ;; +- yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE" ;; +- ,yes) CFLAGS="-g" ;; ++ yes,yes) CFLAGS="-g $CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;; ++ yes,) CFLAGS="$CC_O_LEVEL $FORTIFY_SOURCE $CFLAGS" ;; ++ ,yes) CFLAGS="-g $CFLAGS" ;; + esac + + CC_CHECK_CFLAGS_APPEND([\ diff --git a/external/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch b/external/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch index a9a3ab8a..4b1e5b8e 100644 --- a/external/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch +++ b/external/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch @@ -1,3 +1,8 @@ +From cb3af8fb072f8999dbb5160bdc95a102b02fd37a Mon Sep 17 00:00:00 2001 +From: Kai Kang +Date: Fri, 30 Sep 2016 16:49:55 +0800 +Subject: [PATCH] kbd: create ptest sub-package + Upstream-Status: Inappropriate [embedded specific] kbd is out of source built, then the value of $(srcdir) is relative path of @@ -13,38 +18,61 @@ run as expected. Signed-off-by: Kai Kang -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 \ +--- + tests/Makefile.am | 4 ++-- + tests/alt-is-meta.in | 2 +- + tests/dumpkeys-bkeymap.in | 4 ++-- + tests/dumpkeys-fulltable.in | 2 +- + tests/dumpkeys-mktable.in | 4 ++-- + 5 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 8d0ab69..5147c28 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -7,8 +7,8 @@ AM_CPPFLAGS = \ -I$(builddir)/../src/libkeymap \ -- -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" + -I$(srcdir)/../src/libkbdfile \ + -I$(builddir)/../src/libkbdfile \ +- -DDATADIR=\"$(srcdir)\" \ +- -DABS_DATADIR=\"$(realpath $(srcdir))\" \ ++ -DDATADIR=\".\" \ ++ -DABS_DATADIR=\"/usr/lib/kbd/ptest/tests\" \ + -DBUILDDIR=\"$(builddir)\" + + AM_CFLAGS = $(CHECK_CFLAGS) $(CODE_COVERAGE_CFLAGS) +diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in +index 3a1441f..d829f2e 100755 +--- a/tests/alt-is-meta.in ++++ b/tests/alt-is-meta.in +@@ -7,7 +7,7 @@ cd "$cwd" rc=0 temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" --./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=$? +-datadir="@DATADIR@/data/alt-is-meta" ++datadir="./data/alt-is-meta" + + ./libkeymap-showmaps "$datadir"/alt-is-meta.map > "$temp" || rc=$? + cmp -s "$datadir/alt-is-meta.output" "$temp" || rc=$? +diff --git a/tests/dumpkeys-bkeymap.in b/tests/dumpkeys-bkeymap.in +index 03d4ca2..d1d0e26 100755 +--- a/tests/dumpkeys-bkeymap.in ++++ b/tests/dumpkeys-bkeymap.in +@@ -9,8 +9,8 @@ temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" + + datadir="@DATADIR@" + +-./libkeymap-bkeymap "$datadir/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? +-cmp -s "$datadir/data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$? ++./libkeymap-bkeymap ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? ++cmp -s "./data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$? if [ "$rc" != 0 ]; then printf 'failed\n' -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 +diff --git a/tests/dumpkeys-fulltable.in b/tests/dumpkeys-fulltable.in +index a3a5ece..67a73ef 100755 +--- a/tests/dumpkeys-fulltable.in ++++ b/tests/dumpkeys-fulltable.in @@ -5,7 +5,7 @@ cwd="$(readlink -ev "${0%/*}")" cd "$cwd" @@ -54,3 +82,18 @@ Index: kbd-2.0.4/tests/dumpkeys-fulltable.in check_keymap() { local kmap temp rc +diff --git a/tests/dumpkeys-mktable.in b/tests/dumpkeys-mktable.in +index 0f17c40..7e5161d 100755 +--- a/tests/dumpkeys-mktable.in ++++ b/tests/dumpkeys-mktable.in +@@ -7,8 +7,8 @@ cd "$cwd" + rc=0 + temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" + +-./libkeymap-mktable "@DATADIR@/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? +-cmp -s "@DATADIR@/data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$? ++./libkeymap-mktable ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? ++cmp -s "./data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$? + + if [ "$rc" != 0 ]; then + printf 'failed\n' diff --git a/external/poky/meta/recipes-core/kbd/kbd_2.0.4.bb b/external/poky/meta/recipes-core/kbd/kbd_2.0.4.bb deleted file mode 100644 index 4af3256f..00000000 --- a/external/poky/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/external/poky/meta/recipes-core/kbd/kbd_2.2.0.bb b/external/poky/meta/recipes-core/kbd/kbd_2.2.0.bb new file mode 100644 index 00000000..e5700ff5 --- /dev/null +++ b/external/poky/meta/recipes-core/kbd/kbd_2.2.0.bb @@ -0,0 +1,72 @@ +SUMMARY = "Keytable files and keyboard utilities" +HOMEPAGE = "http://www.kbd-project.org/" +# everything minus console-fonts is GPLv2+ +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" + +inherit autotools gettext ptest pkgconfig + +DEPENDS += "flex-native" + +RREPLACES_${PN} = "console-tools" +RPROVIDES_${PN} = "console-tools" +RCONFLICTS_${PN} = "console-tools" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \ + file://run-ptest \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://set-proper-path-of-resources.patch', '', d)} \ + file://0001-analyze.l-add-missing-string-format.patch \ + file://0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch \ + file://fix_cflags.patch \ + " + +SRC_URI[md5sum] = "d1d7ae0b5fb875dc082731e09cd0c8bc" +SRC_URI[sha256sum] = "21a1bc5f6fb3b18ce9fdd717e4533368060a3182a39c7155eaf7ec0f5f83e9f7" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests','', d)} \ + " + +PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam," +PACKAGECONFIG[tests] = "--enable-tests, --disable-tests, libcheck" + +do_compile_ptest() { + oe_runmake -C ${B}/tests alt-is-meta dumpkeys-bkeymap dumpkeys-fulltable dumpkeys-mktable +} + +do_install_ptest() { + install -D ${B}/tests/Makefile ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ + -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \ + -e 's:${DEBUG_PREFIX_MAP}::g' \ + -e 's:${HOSTTOOLS_DIR}/::g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + -e 's:${RECIPE_SYSROOT}::g' \ + -e 's:${S}/config/missing::g' \ + -e 's:${WORKDIR}::g' \ + -e '/^lib.*_SOURCES =/d' -e '/$(EXEEXT):/,/^$/d' ${D}${PTEST_PATH}/tests/Makefile + + find ${B}/tests -executable -exec install {} ${D}${PTEST_PATH}/tests \; + cp -rf ${S}/tests/data ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/findfile ${D}${PTEST_PATH}/tests + cp -rf ${S}/data ${D}${PTEST_PATH} + + install -D -m 755 ${S}/config/test-driver ${D}${PTEST_PATH}/config/test-driver +} + +PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans" + +FILES_${PN}-consolefonts = "${datadir}/consolefonts" +FILES_${PN}-consoletrans = "${datadir}/consoletrans" +FILES_${PN}-keymaps = "${datadir}/keymaps" +FILES_${PN}-unimaps = "${datadir}/unimaps" + +RDEPENDS_${PN}-ptest = "make" + +inherit update-alternatives + +ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'vlock','', d)}" +ALTERNATIVE_PRIORITY = "100" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb b/external/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb new file mode 100644 index 00000000..ba74eb1f --- /dev/null +++ b/external/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb @@ -0,0 +1,18 @@ +# +# This provides libcrypto.so.1 which contains obsolete APIs, needed for uninative in particular +# + +require libxcrypt.inc + +PROVIDES = "" +AUTO_LIBNAME_PKGS = "" +EXCLUDE_FROM_WORLD = "1" + +API = "--enable-obsolete-api" + +do_install_append () { + rm -rf ${D}${includedir} + rm -rf ${D}${libdir}/pkgconfig + rm -rf ${D}${datadir} +} + diff --git a/external/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/external/poky/meta/recipes-core/libxcrypt/libxcrypt.inc new file mode 100644 index 00000000..2d2a0b03 --- /dev/null +++ b/external/poky/meta/recipes-core/libxcrypt/libxcrypt.inc @@ -0,0 +1,33 @@ +SUMMARY = "Extended cryptographic library (from glibc)" +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 \ +" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}" +SRCREV = "823437d015cd4ab4d100ed205f218681b03ae45c" +SRCBRANCH ?= "develop" + +PROVIDES = "virtual/crypt" + +FILES_${PN} = "${libdir}/libcrypt*.so.* \ + ${libdir}/libcrypt-*.so \ + ${libdir}/libowcrypt*.so.* \ + ${libdir}/libowcrypt-*.so \ +" + +S = "${WORKDIR}/git" + +BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" +TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error" +CPPFLAGS_append_class-nativesdk = " -Wno-error" + +API = "--disable-obsolete-api" +EXTRA_OECONF += "${API}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.1.1.bb b/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.1.1.bb deleted file mode 100644 index 465aa965..00000000 --- a/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.1.1.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Extended cryptographic library (from glibc)" -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=cb3ca4cabd2447a37bf186fad6f79852 \ - file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ -" - -inherit autotools pkgconfig - -SRCREV ?= "21b455b68baad279e6a3936faced16c5e5634376" -SRCBRANCH ?= "develop" - -SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH} \ - " - -PROVIDES = "virtual/crypt" - -FILES_${PN} = "${libdir}/libcrypt*.so.* ${libdir}/libcrypt-*.so ${libdir}/libowcrypt*.so.* ${libdir}/libowcrypt-*.so" - -S = "${WORKDIR}/git" - -BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE} -std=gnu99" -TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}" - -BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb b/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb new file mode 100644 index 00000000..79dba2f6 --- /dev/null +++ b/external/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb @@ -0,0 +1,2 @@ +require libxcrypt.inc + diff --git a/external/poky/meta/recipes-core/libxml/libxml2/0001-Fix-infinite-loop-in-LZMA-decompression.patch b/external/poky/meta/recipes-core/libxml/libxml2/0001-Fix-infinite-loop-in-LZMA-decompression.patch deleted file mode 100644 index 16c22957..00000000 --- a/external/poky/meta/recipes-core/libxml/libxml2/0001-Fix-infinite-loop-in-LZMA-decompression.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 28a9dc642ffd759df1e48be247a114f440a6c16e Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Mon, 30 Jul 2018 13:14:11 +0200 -Subject: [PATCH] Fix infinite loop in LZMA decompression -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Check the liblzma error code more thoroughly to avoid infinite loops. - -Closes: https://gitlab.gnome.org/GNOME/libxml2/issues/13 -Closes: https://bugzilla.gnome.org/show_bug.cgi?id=794914 - -This is CVE-2018-9251 and CVE-2018-14567. - -Thanks to Dongliang Mu and Simon Wörner for the reports. - -CVE: CVE-2018-9251 -CVE: CVE-2018-14567 -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/2240fbf5912054af025fb6e01e26375100275e74] -Signed-off-by: Hongxu Jia ---- - xzlib.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/xzlib.c b/xzlib.c -index a839169..0ba88cf 100644 ---- a/xzlib.c -+++ b/xzlib.c -@@ -562,6 +562,10 @@ xz_decomp(xz_statep state) - "internal error: inflate stream corrupt"); - return -1; - } -+ /* -+ * FIXME: Remapping a couple of error codes and falling through -+ * to the LZMA error handling looks fragile. -+ */ - if (ret == Z_MEM_ERROR) - ret = LZMA_MEM_ERROR; - if (ret == Z_DATA_ERROR) -@@ -587,6 +591,11 @@ xz_decomp(xz_statep state) - xz_error(state, LZMA_PROG_ERROR, "compression error"); - return -1; - } -+ if ((state->how != GZIP) && -+ (ret != LZMA_OK) && (ret != LZMA_STREAM_END)) { -+ xz_error(state, ret, "lzma error"); -+ return -1; -+ } - } while (strm->avail_out && ret != LZMA_STREAM_END); - - /* update available output and crc check value */ --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch b/external/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch index 2b92dbc8..5e9a0a50 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch +++ b/external/poky/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 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 + --- 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/external/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch b/external/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch new file mode 100644 index 00000000..88eb65a6 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Lee Chee Yang +--- + 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/external/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch b/external/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch new file mode 100644 index 00000000..facfefd3 --- /dev/null +++ b/external/poky/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 +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 + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/0e1a49c89076] +CVE: CVE-2020-7595 +Signed-off-by: Anuj Mittal +--- + 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/external/poky/meta/recipes-core/libxml/libxml2/fix-CVE-2017-8872.patch b/external/poky/meta/recipes-core/libxml/libxml2/fix-CVE-2017-8872.patch deleted file mode 100644 index 42a4b0ed..00000000 --- a/external/poky/meta/recipes-core/libxml/libxml2/fix-CVE-2017-8872.patch +++ /dev/null @@ -1,65 +0,0 @@ -Upstream-Status: Backport -CVE: CVE-2017-8872 -Signed-off-by: Ross Burton - -From 123234f2cfcd9e9b9f83047eee1dc17b4c3f4407 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Tue, 11 Sep 2018 14:52:07 +0200 -Subject: [PATCH] Free input buffer in xmlHaltParser - -This avoids miscalculation of available bytes. - -Thanks to Yunho Kim for the report. - -Closes: #26 ---- - parser.c | 5 +++++ - result/errors/759573.xml.err | 17 +++++++---------- - 2 files changed, 12 insertions(+), 10 deletions(-) - -diff --git a/parser.c b/parser.c -index ca9fde2c..5813a664 100644 ---- a/parser.c -+++ b/parser.c -@@ -12462,7 +12462,12 @@ xmlHaltParser(xmlParserCtxtPtr ctxt) { - ctxt->input->free((xmlChar *) ctxt->input->base); - ctxt->input->free = NULL; - } -+ if (ctxt->input->buf != NULL) { -+ xmlFreeParserInputBuffer(ctxt->input->buf); -+ ctxt->input->buf = NULL; -+ } - ctxt->input->cur = BAD_CAST""; -+ ctxt->input->length = 0; - ctxt->input->base = ctxt->input->cur; - ctxt->input->end = ctxt->input->cur; - } -diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err -index 554039f6..38ef5c40 100644 ---- a/result/errors/759573.xml.err -+++ b/result/errors/759573.xml.err -@@ -21,14 +21,11 @@ Entity: line 1: - ^ - ./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration - -- - -diff --git a/xpath.c b/xpath.c -index f440696..75cac5c 100644 ---- a/xpath.c -+++ b/xpath.c -@@ -13297,9 +13297,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) - return(0); - } - xmlXPathBooleanFunction(ctxt, 1); -- arg1 = valuePop(ctxt); -- arg1->boolval &= arg2->boolval; -- valuePush(ctxt, arg1); -+ if (ctxt->value != NULL) -+ ctxt->value->boolval &= arg2->boolval; - xmlXPathReleaseObject(ctxt->context, arg2); - return (total); - case XPATH_OP_OR: -@@ -13323,9 +13322,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) - return(0); - } - xmlXPathBooleanFunction(ctxt, 1); -- arg1 = valuePop(ctxt); -- arg1->boolval |= arg2->boolval; -- valuePush(ctxt, arg1); -+ if (ctxt->value != NULL) -+ ctxt->value->boolval |= arg2->boolval; - xmlXPathReleaseObject(ctxt->context, arg2); - return (total); - case XPATH_OP_EQUAL: diff --git a/external/poky/meta/recipes-core/libxml/libxml2/fix-execution-of-ptests.patch b/external/poky/meta/recipes-core/libxml/libxml2/fix-execution-of-ptests.patch index 51a9e193..ad719d4f 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/fix-execution-of-ptests.patch +++ b/external/poky/meta/recipes-core/libxml/libxml2/fix-execution-of-ptests.patch @@ -1,14 +1,23 @@ -Make sure that Makefile doesn't try to compile these tests again -on the target where the source dependencies won't be available. +From 395c0f53ec226aaabedb166e6b3a7f8590b95a5f Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 11 May 2019 20:39:15 +0800 +Subject: [PATCH] Make sure that Makefile doesn't try to compile these tests + again on the target where the source dependencies won't be available. Upstream-Status: Inappropriate [cross-compile specific] Signed-off-by: Anuj Mittal -Index: libxml2-2.9.7/Makefile.am -=================================================================== ---- libxml2-2.9.7.orig/Makefile.am -+++ libxml2-2.9.7/Makefile.am +Rebase to 2.9.9 +Signed-off-by: Hongxu Jia +--- + Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 8f4e43d..5edb930 100644 +--- a/Makefile.am ++++ b/Makefile.am @@ -211,8 +211,7 @@ install-ptest: sed -i -e 's|^Makefile:|_Makefile:|' $(DESTDIR)/Makefile $(MAKE) -C python install-ptest @@ -19,3 +28,6 @@ Index: libxml2-2.9.7/Makefile.am [ -d test ] || $(LN_S) $(srcdir)/test . [ -d result ] || $(LN_S) $(srcdir)/result . $(CHECKER) ./runtest$(EXEEXT) && \ +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch b/external/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch index 1147017b..fd8e469d 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch +++ b/external/poky/meta/recipes-core/libxml/libxml2/libxml-64bit.patch @@ -1,14 +1,19 @@ -Upstream-Status: Backport [from debian: bugs.debian.org/439843] +From 056b14345b1abd76a761ab14538f1bc21302781a Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 11 May 2019 20:26:51 +0800 +Subject: [PATCH] libxml 64bit +Upstream-Status: Backport [from debian: bugs.debian.org/439843] +Signed-off-by: Hongxu Jia --- - libxml.h | 3 +++ + libxml.h | 3 +++ 1 file changed, 3 insertions(+) ---- libxml2-2.6.29.orig/libxml.h -+++ libxml2-2.6.29/libxml.h -@@ -11,10 +11,13 @@ - - #ifndef NO_LARGEFILE_SOURCE +diff --git a/libxml.h b/libxml.h +index 64e30f7..4e80d90 100644 +--- a/libxml.h ++++ b/libxml.h +@@ -15,6 +15,9 @@ #ifndef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE #endif @@ -18,5 +23,6 @@ Upstream-Status: Backport [from debian: bugs.debian.org/439843] #ifndef _FILE_OFFSET_BITS #define _FILE_OFFSET_BITS 64 #endif - #endif - +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch b/external/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch index d9ed1516..e6998f6e 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch +++ b/external/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch @@ -1,11 +1,20 @@ -AM_PATH_XML2 uses xml-config which we disable through +From 43edc9a445ed66cceb7533eadeef242940b4592c Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 11 May 2019 20:37:12 +0800 +Subject: [PATCH] AM_PATH_XML2 uses xml-config which we disable through binconfig-disabled.bbclass, so port it to use pkg-config instead. Upstream-Status: Pending Signed-off-by: Ross Burton +Rebase to 2.9.9 +Signed-off-by: Hongxu Jia +--- + libxml.m4 | 186 ++------------------------------------------------------------ + 1 file changed, 5 insertions(+), 181 deletions(-) + diff --git a/libxml.m4 b/libxml.m4 -index 68cd824..5fa0a9b 100644 +index 2d7a6f5..1c53585 100644 --- a/libxml.m4 +++ b/libxml.m4 @@ -1,188 +1,12 @@ @@ -202,3 +211,6 @@ index 68cd824..5fa0a9b 100644 - AC_SUBST(XML_LIBS) - rm -f conf.xmltest ]) +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/libxml/libxml2/python-sitepackages-dir.patch b/external/poky/meta/recipes-core/libxml/libxml2/python-sitepackages-dir.patch index e83c8325..956ff3f3 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/python-sitepackages-dir.patch +++ b/external/poky/meta/recipes-core/libxml/libxml2/python-sitepackages-dir.patch @@ -1,4 +1,7 @@ -Allow us to pass in PYTHON_SITE_PACKAGES +From b038c3452667ed17ddb0e791cd7bdc7f8774ac29 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Sat, 11 May 2019 20:35:20 +0800 +Subject: [PATCH] Allow us to pass in PYTHON_SITE_PACKAGES The python binary used when building for nativesdk doesn't give us the correct path here so we need to be able to specify it ourselves. @@ -6,16 +9,18 @@ correct path here so we need to be able to specify it ourselves. Upstream-Status: Inappropriate [config] Signed-off-by: Paul Eggleton -Rebase to 2.9.2 +Rebase to 2.9.9 + Signed-off-by: Hongxu Jia --- configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac +index ca911f3..3bbd654 100644 --- a/configure.ac +++ b/configure.ac -@@ -813,7 +813,8 @@ dnl +@@ -808,7 +808,8 @@ dnl PYTHON_VERSION= PYTHON_INCLUDES= @@ -26,5 +31,5 @@ diff --git a/configure.ac b/configure.ac pythondir= if test "$with_python" != "no" ; then -- -1.9.1 +2.7.4 diff --git a/external/poky/meta/recipes-core/libxml/libxml2/runtest.patch b/external/poky/meta/recipes-core/libxml/libxml2/runtest.patch index 544dc058..0dbb353c 100644 --- a/external/poky/meta/recipes-core/libxml/libxml2/runtest.patch +++ b/external/poky/meta/recipes-core/libxml/libxml2/runtest.patch @@ -1,14 +1,28 @@ -Add 'install-ptest' rule. -Print a standard result line for each test. +Add 'install-ptest' rule. Print a standard result line for +each test. Signed-off-by: Mihaela Sendrea Signed-off-by: Andrej Valek Upstream-Status: Backport -diff -uNr a/Makefile.am b/Makefile.am ---- a/Makefile.am 2017-12-02 09:58:10.000000000 +0100 -+++ b/Makefile.am 2018-03-20 08:27:34.360505864 +0100 -@@ -202,6 +202,15 @@ +Signed-off-by: Hongxu Jia +--- + Makefile.am | 9 ++++ + runsuite.c | 1 + + runtest.c | 2 + + runxmlconf.c | 1 + + testapi.c | 122 ++++++++++++++++++++++++++++++--------------- + testchar.c | 156 +++++++++++++++++++++++++++++++++++++++++----------------- + testdict.c | 1 + + testlimits.c | 1 + + testrecurse.c | 2 + + 9 files changed, 210 insertions(+), 85 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 9c630be..7cfd04b 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -202,6 +202,15 @@ runxmlconf_LDADD= $(LDADDS) #testOOM_DEPENDENCIES = $(DEPS) #testOOM_LDADD= $(LDADDS) @@ -24,10 +38,11 @@ diff -uNr a/Makefile.am b/Makefile.am runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \ testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT) [ -d test ] || $(LN_S) $(srcdir)/test . -diff -uNr a/runsuite.c b/runsuite.c ---- a/runsuite.c 2016-06-07 12:04:14.000000000 +0200 -+++ b/runsuite.c 2018-03-20 08:27:57.478817247 +0100 -@@ -1162,6 +1162,7 @@ +diff --git a/runsuite.c b/runsuite.c +index aaab13e..9ba2c5d 100644 +--- a/runsuite.c ++++ b/runsuite.c +@@ -1162,6 +1162,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { if (logfile != NULL) fclose(logfile); @@ -35,20 +50,19 @@ diff -uNr a/runsuite.c b/runsuite.c return(ret); } #else /* !SCHEMAS */ -diff -uNr a/runtest.c b/runtest.c ---- a/runtest.c 2017-11-13 22:00:17.000000000 +0100 -+++ b/runtest.c 2018-03-20 08:28:50.859047551 +0100 -@@ -4496,7 +4496,8 @@ - } - +diff --git a/runtest.c b/runtest.c +index addda5c..8ba5d59 100644 +--- a/runtest.c ++++ b/runtest.c +@@ -4501,6 +4501,7 @@ launchTests(testDescPtr tst) { xmlCharEncCloseFunc(ebcdicHandler); -- -+ + xmlCharEncCloseFunc(eucJpHandler); + + printf("%s: %s\n", (err == 0) ? "PASS" : "FAIL", tst->desc); return(err); } -@@ -4573,6 +4574,7 @@ +@@ -4577,6 +4578,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { xmlCleanupParser(); xmlMemoryDump(); @@ -56,10 +70,11 @@ diff -uNr a/runtest.c b/runtest.c return(ret); } -diff -uNr a/runxmlconf.c b/runxmlconf.c ---- a/runxmlconf.c 2016-06-07 12:04:14.000000000 +0200 -+++ b/runxmlconf.c 2018-03-20 08:29:17.944862893 +0100 -@@ -595,6 +595,7 @@ +diff --git a/runxmlconf.c b/runxmlconf.c +index cef20f4..4f291fb 100644 +--- a/runxmlconf.c ++++ b/runxmlconf.c +@@ -595,6 +595,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { if (logfile != NULL) fclose(logfile); @@ -67,15 +82,15 @@ diff -uNr a/runxmlconf.c b/runxmlconf.c return(ret); } -diff -uNr a/testapi.c b/testapi.c ---- a/testapi.c 2018-01-25 07:39:15.000000000 +0100 -+++ b/testapi.c 2018-03-20 09:08:35.323980145 +0100 -@@ -1246,49 +1246,91 @@ +diff --git a/testapi.c b/testapi.c +index 4a751e2..7ccc066 100644 +--- a/testapi.c ++++ b/testapi.c +@@ -1246,49 +1246,91 @@ static int testlibxml2(void) { int test_ret = 0; -+ int ret = 0; - +- - test_ret += test_HTMLparser(); - test_ret += test_HTMLtree(); - test_ret += test_SAX2(); @@ -115,6 +130,8 @@ diff -uNr a/testapi.c b/testapi.c - test_ret += test_xpath(); - test_ret += test_xpathInternals(); - test_ret += test_xpointer(); ++ int ret = 0; ++ + test_ret += (ret = test_HTMLparser()); + printf("%s: HTMLparser\n", (ret == 0) ? "PASS" : "FAIL"); + test_ret += (ret = test_HTMLtree()); @@ -201,20 +218,11 @@ diff -uNr a/testapi.c b/testapi.c return(test_ret); } -diff -uNr a/testdict.c b/testdict.c ---- a/testdict.c 2016-06-07 12:04:14.000000000 +0200 -+++ b/testdict.c 2018-03-20 08:59:16.864275812 +0100 -@@ -440,5 +440,6 @@ - clean_strings(); - xmlCleanupParser(); - xmlMemoryDump(); -+ printf("%s: testdict\n\n", (ret == 0) ? "PASS" : "FAIL"); - return(ret); - } -diff -uNr a/testchar.c b/testchar.c ---- a/testchar.c 2016-06-07 12:04:14.000000000 +0200 -+++ b/testchar.c 2018-03-20 09:11:20.383573912 +0100 -@@ -23,7 +23,7 @@ +diff --git a/testchar.c b/testchar.c +index 0d08792..f555d3b 100644 +--- a/testchar.c ++++ b/testchar.c +@@ -23,7 +23,7 @@ static void errorHandler(void *unused, xmlErrorPtr err) { char document1[100] = "XXXX"; char document2[100] = ""; @@ -223,7 +231,7 @@ diff -uNr a/testchar.c b/testchar.c int len, char *data, int forbid1, int forbid2) { int i; xmlDocPtr res; -@@ -37,33 +37,41 @@ +@@ -37,33 +37,41 @@ static void testDocumentRangeByte1(xmlParserCtxtPtr ctxt, char *document, res = xmlReadMemory(document, len, "test", NULL, 0); if ((i == forbid1) || (i == forbid2)) { @@ -269,7 +277,7 @@ diff -uNr a/testchar.c b/testchar.c int len, char *data) { int i, j; xmlDocPtr res; -@@ -80,10 +88,12 @@ +@@ -80,10 +88,12 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, /* if first bit of first char is set, then second bit must too */ if ((i & 0x80) && ((i & 0x40) == 0)) { @@ -283,7 +291,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -91,10 +101,12 @@ +@@ -91,10 +101,12 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, * bits must be 10 */ else if ((i & 0x80) && ((j & 0xC0) != 0x80)) { @@ -297,7 +305,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -102,10 +114,12 @@ +@@ -102,10 +114,12 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, * than 0x80, i.e. one of bits 5 to 1 of i must be set */ else if ((i & 0x80) && ((i & 0x1E) == 0)) { @@ -311,7 +319,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -113,10 +127,12 @@ +@@ -113,10 +127,12 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, * at least 3 bytes, but we give only 2 ! */ else if ((i & 0xE0) == 0xE0) { @@ -325,7 +333,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -125,11 +141,13 @@ +@@ -125,11 +141,13 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, else if ((lastError != 0) || (res == NULL)) { fprintf(stderr, "Failed to parse document for Bytes 0x%02X 0x%02X\n", i, j); @@ -339,7 +347,7 @@ diff -uNr a/testchar.c b/testchar.c } /** -@@ -141,9 +159,10 @@ +@@ -141,9 +159,10 @@ static void testDocumentRangeByte2(xmlParserCtxtPtr ctxt, char *document, * CDATA in text or in attribute values. */ @@ -351,7 +359,7 @@ diff -uNr a/testchar.c b/testchar.c /* * Set up a parsing context using the first document as -@@ -152,7 +171,7 @@ +@@ -152,7 +171,7 @@ static void testDocumentRanges(void) { ctxt = xmlNewParserCtxt(); if (ctxt == NULL) { fprintf(stderr, "Failed to allocate parser context\n"); @@ -360,7 +368,7 @@ diff -uNr a/testchar.c b/testchar.c } printf("testing 1 byte char in document: 1"); -@@ -163,7 +182,7 @@ +@@ -163,7 +182,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 1 byte injection at beginning of area */ @@ -369,7 +377,7 @@ diff -uNr a/testchar.c b/testchar.c data, -1, -1); printf(" 2"); fflush(stdout); -@@ -172,7 +191,7 @@ +@@ -172,7 +191,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 1 byte injection at end of area */ @@ -378,7 +386,7 @@ diff -uNr a/testchar.c b/testchar.c data + 3, -1, -1); printf(" 3"); -@@ -183,7 +202,7 @@ +@@ -183,7 +202,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 1 byte injection at beginning of area */ @@ -387,7 +395,7 @@ diff -uNr a/testchar.c b/testchar.c data, '\'', -1); printf(" 4"); fflush(stdout); -@@ -192,7 +211,7 @@ +@@ -192,7 +211,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 1 byte injection at end of area */ @@ -396,7 +404,7 @@ diff -uNr a/testchar.c b/testchar.c data + 3, '\'', -1); printf(" done\n"); -@@ -204,7 +223,7 @@ +@@ -204,7 +223,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 2 byte injection at beginning of area */ @@ -405,7 +413,7 @@ diff -uNr a/testchar.c b/testchar.c data); printf(" 2"); fflush(stdout); -@@ -213,7 +232,7 @@ +@@ -213,7 +232,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 2 byte injection at end of area */ @@ -414,7 +422,7 @@ diff -uNr a/testchar.c b/testchar.c data + 2); printf(" 3"); -@@ -224,7 +243,7 @@ +@@ -224,7 +243,7 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 2 byte injection at beginning of area */ @@ -423,7 +431,7 @@ diff -uNr a/testchar.c b/testchar.c data); printf(" 4"); fflush(stdout); -@@ -233,14 +252,15 @@ +@@ -233,14 +252,15 @@ static void testDocumentRanges(void) { data[2] = ' '; data[3] = ' '; /* test 2 byte injection at end of area */ @@ -441,7 +449,7 @@ diff -uNr a/testchar.c b/testchar.c int i = 0; int len, c; -@@ -255,19 +275,25 @@ +@@ -255,19 +275,25 @@ static void testCharRangeByte1(xmlParserCtxtPtr ctxt, char *data) { c = xmlCurrentChar(ctxt, &len); if ((i == 0) || (i >= 0x80)) { /* we must see an error there */ @@ -470,7 +478,7 @@ diff -uNr a/testchar.c b/testchar.c int i, j; int len, c; -@@ -284,10 +310,12 @@ +@@ -284,10 +310,12 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { /* if first bit of first char is set, then second bit must too */ if ((i & 0x80) && ((i & 0x40) == 0)) { @@ -484,7 +492,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -295,10 +323,12 @@ +@@ -295,10 +323,12 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { * bits must be 10 */ else if ((i & 0x80) && ((j & 0xC0) != 0x80)) { @@ -498,7 +506,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -306,10 +336,12 @@ +@@ -306,10 +336,12 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { * than 0x80, i.e. one of bits 5 to 1 of i must be set */ else if ((i & 0x80) && ((i & 0x1E) == 0)) { @@ -512,7 +520,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -317,10 +349,12 @@ +@@ -317,10 +349,12 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { * at least 3 bytes, but we give only 2 ! */ else if ((i & 0xE0) == 0xE0) { @@ -526,7 +534,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -329,6 +363,7 @@ +@@ -329,6 +363,7 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { else if ((lastError != 0) || (len != 2)) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X\n", i, j); @@ -534,7 +542,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -338,12 +373,14 @@ +@@ -338,12 +373,14 @@ static void testCharRangeByte2(xmlParserCtxtPtr ctxt, char *data) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X: expect %d got %d\n", i, j, ((j & 0x3F) + ((i & 0x1F) << 6)), c); @@ -550,7 +558,7 @@ diff -uNr a/testchar.c b/testchar.c int i, j, k, K; int len, c; unsigned char lows[6] = {0, 0x80, 0x81, 0xC1, 0xFF, 0xBF}; -@@ -368,20 +405,24 @@ +@@ -368,20 +405,24 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { * at least 4 bytes, but we give only 3 ! */ if ((i & 0xF0) == 0xF0) { @@ -577,7 +585,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -390,10 +431,12 @@ +@@ -390,10 +431,12 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { * the 6th byte of data[1] must be set */ else if (((i & 0xF) == 0) && ((j & 0x20) == 0)) { @@ -591,7 +599,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -401,10 +444,12 @@ +@@ -401,10 +444,12 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { */ else if (((value > 0xD7FF) && (value <0xE000)) || ((value > 0xFFFD) && (value <0x10000))) { @@ -605,7 +613,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -414,6 +459,7 @@ +@@ -414,6 +459,7 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X\n", i, j, K); @@ -613,7 +621,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -423,13 +469,15 @@ +@@ -423,13 +469,15 @@ static void testCharRangeByte3(xmlParserCtxtPtr ctxt, char *data) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X: expect %d got %d\n", i, j, data[2], value, c); @@ -630,7 +638,7 @@ diff -uNr a/testchar.c b/testchar.c int i, j, k, K, l, L; int len, c; unsigned char lows[6] = {0, 0x80, 0x81, 0xC1, 0xFF, 0xBF}; -@@ -458,10 +506,12 @@ +@@ -458,10 +506,12 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * at least 5 bytes, but we give only 4 ! */ if ((i & 0xF8) == 0xF8) { @@ -644,7 +652,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -469,10 +519,12 @@ +@@ -469,10 +519,12 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { */ else if (((j & 0xC0) != 0x80) || ((K & 0xC0) != 0x80) || ((L & 0xC0) != 0x80)) { @@ -658,7 +666,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -481,10 +533,12 @@ +@@ -481,10 +533,12 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * the 6 or 5th byte of j must be set */ else if (((i & 0x7) == 0) && ((j & 0x30) == 0)) { @@ -672,7 +680,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -493,10 +547,12 @@ +@@ -493,10 +547,12 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { else if (((value > 0xD7FF) && (value <0xE000)) || ((value > 0xFFFD) && (value <0x10000)) || (value > 0x10FFFF)) { @@ -686,7 +694,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -506,6 +562,7 @@ +@@ -506,6 +562,7 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X\n", i, j, K); @@ -694,7 +702,7 @@ diff -uNr a/testchar.c b/testchar.c } /* -@@ -515,11 +572,13 @@ +@@ -515,11 +572,13 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { fprintf(stderr, "Failed to parse char for Bytes 0x%02X 0x%02X 0x%02X: expect %d got %d\n", i, j, data[2], value, c); @@ -708,7 +716,7 @@ diff -uNr a/testchar.c b/testchar.c } /** -@@ -530,11 +589,12 @@ +@@ -530,11 +589,12 @@ static void testCharRangeByte4(xmlParserCtxtPtr ctxt, char *data) { * cover the full range of UTF-8 chars accepted by XML-1.0 */ @@ -722,7 +730,7 @@ diff -uNr a/testchar.c b/testchar.c memset(data, 0, 5); -@@ -545,17 +605,19 @@ +@@ -545,17 +605,19 @@ static void testCharRanges(void) { ctxt = xmlNewParserCtxt(); if (ctxt == NULL) { fprintf(stderr, "Failed to allocate parser context\n"); @@ -743,7 +751,7 @@ diff -uNr a/testchar.c b/testchar.c goto error; } input->filename = NULL; -@@ -567,25 +629,28 @@ +@@ -567,25 +629,28 @@ static void testCharRanges(void) { printf("testing char range: 1"); fflush(stdout); @@ -776,7 +784,7 @@ diff -uNr a/testchar.c b/testchar.c /* * this initialize the library and check potential ABI mismatches * between the version it was compiled for and the actual shared -@@ -602,8 +667,9 @@ +@@ -602,8 +667,9 @@ int main(void) { /* * Run the tests */ @@ -788,20 +796,33 @@ diff -uNr a/testchar.c b/testchar.c /* * Cleanup function for the XML library. -diff -uNr a/testlimits.c b/testlimits.c ---- a/testlimits.c 2016-11-07 09:41:40.000000000 +0100 -+++ b/testlimits.c 2018-03-20 08:59:38.965581280 +0100 -@@ -1634,5 +1634,6 @@ +diff --git a/testdict.c b/testdict.c +index 40bebd0..114b934 100644 +--- a/testdict.c ++++ b/testdict.c +@@ -440,5 +440,6 @@ int main(void) + clean_strings(); + xmlCleanupParser(); + xmlMemoryDump(); ++ printf("%s: testdict\n\n", (ret == 0) ? "PASS" : "FAIL"); + return(ret); + } +diff --git a/testlimits.c b/testlimits.c +index 68c94db..1584434 100644 +--- a/testlimits.c ++++ b/testlimits.c +@@ -1634,5 +1634,6 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { xmlCleanupParser(); xmlMemoryDump(); + printf("%s: testlimits\n", (ret == 0) ? "PASS" : "FAIL"); return(ret); } -diff -uNr a/testrecurse.c b/testrecurse.c ---- a/testrecurse.c 2017-10-26 09:54:40.000000000 +0200 -+++ b/testrecurse.c 2018-03-20 09:00:46.781628749 +0100 -@@ -892,6 +892,7 @@ +diff --git a/testrecurse.c b/testrecurse.c +index f95ae1c..74c8f8b 100644 +--- a/testrecurse.c ++++ b/testrecurse.c +@@ -892,6 +892,7 @@ launchTests(testDescPtr tst) { err++; } } @@ -809,10 +830,13 @@ diff -uNr a/testrecurse.c b/testrecurse.c return(err); } -@@ -961,5 +962,6 @@ +@@ -961,5 +962,6 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) { xmlCleanupParser(); xmlMemoryDump(); + printf("%s: testrecurse\n\n", (ret == 0) ? "PASS" : "FAIL"); return(ret); } +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb b/external/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb new file mode 100644 index 00000000..097aceb2 --- /dev/null +++ b/external/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb @@ -0,0 +1,112 @@ +SUMMARY = "XML C Parser Library and Toolkit" +DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat." +HOMEPAGE = "http://www.xmlsoft.org/" +BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \ + file://hash.c;beginline=6;endline=15;md5=96f7296605eae807670fb08947829969 \ + file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \ + file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e" + +DEPENDS = "zlib virtual/libiconv" + +SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \ + http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \ + file://libxml-64bit.patch \ + file://runtest.patch \ + file://run-ptest \ + file://python-sitepackages-dir.patch \ + 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 \ + " + +SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5" +SRC_URI[libtar.sha256sum] = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f" +SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a" +SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7" + +BINCONFIG = "${bindir}/xml2-config" + +PACKAGECONFIG ??= "python \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +inherit autotools pkgconfig binconfig-disabled ptest features_check + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} + +RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}" + +RDEPENDS_${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}" + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-ebcdic-us \ + glibc-gconv-ibm1141 \ + glibc-gconv-iso8859-5 \ + glibc-gconv-euc-jp \ + locale-base-en-us \ + " + +export PYTHON_SITE_PACKAGES="${PYTHON_SITEPACKAGES_DIR}" + +# WARNING: zlib is required for RPM use +EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --without-docbook --with-c14n --without-lzma --with-fexceptions" +EXTRA_OECONF_class-native = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib" +EXTRA_OECONF_class-nativesdk = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib" +EXTRA_OECONF_linuxstdbase = "--with-debug --with-legacy --with-docbook --with-c14n --without-lzma --with-zlib" + +python populate_packages_prepend () { + # autonamer would call this libxml2-2, but we don't want that + if d.getVar('DEBIAN_NAMES'): + d.setVar('PKG_libxml2', '${MLPREFIX}libxml2') +} + +PACKAGE_BEFORE_PN += "${PN}-utils" +PACKAGES += "${PN}-python" + +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES_${PN}-dev += "${libdir}/xml2Conf.sh ${libdir}/cmake/*" +FILES_${PN}-utils = "${bindir}/*" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" + +do_configure_prepend () { + # executables take longer to package: these should not be executable + find ${S}/xmlconf/ -type f -exec chmod -x {} \+ +} + +do_compile_ptest() { + oe_runmake check-am +} + +do_install_ptest () { + cp -r ${S}/xmlconf ${D}${PTEST_PATH} + if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then + sed -i -e 's|^\(PYTHON = \).*|\1${USRBINPATH}/${PYTHON_PN}|' \ + ${D}${PTEST_PATH}/python/tests/Makefile + grep -lrZ '#!/usr/bin/python' ${D}${PTEST_PATH}/python | + xargs -0 sed -i -e 's|/usr/bin/python|${USRBINPATH}/${PYTHON_PN}|' + fi + #Remove build host references from various Makefiles + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i \ + -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ + -e '/^RELDATE/d' \ + {} + +} + +do_install_append_class-native () { + # Docs are not needed in the native case + rm ${D}${datadir}/gtk-doc -rf +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/libxml/libxml2_2.9.8.bb b/external/poky/meta/recipes-core/libxml/libxml2_2.9.8.bb deleted file mode 100644 index 740bf56a..00000000 --- a/external/poky/meta/recipes-core/libxml/libxml2_2.9.8.bb +++ /dev/null @@ -1,113 +0,0 @@ -SUMMARY = "XML C Parser Library and Toolkit" -DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat." -HOMEPAGE = "http://www.xmlsoft.org/" -BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \ - file://hash.c;beginline=6;endline=15;md5=96f7296605eae807670fb08947829969 \ - file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \ - file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e" - -DEPENDS = "zlib virtual/libiconv" - -SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \ - http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \ - file://libxml-64bit.patch \ - file://runtest.patch \ - file://run-ptest \ - file://python-sitepackages-dir.patch \ - 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://fix-CVE-2017-8872.patch \ - file://fix-CVE-2018-14404.patch \ - file://0001-Fix-infinite-loop-in-LZMA-decompression.patch \ - " - -SRC_URI[libtar.md5sum] = "b786e353e2aa1b872d70d5d1ca0c740d" -SRC_URI[libtar.sha256sum] = "0b74e51595654f958148759cfef0993114ddccccbb6f31aee018f3558e8e2732" -SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a" -SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7" - -BINCONFIG = "${bindir}/xml2-config" - -PACKAGECONFIG ??= "python \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -inherit autotools pkgconfig binconfig-disabled ptest - -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)} - -RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}" - -RDEPENDS_${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}" - -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-ebcdic-us \ - glibc-gconv-ibm1141 \ - glibc-gconv-iso8859-5 \ - glibc-gconv-euc-jp \ - locale-base-en-us \ - " - -export PYTHON_SITE_PACKAGES="${PYTHON_SITEPACKAGES_DIR}" - -# WARNING: zlib is required for RPM use -EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --without-docbook --with-c14n --without-lzma --with-fexceptions" -EXTRA_OECONF_class-native = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib" -EXTRA_OECONF_class-nativesdk = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib" -EXTRA_OECONF_linuxstdbase = "--with-debug --with-legacy --with-docbook --with-c14n --without-lzma --with-zlib" - -python populate_packages_prepend () { - # autonamer would call this libxml2-2, but we don't want that - if d.getVar('DEBIAN_NAMES'): - d.setVar('PKG_libxml2', '${MLPREFIX}libxml2') -} - -PACKAGE_BEFORE_PN += "${PN}-utils" -PACKAGES += "${PN}-python" - -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += "${libdir}/xml2Conf.sh ${libdir}/cmake/*" -FILES_${PN}-utils = "${bindir}/*" -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" - -do_configure_prepend () { - # executables take longer to package: these should not be executable - find ${S}/xmlconf/ -type f -exec chmod -x {} \+ -} - -do_compile_ptest() { - oe_runmake check-am -} - -do_install_ptest () { - cp -r ${S}/xmlconf ${D}${PTEST_PATH} - if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then - sed -i -e 's|^\(PYTHON = \).*|\1${USRBINPATH}/${PYTHON_PN}|' \ - ${D}${PTEST_PATH}/python/tests/Makefile - grep -lrZ '#!/usr/bin/python' ${D}${PTEST_PATH}/python | - xargs -0 sed -i -e 's|/usr/bin/python|${USRBINPATH}/${PYTHON_PN}|' - fi - #Remove build host references from various Makefiles - find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ - sed -i \ - -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:${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}::g' \ - -e '/^RELDATE/d' \ - {} + -} - -do_install_append_class-native () { - # Docs are not needed in the native case - rm ${D}${datadir}/gtk-doc -rf -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-core/meta/build-sysroots.bb b/external/poky/meta/recipes-core/meta/build-sysroots.bb index 7a712e2f..ad22a75e 100644 --- a/external/poky/meta/recipes-core/meta/build-sysroots.bb +++ b/external/poky/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/external/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb b/external/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb new file mode 100644 index 00000000..c32d0107 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/meta/buildtools-tarball.bb b/external/poky/meta/recipes-core/meta/buildtools-tarball.bb index 91df6f1a..edf67ce2 100644 --- a/external/poky/meta/recipes-core/meta/buildtools-tarball.bb +++ b/external/poky/meta/recipes-core/meta/buildtools-tarball.bb @@ -25,6 +25,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}" @@ -72,7 +74,13 @@ create_sdk_files_append () { toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script + echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script + echo 'export OPENSSL_CONF="${SDKPATHNATIVE}${sysconfdir}/ssl/openssl.cnf"' >>$script + mkdir -p ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/ + echo '${SDKPATHNATIVE}${libdir} +${SDKPATHNATIVE}${base_libdir} +include /etc/ld.so.conf' > ${SDK_OUTPUT}/${SDKPATHNATIVE}${sysconfdir}/ld.so.conf if [ "${SDKMACHINE}" = "i686" ]; then echo 'export NO32LIBS="0"' >>$script echo 'echo "$BB_ENV_EXTRAWHITE" | grep -q "NO32LIBS"' >>$script diff --git a/external/poky/meta/recipes-core/meta/cve-update-db-native.bb b/external/poky/meta/recipes-core/meta/cve-update-db-native.bb index db1d69a2..32d6dbdf 100644 --- a/external/poky/meta/recipes-core/meta/cve-update-db-native.bb +++ b/external/poky/meta/recipes-core/meta/cve-update-db-native.bb @@ -13,8 +13,15 @@ deltask do_install deltask do_populate_sysroot python () { - if not d.getVar("CVE_CHECK_DB_FILE"): + cve_check_db_file = d.getVar("CVE_CHECK_DB_FILE") + if not cve_check_db_file: raise bb.parse.SkipRecipe("Skip recipe when cve-check class is not loaded.") + + if os.path.exists("%s-journal" % cve_check_db_file ): + os.remove("%s-journal" % cve_check_db_file) + + if os.path.exists(cve_check_db_file): + os.remove(cve_check_db_file) } python do_populate_cve_db() { @@ -27,7 +34,7 @@ python do_populate_cve_db() { bb.utils.export_proxies(d) - BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-" + BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-" YEAR_START = 2002 db_file = d.getVar("CVE_CHECK_DB_FILE") @@ -59,7 +66,13 @@ python do_populate_cve_db() { json_url = year_url + ".json.gz" # Retrieve meta last modified date - response = urllib.request.urlopen(meta_url) + try: + response = urllib.request.urlopen(meta_url) + except urllib.error.URLError as e: + 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 + if response: for l in response.read().decode("utf-8").splitlines(): key, value = l.split(":", 1) @@ -122,9 +135,12 @@ def parse_node_and_insert(c, node, cveId): product = cpe23[4] version = cpe23[5] - if version != '*': + if version != '*' and version != '-': # Version is defined, this is a '=' match yield [cveId, vendor, product, version, '=', '', ''] + elif version == '-': + # no version information is available + yield [cveId, vendor, product, version, '', '', ''] else: # Parse start version, end version and operators op_start = '' @@ -160,15 +176,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 (?, ?, ?, ?, ?, ?)", diff --git a/external/poky/meta/recipes-core/meta/dummy-sdk-package.inc b/external/poky/meta/recipes-core/meta/dummy-sdk-package.inc index 4d653706..bedde296 100644 --- a/external/poky/meta/recipes-core/meta/dummy-sdk-package.inc +++ b/external/poky/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/external/poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb b/external/poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb index 235d6ecc..0df681ac 100644 --- a/external/poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb +++ b/external/poky/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/external/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb b/external/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb index 6a8748ac..cfa41c4a 100644 --- a/external/poky/meta/recipes-core/meta/nativesdk-buildtools-perl-dummy.bb +++ b/external/poky/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/external/poky/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb b/external/poky/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb index b891efa5..29f4dd36 100644 --- a/external/poky/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb +++ b/external/poky/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb @@ -1,10 +1,13 @@ DUMMYARCH = "sdk-provides-dummy-${SDKPKGSUFFIX}" +DUMMYPROVIDES_PACKAGES = "\ + pkgconfig \ +" + # Add /bin/sh? DUMMYPROVIDES = "\ /bin/bash \ /usr/bin/env \ - pkgconfig \ libGL.so()(64bit) \ libGL.so \ " diff --git a/external/poky/meta/recipes-core/meta/package-index.bb b/external/poky/meta/recipes-core/meta/package-index.bb index a4123b76..98c5bcb3 100644 --- a/external/poky/meta/recipes-core/meta/package-index.bb +++ b/external/poky/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/external/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/external/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb index 0160cb8e..e3beeb79 100644 --- a/external/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb +++ b/external/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb @@ -1,6 +1,6 @@ DUMMYARCH = "sdk-provides-dummy-target" -DUMMYPROVIDES = "\ +DUMMYPROVIDES_PACKAGES = "\ busybox \ busybox-dev \ busybox-src \ @@ -20,6 +20,7 @@ DUMMYPROVIDES = "\ libxml-parser-perl \ perl-module-bytes \ perl-module-carp \ + perl-module-config \ perl-module-constant \ perl-module-data-dumper \ perl-module-errno \ @@ -35,18 +36,26 @@ DUMMYPROVIDES = "\ perl-module-getopt-long \ perl-module-io-file \ perl-module-overload \ + perl-module-overloading \ perl-module-posix \ - perl-module-overload \ perl-module-thread-queue \ perl-module-threads \ perl-module-warnings \ + perl-module-warnings-register \ + pkgconfig \ + pkgconfig-dev \ + pkgconfig-src \ +" + +DUMMYPROVIDES = "\ /bin/sh \ /bin/bash \ /usr/bin/env \ /usr/bin/perl \ - pkgconfig \ - pkgconfig-dev \ - pkgconfig-src \ + libperl.so.5 \ + libperl.so.5()(64bit) \ " require dummy-sdk-package.inc + +SSTATE_DUPWHITELIST += "${PKGDATA_DIR}/${PN} ${PKGDATA_DIR}/runtime/${PN}" diff --git a/external/poky/meta/recipes-core/meta/uninative-tarball.bb b/external/poky/meta/recipes-core/meta/uninative-tarball.bb index e0cb9ffe..39638eb8 100644 --- a/external/poky/meta/recipes-core/meta/uninative-tarball.bb +++ b/external/poky/meta/recipes-core/meta/uninative-tarball.bb @@ -16,6 +16,7 @@ TOOLCHAIN_HOST_TASK = "\ nativesdk-glibc-gconv-libjis \ nativesdk-patchelf \ nativesdk-libxcrypt \ + nativesdk-libxcrypt-compat \ nativesdk-libnss-nis \ " @@ -57,7 +58,7 @@ fakeroot create_sdk_files() { } -fakeroot tar_sdk() { +fakeroot archive_sdk() { cd ${SDK_OUTPUT}/${SDKPATH} DEST="./${SDK_ARCH}-${SDK_OS}" @@ -65,5 +66,5 @@ fakeroot tar_sdk() { rm sysroots -rf patchelf --set-interpreter ${@''.join('a' for n in range(1024))} $DEST/usr/bin/patchelf mv $DEST/usr/bin/patchelf $DEST/usr/bin/patchelf-uninative - tar ${SDKTAROPTS} -c -j --file=${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . + ${SDK_ARCHIVE_CMD} } diff --git a/external/poky/meta/recipes-core/musl/libssp-nonshared.bb b/external/poky/meta/recipes-core/musl/libssp-nonshared.bb index 458eafef..bae8c81c 100644 --- a/external/poky/meta/recipes-core/musl/libssp-nonshared.bb +++ b/external/poky/meta/recipes-core/musl/libssp-nonshared.bb @@ -8,15 +8,10 @@ SECTION = "libs" SRC_URI = "file://ssp-local.c" -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" - INHIBIT_DEFAULT_DEPS = "1" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" - DEPENDS = "virtual/${TARGET_PREFIX}binutils \ - virtual/${TARGET_PREFIX}gcc-initial \ + virtual/${TARGET_PREFIX}gcc \ " do_configure[noexec] = "1" diff --git a/external/poky/meta/recipes-core/musl/libucontext_git.bb b/external/poky/meta/recipes-core/musl/libucontext_git.bb new file mode 100644 index 00000000..ec988f19 --- /dev/null +++ b/external/poky/meta/recipes-core/musl/libucontext_git.bb @@ -0,0 +1,63 @@ +# Copyright (C) 2019 Khem Raj +# 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' + 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/external/poky/meta/recipes-core/musl/musl-obstack.bb b/external/poky/meta/recipes-core/musl/musl-obstack.bb new file mode 100644 index 00000000..3003935f --- /dev/null +++ b/external/poky/meta/recipes-core/musl/musl-obstack.bb @@ -0,0 +1,22 @@ +# Copyright (C) 2019 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "A standalone library to implement GNU libc's obstack" +DESCRIPTION = "copy + paste of the obstack functions and macros found in GNU gcc libiberty library for use with musl libc" +HOMEPAGE = "https://github.com/pullmoll/musl-obstack" +LICENSE = "GPL-2.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=3d23e4eef8243efcaab6f0a438078932" +SECTION = "libs" + +PV = "1.1" +SRCREV = "d2ad66b0df44a4b784956f7f7f2717131ddc05f4" +SRC_URI = "git://github.com/pullmoll/musl-obstack" + +UPSTREAM_CHECK_COMMITS = "1" + +inherit autotools pkgconfig + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST = ".*-musl.*" + diff --git a/external/poky/meta/recipes-core/musl/musl.inc b/external/poky/meta/recipes-core/musl/musl.inc index 319709b3..bdce4121 100644 --- a/external/poky/meta/recipes-core/musl/musl.inc +++ b/external/poky/meta/recipes-core/musl/musl.inc @@ -9,16 +9,10 @@ standards-conformance and safety." HOMEPAGE = "http://www.musl-libc.org/" LICENSE = "MIT" SECTION = "libs" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8a4bb28f771c817fe57d3a7c4240e3aa" - -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01" INHIBIT_DEFAULT_DEPS = "1" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" - - FILES_SOLIBSDEV = "" FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}" INSANE_SKIP_${PN} = "dev-so" @@ -31,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/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch new file mode 100644 index 00000000..6a875a71 --- /dev/null +++ b/external/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch @@ -0,0 +1,61 @@ +From 5a2886f81dbca3f2ed28eebe7d27d471da278db8 Mon Sep 17 00:00:00 2001 +From: Serhey Popovych +Date: Tue, 11 Dec 2018 05:44:20 -0500 +Subject: [PATCH] ldso: Use syslibdir and libdir as default pathes to libdirs + +In absence of /etc/ld-musl-$(ARCH).path ldso uses default path to search +libraries /lib:/usr/local/lib:/usr/lib. + +However this path isn't relevant in case when library is put in dirs +like lib64 or libx32. + +Adjust CFLAGS_ALL to pass syslibdir as SYSLIBDIR and libdir as LIBDIR +preprocessor macroses to construct default ldso library search path +in ldso/dynlink.c::SYS_PATH_DFLT. + +Upstream-Status: Pending +Signed-off-by: Serhey Popovych +--- + Makefile | 3 ++- + 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 + CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc + + CFLAGS_ALL = $(CFLAGS_C99FSE) +-CFLAGS_ALL += -D_XOPEN_SOURCE=700 -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/include -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include ++CFLAGS_ALL += -D_XOPEN_SOURCE=700 -DSYSLIBDIR='"$(syslibdir)"' -DLIBDIR='"$(libdir)"' ++CFLAGS_ALL += -I$(srcdir)/arch/$(ARCH) -I$(srcdir)/arch/generic -Iobj/src/internal -I$(srcdir)/src/include -I$(srcdir)/src/internal -Iobj/include -I$(srcdir)/include + 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 @@ + #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) + sys_path = ""; + } + } +- if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib"; ++ if (!sys_path) sys_path = SYS_PATH_DFLT; + fd = path_open(name, sys_path, buf, sizeof buf); + } + pathname = buf; +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/musl/musl_git.bb b/external/poky/meta/recipes-core/musl/musl_git.bb index 0d8f8eb2..82379fd1 100644 --- a/external/poky/meta/recipes-core/musl/musl_git.bb +++ b/external/poky/meta/recipes-core/musl/musl_git.bb @@ -4,28 +4,32 @@ require musl.inc inherit linuxloader -SRCREV = "c50985d5c8e316c5c464f352e79eeebfed1121a9" +SRCREV = "040c1d16b468c50c04fc94edff521f1637708328" -PV = "1.1.20+git${SRCPV}" +BASEVER = "1.2.0" + +PV = "${BASEVER}+git${SRCPV}" # mirror is at git://github.com/kraj/musl.git 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 \ " S = "${WORKDIR}/git" -PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc virtual/libiconv virtual/libintl virtual/crypt" +PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt" DEPENDS = "virtual/${TARGET_PREFIX}binutils \ - virtual/${TARGET_PREFIX}gcc-initial \ + virtual/${TARGET_PREFIX}gcc \ libgcc-initial \ linux-libc-headers \ bsd-headers \ libssp-nonshared \ " GLIBC_LDSO = "${@get_glibc_loader(d)}" +MUSL_LDSO_ARCH = "${@get_musl_loader_arch(d)}" export CROSS_COMPILE="${TARGET_PREFIX}" @@ -45,7 +49,7 @@ CONFIGUREOPTS = " \ --bindir=${bindir} \ --libdir=${libdir} \ --includedir=${includedir} \ - --syslibdir=${base_libdir} \ + --syslibdir=/lib \ " do_configure() { @@ -58,32 +62,28 @@ do_compile() { do_install() { oe_runmake install DESTDIR='${D}' - - install -d ${D}${bindir} - rm -f ${D}${bindir}/ldd + 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/external/poky/meta/recipes-core/ncurses/ncurses.inc b/external/poky/meta/recipes-core/ncurses/ncurses.inc index 99fc4786..4156bf4f 100644 --- a/external/poky/meta/recipes-core/ncurses/ncurses.inc +++ b/external/poky/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 = "" @@ -87,6 +87,7 @@ ncurses_configure() { --disable-rpath-hack \ ${EXCONFIG_ARGS} \ --with-manpage-format=normal \ + --without-manpage-renames \ --disable-stripping \ "$@" || return 1 cd .. @@ -260,9 +261,9 @@ python populate_packages_prepend () { libdir = d.expand("${libdir}") base_libdir = d.expand("${base_libdir}") pnbase = d.expand("${PN}-lib%s") - do_split_packages(d, libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) + do_split_packages(d, libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) if libdir is not base_libdir: - do_split_packages(d, base_libdir, '^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) + do_split_packages(d, base_libdir, r'^lib(.*)\.so\..*', pnbase, 'ncurses %s library', prepend=True, extra_depends = '', allow_links=True) } diff --git a/external/poky/meta/recipes-core/ncurses/ncurses_6.1+20180630.bb b/external/poky/meta/recipes-core/ncurses/ncurses_6.1+20180630.bb deleted file mode 100644 index 38faf7af..00000000 --- a/external/poky/meta/recipes-core/ncurses/ncurses_6.1+20180630.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 = "d3b29180ae4360d7ab7a41a15e963299fdb72e33" -S = "${WORKDIR}/git" -EXTRA_OECONF += "--with-abi-version=5" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+(\+\d+)*)" diff --git a/external/poky/meta/recipes-core/ncurses/ncurses_6.2.bb b/external/poky/meta/recipes-core/ncurses/ncurses_6.2.bb new file mode 100644 index 00000000..723e685a --- /dev/null +++ b/external/poky/meta/recipes-core/ncurses/ncurses_6.2.bb @@ -0,0 +1,14 @@ +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 = "a669013cd5e9d6434e5301348ea51baf306c93c4" +S = "${WORKDIR}/git" +EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\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/external/poky/meta/recipes-core/netbase/netbase/hosts b/external/poky/meta/recipes-core/netbase/netbase/hosts deleted file mode 100644 index b94f414d..00000000 --- a/external/poky/meta/recipes-core/netbase/netbase/hosts +++ /dev/null @@ -1,8 +0,0 @@ -127.0.0.1 localhost.localdomain localhost - -# The following lines are desirable for IPv6 capable hosts -::1 localhost ip6-localhost ip6-loopback -fe00::0 ip6-localnet -ff00::0 ip6-mcastprefix -ff02::1 ip6-allnodes -ff02::2 ip6-allrouters diff --git a/external/poky/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch b/external/poky/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch deleted file mode 100644 index 56c8d5b5..00000000 --- a/external/poky/meta/recipes-core/netbase/netbase/netbase-add-rpcbind-as-an-alias-to-sunrpc.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 76989205a1411f16d7ab09ff9d279539a73dc259 Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" -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 -Signed-off-by: Maxin B. John ---- - 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 e3202ec..a039d7e 100644 ---- a/etc-services -+++ b/etc-services -@@ -64,8 +64,8 @@ csnet-ns 105/udp cso-ns - rtelnet 107/tcp # Remote Telnet - rtelnet 107/udp - 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 --- -2.4.0 - diff --git a/external/poky/meta/recipes-core/netbase/netbase_5.4.bb b/external/poky/meta/recipes-core/netbase/netbase_5.4.bb deleted file mode 100644 index 5ab0c58f..00000000 --- a/external/poky/meta/recipes-core/netbase/netbase_5.4.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Basic TCP/IP networking support" -DESCRIPTION = "This package provides the necessary infrastructure for basic TCP/IP based networking" -HOMEPAGE = "http://packages.debian.org/netbase" -SECTION = "base" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab" -PE = "1" - -SRC_URI = "http://snapshot.debian.org/archive/debian/20170112T093812Z/pool/main/n/${BPN}/${BPN}_${PV}.tar.xz \ - file://netbase-add-rpcbind-as-an-alias-to-sunrpc.patch \ - file://hosts" - -SRC_URI[md5sum] = "117cb70c55ef3c1c002f127812b114c1" -SRC_URI[sha256sum] = "66ff73d2d162e2d49db43988d8b8cd328cf7fffca042db73397f14c71825e80d" - -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/" -do_install () { - install -d ${D}/${mandir}/man8 ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts - install -m 0644 etc-rpc ${D}${sysconfdir}/rpc - install -m 0644 etc-protocols ${D}${sysconfdir}/protocols - install -m 0644 etc-services ${D}${sysconfdir}/services -} - -CONFFILES_${PN} = "${sysconfdir}/hosts" diff --git a/external/poky/meta/recipes-core/netbase/netbase_6.1.bb b/external/poky/meta/recipes-core/netbase/netbase_6.1.bb new file mode 100644 index 00000000..bc0049c0 --- /dev/null +++ b/external/poky/meta/recipes-core/netbase/netbase_6.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Basic TCP/IP networking support" +DESCRIPTION = "This package provides the necessary infrastructure for basic TCP/IP based networking" +HOMEPAGE = "http://packages.debian.org/netbase" +SECTION = "base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab" +PE = "1" + +SRC_URI = "${DEBIAN_MIRROR}/main/n/${BPN}/${BPN}_${PV}.tar.xz" + +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 ${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/external/poky/meta/recipes-core/newlib/libgloss_3.0.0.bb b/external/poky/meta/recipes-core/newlib/libgloss_3.0.0.bb deleted file mode 100644 index c9ed30d9..00000000 --- a/external/poky/meta/recipes-core/newlib/libgloss_3.0.0.bb +++ /dev/null @@ -1,33 +0,0 @@ -require newlib.inc - -DEPENDS += "newlib" - -FILESEXTRAPATHS_prepend := "${THISDIR}/libgloss:" - -SRC_URI_append_powerpc = " file://fix-rs6000-crt0.patch" -SRC_URI_append_arm = " file://fix_makefile_include_arm_h.patch" - -do_configure() { - ${S}/libgloss/configure ${EXTRA_OECONF} -} - -do_install_prepend() { - # install doesn't create this itself, avoid install error - install -d ${D}${prefix}/${TARGET_SYS}/lib -} - -do_install_append() { - # Move libs to default directories so they can be picked up later - install -d ${D}${libdir} - mv -v ${D}${prefix}/${TARGET_SYS}/lib/* ${D}${libdir} - - # Remove original directory - rmdir -p --ignore-fail-on-non-empty ${D}${prefix}/${TARGET_SYS}/lib -} - -# Split packages correctly -FILES_${PN} += "${libdir}/*.ld ${libdir}/*.specs" -FILES_${PN}-dev += "${libdir}/cpu-init/*" - -INHIBIT_PACKAGE_STRIP = "1" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" diff --git a/external/poky/meta/recipes-core/newlib/libgloss_3.2.0.bb b/external/poky/meta/recipes-core/newlib/libgloss_3.2.0.bb new file mode 100644 index 00000000..c9ed30d9 --- /dev/null +++ b/external/poky/meta/recipes-core/newlib/libgloss_3.2.0.bb @@ -0,0 +1,33 @@ +require newlib.inc + +DEPENDS += "newlib" + +FILESEXTRAPATHS_prepend := "${THISDIR}/libgloss:" + +SRC_URI_append_powerpc = " file://fix-rs6000-crt0.patch" +SRC_URI_append_arm = " file://fix_makefile_include_arm_h.patch" + +do_configure() { + ${S}/libgloss/configure ${EXTRA_OECONF} +} + +do_install_prepend() { + # install doesn't create this itself, avoid install error + install -d ${D}${prefix}/${TARGET_SYS}/lib +} + +do_install_append() { + # Move libs to default directories so they can be picked up later + install -d ${D}${libdir} + mv -v ${D}${prefix}/${TARGET_SYS}/lib/* ${D}${libdir} + + # Remove original directory + rmdir -p --ignore-fail-on-non-empty ${D}${prefix}/${TARGET_SYS}/lib +} + +# Split packages correctly +FILES_${PN} += "${libdir}/*.ld ${libdir}/*.specs" +FILES_${PN}-dev += "${libdir}/cpu-init/*" + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" diff --git a/external/poky/meta/recipes-core/newlib/newlib.inc b/external/poky/meta/recipes-core/newlib/newlib.inc index c97c7c27..5edea8ab 100644 --- a/external/poky/meta/recipes-core/newlib/newlib.inc +++ b/external/poky/meta/recipes-core/newlib/newlib.inc @@ -3,28 +3,24 @@ 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" +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=956a4b1487f7677cdcceeee8f05a21f0 \ + file://COPYING.NEWLIB;md5=ac17c68751aad7a5298ce3f249121070 \ file://newlib/libc/posix/COPYRIGHT;md5=103468ff1982be840fdf4ee9f8b51bbf \ file://newlib/libc/sys/linux/linuxthreads/LICENSE;md5=73640207fbc79b198c7ffd4ad4d97aa0 \ " -SRC_URI = "ftp://sourceware.org/pub/newlib/newlib-${PV}.tar.gz" -SRC_URI[md5sum] = "81ec873108b8593c586f91ca65963952" -SRC_URI[sha256sum] = "c8566335ee74e5fcaeb8595b4ebd0400c4b043d6acb3263ecb1314f8f5501332" +SRC_URI = "https://sourceware.org/pub/newlib/newlib-${PV}.tar.gz" +SRC_URI[md5sum] = "afb3a01c8c82b6717ea55659a4de30ec" +SRC_URI[sha256sum] = "f7b2322964a1e3b37bec0768da20f50dfb62247d729110974dd95756a53bb6d4" INHIBIT_DEFAULT_DEPS = "1" -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial" - -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" +DEPENDS = "virtual/${TARGET_PREFIX}gcc" S = "${WORKDIR}/newlib-${PV}" B = "${WORKDIR}/build" @@ -46,6 +42,7 @@ EXTRA_OECONF = " \ --with-gnu-as \ --with-gnu-ld \ --disable-multilib \ + --disable-newlib-supplied-syscalls \ " do_configure[cleandirs] = "${B}" diff --git a/external/poky/meta/recipes-core/newlib/newlib_3.0.0.bb b/external/poky/meta/recipes-core/newlib/newlib_3.0.0.bb deleted file mode 100644 index 09238fe0..00000000 --- a/external/poky/meta/recipes-core/newlib/newlib_3.0.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -require newlib.inc - -PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc virtual/libiconv virtual/libintl" - -do_configure() { - ${S}/configure ${EXTRA_OECONF} -} - -do_install_append() { - # Move include files and libs to default directories so they can be picked up later - mv -v ${D}${prefix}/${TARGET_SYS}/lib ${D}${libdir} - mv -v ${D}${prefix}/${TARGET_SYS}/include ${D}${includedir} - - # Remove original directory - rmdir ${D}${prefix}/${TARGET_SYS} -} - -# No rpm package is actually created but -dev depends on it, avoid dnf error -RDEPENDS_${PN}-dev_libc-newlib = "" diff --git a/external/poky/meta/recipes-core/newlib/newlib_3.2.0.bb b/external/poky/meta/recipes-core/newlib/newlib_3.2.0.bb new file mode 100644 index 00000000..7ab5b2b9 --- /dev/null +++ b/external/poky/meta/recipes-core/newlib/newlib_3.2.0.bb @@ -0,0 +1,20 @@ +require newlib.inc + +PROVIDES += "virtual/libc virtual/libiconv virtual/libintl" + +do_configure() { + export CC_FOR_TARGET="${CC}" + ${S}/configure ${EXTRA_OECONF} +} + +do_install_append() { + # Move include files and libs to default directories so they can be picked up later + mv -v ${D}${prefix}/${TARGET_SYS}/lib ${D}${libdir} + mv -v ${D}${prefix}/${TARGET_SYS}/include ${D}${includedir} + + # Remove original directory + rmdir ${D}${prefix}/${TARGET_SYS} +} + +# No rpm package is actually created but -dev depends on it, avoid dnf error +RDEPENDS_${PN}-dev_libc-newlib = "" diff --git a/external/poky/meta/recipes-core/os-release/os-release.bb b/external/poky/meta/recipes-core/os-release/os-release.bb index 7f3d9cba..a29d6781 100644 --- a/external/poky/meta/recipes-core/os-release/os-release.bb +++ b/external/poky/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,22 +23,24 @@ 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(' ','_') return ret.lower() python do_compile () { - import shutil 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/external/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch deleted file mode 100644 index 342fcc62..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation" - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wstringop-truncation" in "-Wall". This warning is documented in detail -at ; the -introduction says - -> Warn for calls to bounded string manipulation functions such as strncat, -> strncpy, and stpncpy that may either truncate the copied string or leave -> the destination unchanged. - -It breaks the BaseTools build with: - -> EfiUtilityMsgs.c: In function 'PrintMessage': -> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying -> between 0 and 511 bytes from a string of length 511 -> [-Werror=stringop-truncation] -> strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The right way to fix the warning would be to implement string concat with -snprintf(). However, Microsoft does not appear to support snprintf() -before VS2015 -, -so we just have to shut up the warning. The strncat() calls flagged above -are valid BTW. - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - - BaseTools/Source/C/Makefiles/header.makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g - endif - BUILD_LFLAGS = $(LDFLAGS) - BUILD_CXXFLAGS += -Wno-unused-result diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch deleted file mode 100644 index 5bb418b9..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f65e9cc025278387b494c2383c5d9ff3bed98687 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 11 Jun 2017 00:47:24 -0700 -Subject: [PATCH] ia32: Dont use -pie - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - BaseTools/Conf/tools_def.template | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Conf/tools_def.template -=================================================================== ---- git.orig/BaseTools/Conf/tools_def.template -+++ git/BaseTools/Conf/tools_def.template -@@ -4336,7 +4336,7 @@ RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG = - NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug - - DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common --DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe -+DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe -fno-PIE -no-pie - DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe - DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency - DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie -@@ -4369,9 +4369,9 @@ DEFINE GCC_ARM_RC_FLAGS = -I - DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii - - DEFINE GCC44_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 GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -+DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie - DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables --DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -+DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -no-pie - DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC44_IA32_X64_DLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map - DEFINE GCC44_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) -@@ -4451,7 +4451,7 @@ DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = D - - DEFINE GCC49_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) - DEFINE GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) --DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 -+DEFINE GCC49_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 -no-pie - DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable - DEFINE GCC49_IA32_X64_DLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map - DEFINE GCC49_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS) diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch new file mode 100644 index 00000000..6ecb23b2 --- /dev/null +++ b/external/poky/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch @@ -0,0 +1,34 @@ +From 0a8362cfb9f00870d70687475665b131dd82c947 Mon Sep 17 00:00:00 2001 +From: Ricardo Neri +Date: Thu, 9 Jun 2016 02:23:01 -0700 +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. +When cross-compiling, we need to provide a path to the location of these +tools. The BBAKE_EDK_TOOLS_PATH string is used as a pattern to be replaced +with the appropriate location before building. + +Signed-off-by: Ricardo Neri +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 91b1442ade..1858dae31a 100755 +--- a/OvmfPkg/build.sh ++++ b/OvmfPkg/build.sh +@@ -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 +- export EDK_TOOLS_PATH=`pwd`/BaseTools ++ export EDK_TOOLS_PATH=BBAKE_EDK_TOOLS_PATH/BaseTools + echo $EDK_TOOLS_PATH + source edksetup.sh BaseTools + else +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch deleted file mode 100644 index a076665c..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict" - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wrestrict" in "-Wall". This warning is documented in detail -at ; the -introduction says - -> Warn when an object referenced by a restrict-qualified parameter (or, in -> C++, a __restrict-qualified parameter) is aliased by another argument, -> or when copies between such objects overlap. - -It breaks the BaseTools build (in the Brotli compression library) with: - -> In function 'ProcessCommandsInternal', -> inlined from 'ProcessCommands' at dec/decode.c:1828:10: -> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631 -> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at -> offset 16 [-Werror=restrict] -> memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16)); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> In function 'ProcessCommandsInternal', -> inlined from 'SafeProcessCommands' at dec/decode.c:1833:10: -> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631 -> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at -> offset 16 [-Werror=restrict] -> memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16)); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Paolo Bonzini analyzed the Brotli source in detail, -and concluded that the warning is a false positive: - -> This seems safe to me, because it's preceded by: -> -> uint8_t* copy_dst = &s->ringbuffer[pos]; -> uint8_t* copy_src = &s->ringbuffer[src_start]; -> int dst_end = pos + i; -> int src_end = src_start + i; -> if (src_end > pos && dst_end > src_start) { -> /* Regions intersect. */ -> goto CommandPostWrapCopy; -> } -> -> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then -> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i). -> -> The if seems okay: -> -> (src_start + i > pos && pos + i > src_start) -> -> which can be rewritten to: -> -> (pos < src_start + i && src_start < pos + i) -> -> Then the numbers are in one of these two orders: -> -> pos <= src_start < pos + i <= src_start + i -> src_start <= pos < src_start + i <= pos + i -> -> These two would be allowed by the "if", but they can only happen if pos -> == src_start so they degenerate to the same two orders above: -> -> pos <= src_start < src_start + i <= pos + i -> src_start <= pos < pos + i <= src_start + i -> -> So it is a false positive in GCC. - -Disable the warning for now. - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Reported-by: Cole Robinson -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/Makefiles/header.makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g - endif - BUILD_LFLAGS = $(LDFLAGS) - BUILD_CXXFLAGS += -Wno-unused-result diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch new file mode 100644 index 00000000..f37ed018 --- /dev/null +++ b/external/poky/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch @@ -0,0 +1,51 @@ +From a8bceaec1b16fffbf6810df05503d8ae9092b735 Mon Sep 17 00:00:00 2001 +From: Ricardo Neri +Date: Fri, 26 Jul 2019 17:34:26 -0400 +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 +Upstream-Status: Pending + +--- + BaseTools/Source/C/Makefiles/header.makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +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) +-BUILD_CPPFLAGS = $(INCLUDE) ++BUILD_CPPFLAGS += $(INCLUDE) + + # keep EXTRA_OPTFLAGS last + BUILD_OPTFLAGS = -O2 $(EXTRA_OPTFLAGS) + + ifeq ($(DARWIN),Darwin) + # assume clang or clang compatible flags on OS X +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ + -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -g + else +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ + -fno-delete-null-pointer-checks -Wall -Werror \ + -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ + -Wno-unused-result -nostdlib -g + endif +-BUILD_LFLAGS = +-BUILD_CXXFLAGS = -Wno-unused-result ++BUILD_LFLAGS = $(LDFLAGS) ++BUILD_CXXFLAGS += -Wno-unused-result + + ifeq ($(HOST_ARCH), IA32) + # +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch deleted file mode 100644 index 94ae5d44..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0002-ovmf-update-path-to-native-BaseTools.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9e632e3f9edd09632cc877dff6ea57608f979aab Mon Sep 17 00:00:00 2001 -From: Ricardo Neri -Date: Thu, 9 Jun 2016 02:23:01 -0700 -Subject: [PATCH] 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. -When cross-compiling, we need to provide a path to the location of these -tools. The BBAKE_EDK_TOOLS_PATH string is used as a pattern to be replaced -with the appropriate location before building. - -Signed-off-by: Ricardo Neri -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 ---- a/OvmfPkg/build.sh -+++ b/OvmfPkg/build.sh -@@ -30,7 +30,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 -- export EDK_TOOLS_PATH=`pwd`/BaseTools -+ export EDK_TOOLS_PATH=BBAKE_EDK_TOOLS_PATH/BaseTools - echo $EDK_TOOLS_PATH - source edksetup.sh BaseTools - else --- -2.8.1 - diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch deleted file mode 100644 index 920723e3..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 7 Mar 2018 10:17:28 +0100 -Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx" - options on OSX - -I recently added the gcc-8 specific "-Wno-stringop-truncation" and -"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 / -clang, OSX) and otherwise (gcc, Linux / Cygwin). - -I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does -not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and -"-Wno-restrict" options, yet the build completed fine (by GCC design). - -Regarding OSX, my expectation was that - -- XCODE5 / clang would either recognize these warnings options (because - clang does recognize most -W options of gcc), - -- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags - that it didn't recognize. - -Neither is the case; the new flags have broken the BaseTools build on OSX. -Revert them (for OSX only). - -Cc: Liming Gao -Cc: Yonghong Zhu -Reported-by: Liming Gao -Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231 -Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929 -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao -Acked-by: Ard Biesheuvel ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/Makefiles/header.makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) - BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else - BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g - endif diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch deleted file mode 100644 index 65b5c16d..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2320650c6d381b914fe91b2dedaa5870279a8bcf Mon Sep 17 00:00:00 2001 -From: Ricardo Neri -Date: Sun, 27 Nov 2016 18:42:55 -0800 -Subject: [PATCH] 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 -Upstream-Status: Pending ---- - BaseTools/Source/C/Makefiles/header.makefile | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -Index: git/BaseTools/Source/C/Makefiles/header.makefile -=================================================================== ---- git.orig/BaseTools/Source/C/Makefiles/header.makefile -+++ git/BaseTools/Source/C/Makefiles/header.makefile -@@ -44,15 +44,15 @@ ARCH_INCLUDE = -I $(MAKEROOT)/Include/AA - endif - - 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) -O2 -+BUILD_CPPFLAGS += $(INCLUDE) -O2 - ifeq ($(DARWIN),Darwin) - # assume clang or clang compatible flags on OS X --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g - else --BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g -+BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g - endif --BUILD_LFLAGS = --BUILD_CXXFLAGS = -Wno-unused-result -+BUILD_LFLAGS = $(LDFLAGS) -+BUILD_CXXFLAGS += -Wno-unused-result - - ifeq ($(ARCH), IA32) - # diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch new file mode 100644 index 00000000..ab1e7db3 --- /dev/null +++ b/external/poky/meta/recipes-core/ovmf/ovmf/0003-ovmf-enable-long-path-file.patch @@ -0,0 +1,28 @@ +From 60a5f953f747e1e9e05a40157b651cba8ea57b91 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Mon, 11 Sep 2017 02:21:55 -0400 +Subject: [PATCH 3/5] ovmf: enable long path file + +Upstream-Status: Pending +Signed-off-by: Dengke Du + +--- + 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 e1cce985f7..d67d03c70c 100644 +--- a/BaseTools/Source/C/Common/CommonLib.h ++++ b/BaseTools/Source/C/Common/CommonLib.h +@@ -14,7 +14,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent + #include + #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/external/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch deleted file mode 100644 index 7ad7cdf0..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch +++ /dev/null @@ -1,66 +0,0 @@ -From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Fri, 2 Mar 2018 17:11:52 +0100 -Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow" - warning with memcpy() - -gcc-8 (which is part of Fedora 28) enables the new warning -"-Wstringop-overflow" in "-Wall". This warning is documented in detail at -; the -introduction says - -> Warn for calls to string manipulation functions such as memcpy and -> strcpy that are determined to overflow the destination buffer. - -It breaks the BaseTools build with: - -> GenVtf.c: In function 'ConvertVersionInfo': -> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length -> of the source argument [-Werror=stringop-overflow=] -> strncpy (TemStr + 4 - Length, Str, Length); -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> GenVtf.c:130:14: note: length computed here -> Length = strlen(Str); -> ^~~~~~~~~~~ - -It is a false positive because, while the bound equals the length of the -source argument, the destination pointer is moved back towards the -beginning of the destination buffer by the same amount (and this amount is -range-checked first, so we can't precede the start of the dest buffer). - -Replace both strncpy() calls with memcpy(). - -Cc: Ard Biesheuvel -Cc: Cole Robinson -Cc: Liming Gao -Cc: Paolo Bonzini -Cc: Yonghong Zhu -Reported-by: Cole Robinson -Contributed-under: TianoCore Contribution Agreement 1.1 -Signed-off-by: Laszlo Ersek -Reviewed-by: Liming Gao ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport - BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c -index 2ae9a7be2c..0cd33e71e9 100644 ---- a/BaseTools/Source/C/GenVtf/GenVtf.c -+++ b/BaseTools/Source/C/GenVtf/GenVtf.c -@@ -129,9 +129,9 @@ Returns: - } else { - Length = strlen(Str); - if (Length < 4) { -- strncpy (TemStr + 4 - Length, Str, Length); -+ memcpy (TemStr + 4 - Length, Str, Length); - } else { -- strncpy (TemStr, Str + Length - 4, 4); -+ memcpy (TemStr, Str + Length - 4, 4); - } - - sscanf ( --- -2.17.0 - diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch new file mode 100644 index 00000000..c10a39d9 --- /dev/null +++ b/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-Update-to-latest.patch @@ -0,0 +1,46 @@ +From 94eff316b31b4d0348af28c77be5c00bc09fe8e7 Mon Sep 17 00:00:00 2001 +From: Steve Langasek +Date: Sat, 10 Jun 2017 01:39:36 -0700 +Subject: [PATCH 4/5] 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 + +--- + 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 ca0b122dbb..b0066c2ab8 100755 +--- a/BaseTools/Conf/tools_def.template ++++ b/BaseTools/Conf/tools_def.template +@@ -1941,10 +1941,10 @@ DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 + DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii + DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii + +-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 + DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 +-DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address +-DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -D EFI32 -fno-asynchronous-unwind-tables -Wno-address ++DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address + DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable + DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive + DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON) +@@ -1953,7 +1953,7 @@ DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF + 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 +-DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations ++DEFINE GCC48_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mword-relocations + 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.17.1 + diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch deleted file mode 100644 index d954fbe3..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0004-ovmf-enable-long-path-file.patch +++ /dev/null @@ -1,18 +0,0 @@ -From 032fc6b1f7691bd537fd2a6bd13821fcf3c45e64 Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Mon, 11 Sep 2017 02:21:55 -0400 -Subject: [PATCH] ovmf: enable long path file - -Upstream-Status: Pending -Signed-off-by: Dengke Du ---- - 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 ---- 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. --#define MAX_LONG_FILE_PATH 500 -+#define MAX_LONG_FILE_PATH 1023 diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch b/external/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch deleted file mode 100644 index 3aa6cc4a..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch +++ /dev/null @@ -1,1124 +0,0 @@ -From: Laszlo Ersek -Date: Mon, 6 Jul 2015 20:22:02 +0200 -Subject: [PATCH] OvmfPkg: EnrollDefaultKeys: application for enrolling default - keys - -(A port of the patch -to Gerd's public RPMs.) - -This application is meant to be invoked by the management layer, after -booting the UEFI shell and getting a shell prompt on the serial console. -The app enrolls a number of certificates (see below), and then reports -status to the serial console as well. The expected output is "info: -success": - -> Shell> EnrollDefaultKeys.efi -> info: SetupMode=1 SecureBoot=0 SecureBootEnable=0 CustomMode=0 VendorKeys=1 -> info: SetupMode=0 SecureBoot=1 SecureBootEnable=1 CustomMode=0 VendorKeys=0 -> info: success -> Shell> - -In case of success, the management layer can force off or reboot the VM -(for example with the "reset -s" or "reset -c" UEFI shell commands, -respectively), and start the guest installation with SecureBoot enabled. - -PK: -- A unique, static, ad-hoc certificate whose private half has been - destroyed (more precisely, never saved) and is therefore unusable for - signing. (The command for creating this certificate is saved in the - source code.) - -KEK: -- same ad-hoc certificate as used for the PK, -- "Microsoft Corporation KEK CA 2011" -- the dbx data in Fedora's dbxtool - package is signed (indirectly, through a chain) with this; enrolling - such a KEK should allow guests to install those updates. - -DB: -- "Microsoft Windows Production PCA 2011" -- to load Windows 8 and Windows - Server 2012 R2, -- "Microsoft Corporation UEFI CA 2011" -- to load Linux and signed PCI - oproms. - -Contributed-under: TianoCore Contribution Agreement 1.0 -Signed-off-by: Laszlo Ersek -Upstream-Status: Inappropriate [not author] -Signed-off-by: Patrick Ohly ---- - OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | 960 ++++++++++++++++++++++++ - OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf | 51 ++ - OvmfPkg/OvmfPkgIa32.dsc | 4 + - OvmfPkg/OvmfPkgIa32X64.dsc | 4 + - OvmfPkg/OvmfPkgX64.dsc | 4 + - 5 files changed, 1023 insertions(+) - create mode 100644 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c - create mode 100644 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf - -diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c -new file mode 100644 -index 0000000..081212b ---- /dev/null -+++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c -@@ -0,0 +1,960 @@ -+/** @file -+ Enroll default PK, KEK, DB. -+ -+ Copyright (C) 2014, Red Hat, Inc. -+ -+ This program and the accompanying materials are licensed and made available -+ under the terms and conditions of the BSD License which accompanies this -+ distribution. The full text of the license may be found at -+ http://opensource.org/licenses/bsd-license. -+ -+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT -+ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -+**/ -+#include // gEfiCustomModeEnableGuid -+#include // EFI_SETUP_MODE_NAME -+#include // EFI_IMAGE_SECURITY_DATABASE -+#include // CopyGuid() -+#include // ASSERT() -+#include // FreePool() -+#include // ShellAppMain() -+#include // AsciiPrint() -+#include // gRT -+ -+// -+// The example self-signed certificate below, which we'll use for both Platform -+// Key, and first Key Exchange Key, has been generated with the following -+// non-interactive openssl command. The passphrase is read from /dev/urandom, -+// and not saved, and the private key is written to /dev/null. In other words, -+// we can't sign anything else against this certificate, which is our purpose. -+// -+/* -+ openssl req \ -+ -passout file:<(head -c 16 /dev/urandom) \ -+ -x509 \ -+ -newkey rsa:2048 \ -+ -keyout /dev/null \ -+ -outform DER \ -+ -subj $( -+ printf /C=US -+ printf /ST=TestStateOrProvince -+ printf /L=TestLocality -+ printf /O=TestOrganization -+ printf /OU=TestOrganizationalUnit -+ printf /CN=TestCommonName -+ printf /emailAddress=test@example.com -+ ) \ -+ 2>/dev/null \ -+ | xxd -i -+*/ -+STATIC CONST UINT8 ExampleCert[] = { -+ 0x30, 0x82, 0x04, 0x45, 0x30, 0x82, 0x03, 0x2d, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x09, 0x00, 0xcf, 0x9f, 0x51, 0xa3, 0x07, 0xdb, 0x54, 0xa1, 0x30, 0x0d, -+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, -+ 0x30, 0x81, 0xb8, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, -+ 0x02, 0x55, 0x53, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, -+ 0x13, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x50, -+ 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, -+ 0x55, 0x04, 0x07, 0x0c, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x69, 0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x0c, 0x10, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, -+ 0x0b, 0x0c, 0x16, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, -+ 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, -+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x54, 0x65, 0x73, -+ 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x1f, -+ 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, -+ 0x16, 0x10, 0x74, 0x65, 0x73, 0x74, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, -+ 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x31, 0x30, -+ 0x30, 0x39, 0x31, 0x33, 0x32, 0x38, 0x32, 0x32, 0x5a, 0x17, 0x0d, 0x31, 0x34, -+ 0x31, 0x31, 0x30, 0x38, 0x31, 0x33, 0x32, 0x38, 0x32, 0x32, 0x5a, 0x30, 0x81, -+ 0xb8, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, -+ 0x53, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x13, 0x54, -+ 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x50, 0x72, 0x6f, -+ 0x76, 0x69, 0x6e, 0x63, 0x65, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, -+ 0x07, 0x0c, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, -+ 0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x10, -+ 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, -+ 0x16, 0x54, 0x65, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, -+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, 0x17, 0x30, -+ 0x15, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, -+ 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x31, 0x1f, 0x30, 0x1d, -+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, -+ 0x74, 0x65, 0x73, 0x74, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, -+ 0x63, 0x6f, 0x6d, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, -+ 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, -+ 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xbf, 0xf1, 0xce, -+ 0x17, 0x32, 0xac, 0xc4, 0x4b, 0xb2, 0xed, 0x84, 0x76, 0xe5, 0xd0, 0xf8, 0x21, -+ 0xac, 0x10, 0xf8, 0x18, 0x09, 0x0e, 0x07, 0x13, 0x76, 0x21, 0x5c, 0xc4, 0xcc, -+ 0xd5, 0xe6, 0x25, 0xa7, 0x26, 0x53, 0x79, 0x2f, 0x16, 0x4b, 0x85, 0xbd, 0xae, -+ 0x42, 0x64, 0x58, 0xcb, 0x5e, 0xe8, 0x6e, 0x5a, 0xd0, 0xc4, 0x0f, 0x38, 0x16, -+ 0xbe, 0xd3, 0x22, 0xa7, 0x3c, 0x9b, 0x8b, 0x5e, 0xcb, 0x62, 0x35, 0xc5, 0x9b, -+ 0xe2, 0x8e, 0x4c, 0x65, 0x57, 0x4f, 0xcb, 0x27, 0xad, 0xe7, 0x63, 0xa7, 0x77, -+ 0x2b, 0xd5, 0x02, 0x42, 0x70, 0x46, 0xac, 0xba, 0xb6, 0x60, 0x57, 0xd9, 0xce, -+ 0x31, 0xc5, 0x12, 0x03, 0x4a, 0xf7, 0x2a, 0x2b, 0x40, 0x06, 0xb4, 0xdb, 0x31, -+ 0xb7, 0x83, 0x6c, 0x67, 0x87, 0x98, 0x8b, 0xce, 0x1b, 0x30, 0x7a, 0xfa, 0x35, -+ 0x6c, 0x86, 0x20, 0x74, 0xc5, 0x7d, 0x32, 0x31, 0x18, 0xeb, 0x69, 0xf7, 0x2d, -+ 0x20, 0xc4, 0xf0, 0xd2, 0xfa, 0x67, 0x81, 0xc1, 0xbb, 0x23, 0xbb, 0x75, 0x1a, -+ 0xe4, 0xb4, 0x49, 0x99, 0xdf, 0x12, 0x4c, 0xe3, 0x6d, 0x76, 0x24, 0x85, 0x24, -+ 0xae, 0x5a, 0x9e, 0xbd, 0x54, 0x1c, 0xf9, 0x0e, 0xed, 0x96, 0xb5, 0xd8, 0xa2, -+ 0x0d, 0x2a, 0x38, 0x5d, 0x12, 0x97, 0xb0, 0x4d, 0x75, 0x85, 0x1e, 0x47, 0x6d, -+ 0xe1, 0x25, 0x59, 0xcb, 0xe9, 0x33, 0x86, 0x6a, 0xef, 0x98, 0x24, 0xa0, 0x2b, -+ 0x02, 0x7b, 0xc0, 0x9f, 0x88, 0x03, 0xb0, 0xbe, 0x22, 0x65, 0x83, 0x77, 0xb3, -+ 0x30, 0xba, 0xe0, 0x3b, 0x54, 0x31, 0x3a, 0x45, 0x81, 0x9c, 0x48, 0xaf, 0xc1, -+ 0x11, 0x5b, 0xf2, 0x3a, 0x1e, 0x33, 0x1b, 0x8f, 0x0e, 0x04, 0xa4, 0x16, 0xd4, -+ 0x6b, 0x57, 0xee, 0xe7, 0xba, 0xf5, 0xee, 0xaf, 0xe2, 0x4c, 0x50, 0xf8, 0x68, -+ 0x57, 0x88, 0xfb, 0x7f, 0xa3, 0xcf, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x50, -+ 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, -+ 0x1e, 0x44, 0xe5, 0xef, 0xcd, 0x6e, 0x1f, 0xdb, 0xcb, 0x4f, 0x94, 0x8f, 0xe3, -+ 0x3b, 0x1a, 0x8c, 0xe6, 0x95, 0x29, 0x61, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, -+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x1e, 0x44, 0xe5, 0xef, 0xcd, 0x6e, -+ 0x1f, 0xdb, 0xcb, 0x4f, 0x94, 0x8f, 0xe3, 0x3b, 0x1a, 0x8c, 0xe6, 0x95, 0x29, -+ 0x61, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, -+ 0x01, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, -+ 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x12, 0x9c, 0x3e, 0x38, -+ 0xfc, 0x26, 0xea, 0x6d, 0xb7, 0x5c, 0x29, 0x3c, 0x76, 0x20, 0x0c, 0xb2, 0xa9, -+ 0x0f, 0xdf, 0xc0, 0x85, 0xfe, 0xeb, 0xec, 0x1d, 0x5d, 0x73, 0x84, 0xac, 0x8a, -+ 0xb4, 0x2a, 0x86, 0x38, 0x30, 0xaf, 0xd2, 0x2d, 0x2a, 0xde, 0x54, 0xc8, 0x5c, -+ 0x29, 0x90, 0x24, 0xf2, 0x39, 0xc1, 0xa5, 0x00, 0xb4, 0xb7, 0xd8, 0xdc, 0x59, -+ 0x64, 0x50, 0x62, 0x5f, 0x54, 0xf1, 0x73, 0x02, 0x4d, 0x43, 0xc5, 0xc3, 0xc4, -+ 0x0e, 0x62, 0x60, 0x8c, 0x53, 0x66, 0x57, 0x77, 0xb5, 0x81, 0xda, 0x1f, 0x81, -+ 0xda, 0xe9, 0xd6, 0x5e, 0x82, 0xce, 0xa7, 0x5c, 0xc0, 0xa6, 0xbe, 0x9c, 0x5c, -+ 0x7b, 0xa5, 0x15, 0xc8, 0xd7, 0x14, 0x53, 0xd3, 0x5c, 0x1c, 0x9f, 0x8a, 0x9f, -+ 0x66, 0x15, 0xd5, 0xd3, 0x2a, 0x27, 0x0c, 0xee, 0x9f, 0x80, 0x39, 0x88, 0x7b, -+ 0x24, 0xde, 0x0c, 0x61, 0xa3, 0x44, 0xd8, 0x8d, 0x2e, 0x79, 0xf8, 0x1e, 0x04, -+ 0x5a, 0xcb, 0xd6, 0x9c, 0xa3, 0x22, 0x8f, 0x09, 0x32, 0x1e, 0xe1, 0x65, 0x8f, -+ 0x10, 0x5f, 0xd8, 0x52, 0x56, 0xd5, 0x77, 0xac, 0x58, 0x46, 0x60, 0xba, 0x2e, -+ 0xe2, 0x3f, 0x58, 0x7d, 0x60, 0xfc, 0x31, 0x4a, 0x3a, 0xaf, 0x61, 0x55, 0x5f, -+ 0xfb, 0x68, 0x14, 0x74, 0xda, 0xdc, 0x42, 0x78, 0xcc, 0xee, 0xff, 0x5c, 0x03, -+ 0x24, 0x26, 0x2c, 0xb8, 0x3a, 0x81, 0xad, 0xdb, 0xe7, 0xed, 0xe1, 0x62, 0x84, -+ 0x07, 0x1a, 0xc8, 0xa4, 0x4e, 0xb0, 0x87, 0xf7, 0x96, 0xd8, 0x33, 0x9b, 0x0d, -+ 0xa7, 0x77, 0xae, 0x5b, 0xaf, 0xad, 0xe6, 0x5a, 0xc9, 0xfa, 0xa4, 0xe4, 0xe5, -+ 0x57, 0xbb, 0x97, 0xdd, 0x92, 0x85, 0xd8, 0x03, 0x45, 0xfe, 0xd8, 0x6b, 0xb1, -+ 0xdb, 0x85, 0x36, 0xb9, 0xd9, 0x28, 0xbf, 0x17, 0xae, 0x11, 0xde, 0x10, 0x19, -+ 0x26, 0x5b, 0xc0, 0x3d, 0xc7 -+}; -+ -+// -+// Second KEK: "Microsoft Corporation KEK CA 2011". -+// SHA1: 31:59:0b:fd:89:c9:d7:4e:d0:87:df:ac:66:33:4b:39:31:25:4b:30 -+// -+// "dbx" updates in "dbxtool" are signed with a key derived from this KEK. -+// -+STATIC CONST UINT8 MicrosoftKEK[] = { -+ 0x30, 0x82, 0x05, 0xe8, 0x30, 0x82, 0x03, 0xd0, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x0a, 0xd1, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x91, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x3b, 0x30, -+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x68, 0x69, 0x72, 0x64, 0x20, 0x50, 0x61, 0x72, -+ 0x74, 0x79, 0x20, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, -+ 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x31, 0x30, -+ 0x36, 0x32, 0x34, 0x32, 0x30, 0x34, 0x31, 0x32, 0x39, 0x5a, 0x17, 0x0d, 0x32, -+ 0x36, 0x30, 0x36, 0x32, 0x34, 0x32, 0x30, 0x35, 0x31, 0x32, 0x39, 0x5a, 0x30, -+ 0x81, 0x80, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, -+ 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, -+ 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, -+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, -+ 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, -+ 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, -+ 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x2a, 0x30, 0x28, 0x06, -+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x21, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x4b, 0x45, 0x4b, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x31, -+ 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, -+ 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, -+ 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc4, 0xe8, 0xb5, 0x8a, 0xbf, 0xad, -+ 0x57, 0x26, 0xb0, 0x26, 0xc3, 0xea, 0xe7, 0xfb, 0x57, 0x7a, 0x44, 0x02, 0x5d, -+ 0x07, 0x0d, 0xda, 0x4a, 0xe5, 0x74, 0x2a, 0xe6, 0xb0, 0x0f, 0xec, 0x6d, 0xeb, -+ 0xec, 0x7f, 0xb9, 0xe3, 0x5a, 0x63, 0x32, 0x7c, 0x11, 0x17, 0x4f, 0x0e, 0xe3, -+ 0x0b, 0xa7, 0x38, 0x15, 0x93, 0x8e, 0xc6, 0xf5, 0xe0, 0x84, 0xb1, 0x9a, 0x9b, -+ 0x2c, 0xe7, 0xf5, 0xb7, 0x91, 0xd6, 0x09, 0xe1, 0xe2, 0xc0, 0x04, 0xa8, 0xac, -+ 0x30, 0x1c, 0xdf, 0x48, 0xf3, 0x06, 0x50, 0x9a, 0x64, 0xa7, 0x51, 0x7f, 0xc8, -+ 0x85, 0x4f, 0x8f, 0x20, 0x86, 0xce, 0xfe, 0x2f, 0xe1, 0x9f, 0xff, 0x82, 0xc0, -+ 0xed, 0xe9, 0xcd, 0xce, 0xf4, 0x53, 0x6a, 0x62, 0x3a, 0x0b, 0x43, 0xb9, 0xe2, -+ 0x25, 0xfd, 0xfe, 0x05, 0xf9, 0xd4, 0xc4, 0x14, 0xab, 0x11, 0xe2, 0x23, 0x89, -+ 0x8d, 0x70, 0xb7, 0xa4, 0x1d, 0x4d, 0xec, 0xae, 0xe5, 0x9c, 0xfa, 0x16, 0xc2, -+ 0xd7, 0xc1, 0xcb, 0xd4, 0xe8, 0xc4, 0x2f, 0xe5, 0x99, 0xee, 0x24, 0x8b, 0x03, -+ 0xec, 0x8d, 0xf2, 0x8b, 0xea, 0xc3, 0x4a, 0xfb, 0x43, 0x11, 0x12, 0x0b, 0x7e, -+ 0xb5, 0x47, 0x92, 0x6c, 0xdc, 0xe6, 0x04, 0x89, 0xeb, 0xf5, 0x33, 0x04, 0xeb, -+ 0x10, 0x01, 0x2a, 0x71, 0xe5, 0xf9, 0x83, 0x13, 0x3c, 0xff, 0x25, 0x09, 0x2f, -+ 0x68, 0x76, 0x46, 0xff, 0xba, 0x4f, 0xbe, 0xdc, 0xad, 0x71, 0x2a, 0x58, 0xaa, -+ 0xfb, 0x0e, 0xd2, 0x79, 0x3d, 0xe4, 0x9b, 0x65, 0x3b, 0xcc, 0x29, 0x2a, 0x9f, -+ 0xfc, 0x72, 0x59, 0xa2, 0xeb, 0xae, 0x92, 0xef, 0xf6, 0x35, 0x13, 0x80, 0xc6, -+ 0x02, 0xec, 0xe4, 0x5f, 0xcc, 0x9d, 0x76, 0xcd, 0xef, 0x63, 0x92, 0xc1, 0xaf, -+ 0x79, 0x40, 0x84, 0x79, 0x87, 0x7f, 0xe3, 0x52, 0xa8, 0xe8, 0x9d, 0x7b, 0x07, -+ 0x69, 0x8f, 0x15, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x4f, 0x30, -+ 0x82, 0x01, 0x4b, 0x30, 0x10, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, -+ 0x37, 0x15, 0x01, 0x04, 0x03, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, -+ 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x62, 0xfc, 0x43, 0xcd, 0xa0, 0x3e, 0xa4, -+ 0xcb, 0x67, 0x12, 0xd2, 0x5b, 0xd9, 0x55, 0xac, 0x7b, 0xcc, 0xb6, 0x8a, 0x5f, -+ 0x30, 0x19, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, -+ 0x04, 0x0c, 0x1e, 0x0a, 0x00, 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, 0x00, -+ 0x41, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01, -+ 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, -+ 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, -+ 0x18, 0x30, 0x16, 0x80, 0x14, 0x45, 0x66, 0x52, 0x43, 0xe1, 0x7e, 0x58, 0x11, -+ 0xbf, 0xd6, 0x4e, 0x9e, 0x23, 0x55, 0x08, 0x3b, 0x3a, 0x22, 0x6a, 0xa8, 0x30, -+ 0x5c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x55, 0x30, 0x53, 0x30, 0x51, 0xa0, -+ 0x4f, 0xa0, 0x4d, 0x86, 0x4b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, -+ 0x72, 0x6c, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, -+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x70, -+ 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, -+ 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, -+ 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, -+ 0x72, 0x6c, 0x30, 0x60, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, -+ 0x01, 0x04, 0x54, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, -+ 0x05, 0x07, 0x30, 0x02, 0x86, 0x44, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, -+ 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, 0x72, 0x74, -+ 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, -+ 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, -+ 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, -+ 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, -+ 0x02, 0x01, 0x00, 0xd4, 0x84, 0x88, 0xf5, 0x14, 0x94, 0x18, 0x02, 0xca, 0x2a, -+ 0x3c, 0xfb, 0x2a, 0x92, 0x1c, 0x0c, 0xd7, 0xa0, 0xd1, 0xf1, 0xe8, 0x52, 0x66, -+ 0xa8, 0xee, 0xa2, 0xb5, 0x75, 0x7a, 0x90, 0x00, 0xaa, 0x2d, 0xa4, 0x76, 0x5a, -+ 0xea, 0x79, 0xb7, 0xb9, 0x37, 0x6a, 0x51, 0x7b, 0x10, 0x64, 0xf6, 0xe1, 0x64, -+ 0xf2, 0x02, 0x67, 0xbe, 0xf7, 0xa8, 0x1b, 0x78, 0xbd, 0xba, 0xce, 0x88, 0x58, -+ 0x64, 0x0c, 0xd6, 0x57, 0xc8, 0x19, 0xa3, 0x5f, 0x05, 0xd6, 0xdb, 0xc6, 0xd0, -+ 0x69, 0xce, 0x48, 0x4b, 0x32, 0xb7, 0xeb, 0x5d, 0xd2, 0x30, 0xf5, 0xc0, 0xf5, -+ 0xb8, 0xba, 0x78, 0x07, 0xa3, 0x2b, 0xfe, 0x9b, 0xdb, 0x34, 0x56, 0x84, 0xec, -+ 0x82, 0xca, 0xae, 0x41, 0x25, 0x70, 0x9c, 0x6b, 0xe9, 0xfe, 0x90, 0x0f, 0xd7, -+ 0x96, 0x1f, 0xe5, 0xe7, 0x94, 0x1f, 0xb2, 0x2a, 0x0c, 0x8d, 0x4b, 0xff, 0x28, -+ 0x29, 0x10, 0x7b, 0xf7, 0xd7, 0x7c, 0xa5, 0xd1, 0x76, 0xb9, 0x05, 0xc8, 0x79, -+ 0xed, 0x0f, 0x90, 0x92, 0x9c, 0xc2, 0xfe, 0xdf, 0x6f, 0x7e, 0x6c, 0x0f, 0x7b, -+ 0xd4, 0xc1, 0x45, 0xdd, 0x34, 0x51, 0x96, 0x39, 0x0f, 0xe5, 0x5e, 0x56, 0xd8, -+ 0x18, 0x05, 0x96, 0xf4, 0x07, 0xa6, 0x42, 0xb3, 0xa0, 0x77, 0xfd, 0x08, 0x19, -+ 0xf2, 0x71, 0x56, 0xcc, 0x9f, 0x86, 0x23, 0xa4, 0x87, 0xcb, 0xa6, 0xfd, 0x58, -+ 0x7e, 0xd4, 0x69, 0x67, 0x15, 0x91, 0x7e, 0x81, 0xf2, 0x7f, 0x13, 0xe5, 0x0d, -+ 0x8b, 0x8a, 0x3c, 0x87, 0x84, 0xeb, 0xe3, 0xce, 0xbd, 0x43, 0xe5, 0xad, 0x2d, -+ 0x84, 0x93, 0x8e, 0x6a, 0x2b, 0x5a, 0x7c, 0x44, 0xfa, 0x52, 0xaa, 0x81, 0xc8, -+ 0x2d, 0x1c, 0xbb, 0xe0, 0x52, 0xdf, 0x00, 0x11, 0xf8, 0x9a, 0x3d, 0xc1, 0x60, -+ 0xb0, 0xe1, 0x33, 0xb5, 0xa3, 0x88, 0xd1, 0x65, 0x19, 0x0a, 0x1a, 0xe7, 0xac, -+ 0x7c, 0xa4, 0xc1, 0x82, 0x87, 0x4e, 0x38, 0xb1, 0x2f, 0x0d, 0xc5, 0x14, 0x87, -+ 0x6f, 0xfd, 0x8d, 0x2e, 0xbc, 0x39, 0xb6, 0xe7, 0xe6, 0xc3, 0xe0, 0xe4, 0xcd, -+ 0x27, 0x84, 0xef, 0x94, 0x42, 0xef, 0x29, 0x8b, 0x90, 0x46, 0x41, 0x3b, 0x81, -+ 0x1b, 0x67, 0xd8, 0xf9, 0x43, 0x59, 0x65, 0xcb, 0x0d, 0xbc, 0xfd, 0x00, 0x92, -+ 0x4f, 0xf4, 0x75, 0x3b, 0xa7, 0xa9, 0x24, 0xfc, 0x50, 0x41, 0x40, 0x79, 0xe0, -+ 0x2d, 0x4f, 0x0a, 0x6a, 0x27, 0x76, 0x6e, 0x52, 0xed, 0x96, 0x69, 0x7b, 0xaf, -+ 0x0f, 0xf7, 0x87, 0x05, 0xd0, 0x45, 0xc2, 0xad, 0x53, 0x14, 0x81, 0x1f, 0xfb, -+ 0x30, 0x04, 0xaa, 0x37, 0x36, 0x61, 0xda, 0x4a, 0x69, 0x1b, 0x34, 0xd8, 0x68, -+ 0xed, 0xd6, 0x02, 0xcf, 0x6c, 0x94, 0x0c, 0xd3, 0xcf, 0x6c, 0x22, 0x79, 0xad, -+ 0xb1, 0xf0, 0xbc, 0x03, 0xa2, 0x46, 0x60, 0xa9, 0xc4, 0x07, 0xc2, 0x21, 0x82, -+ 0xf1, 0xfd, 0xf2, 0xe8, 0x79, 0x32, 0x60, 0xbf, 0xd8, 0xac, 0xa5, 0x22, 0x14, -+ 0x4b, 0xca, 0xc1, 0xd8, 0x4b, 0xeb, 0x7d, 0x3f, 0x57, 0x35, 0xb2, 0xe6, 0x4f, -+ 0x75, 0xb4, 0xb0, 0x60, 0x03, 0x22, 0x53, 0xae, 0x91, 0x79, 0x1d, 0xd6, 0x9b, -+ 0x41, 0x1f, 0x15, 0x86, 0x54, 0x70, 0xb2, 0xde, 0x0d, 0x35, 0x0f, 0x7c, 0xb0, -+ 0x34, 0x72, 0xba, 0x97, 0x60, 0x3b, 0xf0, 0x79, 0xeb, 0xa2, 0xb2, 0x1c, 0x5d, -+ 0xa2, 0x16, 0xb8, 0x87, 0xc5, 0xe9, 0x1b, 0xf6, 0xb5, 0x97, 0x25, 0x6f, 0x38, -+ 0x9f, 0xe3, 0x91, 0xfa, 0x8a, 0x79, 0x98, 0xc3, 0x69, 0x0e, 0xb7, 0xa3, 0x1c, -+ 0x20, 0x05, 0x97, 0xf8, 0xca, 0x14, 0xae, 0x00, 0xd7, 0xc4, 0xf3, 0xc0, 0x14, -+ 0x10, 0x75, 0x6b, 0x34, 0xa0, 0x1b, 0xb5, 0x99, 0x60, 0xf3, 0x5c, 0xb0, 0xc5, -+ 0x57, 0x4e, 0x36, 0xd2, 0x32, 0x84, 0xbf, 0x9e -+}; -+ -+// -+// First DB entry: "Microsoft Windows Production PCA 2011" -+// SHA1: 58:0a:6f:4c:c4:e4:b6:69:b9:eb:dc:1b:2b:3e:08:7b:80:d0:67:8d -+// -+// Windows 8 and Windows Server 2012 R2 boot loaders are signed with a chain -+// rooted in this certificate. -+// -+STATIC CONST UINT8 MicrosoftPCA[] = { -+ 0x30, 0x82, 0x05, 0xd7, 0x30, 0x82, 0x03, 0xbf, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x07, 0x76, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x88, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x32, 0x30, -+ 0x30, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x29, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x65, 0x72, -+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x41, 0x75, 0x74, 0x68, -+ 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x32, 0x30, 0x31, 0x30, 0x30, 0x1e, 0x17, -+ 0x0d, 0x31, 0x31, 0x31, 0x30, 0x31, 0x39, 0x31, 0x38, 0x34, 0x31, 0x34, 0x32, -+ 0x5a, 0x17, 0x0d, 0x32, 0x36, 0x31, 0x30, 0x31, 0x39, 0x31, 0x38, 0x35, 0x31, -+ 0x34, 0x32, 0x5a, 0x30, 0x81, 0x84, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, -+ 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, -+ 0x04, 0x08, 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, -+ 0x6e, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, -+ 0x65, 0x64, 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, -+ 0x04, 0x0a, 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, -+ 0x2e, 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x4d, 0x69, 0x63, -+ 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, -+ 0x73, 0x20, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, -+ 0x50, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, 0x31, 0x30, 0x82, 0x01, 0x22, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, -+ 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, -+ 0x01, 0x00, 0xdd, 0x0c, 0xbb, 0xa2, 0xe4, 0x2e, 0x09, 0xe3, 0xe7, 0xc5, 0xf7, -+ 0x96, 0x69, 0xbc, 0x00, 0x21, 0xbd, 0x69, 0x33, 0x33, 0xef, 0xad, 0x04, 0xcb, -+ 0x54, 0x80, 0xee, 0x06, 0x83, 0xbb, 0xc5, 0x20, 0x84, 0xd9, 0xf7, 0xd2, 0x8b, -+ 0xf3, 0x38, 0xb0, 0xab, 0xa4, 0xad, 0x2d, 0x7c, 0x62, 0x79, 0x05, 0xff, 0xe3, -+ 0x4a, 0x3f, 0x04, 0x35, 0x20, 0x70, 0xe3, 0xc4, 0xe7, 0x6b, 0xe0, 0x9c, 0xc0, -+ 0x36, 0x75, 0xe9, 0x8a, 0x31, 0xdd, 0x8d, 0x70, 0xe5, 0xdc, 0x37, 0xb5, 0x74, -+ 0x46, 0x96, 0x28, 0x5b, 0x87, 0x60, 0x23, 0x2c, 0xbf, 0xdc, 0x47, 0xa5, 0x67, -+ 0xf7, 0x51, 0x27, 0x9e, 0x72, 0xeb, 0x07, 0xa6, 0xc9, 0xb9, 0x1e, 0x3b, 0x53, -+ 0x35, 0x7c, 0xe5, 0xd3, 0xec, 0x27, 0xb9, 0x87, 0x1c, 0xfe, 0xb9, 0xc9, 0x23, -+ 0x09, 0x6f, 0xa8, 0x46, 0x91, 0xc1, 0x6e, 0x96, 0x3c, 0x41, 0xd3, 0xcb, 0xa3, -+ 0x3f, 0x5d, 0x02, 0x6a, 0x4d, 0xec, 0x69, 0x1f, 0x25, 0x28, 0x5c, 0x36, 0xff, -+ 0xfd, 0x43, 0x15, 0x0a, 0x94, 0xe0, 0x19, 0xb4, 0xcf, 0xdf, 0xc2, 0x12, 0xe2, -+ 0xc2, 0x5b, 0x27, 0xee, 0x27, 0x78, 0x30, 0x8b, 0x5b, 0x2a, 0x09, 0x6b, 0x22, -+ 0x89, 0x53, 0x60, 0x16, 0x2c, 0xc0, 0x68, 0x1d, 0x53, 0xba, 0xec, 0x49, 0xf3, -+ 0x9d, 0x61, 0x8c, 0x85, 0x68, 0x09, 0x73, 0x44, 0x5d, 0x7d, 0xa2, 0x54, 0x2b, -+ 0xdd, 0x79, 0xf7, 0x15, 0xcf, 0x35, 0x5d, 0x6c, 0x1c, 0x2b, 0x5c, 0xce, 0xbc, -+ 0x9c, 0x23, 0x8b, 0x6f, 0x6e, 0xb5, 0x26, 0xd9, 0x36, 0x13, 0xc3, 0x4f, 0xd6, -+ 0x27, 0xae, 0xb9, 0x32, 0x3b, 0x41, 0x92, 0x2c, 0xe1, 0xc7, 0xcd, 0x77, 0xe8, -+ 0xaa, 0x54, 0x4e, 0xf7, 0x5c, 0x0b, 0x04, 0x87, 0x65, 0xb4, 0x43, 0x18, 0xa8, -+ 0xb2, 0xe0, 0x6d, 0x19, 0x77, 0xec, 0x5a, 0x24, 0xfa, 0x48, 0x03, 0x02, 0x03, -+ 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x43, 0x30, 0x82, 0x01, 0x3f, 0x30, 0x10, -+ 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x01, 0x04, 0x03, -+ 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, -+ 0x14, 0xa9, 0x29, 0x02, 0x39, 0x8e, 0x16, 0xc4, 0x97, 0x78, 0xcd, 0x90, 0xf9, -+ 0x9e, 0x4f, 0x9a, 0xe1, 0x7c, 0x55, 0xaf, 0x53, 0x30, 0x19, 0x06, 0x09, 0x2b, -+ 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, 0x02, 0x04, 0x0c, 0x1e, 0x0a, 0x00, -+ 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, 0x00, 0x41, 0x30, 0x0b, 0x06, 0x03, -+ 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, -+ 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, -+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, -+ 0xd5, 0xf6, 0x56, 0xcb, 0x8f, 0xe8, 0xa2, 0x5c, 0x62, 0x68, 0xd1, 0x3d, 0x94, -+ 0x90, 0x5b, 0xd7, 0xce, 0x9a, 0x18, 0xc4, 0x30, 0x56, 0x06, 0x03, 0x55, 0x1d, -+ 0x1f, 0x04, 0x4f, 0x30, 0x4d, 0x30, 0x4b, 0xa0, 0x49, 0xa0, 0x47, 0x86, 0x45, -+ 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x72, 0x6c, 0x2e, 0x6d, 0x69, -+ 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, -+ 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, -+ 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x52, 0x6f, 0x6f, 0x43, 0x65, 0x72, 0x41, -+ 0x75, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x33, -+ 0x2e, 0x63, 0x72, 0x6c, 0x30, 0x5a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, -+ 0x07, 0x01, 0x01, 0x04, 0x4e, 0x30, 0x4c, 0x30, 0x4a, 0x06, 0x08, 0x2b, 0x06, -+ 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x3e, 0x68, 0x74, 0x74, 0x70, 0x3a, -+ 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, -+ 0x72, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x52, 0x6f, 0x6f, 0x43, 0x65, 0x72, -+ 0x41, 0x75, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x30, 0x36, 0x2d, 0x32, -+ 0x33, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, -+ 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x14, -+ 0xfc, 0x7c, 0x71, 0x51, 0xa5, 0x79, 0xc2, 0x6e, 0xb2, 0xef, 0x39, 0x3e, 0xbc, -+ 0x3c, 0x52, 0x0f, 0x6e, 0x2b, 0x3f, 0x10, 0x13, 0x73, 0xfe, 0xa8, 0x68, 0xd0, -+ 0x48, 0xa6, 0x34, 0x4d, 0x8a, 0x96, 0x05, 0x26, 0xee, 0x31, 0x46, 0x90, 0x61, -+ 0x79, 0xd6, 0xff, 0x38, 0x2e, 0x45, 0x6b, 0xf4, 0xc0, 0xe5, 0x28, 0xb8, 0xda, -+ 0x1d, 0x8f, 0x8a, 0xdb, 0x09, 0xd7, 0x1a, 0xc7, 0x4c, 0x0a, 0x36, 0x66, 0x6a, -+ 0x8c, 0xec, 0x1b, 0xd7, 0x04, 0x90, 0xa8, 0x18, 0x17, 0xa4, 0x9b, 0xb9, 0xe2, -+ 0x40, 0x32, 0x36, 0x76, 0xc4, 0xc1, 0x5a, 0xc6, 0xbf, 0xe4, 0x04, 0xc0, 0xea, -+ 0x16, 0xd3, 0xac, 0xc3, 0x68, 0xef, 0x62, 0xac, 0xdd, 0x54, 0x6c, 0x50, 0x30, -+ 0x58, 0xa6, 0xeb, 0x7c, 0xfe, 0x94, 0xa7, 0x4e, 0x8e, 0xf4, 0xec, 0x7c, 0x86, -+ 0x73, 0x57, 0xc2, 0x52, 0x21, 0x73, 0x34, 0x5a, 0xf3, 0xa3, 0x8a, 0x56, 0xc8, -+ 0x04, 0xda, 0x07, 0x09, 0xed, 0xf8, 0x8b, 0xe3, 0xce, 0xf4, 0x7e, 0x8e, 0xae, -+ 0xf0, 0xf6, 0x0b, 0x8a, 0x08, 0xfb, 0x3f, 0xc9, 0x1d, 0x72, 0x7f, 0x53, 0xb8, -+ 0xeb, 0xbe, 0x63, 0xe0, 0xe3, 0x3d, 0x31, 0x65, 0xb0, 0x81, 0xe5, 0xf2, 0xac, -+ 0xcd, 0x16, 0xa4, 0x9f, 0x3d, 0xa8, 0xb1, 0x9b, 0xc2, 0x42, 0xd0, 0x90, 0x84, -+ 0x5f, 0x54, 0x1d, 0xff, 0x89, 0xea, 0xba, 0x1d, 0x47, 0x90, 0x6f, 0xb0, 0x73, -+ 0x4e, 0x41, 0x9f, 0x40, 0x9f, 0x5f, 0xe5, 0xa1, 0x2a, 0xb2, 0x11, 0x91, 0x73, -+ 0x8a, 0x21, 0x28, 0xf0, 0xce, 0xde, 0x73, 0x39, 0x5f, 0x3e, 0xab, 0x5c, 0x60, -+ 0xec, 0xdf, 0x03, 0x10, 0xa8, 0xd3, 0x09, 0xe9, 0xf4, 0xf6, 0x96, 0x85, 0xb6, -+ 0x7f, 0x51, 0x88, 0x66, 0x47, 0x19, 0x8d, 0xa2, 0xb0, 0x12, 0x3d, 0x81, 0x2a, -+ 0x68, 0x05, 0x77, 0xbb, 0x91, 0x4c, 0x62, 0x7b, 0xb6, 0xc1, 0x07, 0xc7, 0xba, -+ 0x7a, 0x87, 0x34, 0x03, 0x0e, 0x4b, 0x62, 0x7a, 0x99, 0xe9, 0xca, 0xfc, 0xce, -+ 0x4a, 0x37, 0xc9, 0x2d, 0xa4, 0x57, 0x7c, 0x1c, 0xfe, 0x3d, 0xdc, 0xb8, 0x0f, -+ 0x5a, 0xfa, 0xd6, 0xc4, 0xb3, 0x02, 0x85, 0x02, 0x3a, 0xea, 0xb3, 0xd9, 0x6e, -+ 0xe4, 0x69, 0x21, 0x37, 0xde, 0x81, 0xd1, 0xf6, 0x75, 0x19, 0x05, 0x67, 0xd3, -+ 0x93, 0x57, 0x5e, 0x29, 0x1b, 0x39, 0xc8, 0xee, 0x2d, 0xe1, 0xcd, 0xe4, 0x45, -+ 0x73, 0x5b, 0xd0, 0xd2, 0xce, 0x7a, 0xab, 0x16, 0x19, 0x82, 0x46, 0x58, 0xd0, -+ 0x5e, 0x9d, 0x81, 0xb3, 0x67, 0xaf, 0x6c, 0x35, 0xf2, 0xbc, 0xe5, 0x3f, 0x24, -+ 0xe2, 0x35, 0xa2, 0x0a, 0x75, 0x06, 0xf6, 0x18, 0x56, 0x99, 0xd4, 0x78, 0x2c, -+ 0xd1, 0x05, 0x1b, 0xeb, 0xd0, 0x88, 0x01, 0x9d, 0xaa, 0x10, 0xf1, 0x05, 0xdf, -+ 0xba, 0x7e, 0x2c, 0x63, 0xb7, 0x06, 0x9b, 0x23, 0x21, 0xc4, 0xf9, 0x78, 0x6c, -+ 0xe2, 0x58, 0x17, 0x06, 0x36, 0x2b, 0x91, 0x12, 0x03, 0xcc, 0xa4, 0xd9, 0xf2, -+ 0x2d, 0xba, 0xf9, 0x94, 0x9d, 0x40, 0xed, 0x18, 0x45, 0xf1, 0xce, 0x8a, 0x5c, -+ 0x6b, 0x3e, 0xab, 0x03, 0xd3, 0x70, 0x18, 0x2a, 0x0a, 0x6a, 0xe0, 0x5f, 0x47, -+ 0xd1, 0xd5, 0x63, 0x0a, 0x32, 0xf2, 0xaf, 0xd7, 0x36, 0x1f, 0x2a, 0x70, 0x5a, -+ 0xe5, 0x42, 0x59, 0x08, 0x71, 0x4b, 0x57, 0xba, 0x7e, 0x83, 0x81, 0xf0, 0x21, -+ 0x3c, 0xf4, 0x1c, 0xc1, 0xc5, 0xb9, 0x90, 0x93, 0x0e, 0x88, 0x45, 0x93, 0x86, -+ 0xe9, 0xb1, 0x20, 0x99, 0xbe, 0x98, 0xcb, 0xc5, 0x95, 0xa4, 0x5d, 0x62, 0xd6, -+ 0xa0, 0x63, 0x08, 0x20, 0xbd, 0x75, 0x10, 0x77, 0x7d, 0x3d, 0xf3, 0x45, 0xb9, -+ 0x9f, 0x97, 0x9f, 0xcb, 0x57, 0x80, 0x6f, 0x33, 0xa9, 0x04, 0xcf, 0x77, 0xa4, -+ 0x62, 0x1c, 0x59, 0x7e -+}; -+ -+// -+// Second DB entry: "Microsoft Corporation UEFI CA 2011" -+// SHA1: 46:de:f6:3b:5c:e6:1c:f8:ba:0d:e2:e6:63:9c:10:19:d0:ed:14:f3 -+// -+// To verify the "shim" binary and PCI expansion ROMs with. -+// -+STATIC CONST UINT8 MicrosoftUefiCA[] = { -+ 0x30, 0x82, 0x06, 0x10, 0x30, 0x82, 0x03, 0xf8, 0xa0, 0x03, 0x02, 0x01, 0x02, -+ 0x02, 0x0a, 0x61, 0x08, 0xd3, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, -+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, -+ 0x00, 0x30, 0x81, 0x91, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, -+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, -+ 0x13, 0x0a, 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, -+ 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, -+ 0x6d, 0x6f, 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, -+ 0x13, 0x15, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, -+ 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x3b, 0x30, -+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x32, 0x4d, 0x69, 0x63, 0x72, 0x6f, -+ 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x54, 0x68, 0x69, 0x72, 0x64, 0x20, 0x50, 0x61, 0x72, -+ 0x74, 0x79, 0x20, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x70, 0x6c, 0x61, 0x63, -+ 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x31, 0x30, -+ 0x36, 0x32, 0x37, 0x32, 0x31, 0x32, 0x32, 0x34, 0x35, 0x5a, 0x17, 0x0d, 0x32, -+ 0x36, 0x30, 0x36, 0x32, 0x37, 0x32, 0x31, 0x33, 0x32, 0x34, 0x35, 0x5a, 0x30, -+ 0x81, 0x81, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, -+ 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x0a, -+ 0x57, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x74, 0x6f, 0x6e, 0x31, 0x10, 0x30, -+ 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x52, 0x65, 0x64, 0x6d, 0x6f, -+ 0x6e, 0x64, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, -+ 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, -+ 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x2b, 0x30, 0x29, 0x06, -+ 0x03, 0x55, 0x04, 0x03, 0x13, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, -+ 0x66, 0x74, 0x20, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x55, 0x45, 0x46, 0x49, 0x20, 0x43, 0x41, 0x20, 0x32, 0x30, 0x31, -+ 0x31, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, -+ 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, -+ 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xa5, 0x08, 0x6c, 0x4c, 0xc7, -+ 0x45, 0x09, 0x6a, 0x4b, 0x0c, 0xa4, 0xc0, 0x87, 0x7f, 0x06, 0x75, 0x0c, 0x43, -+ 0x01, 0x54, 0x64, 0xe0, 0x16, 0x7f, 0x07, 0xed, 0x92, 0x7d, 0x0b, 0xb2, 0x73, -+ 0xbf, 0x0c, 0x0a, 0xc6, 0x4a, 0x45, 0x61, 0xa0, 0xc5, 0x16, 0x2d, 0x96, 0xd3, -+ 0xf5, 0x2b, 0xa0, 0xfb, 0x4d, 0x49, 0x9b, 0x41, 0x80, 0x90, 0x3c, 0xb9, 0x54, -+ 0xfd, 0xe6, 0xbc, 0xd1, 0x9d, 0xc4, 0xa4, 0x18, 0x8a, 0x7f, 0x41, 0x8a, 0x5c, -+ 0x59, 0x83, 0x68, 0x32, 0xbb, 0x8c, 0x47, 0xc9, 0xee, 0x71, 0xbc, 0x21, 0x4f, -+ 0x9a, 0x8a, 0x7c, 0xff, 0x44, 0x3f, 0x8d, 0x8f, 0x32, 0xb2, 0x26, 0x48, 0xae, -+ 0x75, 0xb5, 0xee, 0xc9, 0x4c, 0x1e, 0x4a, 0x19, 0x7e, 0xe4, 0x82, 0x9a, 0x1d, -+ 0x78, 0x77, 0x4d, 0x0c, 0xb0, 0xbd, 0xf6, 0x0f, 0xd3, 0x16, 0xd3, 0xbc, 0xfa, -+ 0x2b, 0xa5, 0x51, 0x38, 0x5d, 0xf5, 0xfb, 0xba, 0xdb, 0x78, 0x02, 0xdb, 0xff, -+ 0xec, 0x0a, 0x1b, 0x96, 0xd5, 0x83, 0xb8, 0x19, 0x13, 0xe9, 0xb6, 0xc0, 0x7b, -+ 0x40, 0x7b, 0xe1, 0x1f, 0x28, 0x27, 0xc9, 0xfa, 0xef, 0x56, 0x5e, 0x1c, 0xe6, -+ 0x7e, 0x94, 0x7e, 0xc0, 0xf0, 0x44, 0xb2, 0x79, 0x39, 0xe5, 0xda, 0xb2, 0x62, -+ 0x8b, 0x4d, 0xbf, 0x38, 0x70, 0xe2, 0x68, 0x24, 0x14, 0xc9, 0x33, 0xa4, 0x08, -+ 0x37, 0xd5, 0x58, 0x69, 0x5e, 0xd3, 0x7c, 0xed, 0xc1, 0x04, 0x53, 0x08, 0xe7, -+ 0x4e, 0xb0, 0x2a, 0x87, 0x63, 0x08, 0x61, 0x6f, 0x63, 0x15, 0x59, 0xea, 0xb2, -+ 0x2b, 0x79, 0xd7, 0x0c, 0x61, 0x67, 0x8a, 0x5b, 0xfd, 0x5e, 0xad, 0x87, 0x7f, -+ 0xba, 0x86, 0x67, 0x4f, 0x71, 0x58, 0x12, 0x22, 0x04, 0x22, 0x22, 0xce, 0x8b, -+ 0xef, 0x54, 0x71, 0x00, 0xce, 0x50, 0x35, 0x58, 0x76, 0x95, 0x08, 0xee, 0x6a, -+ 0xb1, 0xa2, 0x01, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x76, -+ 0x30, 0x82, 0x01, 0x72, 0x30, 0x12, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, -+ 0x82, 0x37, 0x15, 0x01, 0x04, 0x05, 0x02, 0x03, 0x01, 0x00, 0x01, 0x30, 0x23, -+ 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x15, 0x02, 0x04, 0x16, -+ 0x04, 0x14, 0xf8, 0xc1, 0x6b, 0xb7, 0x7f, 0x77, 0x53, 0x4a, 0xf3, 0x25, 0x37, -+ 0x1d, 0x4e, 0xa1, 0x26, 0x7b, 0x0f, 0x20, 0x70, 0x80, 0x30, 0x1d, 0x06, 0x03, -+ 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xad, 0xbf, 0x43, 0x09, 0xbd, -+ 0x82, 0x70, 0x9c, 0x8c, 0xd5, 0x4f, 0x31, 0x6e, 0xd5, 0x22, 0x98, 0x8a, 0x1b, -+ 0xd4, 0x30, 0x19, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x14, -+ 0x02, 0x04, 0x0c, 0x1e, 0x0a, 0x00, 0x53, 0x00, 0x75, 0x00, 0x62, 0x00, 0x43, -+ 0x00, 0x41, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x04, 0x04, 0x03, 0x02, -+ 0x01, 0x86, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, -+ 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, -+ 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x45, 0x66, 0x52, 0x43, 0xe1, 0x7e, 0x58, -+ 0x11, 0xbf, 0xd6, 0x4e, 0x9e, 0x23, 0x55, 0x08, 0x3b, 0x3a, 0x22, 0x6a, 0xa8, -+ 0x30, 0x5c, 0x06, 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x55, 0x30, 0x53, 0x30, 0x51, -+ 0xa0, 0x4f, 0xa0, 0x4d, 0x86, 0x4b, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, -+ 0x63, 0x72, 0x6c, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, -+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x72, 0x6c, 0x2f, -+ 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, -+ 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, -+ 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, -+ 0x63, 0x72, 0x6c, 0x30, 0x60, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, -+ 0x01, 0x01, 0x04, 0x54, 0x30, 0x52, 0x30, 0x50, 0x06, 0x08, 0x2b, 0x06, 0x01, -+ 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x44, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, -+ 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, -+ 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6b, 0x69, 0x2f, 0x63, 0x65, 0x72, -+ 0x74, 0x73, 0x2f, 0x4d, 0x69, 0x63, 0x43, 0x6f, 0x72, 0x54, 0x68, 0x69, 0x50, -+ 0x61, 0x72, 0x4d, 0x61, 0x72, 0x52, 0x6f, 0x6f, 0x5f, 0x32, 0x30, 0x31, 0x30, -+ 0x2d, 0x31, 0x30, 0x2d, 0x30, 0x35, 0x2e, 0x63, 0x72, 0x74, 0x30, 0x0d, 0x06, -+ 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, -+ 0x82, 0x02, 0x01, 0x00, 0x35, 0x08, 0x42, 0xff, 0x30, 0xcc, 0xce, 0xf7, 0x76, -+ 0x0c, 0xad, 0x10, 0x68, 0x58, 0x35, 0x29, 0x46, 0x32, 0x76, 0x27, 0x7c, 0xef, -+ 0x12, 0x41, 0x27, 0x42, 0x1b, 0x4a, 0xaa, 0x6d, 0x81, 0x38, 0x48, 0x59, 0x13, -+ 0x55, 0xf3, 0xe9, 0x58, 0x34, 0xa6, 0x16, 0x0b, 0x82, 0xaa, 0x5d, 0xad, 0x82, -+ 0xda, 0x80, 0x83, 0x41, 0x06, 0x8f, 0xb4, 0x1d, 0xf2, 0x03, 0xb9, 0xf3, 0x1a, -+ 0x5d, 0x1b, 0xf1, 0x50, 0x90, 0xf9, 0xb3, 0x55, 0x84, 0x42, 0x28, 0x1c, 0x20, -+ 0xbd, 0xb2, 0xae, 0x51, 0x14, 0xc5, 0xc0, 0xac, 0x97, 0x95, 0x21, 0x1c, 0x90, -+ 0xdb, 0x0f, 0xfc, 0x77, 0x9e, 0x95, 0x73, 0x91, 0x88, 0xca, 0xbd, 0xbd, 0x52, -+ 0xb9, 0x05, 0x50, 0x0d, 0xdf, 0x57, 0x9e, 0xa0, 0x61, 0xed, 0x0d, 0xe5, 0x6d, -+ 0x25, 0xd9, 0x40, 0x0f, 0x17, 0x40, 0xc8, 0xce, 0xa3, 0x4a, 0xc2, 0x4d, 0xaf, -+ 0x9a, 0x12, 0x1d, 0x08, 0x54, 0x8f, 0xbd, 0xc7, 0xbc, 0xb9, 0x2b, 0x3d, 0x49, -+ 0x2b, 0x1f, 0x32, 0xfc, 0x6a, 0x21, 0x69, 0x4f, 0x9b, 0xc8, 0x7e, 0x42, 0x34, -+ 0xfc, 0x36, 0x06, 0x17, 0x8b, 0x8f, 0x20, 0x40, 0xc0, 0xb3, 0x9a, 0x25, 0x75, -+ 0x27, 0xcd, 0xc9, 0x03, 0xa3, 0xf6, 0x5d, 0xd1, 0xe7, 0x36, 0x54, 0x7a, 0xb9, -+ 0x50, 0xb5, 0xd3, 0x12, 0xd1, 0x07, 0xbf, 0xbb, 0x74, 0xdf, 0xdc, 0x1e, 0x8f, -+ 0x80, 0xd5, 0xed, 0x18, 0xf4, 0x2f, 0x14, 0x16, 0x6b, 0x2f, 0xde, 0x66, 0x8c, -+ 0xb0, 0x23, 0xe5, 0xc7, 0x84, 0xd8, 0xed, 0xea, 0xc1, 0x33, 0x82, 0xad, 0x56, -+ 0x4b, 0x18, 0x2d, 0xf1, 0x68, 0x95, 0x07, 0xcd, 0xcf, 0xf0, 0x72, 0xf0, 0xae, -+ 0xbb, 0xdd, 0x86, 0x85, 0x98, 0x2c, 0x21, 0x4c, 0x33, 0x2b, 0xf0, 0x0f, 0x4a, -+ 0xf0, 0x68, 0x87, 0xb5, 0x92, 0x55, 0x32, 0x75, 0xa1, 0x6a, 0x82, 0x6a, 0x3c, -+ 0xa3, 0x25, 0x11, 0xa4, 0xed, 0xad, 0xd7, 0x04, 0xae, 0xcb, 0xd8, 0x40, 0x59, -+ 0xa0, 0x84, 0xd1, 0x95, 0x4c, 0x62, 0x91, 0x22, 0x1a, 0x74, 0x1d, 0x8c, 0x3d, -+ 0x47, 0x0e, 0x44, 0xa6, 0xe4, 0xb0, 0x9b, 0x34, 0x35, 0xb1, 0xfa, 0xb6, 0x53, -+ 0xa8, 0x2c, 0x81, 0xec, 0xa4, 0x05, 0x71, 0xc8, 0x9d, 0xb8, 0xba, 0xe8, 0x1b, -+ 0x44, 0x66, 0xe4, 0x47, 0x54, 0x0e, 0x8e, 0x56, 0x7f, 0xb3, 0x9f, 0x16, 0x98, -+ 0xb2, 0x86, 0xd0, 0x68, 0x3e, 0x90, 0x23, 0xb5, 0x2f, 0x5e, 0x8f, 0x50, 0x85, -+ 0x8d, 0xc6, 0x8d, 0x82, 0x5f, 0x41, 0xa1, 0xf4, 0x2e, 0x0d, 0xe0, 0x99, 0xd2, -+ 0x6c, 0x75, 0xe4, 0xb6, 0x69, 0xb5, 0x21, 0x86, 0xfa, 0x07, 0xd1, 0xf6, 0xe2, -+ 0x4d, 0xd1, 0xda, 0xad, 0x2c, 0x77, 0x53, 0x1e, 0x25, 0x32, 0x37, 0xc7, 0x6c, -+ 0x52, 0x72, 0x95, 0x86, 0xb0, 0xf1, 0x35, 0x61, 0x6a, 0x19, 0xf5, 0xb2, 0x3b, -+ 0x81, 0x50, 0x56, 0xa6, 0x32, 0x2d, 0xfe, 0xa2, 0x89, 0xf9, 0x42, 0x86, 0x27, -+ 0x18, 0x55, 0xa1, 0x82, 0xca, 0x5a, 0x9b, 0xf8, 0x30, 0x98, 0x54, 0x14, 0xa6, -+ 0x47, 0x96, 0x25, 0x2f, 0xc8, 0x26, 0xe4, 0x41, 0x94, 0x1a, 0x5c, 0x02, 0x3f, -+ 0xe5, 0x96, 0xe3, 0x85, 0x5b, 0x3c, 0x3e, 0x3f, 0xbb, 0x47, 0x16, 0x72, 0x55, -+ 0xe2, 0x25, 0x22, 0xb1, 0xd9, 0x7b, 0xe7, 0x03, 0x06, 0x2a, 0xa3, 0xf7, 0x1e, -+ 0x90, 0x46, 0xc3, 0x00, 0x0d, 0xd6, 0x19, 0x89, 0xe3, 0x0e, 0x35, 0x27, 0x62, -+ 0x03, 0x71, 0x15, 0xa6, 0xef, 0xd0, 0x27, 0xa0, 0xa0, 0x59, 0x37, 0x60, 0xf8, -+ 0x38, 0x94, 0xb8, 0xe0, 0x78, 0x70, 0xf8, 0xba, 0x4c, 0x86, 0x87, 0x94, 0xf6, -+ 0xe0, 0xae, 0x02, 0x45, 0xee, 0x65, 0xc2, 0xb6, 0xa3, 0x7e, 0x69, 0x16, 0x75, -+ 0x07, 0x92, 0x9b, 0xf5, 0xa6, 0xbc, 0x59, 0x83, 0x58 -+}; -+ -+// -+// The most important thing about the variable payload is that it is a list of -+// lists, where the element size of any given *inner* list is constant. -+// -+// Since X509 certificates vary in size, each of our *inner* lists will contain -+// one element only (one X.509 certificate). This is explicitly mentioned in -+// the UEFI specification, in "28.4.1 Signature Database", in a Note. -+// -+// The list structure looks as follows: -+// -+// struct EFI_VARIABLE_AUTHENTICATION_2 { | -+// struct EFI_TIME { | -+// UINT16 Year; | -+// UINT8 Month; | -+// UINT8 Day; | -+// UINT8 Hour; | -+// UINT8 Minute; | -+// UINT8 Second; | -+// UINT8 Pad1; | -+// UINT32 Nanosecond; | -+// INT16 TimeZone; | -+// UINT8 Daylight; | -+// UINT8 Pad2; | -+// } TimeStamp; | -+// | -+// struct WIN_CERTIFICATE_UEFI_GUID { | | -+// struct WIN_CERTIFICATE { | | -+// UINT32 dwLength; ----------------------------------------+ | -+// UINT16 wRevision; | | -+// UINT16 wCertificateType; | | -+// } Hdr; | +- DataSize -+// | | -+// EFI_GUID CertType; | | -+// UINT8 CertData[1] = { <--- "struct hack" | | -+// struct EFI_SIGNATURE_LIST { | | | -+// EFI_GUID SignatureType; | | | -+// UINT32 SignatureListSize; -------------------------+ | | -+// UINT32 SignatureHeaderSize; | | | -+// UINT32 SignatureSize; ---------------------------+ | | | -+// UINT8 SignatureHeader[SignatureHeaderSize]; | | | | -+// v | | | -+// struct EFI_SIGNATURE_DATA { | | | | -+// EFI_GUID SignatureOwner; | | | | -+// UINT8 SignatureData[1] = { <--- "struct hack" | | | | -+// X.509 payload | | | | -+// } | | | | -+// } Signatures[]; | | | -+// } SigLists[]; | | -+// }; | | -+// } AuthInfo; | | -+// }; | -+// -+// Given that the "struct hack" invokes undefined behavior (which is why C99 -+// introduced the flexible array member), and because subtracting those pesky -+// sizes of 1 is annoying, and because the format is fully specified in the -+// UEFI specification, we'll introduce two matching convenience structures that -+// are customized for our X.509 purposes. -+// -+#pragma pack(1) -+typedef struct { -+ EFI_TIME TimeStamp; -+ -+ // -+ // dwLength covers data below -+ // -+ UINT32 dwLength; -+ UINT16 wRevision; -+ UINT16 wCertificateType; -+ EFI_GUID CertType; -+} SINGLE_HEADER; -+ -+typedef struct { -+ // -+ // SignatureListSize covers data below -+ // -+ EFI_GUID SignatureType; -+ UINT32 SignatureListSize; -+ UINT32 SignatureHeaderSize; // constant 0 -+ UINT32 SignatureSize; -+ -+ // -+ // SignatureSize covers data below -+ // -+ EFI_GUID SignatureOwner; -+ -+ // -+ // X.509 certificate follows -+ // -+} REPEATING_HEADER; -+#pragma pack() -+ -+/** -+ Enroll a set of DER-formatted X.509 certificates in a global variable, -+ overwriting it. -+ -+ The variable will be rewritten with NV+BS+RT+AT attributes. -+ -+ @param[in] VariableName The name of the variable to overwrite. -+ -+ @param[in] VendorGuid The namespace (ie. vendor GUID) of the variable to -+ overwrite. -+ -+ @param[in] ... A list of -+ -+ IN CONST UINT8 *Cert, -+ IN UINTN CertSize, -+ IN CONST EFI_GUID *OwnerGuid -+ -+ triplets. If the first component of a triplet is -+ NULL, then the other two components are not -+ accessed, and processing is terminated. The list of -+ X.509 certificates is enrolled in the variable -+ specified, overwriting it. The OwnerGuid component -+ identifies the agent installing the certificate. -+ -+ @retval EFI_INVALID_PARAMETER The triplet list is empty (ie. the first Cert -+ value is NULL), or one of the CertSize values -+ is 0, or one of the CertSize values would -+ overflow the accumulated UINT32 data size. -+ -+ @retval EFI_OUT_OF_RESOURCES Out of memory while formatting variable -+ payload. -+ -+ @retval EFI_SUCCESS Enrollment successful; the variable has been -+ overwritten (or created). -+ -+ @return Error codes from gRT->GetTime() and -+ gRT->SetVariable(). -+**/ -+STATIC -+EFI_STATUS -+EFIAPI -+EnrollListOfX509Certs ( -+ IN CHAR16 *VariableName, -+ IN EFI_GUID *VendorGuid, -+ ... -+ ) -+{ -+ UINTN DataSize; -+ SINGLE_HEADER *SingleHeader; -+ REPEATING_HEADER *RepeatingHeader; -+ VA_LIST Marker; -+ CONST UINT8 *Cert; -+ EFI_STATUS Status = EFI_SUCCESS; -+ UINT8 *Data; -+ UINT8 *Position; -+ -+ // -+ // compute total size first, for UINT32 range check, and allocation -+ // -+ DataSize = sizeof *SingleHeader; -+ VA_START (Marker, VendorGuid); -+ for (Cert = VA_ARG (Marker, CONST UINT8 *); -+ Cert != NULL; -+ Cert = VA_ARG (Marker, CONST UINT8 *)) { -+ UINTN CertSize; -+ -+ CertSize = VA_ARG (Marker, UINTN); -+ (VOID)VA_ARG (Marker, CONST EFI_GUID *); -+ -+ if (CertSize == 0 || -+ CertSize > MAX_UINT32 - sizeof *RepeatingHeader || -+ DataSize > MAX_UINT32 - sizeof *RepeatingHeader - CertSize) { -+ Status = EFI_INVALID_PARAMETER; -+ break; -+ } -+ DataSize += sizeof *RepeatingHeader + CertSize; -+ } -+ VA_END (Marker); -+ -+ if (DataSize == sizeof *SingleHeader) { -+ Status = EFI_INVALID_PARAMETER; -+ } -+ if (EFI_ERROR (Status)) { -+ goto Out; -+ } -+ -+ Data = AllocatePool (DataSize); -+ if (Data == NULL) { -+ Status = EFI_OUT_OF_RESOURCES; -+ goto Out; -+ } -+ -+ Position = Data; -+ -+ SingleHeader = (SINGLE_HEADER *)Position; -+ Status = gRT->GetTime (&SingleHeader->TimeStamp, NULL); -+ if (EFI_ERROR (Status)) { -+ goto FreeData; -+ } -+ SingleHeader->TimeStamp.Pad1 = 0; -+ SingleHeader->TimeStamp.Nanosecond = 0; -+ SingleHeader->TimeStamp.TimeZone = 0; -+ SingleHeader->TimeStamp.Daylight = 0; -+ SingleHeader->TimeStamp.Pad2 = 0; -+#if 0 -+ SingleHeader->dwLength = DataSize - sizeof SingleHeader->TimeStamp; -+#else -+ // -+ // This looks like a bug in edk2. According to the UEFI specification, -+ // dwLength is "The length of the entire certificate, including the length of -+ // the header, in bytes". That shouldn't stop right after CertType -- it -+ // should include everything below it. -+ // -+ SingleHeader->dwLength = sizeof *SingleHeader -+ - sizeof SingleHeader->TimeStamp; -+#endif -+ SingleHeader->wRevision = 0x0200; -+ SingleHeader->wCertificateType = WIN_CERT_TYPE_EFI_GUID; -+ CopyGuid (&SingleHeader->CertType, &gEfiCertPkcs7Guid); -+ Position += sizeof *SingleHeader; -+ -+ VA_START (Marker, VendorGuid); -+ for (Cert = VA_ARG (Marker, CONST UINT8 *); -+ Cert != NULL; -+ Cert = VA_ARG (Marker, CONST UINT8 *)) { -+ UINTN CertSize; -+ CONST EFI_GUID *OwnerGuid; -+ -+ CertSize = VA_ARG (Marker, UINTN); -+ OwnerGuid = VA_ARG (Marker, CONST EFI_GUID *); -+ -+ RepeatingHeader = (REPEATING_HEADER *)Position; -+ CopyGuid (&RepeatingHeader->SignatureType, &gEfiCertX509Guid); -+ RepeatingHeader->SignatureListSize = sizeof *RepeatingHeader + CertSize; -+ RepeatingHeader->SignatureHeaderSize = 0; -+ RepeatingHeader->SignatureSize = -+ sizeof RepeatingHeader->SignatureOwner + CertSize; -+ CopyGuid (&RepeatingHeader->SignatureOwner, OwnerGuid); -+ Position += sizeof *RepeatingHeader; -+ -+ CopyMem (Position, Cert, CertSize); -+ Position += CertSize; -+ } -+ VA_END (Marker); -+ -+ ASSERT (Data + DataSize == Position); -+ -+ Status = gRT->SetVariable (VariableName, VendorGuid, -+ (EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS | -+ EFI_VARIABLE_RUNTIME_ACCESS | -+ EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS), -+ DataSize, Data); -+ -+FreeData: -+ FreePool (Data); -+ -+Out: -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: %a(\"%s\", %g): %r\n", __FUNCTION__, VariableName, -+ VendorGuid, Status); -+ } -+ return Status; -+} -+ -+ -+STATIC -+EFI_STATUS -+EFIAPI -+GetExact ( -+ IN CHAR16 *VariableName, -+ IN EFI_GUID *VendorGuid, -+ OUT VOID *Data, -+ IN UINTN DataSize, -+ IN BOOLEAN AllowMissing -+ ) -+{ -+ UINTN Size; -+ EFI_STATUS Status; -+ -+ Size = DataSize; -+ Status = gRT->GetVariable (VariableName, VendorGuid, NULL, &Size, Data); -+ if (EFI_ERROR (Status)) { -+ if (Status == EFI_NOT_FOUND && AllowMissing) { -+ ZeroMem (Data, DataSize); -+ return EFI_SUCCESS; -+ } -+ -+ AsciiPrint ("error: GetVariable(\"%s\", %g): %r\n", VariableName, -+ VendorGuid, Status); -+ return Status; -+ } -+ -+ if (Size != DataSize) { -+ AsciiPrint ("error: GetVariable(\"%s\", %g): expected size 0x%Lx, " -+ "got 0x%Lx\n", VariableName, VendorGuid, (UINT64)DataSize, (UINT64)Size); -+ return EFI_PROTOCOL_ERROR; -+ } -+ -+ return EFI_SUCCESS; -+} -+ -+typedef struct { -+ UINT8 SetupMode; -+ UINT8 SecureBoot; -+ UINT8 SecureBootEnable; -+ UINT8 CustomMode; -+ UINT8 VendorKeys; -+} SETTINGS; -+ -+STATIC -+EFI_STATUS -+EFIAPI -+GetSettings ( -+ OUT SETTINGS *Settings -+ ) -+{ -+ EFI_STATUS Status; -+ -+ Status = GetExact (EFI_SETUP_MODE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->SetupMode, sizeof Settings->SetupMode, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_SECURE_BOOT_MODE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->SecureBoot, sizeof Settings->SecureBoot, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_SECURE_BOOT_ENABLE_NAME, -+ &gEfiSecureBootEnableDisableGuid, &Settings->SecureBootEnable, -+ sizeof Settings->SecureBootEnable, TRUE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ &Settings->CustomMode, sizeof Settings->CustomMode, FALSE); -+ if (EFI_ERROR (Status)) { -+ return Status; -+ } -+ -+ Status = GetExact (EFI_VENDOR_KEYS_VARIABLE_NAME, &gEfiGlobalVariableGuid, -+ &Settings->VendorKeys, sizeof Settings->VendorKeys, FALSE); -+ return Status; -+} -+ -+STATIC -+VOID -+EFIAPI -+PrintSettings ( -+ IN CONST SETTINGS *Settings -+ ) -+{ -+ AsciiPrint ("info: SetupMode=%d SecureBoot=%d SecureBootEnable=%d " -+ "CustomMode=%d VendorKeys=%d\n", Settings->SetupMode, Settings->SecureBoot, -+ Settings->SecureBootEnable, Settings->CustomMode, Settings->VendorKeys); -+} -+ -+ -+INTN -+EFIAPI -+ShellAppMain ( -+ IN UINTN Argc, -+ IN CHAR16 **Argv -+ ) -+{ -+ EFI_STATUS Status; -+ SETTINGS Settings; -+ -+ Status = GetSettings (&Settings); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ PrintSettings (&Settings); -+ -+ if (Settings.SetupMode != 1) { -+ AsciiPrint ("error: already in User Mode\n"); -+ return 1; -+ } -+ -+ if (Settings.CustomMode != CUSTOM_SECURE_BOOT_MODE) { -+ Settings.CustomMode = CUSTOM_SECURE_BOOT_MODE; -+ Status = gRT->SetVariable (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ (EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS), -+ sizeof Settings.CustomMode, &Settings.CustomMode); -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: SetVariable(\"%s\", %g): %r\n", EFI_CUSTOM_MODE_NAME, -+ &gEfiCustomModeEnableGuid, Status); -+ return 1; -+ } -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_IMAGE_SECURITY_DATABASE, -+ &gEfiImageSecurityDatabaseGuid, -+ MicrosoftPCA, sizeof MicrosoftPCA, &gEfiCallerIdGuid, -+ MicrosoftUefiCA, sizeof MicrosoftUefiCA, &gEfiCallerIdGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_KEY_EXCHANGE_KEY_NAME, -+ &gEfiGlobalVariableGuid, -+ ExampleCert, sizeof ExampleCert, &gEfiCallerIdGuid, -+ MicrosoftKEK, sizeof MicrosoftKEK, &gEfiCallerIdGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Status = EnrollListOfX509Certs ( -+ EFI_PLATFORM_KEY_NAME, -+ &gEfiGlobalVariableGuid, -+ ExampleCert, sizeof ExampleCert, &gEfiGlobalVariableGuid, -+ NULL); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ -+ Settings.CustomMode = STANDARD_SECURE_BOOT_MODE; -+ Status = gRT->SetVariable (EFI_CUSTOM_MODE_NAME, &gEfiCustomModeEnableGuid, -+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, -+ sizeof Settings.CustomMode, &Settings.CustomMode); -+ if (EFI_ERROR (Status)) { -+ AsciiPrint ("error: SetVariable(\"%s\", %g): %r\n", EFI_CUSTOM_MODE_NAME, -+ &gEfiCustomModeEnableGuid, Status); -+ return 1; -+ } -+ -+ Status = GetSettings (&Settings); -+ if (EFI_ERROR (Status)) { -+ return 1; -+ } -+ PrintSettings (&Settings); -+ -+ if (Settings.SetupMode != 0 || Settings.SecureBoot != 1 || -+ Settings.SecureBootEnable != 1 || Settings.CustomMode != 0 || -+ Settings.VendorKeys != 0) { -+ AsciiPrint ("error: unexpected\n"); -+ return 1; -+ } -+ -+ AsciiPrint ("info: success\n"); -+ return 0; -+} -diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf -new file mode 100644 -index 0000000..ac919bb ---- /dev/null -+++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf -@@ -0,0 +1,51 @@ -+## @file -+# Enroll default PK, KEK, DB. -+# -+# Copyright (C) 2014, Red Hat, Inc. -+# -+# This program and the accompanying materials are licensed and made available -+# under the terms and conditions of the BSD License which accompanies this -+# distribution. The full text of the license may be found at -+# http://opensource.org/licenses/bsd-license. -+# -+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR -+# IMPLIED. -+## -+ -+[Defines] -+ INF_VERSION = 0x00010006 -+ BASE_NAME = EnrollDefaultKeys -+ FILE_GUID = D5C1DF0B-1BAC-4EDF-BA48-08834009CA5A -+ MODULE_TYPE = UEFI_APPLICATION -+ VERSION_STRING = 0.1 -+ ENTRY_POINT = ShellCEntryLib -+ -+# -+# VALID_ARCHITECTURES = IA32 X64 -+# -+ -+[Sources] -+ EnrollDefaultKeys.c -+ -+[Packages] -+ MdePkg/MdePkg.dec -+ MdeModulePkg/MdeModulePkg.dec -+ SecurityPkg/SecurityPkg.dec -+ ShellPkg/ShellPkg.dec -+ -+[Guids] -+ gEfiCertPkcs7Guid -+ gEfiCertX509Guid -+ gEfiCustomModeEnableGuid -+ gEfiGlobalVariableGuid -+ gEfiImageSecurityDatabaseGuid -+ gEfiSecureBootEnableDisableGuid -+ -+[LibraryClasses] -+ BaseMemoryLib -+ DebugLib -+ MemoryAllocationLib -+ ShellCEntryLib -+ UefiLib -+ UefiRuntimeServicesTableLib -diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc -index fa9661c..e2e6ba3 100644 ---- a/OvmfPkg/OvmfPkgIa32.dsc -+++ b/OvmfPkg/OvmfPkgIa32.dsc -@@ -764,6 +764,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf -diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc -index 667584a..a0ae1aa 100644 ---- a/OvmfPkg/OvmfPkgIa32X64.dsc -+++ b/OvmfPkg/OvmfPkgIa32X64.dsc -@@ -773,6 +773,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf -diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc -index 5ae8469..87cee52 100644 ---- a/OvmfPkg/OvmfPkgX64.dsc -+++ b/OvmfPkg/OvmfPkgX64.dsc -@@ -771,6 +771,10 @@ - - !if $(SECURE_BOOT_ENABLE) == TRUE - SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf -+ OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf { -+ -+ ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf -+ } - !endif - - OvmfPkg/PlatformDxe/Platform.inf diff --git a/external/poky/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch b/external/poky/meta/recipes-core/ovmf/ovmf/VfrCompile-increase-path-length-limit.patch deleted file mode 100644 index bb12d8be..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch b/external/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch deleted file mode 100644 index 25e5b58e..00000000 --- a/external/poky/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch +++ /dev/null @@ -1,20 +0,0 @@ -Author: Steve Langasek -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 -@@ -4368,7 +4368,7 @@ DEFINE GCC_IPF_RC_FLAGS = -I - 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 - --DEFINE GCC44_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 GCC44_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 - DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie - DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables - DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20 -no-pie diff --git a/external/poky/meta/recipes-core/ovmf/ovmf_git.bb b/external/poky/meta/recipes-core/ovmf/ovmf_git.bb index d2ecb619..9667fa0c 100644 --- a/external/poky/meta/recipes-core/ovmf/ovmf_git.bb +++ b/external/poky/meta/recipes-core/ovmf/ovmf_git.bb @@ -2,9 +2,9 @@ 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=343dc88e82ff33d042074f62050c3496" +LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=06357ddc23f46577c2aeaeaf7b776d65" # Enabling Secure Boot adds a dependency on OpenSSL and implies # compiling OVMF twice, so it is disabled by default. Distros @@ -12,30 +12,16 @@ LIC_FILES_CHKSUM = "file://OvmfPkg/License.txt;md5=343dc88e82ff33d042074f62050c3 PACKAGECONFIG ??= "" PACKAGECONFIG[secureboot] = ",,," -SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \ - file://0001-ia32-Dont-use-pie.patch \ - 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://VfrCompile-increase-path-length-limit.patch \ - file://no-stack-protector-all-archs.patch \ - file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \ - file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \ - file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \ - file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \ +SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=git \ + file://0001-ovmf-update-path-to-native-BaseTools.patch \ + file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \ + file://0003-ovmf-enable-long-path-file.patch \ + file://0004-ovmf-Update-to-latest.patch \ " -UPSTREAM_VERSION_UNKNOWN = "1" -OPENSSL_RELEASE = "openssl-1.1.0e" - -SRC_URI_append_class-target = " \ - ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'http://www.openssl.org/source/${OPENSSL_RELEASE}.tar.gz;name=openssl;subdir=${S}/CryptoPkg/Library/OpensslLib', '', d)} \ - file://0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch \ -" - -SRCREV="ec4910cd3336565fdb61dafdd9ec4ae7a6160ba3" -SRC_URI[openssl.md5sum] = "51c42d152122e474754aea96f66928c6" -SRC_URI[openssl.sha256sum] = "57be8618979d80c910728cfc99369bf97b2a1abd8f366ab6ebdee8975ad3874c" +PV = "edk2-stable201911" +SRCREV = "bd85bf54c268204c7a698a96f3ccd96cd77952cd" +UPSTREAM_CHECK_GITTAGREGEX = "(?Pedk2-stable.*)" inherit deploy @@ -43,11 +29,7 @@ PARALLEL_MAKE = "" S = "${WORKDIR}/git" -DEPENDS_class-native="util-linux-native iasl-native qemu-native" - -DEPENDS_class-target="ovmf-native" - -DEPENDS_append = " nasm-native" +DEPENDS = "nasm-native acpica-native ovmf-native util-linux-native" EDK_TOOLS_DIR="edk2_basetools" @@ -62,6 +44,8 @@ COMPATIBLE_HOST='(i.86|x86_64).*' OVMF_SECURE_BOOT_EXTRA_FLAGS ??= "" OVMF_SECURE_BOOT_FLAGS = "-DSECURE_BOOT_ENABLE=TRUE ${OVMF_SECURE_BOOT_EXTRA_FLAGS}" +export PYTHON_COMMAND = "${HOSTTOOLS_DIR}/python3" + do_patch[postfuncs] += "fix_basetools_location" fix_basetools_location () { } @@ -192,12 +176,9 @@ do_compile_class-target() { ln ${build_dir}/${OVMF_ARCH}/Shell.efi ${WORKDIR}/ovmf/ if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then - # See CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt and - # https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/ for - # building with Secure Boot enabled. + # Repeat build with the Secure Boot flags. bbnote "Building with Secure Boot." rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX - ln -sf ${OPENSSL_RELEASE} ${S}/CryptoPkg/Library/OpensslLib/openssl ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${OVMF_SECURE_BOOT_FLAGS} ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd @@ -232,6 +213,11 @@ FILES_ovmf-shell-efi = " \ efi/ \ " +DEPLOYDEP = "" +DEPLOYDEP_class-target = "qemu-system-native:do_populate_sysroot" +DEPLOYDEP_class-target += " ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'openssl-native:do_populate_sysroot', '', d)}" +do_deploy[depends] += "${DEPLOYDEP}" + do_deploy() { } do_deploy[cleandirs] = "${DEPLOYDIR}" @@ -245,6 +231,13 @@ do_deploy_class-target() { ; do qemu-img convert -f raw -O qcow2 ${WORKDIR}/ovmf/$i.fd ${DEPLOYDIR}/$i.qcow2 done + + if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then + # Create a test Platform Key and first Key Exchange Key to use with EnrollDefaultKeys + openssl req -new -x509 -newkey rsa:2048 -keyout ${DEPLOYDIR}/OvmfPkKek1.key \ + -out ${DEPLOYDIR}/OvmfPkKek1.crt -nodes -days 20 -subj "/CN=OVMFSecBootTest" + openssl x509 -in ${DEPLOYDIR}/OvmfPkKek1.crt -out ${DEPLOYDIR}/OvmfPkKek1.pem -outform PEM + fi } addtask do_deploy after do_compile before do_build diff --git a/external/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/external/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb index 4bf0ac04..ae989011 100644 --- a/external/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +++ b/external/poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb @@ -22,6 +22,7 @@ RDEPENDS_${PN} = "\ nativesdk-shadow \ nativesdk-makedevs \ nativesdk-cmake \ + nativesdk-meson \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \ nativesdk-sdk-provides-dummy \ nativesdk-bison \ diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-base.bb index 442201c9..1f802da0 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-base.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-base.bb @@ -7,7 +7,6 @@ PR = "r83" PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup -inherit bluetooth PROVIDES = "${PACKAGES}" PACKAGES = ' \ @@ -21,7 +20,6 @@ PACKAGES = ' \ ${@bb.utils.contains("MACHINE_FEATURES", "apm", "packagegroup-base-apm", "", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "ext2", "packagegroup-base-ext2", "", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "vfat", "packagegroup-base-vfat", "", d)} \ - ${@bb.utils.contains("MACHINE_FEATURES", "irda", "packagegroup-base-irda", "",d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "packagegroup-base-keyboard", "", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "pci", "packagegroup-base-pci", "",d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "pcmcia", "packagegroup-base-pcmcia", "", d)} \ @@ -63,7 +61,6 @@ RDEPENDS_packagegroup-base = "\ ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'packagegroup-base-alsa', '',d)} \ ${@bb.utils.contains('COMBINED_FEATURES', 'ext2', 'packagegroup-base-ext2', '',d)} \ ${@bb.utils.contains('COMBINED_FEATURES', 'vfat', 'packagegroup-base-vfat', '',d)} \ - ${@bb.utils.contains('COMBINED_FEATURES', 'irda', 'packagegroup-base-irda', '',d)} \ ${@bb.utils.contains('COMBINED_FEATURES', 'pci', 'packagegroup-base-pci', '',d)} \ ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'packagegroup-base-pcmcia', '',d)} \ ${@bb.utils.contains('COMBINED_FEATURES', 'usbgadget', 'packagegroup-base-usbgadget', '',d)} \ @@ -201,8 +198,7 @@ RRECOMMENDS_packagegroup-base-pcmcia = "\ SUMMARY_packagegroup-base-bluetooth = "Bluetooth support" RDEPENDS_packagegroup-base-bluetooth = "\ - ${BLUEZ} \ - ${@bb.utils.contains('COMBINED_FEATURES', 'alsa', bb.utils.contains('BLUEZ', 'bluez4', 'libasound-module-bluez', '', d), '',d)} \ + bluez5 \ " RRECOMMENDS_packagegroup-base-bluetooth = "\ @@ -221,23 +217,6 @@ RRECOMMENDS_packagegroup-base-bluetooth = "\ ${@bb.utils.contains('COMBINED_FEATURES', 'pcmcia', 'kernel-module-dtl1-cs', '',d)} \ " -SUMMARY_packagegroup-base-irda = "IrDA support" -RDEPENDS_packagegroup-base-irda = "\ - irda-utils" - -RRECOMMENDS_packagegroup-base-irda = "\ - kernel-module-pxaficp-ir \ - kernel-module-irda \ - kernel-module-ircomm \ - kernel-module-ircomm-tty \ - kernel-module-irlan \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ppp', 'kernel-module-irnet', '',d)} \ - kernel-module-irport \ - kernel-module-irtty \ - kernel-module-irtty-sir \ - kernel-module-sir-dev \ - ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-ir-usb', '',d)} " - SUMMARY_packagegroup-base-usbgadget = "USB gadget support" RRECOMMENDS_packagegroup-base-usbgadget = "\ kernel-module-pxa27x_udc \ @@ -290,6 +269,7 @@ RRECOMMENDS_packagegroup-base-ipsec = "\ SUMMARY_packagegroup-base-wifi = "WiFi support" RDEPENDS_packagegroup-base-wifi = "\ iw \ + wireless-regdb-static \ wpa-supplicant" RRECOMMENDS_packagegroup-base-wifi = "\ diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb index 8dc445dc..abbee14b 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb @@ -10,17 +10,8 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup -# -# Set by the machine configuration with packages essential for device bootup -# -MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" -MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" - # Distro can override the following VIRTUAL-RUNTIME providers: VIRTUAL-RUNTIME_dev_manager ?= "udev" -VIRTUAL-RUNTIME_login_manager ?= "busybox" -VIRTUAL-RUNTIME_init_manager ?= "sysvinit" -VIRTUAL-RUNTIME_initscripts ?= "initscripts" VIRTUAL-RUNTIME_keymaps ?= "keymaps" EFI_PROVIDER ??= "grub-efi" diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb index 45e8c135..03fa5296 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb +++ b/external/poky/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 \ @@ -27,10 +26,12 @@ RDEPENDS_packagegroup-core-sdk = "\ tcl" SANITIZERS = "libasan-dev libubsan-dev" +SANITIZERS_arc = "" SANITIZERS_microblaze = "" SANITIZERS_mipsarch = "" SANITIZERS_nios2 = "" SANITIZERS_riscv64 = "" +SANITIZERS_riscv32 = "" SANITIZERS_libc-musl = "" RRECOMMENDS_packagegroup-core-sdk = "\ diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb index f5b2d69c..2a54f1ca 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb @@ -1,6 +1,8 @@ SUMMARY = "Target packages for the standalone SDK" PR = "r8" +PACKAGE_ARCH = "${TUNE_PKGARCH}" + inherit packagegroup RDEPENDS_${PN} = "\ diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb index 9fc2b0ef..81fbdf46 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb @@ -4,6 +4,8 @@ SUMMARY = "Debugging tools" +PACKAGE_ARCH = "${TUNE_PKGARCH}" + inherit packagegroup PR = "r3" diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb index 33d9c09a..ac180b54 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb +++ b/external/poky/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 = "" @@ -37,17 +37,16 @@ SYSTEMTAP_riscv64 = "" # lttng-ust uses sched_getcpu() which is not there on for some platforms. LTTNGUST = "lttng-ust" -LTTNGUST_libc-musl = "" -LTTNGUST_riscv64 = "" +LTTNGUST_arc = "" LTTNGTOOLS = "lttng-tools" -LTTNGTOOLS_libc-musl = "" -LTTNGTOOLS_riscv64 = "" +LTTNGTOOLS_arc = "" LTTNGMODULES = "lttng-modules" -LTTNGMODULES_riscv64 = "" +LTTNGMODULES_arc = "" BABELTRACE = "babeltrace" +BABELTRACE2 = "babeltrace2" # valgrind does not work on the following configurations/architectures @@ -71,6 +70,7 @@ RDEPENDS_${PN} = "\ ${LTTNGTOOLS} \ ${LTTNGMODULES} \ ${BABELTRACE} \ + ${BABELTRACE2} \ ${SYSTEMTAP} \ ${VALGRIND} \ " diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb index 64321985..a5fc1528 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb @@ -34,12 +34,10 @@ X11TOOLS = "\ xrestop \ xwininfo \ xprop \ - xvideo-tests \ " RDEPENDS_${PN} = "\ blktool \ - lrzsz \ ${KEXECTOOLS} \ alsa-utils-amixer \ alsa-utils-aplay \ diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb index d551147b..3b430c08 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb @@ -16,3 +16,9 @@ RDEPENDS_${PN} = "\ ${@all_multilib_tune_values(d, 'GDB')} \ meta-environment-${MACHINE} \ " + +# When TUNE_ARCH changes but MACHINE does not (for example when a machine definition is updated), +# cross-canadian.bbclass prevents variable dependency propagation to TRANSLATED_TARGET_ARCH +# This will result in erroneous reuse of previous sstate packages. The following line +# establishes a direct dependency instead. +do_package[vardeps] += "TUNE_ARCH" diff --git a/external/poky/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb index 5afb490a..9a52b078 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-go-sdk-target.bb +++ b/external/poky/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/external/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/external/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb index 9a6721ce..9a70b189 100644 --- a/external/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb +++ b/external/poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb @@ -6,7 +6,9 @@ SUMMARY = "Self-hosting" DESCRIPTION = "Packages required to run the build system" PR = "r13" -inherit packagegroup distro_features_check +PACKAGE_ARCH = "${TUNE_PKGARCH}" + +inherit packagegroup features_check # rdepends on libx11-dev REQUIRED_DISTRO_FEATURES = "x11" @@ -37,7 +39,7 @@ RDEPENDS_packagegroup-self-hosted-host-tools = "\ e2fsprogs-tune2fs \ hdparm \ iptables \ - lsb \ + lsb-release \ mc \ mc-fish \ mc-helpers \ @@ -73,7 +75,6 @@ RDEPENDS_packagegroup-self-hosted-sdk = "\ g++-symlinks \ gcc \ gcc-symlinks \ - intltool \ ldd \ less \ libstdc++ \ @@ -107,7 +108,6 @@ RDEPENDS_packagegroup-self-hosted-debug = " \ RDEPENDS_packagegroup-self-hosted-extended = "\ bzip2 \ - chkconfig \ chrpath \ cpio \ curl \ @@ -128,7 +128,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\ libaio \ libusb1 \ libxml2 \ - lrzsz \ lsof \ lzo \ man \ @@ -152,8 +151,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\ perl-misc \ perl-modules \ perl-pod \ - python \ - python-modules \ python3 \ python3-modules \ python3-git \ @@ -167,7 +164,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\ sysstat \ tar \ tcl \ - texi2html \ texinfo \ unzip \ usbutils \ @@ -190,7 +186,6 @@ RDEPENDS_packagegroup-self-hosted-graphics = "\ libx11-dev \ adwaita-icon-theme \ xdg-utils \ - epiphany \ l3afpad \ pcmanfm \ vte \ diff --git a/external/poky/meta/recipes-core/psplash/files/psplash-init b/external/poky/meta/recipes-core/psplash/files/psplash-init index 0bce1de5..f58e0437 100755 --- a/external/poky/meta/recipes-core/psplash/files/psplash-init +++ b/external/poky/meta/recipes-core/psplash/files/psplash-init @@ -23,8 +23,11 @@ for x in $CMDLINE; do esac done -export TMPDIR=/mnt/.psplash -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 if [ -e /etc/rotation ]; then diff --git a/external/poky/meta/recipes-core/psplash/files/psplash-start.service b/external/poky/meta/recipes-core/psplash/files/psplash-start.service new file mode 100644 index 00000000..36c2bb38 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/psplash/files/psplash-systemd.service b/external/poky/meta/recipes-core/psplash/files/psplash-systemd.service new file mode 100644 index 00000000..082207f2 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-core/psplash/psplash_git.bb b/external/poky/meta/recipes-core/psplash/psplash_git.bb index 3ad1ef48..22c71f09 100644 --- a/external/poky/meta/recipes-core/psplash/psplash_git.bb +++ b/external/poky/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" @@ -21,7 +24,6 @@ python __anonymous() { splashfiles = d.getVar('SPLASH_IMAGES').split() pkgs = [] localpaths = [] - haspng = False for uri in splashfiles: fetcher = bb.fetch2.Fetch([uri], d) flocal = os.path.basename(fetcher.localpath(uri)) @@ -39,17 +41,12 @@ 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)) - if haspng: - d.appendVar("DEPENDS", " gdk-pixbuf-native") - d.prependVar("PACKAGES", "%s " % (" ".join(pkgs))) mlprefix = d.getVar('MLPREFIX') or '' pn = d.getVar('PN') or '' @@ -66,7 +63,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" @@ -74,19 +75,19 @@ ALTERNATIVE_LINK_NAME[psplash] = "${bindir}/psplash" python do_compile () { import shutil import subprocess - import shlex # 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): if localfile.endswith(".png"): - subprocess.call(shlex.split('%s %s POKY' % (convertscript, os.path.join(workdir, localfile)))) + if subprocess.call([ convertscript, os.path.join(workdir, localfile), 'POKY' ], cwd=workdir): + bb.fatal("Error calling convert script '%s'" % (convertscript)) fbase = os.path.splitext(localfile)[0] - shutil.copyfile("%s-img.h" % fbase, destfile) + shutil.copyfile(os.path.join(workdir, "%s-img.h" % fbase), destfile) else: shutil.copyfile(os.path.join(workdir, localfile), destfile) # For some reason just updating the header is not enough, we have to touch the .c @@ -97,9 +98,17 @@ python do_compile () { } do_install_append() { - install -d ${D}/mnt/.psplash/ - 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 @@ -107,17 +116,8 @@ do_install_append() { rm -f ${D}${bindir}/psplash } -FILES_${PN} += "/mnt/.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/external/poky/meta/recipes-core/readline/readline-7.0/configure-fix.patch b/external/poky/meta/recipes-core/readline/readline-7.0/configure-fix.patch deleted file mode 100644 index ef3104f8..00000000 --- a/external/poky/meta/recipes-core/readline/readline-7.0/configure-fix.patch +++ /dev/null @@ -1,35 +0,0 @@ -Upstream-Status: Pending - -Without this it fails to link against libtermcap causing various missing -symbols issues. - -RP - 8/10/08 - -Support 6.3 which uses configure.ac rather than configure.in. -Signed-off-by: Hongxu Jia ---- - configure.ac | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index cea8f91..9075b8f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -218,10 +218,10 @@ if test -f ${srcdir}/support/shobj-conf; then - AC_MSG_CHECKING(configuration for building shared libraries) - eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` - --# case "$SHLIB_LIBS" in --# *curses*|*termcap*|*termlib*) ;; --# *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;; --# esac -+ case "$SHLIB_LIBS" in -+ *curses*|*termcap*|*termlib*) ;; -+ *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;; -+ esac - - AC_SUBST(SHOBJ_CC) - AC_SUBST(SHOBJ_CFLAGS) --- -1.8.1.2 - diff --git a/external/poky/meta/recipes-core/readline/readline-7.0/norpath.patch b/external/poky/meta/recipes-core/readline/readline-7.0/norpath.patch deleted file mode 100644 index 5d71582b..00000000 --- a/external/poky/meta/recipes-core/readline/readline-7.0/norpath.patch +++ /dev/null @@ -1,21 +0,0 @@ -This support script ends up hardcoding unnecessary rpaths into the libraries. We -will search $libdir automatically so this is just wastes space. There may be some -cases this is necessary but our use cases aren't one of them. - -Upstream-Status: Inappropriate - -RP 2012/2/23 - -Index: readline-6.2/support/shobj-conf -=================================================================== ---- readline-6.2.orig/support/shobj-conf 2012-02-23 11:06:37.193179379 +0000 -+++ readline-6.2/support/shobj-conf 2012-02-23 11:06:50.049178918 +0000 -@@ -114,7 +114,7 @@ - SHOBJ_LD='${CC}' - SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' - -- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' -+ SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`' - SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' - ;; - diff --git a/external/poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch b/external/poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch new file mode 100644 index 00000000..ef3104f8 --- /dev/null +++ b/external/poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch @@ -0,0 +1,35 @@ +Upstream-Status: Pending + +Without this it fails to link against libtermcap causing various missing +symbols issues. + +RP - 8/10/08 + +Support 6.3 which uses configure.ac rather than configure.in. +Signed-off-by: Hongxu Jia +--- + configure.ac | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index cea8f91..9075b8f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -218,10 +218,10 @@ if test -f ${srcdir}/support/shobj-conf; then + AC_MSG_CHECKING(configuration for building shared libraries) + eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` + +-# case "$SHLIB_LIBS" in +-# *curses*|*termcap*|*termlib*) ;; +-# *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;; +-# esac ++ case "$SHLIB_LIBS" in ++ *curses*|*termcap*|*termlib*) ;; ++ *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;; ++ esac + + AC_SUBST(SHOBJ_CC) + AC_SUBST(SHOBJ_CFLAGS) +-- +1.8.1.2 + diff --git a/external/poky/meta/recipes-core/readline/readline-8.0/norpath.patch b/external/poky/meta/recipes-core/readline/readline-8.0/norpath.patch new file mode 100644 index 00000000..5d71582b --- /dev/null +++ b/external/poky/meta/recipes-core/readline/readline-8.0/norpath.patch @@ -0,0 +1,21 @@ +This support script ends up hardcoding unnecessary rpaths into the libraries. We +will search $libdir automatically so this is just wastes space. There may be some +cases this is necessary but our use cases aren't one of them. + +Upstream-Status: Inappropriate + +RP 2012/2/23 + +Index: readline-6.2/support/shobj-conf +=================================================================== +--- readline-6.2.orig/support/shobj-conf 2012-02-23 11:06:37.193179379 +0000 ++++ readline-6.2/support/shobj-conf 2012-02-23 11:06:50.049178918 +0000 +@@ -114,7 +114,7 @@ + SHOBJ_LD='${CC}' + SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' + +- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' ++ SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`' + SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' + ;; + diff --git a/external/poky/meta/recipes-core/readline/readline-8.0/rl-native.map b/external/poky/meta/recipes-core/readline/readline-8.0/rl-native.map new file mode 100644 index 00000000..5e7d49cd --- /dev/null +++ b/external/poky/meta/recipes-core/readline/readline-8.0/rl-native.map @@ -0,0 +1,12 @@ +READLINE_6.3 { + rl_change_environment; + rl_clear_history; + rl_executing_key; + rl_executing_keyseq; + rl_filename_stat_hook; + rl_history_substr_search_backward; + rl_history_substr_search_forward; + rl_input_available_hook; + rl_print_last_kbd_macro; + rl_signal_event_hook; +}; diff --git a/external/poky/meta/recipes-core/readline/readline.inc b/external/poky/meta/recipes-core/readline/readline.inc index e9665228..052e2d5f 100644 --- a/external/poky/meta/recipes-core/readline/readline.inc +++ b/external/poky/meta/recipes-core/readline/readline.inc @@ -43,3 +43,14 @@ do_install_append () { 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" diff --git a/external/poky/meta/recipes-core/readline/readline_7.0.bb b/external/poky/meta/recipes-core/readline/readline_7.0.bb deleted file mode 100644 index 85dfaa62..00000000 --- a/external/poky/meta/recipes-core/readline/readline_7.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -require readline.inc - -SRC_URI += "file://configure-fix.patch \ - file://norpath.patch" - -SRC_URI[archive.md5sum] = "205b03a87fc83dab653b628c59b9fc91" -SRC_URI[archive.sha256sum] = "750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334" diff --git a/external/poky/meta/recipes-core/readline/readline_8.0.bb b/external/poky/meta/recipes-core/readline/readline_8.0.bb new file mode 100644 index 00000000..99d022a3 --- /dev/null +++ b/external/poky/meta/recipes-core/readline/readline_8.0.bb @@ -0,0 +1,7 @@ +require readline.inc + +SRC_URI += "file://configure-fix.patch \ + file://norpath.patch" + +SRC_URI[archive.md5sum] = "7e6c1f16aee3244a69aba6e438295ca3" +SRC_URI[archive.sha256sum] = "e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" diff --git a/external/poky/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb b/external/poky/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb index f9f067dc..34bf431f 100644 --- a/external/poky/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb +++ b/external/poky/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/external/poky/meta/recipes-core/systemd/systemd-boot_239.bb b/external/poky/meta/recipes-core/systemd/systemd-boot_239.bb deleted file mode 100644 index 2450d52c..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd-boot_239.bb +++ /dev/null @@ -1,70 +0,0 @@ -require systemd.inc -FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:" - -DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" - -SRC_URI += "file://0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \ - file://0006-remove-nobody-user-group-checking.patch \ - file://0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch \ - file://0001-meson-rename-Ddebug-to-Ddebug-extra.patch \ - " - -inherit meson pkgconfig gettext -inherit deploy - -EFI_CC ?= "${CC}" -EXTRA_OEMESON += "-Defi=true \ - -Dgnu-efi=true \ - -Defi-includedir=${STAGING_INCDIR}/efi \ - -Defi-ldsdir=${STAGING_LIBDIR} \ - -Defi-libdir=${STAGING_LIBDIR} \ - -Dman=false \ - -Defi-cc='${EFI_CC}' \ - -Defi-ld='${LD}' \ - " - -# install to the image as boot*.efi if its the EFI_PROVIDER, -# otherwise install as the full name. -# This allows multiple bootloaders to coexist in a single image. -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-" - if target == "x86_64": - systemdimage = prefix + "bootx64.efi" - else: - systemdimage = prefix + "bootia32.efi" - d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage) - prefix = "systemd-" if prefix == "" else "" - d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix) -} - -FILES_${PN} = "/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}" - -RDEPENDS_${PN} += "virtual/systemd-bootconf" - -# Imported from the old gummiboot recipe -TUNE_CCARGS_remove = "-mfpmath=sse" -COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" -COMPATIBLE_HOST_x86-x32 = "null" - -do_compile() { - SYSTEMD_BOOT_EFI_ARCH="ia32" - if [ "${TARGET_ARCH}" = "x86_64" ]; then - SYSTEMD_BOOT_EFI_ARCH="x64" - fi - - ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} -} - -do_install() { - install -d ${D}/boot - install -d ${D}/boot/EFI - install -d ${D}/boot/EFI/BOOT - install ${B}/src/boot/efi/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE} -} - -do_deploy () { - install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR} -} -addtask deploy before do_build after do_compile diff --git a/external/poky/meta/recipes-core/systemd/systemd-boot_244.3.bb b/external/poky/meta/recipes-core/systemd/systemd-boot_244.3.bb new file mode 100644 index 00000000..f92c6398 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-boot_244.3.bb @@ -0,0 +1,70 @@ +require systemd.inc +FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:" + +require conf/image-uefi.conf + +DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native" + +inherit meson pkgconfig gettext +inherit deploy + +LDFLAGS_prepend = "${@ " ".join(d.getVar('LD').split()[1:])} " + +do_write_config[vardeps] += "CC OBJCOPY" +do_write_config_append() { + cat >${WORKDIR}/meson-${PN}.cross < koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable - touch ${D}${sysconfdir}/machine-id - - install -m 0644 ${S}/src/coredump/coredump.conf ${D}${sysconfdir}/systemd/coredump.conf - - install -m 0644 ${S}/src/journal/journald.conf ${D}${sysconfdir}/systemd/journald.conf - # Enable journal to forward message to syslog daemon - sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf - # Set the maximium size of runtime journal to 64M as default - sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf - - install -m 0644 ${S}/src/login/logind.conf.in ${D}${sysconfdir}/systemd/logind.conf - # Set KILL_USER_PROCESSES to yes - sed -i -e 's/@KILL_USER_PROCESSES@/yes/' ${D}${sysconfdir}/systemd/logind.conf - - install -m 0644 ${S}/src/core/system.conf.in ${D}${sysconfdir}/systemd/system.conf - # Set MEMORY_ACCOUNTING_DEFAULT to yes - sed -i -e 's/@MEMORY_ACCOUNTING_DEFAULT@/yes/' ${D}${sysconfdir}/systemd/system.conf - - install -m 0644 ${S}/src/core/user.conf ${D}${sysconfdir}/systemd/user.conf -} - -# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52 -do_install_append_qemuall() { - # Change DefaultTimeoutStartSec from 90s to 240s - echo "DefaultTimeoutStartSec = 240s" >> ${D}${sysconfdir}/systemd/system.conf -} diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf/journald.conf b/external/poky/meta/recipes-core/systemd/systemd-conf/journald.conf new file mode 100644 index 00000000..fd4d969f --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf/journald.conf @@ -0,0 +1,3 @@ +[Journal] +ForwardToSyslog=yes +RuntimeMaxUse=64M diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf/logind.conf b/external/poky/meta/recipes-core/systemd/systemd-conf/logind.conf new file mode 100644 index 00000000..bf7f6920 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf/logind.conf @@ -0,0 +1,2 @@ +[Login] +KillUserProcesses=yes diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf b/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf new file mode 100644 index 00000000..554cab26 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf @@ -0,0 +1,2 @@ +[Manager] +DefaultMemoryAccounting=yes diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf-qemuall b/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf-qemuall new file mode 100644 index 00000000..741be27c --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf/system.conf-qemuall @@ -0,0 +1,3 @@ +[Manager] +# Change DefaultTimeoutStartSec from 90s to 240s +DefaultTimeoutStartSec = 240s diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf/wired.network b/external/poky/meta/recipes-core/systemd/systemd-conf/wired.network new file mode 100644 index 00000000..ff807ba3 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf/wired.network @@ -0,0 +1,10 @@ +[Match] +Name=en* eth* +KernelCommandLine=!nfsroot + +[Network] +DHCP=yes + +[DHCP] +RouteMetric=10 +ClientIdentifier=mac diff --git a/external/poky/meta/recipes-core/systemd/systemd-conf_244.3.bb b/external/poky/meta/recipes-core/systemd/systemd-conf_244.3.bb new file mode 100644 index 00000000..d9ec023b --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd-conf_244.3.bb @@ -0,0 +1,38 @@ +SUMMARY = "Systemd system configuration" +DESCRIPTION = "Systemd may require slightly different configuration for \ +different machines. For example, qemu machines require a longer \ +DefaultTimeoutStartSec setting." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "\ + file://journald.conf \ + file://logind.conf \ + file://system.conf \ + file://system.conf-qemuall \ + file://wired.network \ +" + +do_install() { + install -D -m0644 ${WORKDIR}/journald.conf ${D}${systemd_unitdir}/journald.conf.d/00-${PN}.conf + install -D -m0644 ${WORKDIR}/logind.conf ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf + install -D -m0644 ${WORKDIR}/system.conf ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf + install -D -m0644 ${WORKDIR}/wired.network ${D}${systemd_unitdir}/network/80-wired.network +} + +# Based on change from YP bug 8141, OE commit 5196d7bacaef1076c361adaa2867be31759c1b52 +do_install_append_qemuall() { + install -D -m0644 ${WORKDIR}/system.conf-qemuall ${D}${systemd_unitdir}/system.conf.d/01-${PN}.conf + + # Do not install wired.network for qemu bsps + rm -rf ${D}${systemd_unitdir}/network +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} = "\ + ${systemd_unitdir}/journald.conf.d/ \ + ${systemd_unitdir}/logind.conf.d/ \ + ${systemd_unitdir}/system.conf.d/ \ + ${systemd_unitdir}/network/ \ +" diff --git a/external/poky/meta/recipes-core/systemd/systemd-serialgetty.bb b/external/poky/meta/recipes-core/systemd/systemd-serialgetty.bb index 65a931f4..044c6c5b 100644 --- a/external/poky/meta/recipes-core/systemd/systemd-serialgetty.bb +++ b/external/poky/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() { diff --git a/external/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service b/external/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service index e8b027e9..549d5660 100644 --- a/external/poky/meta/recipes-core/systemd/systemd-serialgetty/serial-getty@.service +++ b/external/poky/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 @@ -9,8 +11,9 @@ Description=Serial Getty on %I Documentation=man:agetty(8) man:systemd-getty-generator(8) Documentation=http://0pointer.de/blog/projects/serial-console.html -BindsTo=dev-%i.device -After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service +PartOf=dev-%i.device +ConditionPathExists=/dev/%i +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 @@ -19,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/external/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl b/external/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl index 2bc64896..990de1ab 100755 --- a/external/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl +++ b/external/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl @@ -1,196 +1,321 @@ -#!/bin/sh -echo "Started $0 $*" - -ROOT= - -# parse command line params -action= -while [ $# != 0 ]; do - opt="$1" - - case "$opt" in - enable) - shift - - action="$opt" - services="$1" - cmd_args="1" - shift - ;; - disable) - shift - - action="$opt" - services="$1" - cmd_args="1" - shift - ;; - mask) - shift - - action="$opt" - services="$1" - cmd_args="1" - shift - ;; - preset) - shift - - action="$opt" - services="$1" - cmd_args="1" - shift - ;; - --root=*) - ROOT=${opt##--root=} - cmd_args="0" - shift - ;; - *) - if [ "$cmd_args" = "1" ]; then - services="$services $opt" - shift - else - echo "'$opt' is an unkown option; exiting with error" - exit 1 - fi - ;; - esac -done -if [ "$action" = "preset" -a "$service_file" = "" ]; then - services=$(for f in `find $ROOT/etc/systemd/system $ROOT/lib/systemd/system $ROOT/usr/lib/systemd/system -type f 2>1`; do basename $f; done) - services="$services $opt" - presetall=1 -fi - -for service in $services; do - if [ "$presetall" = "1" ]; then - action="preset" - fi - if [ "$action" = "mask" ]; then - if [ ! -d $ROOT/etc/systemd/system/ ]; then - mkdir -p $ROOT/etc/systemd/system/ - fi - cmd="ln -s /dev/null $ROOT/etc/systemd/system/$service" - echo "$cmd" - $cmd - exit 0 - fi - - service_base_file=`echo $service | sed 's/\(@\).*\(\.[^.]\+\)/\1\2/'` - if [ -z `echo $service | sed '/@/p;d'` ]; then - echo "Try to find location of $service..." - service_template=false - else - echo "Try to find location of template $service_base_file of instance $service..." - service_template=true - instance_specified=`echo $service | sed 's/^.\+@\(.*\)\.[^.]\+/\1/'` - fi - - # find service file - for p in $ROOT/etc/systemd/system \ - $ROOT/lib/systemd/system \ - $ROOT/usr/lib/systemd/system; do - if [ -e $p/$service_base_file ]; then - service_file=$p/$service_base_file - service_file=${service_file##$ROOT} - fi - done - if [ -z "$service_file" ]; then - echo "'$service_base_file' couldn't be found; exiting with error" - exit 1 - fi - echo "Found $service in $service_file" - - # If any new unit types are added to systemd they should be added - # to this regular expression. - unit_types_re='\.\(service\|socket\|device\|mount\|automount\|swap\|target\|target\.wants\|path\|timer\|snapshot\)\s*$' - if [ "$action" = "preset" ]; then - action=`egrep -sh $service $ROOT/etc/systemd/user-preset/*.preset | cut -f1 -d' '` - if [ -z "$action" ]; then - globalpreset=`egrep -sh '\*' $ROOT/etc/systemd/user-preset/*.preset | cut -f1 -d' '` - if [ -n "$globalpreset" ]; then - action="$globalpreset" - else - action="enable" - fi - fi - fi - # create the required symbolic links - wanted_by=$(sed '/^WantedBy[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ - | tr ',' '\n' \ - | grep "$unit_types_re") - - required_by=$(sed '/^RequiredBy[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ - | tr ',' '\n' \ - | grep "$unit_types_re") - - for dependency in WantedBy RequiredBy; do - if [ "$dependency" = "WantedBy" ]; then - suffix="wants" - dependency_list="$wanted_by" - elif [ "$dependency" = "RequiredBy" ]; then - suffix="requires" - dependency_list="$required_by" - fi - for r in $dependency_list; do - echo "$dependency=$r found in $service" - if [ -n "$instance_specified" ]; then - # substitute wildcards in the dependency - r=`echo $r | sed "s/%i/$instance_specified/g"` - fi - - if [ "$action" = "enable" ]; then - enable_service=$service - if [ "$service_template" = true -a -z "$instance_specified" ]; then - default_instance=$(sed '/^DefaultInstance[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file") - if [ -z $default_instance ]; then - echo "Template unit without instance or DefaultInstance directive, nothing to enable" - continue - else - echo "Found DefaultInstance $default_instance, enabling it" - enable_service=$(echo $service | sed "s/@/@$(echo $default_instance | sed 's/\\/\\\\/g')/") - fi - fi - mkdir -p $ROOT/etc/systemd/system/$r.$suffix - ln -s $service_file $ROOT/etc/systemd/system/$r.$suffix/$enable_service - echo "Enabled $enable_service for $r." - else - if [ "$service_template" = true -a -z "$instance_specified" ]; then - disable_service="$ROOT/etc/systemd/system/$r.$suffix/`echo $service | sed 's/@/@*/'`" - else - disable_service="$ROOT/etc/systemd/system/$r.$suffix/$service" - fi - rm -f $disable_service - [ -d $ROOT/etc/systemd/system/$r.$suffix ] && rmdir --ignore-fail-on-non-empty -p $ROOT/etc/systemd/system/$r.$suffix - echo "Disabled ${disable_service##$ROOT/etc/systemd/system/$r.$suffix/} for $r." - fi - done - done - - # create the required symbolic 'Alias' links - alias=$(sed '/^Alias[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ - | tr ',' '\n' \ - | grep "$unit_types_re") - - for r in $alias; do - if [ "$action" = "enable" ]; then - mkdir -p $ROOT/etc/systemd/system - ln -s $service_file $ROOT/etc/systemd/system/$r - echo "Enabled $service for $alias." - else - rm -f $ROOT/etc/systemd/system/$r - echo "Disabled $service for $alias." - fi - done - - # call us for the other required scripts - also=$(sed '/^Also[[:space:]]*=/s,[^=]*=,,p;d' "$ROOT/$service_file" \ - | tr ',' '\n') - for a in $also; do - echo "Also=$a found in $service" - if [ "$action" = "enable" ]; then - $0 --root=$ROOT enable $a - fi - done -done +#!/usr/bin/env python3 +"""systemctl: subset of systemctl used for image construction + +Mask/preset systemd units +""" + +import argparse +import fnmatch +import os +import re +import sys + +from collections import namedtuple +from pathlib import Path + +version = 1.0 + +ROOT = Path("/") +SYSCONFDIR = Path("etc") +BASE_LIBDIR = Path("lib") +LIBDIR = Path("usr", "lib") + +locations = list() + + +class SystemdFile(): + """Class representing a single systemd configuration file""" + def __init__(self, root, path): + self.sections = dict() + self._parse(root, path) + dirname = os.path.basename(path.name) + ".d" + for location in locations: + for path2 in sorted((root / location / "system" / dirname).glob("*.conf")): + self._parse(root, path2) + + def _parse(self, root, path): + """Parse a systemd syntax configuration file + + Args: + path: A pathlib.Path object pointing to the file + + """ + skip_re = re.compile(r"^\s*([#;]|$)") + section_re = re.compile(r"^\s*\[(?P
.*)\]") + kv_re = re.compile(r"^\s*(?P[^\s]+)\s*=\s*(?P.*)") + section = None + + if path.is_symlink(): + try: + path.resolve() + except FileNotFoundError: + # broken symlink, try relative to root + path = root / Path(os.readlink(str(path))).relative_to(ROOT) + + with path.open() as f: + for line in f: + if skip_re.match(line): + continue + + line = line.strip() + m = section_re.match(line) + if m: + if m.group('section') not in self.sections: + section = dict() + self.sections[m.group('section')] = section + else: + section = self.sections[m.group('section')] + continue + + while line.endswith("\\"): + line += f.readline().rstrip("\n") + + m = kv_re.match(line) + k = m.group('key') + v = m.group('value') + if k not in section: + section[k] = list() + section[k].extend(v.split()) + + def get(self, section, prop): + """Get a property from section + + Args: + section: Section to retrieve property from + prop: Property to retrieve + + Returns: + List representing all properties of type prop in section. + + Raises: + KeyError: if ``section`` or ``prop`` not found + """ + return self.sections[section][prop] + + +class Presets(): + """Class representing all systemd presets""" + def __init__(self, scope, root): + self.directives = list() + self._collect_presets(scope, root) + + def _parse_presets(self, presets): + """Parse presets out of a set of preset files""" + skip_re = re.compile(r"^\s*([#;]|$)") + directive_re = re.compile(r"^\s*(?Penable|disable)\s+(?P(.+))") + + Directive = namedtuple("Directive", "action unit_name") + for preset in presets: + with preset.open() as f: + for line in f: + m = directive_re.match(line) + if m: + directive = Directive(action=m.group('action'), + unit_name=m.group('unit_name')) + self.directives.append(directive) + elif skip_re.match(line): + pass + else: + sys.exit("Unparsed preset line in {}".format(preset)) + + def _collect_presets(self, scope, root): + """Collect list of preset files""" + presets = dict() + for location in locations: + paths = (root / location / scope).glob("*.preset") + for path in paths: + # earlier names override later ones + if path.name not in presets: + presets[path.name] = path + + self._parse_presets([v for k, v in sorted(presets.items())]) + + def state(self, unit_name): + """Return state of preset for unit_name + + Args: + presets: set of presets + unit_name: name of the unit + + Returns: + None: no matching preset + `enable`: unit_name is enabled + `disable`: unit_name is disabled + """ + for directive in self.directives: + if fnmatch.fnmatch(unit_name, directive.unit_name): + return directive.action + + return None + + +def add_link(path, target): + try: + path.parent.mkdir(parents=True) + except FileExistsError: + pass + if not path.is_symlink(): + print("ln -s {} {}".format(target, path)) + path.symlink_to(target) + + +class SystemdUnitNotFoundError(Exception): + pass + + +class SystemdUnit(): + def __init__(self, root, unit): + self.root = root + self.unit = unit + self.config = None + + def _path_for_unit(self, unit): + for location in locations: + path = self.root / location / "system" / unit + if path.exists() or path.is_symlink(): + return path + + raise SystemdUnitNotFoundError(self.root, unit) + + def _process_deps(self, config, service, location, prop, dirstem): + systemdir = self.root / SYSCONFDIR / "systemd" / "system" + + target = ROOT / location.relative_to(self.root) + try: + for dependent in config.get('Install', prop): + wants = systemdir / "{}.{}".format(dependent, dirstem) / service + add_link(wants, target) + + except KeyError: + pass + + def enable(self): + # if we're enabling an instance, first extract the actual instance + # then figure out what the template unit is + template = re.match(r"[^@]+@(?P[^\.]*)\.", self.unit) + if template: + instance = template.group('instance') + unit = re.sub(r"@[^\.]*\.", "@.", self.unit, 1) + else: + instance = None + unit = self.unit + + path = self._path_for_unit(unit) + + if path.is_symlink(): + # ignore aliases + return + + config = SystemdFile(self.root, path) + if instance == "": + try: + default_instance = config.get('Install', 'DefaultInstance')[0] + except KeyError: + # no default instance, so nothing to enable + return + + service = self.unit.replace("@.", + "@{}.".format(default_instance)) + else: + service = self.unit + + self._process_deps(config, service, path, 'WantedBy', 'wants') + self._process_deps(config, service, path, 'RequiredBy', 'requires') + + try: + for also in config.get('Install', 'Also'): + SystemdUnit(self.root, also).enable() + + except KeyError: + pass + + systemdir = self.root / SYSCONFDIR / "systemd" / "system" + target = ROOT / path.relative_to(self.root) + try: + for dest in config.get('Install', 'Alias'): + alias = systemdir / dest + add_link(alias, target) + + except KeyError: + pass + + def mask(self): + systemdir = self.root / SYSCONFDIR / "systemd" / "system" + add_link(systemdir / self.unit, "/dev/null") + + +def collect_services(root): + """Collect list of service files""" + services = set() + for location in locations: + paths = (root / location / "system").glob("*") + for path in paths: + if path.is_dir(): + continue + services.add(path.name) + + return services + + +def preset_all(root): + presets = Presets('system-preset', root) + services = collect_services(root) + + for service in services: + state = presets.state(service) + + if state == "enable" or state is None: + SystemdUnit(root, service).enable() + + # If we populate the systemd links we also create /etc/machine-id, which + # allows systemd to boot with the filesystem read-only before generating + # a real value and then committing it back. + # + # For the stateless configuration, where /etc is generated at runtime + # (for example on a tmpfs), this script shouldn't run at all and we + # allow systemd to completely populate /etc. + (root / SYSCONFDIR / "machine-id").touch() + + +def main(): + if sys.version_info < (3, 4, 0): + sys.exit("Python 3.4 or greater is required") + + parser = argparse.ArgumentParser() + parser.add_argument('command', nargs=1, choices=['enable', 'mask', + 'preset-all']) + parser.add_argument('service', nargs=argparse.REMAINDER) + parser.add_argument('--root') + parser.add_argument('--preset-mode', + choices=['full', 'enable-only', 'disable-only'], + default='full') + + args = parser.parse_args() + + root = Path(args.root) if args.root else ROOT + + locations.append(SYSCONFDIR / "systemd") + # Handle the usrmerge case by ignoring /lib when it's a symlink + if not (root / BASE_LIBDIR).is_symlink(): + locations.append(BASE_LIBDIR / "systemd") + locations.append(LIBDIR / "systemd") + + command = args.command[0] + if command == "mask": + for service in args.service: + SystemdUnit(root, service).mask() + elif command == "enable": + for service in args.service: + SystemdUnit(root, service).enable() + elif command == "preset-all": + if len(args.service) != 0: + sys.exit("Too many arguments.") + if args.preset_mode != "enable-only": + sys.exit("Only enable-only is supported as preset-mode.") + preset_all(root) + else: + raise RuntimeError() + + +if __name__ == '__main__': + main() diff --git a/external/poky/meta/recipes-core/systemd/systemd.inc b/external/poky/meta/recipes-core/systemd/systemd.inc index 736e0a0e..e73b397b 100644 --- a/external/poky/meta/recipes-core/systemd/systemd.inc +++ b/external/poky/meta/recipes-core/systemd/systemd.inc @@ -14,8 +14,8 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" -SRCREV = "de7436b02badc82200dc127ff190b8155769b8e7" - -SRC_URI = "git://github.com/systemd/systemd.git;protocol=git" +SRCREV = "b7ed902b2394f94e7f1fbe6c3194b5cd9a9429e6" +SRCBRANCH = "v244-stable" +SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}" S = "${WORKDIR}/git" diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-Fix-to-run-efi_cc-and-efi_ld-correctly-when-cross-co.patch deleted file mode 100644 index e2e19ba0..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-core/systemd/systemd/0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch deleted file mode 100644 index d745800c..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9e3816bcaa36e1a11647ca0cf4f8044449c77fe0 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 2 Jul 2018 15:28:22 +0800 -Subject: [PATCH] Remove fstack-protector flags to workaround musl build - -Remove fstack-protector and fstack-protector-strong flags to fix -the following build failure for qemux86 and qemuppc with musl. - - undefined reference to `__stack_chk_fail_local' - -Upstream-Status: Inappropriate [musl Specific] - -Signed-off-by: Chen Qi ---- - meson.build | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/meson.build b/meson.build -index f432ea072..a734a295c 100644 ---- a/meson.build -+++ b/meson.build -@@ -333,8 +333,6 @@ possible_cc_flags = [ - '-fdiagnostics-show-option', - '-fno-strict-aliasing', - '-fvisibility=hidden', -- '-fstack-protector', -- '-fstack-protector-strong', - '--param=ssp-buffer-size=4', - ] - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-Revert-sysctl.d-request-ECN-on-both-in-and-outgoing-.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-Revert-sysctl.d-request-ECN-on-both-in-and-outgoing-.patch deleted file mode 100644 index 7fd6d018..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-Revert-sysctl.d-request-ECN-on-both-in-and-outgoing-.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1e190dfd5bb95036f937ef1dc46f43eb0a146612 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Fri, 17 Aug 2018 21:31:05 +0200 -Subject: [PATCH] Revert "sysctl.d: request ECN on both in and outgoing - connections" - -Turning on ECN still causes slow or broken network on linux. Our tcp -is not yet ready for wide spread use of ECN. - -This reverts commit 919472741dba6ad0a3f6c2b76d390a02d0e2fdc3. - -https://github.com/systemd/systemd/issues/9748 - -Upstream-Status: Backport -Signed-off-by: Alex Kiernan ---- - sysctl.d/50-default.conf | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/sysctl.d/50-default.conf b/sysctl.d/50-default.conf -index b67ae87ca6b7..e263cf06284a 100644 ---- a/sysctl.d/50-default.conf -+++ b/sysctl.d/50-default.conf -@@ -33,9 +33,6 @@ net.ipv4.conf.all.promote_secondaries = 1 - # Fair Queue CoDel packet scheduler to fight bufferbloat - net.core.default_qdisc = fq_codel - --# Request Explicit Congestion Notification (ECN) on both in and outgoing connections --net.ipv4.tcp_ecn = 1 -- - # Enable hard and soft link protection - fs.protected_hardlinks = 1 - fs.protected_symlinks = 1 --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch deleted file mode 100644 index 03f6ead1..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6dd136512896979feb6883a16226d640a7e5ca74 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Fri, 23 Feb 2018 10:04:48 +0800 -Subject: [PATCH 01/19] Use getenv when secure versions are not available - -musl doesnt implement secure version, so we default -to it if configure does not detect a secure implementation - -Signed-off-by: Khem Raj - -Upstream-Status: Denied - -Signed-off-by: Chen Qi ---- - src/basic/missing.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/basic/missing.h b/src/basic/missing.h -index 71a07d057..0e33abb9f 100644 ---- a/src/basic/missing.h -+++ b/src/basic/missing.h -@@ -592,7 +592,7 @@ struct btrfs_ioctl_quota_ctl_args { - # if HAVE___SECURE_GETENV - # define secure_getenv __secure_getenv - # else --# error "neither secure_getenv nor __secure_getenv are available" -+# define secure_getenv getenv - # endif - #endif - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch index e24e7f83..6eaaec71 100644 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch +++ b/external/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch @@ -1,8 +1,8 @@ -From 87dd61be2e28e78ce4f9f173794812e6c2d904d1 Mon Sep 17 00:00:00 2001 +From c73a87871df31b4f8d96c9d443759c6f702935f6 Mon Sep 17 00:00:00 2001 From: Chen Qi -Date: Wed, 27 Jun 2018 16:01:22 +0800 -Subject: [PATCH 1/9] binfmt: Don't install dependency links at install time - for the binfmt services +Date: Thu, 21 Feb 2019 16:23:24 +0800 +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. @@ -16,6 +16,9 @@ Upstream-Status: Denied Signed-off-by: Ross Burton Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + --- units/meson.build | 6 ++---- units/proc-sys-fs-binfmt_misc.automount | 3 +++ @@ -23,7 +26,7 @@ Signed-off-by: Chen Qi 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/units/meson.build b/units/meson.build -index e4ac6ced6..698734e44 100644 +index 6a3a0d0dea22..bbb1b78618c3 100644 --- a/units/meson.build +++ b/units/meson.build @@ -46,8 +46,7 @@ units = [ @@ -43,11 +46,11 @@ index e4ac6ced6..698734e44 100644 - ['systemd-binfmt.service', 'ENABLE_BINFMT', - 'sysinit.target.wants/'], + ['systemd-binfmt.service', 'ENABLE_BINFMT'], - ['systemd-coredump@.service', 'ENABLE_COREDUMP'], - ['systemd-exit.service', ''], - ['systemd-firstboot.service', 'ENABLE_FIRSTBOOT', + ['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 30a6bc991..4231f3b70 100644 +index 30a6bc991844..4231f3b70fe9 100644 --- a/units/proc-sys-fs-binfmt_misc.automount +++ b/units/proc-sys-fs-binfmt_misc.automount @@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/ @@ -58,7 +61,7 @@ index 30a6bc991..4231f3b70 100644 +[Install] +WantedBy=sysinit.target diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in -index e940c7c9a..6be7f5cc9 100644 +index 0c0f26451b67..763c4c466c16 100644 --- a/units/systemd-binfmt.service.in +++ b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm @@ -67,15 +70,12 @@ index e940c7c9a..6be7f5cc9 100644 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 +@@ -29,3 +30,6 @@ Type=oneshot RemainAfterExit=yes ExecStart=@rootlibexecdir@/systemd-binfmt TimeoutSec=90s + +[Install] +WantedBy=sysinit.target --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-chown-recursive-let-s-rework-the-recursive-logic-to-.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-chown-recursive-let-s-rework-the-recursive-logic-to-.patch deleted file mode 100644 index 9d350eba..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-chown-recursive-let-s-rework-the-recursive-logic-to-.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 2da8ba3f507345d0401ea9d7191fa16ffa560ebc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 19 Oct 2018 11:26:59 +0200 -Subject: [PATCH] chown-recursive: let's rework the recursive logic to use - O_PATH - -That way we can pin a specific inode and analyze it and manipulate it -without it being swapped out beneath our hands. - -Fixes a vulnerability originally found by Jann Horn from Google. - -CVE-2018-15687 -LP: #1796692 -https://bugzilla.redhat.com/show_bug.cgi?id=1639076 - -(cherry picked from commit 5de6cce58b3e8b79239b6e83653459d91af6e57c) - -CVE: CVE-2018-15687 -Upstream-Status: Backport - -Signed-off-by: Chen Qi ---- - src/core/chown-recursive.c | 146 ++++++++++++++++++++++----------------------- - 1 file changed, 70 insertions(+), 76 deletions(-) - -diff --git a/src/core/chown-recursive.c b/src/core/chown-recursive.c -index c479450..27c6448 100644 ---- a/src/core/chown-recursive.c -+++ b/src/core/chown-recursive.c -@@ -1,17 +1,19 @@ - /* SPDX-License-Identifier: LGPL-2.1+ */ - --#include --#include - #include -+#include -+#include - --#include "user-util.h" --#include "macro.h" --#include "fd-util.h" --#include "dirent-util.h" - #include "chown-recursive.h" -+#include "dirent-util.h" -+#include "fd-util.h" -+#include "macro.h" -+#include "stdio-util.h" -+#include "strv.h" -+#include "user-util.h" - --static int chown_one(int fd, const char *name, const struct stat *st, uid_t uid, gid_t gid) { -- int r; -+static int chown_one(int fd, const struct stat *st, uid_t uid, gid_t gid) { -+ char procfs_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int) + 1]; - - assert(fd >= 0); - assert(st); -@@ -20,90 +22,82 @@ static int chown_one(int fd, const char *name, const struct stat *st, uid_t uid, - (!gid_is_valid(gid) || st->st_gid == gid)) - return 0; - -- if (name) -- r = fchownat(fd, name, uid, gid, AT_SYMLINK_NOFOLLOW); -- else -- r = fchown(fd, uid, gid); -- if (r < 0) -- return -errno; -+ /* We change ownership through the /proc/self/fd/%i path, so that we have a stable reference that works with -+ * O_PATH. (Note: fchown() and fchmod() do not work with O_PATH, the kernel refuses that. */ -+ xsprintf(procfs_path, "/proc/self/fd/%i", fd); - -- /* The linux kernel alters the mode in some cases of chown(). Let's undo this. */ -- if (name) { -- if (!S_ISLNK(st->st_mode)) -- r = fchmodat(fd, name, st->st_mode, 0); -- else /* There's currently no AT_SYMLINK_NOFOLLOW for fchmodat() */ -- r = 0; -- } else -- r = fchmod(fd, st->st_mode); -- if (r < 0) -+ if (chown(procfs_path, uid, gid) < 0) - return -errno; - -+ /* The linux kernel alters the mode in some cases of chown(). Let's undo this. We do this only for non-symlinks -+ * however. That's because for symlinks the access mode is ignored anyway and because on some kernels/file -+ * systems trying to change the access mode will succeed but has no effect while on others it actively -+ * fails. */ -+ if (!S_ISLNK(st->st_mode)) -+ if (chmod(procfs_path, st->st_mode & 07777) < 0) -+ return -errno; -+ - return 1; - } - - static int chown_recursive_internal(int fd, const struct stat *st, uid_t uid, gid_t gid) { -+ _cleanup_closedir_ DIR *d = NULL; - bool changed = false; -+ struct dirent *de; - int r; - - assert(fd >= 0); - assert(st); - -- if (S_ISDIR(st->st_mode)) { -- _cleanup_closedir_ DIR *d = NULL; -- struct dirent *de; -- -- d = fdopendir(fd); -- if (!d) { -- r = -errno; -- goto finish; -- } -- fd = -1; -- -- FOREACH_DIRENT_ALL(de, d, r = -errno; goto finish) { -- struct stat fst; -- -- if (dot_or_dot_dot(de->d_name)) -- continue; -- -- if (fstatat(dirfd(d), de->d_name, &fst, AT_SYMLINK_NOFOLLOW) < 0) { -- r = -errno; -- goto finish; -- } -- -- if (S_ISDIR(fst.st_mode)) { -- int subdir_fd; -- -- subdir_fd = openat(dirfd(d), de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME); -- if (subdir_fd < 0) { -- r = -errno; -- goto finish; -- } -- -- r = chown_recursive_internal(subdir_fd, &fst, uid, gid); -- if (r < 0) -- goto finish; -- if (r > 0) -- changed = true; -- } else { -- r = chown_one(dirfd(d), de->d_name, &fst, uid, gid); -- if (r < 0) -- goto finish; -- if (r > 0) -- changed = true; -- } -+ d = fdopendir(fd); -+ if (!d) { -+ safe_close(fd); -+ return -errno; -+ } -+ -+ FOREACH_DIRENT_ALL(de, d, return -errno) { -+ _cleanup_close_ int path_fd = -1; -+ struct stat fst; -+ -+ if (dot_or_dot_dot(de->d_name)) -+ continue; -+ -+ /* Let's pin the child inode we want to fix now with an O_PATH fd, so that it cannot be swapped out -+ * while we manipulate it. */ -+ path_fd = openat(dirfd(d), de->d_name, O_PATH|O_CLOEXEC|O_NOFOLLOW); -+ if (path_fd < 0) -+ return -errno; -+ -+ if (fstat(path_fd, &fst) < 0) -+ return -errno; -+ -+ if (S_ISDIR(fst.st_mode)) { -+ int subdir_fd; -+ -+ /* Convert it to a "real" (i.e. non-O_PATH) fd now */ -+ subdir_fd = fd_reopen(path_fd, O_RDONLY|O_CLOEXEC|O_NOATIME); -+ if (subdir_fd < 0) -+ return subdir_fd; -+ -+ r = chown_recursive_internal(subdir_fd, &fst, uid, gid); /* takes possession of subdir_fd even on failure */ -+ if (r < 0) -+ return r; -+ if (r > 0) -+ changed = true; -+ } else { -+ r = chown_one(path_fd, &fst, uid, gid); -+ if (r < 0) -+ return r; -+ if (r > 0) -+ changed = true; - } -+ } - -- r = chown_one(dirfd(d), NULL, st, uid, gid); -- } else -- r = chown_one(fd, NULL, st, uid, gid); -+ r = chown_one(dirfd(d), st, uid, gid); - if (r < 0) -- goto finish; -+ return r; - -- r = r > 0 || changed; -- --finish: -- safe_close(fd); -- return r; -+ return r > 0 || changed; - } - - int path_chown_recursive(const char *path, uid_t uid, gid_t gid) { -@@ -111,7 +105,7 @@ int path_chown_recursive(const char *path, uid_t uid, gid_t gid) { - struct stat st; - int r; - -- fd = open(path, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME); -+ fd = open(path, O_RDONLY|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW|O_NOATIME); - if (fd < 0) - return -errno; - --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-core-when-deserializing-state-always-use-read_line-L.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-core-when-deserializing-state-always-use-read_line-L.patch deleted file mode 100644 index 215d6807..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-core-when-deserializing-state-always-use-read_line-L.patch +++ /dev/null @@ -1,250 +0,0 @@ -From 1a05ff4948d778280ec155a9abe69d3360bfddd9 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 17 Oct 2018 18:36:24 +0200 -Subject: [PATCH] =?UTF-8?q?core:=20when=20deserializing=20state=20always?= - =?UTF-8?q?=20use=20read=5Fline(=E2=80=A6,=20LONG=5FLINE=5FMAX,=20?= - =?UTF-8?q?=E2=80=A6)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This should be much better than fgets(), as we can read substantially -longer lines and overly long lines result in proper errors. - -Fixes a vulnerability discovered by Jann Horn at Google. - -CVE-2018-15686 -LP: #1796402 -https://bugzilla.redhat.com/show_bug.cgi?id=1639071 - -(cherry picked from commit 8948b3415d762245ebf5e19d80b97d4d8cc208c1) - -CVE: CVE-2018-15686 -Upstream-Status: Backport - -Signed-off-by: Chen Qi ---- - src/core/job.c | 19 +++++++++++-------- - src/core/manager.c | 44 ++++++++++++++++++++------------------------ - src/core/unit.c | 34 ++++++++++++++++++---------------- - src/core/unit.h | 2 +- - 4 files changed, 50 insertions(+), 49 deletions(-) - -diff --git a/src/core/job.c b/src/core/job.c -index 734756b..8552ffb 100644 ---- a/src/core/job.c -+++ b/src/core/job.c -@@ -10,6 +10,7 @@ - #include "dbus-job.h" - #include "dbus.h" - #include "escape.h" -+#include "fileio.h" - #include "job.h" - #include "log.h" - #include "macro.h" -@@ -1091,24 +1092,26 @@ int job_serialize(Job *j, FILE *f) { - } - - int job_deserialize(Job *j, FILE *f) { -+ int r; -+ - assert(j); - assert(f); - - for (;;) { -- char line[LINE_MAX], *l, *v; -+ _cleanup_free_ char *line = NULL; -+ char *l, *v; - size_t k; - -- if (!fgets(line, sizeof(line), f)) { -- if (feof(f)) -- return 0; -- return -errno; -- } -+ r = read_line(f, LONG_LINE_MAX, &line); -+ if (r < 0) -+ return log_error_errno(r, "Failed to read serialization line: %m"); -+ if (r == 0) -+ return 0; - -- char_array_0(line); - l = strstrip(line); - - /* End marker */ -- if (l[0] == 0) -+ if (isempty(l)) - return 0; - - k = strcspn(l, "="); -diff --git a/src/core/manager.c b/src/core/manager.c -index 3a7f0c4..a5780c9 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -3171,22 +3171,19 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { - m->n_reloading++; - - for (;;) { -- char line[LINE_MAX]; -+ _cleanup_free_ char *line = NULL; - const char *val, *l; - -- if (!fgets(line, sizeof(line), f)) { -- if (feof(f)) -- r = 0; -- else -- r = -errno; -- -+ r = read_line(f, LONG_LINE_MAX, &line); -+ if (r < 0) { -+ log_error_errno(r, "Failed to read serialization line: %m"); - goto finish; - } -+ if (r == 0) -+ break; - -- char_array_0(line); - l = strstrip(line); -- -- if (l[0] == 0) -+ if (isempty(l)) /* end marker */ - break; - - if ((val = startswith(l, "current-job-id="))) { -@@ -3353,29 +3350,31 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { - } - - for (;;) { -- Unit *u; -- char name[UNIT_NAME_MAX+2]; -+ _cleanup_free_ char *line = NULL; - const char* unit_name; -+ Unit *u; - - /* Start marker */ -- if (!fgets(name, sizeof(name), f)) { -- if (feof(f)) -- r = 0; -- else -- r = -errno; -- -+ r = read_line(f, LONG_LINE_MAX, &line); -+ if (r < 0) { -+ log_error_errno(r, "Failed to read serialization line: %m"); - goto finish; - } -+ if (r == 0) -+ break; - -- char_array_0(name); -- unit_name = strstrip(name); -+ unit_name = strstrip(line); - - r = manager_load_unit(m, unit_name, NULL, NULL, &u); - if (r < 0) { - log_notice_errno(r, "Failed to load unit \"%s\", skipping deserialization: %m", unit_name); - if (r == -ENOMEM) - goto finish; -- unit_deserialize_skip(f); -+ -+ r = unit_deserialize_skip(f); -+ if (r < 0) -+ goto finish; -+ - continue; - } - -@@ -3388,9 +3387,6 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { - } - - finish: -- if (ferror(f)) -- r = -EIO; -- - assert(m->n_reloading > 0); - m->n_reloading--; - -diff --git a/src/core/unit.c b/src/core/unit.c -index 7da963a..e98c9c4 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -3380,21 +3380,19 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - assert(fds); - - for (;;) { -- char line[LINE_MAX], *l, *v; -+ _cleanup_free_ char *line = NULL; - CGroupIPAccountingMetric m; -+ char *l, *v; - size_t k; - -- if (!fgets(line, sizeof(line), f)) { -- if (feof(f)) -- return 0; -- return -errno; -- } -+ r = read_line(f, LONG_LINE_MAX, &line); -+ if (r < 0) -+ return log_error_errno(r, "Failed to read serialization line: %m"); -+ if (r == 0) /* eof */ -+ break; - -- char_array_0(line); - l = strstrip(line); -- -- /* End marker */ -- if (isempty(l)) -+ if (isempty(l)) /* End marker */ - break; - - k = strcspn(l, "="); -@@ -3671,23 +3669,27 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - return 0; - } - --void unit_deserialize_skip(FILE *f) { -+int unit_deserialize_skip(FILE *f) { -+ int r; - assert(f); - - /* Skip serialized data for this unit. We don't know what it is. */ - - for (;;) { -- char line[LINE_MAX], *l; -+ _cleanup_free_ char *line = NULL; -+ char *l; - -- if (!fgets(line, sizeof line, f)) -- return; -+ r = read_line(f, LONG_LINE_MAX, &line); -+ if (r < 0) -+ return log_error_errno(r, "Failed to read serialization line: %m"); -+ if (r == 0) -+ return 0; - -- char_array_0(line); - l = strstrip(line); - - /* End marker */ - if (isempty(l)) -- return; -+ return 1; - } - } - -diff --git a/src/core/unit.h b/src/core/unit.h -index 06321bb..51c7aaa 100644 ---- a/src/core/unit.h -+++ b/src/core/unit.h -@@ -684,7 +684,7 @@ bool unit_can_serialize(Unit *u) _pure_; - - int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs); - int unit_deserialize(Unit *u, FILE *f, FDSet *fds); --void unit_deserialize_skip(FILE *f); -+int unit_deserialize_skip(FILE *f); - - int unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value); - int unit_serialize_item_escaped(Unit *u, FILE *f, const char *key, const char *value); --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-dhcp6-make-sure-we-have-enough-space-for-the-DHCP6-o.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-dhcp6-make-sure-we-have-enough-space-for-the-DHCP6-o.patch deleted file mode 100644 index 0c912f25..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-dhcp6-make-sure-we-have-enough-space-for-the-DHCP6-o.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a2622b8398ba026faf481f5eddeb53231d9de4a7 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 19 Oct 2018 12:12:33 +0200 -Subject: [PATCH] dhcp6: make sure we have enough space for the DHCP6 option - header - -Fixes a vulnerability originally discovered by Felix Wilhelm from -Google. - -CVE-2018-15688 -LP: #1795921 -https://bugzilla.redhat.com/show_bug.cgi?id=1639067 - -(cherry picked from commit 4dac5eaba4e419b29c97da38a8b1f82336c2c892) - -CVE: CVE-2018-15688 -Upstream-Status: Backport - -Signed-off-by: Chen Qi ---- - src/libsystemd-network/dhcp6-option.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libsystemd-network/dhcp6-option.c b/src/libsystemd-network/dhcp6-option.c -index c4b402b..dcbaad0 100644 ---- a/src/libsystemd-network/dhcp6-option.c -+++ b/src/libsystemd-network/dhcp6-option.c -@@ -103,7 +103,7 @@ int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) { - return -EINVAL; - } - -- if (*buflen < len) -+ if (*buflen < offsetof(DHCP6Option, data) + len) - return -ENOBUFS; - - ia_hdr = *buf; --- -2.7.4 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch new file mode 100644 index 00000000..f1c7181e --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch @@ -0,0 +1,411 @@ +From f4a0caaea346b70cf5064f9159a53a1b8020071e Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Fri, 1 Mar 2019 15:22:15 +0800 +Subject: [PATCH] do not disable buffer in writing files + +Do not disable buffer in writing files, otherwise we get +failure at boot for musl like below. + + [!!!!!!] Failed to allocate manager object. + +And there will be other failures, critical or not critical. +This is specific to musl. + +Upstream-Status: Inappropriate [musl] + +Signed-off-by: Chen Qi +[Rebased for v242] +Signed-off-by: Andrej Valek +[rebased for systemd 243] +Signed-off-by: Scott Murray + +--- + src/basic/cgroup-util.c | 10 +++++----- + src/basic/procfs-util.c | 4 ++-- + src/basic/smack-util.c | 2 +- + src/basic/util.c | 2 +- + src/binfmt/binfmt.c | 6 +++--- + src/core/main.c | 4 ++-- + src/core/smack-setup.c | 8 ++++---- + src/hibernate-resume/hibernate-resume.c | 2 +- + src/libsystemd/sd-device/sd-device.c | 2 +- + 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 | 8 ++++---- + src/udev/udevadm-trigger.c | 2 +- + src/udev/udevd.c | 2 +- + src/vconsole/vconsole-setup.c | 2 +- + 18 files changed, 35 insertions(+), 35 deletions(-) + +diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c +index a5141f4cbedd..04c06e7a55cb 100644 +--- a/src/basic/cgroup-util.c ++++ b/src/basic/cgroup-util.c +@@ -739,7 +739,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { + + sc = strstrip(contents); + if (isempty(sc)) { +- r = write_string_file(fs, agent, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(fs, agent, 0); + if (r < 0) + return r; + } else if (!path_equal(sc, agent)) +@@ -757,7 +757,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { + + sc = strstrip(contents); + if (streq(sc, "0")) { +- r = write_string_file(fs, "1", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(fs, "1", 0); + if (r < 0) + return r; + +@@ -784,7 +784,7 @@ int cg_uninstall_release_agent(const char *controller) { + if (r < 0) + return r; + +- r = write_string_file(fs, "0", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(fs, "0", 0); + if (r < 0) + return r; + +@@ -794,7 +794,7 @@ int cg_uninstall_release_agent(const char *controller) { + if (r < 0) + return r; + +- r = write_string_file(fs, "", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(fs, "", 0); + if (r < 0) + return r; + +@@ -1650,7 +1650,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri + if (r < 0) + return r; + +- return write_string_file(p, value, WRITE_STRING_FILE_DISABLE_BUFFER); ++ return write_string_file(p, value, 0); + } + + int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) { +diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c +index da7e836f143e..2138f20bcc03 100644 +--- a/src/basic/procfs-util.c ++++ b/src/basic/procfs-util.c +@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) { + * 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 */ +- r = write_string_file("/proc/sys/kernel/pid_max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/sys/kernel/pid_max", buffer, 0); + if (r < 0) + return r; + } + + sprintf(buffer, "%" PRIu64, limit); +- r = write_string_file("/proc/sys/kernel/threads-max", buffer, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/sys/kernel/threads-max", buffer, 0); + if (r < 0) { + uint64_t threads_max; + +diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c +index da9a2139d31a..5e91f5b8f5d9 100644 +--- a/src/basic/smack-util.c ++++ b/src/basic/smack-util.c +@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) { + return 0; + + p = procfs_file_alloca(pid, "attr/current"); +- r = write_string_file(p, label, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(p, label, 0); + if (r < 0) + return r; + +diff --git a/src/basic/util.c b/src/basic/util.c +index 2b3b3918a32f..aff8d0fcd473 100644 +--- a/src/basic/util.c ++++ b/src/basic/util.c +@@ -267,7 +267,7 @@ void disable_coredumps(void) { + if (detect_container() > 0) + return; + +- r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0); + if (r < 0) + log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m"); + } +diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c +index 7ff844c78c3a..5c5721d7c2f7 100644 +--- a/src/binfmt/binfmt.c ++++ b/src/binfmt/binfmt.c +@@ -47,7 +47,7 @@ static int delete_rule(const char *rule) { + if (!fn) + return log_oom(); + +- return write_string_file(fn, "-1", WRITE_STRING_FILE_DISABLE_BUFFER); ++ return write_string_file(fn, "-1", 0); + } + + static int apply_rule(const char *rule) { +@@ -55,7 +55,7 @@ static int apply_rule(const char *rule) { + + (void) delete_rule(rule); + +- r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule, 0); + if (r < 0) + return log_error_errno(r, "Failed to add binary format: %m"); + +@@ -212,7 +212,7 @@ static int run(int argc, char *argv[]) { + } + + /* Flush out all rules */ +- (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", WRITE_STRING_FILE_DISABLE_BUFFER); ++ (void) write_string_file("/proc/sys/fs/binfmt_misc/status", "-1", 0); + + STRV_FOREACH(f, files) { + k = apply_file(*f, true); +diff --git a/src/core/main.c b/src/core/main.c +index c24b696b1663..195be7d2df0d 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -1303,7 +1303,7 @@ static int bump_unix_max_dgram_qlen(void) { + if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN) + return 0; + +- r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", WRITE_STRING_FILE_DISABLE_BUFFER, "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN); ++ r = write_string_filef("/proc/sys/net/unix/max_dgram_qlen", 0, "%lu", DEFAULT_UNIX_MAX_DGRAM_QLEN); + if (r < 0) + return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r, + "Failed to bump AF_UNIX datagram queue length, ignoring: %m"); +@@ -1527,7 +1527,7 @@ static void initialize_core_pattern(bool skip_setup) { + if (getpid_cached() != 1) + return; + +- r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/sys/kernel/core_pattern", arg_early_core_pattern, 0); + if (r < 0) + log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern); + } +diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c +index 4427397f2715..8aeb5c829513 100644 +--- a/src/core/smack-setup.c ++++ b/src/core/smack-setup.c +@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) { + } + + #ifdef SMACK_RUN_LABEL +- r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/self/attr/current", SMACK_RUN_LABEL, 0); + if (r < 0) + log_warning_errno(r, "Failed to set SMACK label \"" SMACK_RUN_LABEL "\" on self: %m"); +- r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/fs/smackfs/ambient", SMACK_RUN_LABEL, 0); + if (r < 0) + log_warning_errno(r, "Failed to set SMACK ambient label \"" SMACK_RUN_LABEL "\": %m"); + r = write_string_file("/sys/fs/smackfs/netlabel", +- "0.0.0.0/0 " SMACK_RUN_LABEL, WRITE_STRING_FILE_DISABLE_BUFFER); ++ "0.0.0.0/0 " SMACK_RUN_LABEL, 0); + if (r < 0) + log_warning_errno(r, "Failed to set SMACK netlabel rule \"0.0.0.0/0 " SMACK_RUN_LABEL "\": %m"); +- r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/fs/smackfs/netlabel", "127.0.0.1 -CIPSO", 0); + if (r < 0) + log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m"); + #endif +diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c +index 17e7cd1a009b..87a766771663 100644 +--- a/src/hibernate-resume/hibernate-resume.c ++++ b/src/hibernate-resume/hibernate-resume.c +@@ -45,7 +45,7 @@ int main(int argc, char *argv[]) { + return EXIT_FAILURE; + } + +- r = write_string_file("/sys/power/resume", major_minor, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/power/resume", major_minor, 0); + if (r < 0) { + log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor); + return EXIT_FAILURE; +diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c +index f35612fe12bc..20351bf7fa70 100644 +--- a/src/libsystemd/sd-device/sd-device.c ++++ b/src/libsystemd/sd-device/sd-device.c +@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, + if (!value) + return -ENOMEM; + +- r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW); ++ r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW); + if (r < 0) { + if (r == -ELOOP) + return -EINVAL; +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 69b59948786f..b4973c596d48 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -1322,7 +1322,7 @@ static int trigger_device(Manager *m, sd_device *d) { + if (!t) + return -ENOMEM; + +- (void) write_string_file(t, "change", WRITE_STRING_FILE_DISABLE_BUFFER); ++ (void) write_string_file(t, "change", 0); + } + + return 0; +diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c +index f5048d9473cb..b6383ab5c97e 100644 +--- a/src/nspawn/nspawn-cgroup.c ++++ b/src/nspawn/nspawn-cgroup.c +@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { + fn = strjoina(tree, cgroup, "/cgroup.procs"); + + sprintf(pid_string, PID_FMT, pid); +- r = write_string_file(fn, pid_string, WRITE_STRING_FILE_DISABLE_BUFFER|WRITE_STRING_FILE_MKDIR_0755); ++ r = write_string_file(fn, pid_string, WRITE_STRING_FILE_MKDIR_0755); + if (r < 0) { + log_error_errno(r, "Failed to move process: %m"); + goto finish; +diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c +index 873a76596f0b..4e496548bb94 100644 +--- a/src/nspawn/nspawn.c ++++ b/src/nspawn/nspawn.c +@@ -2425,7 +2425,7 @@ static int reset_audit_loginuid(void) { + if (streq(p, "4294967295")) + return 0; + +- r = write_string_file("/proc/self/loginuid", "4294967295", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/proc/self/loginuid", "4294967295", 0); + if (r < 0) { + log_error_errno(r, + "Failed to reset audit login UID. This probably means that your kernel is too\n" +@@ -3633,13 +3633,13 @@ static int setup_uid_map(pid_t pid) { + + 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); +- r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(uid_map, line, 0); + if (r < 0) + return log_error_errno(r, "Failed to write UID map: %m"); + + /* We always assign the same UID and GID ranges */ + xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid); +- r = write_string_file(uid_map, line, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(uid_map, line, 0); + if (r < 0) + return log_error_errno(r, "Failed to write GID map: %m"); + +diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c +index e8398cbde5ba..ba682ec0c9e7 100644 +--- a/src/shared/cgroup-setup.c ++++ b/src/shared/cgroup-setup.c +@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { + + 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); +diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c +index 12fb3ef7ea0e..132ac847c091 100644 +--- a/src/shared/sysctl-util.c ++++ b/src/shared/sysctl-util.c +@@ -87,7 +87,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c + + log_debug("Setting '%s' to '%s'", p, value); + +- return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER); ++ return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0); + } + + int sysctl_read(const char *property, char **content) { +diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c +index 89b80367f8f4..33dbb21364d0 100644 +--- a/src/sleep/sleep.c ++++ b/src/sleep/sleep.c +@@ -45,7 +45,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca + assert(hibernate_location->swap); + assert(hibernate_location->resume); + +- r = write_string_file("/sys/power/resume", hibernate_location->resume, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/power/resume", hibernate_location->resume, 0); + if (r < 0) + return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m", + hibernate_location->swap->device, hibernate_location->resume); +@@ -72,7 +72,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca + } + + xsprintf(offset_str, "%" PRIu64, hibernate_location->resume_offset); +- r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/power/resume_offset", offset_str, 0); + if (r < 0) + return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m", + hibernate_location->swap->device, offset_str); +@@ -89,7 +89,7 @@ static int write_mode(char **modes) { + STRV_FOREACH(mode, modes) { + int k; + +- k = write_string_file("/sys/power/disk", *mode, WRITE_STRING_FILE_DISABLE_BUFFER); ++ k = write_string_file("/sys/power/disk", *mode, 0); + if (k >= 0) + return 0; + +@@ -108,7 +108,7 @@ static int write_state(FILE **f, char **states) { + STRV_FOREACH(state, states) { + int k; + +- k = write_string_stream(*f, *state, WRITE_STRING_FILE_DISABLE_BUFFER); ++ k = write_string_stream(*f, *state, 0); + if (k >= 0) + return 0; + log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state); +diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c +index 60c68b5029cf..fdca03d3d42c 100644 +--- a/src/udev/udevadm-trigger.c ++++ b/src/udev/udevadm-trigger.c +@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se + 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) { + bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS); + +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index 7678331897f5..6871cde7aa65 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -1089,7 +1089,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) { + + filename = strjoina(syspath, "/uevent"); + log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath); +- r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file(filename, "change", 0); + if (r < 0) + return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename); + return 0; +diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c +index 9d706085fb47..30dcfa86f4d0 100644 +--- a/src/vconsole/vconsole-setup.c ++++ b/src/vconsole/vconsole-setup.c +@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) { + static int toggle_utf8_sysfs(bool utf8) { + int r; + +- r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), WRITE_STRING_FILE_DISABLE_BUFFER); ++ r = write_string_file("/sys/module/vt/parameters/default_utf8", one_zero(utf8), 0); + if (r < 0) + return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8)); + diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch deleted file mode 100644 index ba08e345..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 86d18f3b09ec984ef3732567af992adb2dc77a8a Mon Sep 17 00:00:00 2001 -From: Yu Watanabe -Date: Mon, 9 Jul 2018 14:05:20 +0900 -Subject: [PATCH] login: use parse_uid() when unmounting user runtime directory - -When unmounting user runtime directory, only UID is necessary, -and the corresponding user may not exist anymore. -This makes first try to parse the input by parse_uid(), and only if it -fails, prase the input by get_user_creds(). - -Fixes #9541. - -Upstream-Status: Backport ---- - src/login/user-runtime-dir.c | 57 ++++++++++++++++++++++++++++---------------- - 1 file changed, 36 insertions(+), 21 deletions(-) - -diff --git a/src/login/user-runtime-dir.c b/src/login/user-runtime-dir.c -index 1bb26c99e..de4061c75 100644 ---- a/src/login/user-runtime-dir.c -+++ b/src/login/user-runtime-dir.c -@@ -111,8 +111,22 @@ static int user_remove_runtime_path(const char *runtime_path) { - return r; - } - --static int do_mount(const char *runtime_path, uid_t uid, gid_t gid) { -+static int do_mount(const char *user) { -+ char runtime_path[sizeof("/run/user") + DECIMAL_STR_MAX(uid_t)]; - size_t runtime_dir_size; -+ uid_t uid; -+ gid_t gid; -+ int r; -+ -+ r = get_user_creds(&user, &uid, &gid, NULL, NULL); -+ if (r < 0) -+ return log_error_errno(r, -+ r == -ESRCH ? "No such user \"%s\"" : -+ r == -ENOMSG ? "UID \"%s\" is invalid or has an invalid main group" -+ : "Failed to look up user \"%s\": %m", -+ user); -+ -+ xsprintf(runtime_path, "/run/user/" UID_FMT, uid); - - assert_se(gather_configuration(&runtime_dir_size) == 0); - -@@ -120,16 +134,30 @@ static int do_mount(const char *runtime_path, uid_t uid, gid_t gid) { - return user_mkdir_runtime_path(runtime_path, uid, gid, runtime_dir_size); - } - --static int do_umount(const char *runtime_path) { -+static int do_umount(const char *user) { -+ char runtime_path[sizeof("/run/user") + DECIMAL_STR_MAX(uid_t)]; -+ uid_t uid; -+ int r; -+ -+ /* The user may be already removed. So, first try to parse the string by parse_uid(), -+ * and if it fails, fallback to get_user_creds().*/ -+ if (parse_uid(user, &uid) < 0) { -+ r = get_user_creds(&user, &uid, NULL, NULL, NULL); -+ if (r < 0) -+ return log_error_errno(r, -+ r == -ESRCH ? "No such user \"%s\"" : -+ r == -ENOMSG ? "UID \"%s\" is invalid or has an invalid main group" -+ : "Failed to look up user \"%s\": %m", -+ user); -+ } -+ -+ xsprintf(runtime_path, "/run/user/" UID_FMT, uid); -+ - log_debug("Will remove %s", runtime_path); - return user_remove_runtime_path(runtime_path); - } - - int main(int argc, char *argv[]) { -- const char *user; -- uid_t uid; -- gid_t gid; -- char runtime_path[sizeof("/run/user") + DECIMAL_STR_MAX(uid_t)]; - int r; - - log_parse_environment(); -@@ -146,23 +174,10 @@ int main(int argc, char *argv[]) { - - umask(0022); - -- user = argv[2]; -- r = get_user_creds(&user, &uid, &gid, NULL, NULL); -- if (r < 0) { -- log_error_errno(r, -- r == -ESRCH ? "No such user \"%s\"" : -- r == -ENOMSG ? "UID \"%s\" is invalid or has an invalid main group" -- : "Failed to look up user \"%s\": %m", -- user); -- return EXIT_FAILURE; -- } -- -- xsprintf(runtime_path, "/run/user/" UID_FMT, uid); -- - if (streq(argv[1], "start")) -- r = do_mount(runtime_path, uid, gid); -+ r = do_mount(argv[2]); - else if (streq(argv[1], "stop")) -- r = do_umount(runtime_path); -+ r = do_umount(argv[2]); - else - assert_not_reached("Unknown verb!"); - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-meson-rename-Ddebug-to-Ddebug-extra.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-meson-rename-Ddebug-to-Ddebug-extra.patch deleted file mode 100644 index d6d305cb..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-meson-rename-Ddebug-to-Ddebug-extra.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 8f6b442a78d0b485f044742ad90b2e8271b4e68e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 19 Aug 2018 19:11:30 +0200 -Subject: [PATCH] meson: rename -Ddebug to -Ddebug-extra - -Meson added -Doptimization and -Ddebug options, which obviously causes -a conflict with our -Ddebug options. Let's rename it. - -Fixes #9883. -Upstream-Status: Backport -Signed-off-by: Alexander Kanavin ---- - meson.build | 2 +- - meson_options.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index f79ac4b12..2209c935a 100644 ---- a/meson.build -+++ b/meson.build -@@ -763,7 +763,7 @@ substs.set('DEBUGTTY', get_option('debug-tty')) - - enable_debug_hashmap = false - enable_debug_mmap_cache = false --foreach name : get_option('debug') -+foreach name : get_option('debug-extra') - if name == 'hashmap' - enable_debug_hashmap = true - elif name == 'mmap-cache' -diff --git a/meson_options.txt b/meson_options.txt -index e3140c8c1..7b1f61bf4 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -45,7 +45,7 @@ option('debug-shell', type : 'string', value : '/bin/sh', - description : 'path to debug shell binary') - option('debug-tty', type : 'string', value : '/dev/tty9', - description : 'specify the tty device for debug shell') --option('debug', type : 'array', choices : ['hashmap', 'mmap-cache'], value : [], -+option('debug-extra', type : 'array', choices : ['hashmap', 'mmap-cache'], value : [], - description : 'enable extra debugging') - option('memory-accounting-default', type : 'boolean', - description : 'enable MemoryAccounting= by default') --- -2.17.1 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-sd-bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-sd-bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch deleted file mode 100644 index 45c9b5b1..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-sd-bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch +++ /dev/null @@ -1,175 +0,0 @@ -From 5b75a72ee968c9666b5f2ea313720b6c383cb4c2 Mon Sep 17 00:00:00 2001 -From: Yu Watanabe -Date: Fri, 13 Jul 2018 17:38:47 +0900 -Subject: [PATCH] sd-bus: make BUS_DEFAULT_TIMEOUT configurable - -This adds sd_bus_{get,set}_method_call_timeout(). -If the timeout is not set or set to 0, then the timeout value is -parsed from $SYSTEMD_BUS_TIMEOUT= environment variable. If the -environment variable is not set, then built-in timeout is used. ---- - doc/ENVIRONMENT.md | 5 +++++ - src/libsystemd/libsystemd.sym | 5 +++++ - src/libsystemd/sd-bus/bus-internal.h | 9 ++++---- - src/libsystemd/sd-bus/bus-message.c | 7 +++++-- - src/libsystemd/sd-bus/sd-bus.c | 40 ++++++++++++++++++++++++++++++++++-- - src/systemd/sd-bus.h | 3 +++ - 6 files changed, 61 insertions(+), 8 deletions(-) - -Upstream-Status: Backport - -Signed-off-by: Chen Qi - -diff --git a/doc/ENVIRONMENT.md b/doc/ENVIRONMENT.md -index 85d26fe28c..641a03d5d7 100644 ---- a/doc/ENVIRONMENT.md -+++ b/doc/ENVIRONMENT.md -@@ -37,6 +37,11 @@ All tools: - useful for debugging, in order to test generators and other code against - specific kernel command lines. - -+* `$SYSTEMD_BUS_TIMEOUT=SECS` — specifies the maximum time to wait for method call -+ completion. If no time unit is specified, assumes seconds. The usual other units -+ are understood, too (us, ms, s, min, h, d, w, month, y). If it is not set or set -+ to 0, then the built-in default is used. -+ - systemctl: - - * `$SYSTEMCTL_FORCE_BUS=1` — if set, do not connect to PID1's private D-Bus -diff --git a/src/libsystemd/libsystemd.sym b/src/libsystemd/libsystemd.sym -index 1eec17db50..006dbc9c3f 100644 ---- a/src/libsystemd/libsystemd.sym -+++ b/src/libsystemd/libsystemd.sym -@@ -570,3 +570,8 @@ global: - sd_event_source_set_destroy_callback; - sd_event_source_get_destroy_callback; - } LIBSYSTEMD_238; -+ -+LIBSYSTEMD_240 { -+ sd_bus_set_method_call_timeout; -+ sd_bus_get_method_call_timeout; -+} LIBSYSTEMD_239; -diff --git a/src/libsystemd/sd-bus/bus-internal.h b/src/libsystemd/sd-bus/bus-internal.h -index 2087ef8eeb..4864b1e911 100644 ---- a/src/libsystemd/sd-bus/bus-internal.h -+++ b/src/libsystemd/sd-bus/bus-internal.h -@@ -319,6 +319,9 @@ struct sd_bus { - - int *inotify_watches; - size_t n_inotify_watches; -+ -+ /* zero means use value specified by $SYSTEMD_BUS_TIMEOUT= environment variable or built-in default */ -+ usec_t method_call_timeout; - }; - - /* For method calls we time-out at 25s, like in the D-Bus reference implementation */ -@@ -336,8 +339,7 @@ struct sd_bus { - - #define BUS_CONTAINER_DEPTH 128 - --/* Defined by the specification as maximum size of an array in -- * bytes */ -+/* Defined by the specification as maximum size of an array in bytes */ - #define BUS_ARRAY_MAX_SIZE 67108864 - - #define BUS_FDS_MAX 1024 -@@ -388,8 +390,7 @@ void bus_close_io_fds(sd_bus *b); - _slash = streq((prefix), "/") ? NULL : strrchr((prefix), '/')) - - /* If we are invoking callbacks of a bus object, ensure unreffing the -- * bus from the callback doesn't destroy the object we are working -- * on */ -+ * bus from the callback doesn't destroy the object we are working on */ - #define BUS_DONT_DESTROY(bus) \ - _cleanup_(sd_bus_unrefp) _unused_ sd_bus *_dont_destroy_##bus = sd_bus_ref(bus) - -diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index 8d92bc2002..dffe70a665 100644 ---- a/src/libsystemd/sd-bus/bus-message.c -+++ b/src/libsystemd/sd-bus/bus-message.c -@@ -5809,8 +5809,11 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) { - return r; - - timeout = (*m)->timeout; -- if (timeout == 0 && !((*m)->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)) -- timeout = BUS_DEFAULT_TIMEOUT; -+ if (timeout == 0 && !((*m)->header->flags & BUS_MESSAGE_NO_REPLY_EXPECTED)) { -+ r = sd_bus_get_method_call_timeout(bus, &timeout); -+ if (r < 0) -+ return r; -+ } - - r = sd_bus_message_seal(n, BUS_MESSAGE_COOKIE(*m), timeout); - if (r < 0) -diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index 089b51a6d9..945490ebf7 100644 ---- a/src/libsystemd/sd-bus/sd-bus.c -+++ b/src/libsystemd/sd-bus/sd-bus.c -@@ -1611,8 +1611,11 @@ static int bus_seal_message(sd_bus *b, sd_bus_message *m, usec_t timeout) { - return 0; - } - -- if (timeout == 0) -- timeout = BUS_DEFAULT_TIMEOUT; -+ if (timeout == 0) { -+ r = sd_bus_get_method_call_timeout(b, &timeout); -+ if (r < 0) -+ return r; -+ } - - if (!m->sender && b->patch_sender) { - r = sd_bus_message_set_sender(m, b->patch_sender); -@@ -4075,3 +4078,36 @@ _public_ int sd_bus_get_n_queued_write(sd_bus *bus, uint64_t *ret) { - *ret = bus->wqueue_size; - return 0; - } -+ -+_public_ int sd_bus_set_method_call_timeout(sd_bus *bus, uint64_t usec) { -+ assert_return(bus, -EINVAL); -+ assert_return(bus = bus_resolve(bus), -ENOPKG); -+ -+ bus->method_call_timeout = usec; -+ return 0; -+} -+ -+_public_ int sd_bus_get_method_call_timeout(sd_bus *bus, uint64_t *ret) { -+ const char *e; -+ usec_t usec; -+ -+ assert_return(bus, -EINVAL); -+ assert_return(bus = bus_resolve(bus), -ENOPKG); -+ assert_return(ret, -EINVAL); -+ -+ if (bus->method_call_timeout != 0) { -+ *ret = bus->method_call_timeout; -+ return 0; -+ } -+ -+ e = secure_getenv("SYSTEMD_BUS_TIMEOUT"); -+ if (e && parse_sec(e, &usec) >= 0 && usec != 0) { -+ /* Save the parsed value to avoid multiple parsing. To change the timeout value, -+ * use sd_bus_set_method_call_timeout() instead of setenv(). */ -+ *ret = bus->method_call_timeout = usec; -+ return 0; -+ } -+ -+ *ret = bus->method_call_timeout = BUS_DEFAULT_TIMEOUT; -+ return 0; -+} -diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h -index 54c4b1ca83..c9fd254834 100644 ---- a/src/systemd/sd-bus.h -+++ b/src/systemd/sd-bus.h -@@ -206,6 +206,9 @@ sd_event *sd_bus_get_event(sd_bus *bus); - int sd_bus_get_n_queued_read(sd_bus *bus, uint64_t *ret); - int sd_bus_get_n_queued_write(sd_bus *bus, uint64_t *ret); - -+int sd_bus_set_method_call_timeout(sd_bus *bus, uint64_t usec); -+int sd_bus_get_method_call_timeout(sd_bus *bus, uint64_t *ret); -+ - int sd_bus_add_filter(sd_bus *bus, sd_bus_slot **slot, sd_bus_message_handler_t callback, void *userdata); - int sd_bus_add_match(sd_bus *bus, sd_bus_slot **slot, const char *match, sd_bus_message_handler_t callback, void *userdata); - int sd_bus_add_match_async(sd_bus *bus, sd_bus_slot **slot, const char *match, sd_bus_message_handler_t callback, sd_bus_message_handler_t install_callback, void *userdata); --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-sysctl-Don-t-pass-null-directive-argument-to-s.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-sysctl-Don-t-pass-null-directive-argument-to-s.patch deleted file mode 100644 index 0538c7bb..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-sysctl-Don-t-pass-null-directive-argument-to-s.patch +++ /dev/null @@ -1,31 +0,0 @@ -From bfc4183ea995f1c211385d066cdb1fe9ce89f621 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 16 Dec 2018 20:53:38 -0800 -Subject: [PATCH 1/2] sysctl: Don't pass null directive argument to '%s' - -value pointer here is always NULL but subsequent use of that pointer -with a %s format will always be NULL, printing p instead would be a -valid string - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/11179] - src/sysctl/sysctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c -index 1cfe51018..c67d79032 100644 ---- a/src/sysctl/sysctl.c -+++ b/src/sysctl/sysctl.c -@@ -115,7 +115,7 @@ static int parse_file(OrderedHashmap *sysctl_options, const char *path, bool ign - - value = strchr(p, '='); - if (!value) { -- log_error("Line is not an assignment at '%s:%u': %s", path, c, value); -+ log_error("Line is not an assignment at '%s:%u': %s", path, c, p); - - if (r == 0) - r = -EINVAL; --- -2.20.1 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0001-timesync-changes-type-of-drift_freq-to-int64_t.patch b/external/poky/meta/recipes-core/systemd/systemd/0001-timesync-changes-type-of-drift_freq-to-int64_t.patch deleted file mode 100644 index 8d395c2f..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0001-timesync-changes-type-of-drift_freq-to-int64_t.patch +++ /dev/null @@ -1,49 +0,0 @@ -Backport patch to fix systemd build failure on x32. - -Upstream-Status: Backport [https://github.com/systemd/systemd/commit/75ca162] - -Signed-off-by: Kai Kang - -From 75ca1621db4647a4d62d7873cd6715e28fe0f9fa Mon Sep 17 00:00:00 2001 -From: Yu Watanabe -Date: Sat, 23 Jun 2018 09:41:55 +0900 -Subject: [PATCH] timesync: changes type of drift_freq to int64_t - -drift_freq is used for storing timex.freq, and is a 64bit integer. -To support x32 ABI, this changes the type of drift_freq to int64_t. - -Fixes #9387. ---- - src/timesync/timesyncd-manager.c | 2 +- - src/timesync/timesyncd-manager.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/timesync/timesyncd-manager.c b/src/timesync/timesyncd-manager.c -index 2b731af9e..404a2b189 100644 ---- a/src/timesync/timesyncd-manager.c -+++ b/src/timesync/timesyncd-manager.c -@@ -604,7 +604,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re - m->dest_time = *recv_time; - m->spike = spike; - -- log_debug("interval/delta/delay/jitter/drift " USEC_FMT "s/%+.3fs/%.3fs/%.3fs/%+"PRI_TIMEX"ppm%s", -+ log_debug("interval/delta/delay/jitter/drift " USEC_FMT "s/%+.3fs/%.3fs/%.3fs/%+"PRIi64"ppm%s", - m->poll_interval_usec / USEC_PER_SEC, offset, delay, m->samples_jitter, m->drift_freq / 65536, - spike ? " (ignored)" : ""); - -diff --git a/src/timesync/timesyncd-manager.h b/src/timesync/timesyncd-manager.h -index d8d97cc1e..18347416d 100644 ---- a/src/timesync/timesyncd-manager.h -+++ b/src/timesync/timesyncd-manager.h -@@ -79,7 +79,7 @@ struct Manager { - /* last change */ - bool jumped; - bool sync; -- long drift_freq; -+ int64_t drift_freq; - - /* watch for time changes */ - sd_event_source *event_clock_watch; --- -2.17.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0002-core-Fix-use-after-free-case-in-load_from_path.patch b/external/poky/meta/recipes-core/systemd/systemd/0002-core-Fix-use-after-free-case-in-load_from_path.patch deleted file mode 100644 index 4da96e29..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0002-core-Fix-use-after-free-case-in-load_from_path.patch +++ /dev/null @@ -1,43 +0,0 @@ -From cb67aebd63d9f0077cbf3e769f0b223c5bba20ac Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 16 Dec 2018 20:58:35 -0800 -Subject: [PATCH 2/2] core: Fix use after free case in load_from_path() - -ensure that mfree() on filename is called after the logging function -which uses the string pointed by filename - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/11179] - src/core/load-fragment.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index fc5644f48..da585786e 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -4531,7 +4531,6 @@ static int load_from_path(Unit *u, const char *path) { - r = open_follow(&filename, &f, symlink_names, &id); - if (r >= 0) - break; -- filename = mfree(filename); - - /* ENOENT means that the file is missing or is a dangling symlink. - * ENOTDIR means that one of paths we expect to be is a directory -@@ -4540,9 +4539,12 @@ static int load_from_path(Unit *u, const char *path) { - */ - if (r == -EACCES) - log_debug_errno(r, "Cannot access \"%s\": %m", filename); -- else if (!IN_SET(r, -ENOENT, -ENOTDIR)) -+ else if (!IN_SET(r, -ENOENT, -ENOTDIR)) { -+ filename = mfree(filename); - return r; -+ } - -+ filename = mfree(filename); - /* Empty the symlink names for the next run */ - set_clear_free(symlink_names); - } --- -2.20.1 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/external/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch index 8e0d669e..6b85ff0f 100644 --- a/external/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch +++ b/external/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch @@ -1,31 +1,100 @@ -From d74a4de6daea5a511c2b5636bbb552c15b3a4ad9 Mon Sep 17 00:00:00 2001 -From: Emil Renner Berthing -Date: Thu, 18 Sep 2014 15:24:56 +0200 +From 49501c80d32c1bc5ecb07f40c324feb82af0b057 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 13:41:41 +0800 Subject: [PATCH] don't use glibc-specific qsort_r Upstream-Status: Inappropriate [musl specific] Signed-off-by: Khem Raj +[Rebased for v241] +Signed-off-by: Chen Qi +[Rebased for v242] +Signed-off-by: Andrej Valek + --- - src/basic/format-table.c | 27 ++++++++++++++++----------- - src/basic/util.h | 7 ------- - src/hwdb/hwdb.c | 18 +++++++++++------- - src/udev/udevadm-hwdb.c | 16 ++++++++++------ - 4 files changed, 37 insertions(+), 31 deletions(-) + 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/format-table.c b/src/basic/format-table.c -index 94e796d1ca..9b3f35c29a 100644 ---- a/src/basic/format-table.c -+++ b/src/basic/format-table.c -@@ -745,29 +745,29 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t +diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h +index e029f8646eb0..27d68b341cf3 100644 +--- a/src/basic/sort-util.h ++++ b/src/basic/sort-util.h +@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn + int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = 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) { +- if (nmemb <= 1) +- return; +- +- assert(base); +- qsort_r(base, nmemb, size, compar, userdata); +-} +- +-#define typesafe_qsort_r(p, n, func, userdata) \ +- ({ \ +- int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ +- qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ +- }) +diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c +index c83575c7c876..72f8f3a05048 100644 +--- a/src/libsystemd/sd-hwdb/hwdb-util.c ++++ b/src/libsystemd/sd-hwdb/hwdb-util.c +@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) { + + DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); + +-static int trie_values_cmp(const struct trie_value_entry *a, const struct trie_value_entry *b, struct trie *trie) { +- return strcmp(trie->strings->buf + a->key_off, +- trie->strings->buf + b->key_off); ++static struct trie *trie_node_add_value_trie; ++static int trie_values_cmp(const void *v1, const void *v2) { ++ const struct trie_value_entry *a = v1; ++ const struct trie_value_entry *b = v2; ++ ++ return strcmp(trie_node_add_value_trie->strings->buf + a->key_off, ++ trie_node_add_value_trie->strings->buf + b->key_off); + } + + 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, + .value_off = v, + }; + +- val = typesafe_bsearch_r(&search, node->values, node->values_count, trie_values_cmp, trie); ++ trie_node_add_value_trie = trie; ++ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); ++ trie_node_add_value_trie = NULL; ++ + 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, + .line_number = line_number, + }; + node->values_count++; +- typesafe_qsort_r(node->values, node->values_count, trie_values_cmp, trie); ++ trie_node_add_value_trie = trie; ++ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); ++ trie_node_add_value_trie = NULL; return 0; } --static int table_data_compare(const void *x, const void *y, void *userdata) { +diff --git a/src/shared/format-table.c b/src/shared/format-table.c +index 4617ae8badc4..17d6b9616256 100644 +--- a/src/shared/format-table.c ++++ b/src/shared/format-table.c +@@ -1109,31 +1109,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t + return CMP(index_a, index_b); + } + +-static int table_data_compare(const size_t *a, const size_t *b, Table *t) { +static Table *user_table; +static int table_data_compare(const void *x, const void *y) { - const size_t *a = x, *b = y; -- Table *t = userdata; ++ const size_t *a = x, *b=y; size_t i; int r; @@ -57,11 +126,16 @@ index 94e796d1ca..9b3f35c29a 100644 r = cell_data_compare(d, *a, dd, *b); if (r != 0) -@@ -960,7 +960,12 @@ int table_print(Table *t, FILE *f) { +- return t->reverse_map && t->reverse_map[t->sort_map[i]] ? -r : r; ++ return user_table->reverse_map && user_table->reverse_map[user_table->sort_map[i]] ? -r : r; + } + + /* Order identical lines by the order there were originally added in */ +@@ -1533,7 +1535,12 @@ int table_print(Table *t, FILE *f) { for (i = 0; i < n_rows; i++) sorted[i] = i * t->n_columns; -- qsort_r_safe(sorted, n_rows, sizeof(size_t), table_data_compare, t); +- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); + if (n_rows <= 1) + return 0; + assert(sorted); @@ -71,113 +145,17 @@ index 94e796d1ca..9b3f35c29a 100644 } if (t->display_map) -diff --git a/src/basic/util.h b/src/basic/util.h -index 9699d228f9..40eaf518cb 100644 ---- a/src/basic/util.h -+++ b/src/basic/util.h -@@ -105,13 +105,6 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, comparison_ - 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, int (*compar)(const void*, const void*, void*), void *userdata) { -- if (nmemb <= 1) -- return; -- -- assert(base); -- qsort_r(base, nmemb, size, compar, userdata); --} - - /** - * Normal memcpy requires src to be nonnull. We do nothing if n is 0. -diff --git a/src/hwdb/hwdb.c b/src/hwdb/hwdb.c -index 317cad8a67..701d59a1eb 100644 ---- a/src/hwdb/hwdb.c -+++ b/src/hwdb/hwdb.c -@@ -135,13 +135,12 @@ static void trie_free(struct trie *trie) { - - DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); - --static int trie_values_cmp(const void *v1, const void *v2, void *arg) { -+static struct trie *trie_node_add_value_trie; -+static int trie_values_cmp(const void *v1, const void *v2) { - const struct trie_value_entry *val1 = v1; - const struct trie_value_entry *val2 = v2; -- struct trie *trie = arg; -- -- return strcmp(trie->strings->buf + val1->key_off, -- trie->strings->buf + val2->key_off); -+ return strcmp(trie_node_add_value_trie->strings->buf + val1->key_off, -+ trie_node_add_value_trie->strings->buf + val2->key_off); - } - - static int trie_node_add_value(struct trie *trie, struct trie_node *node, -@@ -166,7 +165,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, - .value_off = v, - }; - -- val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie); -+ trie_node_add_value_trie = trie; -+ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); -+ trie_node_add_value_trie = NULL; -+ - 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. -@@ -191,7 +193,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, - node->values[node->values_count].file_priority = file_priority; - node->values[node->values_count].line_number = line_number; - node->values_count++; -- qsort_r(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie); -+ trie_node_add_value_trie = trie; -+ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); -+ trie_node_add_value_trie = NULL; - return 0; - } - -diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c -index 02408a4285..491d367d12 100644 ---- a/src/udev/udevadm-hwdb.c -+++ b/src/udev/udevadm-hwdb.c -@@ -114,13 +114,13 @@ static void trie_node_cleanup(struct trie_node *node) { - free(node); - } - --static int trie_values_cmp(const void *v1, const void *v2, void *arg) { -+static struct trie *trie_node_add_value_trie; -+static int trie_values_cmp(const void *v1, const void *v2) { - const struct trie_value_entry *val1 = v1; - const struct trie_value_entry *val2 = v2; -- struct trie *trie = arg; - -- return strcmp(trie->strings->buf + val1->key_off, -- trie->strings->buf + val2->key_off); -+ return strcmp(trie_node_add_value_trie->strings->buf + val1->key_off, -+ trie_node_add_value_trie->strings->buf + val2->key_off); - } - - static int trie_node_add_value(struct trie *trie, struct trie_node *node, -@@ -141,7 +141,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, - .value_off = v, - }; +@@ -1997,7 +2004,12 @@ int table_to_json(Table *t, JsonVariant **ret) { + for (i = 0; i < n_rows; i++) + sorted[i] = i * t->n_columns; -- val = xbsearch_r(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie); -+ trie_node_add_value_trie = trie; -+ val = bsearch(&search, node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); -+ trie_node_add_value_trie = NULL; - if (val) { - /* replace existing earlier key with new value */ - val->value_off = v; -@@ -158,7 +160,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, - node->values[node->values_count].key_off = k; - node->values[node->values_count].value_off = v; - node->values_count++; -- qsort_r(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp, trie); -+ trie_node_add_value_trie = trie; -+ qsort(node->values, node->values_count, sizeof(struct trie_value_entry), trie_values_cmp); -+ trie_node_add_value_trie = NULL; - return 0; - } +- typesafe_qsort_r(sorted, n_rows, table_data_compare, t); ++ if (n_rows <= 1) ++ return 0; ++ assert(sorted); ++ user_table = t; ++ qsort(sorted, n_rows, sizeof(size_t), table_data_compare); ++ user_table = NULL; + } --- -2.18.0 - + if (t->display_map) diff --git a/external/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch b/external/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch new file mode 100644 index 00000000..ba7424d8 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch @@ -0,0 +1,29 @@ +From 106922335ec502bcb4451c54a89be49f88fa54de Mon Sep 17 00:00:00 2001 +From: Scott Murray +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'? + 158 | r = sd_event_add_child(w->manager->event, &w->child_event_source, w->child, WEXITED, on_brightness_writer_exit, w); + | ^~~~~~~ + +Upstream-Status: Pending + +Signed-off-by: Scott Murray + +--- + 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 3f4b65e1fdf1..5af7e3d5ce3f 100644 +--- a/src/login/logind-brightness.c ++++ b/src/login/logind-brightness.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include "bus-util.h" + #include "device-util.h" + #include "hash-funcs.h" diff --git a/external/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/external/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch deleted file mode 100644 index 1d7f5230..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0002-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 6e62be87a2722fbe531310a1b052c1301bdf06fb Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 27 Jun 2018 16:09:24 +0800 -Subject: [PATCH 2/9] 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 -Signed-off-by: Chen Qi ---- - 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 04331dd41..6d5edcb4e 100644 ---- a/meson.build -+++ b/meson.build -@@ -558,10 +558,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 501cd43d4..f4e4ac9ac 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 70f7172ae..a42666aac 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 --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch b/external/poky/meta/recipes-core/systemd/systemd/0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch deleted file mode 100644 index 115fb33c..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From e965e748c7030df0709e63128db2f023540a06ba Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 12 Sep 2015 18:53:31 +0000 -Subject: [PATCH 03/19] comparison_fn_t is glibc specific, use raw signature in - function pointer - -make it work with musl where comparison_fn_t is not provided - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj ---- - src/basic/util.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/basic/util.h b/src/basic/util.h -index 40eaf518c..c58392397 100644 ---- a/src/basic/util.h -+++ b/src/basic/util.h -@@ -77,7 +77,7 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size, - * that only if nmemb > 0. - */ - static inline void* bsearch_safe(const void *key, const void *base, -- size_t nmemb, size_t size, comparison_fn_t compar) { -+ size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { - if (nmemb <= 0) - return NULL; - -@@ -89,7 +89,7 @@ static inline void* bsearch_safe(const void *key, const void *base, - * Normal qsort requires base to be nonnull. Here were require - * that only if nmemb > 0. - */ --static inline void qsort_safe(void *base, size_t nmemb, size_t size, comparison_fn_t compar) { -+static inline void qsort_safe(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { - if (nmemb <= 1) - return; - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch b/external/poky/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch index 6c595ae7..c6204786 100644 --- a/external/poky/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch +++ b/external/poky/meta/recipes-core/systemd/systemd/0003-implment-systemd-sysv-install-for-OE.patch @@ -1,7 +1,7 @@ -From 0fcb6e646401205e17cc6c129441a49023c62cef Mon Sep 17 00:00:00 2001 +From f9078501a1495c9991431d1435d081cd2e830328 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 5 Sep 2015 06:31:47 +0000 -Subject: [PATCH 3/9] 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 + --- 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 8c16cf999..9f078a121 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 8c16cf999..9f078a121 100755 ;; *) usage ;; --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/external/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch new file mode 100644 index 00000000..14048951 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch @@ -0,0 +1,76 @@ +From 233de872b9b033ec842c2135152d2e006ac44c16 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 13:55:12 +0800 +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 +[Rebased for v244] +Signed-off-by: Chen Qi +[Rebased for v242] +Signed-off-by: Andrej Valek + +--- + src/basic/missing_type.h | 9 +++++++++ + src/basic/sort-util.h | 1 + + src/core/kmod-setup.c | 1 + + src/journal/catalog.c | 1 + + 4 files changed, 12 insertions(+) + +diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h +index bf8a6caa1b46..c487e65e7bde 100644 +--- a/src/basic/missing_type.h ++++ b/src/basic/missing_type.h +@@ -10,3 +10,12 @@ + #if !HAVE_CHAR16_T + #define char16_t uint16_t + #endif ++ ++#ifndef __GLIBC__ ++typedef int (*comparison_fn_t)(const void *, const void *); ++#endif ++ ++#ifndef __COMPAR_FN_T ++#define __COMPAR_FN_T ++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 27d68b341cf3..307ea4ac0e8e 100644 +--- a/src/basic/sort-util.h ++++ b/src/basic/sort-util.h +@@ -4,6 +4,7 @@ + #include + + #include "macro.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 70b2c8b46c4e..d574a64586f1 100644 +--- a/src/journal/catalog.c ++++ b/src/journal/catalog.c +@@ -28,6 +28,7 @@ + #include "string-util.h" + #include "strv.h" + #include "tmpfile-util.h" ++#include "missing_type.h" + + const char * const catalog_file_dirs[] = { + "/usr/local/lib/systemd/catalog/", diff --git a/external/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch b/external/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch new file mode 100644 index 00000000..538a99c7 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch @@ -0,0 +1,31 @@ +From 082d2eb2a65525890a913723764e67a36ee75384 Mon Sep 17 00:00:00 2001 +From: Scott Murray +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] +src/basic/copy.c:93:19: error: implicit declaration of function 'sigaddset' [-Werror=implicit-function-declaration] +src/basic/copy.c:93:34: error: 'SIGINT' undeclared (first use in this function) +src/basic/copy.c:95:13: error: implicit declaration of function 'sigtimedwait' [-Werror=implicit-function-declaration] + +Upstream-Status: Pending + +Signed-off-by: Scott Murray + +--- + src/basic/copy.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/basic/copy.c b/src/basic/copy.c +index 9028868f696d..5168586fa522 100644 +--- a/src/basic/copy.c ++++ b/src/basic/copy.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "alloc-util.h" + #include "btrfs-util.h" diff --git a/external/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/external/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch index 7652a2d8..71e52c49 100644 --- a/external/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch +++ b/external/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch @@ -1,18 +1,21 @@ -From 582af7ec13131dfcc620ed81de7b211914c4cb03 Mon Sep 17 00:00:00 2001 +From 142dcaef0d24a78d3c0c94168b66fdf234497e97 Mon Sep 17 00:00:00 2001 From: Chen Qi -Date: Fri, 29 Jun 2018 13:43:49 +0800 -Subject: [PATCH 04/19] add fallback parse_printf_format implementation +Date: Mon, 25 Feb 2019 14:04:21 +0800 +Subject: [PATCH] add fallback parse_printf_format implementation Upstream-Status: Inappropriate [musl specific] Signed-off-by: Emil Renner Berthing Signed-off-by: Khem Raj Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + --- 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(-) @@ -20,11 +23,11 @@ Signed-off-by: Chen Qi create mode 100644 src/basic/parse-printf-format.h diff --git a/meson.build b/meson.build -index e045b9224..8c16bc979 100644 +index 21d6968abdf4..bab0bf84806c 100644 --- a/meson.build +++ b/meson.build -@@ -598,6 +598,7 @@ foreach header : ['crypt.h', - 'linux/btrfs.h', +@@ -628,6 +628,7 @@ endif + foreach header : ['crypt.h', 'linux/memfd.h', 'linux/vm_sockets.h', + 'printf.h', @@ -32,13 +35,13 @@ index e045b9224..8c16bc979 100644 'valgrind/memcheck.h', 'valgrind/valgrind.h', diff --git a/src/basic/meson.build b/src/basic/meson.build -index 31625b178..0c27528e7 100644 +index f70d1b8bf8a0..4cd57373e10d 100644 --- a/src/basic/meson.build +++ b/src/basic/meson.build -@@ -302,6 +302,11 @@ foreach item : [['af', af_list_txt, 'af', ''], +@@ -311,6 +311,11 @@ foreach item : [['af', af_list_txt, 'af', ''], endforeach - basic_sources += [missing_h] + generated_gperf_headers + basic_sources += generated_gperf_headers + +if conf.get('HAVE_PRINTF_H') != 1 + basic_sources += [files('parse-printf-format.c')] @@ -49,7 +52,7 @@ index 31625b178..0c27528e7 100644 'gcrypt-util.h') diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c new file mode 100644 -index 000000000..49437e544 +index 000000000000..49437e544540 --- /dev/null +++ b/src/basic/parse-printf-format.c @@ -0,0 +1,273 @@ @@ -328,7 +331,7 @@ index 000000000..49437e544 +} diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h new file mode 100644 -index 000000000..47be7522d +index 000000000000..47be7522d7fa --- /dev/null +++ b/src/basic/parse-printf-format.h @@ -0,0 +1,57 @@ @@ -390,10 +393,10 @@ index 000000000..47be7522d + +#endif /* HAVE_PRINTF_H */ diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h -index 73c03274c..30192cd71 100644 +index c3b9448d4f4f..2937aa13b178 100644 --- a/src/basic/stdio-util.h +++ b/src/basic/stdio-util.h -@@ -1,12 +1,12 @@ +@@ -1,13 +1,13 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once @@ -403,12 +406,13 @@ index 73c03274c..30192cd71 100644 #include #include "macro.h" + #include "memory-util.h" +#include "parse-printf-format.h" #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 a0621524a..65bcbcd2e 100644 +index 912ecef73cce..43ed756bda53 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -2,7 +2,6 @@ @@ -417,16 +421,13 @@ index a0621524a..65bcbcd2e 100644 #include -#include #include - #include #include -@@ -21,6 +20,7 @@ + #include +@@ -20,6 +19,7 @@ #include "stdio-util.h" #include "string-util.h" - #include "util.h" + #include "tmpfile-util.h" +#include "parse-printf-format.h" #define SNDBUF_SIZE (8*1024*1024) --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch b/external/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch deleted file mode 100644 index 7e37cbc2..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0004-rules-whitelist-hd-devices.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5d8128f3832fd11fd046d1d1ad86c4ee7bc1dff0 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 9 Nov 2016 19:41:13 -0800 -Subject: [PATCH 4/9] 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 -Signed-off-by: Khem Raj ---- - 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 8ddb7577c..811e948ad 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*|scm*|pmem*|nbd*", GOTO="persistent_storage_end" -+KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*|hd*", GOTO="persistent_storage_end" - - # ignore partitions that span the entire disk - TEST=="whole_disk", GOTO="persistent_storage_end" --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch b/external/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch new file mode 100644 index 00000000..685df01a --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch @@ -0,0 +1,58 @@ +From 6883ffc99168056101c667c6421f8353d5ad675a Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Fri, 13 Sep 2019 19:26:27 -0400 +Subject: [PATCH] Handle __cpu_mask usage + +Fixes errors: + +src/test/test-cpu-set-util.c:18:54: error: '__cpu_mask' undeclared (first use in this function) +src/test/test-sizeof.c:73:14: error: '__cpu_mask' undeclared (first use in this function) + +__cpu_mask is an internal type of glibc's cpu_set implementation, not +part of the POSIX definition, which is problematic when building with +musl, which does not define a matching type. From inspection of musl's +sched.h, however, it is clear that the corresponding type would be +unsigned long, which does match glibc's actual __CPU_MASK_TYPE. So, +add a typedef to cpu-set-util.h defining __cpu_mask appropriately. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Scott Murray + +--- + 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 27812dfd5923..0ab40731ea93 100644 +--- a/src/shared/cpu-set-util.h ++++ b/src/shared/cpu-set-util.h +@@ -6,6 +6,8 @@ + #include "macro.h" + #include "missing_syscall.h" + ++typedef unsigned long __cpu_mask; ++ + /* This wraps the libc interface with a variable to keep the allocated size. */ + typedef struct CPUSet { + cpu_set_t *set; +diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c +index a710db5370b8..d1601ad9292d 100644 +--- a/src/test/test-sizeof.c ++++ b/src/test/test-sizeof.c +@@ -1,6 +1,5 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + +-#include + #include + #include + +@@ -8,6 +7,7 @@ + #include + + #include "time-util.h" ++#include "cpu-set-util.h" + + /* Print information about various types. Useful when diagnosing + * gcc diagnostics on an unfamiliar architecture. */ diff --git a/external/poky/meta/recipes-core/systemd/systemd/0005-Make-root-s-home-directory-configurable.patch b/external/poky/meta/recipes-core/systemd/systemd/0005-Make-root-s-home-directory-configurable.patch deleted file mode 100644 index c1370872..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0005-Make-root-s-home-directory-configurable.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 8b82663aeeedf9ca58e3b97116b4c4da5229e0f5 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 27 Jun 2018 16:46:45 +0800 -Subject: [PATCH 5/9] Make root's home directory configurable - -OpenEmbedded has a configurable home directory for root. Allow -systemd to be built using its idea of what root's home directory -should be. - -Upstream-Status: Denied -Upstream wants to have a unified hierarchy where everyone is -using the same root folder. -https://github.com/systemd/systemd/issues/541 - -Signed-off-by: Dan McGregor -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - meson.build | 7 +++++++ - meson_options.txt | 2 ++ - 2 files changed, 9 insertions(+) - -diff --git a/meson.build b/meson.build -index 6d5edcb4e..323146fe1 100644 ---- a/meson.build -+++ b/meson.build -@@ -89,6 +89,11 @@ if rootlibdir == '' - rootlibdir = join_paths(rootprefixdir, libdir.split('/')[-1]) - endif - -+roothomedir = get_option('roothomedir') -+if roothomedir == '' -+ roothomedir = '/root' -+endif -+ - # Dirs of external packages - pkgconfigdatadir = join_paths(datadir, 'pkgconfig') - pkgconfiglibdir = join_paths(libdir, 'pkgconfig') -@@ -210,6 +215,7 @@ conf.set_quoted('UDEVLIBEXECDIR', udevlibexecdir) - conf.set_quoted('POLKIT_AGENT_BINARY_PATH', join_paths(bindir, 'pkttyagent')) - conf.set_quoted('LIBDIR', libdir) - conf.set_quoted('ROOTLIBDIR', rootlibdir) -+conf.set_quoted('ROOTHOMEDIR', roothomedir) - conf.set_quoted('ROOTLIBEXECDIR', rootlibexecdir) - conf.set_quoted('BOOTLIBDIR', bootlibdir) - conf.set_quoted('SYSTEMD_PULL_PATH', join_paths(rootlibexecdir, 'systemd-pull')) -@@ -228,6 +234,7 @@ substs.set('prefix', prefixdir) - substs.set('exec_prefix', prefixdir) - substs.set('libdir', libdir) - substs.set('rootlibdir', rootlibdir) -+substs.set('roothomedir', roothomedir) - substs.set('includedir', includedir) - substs.set('pkgsysconfdir', pkgsysconfdir) - substs.set('bindir', bindir) -diff --git a/meson_options.txt b/meson_options.txt -index 16c1f2b2f..aa9a33368 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -9,6 +9,8 @@ option('rootlibdir', type : 'string', - description : '''[/usr]/lib/x86_64-linux-gnu or such''') - option('rootprefix', type : 'string', - description : '''override the root prefix''') -+option('roothomedir', type : 'string', -+ description : '''override the root home directory''') - option('link-udev-shared', type : 'boolean', - description : 'link systemd-udev and its helpers to libsystemd-shared.so') - option('link-systemctl-shared', type: 'boolean', --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch b/external/poky/meta/recipes-core/systemd/systemd/0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch deleted file mode 100644 index 6d5faf5f..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a2c4d46944892174930135672508389a04e191f0 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Fri, 29 Jun 2018 13:53:29 +0800 -Subject: [PATCH 05/19] include gshadow only if ENABLE_GSHADOW is 1 - -Upstream-Status: Inappropriate [musl] - -Signed-off-by: Chen Qi ---- - src/basic/user-util.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/basic/user-util.h b/src/basic/user-util.h -index b74f16885..f9c1e29c4 100644 ---- a/src/basic/user-util.h -+++ b/src/basic/user-util.h -@@ -2,7 +2,9 @@ - #pragma once - - #include -+#if ENABLE_GSHADOW - #include -+#endif - #include - #include - #include --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/external/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch new file mode 100644 index 00000000..aa4bb063 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch @@ -0,0 +1,653 @@ +From 9597196234a0ccf30d7f65cf185a8c24cb3158b3 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 14:18:21 +0800 +Subject: [PATCH] src/basic/missing.h: check for missing strndupa + +include missing.h for definition of strndupa + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi +[Rebased for v242] +Signed-off-by: Andrej Valek +[rebased for systemd 243] +Signed-off-by: Scott Murray +Signed-off-by: Alex Kiernan +[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/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/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-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 + + 48 files changed, 59 insertions(+) + +diff --git a/meson.build b/meson.build +index bab0bf84806c..f4e1736cf09e 100644 +--- a/meson.build ++++ b/meson.build +@@ -517,6 +517,7 @@ foreach ident : [ + #include '''], + ['get_mempolicy', '''#include + #include '''], ++ ['strndupa' , '''#include '''], + ] + + have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') +diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c +index 048441429025..01d74ea0ed4e 100644 +--- 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_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 54fc6ecf8b20..a5141f4cbedd 100644 +--- a/src/basic/cgroup-util.c ++++ b/src/basic/cgroup-util.c +@@ -37,6 +37,7 @@ + #include "strv.h" + #include "unit-name.h" + #include "user-util.h" ++#include "missing_stdlib.h" + + static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) { + _cleanup_free_ char *fs = NULL; +diff --git a/src/basic/env-util.c b/src/basic/env-util.c +index b8dc98915f81..5049b37594bc 100644 +--- a/src/basic/env-util.c ++++ b/src/basic/env-util.c +@@ -15,6 +15,7 @@ + #include "string-util.h" + #include "strv.h" + #include "utf8.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 17557e1844b2..6cec4d324aab 100644 +--- a/src/basic/log.c ++++ b/src/basic/log.c +@@ -34,6 +34,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 188a8d44066a..1e16ec287aad 100644 +--- a/src/basic/missing_stdlib.h ++++ b/src/basic/missing_stdlib.h +@@ -11,3 +11,15 @@ + # error "neither secure_getenv nor __secure_getenv are available" + # endif + #endif ++ ++/* string.h */ ++#if ! HAVE_STRNDUPA ++#define strndupa(s, n) \ ++ ({ \ ++ const char *__old = (s); \ ++ size_t __len = strnlen(__old, (n)); \ ++ char *__new = (char *)alloca(__len + 1); \ ++ __new[__len] = '\0'; \ ++ (char *)memcpy(__new, __old, __len); \ ++ }) ++#endif +diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c +index fa682d4c438e..37902551490a 100644 +--- a/src/basic/mkdir.c ++++ b/src/basic/mkdir.c +@@ -13,6 +13,7 @@ + #include "stat-util.h" + #include "stdio-util.h" + #include "user-util.h" ++#include "missing_stdlib.h" + + int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) { + struct stat st; +diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c +index aec6099c9cc1..744b9b134ce4 100644 +--- a/src/basic/parse-util.c ++++ b/src/basic/parse-util.c +@@ -18,6 +18,7 @@ + #include "process-util.h" + #include "stat-util.h" + #include "string-util.h" ++#include "missing_stdlib.h" + + int parse_boolean(const char *v) { + if (!v) +diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c +index d3d99d9a7f90..e0b9efad03a2 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_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 7aaf95bfced2..da7e836f143e 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_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 f35e760233be..e4b0a8aa445e 100644 +--- a/src/basic/selinux-util.c ++++ b/src/basic/selinux-util.c +@@ -26,6 +26,7 @@ + #include "selinux-util.h" + #include "stdio-util.h" + #include "time-util.h" ++#include "missing_stdlib.h" + + #if HAVE_SELINUX + DEFINE_TRIVIAL_CLEANUP_FUNC(char*, freecon); +diff --git a/src/basic/time-util.c b/src/basic/time-util.c +index bfe2c60da173..d7ef30d2fe52 100644 +--- a/src/basic/time-util.c ++++ b/src/basic/time-util.c +@@ -26,6 +26,7 @@ + #include "string-util.h" + #include "strv.h" + #include "time-util.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 b96e1f927fff..cba979baca3e 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 27dc9e43c3e2..b1a83023600b 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_stdlib.h" + + BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve); + +diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c +index 1d0bc1ede3cb..313654913345 100644 +--- 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 7862beaacb6d..3b1ea53a5f0d 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_stdlib.h" + + int bus_property_get_triggered_unit( + sd_bus *bus, +diff --git a/src/core/execute.c b/src/core/execute.c +index abc164ff5bef..f04b8ba05002 100644 +--- a/src/core/execute.c ++++ b/src/core/execute.c +@@ -88,6 +88,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 09ccd613e32c..f4e64fa283e9 100644 +--- a/src/core/kmod-setup.c ++++ b/src/core/kmod-setup.c +@@ -11,6 +11,7 @@ + #include "macro.h" + #include "string-util.h" + #include "missing_type.h" ++#include "missing_stdlib.h" + + #if HAVE_KMOD + #include "module-util.h" +diff --git a/src/core/service.c b/src/core/service.c +index 49ad166c2604..c3b14067e201 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -41,6 +41,7 @@ + #include "unit.h" + #include "utf8.h" + #include "util.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 35885dfb47c4..bb9f0660a6a0 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 ac2bf648d2af..06c86f0201af 100644 +--- a/src/journal-remote/journal-remote-main.c ++++ b/src/journal-remote/journal-remote-main.c +@@ -21,6 +21,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 95b6bfee172a..e0bcfb9d4233 100644 +--- a/src/journal/journalctl.c ++++ b/src/journal/journalctl.c +@@ -68,6 +68,7 @@ + #include "unit-name.h" + #include "user-util.h" + #include "varlink.h" ++#include "missing_stdlib.h" + + #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE) + +diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c +index eb029e445326..8da2c5d51a75 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_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 ae643cacc740..f766e235206d 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_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 18d30d010a20..be2ab703f8ed 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 058492a83eec..54c896f572b9 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 8de0a859ee94..58044b6ba908 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_stdlib.h" + + #define MAX_SIZE (2*1024*1024) + +diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c +index 519dd0d188cf..a8f536915bb2 100644 +--- a/src/locale/keymap-util.c ++++ b/src/locale/keymap-util.c +@@ -21,6 +21,7 @@ + #include "string-util.h" + #include "strv.h" + #include "tmpfile-util.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 aa6e5ea7aca8..c439c21b2872 100644 +--- a/src/login/pam_systemd.c ++++ b/src/login/pam_systemd.c +@@ -28,6 +28,7 @@ + #include "hostname-util.h" + #include "login-util.h" + #include "macro.h" ++#include "missing_stdlib.h" + #include "parse-util.h" + #include "path-util.h" + #include "process-util.h" +diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c +index 81afa9530762..2c5328f97c63 100644 +--- 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_stdlib.h" + + /* + # .network +diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c +index 5fb5b49bbcc3..785ccc2da307 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_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 364356da5622..47d4ea44e40f 100644 +--- a/src/nss-mymachines/nss-mymachines.c ++++ b/src/nss-mymachines/nss-mymachines.c +@@ -19,6 +19,7 @@ + #include "signal-util.h" + #include "string-util.h" + #include "user-util.h" ++#include "missing_stdlib.h" + + NSS_GETHOSTBYNAME_PROTOTYPES(mymachines); + NSS_GETPW_PROTOTYPES(mymachines); +diff --git a/src/portable/portable.c b/src/portable/portable.c +index 34b123e84692..5a48504d00ac 100644 +--- a/src/portable/portable.c ++++ b/src/portable/portable.c +@@ -29,6 +29,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 0a96a18b3836..432d6ebc3730 100644 +--- a/src/resolve/resolvectl.c ++++ b/src/resolve/resolvectl.c +@@ -31,6 +31,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-unit-procs.c b/src/shared/bus-unit-procs.c +index b21fe393265f..af2640005c1d 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 22a15493d7f3..3f4c51975675 100644 +--- a/src/shared/bus-unit-util.c ++++ b/src/shared/bus-unit-util.c +@@ -34,6 +34,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 aea46d311996..223426298144 100644 +--- a/src/shared/bus-util.c ++++ b/src/shared/bus-util.c +@@ -34,6 +34,7 @@ + #include "stdio-util.h" + #include "strv.h" + #include "user-util.h" ++#include "missing_stdlib.h" + + static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { + sd_event *e = userdata; +diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c +index b812665315f6..8e68f7f8fc6c 100644 +--- a/src/shared/dns-domain.c ++++ b/src/shared/dns-domain.c +@@ -23,6 +23,7 @@ + #include "string-util.h" + #include "strv.h" + #include "utf8.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 7c4fc7021dec..3fbaf5a63969 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_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 95b2e3376e9a..facc23aaecd5 100644 +--- a/src/shared/logs-show.c ++++ b/src/shared/logs-show.c +@@ -37,6 +37,7 @@ + #include "time-util.h" + #include "utf8.h" + #include "util.h" ++#include "missing_stdlib.h" + + /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */ + #define PRINT_LINE_THRESHOLD 3 +diff --git a/src/shared/pager.c b/src/shared/pager.c +index 1fe9db179176..67954b5cab93 100644 +--- a/src/shared/pager.c ++++ b/src/shared/pager.c +@@ -23,6 +23,7 @@ + #include "strv.h" + #include "terminal-util.h" + #include "util.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 5b1620974536..0e7cd1c2af12 100644 +--- a/src/shared/path-lookup.c ++++ b/src/shared/path-lookup.c +@@ -19,6 +19,7 @@ + #include "tmpfile-util.h" + #include "user-util.h" + #include "util.h" ++#include "missing_stdlib.h" + + int xdg_user_runtime_dir(char **ret, const char *suffix) { + const char *e; +diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c +index 7cb7d8a477e9..8e7d7f9e7ca6 100644 +--- 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_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 2fb9c854fa50..58cef31458f7 100644 +--- a/src/socket-proxy/socket-proxyd.c ++++ b/src/socket-proxy/socket-proxyd.c +@@ -26,6 +26,7 @@ + #include "socket-util.h" + #include "string-util.h" + #include "util.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 52217429b154..70708dedf318 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_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 ca38f5608791..9d8cf4d2807b 100644 +--- a/src/udev/udev-builtin-path_id.c ++++ b/src/udev/udev-builtin-path_id.c +@@ -22,6 +22,7 @@ + #include "strv.h" + #include "sysexits.h" + #include "udev-builtin.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 58d484280aa5..90eab6806b55 100644 +--- a/src/udev/udev-event.c ++++ b/src/udev/udev-event.c +@@ -34,6 +34,7 @@ + #include "udev-util.h" + #include "udev-watch.h" + #include "user-util.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 6168b332d3b2..245fe0a64d22 100644 +--- a/src/udev/udev-rules.c ++++ b/src/udev/udev-rules.c +@@ -30,6 +30,7 @@ + #include "udev-rules.h" + #include "user-util.h" + #include "virt.h" ++#include "missing_stdlib.h" + + #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d") + diff --git a/external/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/external/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch new file mode 100644 index 00000000..ea003fd7 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch @@ -0,0 +1,278 @@ +From 3932ce7f6c8ace5e1210aad20e1a141cb29329b1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +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' + struct ethhdr { + ^~~~~~ + +and related arphdr, arpreq, and arpreq_old errors +/path/to/systemd/recipe-sysroot/usr/include/net/if_arp.h:22:8: error: redefinition of 'struct arphdr' + struct arphdr { + ^~~~~~ + +The latter requires removing some includes of net/if_arp.h to avoid +conflicting with netinet/if_ether.h. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + +--- + 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 + + src/network/networkd-dhcp4.c | 2 +- + 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 + + 19 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c +index 5417ba8c5feb..d3aba928dd96 100644 +--- a/src/libsystemd-network/sd-dhcp6-client.c ++++ b/src/libsystemd-network/sd-dhcp6-client.c +@@ -5,7 +5,6 @@ + + #include + #include +-#include + #include + + #include "sd-dhcp6-client.h" +diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c +index a55460f03407..6f9cd527c800 100644 +--- a/src/libsystemd/sd-netlink/netlink-types.c ++++ b/src/libsystemd/sd-netlink/netlink-types.c +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c +index 3b2ac3829859..760ccb445cd0 100644 +--- a/src/machine/machine-dbus.c ++++ b/src/machine/machine-dbus.c +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + /* When we include libgen.h because we need dirname() we immediately + * undefine basename() since libgen.h defines it as a macro to the POSIX +diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c +index 185b155440e7..dc1cd236c814 100644 +--- a/src/network/netdev/bond.c ++++ b/src/network/netdev/bond.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include "alloc-util.h" + #include "bond.h" + #include "conf-parser.h" +diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c +index 59a40faef8fa..8e821a3216b3 100644 +--- a/src/network/netdev/bridge.c ++++ b/src/network/netdev/bridge.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + + #include "bridge.h" +diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c +index 25dc23ff0338..f20d11fbcf53 100644 +--- a/src/network/netdev/macsec.c ++++ b/src/network/netdev/macsec.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + #include +diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf +index 09a5f4822e03..873299b1f98a 100644 +--- a/src/network/netdev/netdev-gperf.gperf ++++ b/src/network/netdev/netdev-gperf.gperf +@@ -2,6 +2,7 @@ + #if __GNUC__ >= 7 + _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") + #endif ++#include + #include + #include "bond.h" + #include "bridge.h" +diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c +index 6908c4e811b0..e0d8c459ab63 100644 +--- a/src/network/netdev/netdev.c ++++ b/src/network/netdev/netdev.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + +diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c +index c3c5d535ac66..ebea408c89a8 100644 +--- a/src/network/networkd-brvlan.c ++++ b/src/network/networkd-brvlan.c +@@ -4,6 +4,7 @@ + ***/ + + #include ++#include + #include + #include + +diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c +index 6465a8cfe9c7..bd4b2cdfac15 100644 +--- a/src/network/networkd-dhcp-common.c ++++ b/src/network/networkd-dhcp-common.c +@@ -4,6 +4,7 @@ + #include "escape.h" + #include "in-addr-util.h" + #include "networkd-dhcp-common.h" ++#include + #include "networkd-network.h" + #include "parse-util.h" + #include "string-table.h" +diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c +index 8ca87d99d4db..a66284896cf3 100644 +--- a/src/network/networkd-dhcp4.c ++++ b/src/network/networkd-dhcp4.c +@@ -1,8 +1,8 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include +-#include + + #include "alloc-util.h" + #include "dhcp-client-internal.h" +diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c +index 647623ac3778..325c641c6231 100644 +--- a/src/network/networkd-dhcp6.c ++++ b/src/network/networkd-dhcp6.c +@@ -3,9 +3,9 @@ + Copyright © 2014 Intel Corporation. All rights reserved. + ***/ + ++#include + #include + #include +-#include + #include "sd-radv.h" + + #include "sd-dhcp6-client.h" +diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c +index 2e60adbf7818..05aa8672d585 100644 +--- a/src/network/networkd-link.c ++++ b/src/network/networkd-link.c +@@ -1,8 +1,8 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include +-#include + #include + + #include "alloc-util.h" +diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c +index 6e443975f171..d1aab0ca5ba2 100644 +--- a/src/network/networkd-network.c ++++ b/src/network/networkd-network.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + #include +diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c +index 25b939639775..530e4928835c 100644 +--- a/src/network/test-network-tables.c ++++ b/src/network/test-network-tables.c +@@ -1,3 +1,4 @@ ++#include + #include "bond.h" + #include "dhcp6-internal.h" + #include "dhcp6-protocol.h" +diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c +index 3119b2b92e3b..927ddd067eef 100644 +--- a/src/shared/ethtool-util.c ++++ b/src/shared/ethtool-util.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + #include +diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h +index d408bcd90a0b..7a1e399af023 100644 +--- a/src/shared/ethtool-util.h ++++ b/src/shared/ethtool-util.h +@@ -2,6 +2,7 @@ + #pragma once + + #include ++#include + #include + + #include "conf-parser.h" +diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c +index 7b07e2f38fa8..18680a8e5484 100644 +--- a/src/udev/net/link-config.c ++++ b/src/udev/net/link-config.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include + #include + +diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c +index ee3ca9fa3846..9aa4e828741f 100644 +--- a/src/udev/udev-builtin-net_setup_link.c ++++ b/src/udev/udev-builtin-net_setup_link.c +@@ -1,5 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + ++#include + #include "device-util.h" + #include "alloc-util.h" + #include "link-config.h" diff --git a/external/poky/meta/recipes-core/systemd/systemd/0006-remove-nobody-user-group-checking.patch b/external/poky/meta/recipes-core/systemd/systemd/0006-remove-nobody-user-group-checking.patch deleted file mode 100644 index eb6eb8bf..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0006-remove-nobody-user-group-checking.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 5199ae5dec9b8a9c9e20477d5090f1732735fbe2 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Thu, 28 Jun 2018 09:38:12 +0800 -Subject: [PATCH 6/9] remove nobody user/group checking - -Upstream-Status: Inappropriate [OE Specific] - -Signed-off-by: Chen Qi ---- - meson.build | 37 ------------------------------------- - 1 file changed, 37 deletions(-) - -diff --git a/meson.build b/meson.build -index 323146fe1..3bb087fef 100644 ---- a/meson.build -+++ b/meson.build -@@ -681,43 +681,6 @@ substs.set('containeruidbasemax', container_uid_base_max) - nobody_user = get_option('nobody-user') - nobody_group = get_option('nobody-group') - --getent_result = run_command('getent', 'passwd', '65534') --if getent_result.returncode() == 0 -- name = getent_result.stdout().split(':')[0] -- if name != nobody_user -- warning('\n' + -- 'The local user with the UID 65534 does not match the configured user name "@0@" of the nobody user (its name is @1@).\n'.format(nobody_user, name) + -- 'Your build will result in an user table setup that is incompatible with the local system.') -- endif --endif --id_result = run_command('id', '-u', nobody_user) --if id_result.returncode() == 0 -- id = id_result.stdout().to_int() -- if id != 65534 -- warning('\n' + -- 'The local user with the configured user name "@0@" of the nobody user does not have UID 65534 (it has @1@).\n'.format(nobody_user, id) + -- 'Your build will result in an user table setup that is incompatible with the local system.') -- endif --endif -- --getent_result = run_command('getent', 'group', '65534') --if getent_result.returncode() == 0 -- name = getent_result.stdout().split(':')[0] -- if name != nobody_group -- warning('\n' + -- 'The local group with the GID 65534 does not match the configured group name "@0@" of the nobody group (its name is @1@).\n'.format(nobody_group, name) + -- 'Your build will result in an group table setup that is incompatible with the local system.') -- endif --endif --id_result = run_command('id', '-g', nobody_group) --if id_result.returncode() == 0 -- id = id_result.stdout().to_int() -- if id != 65534 -- warning('\n' + -- 'The local group with the configured group name "@0@" of the nobody group does not have UID 65534 (it has @1@).\n'.format(nobody_group, id) + -- 'Your build will result in an group table setup that is incompatible with the local system.') -- endif --endif - if nobody_user != nobody_group and not (nobody_user == 'nobody' and nobody_group == 'nogroup') - warning('\n' + - 'The configured user name "@0@" and group name "@0@" of the nobody user/group are not equivalent.\n'.format(nobody_user, nobody_group) + --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0006-src-basic-missing.h-check-for-missing-strndupa.patch b/external/poky/meta/recipes-core/systemd/systemd/0006-src-basic-missing.h-check-for-missing-strndupa.patch deleted file mode 100644 index 107a7943..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0006-src-basic-missing.h-check-for-missing-strndupa.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 03fd19fc87573276e0d359260c8fe591f5f0216a Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Fri, 29 Jun 2018 16:34:50 +0800 -Subject: [PATCH 06/19] src/basic/missing.h: check for missing strndupa - -include missing.h for definition of strndupa - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - meson.build | 1 + - src/basic/missing.h | 11 +++++++++++ - src/basic/mkdir.c | 1 + - src/basic/pager.c | 1 + - src/basic/parse-util.c | 1 + - src/basic/procfs-util.c | 1 + - src/shared/uid-range.c | 1 + - 7 files changed, 17 insertions(+) - -diff --git a/meson.build b/meson.build -index 8c16bc979..a734a295c 100644 ---- a/meson.build -+++ b/meson.build -@@ -503,6 +503,7 @@ foreach ident : [ - #include '''], - ['explicit_bzero' , '''#include '''], - ['reallocarray', '''#include '''], -+ ['strndupa' , '''#include '''], - ] - - have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') -diff --git a/src/basic/missing.h b/src/basic/missing.h -index 0e33abb9f..02397f1b6 100644 ---- a/src/basic/missing.h -+++ b/src/basic/missing.h -@@ -1184,6 +1184,17 @@ struct input_mask { - typedef int32_t key_serial_t; - #endif - -+#if ! HAVE_STRNDUPA -+#define strndupa(s, n) \ -+ ({ \ -+ const char *__old = (s); \ -+ size_t __len = strnlen(__old, (n)); \ -+ char *__new = (char *)alloca(__len + 1); \ -+ __new[__len] = '\0'; \ -+ (char *)memcpy(__new, __old, __len); \ -+ }) -+#endif -+ - #ifndef KEYCTL_JOIN_SESSION_KEYRING - #define KEYCTL_JOIN_SESSION_KEYRING 1 - #endif -diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c -index 6ab1b4422..77c3e0863 100644 ---- a/src/basic/mkdir.c -+++ b/src/basic/mkdir.c -@@ -13,6 +13,7 @@ - #include "stat-util.h" - #include "stdio-util.h" - #include "user-util.h" -+#include "missing.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; -diff --git a/src/basic/pager.c b/src/basic/pager.c -index f24126111..8223bff02 100644 ---- a/src/basic/pager.c -+++ b/src/basic/pager.c -@@ -21,6 +21,7 @@ - #include "string-util.h" - #include "strv.h" - #include "terminal-util.h" -+#include "missing.h" - - static pid_t pager_pid = 0; - -diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c -index 6becf8587..52576f536 100644 ---- a/src/basic/parse-util.c -+++ b/src/basic/parse-util.c -@@ -17,6 +17,7 @@ - #include "parse-util.h" - #include "process-util.h" - #include "string-util.h" -+#include "missing.h" - - int parse_boolean(const char *v) { - assert(v); -diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c -index a159e344b..ebc427d6b 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" - - int procfs_tasks_get_limit(uint64_t *ret) { - _cleanup_free_ char *value = NULL; -diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c -index 434ce6ff4..37093ab7b 100644 ---- a/src/shared/uid-range.c -+++ b/src/shared/uid-range.c -@@ -8,6 +8,7 @@ - #include "macro.h" - #include "uid-range.h" - #include "user-util.h" -+#include "missing.h" - - static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) { - assert(range); --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0007-Include-netinet-if_ether.h.patch b/external/poky/meta/recipes-core/systemd/systemd/0007-Include-netinet-if_ether.h.patch deleted file mode 100644 index 2df8cf95..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0007-Include-netinet-if_ether.h.patch +++ /dev/null @@ -1,96 +0,0 @@ -From aab90d0dfa934d33879eaec1a878e93b201d33f1 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Fri, 29 Jun 2018 16:44:43 +0800 -Subject: [PATCH 07/19] Include netinet/if_ether.h - -Fixes -/path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr' - struct ethhdr { - ^~~~~~ - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/libsystemd/sd-netlink/netlink-types.c | 1 + - src/network/netdev/tuntap.c | 1 + - src/network/networkd-brvlan.c | 1 + - src/udev/net/ethtool-util.c | 1 + - src/udev/net/ethtool-util.h | 1 + - src/udev/udev-builtin-net_setup_link.c | 1 + - 6 files changed, 6 insertions(+) - -diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c -index c93fe9cb4..2013d06e1 100644 ---- a/src/libsystemd/sd-netlink/netlink-types.c -+++ b/src/libsystemd/sd-netlink/netlink-types.c -@@ -3,6 +3,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/src/network/netdev/tuntap.c b/src/network/netdev/tuntap.c -index 21fb7ab06..0afe5170c 100644 ---- a/src/network/netdev/tuntap.c -+++ b/src/network/netdev/tuntap.c -@@ -2,6 +2,7 @@ - - #include - #include -+#include - #include - #include - #include -diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c -index 8e8a618e2..52d523a67 100644 ---- a/src/network/networkd-brvlan.c -+++ b/src/network/networkd-brvlan.c -@@ -4,6 +4,7 @@ - ***/ - - #include -+#include - #include - #include - -diff --git a/src/udev/net/ethtool-util.c b/src/udev/net/ethtool-util.c -index 4bb4216ac..5f7383483 100644 ---- a/src/udev/net/ethtool-util.c -+++ b/src/udev/net/ethtool-util.c -@@ -1,5 +1,6 @@ - /* SPDX-License-Identifier: LGPL-2.1+ */ - -+#include - #include - #include - #include -diff --git a/src/udev/net/ethtool-util.h b/src/udev/net/ethtool-util.h -index 064bf4d2b..ee0d4fb2a 100644 ---- a/src/udev/net/ethtool-util.h -+++ b/src/udev/net/ethtool-util.h -@@ -3,6 +3,7 @@ - - - #include -+#include - #include - - #include "missing.h" -diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c -index 8bed6399a..a3a96959b 100644 ---- a/src/udev/udev-builtin-net_setup_link.c -+++ b/src/udev/udev-builtin-net_setup_link.c -@@ -1,5 +1,6 @@ - /* SPDX-License-Identifier: LGPL-2.1+ */ - -+#include - #include "alloc-util.h" - #include "link-config.h" - #include "log.h" --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/external/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch new file mode 100644 index 00000000..580c49fe --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch @@ -0,0 +1,153 @@ +From 77f98727f1d19a8fb327b55c92f1a9ee7b859e9f Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 14:56:21 +0800 +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. + +Dont use GNU GLOB extentions on non-glibc systems + +Conditionalize use of GLOB_ALTDIRFUNC + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + +--- + 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 e3aa6c2e152b..38070b79c83a 100644 +--- a/src/basic/glob-util.c ++++ b/src/basic/glob-util.c +@@ -12,6 +12,12 @@ + #include "path-util.h" + #include "strv.h" + ++/* Don't fail if the standard library ++ * doesn't provide brace expansion */ ++#ifndef GLOB_BRACE ++#define GLOB_BRACE 0 ++#endif ++ + static void closedir_wrapper(void* v) { + (void) closedir(v); + } +@@ -19,6 +25,7 @@ static void closedir_wrapper(void* v) { + int safe_glob(const char *path, int flags, glob_t *pglob) { + int k; + ++#ifdef GLOB_ALTDIRFUNC + /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */ + assert(!(flags & GLOB_ALTDIRFUNC)); + +@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { + pglob->gl_lstat = lstat; + if (!pglob->gl_stat) + pglob->gl_stat = stat; ++#endif + + errno = 0; ++#ifdef GLOB_ALTDIRFUNC + k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob); ++#else ++ k = glob(path, flags, NULL, pglob); ++#endif + if (k == GLOB_NOMATCH) + return -ENOENT; + if (k == GLOB_NOSPACE) +diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c +index 667d15335fbf..76a84443aacf 100644 +--- a/src/test/test-glob-util.c ++++ b/src/test/test-glob-util.c +@@ -12,6 +12,12 @@ + #include "rm-rf.h" + #include "tmpfile-util.h" + ++/* Don't fail if the standard library ++ * doesn't provide brace expansion */ ++#ifndef GLOB_BRACE ++#define GLOB_BRACE 0 ++#endif ++ + static void test_glob_exists(void) { + char name[] = "/tmp/test-glob_exists.XXXXXX"; + int fd = -1; +@@ -39,11 +45,13 @@ static void test_glob_no_dot(void) { + const char *fn; + + _cleanup_globfree_ glob_t g = { ++#ifdef GLOB_ALTDIRFUNC + .gl_closedir = closedir_wrapper, + .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot, + .gl_opendir = (void *(*)(const char *)) opendir, + .gl_lstat = lstat, + .gl_stat = stat, ++#endif + }; + + int r; +@@ -51,11 +59,19 @@ static void test_glob_no_dot(void) { + assert_se(mkdtemp(template)); + + fn = strjoina(template, "/*"); ++#ifdef GLOB_ALTDIRFUNC + r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g); ++#else ++ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g); ++#endif + assert_se(r == GLOB_NOMATCH); + + fn = strjoina(template, "/.*"); ++#ifdef GLOB_ALTDIRFUNC + r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g); ++#else ++ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g); ++#endif + assert_se(r == GLOB_NOMATCH); + + (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); +diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c +index 193ed0bc781b..2f94fd2efd8f 100644 +--- a/src/tmpfiles/tmpfiles.c ++++ b/src/tmpfiles/tmpfiles.c +@@ -58,6 +58,12 @@ + #include "umask-util.h" + #include "user-util.h" + ++/* Don't fail if the standard library ++ * doesn't provide brace expansion */ ++#ifndef GLOB_BRACE ++#define GLOB_BRACE 0 ++#endif ++ + /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates + * them in the file system. This is intended to be used to create + * properly owned directories beneath /tmp, /var/tmp, /run, which are +@@ -1850,7 +1856,9 @@ finish: + + static int glob_item(Item *i, action_t action) { + _cleanup_globfree_ glob_t g = { ++#ifdef GLOB_ALTDIRFUNC + .gl_opendir = (void *(*)(const char *)) opendir_nomod, ++#endif + }; + int r = 0, k; + char **fn; +@@ -1870,7 +1878,9 @@ static int glob_item(Item *i, action_t action) { + + static int glob_item_recursively(Item *i, fdaction_t action) { + _cleanup_globfree_ glob_t g = { ++#ifdef GLOB_ALTDIRFUNC + .gl_opendir = (void *(*)(const char *)) opendir_nomod, ++#endif + }; + int r = 0, k; + char **fn; diff --git a/external/poky/meta/recipes-core/systemd/systemd/0007-rules-watch-metadata-changes-in-ide-devices.patch b/external/poky/meta/recipes-core/systemd/systemd/0007-rules-watch-metadata-changes-in-ide-devices.patch deleted file mode 100644 index a5f65e66..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0007-rules-watch-metadata-changes-in-ide-devices.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 9302b72e5e69512aaa7106197b00c55baeb35b3c Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 17 Nov 2017 09:46:00 +0800 -Subject: [PATCH 7/9] 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 ---- - 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 343fc06f8..b5237dac4 100644 ---- a/rules/60-block.rules -+++ b/rules/60-block.rules -@@ -8,4 +8,4 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_ - ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change" - - # watch metadata changes, caused by tools closing the device node which was opened for writing --ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch" -+ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*|hd*", OPTIONS+="watch" --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch b/external/poky/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch deleted file mode 100644 index abecdc76..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b6ba596fd1313a162cdc2eb88161dcf24d19ede7 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Thu, 28 Jun 2018 10:10:02 +0800 -Subject: [PATCH 8/9] Do not enable nss tests if nss-systemd is not enabled - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/test/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/test/meson.build b/src/test/meson.build -index 7da7e3a22..7b7c257ff 100644 ---- a/src/test/meson.build -+++ b/src/test/meson.build -@@ -645,7 +645,7 @@ tests += [ - [['src/test/test-nss.c'], - [], - [libdl], -- '', 'manual'], -+ 'ENABLE_NSS_SYSTEMD', 'manual'], - - [['src/test/test-umount.c', - 'src/core/mount-setup.c', --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch b/external/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch new file mode 100644 index 00000000..1f618932 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch @@ -0,0 +1,45 @@ +From 7c440cfc53aa52c9dc91c3a8c105bcf314c53af6 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:00:06 +0800 +Subject: [PATCH] add missing FTW_ macros for musl + +This is to avoid build failures like below for musl. + + locale-util.c:296:24: error: 'FTW_STOP' undeclared + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + 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 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 *); + #define __COMPAR_FN_T + typedef int (*__compar_fn_t)(const void *, const void *); + #endif ++ ++#ifndef FTW_ACTIONRETVAL ++#define FTW_ACTIONRETVAL 16 ++#endif ++ ++#ifndef FTW_CONTINUE ++#define FTW_CONTINUE 0 ++#endif ++ ++#ifndef FTW_STOP ++#define FTW_STOP 1 ++#endif ++ ++#ifndef FTW_SKIP_SUBTREE ++#define FTW_SKIP_SUBTREE 2 ++#endif ++ ++#ifndef FTW_SKIP_SIBLINGS ++#define FTW_SKIP_SIBLINGS 3 ++#endif diff --git a/external/poky/meta/recipes-core/systemd/systemd/0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/external/poky/meta/recipes-core/systemd/systemd/0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch deleted file mode 100644 index bee5fb65..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 848e711d719a6d987bc7d14183e1c7b1f1c91c56 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Fri, 29 Jun 2018 17:10:29 +0800 -Subject: [PATCH 08/19] 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. - -Dont use GNU GLOB extentions on non-glibc systems - -Conditionalize use of GLOB_ALTDIRFUNC - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/basic/glob-util.c | 13 +++++++++++-- - src/test/test-glob-util.c | 15 +++++++++++++++ - src/tmpfiles/tmpfiles.c | 10 ++++++++++ - 3 files changed, 36 insertions(+), 2 deletions(-) - -diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c -index 9fac676f2..8adb9559e 100644 ---- a/src/basic/glob-util.c -+++ b/src/basic/glob-util.c -@@ -10,6 +10,11 @@ - #include "macro.h" - #include "path-util.h" - #include "strv.h" -+/* Don't fail if the standard library -+ * doesn't provide brace expansion */ -+#ifndef GLOB_BRACE -+#define GLOB_BRACE 0 -+#endif - - static void closedir_wrapper(void* v) { - (void) closedir(v); -@@ -18,6 +23,7 @@ static void closedir_wrapper(void* v) { - int safe_glob(const char *path, int flags, glob_t *pglob) { - int k; - -+#ifdef GLOB_ALTDIRFUNC - /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */ - assert(!(flags & GLOB_ALTDIRFUNC)); - -@@ -31,10 +37,13 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { - pglob->gl_lstat = lstat; - if (!pglob->gl_stat) - pglob->gl_stat = stat; -- -+#endif - errno = 0; -+#ifdef GLOB_ALTDIRFUNC - k = glob(path, flags | GLOB_ALTDIRFUNC, NULL, pglob); -- -+#else -+ k = glob(path, flags, NULL, pglob); -+#endif - 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 d78d6223c..f5943b26d 100644 ---- a/src/test/test-glob-util.c -+++ b/src/test/test-glob-util.c -@@ -12,6 +12,11 @@ - #include "glob-util.h" - #include "macro.h" - #include "rm-rf.h" -+/* Don't fail if the standard library -+ * doesn't provide brace expansion */ -+#ifndef GLOB_BRACE -+#define GLOB_BRACE 0 -+#endif - - static void test_glob_exists(void) { - char name[] = "/tmp/test-glob_exists.XXXXXX"; -@@ -40,11 +45,13 @@ static void test_glob_no_dot(void) { - const char *fn; - - _cleanup_globfree_ glob_t g = { -+#ifdef GLOB_ALTDIRFUNC - .gl_closedir = closedir_wrapper, - .gl_readdir = (struct dirent *(*)(void *)) readdir_no_dot, - .gl_opendir = (void *(*)(const char *)) opendir, - .gl_lstat = lstat, - .gl_stat = stat, -+#endif - }; - - int r; -@@ -52,11 +59,19 @@ static void test_glob_no_dot(void) { - assert_se(mkdtemp(template)); - - fn = strjoina(template, "/*"); -+#ifdef GLOB_ALTDIRFUNC - r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g); -+#else -+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g); -+#endif - assert_se(r == GLOB_NOMATCH); - - fn = strjoina(template, "/.*"); -+#ifdef GLOB_ALTDIRFUNC - r = glob(fn, GLOB_NOSORT|GLOB_BRACE|GLOB_ALTDIRFUNC, NULL, &g); -+#else -+ r = glob(fn, GLOB_NOSORT|GLOB_BRACE, NULL, &g); -+#endif - 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 927de35f3..5f0283da5 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -60,6 +60,12 @@ - #include "user-util.h" - #include "util.h" - -+/* Don't fail if the standard library -+ * doesn't provide brace expansion */ -+#ifndef GLOB_BRACE -+#define GLOB_BRACE 0 -+#endif -+ - /* 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 -@@ -1345,7 +1351,9 @@ finish: - - static int glob_item(Item *i, action_t action) { - _cleanup_globfree_ glob_t g = { -+#ifdef GLOB_ALTDIRFUNC - .gl_opendir = (void *(*)(const char *)) opendir_nomod, -+#endif - }; - int r = 0, k; - char **fn; -@@ -1365,7 +1373,9 @@ static int glob_item(Item *i, action_t action) { - - static int glob_item_recursively(Item *i, fdaction_t action) { - _cleanup_globfree_ glob_t g = { -+#ifdef GLOB_ALTDIRFUNC - .gl_opendir = (void *(*)(const char *)) opendir_nomod, -+#endif - }; - int r = 0, k; - char **fn; --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0009-add-missing-FTW_-macros-for-musl.patch b/external/poky/meta/recipes-core/systemd/systemd/0009-add-missing-FTW_-macros-for-musl.patch deleted file mode 100644 index 95287cce..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0009-add-missing-FTW_-macros-for-musl.patch +++ /dev/null @@ -1,50 +0,0 @@ -From acc2c08082795802011e3c5f8626d63210021489 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 28 Feb 2018 21:36:32 -0800 -Subject: [PATCH 09/19] add missing FTW_ macros for musl - -This is to avoid build failures like below for musl. - - locale-util.c:296:24: error: 'FTW_STOP' undeclared - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Chen Qi ---- - src/basic/missing.h | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/src/basic/missing.h b/src/basic/missing.h -index 02397f1b6..6dc750eba 100644 ---- a/src/basic/missing.h -+++ b/src/basic/missing.h -@@ -189,6 +189,26 @@ struct sockaddr_vm { - #define BTRFS_QGROUP_LEVEL_SHIFT 48 - #endif - -+#ifndef FTW_ACTIONRETVAL -+#define FTW_ACTIONRETVAL 16 -+#endif -+ -+#ifndef FTW_CONTINUE -+#define FTW_CONTINUE 0 -+#endif -+ -+#ifndef FTW_STOP -+#define FTW_STOP 1 -+#endif -+ -+#ifndef FTW_SKIP_SUBTREE -+#define FTW_SKIP_SUBTREE 2 -+#endif -+ -+#ifndef FTW_SKIP_SIBLINGS -+#define FTW_SKIP_SIBLINGS 3 -+#endif -+ - #if ! HAVE_LINUX_BTRFS_H - #define BTRFS_IOC_QGROUP_ASSIGN _IOW(BTRFS_IOCTL_MAGIC, 41, \ - struct btrfs_ioctl_qgroup_assign_args) --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch b/external/poky/meta/recipes-core/systemd/systemd/0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch deleted file mode 100644 index a635fa91..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch +++ /dev/null @@ -1,43 +0,0 @@ -From f9625b5f3fd5dac3f3591dbeeb24dc9d6fda790d Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Tue, 27 Feb 2018 12:56:21 +0800 -Subject: [PATCH 9/9] nss-mymachines: Build conditionally when - ENABLE_MYHOSTNAME is set - -Fixes build failures when building with --disable-myhostname - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - meson.build | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/meson.build b/meson.build -index 3bb087fef..73bd70b0b 100644 ---- a/meson.build -+++ b/meson.build -@@ -1371,12 +1371,15 @@ test_dlopen = executable( - link_with : [libbasic], - dependencies : [libdl]) - --foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME'], -- ['systemd', 'ENABLE_NSS_SYSTEMD'], -- ['mymachines', 'ENABLE_MACHINED'], -- ['resolve', 'ENABLE_RESOLVE']] -+foreach tuple : [['myhostname', 'ENABLE_MYHOSTNAME', ''], -+ ['systemd', 'ENABLE_NSS_SYSTEMD', ''], -+ ['mymachines', 'ENABLE_MACHINED', 'ENABLE_MYHOSTNAME'], -+ ['resolve', 'ENABLE_RESOLVE', '']] - - condition = tuple[1] == '' or conf.get(tuple[1]) == 1 -+ if tuple[2] != '' and condition -+ condition = conf.get(tuple[2]) == 1 -+ endif - if condition - module = tuple[0] - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/external/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch new file mode 100644 index 00000000..0de11219 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch @@ -0,0 +1,43 @@ +From 5166a6657570d4072cdce118621791e4a8186e07 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:03:47 +0800 +Subject: [PATCH] fix missing of __register_atfork for non-glibc builds + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + src/basic/process-util.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/basic/process-util.c b/src/basic/process-util.c +index 9b6c4c31f713..24fec5ecb53a 100644 +--- a/src/basic/process-util.c ++++ b/src/basic/process-util.c +@@ -18,6 +18,9 @@ + #if HAVE_VALGRIND_VALGRIND_H + #include + #endif ++#ifndef __GLIBC__ ++#include ++#endif + + #include "alloc-util.h" + #include "architecture.h" +@@ -1114,11 +1117,15 @@ void reset_cached_pid(void) { + cached_pid = CACHED_PID_UNSET; + } + ++#ifdef __GLIBC__ + /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc + * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against + * libpthread, as it is part of glibc anyway. */ + extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle); + extern void* __dso_handle _weak_; ++#else ++#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child) ++#endif + + pid_t getpid_cached(void) { + static bool installed = false; diff --git a/external/poky/meta/recipes-core/systemd/systemd/0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch b/external/poky/meta/recipes-core/systemd/systemd/0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch deleted file mode 100644 index 16547981..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a0bd587300744dbb8e9cfbb043233670ce781c98 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 2 Jul 2018 13:22:41 +0800 -Subject: [PATCH 10/19] socket-util: don't fail if libc doesn't support IDN - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Emil Renner Berthing -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/basic/socket-util.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c -index a913102e1..0d0154805 100644 ---- a/src/basic/socket-util.c -+++ b/src/basic/socket-util.c -@@ -32,6 +32,16 @@ - #include "utf8.h" - #include "util.h" - -+/* Don't fail if the standard library -+ * doesn't support IDN */ -+#ifndef NI_IDN -+#define NI_IDN 0 -+#endif -+ -+#ifndef NI_IDN_USE_STD3_ASCII_RULES -+#define NI_IDN_USE_STD3_ASCII_RULES 0 -+#endif -+ - #if ENABLE_IDN - # define IDN_FLAGS NI_IDN - #else --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch b/external/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch new file mode 100644 index 00000000..e00600ab --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch @@ -0,0 +1,95 @@ +From f6df7f25a6bb00d5540915216adfff8afefec2b0 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:12:41 +0800 +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 +uintmax_t. + +Fixes portablility errors like + +execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=] +| fprintf(f, "%s%s: " RLIM_FMT "\n", +| ^~~~~~~~ +| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); +| ~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199] + +Signed-off-by: Khem Raj +[Rebased for v241] +Signed-off-by: Chen Qi + +--- + 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 59622508a333..779b6826d50e 100644 +--- a/src/basic/format-util.h ++++ b/src/basic/format-util.h +@@ -44,13 +44,7 @@ + # define PRI_TIMEX "li" + #endif + +-#if SIZEOF_RLIM_T == 8 +-# define RLIM_FMT "%" PRIu64 +-#elif SIZEOF_RLIM_T == 4 +-# define RLIM_FMT "%" PRIu32 +-#else +-# error Unknown rlim_t size +-#endif ++#define RLIM_FMT "%ju" + + #if SIZEOF_DEV_T == 8 + # define DEV_FMT "%" PRIu64 +diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c +index 2dc13eabc30d..0633cc67f417 100644 +--- a/src/basic/rlimit-util.c ++++ b/src/basic/rlimit-util.c +@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { + if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) + s = strdup("infinity"); + else if (rl->rlim_cur >= RLIM_INFINITY) +- (void) asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max); ++ (void) asprintf(&s, "infinity:" RLIM_FMT, (uintmax_t)rl->rlim_max); + else if (rl->rlim_max >= RLIM_INFINITY) +- (void) asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur); ++ (void) asprintf(&s, RLIM_FMT ":infinity", (uintmax_t)rl->rlim_cur); + else if (rl->rlim_cur == rl->rlim_max) +- (void) asprintf(&s, RLIM_FMT, rl->rlim_cur); ++ (void) asprintf(&s, RLIM_FMT, (uintmax_t)rl->rlim_cur); + else +- (void) asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max); ++ (void) asprintf(&s, RLIM_FMT ":" RLIM_FMT, (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max); + + if (!s) + return -ENOMEM; +@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) { + + rl.rlim_cur = FD_SETSIZE; + if (setrlimit(RLIMIT_NOFILE, &rl) < 0) +- return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", rl.rlim_cur); ++ return log_debug_errno(errno, "Failed to lower RLIMIT_NOFILE's soft limit to " RLIM_FMT ": %m", (uintmax_t)rl.rlim_cur); + + return 1; + } +diff --git a/src/core/execute.c b/src/core/execute.c +index f04b8ba05002..084cf1420078 100644 +--- a/src/core/execute.c ++++ b/src/core/execute.c +@@ -4455,9 +4455,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) { + for (i = 0; i < RLIM_NLIMITS; i++) + if (c->rlimit[i]) { + fprintf(f, "%sLimit%s: " RLIM_FMT "\n", +- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); ++ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max); + fprintf(f, "%sLimit%sSoft: " RLIM_FMT "\n", +- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur); ++ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur); + } + + if (c->ioprio_set) { diff --git a/external/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch b/external/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch deleted file mode 100644 index 1a22ffd9..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 045f205fd21e5e380edf813de04fcfbf5a487219 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 2 Jul 2018 13:28:25 +0800 -Subject: [PATCH 11/19] src/basic/missing.h: check for missing __compar_fn_t - typedef - -include missing.h for missing __compar_fn_t - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/basic/missing.h | 5 +++++ - src/basic/strbuf.c | 1 + - 2 files changed, 6 insertions(+) - -diff --git a/src/basic/missing.h b/src/basic/missing.h -index 6dc750eba..cd1cc109f 100644 ---- a/src/basic/missing.h -+++ b/src/basic/missing.h -@@ -1179,6 +1179,11 @@ struct input_mask { - #define RENAME_NOREPLACE (1 << 0) - #endif - -+#ifndef __COMPAR_FN_T -+#define __COMPAR_FN_T -+typedef int (*__compar_fn_t)(const void *, const void *); -+#endif -+ - #ifndef KCMP_FILE - #define KCMP_FILE 0 - #endif -diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c -index e2ed776a0..4d3ebec4c 100644 ---- a/src/basic/strbuf.c -+++ b/src/basic/strbuf.c -@@ -7,6 +7,7 @@ - #include "alloc-util.h" - #include "strbuf.h" - #include "util.h" -+#include "missing.h" - - /* - * Strbuf stores given strings in a single continuous allocated memory --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/external/poky/meta/recipes-core/systemd/systemd/0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch deleted file mode 100644 index d41bc4a0..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1fadf805cb391e3bcbd9a0286a9e4b7adb9e7427 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 2 Jul 2018 13:34:09 +0800 -Subject: [PATCH 12/19] fix missing of __register_atfork for non-glibc builds - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Chen Qi ---- - 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 0a4f917cb..3543bc045 100644 ---- a/src/basic/process-util.c -+++ b/src/basic/process-util.c -@@ -22,6 +22,9 @@ - #if HAVE_VALGRIND_VALGRIND_H - #include - #endif -+#ifndef __GLIBC__ -+#include -+#endif - - #include "alloc-util.h" - #include "architecture.h" -@@ -1150,11 +1153,15 @@ void reset_cached_pid(void) { - cached_pid = CACHED_PID_UNSET; - } - -+#ifdef __GLIBC__ - /* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc - * headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against - * libpthread, as it is part of glibc anyway. */ - extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle); - extern void* __dso_handle __attribute__ ((__weak__)); -+#else -+#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child) -+#endif - - pid_t getpid_cached(void) { - static bool installed = false; --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0013-Use-uintmax_t-for-handling-rlim_t.patch b/external/poky/meta/recipes-core/systemd/systemd/0013-Use-uintmax_t-for-handling-rlim_t.patch deleted file mode 100644 index 69b3c151..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0013-Use-uintmax_t-for-handling-rlim_t.patch +++ /dev/null @@ -1,90 +0,0 @@ -From a0ac0cfd90af6431c64d1b276f422a2092d569b3 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Mon, 2 Jul 2018 13:44:21 +0800 -Subject: [PATCH 13/19] 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 -uintmax_t. - -Fixes portablility errors like - -execute.c:3446:36: error: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'rlim_t {aka long long unsigned int}' [-Werror=format=] -| fprintf(f, "%s%s: " RLIM_FMT "\n", -| ^~~~~~~~ -| prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); -| ~~~~~~~~~~~~~~~~~~~~~~ - -Upstream-Status: Denied [https://github.com/systemd/systemd/pull/7199] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/basic/format-util.h | 8 -------- - src/basic/rlimit-util.c | 8 ++++---- - src/core/execute.c | 8 ++++---- - 3 files changed, 8 insertions(+), 16 deletions(-) - -diff --git a/src/basic/format-util.h b/src/basic/format-util.h -index 160550cd6..61245d1e3 100644 ---- a/src/basic/format-util.h -+++ b/src/basic/format-util.h -@@ -43,14 +43,6 @@ - # define PRI_TIMEX "li" - #endif - --#if SIZEOF_RLIM_T == 8 --# define RLIM_FMT "%" PRIu64 --#elif SIZEOF_RLIM_T == 4 --# define RLIM_FMT "%" PRIu32 --#else --# error Unknown rlim_t size --#endif -- - #if SIZEOF_DEV_T == 8 - # define DEV_FMT "%" PRIu64 - #elif SIZEOF_DEV_T == 4 -diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c -index be1ba615e..e328ce499 100644 ---- a/src/basic/rlimit-util.c -+++ b/src/basic/rlimit-util.c -@@ -299,13 +299,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { - if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) - s = strdup("infinity"); - else if (rl->rlim_cur >= RLIM_INFINITY) -- (void) asprintf(&s, "infinity:" RLIM_FMT, rl->rlim_max); -+ (void) asprintf(&s, "infinity:%ju", (uintmax_t)rl->rlim_max); - else if (rl->rlim_max >= RLIM_INFINITY) -- (void) asprintf(&s, RLIM_FMT ":infinity", rl->rlim_cur); -+ (void) asprintf(&s, "%ju:infinity", (uintmax_t)rl->rlim_cur); - else if (rl->rlim_cur == rl->rlim_max) -- (void) asprintf(&s, RLIM_FMT, rl->rlim_cur); -+ (void) asprintf(&s, "%ju", (uintmax_t)rl->rlim_cur); - else -- (void) asprintf(&s, RLIM_FMT ":" RLIM_FMT, rl->rlim_cur, rl->rlim_max); -+ (void) asprintf(&s, "%ju:%ju", (uintmax_t)rl->rlim_cur, (uintmax_t)rl->rlim_max); - - if (!s) - return -ENOMEM; -diff --git a/src/core/execute.c b/src/core/execute.c -index 8ac69d1a0..efedf3842 100644 ---- a/src/core/execute.c -+++ b/src/core/execute.c -@@ -3976,10 +3976,10 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) { - - for (i = 0; i < RLIM_NLIMITS; i++) - if (c->rlimit[i]) { -- fprintf(f, "Limit%s%s: " RLIM_FMT "\n", -- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max); -- fprintf(f, "Limit%s%sSoft: " RLIM_FMT "\n", -- prefix, rlimit_to_string(i), c->rlimit[i]->rlim_cur); -+ fprintf(f, "Limit%s%s: %ju\n", -+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_max); -+ fprintf(f, "Limit%s%sSoft: %ju\n", -+ prefix, rlimit_to_string(i), (uintmax_t)c->rlimit[i]->rlim_cur); - } - - if (c->ioprio_set) { --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch b/external/poky/meta/recipes-core/systemd/systemd/0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch deleted file mode 100644 index 258a631c..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch +++ /dev/null @@ -1,30 +0,0 @@ -From cb59b3af54fb3bbd4d8264fef919810af8d08d16 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Tue, 27 Feb 2018 14:01:30 +0800 -Subject: [PATCH 14/19] fix missing ULONG_LONG_MAX definition in case of musl - -Upstream-Status: Inappropriate [musl] - -Signed-off-by: Chen Qi ---- - src/basic/missing.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/basic/missing.h b/src/basic/missing.h -index cd1cc109f..144058a1a 100644 ---- a/src/basic/missing.h -+++ b/src/basic/missing.h -@@ -54,6 +54,10 @@ struct sockaddr_vm { - }; - #endif /* !HAVE_LINUX_VM_SOCKETS_H */ - -+#ifndef ULONG_LONG_MAX -+#define ULONG_LONG_MAX ULLONG_MAX -+#endif -+ - #ifndef RLIMIT_RTTIME - #define RLIMIT_RTTIME 15 - #endif --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/external/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch new file mode 100644 index 00000000..aa23c7ab --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch @@ -0,0 +1,39 @@ +From 7874912817b5ac7ed7f8557359a12d9d4b2f53eb Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Wed, 28 Feb 2018 21:25:22 -0800 +Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj +Signed-off-by: Chen Qi + +--- + 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 7fc16a62b656..a710db5370b8 100644 +--- a/src/test/test-sizeof.c ++++ b/src/test/test-sizeof.c +@@ -42,8 +42,10 @@ int main(void) { + info(unsigned); + info(long unsigned); + info(long long unsigned); ++#ifdef __GLIBC__ + info(__syscall_ulong_t); + info(__syscall_slong_t); ++#endif + + info(float); + info(double); +@@ -61,7 +63,9 @@ int main(void) { + info(ssize_t); + info(time_t); + info(usec_t); ++#ifdef __GLIBC__ + info(__time_t); ++#endif + info(pid_t); + info(uid_t); + info(gid_t); diff --git a/external/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/external/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch new file mode 100644 index 00000000..efeef072 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch @@ -0,0 +1,97 @@ +From e6f871078d8d6f076c84f908fa57af15417ab87d Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Tue, 10 Oct 2017 14:33:30 -0700 +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: + + http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html + http://www.openwall.com/lists/musl/2015/02/05/2 + +Note that laccess() is never passing AT_EACCESS so a lot of the +discussion in the links above doesn't apply. Note also that +(currently) all systemd callers of laccess() pass mode as F_OK, so +only check for existence of a file, not access permissions. +Therefore, in this case, the only distiction between faccessat() +with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour +for broken symlinks; laccess() on a broken symlink will succeed with +(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0). + +The laccess() macros was added to systemd some time ago and it's not +clear if or why it needs to return success for broken symlinks. Maybe +just historical and not actually necessary or desired behaviour? + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Andre McCurdy + +--- + 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 78d68be9fd85..c5dc84d41868 100644 +--- a/src/basic/fs-util.h ++++ b/src/basic/fs-util.h +@@ -40,7 +40,27 @@ int fchmod_opath(int fd, mode_t m); + + int fd_warn_permissions(const char *path, int fd); + +-#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) ++/* ++ 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: ++ ++ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html ++ http://www.openwall.com/lists/musl/2015/02/05/2 ++ ++ Note that laccess() is never passing AT_EACCESS so a lot of the discussion in ++ the links above doesn't apply. Note also that (currently) all systemd callers ++ of laccess() pass mode as F_OK, so only check for existence of a file, not ++ access permissions. Therefore, in this case, the only distiction between ++ faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the ++ behaviour for broken symlinks; laccess() on a broken symlink will succeed ++ with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0). ++ ++ The laccess() macros was added to systemd some time ago and it's not clear if ++ or why it needs to return success for broken symlinks. Maybe just historical ++ and not actually necessary or desired behaviour? ++*/ ++ ++#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), 0) + + int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); + int touch(const char *path); +diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c +index 657407da2d37..fbd5782d84fc 100644 +--- a/src/shared/base-filesystem.c ++++ b/src/shared/base-filesystem.c +@@ -54,7 +54,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { + return log_error_errno(errno, "Failed to open root file system: %m"); + + for (i = 0; i < ELEMENTSOF(table); i ++) { +- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0) ++ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0) + continue; + + if (table[i].target) { +@@ -62,7 +62,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { + + /* check if one of the targets exists */ + NULSTR_FOREACH(s, table[i].target) { +- if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0) ++ if (faccessat(fd, s, F_OK, 0) < 0) + continue; + + /* check if a specific file exists at the target path */ +@@ -73,7 +73,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { + if (!p) + return log_oom(); + +- if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0) ++ if (faccessat(fd, p, F_OK, 0) < 0) + continue; + } + diff --git a/external/poky/meta/recipes-core/systemd/systemd/0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch b/external/poky/meta/recipes-core/systemd/systemd/0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch deleted file mode 100644 index c7ca9cd4..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b11109ecc41110c518a98b6ac39611ff86477021 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 23 Oct 2017 12:33:22 -0700 -Subject: [PATCH 15/19] test-hexdecoct.c: Include missing.h for strndupa - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - src/test/test-hexdecoct.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c -index da9f3008b..7ff2dfe0c 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" - - static void test_hexchar(void) { - assert_se(hexchar(0xa) == 'a'); --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/external/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch new file mode 100644 index 00000000..19a3eef8 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch @@ -0,0 +1,32 @@ +From ec335ef3bb903a7eaf054103cc51411e71e6448c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 27 May 2018 08:36:44 -0700 +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 + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Khem Raj + +--- + src/machine/machine-dbus.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c +index 760ccb445cd0..0df20f3864b3 100644 +--- a/src/machine/machine-dbus.c ++++ b/src/machine/machine-dbus.c +@@ -11,6 +11,11 @@ + #include + #undef basename + ++#if !defined(__GLIBC__) ++#include ++#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) ++#endif ++ + #include "alloc-util.h" + #include "bus-common-errors.h" + #include "bus-internal.h" diff --git a/external/poky/meta/recipes-core/systemd/systemd/0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/external/poky/meta/recipes-core/systemd/systemd/0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch deleted file mode 100644 index c06a3706..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c4bbf3efefffe0a4efadbf4e3f0adb54d76fe0e7 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 28 Feb 2018 21:25:22 -0800 -Subject: [PATCH 16/19] test-sizeof.c: Disable tests for missing typedefs in - musl - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj -Signed-off-by: Chen Qi ---- - 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 7a1e496ed..386b314d5 100644 ---- a/src/test/test-sizeof.c -+++ b/src/test/test-sizeof.c -@@ -40,8 +40,10 @@ int main(void) { - info(unsigned); - info(long unsigned); - info(long long unsigned); -+#ifdef __GLIBC__ - info(__syscall_ulong_t); - info(__syscall_slong_t); -+#endif - - info(float); - info(double); -@@ -59,7 +61,9 @@ int main(void) { - info(ssize_t); - info(time_t); - info(usec_t); -+#ifdef __GLIBC__ - info(__time_t); -+#endif - info(pid_t); - info(uid_t); - info(gid_t); --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/external/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch new file mode 100644 index 00000000..56f45381 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch @@ -0,0 +1,39 @@ +From a6f3359042219abaa8ae06dfcce41a4721e8c21f Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Wed, 4 Jul 2018 15:00:44 +0800 +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. + + Failed to adjust OOM setting: Invalid argument + +This error appears for systemd-udevd.service and dbus.service. +This is because kernel receives '-' instead of the whole '-900' +if buffering is disabled. + +This is libc implementation specific, as glibc does not have this issue. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi +[rebased for systemd 243] +Signed-off-by: Scott Murray + +--- + src/basic/process-util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/basic/process-util.c b/src/basic/process-util.c +index 24fec5ecb53a..642b02443c85 100644 +--- a/src/basic/process-util.c ++++ b/src/basic/process-util.c +@@ -1492,7 +1492,7 @@ int set_oom_score_adjust(int value) { + sprintf(t, "%i", value); + + return write_string_file("/proc/self/oom_score_adj", t, +- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER); ++ WRITE_STRING_FILE_VERIFY_ON_FAILURE); + } + + static const char *const ioprio_class_table[] = { diff --git a/external/poky/meta/recipes-core/systemd/systemd/0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/external/poky/meta/recipes-core/systemd/systemd/0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch deleted file mode 100644 index 8e47c6f5..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 91bb4f5c9c11464468e8d3fa4746d98d59997264 Mon Sep 17 00:00:00 2001 -From: Andre McCurdy -Date: Tue, 10 Oct 2017 14:33:30 -0700 -Subject: [PATCH 17/19] 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: - - http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html - http://www.openwall.com/lists/musl/2015/02/05/2 - -Note that laccess() is never passing AT_EACCESS so a lot of the -discussion in the links above doesn't apply. Note also that -(currently) all systemd callers of laccess() pass mode as F_OK, so -only check for existence of a file, not access permissions. -Therefore, in this case, the only distiction between faccessat() -with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the behaviour -for broken symlinks; laccess() on a broken symlink will succeed with -(flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0). - -The laccess() macros was added to systemd some time ago and it's not -clear if or why it needs to return success for broken symlinks. Maybe -just historical and not actually necessary or desired behaviour? - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Andre McCurdy ---- - 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 28566773c..14b864cc5 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); - - int fd_warn_permissions(const char *path, int fd); - --#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) -+/* -+ 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: -+ -+ http://lists.landley.net/pipermail/toybox-landley.net/2014-September/003610.html -+ http://www.openwall.com/lists/musl/2015/02/05/2 -+ -+ Note that laccess() is never passing AT_EACCESS so a lot of the discussion in -+ the links above doesn't apply. Note also that (currently) all systemd callers -+ of laccess() pass mode as F_OK, so only check for existence of a file, not -+ access permissions. Therefore, in this case, the only distiction between -+ faccessat() with (flag == 0) and (flag == AT_SYMLINK_NOFOLLOW) is the -+ behaviour for broken symlinks; laccess() on a broken symlink will succeed -+ with (flag == AT_SYMLINK_NOFOLLOW) and fail (flag == 0). -+ -+ The laccess() macros was added to systemd some time ago and it's not clear if -+ or why it needs to return success for broken symlinks. Maybe just historical -+ and not actually necessary or desired behaviour? -+*/ -+ -+#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), 0) - - 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 89d7a7d59..34b4ad53a 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) { - return log_error_errno(errno, "Failed to open root file system: %m"); - - for (i = 0; i < ELEMENTSOF(table); i ++) { -- if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0) -+ if (faccessat(fd, table[i].dir, F_OK, 0) >= 0) - continue; - - if (table[i].target) { -@@ -61,7 +61,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { - - /* check if one of the targets exists */ - NULSTR_FOREACH(s, table[i].target) { -- if (faccessat(fd, s, F_OK, AT_SYMLINK_NOFOLLOW) < 0) -+ if (faccessat(fd, s, F_OK, 0) < 0) - 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) { - if (!p) - return log_oom(); - -- if (faccessat(fd, p, F_OK, AT_SYMLINK_NOFOLLOW) < 0) -+ if (faccessat(fd, p, F_OK, 0) < 0) - continue; - } - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/external/poky/meta/recipes-core/systemd/systemd/0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch deleted file mode 100644 index 1bd0d602..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 97fed07132533a1b2bce9c60e305a5d09aee2e9b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 27 May 2018 08:36:44 -0700 -Subject: [PATCH 18/19] 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 - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Khem Raj ---- - src/machine/machine-dbus.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c -index 7f41465cc..cee8a5d43 100644 ---- a/src/machine/machine-dbus.c -+++ b/src/machine/machine-dbus.c -@@ -11,6 +11,10 @@ - #include - #undef basename - -+#if !defined(__GLIBC__) -+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) -+#endif -+ - #include "alloc-util.h" - #include "bus-common-errors.h" - #include "bus-internal.h" --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/external/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch new file mode 100644 index 00000000..84a492f2 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch @@ -0,0 +1,60 @@ +From 4938705454cf46cfe8deac8ce457d5d2432cbead Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Tue, 10 Jul 2018 15:40:17 +0800 +Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi + strerror_r + +XSI-compliant strerror_r and GNU-specifi strerror_r are different. + + int strerror_r(int errnum, char *buf, size_t buflen); + /* XSI-compliant */ + + char *strerror_r(int errnum, char *buf, size_t buflen); + /* GNU-specific */ + +We need to distinguish between them. Otherwise, we'll get an int value +assigned to (char *) variable, resulting in segment fault. + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + 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 43ed756bda53..227ea64dbb48 100644 +--- a/src/journal/journal-send.c ++++ b/src/journal/journal-send.c +@@ -336,7 +336,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove + char* j; + + errno = 0; ++#ifndef __GLIBC__ ++ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k); ++ j = buffer + 8 + k; ++#else + j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k); ++#endif + if (errno == 0) { + char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1]; + +diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c +index f760f0fdd21c..28a5159c4480 100644 +--- a/src/libsystemd/sd-bus/bus-error.c ++++ b/src/libsystemd/sd-bus/bus-error.c +@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) { + return; + + errno = 0; ++#ifndef __GLIBC__ ++ strerror_r(error, m, k); ++ x = m; ++#else + x = strerror_r(error, m, k); ++#endif + if (errno == ERANGE || strlen(x) >= k - 1) { + free(m); + k *= 2; diff --git a/external/poky/meta/recipes-core/systemd/systemd/0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/external/poky/meta/recipes-core/systemd/systemd/0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch deleted file mode 100644 index 942f4c09..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 8440348bcac34249cdf6ac2dcae9ac66d3c727db Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Wed, 4 Jul 2018 15:00:44 +0800 -Subject: [PATCH 19/19] 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. - - Failed to adjust OOM setting: Invalid argument - -This error appears for systemd-udevd.service and dbus.service. -This is because kernel receives '-' instead of the whole '-900' -if buffering is disabled. - -This is libc implementation specific, as glibc does not have this issue. - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Chen Qi ---- - 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 3543bc045..d0572e034 100644 ---- a/src/basic/process-util.c -+++ b/src/basic/process-util.c -@@ -1473,7 +1473,7 @@ int set_oom_score_adjust(int value) { - sprintf(t, "%i", value); - - return write_string_file("/proc/self/oom_score_adj", t, -- WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER); -+ WRITE_STRING_FILE_VERIFY_ON_FAILURE); - } - - static const char *const ioprio_class_table[] = { --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/external/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch new file mode 100644 index 00000000..3b806467 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch @@ -0,0 +1,33 @@ +From 1c4c73a7cc0fb59eb68ab70699f7f51af5c163b2 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:18:00 +0800 +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 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +[Rebased for v241] +Signed-off-by: Chen Qi + +--- + 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 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[] = { + }; + + /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */ +-extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[]; +-extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[]; ++extern const sd_bus_error_map __start_SYSTEMD_BUS_ERROR_MAP[] _hidden_; ++extern const sd_bus_error_map __stop_SYSTEMD_BUS_ERROR_MAP[] _hidden_; + + /* Additional maps registered with sd_bus_error_add_map() are in this + * NULL terminated array */ diff --git a/external/poky/meta/recipes-core/systemd/systemd/0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/external/poky/meta/recipes-core/systemd/systemd/0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch deleted file mode 100644 index 5c78cabb..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch +++ /dev/null @@ -1,62 +0,0 @@ -From dd53dc9b9542cbd2c39a39096941dfed70d06506 Mon Sep 17 00:00:00 2001 -From: Chen Qi -Date: Tue, 10 Jul 2018 15:40:17 +0800 -Subject: [PATCH 20/20] distinguish XSI-compliant strerror_r from GNU-specifi - strerror_r - -XSI-compliant strerror_r and GNU-specifi strerror_r are different. - - int strerror_r(int errnum, char *buf, size_t buflen); - /* XSI-compliant */ - - char *strerror_r(int errnum, char *buf, size_t buflen); - /* GNU-specific */ - -We need to distinguish between them. Otherwise, we'll get an int value -assigned to (char *) variable, resulting in segment fault. - -Upstream-Status: Inappropriate [musl specific] - -Signed-off-by: Chen Qi ---- - 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 65bcbcd2e..aef80dd8f 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 - char* j; - - errno = 0; -+#ifndef __GLIBC__ -+ strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k); -+ j = buffer + 8 + k; -+#else - j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k); -+#endif - 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 ec359ac13..d2aa86cea 100644 ---- a/src/libsystemd/sd-bus/bus-error.c -+++ b/src/libsystemd/sd-bus/bus-error.c -@@ -362,7 +362,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) { - return; - - errno = 0; -+#ifndef __GLIBC__ -+ strerror_r(error, m, k); -+ x = m; -+#else - x = strerror_r(error, m, k); -+#endif - if (errno == ERANGE || strlen(x) >= k - 1) { - free(m); - k *= 2; --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch b/external/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch new file mode 100644 index 00000000..db4041bb --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch @@ -0,0 +1,28 @@ +From 8303d49cabaf3ab8890ba1d266972c721dfe6ee8 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:27:54 +0800 +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'? + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + 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 23602ebbd533..917d314a81bf 100644 +--- a/src/basic/missing_type.h ++++ b/src/basic/missing_type.h +@@ -13,6 +13,7 @@ + + #ifndef __GLIBC__ + typedef int (*comparison_fn_t)(const void *, const void *); ++typedef int (*__compar_d_fn_t) (const void *, const void *, void *); + #endif + + #ifndef __COMPAR_FN_T diff --git a/external/poky/meta/recipes-core/systemd/systemd/0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/external/poky/meta/recipes-core/systemd/systemd/0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch deleted file mode 100644 index 668f2732..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 687a5af8dc5d38f918a6ce08fed5297234bf8346 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 2 Mar 2018 18:00:17 -0800 -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 - -Signed-off-by: Khem Raj ---- - -Upstream-Status: Pending [ Conditional on master needing this, 239 does need it ] - - 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 378f7a377..49d797abd 100644 ---- a/src/libsystemd/sd-bus/bus-error.c -+++ b/src/libsystemd/sd-bus/bus-error.c -@@ -71,8 +71,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = { - }; - - /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */ --extern const sd_bus_error_map __start_BUS_ERROR_MAP[]; --extern const sd_bus_error_map __stop_BUS_ERROR_MAP[]; -+extern const sd_bus_error_map __start_BUS_ERROR_MAP[] _hidden_; -+extern const sd_bus_error_map __stop_BUS_ERROR_MAP[] _hidden_; - - /* Additional maps registered with sd_bus_error_add_map() are in this - * NULL terminated array */ --- -2.16.2 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch b/external/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch new file mode 100644 index 00000000..7dacc368 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch @@ -0,0 +1,30 @@ +From 6364ff5534678c158a7fb8d4e50d0a6ce72c1ad8 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 15:44:54 +0800 +Subject: [PATCH] avoid redefinition of prctl_mm_map structure + +Fix the following compile failure: +error: redefinition of 'struct prctl_mm_map' + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + 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 f80cd17f346b..47e489354053 100644 +--- a/src/basic/missing_prctl.h ++++ b/src/basic/missing_prctl.h +@@ -1,7 +1,9 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + #pragma once + ++#ifdef __GLIBC__ + #include ++#endif + + /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */ + #ifndef PR_CAP_AMBIENT diff --git a/external/poky/meta/recipes-core/systemd/systemd/0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch b/external/poky/meta/recipes-core/systemd/systemd/0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch deleted file mode 100644 index 962463f0..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 75720bff62a84896e9a0654afc7cf9408cf89a38 Mon Sep 17 00:00:00 2001 -From: Filipe Brandenburger -Date: Sun, 15 Jul 2018 22:43:35 -0700 -Subject: [PATCH] build-sys: Detect whether struct statx is defined in - sys/stat.h -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Starting with glibc 2.27.9000-36.fc29, include file sys/stat.h will have a -definition for struct statx, in which case include file linux/stat.h should be -avoided, in order to prevent a duplicate definition. - - In file included from ../src/basic/missing.h:18, - from ../src/basic/util.h:28, - from ../src/basic/hashmap.h:10, - from ../src/shared/bus-util.h:12, - from ../src/libsystemd/sd-bus/bus-creds.c:11: - /usr/include/linux/stat.h:99:8: error: redefinition of ‘struct statx’ - struct statx { - ^~~~~ - In file included from /usr/include/sys/stat.h:446, - from ../src/basic/util.h:19, - from ../src/basic/hashmap.h:10, - from ../src/shared/bus-util.h:12, - from ../src/libsystemd/sd-bus/bus-creds.c:11: - /usr/include/bits/statx.h:36:8: note: originally defined here - struct statx - ^~~~~ - -Extend our meson.build to look for struct statx when only sys/stat.h is -included and, in that case, do not include linux/stat.h anymore. - -Tested that systemd builds correctly when using a glibc version that includes a -definition for struct statx. - -glibc Fedora RPM update: -https://src.fedoraproject.org/rpms/glibc/c/28cb5d31fc1e5887912283c889689c47076278ae - -glibc upstream commit: -https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fd70af45528d59a00eb3190ef6706cb299488fcd ---- - -Upstream-Status: Pending -Signed-off-by: Khem Raj - - meson.build | 5 +++++ - src/basic/missing.h | 5 ++++- - src/basic/xattr-util.c | 1 - - 3 files changed, 9 insertions(+), 2 deletions(-) - -Index: git/meson.build -=================================================================== ---- git.orig/meson.build -+++ git/meson.build -@@ -432,6 +432,7 @@ decl_headers = ''' - #include - ''' - # FIXME: key_serial_t is only defined in keyutils.h, this is bound to fail -+# FIXME: these should use -D_GNU_SOURCE, since that is defined at build time - - foreach decl : ['char16_t', - 'char32_t', -@@ -446,6 +447,10 @@ foreach decl : ['char16_t', - conf.set10('HAVE_' + decl.underscorify().to_upper(), have) - endforeach - -+conf.set10('HAVE_STRUCT_STATX_IN_SYS_STAT_H', cc.sizeof('struct statx', prefix : ''' -+#include -+''', args : '-D_GNU_SOURCE') > 0) -+ - foreach decl : [['IFLA_INET6_ADDR_GEN_MODE', 'linux/if_link.h'], - ['IN6_ADDR_GEN_MODE_STABLE_PRIVACY', 'linux/if_link.h'], - ['IFLA_VRF_TABLE', 'linux/if_link.h'], -Index: git/src/basic/missing.h -=================================================================== ---- git.orig/src/basic/missing.h -+++ git/src/basic/missing.h -@@ -15,7 +15,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -25,6 +24,10 @@ - #include - #include - -+#if !HAVE_STRUCT_STATX_IN_SYS_STAT_H -+#include -+#endif -+ - #if HAVE_AUDIT - #include - #endif -Index: git/src/basic/xattr-util.c -=================================================================== ---- git.orig/src/basic/xattr-util.c -+++ git/src/basic/xattr-util.c -@@ -2,7 +2,6 @@ - - #include - #include --#include - #include - #include - #include diff --git a/external/poky/meta/recipes-core/systemd/systemd/0023-resolvconf-fixes-for-the-compatibility-interface.patch b/external/poky/meta/recipes-core/systemd/systemd/0023-resolvconf-fixes-for-the-compatibility-interface.patch deleted file mode 100644 index 2f3e776a..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0023-resolvconf-fixes-for-the-compatibility-interface.patch +++ /dev/null @@ -1,58 +0,0 @@ -systemd-239: fixes for the compatibility interface - -[No upstream tracking] -- https://github.com/systemd/systemd/issues/9423 - -resolvconf-compat: use compat_main() when called as `resolvconf`, -since the interface is closer to that of `systemd-resolve`. - -Use a heap allocated string to set arg_ifname, since a stack allocated -one would be lost after the function returns. (This last one broke the -case where an interface name was suffixed with a dot, such as in -`resolvconf -a tap0.dhcp`.) - -Tested: - $ build/resolvconf -a nonexistent.abc - -diff --git a/src/resolve/resolvconf-compat.c b/src/resolve/resolvconf-compat.c -index d7e68003e..072345894 100644 ---- a/src/resolve/resolvconf-compat.c -+++ b/src/resolve/resolvconf-compat.c -@@ -53,6 +53,8 @@ static int parse_nameserver(const char *string) { - - if (strv_push(&arg_set_dns, word) < 0) - return log_oom(); -+ -+ word = NULL; - } - - return 0; -@@ -202,7 +204,7 @@ int resolvconf_parse_argv(int argc, char *argv[]) { - - dot = strchr(argv[optind], '.'); - if (dot) { -- iface = strndupa(argv[optind], dot - argv[optind]); -+ iface = strndup(argv[optind], dot - argv[optind]); - log_debug("Ignoring protocol specifier '%s'.", dot + 1); - } else - iface = argv[optind]; -diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c -index e96c13fea..e9e395e3e 100644 ---- a/src/resolve/resolvectl.c -+++ b/src/resolve/resolvectl.c -@@ -3092,7 +3092,7 @@ int main(int argc, char **argv) { - goto finish; - } - -- if (streq(program_invocation_short_name, "systemd-resolve")) -+ if (STR_IN_SET(program_invocation_short_name, "systemd-resolve", "resolvconf")) - r = compat_main(argc, argv, bus); - else - r = native_main(argc, argv, bus); --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0024-journald-do-not-store-the-iovec-entry-for-process-co.patch b/external/poky/meta/recipes-core/systemd/systemd/0024-journald-do-not-store-the-iovec-entry-for-process-co.patch deleted file mode 100644 index c2f78be3..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0024-journald-do-not-store-the-iovec-entry-for-process-co.patch +++ /dev/null @@ -1,208 +0,0 @@ -From 9cb07e7d82c7c4f28bbaa1478e1387e8ea3d03dd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 5 Dec 2018 18:38:39 +0100 -Subject: [PATCH] journald: do not store the iovec entry for process - commandline on stack - -This fixes a crash where we would read the commandline, whose length is under -control of the sending program, and then crash when trying to create a stack -allocation for it. - -CVE-2018-16864 -https://bugzilla.redhat.com/show_bug.cgi?id=1653855 - -The message actually doesn't get written to disk, because -journal_file_append_entry() returns -E2BIG. - -Patch backported from systemd master at -084eeb865ca63887098e0945fb4e93c852b91b0f. - -CVE: CVE-2018-16864 -Upstream-Status: Backport -Signed-off-by: Marcus Cooper ---- - src/basic/io-util.c | 10 ++++++++++ - src/basic/io-util.h | 2 ++ - src/coredump/coredump.c | 31 +++++++++++-------------------- - src/journal/journald-server.c | 25 +++++++++++++++---------- - 4 files changed, 38 insertions(+), 30 deletions(-) - -diff --git a/src/basic/io-util.c b/src/basic/io-util.c -index 1f64cc933b..575398fbe6 100644 ---- a/src/basic/io-util.c -+++ b/src/basic/io-util.c -@@ -8,6 +8,7 @@ - #include - - #include "io-util.h" -+#include "string-util.h" - #include "time-util.h" - - int flush_fd(int fd) { -@@ -252,3 +253,12 @@ ssize_t sparse_write(int fd, const void *p, size_t sz, size_t run_length) { - - return q - (const uint8_t*) p; - } -+ -+char* set_iovec_string_field(struct iovec *iovec, size_t *n_iovec, const char *field, const char *value) { -+ char *x; -+ -+ x = strappend(field, value); -+ if (x) -+ iovec[(*n_iovec)++] = IOVEC_MAKE_STRING(x); -+ return x; -+} -diff --git a/src/basic/io-util.h b/src/basic/io-util.h -index ed189b5820..792a64ad5e 100644 ---- a/src/basic/io-util.h -+++ b/src/basic/io-util.h -@@ -71,3 +71,5 @@ static inline bool FILE_SIZE_VALID_OR_INFINITY(uint64_t l) { - #define IOVEC_MAKE(base, len) (struct iovec) IOVEC_INIT(base, len) - #define IOVEC_INIT_STRING(string) IOVEC_INIT((char*) string, strlen(string)) - #define IOVEC_MAKE_STRING(string) (struct iovec) IOVEC_INIT_STRING(string) -+ -+char* set_iovec_string_field(struct iovec *iovec, size_t *n_iovec, const char *field, const char *value); -diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c -index 20a1cbdd45..18e4f61d72 100644 ---- a/src/coredump/coredump.c -+++ b/src/coredump/coredump.c -@@ -1053,19 +1053,10 @@ static int send_iovec(const struct iovec iovec[], size_t n_iovec, int input_fd) - return 0; - } - --static char* set_iovec_field(struct iovec *iovec, size_t *n_iovec, const char *field, const char *value) { -- char *x; -- -- x = strappend(field, value); -- if (x) -- iovec[(*n_iovec)++] = IOVEC_MAKE_STRING(x); -- return x; --} -- - static char* set_iovec_field_free(struct iovec *iovec, size_t *n_iovec, const char *field, char *value) { - char *x; - -- x = set_iovec_field(iovec, n_iovec, field, value); -+ x = set_iovec_string_field(iovec, n_iovec, field, value); - free(value); - return x; - } -@@ -1115,36 +1106,36 @@ static int gather_pid_metadata( - disable_coredumps(); - } - -- set_iovec_field(iovec, n_iovec, "COREDUMP_UNIT=", context[CONTEXT_UNIT]); -+ set_iovec_string_field(iovec, n_iovec, "COREDUMP_UNIT=", context[CONTEXT_UNIT]); - } - - if (cg_pid_get_user_unit(pid, &t) >= 0) - set_iovec_field_free(iovec, n_iovec, "COREDUMP_USER_UNIT=", t); - - /* The next few are mandatory */ -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_PID=", context[CONTEXT_PID])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_PID=", context[CONTEXT_PID])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_UID=", context[CONTEXT_UID])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_UID=", context[CONTEXT_UID])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_GID=", context[CONTEXT_GID])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_GID=", context[CONTEXT_GID])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_SIGNAL=", context[CONTEXT_SIGNAL])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_SIGNAL=", context[CONTEXT_SIGNAL])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_RLIMIT=", context[CONTEXT_RLIMIT])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_RLIMIT=", context[CONTEXT_RLIMIT])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_HOSTNAME=", context[CONTEXT_HOSTNAME])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_HOSTNAME=", context[CONTEXT_HOSTNAME])) - return log_oom(); - -- if (!set_iovec_field(iovec, n_iovec, "COREDUMP_COMM=", context[CONTEXT_COMM])) -+ if (!set_iovec_string_field(iovec, n_iovec, "COREDUMP_COMM=", context[CONTEXT_COMM])) - return log_oom(); - - if (context[CONTEXT_EXE] && -- !set_iovec_field(iovec, n_iovec, "COREDUMP_EXE=", context[CONTEXT_EXE])) -+ !set_iovec_string_field(iovec, n_iovec, "COREDUMP_EXE=", context[CONTEXT_EXE])) - return log_oom(); - - if (sd_pid_get_session(pid, &t) >= 0) -@@ -1212,7 +1203,7 @@ static int gather_pid_metadata( - iovec[(*n_iovec)++] = IOVEC_MAKE_STRING(t); - - if (safe_atoi(context[CONTEXT_SIGNAL], &signo) >= 0 && SIGNAL_VALID(signo)) -- set_iovec_field(iovec, n_iovec, "COREDUMP_SIGNAL_NAME=SIG", signal_to_string(signo)); -+ set_iovec_string_field(iovec, n_iovec, "COREDUMP_SIGNAL_NAME=SIG", signal_to_string(signo)); - - return 0; /* we successfully acquired all metadata */ - } -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index 4f1550ec5b..31be085c6b 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -753,6 +753,7 @@ static void dispatch_message_real( - pid_t object_pid) { - - char source_time[sizeof("_SOURCE_REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t)]; -+ _cleanup_free_ char *cmdline1 = NULL, *cmdline2 = NULL; - uid_t journal_uid; - ClientContext *o; - -@@ -769,20 +770,23 @@ static void dispatch_message_real( - IOVEC_ADD_NUMERIC_FIELD(iovec, n, c->uid, uid_t, uid_is_valid, UID_FMT, "_UID"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, c->gid, gid_t, gid_is_valid, GID_FMT, "_GID"); - -- IOVEC_ADD_STRING_FIELD(iovec, n, c->comm, "_COMM"); -- IOVEC_ADD_STRING_FIELD(iovec, n, c->exe, "_EXE"); -- IOVEC_ADD_STRING_FIELD(iovec, n, c->cmdline, "_CMDLINE"); -- IOVEC_ADD_STRING_FIELD(iovec, n, c->capeff, "_CAP_EFFECTIVE"); -+ IOVEC_ADD_STRING_FIELD(iovec, n, c->comm, "_COMM"); /* At most TASK_COMM_LENGTH (16 bytes) */ -+ IOVEC_ADD_STRING_FIELD(iovec, n, c->exe, "_EXE"); /* A path, so at most PATH_MAX (4096 bytes) */ - -- IOVEC_ADD_SIZED_FIELD(iovec, n, c->label, c->label_size, "_SELINUX_CONTEXT"); -+ if (c->cmdline) -+ /* At most _SC_ARG_MAX (2MB usually), which is too much to put on stack. -+ * Let's use a heap allocation for this one. */ -+ cmdline1 = set_iovec_string_field(iovec, &n, "_CMDLINE=", c->cmdline); - -+ IOVEC_ADD_STRING_FIELD(iovec, n, c->capeff, "_CAP_EFFECTIVE"); /* Read from /proc/.../status */ -+ IOVEC_ADD_SIZED_FIELD(iovec, n, c->label, c->label_size, "_SELINUX_CONTEXT"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, c->auditid, uint32_t, audit_session_is_valid, "%" PRIu32, "_AUDIT_SESSION"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, c->loginuid, uid_t, uid_is_valid, UID_FMT, "_AUDIT_LOGINUID"); - -- IOVEC_ADD_STRING_FIELD(iovec, n, c->cgroup, "_SYSTEMD_CGROUP"); -+ IOVEC_ADD_STRING_FIELD(iovec, n, c->cgroup, "_SYSTEMD_CGROUP"); /* A path */ - IOVEC_ADD_STRING_FIELD(iovec, n, c->session, "_SYSTEMD_SESSION"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, c->owner_uid, uid_t, uid_is_valid, UID_FMT, "_SYSTEMD_OWNER_UID"); -- IOVEC_ADD_STRING_FIELD(iovec, n, c->unit, "_SYSTEMD_UNIT"); -+ IOVEC_ADD_STRING_FIELD(iovec, n, c->unit, "_SYSTEMD_UNIT"); /* Unit names are bounded by UNIT_NAME_MAX */ - IOVEC_ADD_STRING_FIELD(iovec, n, c->user_unit, "_SYSTEMD_USER_UNIT"); - IOVEC_ADD_STRING_FIELD(iovec, n, c->slice, "_SYSTEMD_SLICE"); - IOVEC_ADD_STRING_FIELD(iovec, n, c->user_slice, "_SYSTEMD_USER_SLICE"); -@@ -803,13 +807,14 @@ static void dispatch_message_real( - IOVEC_ADD_NUMERIC_FIELD(iovec, n, o->uid, uid_t, uid_is_valid, UID_FMT, "OBJECT_UID"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, o->gid, gid_t, gid_is_valid, GID_FMT, "OBJECT_GID"); - -+ /* See above for size limits, only ->cmdline may be large, so use a heap allocation for it. */ - IOVEC_ADD_STRING_FIELD(iovec, n, o->comm, "OBJECT_COMM"); - IOVEC_ADD_STRING_FIELD(iovec, n, o->exe, "OBJECT_EXE"); -- IOVEC_ADD_STRING_FIELD(iovec, n, o->cmdline, "OBJECT_CMDLINE"); -- IOVEC_ADD_STRING_FIELD(iovec, n, o->capeff, "OBJECT_CAP_EFFECTIVE"); -+ if (o->cmdline) -+ cmdline2 = set_iovec_string_field(iovec, &n, "OBJECT_CMDLINE=", o->cmdline); - -+ IOVEC_ADD_STRING_FIELD(iovec, n, o->capeff, "OBJECT_CAP_EFFECTIVE"); - IOVEC_ADD_SIZED_FIELD(iovec, n, o->label, o->label_size, "OBJECT_SELINUX_CONTEXT"); -- - IOVEC_ADD_NUMERIC_FIELD(iovec, n, o->auditid, uint32_t, audit_session_is_valid, "%" PRIu32, "OBJECT_AUDIT_SESSION"); - IOVEC_ADD_NUMERIC_FIELD(iovec, n, o->loginuid, uid_t, uid_is_valid, UID_FMT, "OBJECT_AUDIT_LOGINUID"); - --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch b/external/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch new file mode 100644 index 00000000..80beada3 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch @@ -0,0 +1,31 @@ +From a05cc5fb3dc0e51682c40196285cdda34ec90783 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 25 Feb 2019 16:53:06 +0800 +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'? + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Chen Qi + +--- + 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 a6613043b924..ca823ea79f05 100644 +--- a/src/test/test-json.c ++++ b/src/test/test-json.c +@@ -12,6 +12,10 @@ + #include "tests.h" + #include "util.h" + ++#ifndef M_PIl ++#define M_PIl 3.141592653589793238462643383279502884L ++#endif ++ + static void test_tokenizer(const char *data, ...) { + unsigned line = 0, column = 0; + void *state = NULL; diff --git a/external/poky/meta/recipes-core/systemd/systemd/0025-journald-set-a-limit-on-the-number-of-fields.patch b/external/poky/meta/recipes-core/systemd/systemd/0025-journald-set-a-limit-on-the-number-of-fields.patch deleted file mode 100644 index ae9ef5de..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0025-journald-set-a-limit-on-the-number-of-fields.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 7cad044b72406cbadf048da432c29afea74c3c10 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 5 Dec 2018 22:45:02 +0100 -Subject: [PATCH] journald: set a limit on the number of fields - -The fix for CVE-2018-16865 is plucked from two commits that have -been pushed to systemd master. - -journald: set a limit on the number of fields (1k) - -We allocate a iovec entry for each field, so with many short entries, -our memory usage and processing time can be large, even with a relatively -small message size. Let's refuse overly long entries. - -CVE-2018-16865 -https://bugzilla.redhat.com/show_bug.cgi?id=1653861 - -What from I can see, the problem is not from an alloca, despite what the CVE -description says, but from the attack multiplication that comes from creating -many very small iovecs: (void* + size_t) for each three bytes of input message. - -Patch backported from systemd master at -052c57f132f04a3cf4148f87561618da1a6908b4. - -journal-remote: set a limit on the number of fields in a message - -Existing use of E2BIG is replaced with ENOBUFS (entry too long), and E2BIG is -reused for the new error condition (too many fields). - -This matches the change done for systemd-journald, hence forming the second -part of the fix for CVE-2018-16865 -(https://bugzilla.redhat.com/show_bug.cgi?id=1653861). - -Patch backported from systemd master at -ef4d6abe7c7fab6cbff975b32e76b09feee56074. -with the changes applied by 7fdb237f5473cb8fc2129e57e8a0039526dcb4fd -removed. - -CVE: CVE-2018-16865 -Upstream-Status: Backport -Signed-off-by: Marcus Cooper ---- - src/basic/journal-importer.c | 5 ++++- - src/basic/journal-importer.h | 3 +++ - src/journal-remote/journal-remote-main.c | 7 ++++++- - src/journal-remote/journal-remote.c | 5 ++++- - src/journal/journald-native.c | 5 +++++ - 5 files changed, 22 insertions(+), 3 deletions(-) - -diff --git a/src/basic/journal-importer.c b/src/basic/journal-importer.c -index ca203bbbfc..3ac55a66d9 100644 ---- a/src/basic/journal-importer.c -+++ b/src/basic/journal-importer.c -@@ -23,6 +23,9 @@ enum { - }; - - static int iovw_put(struct iovec_wrapper *iovw, void* data, size_t len) { -+ if (iovw->count >= ENTRY_FIELD_COUNT_MAX) -+ return -E2BIG; -+ - if (!GREEDY_REALLOC(iovw->iovec, iovw->size_bytes, iovw->count + 1)) - return log_oom(); - -@@ -98,7 +101,7 @@ static int get_line(JournalImporter *imp, char **line, size_t *size) { - imp->scanned = imp->filled; - if (imp->scanned >= DATA_SIZE_MAX) { - log_error("Entry is bigger than %u bytes.", DATA_SIZE_MAX); -- return -E2BIG; -+ return -ENOBUFS; - } - - if (imp->passive_fd) -diff --git a/src/basic/journal-importer.h b/src/basic/journal-importer.h -index f49ce734a1..c4ae45d32d 100644 ---- a/src/basic/journal-importer.h -+++ b/src/basic/journal-importer.h -@@ -16,6 +16,9 @@ - #define DATA_SIZE_MAX (1024*1024*768u) - #define LINE_CHUNK 8*1024u - -+/* The maximum number of fields in an entry */ -+#define ENTRY_FIELD_COUNT_MAX 1024 -+ - struct iovec_wrapper { - struct iovec *iovec; - size_t size_bytes; -diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c -index 8fda9d1499..3a01fef646 100644 ---- a/src/journal-remote/journal-remote-main.c -+++ b/src/journal-remote/journal-remote-main.c -@@ -212,7 +212,12 @@ static int process_http_upload( - break; - else if (r < 0) { - log_warning("Failed to process data for connection %p", connection); -- if (r == -E2BIG) -+ if (r == -ENOBUFS) -+ return mhd_respondf(connection, -+ r, MHD_HTTP_PAYLOAD_TOO_LARGE, -+ "Entry is above the maximum of %u, aborting connection %p.", -+ DATA_SIZE_MAX, connection); -+ else if (r == -E2BIG) - return mhd_respondf(connection, - r, MHD_HTTP_PAYLOAD_TOO_LARGE, - "Entry is too large, maximum is " STRINGIFY(DATA_SIZE_MAX) " bytes."); -diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c -index beb75a1cb4..67e3a70c06 100644 ---- a/src/journal-remote/journal-remote.c -+++ b/src/journal-remote/journal-remote.c -@@ -408,7 +408,10 @@ int journal_remote_handle_raw_source( - log_debug("%zu active sources remaining", s->active); - return 0; - } else if (r == -E2BIG) { -- log_notice_errno(E2BIG, "Entry too big, skipped"); -+ log_notice("Entry with too many fields, skipped"); -+ return 1; -+ } else if (r == -ENOBUFS) { -+ log_notice("Entry too big, skipped"); - return 1; - } else if (r == -EAGAIN) { - return 0; -diff --git a/src/journal/journald-native.c b/src/journal/journald-native.c -index 5ff22a10af..951d092053 100644 ---- a/src/journal/journald-native.c -+++ b/src/journal/journald-native.c -@@ -140,6 +140,11 @@ static int server_process_entry( - } - - /* A property follows */ -+ if (n > ENTRY_FIELD_COUNT_MAX) { -+ log_debug("Received an entry that has more than " STRINGIFY(ENTRY_FIELD_COUNT_MAX) " fields, ignoring entry."); -+ r = 1; -+ goto finish; -+ } - - /* n existing properties, 1 new, +1 for _TRANSPORT */ - if (!GREEDY_REALLOC(iovec, m, --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/0026-journal-fix-out-of-bounds-read-CVE-2018-16866.patch b/external/poky/meta/recipes-core/systemd/systemd/0026-journal-fix-out-of-bounds-read-CVE-2018-16866.patch deleted file mode 100644 index 3925a4ab..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/0026-journal-fix-out-of-bounds-read-CVE-2018-16866.patch +++ /dev/null @@ -1,49 +0,0 @@ -From ebd06c37d4311db9851f4d3fdd023de3dd590de0 Mon Sep 17 00:00:00 2001 -From: Filipe Brandenburger -Date: Thu, 10 Jan 2019 14:53:33 -0800 -Subject: [PATCH] journal: fix out-of-bounds read CVE-2018-16866 - -The original code didn't account for the fact that strchr() would match on the -'\0' character, making it read past the end of the buffer if no non-whitespace -character was present. - -This bug was introduced in commit ec5ff4445cca6a which was first released in -systemd v221 and later fixed in commit 8595102d3ddde6 which was released in -v240, so versions in the range [v221, v240) are affected. - -Patch backported from systemd-stable at f005e73d3723d62a39be661931fcb6347119b52b -also includes a change from systemd master which removes a heap buffer overflow -a6aadf4ae0bae185dc4c414d492a4a781c80ffe5. - -CVE: CVE-2018-16866 -Upstream-Status: Backport -Signed-off-by: Marcus Cooper ---- - src/journal/journald-syslog.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/journal/journald-syslog.c b/src/journal/journald-syslog.c -index 9dea116722..809b318c06 100644 ---- a/src/journal/journald-syslog.c -+++ b/src/journal/journald-syslog.c -@@ -194,7 +194,7 @@ size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid) - e = l; - l--; - -- if (p[l-1] == ']') { -+ if (l > 0 && p[l-1] == ']') { - size_t k = l-1; - - for (;;) { -@@ -219,7 +219,7 @@ size_t syslog_parse_identifier(const char **buf, char **identifier, char **pid) - if (t) - *identifier = t; - -- if (strchr(WHITESPACE, p[e])) -+ if (p[e] != '\0' && strchr(WHITESPACE, p[e])) - e++; - *buf = p + e; - return e; --- -2.11.0 - diff --git a/external/poky/meta/recipes-core/systemd/systemd/99-default.preset b/external/poky/meta/recipes-core/systemd/systemd/99-default.preset new file mode 100644 index 00000000..1f29b505 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/99-default.preset @@ -0,0 +1 @@ +disable * diff --git a/external/poky/meta/recipes-core/systemd/systemd/CVE-2019-6454.patch b/external/poky/meta/recipes-core/systemd/systemd/CVE-2019-6454.patch deleted file mode 100644 index 80170dac..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/CVE-2019-6454.patch +++ /dev/null @@ -1,210 +0,0 @@ -Description: sd-bus: enforce a size limit for dbus paths, and don't allocate - them on the stacka -Forwarded: no - -Patch from: systemd_239-7ubuntu10.8 - -For information see: -https://usn.ubuntu.com/3891-1/ -https://git.launchpad.net/ubuntu/+source/systemd/commit/?id=f8e75d5634904c8e672658856508c3a02f349adb - -CVE: CVE-2019-6454 -Upstream-Status: Backport - -Signed-off-by: George McCollister - ---- a/src/libsystemd/sd-bus/bus-internal.c -+++ b/src/libsystemd/sd-bus/bus-internal.c -@@ -45,7 +45,7 @@ - if (slash) - return false; - -- return true; -+ return (q - p) <= BUS_PATH_SIZE_MAX; - } - - char* object_path_startswith(const char *a, const char *b) { ---- a/src/libsystemd/sd-bus/bus-internal.h -+++ b/src/libsystemd/sd-bus/bus-internal.h -@@ -333,6 +333,10 @@ - - #define BUS_MESSAGE_SIZE_MAX (128*1024*1024) - #define BUS_AUTH_SIZE_MAX (64*1024) -+/* Note that the D-Bus specification states that bus paths shall have no size limit. We enforce here one -+ * anyway, since truly unbounded strings are a security problem. The limit we pick is relatively large however, -+ * to not clash unnecessarily with real-life applications. */ -+#define BUS_PATH_SIZE_MAX (64*1024) - - #define BUS_CONTAINER_DEPTH 128 - ---- a/src/libsystemd/sd-bus/bus-objects.c -+++ b/src/libsystemd/sd-bus/bus-objects.c -@@ -1134,7 +1134,8 @@ - const char *path, - sd_bus_error *error) { - -- char *prefix; -+ _cleanup_free_ char *prefix = NULL; -+ size_t pl; - int r; - - assert(bus); -@@ -1150,7 +1151,12 @@ - return 0; - - /* Second, add fallback vtables registered for any of the prefixes */ -- prefix = alloca(strlen(path) + 1); -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; -+ - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - r = object_manager_serialize_path(bus, reply, prefix, path, true, error); - if (r < 0) -@@ -1346,6 +1352,7 @@ - } - - int bus_process_object(sd_bus *bus, sd_bus_message *m) { -+ _cleanup_free_ char *prefix = NULL; - int r; - size_t pl; - bool found_object = false; -@@ -1370,9 +1377,12 @@ - assert(m->member); - - pl = strlen(m->path); -- do { -- char prefix[pl+1]; -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; - -+ do { - bus->nodes_modified = false; - - r = object_find_and_run(bus, m, m->path, false, &found_object); -@@ -1499,9 +1509,15 @@ - - n = hashmap_get(bus->nodes, path); - if (!n) { -- char *prefix; -+ _cleanup_free_ char *prefix = NULL; -+ size_t pl; -+ -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; - -- prefix = alloca(strlen(path) + 1); - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - n = hashmap_get(bus->nodes, prefix); - if (n) -@@ -2091,8 +2107,9 @@ - char **names) { - - BUS_DONT_DESTROY(bus); -+ _cleanup_free_ char *prefix = NULL; - bool found_interface = false; -- char *prefix; -+ size_t pl; - int r; - - assert_return(bus, -EINVAL); -@@ -2111,6 +2128,12 @@ - if (names && names[0] == NULL) - return 0; - -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; -+ - do { - bus->nodes_modified = false; - -@@ -2120,7 +2143,6 @@ - if (bus->nodes_modified) - continue; - -- prefix = alloca(strlen(path) + 1); - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - r = emit_properties_changed_on_interface(bus, prefix, path, interface, true, &found_interface, names); - if (r != 0) -@@ -2252,7 +2274,8 @@ - - static int object_added_append_all(sd_bus *bus, sd_bus_message *m, const char *path) { - _cleanup_set_free_ Set *s = NULL; -- char *prefix; -+ _cleanup_free_ char *prefix = NULL; -+ size_t pl; - int r; - - assert(bus); -@@ -2297,7 +2320,12 @@ - if (bus->nodes_modified) - return 0; - -- prefix = alloca(strlen(path) + 1); -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; -+ - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - r = object_added_append_all_prefix(bus, m, s, prefix, path, true); - if (r < 0) -@@ -2436,7 +2464,8 @@ - - static int object_removed_append_all(sd_bus *bus, sd_bus_message *m, const char *path) { - _cleanup_set_free_ Set *s = NULL; -- char *prefix; -+ _cleanup_free_ char *prefix = NULL; -+ size_t pl; - int r; - - assert(bus); -@@ -2468,7 +2497,12 @@ - if (bus->nodes_modified) - return 0; - -- prefix = alloca(strlen(path) + 1); -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; -+ - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - r = object_removed_append_all_prefix(bus, m, s, prefix, path, true); - if (r < 0) -@@ -2618,7 +2652,8 @@ - const char *path, - const char *interface) { - -- char *prefix; -+ _cleanup_free_ char *prefix = NULL; -+ size_t pl; - int r; - - assert(bus); -@@ -2632,7 +2667,12 @@ - if (bus->nodes_modified) - return 0; - -- prefix = alloca(strlen(path) + 1); -+ pl = strlen(path); -+ assert(pl <= BUS_PATH_SIZE_MAX); -+ prefix = new(char, pl + 1); -+ if (!prefix) -+ return -ENOMEM; -+ - OBJECT_PATH_FOREACH_PREFIX(prefix, path) { - r = interfaces_added_append_one_prefix(bus, m, prefix, path, interface, true); - if (r != 0) diff --git a/external/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch b/external/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch new file mode 100644 index 00000000..7b5e3e7f --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch @@ -0,0 +1,96 @@ +From 156a5fd297b61bce31630d7a52c15614bf784843 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Sun, 31 May 2020 18:21:09 +0200 +Subject: [PATCH 1/1] basic/user-util: always use base 10 for user/group + numbers + +We would parse numbers with base prefixes as user identifiers. For example, +"0x2b3bfa0" would be interpreted as UID==45334432 and "01750" would be +interpreted as UID==1000. This parsing was used also in cases where either a +user/group name or number may be specified. This means that names like +0x2b3bfa0 would be ambiguous: they are a valid user name according to our +documented relaxed rules, but they would also be parsed as numeric uids. + +This behaviour is definitely not expected by users, since tools generally only +accept decimal numbers (e.g. id, getent passwd), while other tools only accept +user names and thus will interpret such strings as user names without even +attempting to convert them to numbers (su, ssh). So let's follow suit and only +accept numbers in decimal notation. Effectively this means that we will reject +such strings as a username/uid/groupname/gid where strict mode is used, and try +to look up a user/group with such a name in relaxed mode. + +Since the function changed is fairly low-level and fairly widely used, this +affects multiple tools: loginctl show-user/enable-linger/disable-linger foo', +the third argument in sysusers.d, fourth and fifth arguments in tmpfiles.d, +etc. + +Fixes #15985. +--- + src/basic/user-util.c | 2 +- + src/test/test-user-util.c | 10 ++++++++++ + 2 files changed, 11 insertions(+), 1 deletion(-) + +--- end of commit 156a5fd297b61bce31630d7a52c15614bf784843 --- + + +Add definition of safe_atou32_full() from commit b934ac3d6e7dcad114776ef30ee9098693e7ab7e + +CVE: CVE-2020-13776 + +Upstream-Status: Backport [https://github.com/systemd/systemd.git] + +Signed-off-by: Joe Slater + + + +--- git.orig/src/basic/user-util.c ++++ git/src/basic/user-util.c +@@ -49,7 +49,7 @@ int parse_uid(const char *s, uid_t *ret) + assert(s); + + assert_cc(sizeof(uid_t) == sizeof(uint32_t)); +- r = safe_atou32(s, &uid); ++ r = safe_atou32_full(s, 10, &uid); + if (r < 0) + return r; + +--- git.orig/src/test/test-user-util.c ++++ git/src/test/test-user-util.c +@@ -48,9 +48,19 @@ static void test_parse_uid(void) { + + r = parse_uid("65535", &uid); + assert_se(r == -ENXIO); ++ assert_se(uid == 100); ++ ++ r = parse_uid("0x1234", &uid); ++ assert_se(r == -EINVAL); ++ assert_se(uid == 100); ++ ++ r = parse_uid("01234", &uid); ++ assert_se(r == 0); ++ assert_se(uid == 1234); + + r = parse_uid("asdsdas", &uid); + assert_se(r == -EINVAL); ++ assert_se(uid == 1234); + } + + static void test_uid_ptr(void) { +--- git.orig/src/basic/parse-util.h ++++ git/src/basic/parse-util.h +@@ -45,9 +45,13 @@ static inline int safe_atoux16(const cha + + int safe_atoi16(const char *s, int16_t *ret); + +-static inline int safe_atou32(const char *s, uint32_t *ret_u) { ++static inline int safe_atou32_full(const char *s, unsigned base, uint32_t *ret_u) { + assert_cc(sizeof(uint32_t) == sizeof(unsigned)); +- return safe_atou(s, (unsigned*) ret_u); ++ return safe_atou_full(s, base, (unsigned*) ret_u); ++} ++ ++static inline int safe_atou32(const char *s, uint32_t *ret_u) { ++ return safe_atou32_full(s, 0, (unsigned*) ret_u); + } + + static inline int safe_atoi32(const char *s, int32_t *ret_i) { diff --git a/external/poky/meta/recipes-core/systemd/systemd/sd-bus-if-we-receive-an-invalid-dbus-message-ignore-.patch b/external/poky/meta/recipes-core/systemd/systemd/sd-bus-if-we-receive-an-invalid-dbus-message-ignore-.patch deleted file mode 100644 index 57311faa..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd/sd-bus-if-we-receive-an-invalid-dbus-message-ignore-.patch +++ /dev/null @@ -1,61 +0,0 @@ -Description: sd-bus: if we receive an invalid dbus message, ignore and - proceeed - . - dbus-daemon might have a slightly different idea of what a valid msg is - than us (for example regarding valid msg and field sizes). Let's hence - try to proceed if we can and thus drop messages rather than fail the - connection if we fail to validate a message. - . - Hopefully the differences in what is considered valid are not visible - for real-life usecases, but are specific to exploit attempts only. -Author: Lennart Poettering -Forwarded: other,https://github.com/systemd/systemd/pull/11708/ - -Patch from: systemd_239-7ubuntu10.8 - -For information see: -https://usn.ubuntu.com/3891-1/ -https://git.launchpad.net/ubuntu/+source/systemd/commit/?id=f8e75d5634904c8e672658856508c3a02f349adb - -CVE: CVE-2019-6454 -Upstream-Status: Backport - -Signed-off-by: George McCollister - -diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c -index 30d6455b6f..441b4a816f 100644 ---- a/src/libsystemd/sd-bus/bus-socket.c -+++ b/src/libsystemd/sd-bus/bus-socket.c -@@ -1072,7 +1072,7 @@ static int bus_socket_read_message_need(sd_bus *bus, size_t *need) { - } - - static int bus_socket_make_message(sd_bus *bus, size_t size) { -- sd_bus_message *t; -+ sd_bus_message *t = NULL; - void *b; - int r; - -@@ -1097,7 +1097,9 @@ static int bus_socket_make_message(sd_bus *bus, size_t size) { - bus->fds, bus->n_fds, - NULL, - &t); -- if (r < 0) { -+ if (r == -EBADMSG) -+ log_debug_errno(r, "Received invalid message from connection %s, dropping.", strna(bus->description)); -+ else if (r < 0) { - free(b); - return r; - } -@@ -1108,7 +1110,8 @@ static int bus_socket_make_message(sd_bus *bus, size_t size) { - bus->fds = NULL; - bus->n_fds = 0; - -- bus->rqueue[bus->rqueue_size++] = t; -+ if (t) -+ bus->rqueue[bus->rqueue_size++] = t; - - return 1; - } --- -2.17.1 - diff --git a/external/poky/meta/recipes-core/systemd/systemd_239.bb b/external/poky/meta/recipes-core/systemd/systemd_239.bb deleted file mode 100644 index 7fbd64ce..00000000 --- a/external/poky/meta/recipes-core/systemd/systemd_239.bb +++ /dev/null @@ -1,666 +0,0 @@ -require systemd.inc - -PROVIDES = "udev" - -PE = "1" - -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 - -# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so -# that we don't build both udev and systemd in world builds. -REQUIRED_DISTRO_FEATURES = "systemd" - -SRC_URI += "file://touchscreen.rules \ - file://00-create-volatile.conf \ - file://init \ - 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-Make-root-s-home-directory-configurable.patch \ - file://0006-remove-nobody-user-group-checking.patch \ - file://0007-rules-watch-metadata-changes-in-ide-devices.patch \ - file://0008-Do-not-enable-nss-tests-if-nss-systemd-is-not-enable.patch \ - file://0009-nss-mymachines-Build-conditionally-when-ENABLE_MYHOS.patch \ - file://0001-login-use-parse_uid-when-unmounting-user-runtime-dir.patch \ - file://0001-sd-bus-make-BUS_DEFAULT_TIMEOUT-configurable.patch \ - file://0022-build-sys-Detect-whether-struct-statx-is-defined-in-.patch \ - file://0023-resolvconf-fixes-for-the-compatibility-interface.patch \ - file://0001-core-when-deserializing-state-always-use-read_line-L.patch \ - file://0001-chown-recursive-let-s-rework-the-recursive-logic-to-.patch \ - file://0001-dhcp6-make-sure-we-have-enough-space-for-the-DHCP6-o.patch \ - file://0001-Revert-sysctl.d-request-ECN-on-both-in-and-outgoing-.patch \ - file://0001-timesync-changes-type-of-drift_freq-to-int64_t.patch \ - file://0001-sysctl-Don-t-pass-null-directive-argument-to-s.patch \ - file://0002-core-Fix-use-after-free-case-in-load_from_path.patch \ - file://0001-meson-rename-Ddebug-to-Ddebug-extra.patch \ - file://0024-journald-do-not-store-the-iovec-entry-for-process-co.patch \ - file://0025-journald-set-a-limit-on-the-number-of-fields.patch \ - file://0026-journal-fix-out-of-bounds-read-CVE-2018-16866.patch \ - file://CVE-2019-6454.patch \ - file://sd-bus-if-we-receive-an-invalid-dbus-message-ignore-.patch \ - " - -# patches made for musl are only applied on TCLIBC is musl -SRC_URI += "${SRC_URI_MUSL}" -SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.patch \ - file://0002-don-t-use-glibc-specific-qsort_r.patch \ - file://0003-comparison_fn_t-is-glibc-specific-use-raw-signature-.patch \ - file://0004-add-fallback-parse_printf_format-implementation.patch \ - file://0005-include-gshadow-only-if-ENABLE_GSHADOW-is-1.patch \ - file://0006-src-basic-missing.h-check-for-missing-strndupa.patch \ - file://0007-Include-netinet-if_ether.h.patch \ - file://0008-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \ - file://0009-add-missing-FTW_-macros-for-musl.patch \ - file://0010-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \ - file://0011-src-basic-missing.h-check-for-missing-__compar_fn_t-.patch \ - file://0012-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ - file://0013-Use-uintmax_t-for-handling-rlim_t.patch \ - file://0014-fix-missing-ULONG_LONG_MAX-definition-in-case-of-mus.patch \ - file://0015-test-hexdecoct.c-Include-missing.h-for-strndupa.patch \ - file://0016-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \ - file://0017-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \ - file://0018-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ - file://0019-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ - file://0020-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ - file://0021-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \ - " - -# Workaround undefined reference to `__stack_chk_fail_local' on qemux86 and qemuppc for musl -SRC_URI_append_libc-musl_qemux86 = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch" -SRC_URI_append_libc-musl_qemuppc = " file://0001-Remove-fstack-protector-flags-to-workaround-musl-bui.patch" - -PAM_PLUGINS = " \ - pam-plugin-unix \ - pam-plugin-loginuid \ - pam-plugin-keyinit \ -" - -PACKAGECONFIG ??= " \ - ${@bb.utils.filter('DISTRO_FEATURES', 'efi ldconfig pam selinux usrmerge', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \ - acl \ - backlight \ - binfmt \ - firstboot \ - gshadow \ - hibernate \ - hostnamed \ - ima \ - kmod \ - localed \ - logind \ - machined \ - myhostname \ - networkd \ - nss \ - polkit \ - quotacheck \ - randomseed \ - resolved \ - smack \ - sysusers \ - timedated \ - timesyncd \ - utmp \ - vconsole \ - xz \ -" - -PACKAGECONFIG_remove_libc-musl = " \ - gshadow \ - localed \ - myhostname \ - nss \ - resolved \ - selinux \ - smack \ - sysusers \ - utmp \ -" - -# 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. -PACKAGECONFIG[serial-getty-generator] = "" - -PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl" -PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit" -PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false" -PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false" -PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2" -PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false" -PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup" -PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus" -PACKAGECONFIG[efi] = "-Defi=true,-Defi=false" -PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils" -PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false" -# Sign the journal for anti-tampering -PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt" -PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" -PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" -PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false" -PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false" -PACKAGECONFIG[ima] = "-Dima=true,-Dima=false" -# importd requires curl/xz/zlib/bzip2/gcrypt -PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false" -# Update NAT firewall rules -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[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn" -PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false" -PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false" -PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4" -PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false" -PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" -PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" -PACKAGECONFIG[myhostname] = "-Dmyhostname=true,-Dmyhostname=false" -PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" -PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false" -PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}" -PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false" -PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false" -PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode" -PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false" -PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false" -PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false" -PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false" -# libseccomp is found in meta-security -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[time-epoch] = "-Dtime-epoch=0,," -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[utmp] = "-Dutmp=true,-Dutmp=false" -PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" -PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" -# Verify keymaps on locale change -PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" -PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" -PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib" - -# Helper variables to clarify locations. This mirrors the logic in systemd's -# build system. -rootprefix ?= "${root_prefix}" -rootlibdir ?= "${base_libdir}" -rootlibexecdir = "${rootprefix}/lib" - -# This links udev statically with systemd helper library. -# Otherwise udev package would depend on systemd package (which has the needed shared library), -# and always pull it into images. -EXTRA_OEMESON += "-Dlink-udev-shared=false" - -EXTRA_OEMESON += "-Dnobody-user=nobody \ - -Dnobody-group=nobody \ - -Droothomedir=${ROOT_HOME} \ - -Drootlibdir=${rootlibdir} \ - -Drootprefix=${rootprefix} \ - -Dsysvrcnd-path=${sysconfdir} \ - " - -# Hardcode target binary paths to avoid using paths from sysroot -EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ - -Dkill-path=${base_bindir}/kill \ - -Dkmod-path=${base_bindir}/kmod \ - -Dmount-path=${base_bindir}/mount \ - -Dquotacheck-path=${sbindir}/quotacheck \ - -Dquotaon-path=${sbindir}/quotaon \ - -Dsulogin-path=${base_sbindir}/sulogin \ - -Dumount-path=${base_bindir}/umount" - -do_install() { - meson_do_install - install -d ${D}/${base_sbindir} - if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then - # Provided by a separate recipe - rm ${D}${systemd_unitdir}/system/serial-getty* -f - fi - - # Provide support for initramfs - [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init - [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd - - install -d ${D}${sysconfdir}/udev/rules.d/ - install -d ${D}${sysconfdir}/tmpfiles.d - install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ - install -d ${D}${libdir}/pkgconfig - install -m 0644 ${B}/src/udev/udev.pc ${D}${libdir}/pkgconfig/ - - install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then - 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 - fi - - chown root:systemd-journal ${D}/${localstatedir}/log/journal - - # Delete journal README, as log can be symlinked inside volatile. - rm -f ${D}/${localstatedir}/log/README - - # journal-remote creates this at start - rm -rf ${D}/${localstatedir}/log/journal/remote - - install -d ${D}${systemd_unitdir}/system/graphical.target.wants - install -d ${D}${systemd_unitdir}/system/multi-user.target.wants - install -d ${D}${systemd_unitdir}/system/poweroff.target.wants - install -d ${D}${systemd_unitdir}/system/reboot.target.wants - install -d ${D}${systemd_unitdir}/system/rescue.target.wants - - # Create symlinks for systemd-update-utmp-runlevel.service - if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service - ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service - fi - - # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it - # for existence else it fails - if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then - ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)} - fi - if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then - echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf - echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf - echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf - ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd - else - 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 polkit is setup fixup permissions and ownership - if ${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'true', 'false', d)}; then - if [ -d ${D}${datadir}/polkit-1/rules.d ]; then - chmod 700 ${D}${datadir}/polkit-1/rules.d - chown polkitd:root ${D}${datadir}/polkit-1/rules.d - fi - fi - - # conf files are handled by systemd-conf - rm -f ${D}${sysconfdir}/machine-id - rm -f ${D}${sysconfdir}/systemd/coredump.conf - rm -f ${D}${sysconfdir}/systemd/journald.conf - rm -f ${D}${sysconfdir}/systemd/logind.conf - rm -f ${D}${sysconfdir}/systemd/system.conf - rm -f ${D}${sysconfdir}/systemd/user.conf - - # duplicate udevadm for postinst script - install -d ${D}${libexecdir} - ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm -} - - -python populate_packages_prepend (){ - systemdlibdir = d.getVar("rootlibdir") - do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True) -} -PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*" - -PACKAGES =+ "\ - ${PN}-gui \ - ${PN}-vconsole-setup \ - ${PN}-initramfs \ - ${PN}-analyze \ - ${PN}-kernel-install \ - ${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 \ -" - -SUMMARY_${PN}-container = "Tools for containers and VMs" -DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines." - -SUMMARY_${PN}-journal-gatewayd = "HTTP server for journal events" -DESCRIPTION_${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default." - -SUMMARY_${PN}-journal-upload = "Send journal messages over the network" -DESCRIPTION_${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL." - -SUMMARY_${PN}-journal-remote = "Receive journal messages over the network" -DESCRIPTION_${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files." - -SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ -" -SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service" - -USERADD_PACKAGES = "${PN} ${PN}-extra-utils \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gateway', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ -" -GROUPADD_PARAM_${PN} = "-r systemd-journal" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}" -USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}" -USERADD_PARAM_${PN}-extra-utils = "--system -d / -M --shell /bin/nologin systemd-bus-proxy" -USERADD_PARAM_${PN}-journal-gateway = "--system -d / -M --shell /bin/nologin systemd-journal-gateway" -USERADD_PARAM_${PN}-journal-remote = "--system -d / -M --shell /bin/nologin systemd-journal-remote" -USERADD_PARAM_${PN}-journal-upload = "--system -d / -M --shell /bin/nologin systemd-journal-upload" - -FILES_${PN}-analyze = "${bindir}/systemd-analyze" - -FILES_${PN}-initramfs = "/init" -RDEPENDS_${PN}-initramfs = "${PN}" - -FILES_${PN}-gui = "${bindir}/systemadm" - -FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ - ${systemd_unitdir}/system/systemd-vconsole-setup.service \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" - -RDEPENDS_${PN}-kernel-install += "bash" -FILES_${PN}-kernel-install = "${bindir}/kernel-install \ - ${sysconfdir}/kernel/ \ - ${exec_prefix}/lib/kernel \ - " -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/ \ - ${exec_prefix}/lib/binfmt.d \ - ${rootlibexecdir}/systemd/systemd-binfmt \ - ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \ - ${systemd_unitdir}/system/systemd-binfmt.service" -RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc" - -RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps" - - -FILES_${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \ - ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ - ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ - ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \ - ${datadir}/systemd/gatewayd/browse.html \ - " -SYSTEMD_SERVICE_${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket" - -FILES_${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \ - ${systemd_system_unitdir}/systemd-journal-upload.service \ - ${sysconfdir}/systemd/journal-upload.conf \ - " -SYSTEMD_SERVICE_${PN}-journal-upload = "systemd-journal-upload.service" - -FILES_${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \ - ${sysconfdir}/systemd/journal-remote.conf \ - ${systemd_system_unitdir}/systemd-journal-remote.service \ - ${systemd_system_unitdir}/systemd-journal-remote.socket \ - " -SYSTEMD_SERVICE_${PN}-remote = "systemd-journal-remote.socket" - - -FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \ - ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ - ${base_bindir}/machinectl \ - ${bindir}/systemd-nspawn \ - ${nonarch_libdir}/systemd/import-pubring.gpg \ - ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \ - ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \ - ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \ - ${systemd_system_unitdir}/machine.slice \ - ${systemd_system_unitdir}/machines.target \ - ${systemd_system_unitdir}/org.freedesktop.import1.busname \ - ${systemd_system_unitdir}/org.freedesktop.machine1.busname \ - ${systemd_system_unitdir}/systemd-importd.service \ - ${systemd_system_unitdir}/systemd-machined.service \ - ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \ - ${systemd_system_unitdir}/var-lib-machines.mount \ - ${rootlibexecdir}/systemd/systemd-import \ - ${rootlibexecdir}/systemd/systemd-importd \ - ${rootlibexecdir}/systemd/systemd-machined \ - ${rootlibexecdir}/systemd/systemd-pull \ - ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \ - ${systemd_system_unitdir}/systemd-nspawn@.service \ - ${libdir}/libnss_mymachines.so.2 \ - ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \ - ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \ - ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \ - ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \ - ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \ - " - -RRECOMMENDS_${PN}-container += "\ - ${PN}-journal-upload \ - ${PN}-journal-remote \ - ${PN}-journal-gatewayd \ - " - -FILES_${PN}-extra-utils = "\ - ${base_bindir}/systemd-escape \ - ${base_bindir}/systemd-inhibit \ - ${bindir}/systemd-detect-virt \ - ${bindir}/systemd-path \ - ${bindir}/systemd-run \ - ${bindir}/systemd-cat \ - ${bindir}/systemd-delta \ - ${bindir}/systemd-cgls \ - ${bindir}/systemd-cgtop \ - ${bindir}/systemd-stdio-bridge \ - ${base_bindir}/systemd-ask-password \ - ${base_bindir}/systemd-tty-ask-password-agent \ - ${systemd_unitdir}/system/systemd-ask-password-console.path \ - ${systemd_unitdir}/system/systemd-ask-password-console.service \ - ${systemd_unitdir}/system/systemd-ask-password-wall.path \ - ${systemd_unitdir}/system/systemd-ask-password-wall.service \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \ - ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \ - ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \ - ${rootlibexecdir}/systemd/systemd-resolve-host \ - ${rootlibexecdir}/systemd/systemd-ac-power \ - ${rootlibexecdir}/systemd/systemd-activate \ - ${rootlibexecdir}/systemd/systemd-bus-proxyd \ - ${systemd_unitdir}/system/systemd-bus-proxyd.service \ - ${systemd_unitdir}/system/systemd-bus-proxyd.socket \ - ${rootlibexecdir}/systemd/systemd-socket-proxyd \ - ${rootlibexecdir}/systemd/systemd-reply-password \ - ${rootlibexecdir}/systemd/systemd-sleep \ - ${rootlibexecdir}/systemd/system-sleep \ - ${systemd_unitdir}/system/systemd-hibernate.service \ - ${systemd_unitdir}/system/systemd-hybrid-sleep.service \ - ${systemd_unitdir}/system/systemd-suspend.service \ - ${systemd_unitdir}/system/sleep.target \ - ${rootlibexecdir}/systemd/systemd-initctl \ - ${systemd_unitdir}/system/systemd-initctl.service \ - ${systemd_unitdir}/system/systemd-initctl.socket \ - ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \ - ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \ - ${rootlibexecdir}/systemd/systemd-cgroups-agent \ -" - -FILES_${PN} = " ${base_bindir}/* \ - ${base_sbindir}/shutdown \ - ${base_sbindir}/halt \ - ${base_sbindir}/poweroff \ - ${base_sbindir}/runlevel \ - ${base_sbindir}/telinit \ - ${base_sbindir}/resolvconf \ - ${base_sbindir}/reboot \ - ${base_sbindir}/init \ - ${datadir}/dbus-1/services \ - ${datadir}/dbus-1/system-services \ - ${datadir}/polkit-1 \ - ${datadir}/${BPN} \ - ${datadir}/factory \ - ${sysconfdir}/dbus-1/ \ - ${sysconfdir}/modules-load.d/ \ - ${sysconfdir}/pam.d/ \ - ${sysconfdir}/sysctl.d/ \ - ${sysconfdir}/systemd/ \ - ${sysconfdir}/tmpfiles.d/ \ - ${sysconfdir}/xdg/ \ - ${sysconfdir}/init.d/README \ - ${sysconfdir}/resolv-conf.systemd \ - ${rootlibexecdir}/systemd/* \ - ${systemd_unitdir}/* \ - ${base_libdir}/security/*.so \ - /cgroup \ - ${bindir}/systemd* \ - ${bindir}/busctl \ - ${bindir}/coredumpctl \ - ${bindir}/localectl \ - ${bindir}/hostnamectl \ - ${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 \ - ${exec_prefix}/lib/sysctl.d \ - ${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 \ - ${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 \ - ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \ - ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \ - " - -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} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" -RDEPENDS_${PN} += "volatile-binds update-rc.d systemd-conf" - -RRECOMMENDS_${PN} += "systemd-extra-utils \ - systemd-compat-units udev-hwdb \ - e2fsprogs-e2fsck \ - kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \ - os-release \ -" - -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" - -FILES_udev += "${base_sbindir}/udevd \ - ${rootlibexecdir}/systemd/systemd-udevd \ - ${rootlibexecdir}/udev/accelerometer \ - ${rootlibexecdir}/udev/ata_id \ - ${rootlibexecdir}/udev/cdrom_id \ - ${rootlibexecdir}/udev/collect \ - ${rootlibexecdir}/udev/findkeyboards \ - ${rootlibexecdir}/udev/keyboard-force-release.sh \ - ${rootlibexecdir}/udev/keymap \ - ${rootlibexecdir}/udev/mtd_probe \ - ${rootlibexecdir}/udev/scsi_id \ - ${rootlibexecdir}/udev/v4l_id \ - ${rootlibexecdir}/udev/keymaps \ - ${rootlibexecdir}/udev/rules.d/*.rules \ - ${sysconfdir}/udev \ - ${sysconfdir}/init.d/systemd-udevd \ - ${systemd_unitdir}/system/*udev* \ - ${systemd_unitdir}/system/*.wants/*udev* \ - ${base_bindir}/udevadm \ - ${libexecdir}/${MLPREFIX}udevadm \ - ${datadir}/bash-completion/completions/udevadm \ - " - -FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d" - -INITSCRIPT_PACKAGES = "udev" -INITSCRIPT_NAME_udev = "systemd-udevd" -INITSCRIPT_PARAMS_udev = "start 03 S ." - -python __anonymous() { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") -} - -ALTERNATIVE_${PN} = "halt reboot shutdown poweroff runlevel resolv-conf" - -ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" -ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" -ALTERNATIVE_PRIORITY[resolv-conf] ?= "50" - -ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" -ALTERNATIVE_PRIORITY[halt] ?= "300" - -ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" -ALTERNATIVE_PRIORITY[reboot] ?= "300" - -ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" -ALTERNATIVE_PRIORITY[shutdown] ?= "300" - -ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" -ALTERNATIVE_PRIORITY[poweroff] ?= "300" - -ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" -ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" -ALTERNATIVE_PRIORITY[runlevel] ?= "300" - -pkg_postinst_${PN} () { - sed -e '/^hosts:/s/\s*\//' \ - -e 's/\(^hosts:.*\)\(\\)\(.*\)\(\\)\(.*\)/\1\2 myhostname \3\4\5/' \ - -i $D${sysconfdir}/nsswitch.conf -} - -pkg_prerm_${PN} () { - sed -e '/^hosts:/s/\s*\//' \ - -e '/^hosts:/s/\s*myhostname//' \ - -i $D${sysconfdir}/nsswitch.conf -} - -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} - else - udevadm hwdb --update - fi -} - -pkg_prerm_udev-hwdb () { - rm -f $D${sysconfdir}/udev/hwdb.bin -} diff --git a/external/poky/meta/recipes-core/systemd/systemd_244.3.bb b/external/poky/meta/recipes-core/systemd/systemd_244.3.bb new file mode 100644 index 00000000..850d64e8 --- /dev/null +++ b/external/poky/meta/recipes-core/systemd/systemd_244.3.bb @@ -0,0 +1,708 @@ +require systemd.inc + +PROVIDES = "udev" + +PE = "1" + +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 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. +REQUIRED_DISTRO_FEATURES = "systemd" + +SRC_URI += "file://touchscreen.rules \ + file://00-create-volatile.conf \ + file://init \ + file://99-default.preset \ + file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ + file://0003-implment-systemd-sysv-install-for-OE.patch \ + file://CVE-2020-13776.patch \ + " + +# patches needed by musl +SRC_URI_append_libc-musl = " ${SRC_URI_MUSL}" +SRC_URI_MUSL = "\ + file://0002-don-t-use-glibc-specific-qsort_r.patch \ + file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \ + file://0004-add-fallback-parse_printf_format-implementation.patch \ + file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \ + file://0006-Include-netinet-if_ether.h.patch \ + file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \ + file://0008-add-missing-FTW_-macros-for-musl.patch \ + file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \ + file://0011-Use-uintmax_t-for-handling-rlim_t.patch \ + file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \ + file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \ + file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \ + file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \ + file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \ + 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://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 \ + " + +PAM_PLUGINS = " \ + pam-plugin-unix \ + pam-plugin-loginuid \ + pam-plugin-keyinit \ +" + +PACKAGECONFIG ??= " \ + ${@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)} \ + backlight \ + binfmt \ + gshadow \ + hibernate \ + hostnamed \ + idn \ + ima \ + kmod \ + localed \ + logind \ + machined \ + myhostname \ + networkd \ + nss \ + nss-mymachines \ + nss-resolve \ + quotacheck \ + randomseed \ + resolved \ + set-time-epoch \ + sysusers \ + sysvinit \ + timedated \ + timesyncd \ + utmp \ + vconsole \ + xz \ +" + +PACKAGECONFIG_remove_libc-musl = " \ + gshadow \ + idn \ + localed \ + myhostname \ + nss \ + nss-mymachines \ + nss-resolve \ + sysusers \ + 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. +PACKAGECONFIG[serial-getty-generator] = "" + +PACKAGECONFIG[acl] = "-Dacl=true,-Dacl=false,acl" +PACKAGECONFIG[audit] = "-Daudit=true,-Daudit=false,audit" +PACKAGECONFIG[backlight] = "-Dbacklight=true,-Dbacklight=false" +PACKAGECONFIG[binfmt] = "-Dbinfmt=true,-Dbinfmt=false" +PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2" +PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid" +PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false" +PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup" +PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus" +PACKAGECONFIG[efi] = "-Defi=true,-Defi=false" +PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi" +PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils" +PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false" +# Sign the journal for anti-tampering +PACKAGECONFIG[gcrypt] = "-Dgcrypt=true,-Dgcrypt=false,libgcrypt" +PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" +PACKAGECONFIG[gshadow] = "-Dgshadow=true,-Dgshadow=false" +PACKAGECONFIG[hibernate] = "-Dhibernate=true,-Dhibernate=false" +PACKAGECONFIG[hostnamed] = "-Dhostnamed=true,-Dhostnamed=false" +PACKAGECONFIG[idn] = "-Didn=true,-Didn=false" +PACKAGECONFIG[ima] = "-Dima=true,-Dima=false" +# importd requires curl/xz/zlib/bzip2/gcrypt +PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false" +# Update NAT firewall rules +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,,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" +PACKAGECONFIG[machined] = "-Dmachined=true,-Dmachined=false" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" +PACKAGECONFIG[microhttpd] = "-Dmicrohttpd=true,-Dmicrohttpd=false,libmicrohttpd" +PACKAGECONFIG[myhostname] = "-Dnss-myhostname=true,-Dnss-myhostname=false,,libnss-myhostname" +PACKAGECONFIG[networkd] = "-Dnetworkd=true,-Dnetworkd=false" +PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false" +PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false" +PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false" +PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl" +PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}" +PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2" +PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false" +PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false" +PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode" +PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false" +PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false" +PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false" +PACKAGECONFIG[rfkill] = "-Drfkill=true,-Drfkill=false" +# libseccomp is found in meta-security +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=,,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): + epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1" + return '-Dtime-epoch=%d' % int(epoch) +PACKAGECONFIG[set-time-epoch] = "${@build_epoch(d)},-Dtime-epoch=0" +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[utmp] = "-Dutmp=true,-Dutmp=false" +PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" +PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" +# Verify keymaps on locale change +PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" +PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" +PACKAGECONFIG[zlib] = "-Dzlib=true,-Dzlib=false,zlib" + +# Helper variables to clarify locations. This mirrors the logic in systemd's +# build system. +rootprefix ?= "${root_prefix}" +rootlibdir ?= "${base_libdir}" +rootlibexecdir = "${rootprefix}/lib" + +# This links udev statically with systemd helper library. +# Otherwise udev package would depend on systemd package (which has the needed shared library), +# and always pull it into images. +EXTRA_OEMESON += "-Dlink-udev-shared=false" + +EXTRA_OEMESON += "-Dnobody-user=nobody \ + -Dnobody-group=nobody \ + -Drootlibdir=${rootlibdir} \ + -Drootprefix=${rootprefix} \ + -Ddefault-locale=C \ + " + +# Hardcode target binary paths to avoid using paths from sysroot +EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ + -Dkmod-path=${base_bindir}/kmod \ + -Dmount-path=${base_bindir}/mount \ + -Dquotacheck-path=${sbindir}/quotacheck \ + -Dquotaon-path=${sbindir}/quotaon \ + -Dsulogin-path=${base_sbindir}/sulogin \ + -Dnologin-path=${base_sbindir}/nologin \ + -Dumount-path=${base_bindir}/umount" + +do_install() { + meson_do_install + install -d ${D}/${base_sbindir} + if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then + # Provided by a separate recipe + rm ${D}${systemd_unitdir}/system/serial-getty* -f + fi + + # Provide support for initramfs + [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init + [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd + + install -d ${D}${sysconfdir}/udev/rules.d/ + install -d ${D}${sysconfdir}/tmpfiles.d + install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/ + + install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + + if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then + 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 + + # Delete journal README, as log can be symlinked inside volatile. + rm -f ${D}/${localstatedir}/log/README + + # journal-remote creates this at start + rm -rf ${D}/${localstatedir}/log/journal/remote + + install -d ${D}${systemd_unitdir}/system/graphical.target.wants + install -d ${D}${systemd_unitdir}/system/multi-user.target.wants + install -d ${D}${systemd_unitdir}/system/poweroff.target.wants + install -d ${D}${systemd_unitdir}/system/reboot.target.wants + install -d ${D}${systemd_unitdir}/system/rescue.target.wants + + # Create symlinks for systemd-update-utmp-runlevel.service + if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service + ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service + fi + + # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it + # for existence else it fails + if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then + ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)} + fi + if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then + echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/systemd/resolve/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf + echo 'd /run/systemd/resolve 0755 root root -' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf + echo 'f /run/systemd/resolve/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf + ln -s ../run/systemd/resolve/resolv.conf ${D}${sysconfdir}/resolv-conf.systemd + else + 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 + 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 + if [ -d ${D}${datadir}/polkit-1/rules.d ]; then + chmod 700 ${D}${datadir}/polkit-1/rules.d + chown polkitd:root ${D}${datadir}/polkit-1/rules.d + fi + fi + + # create link for existing udev rules + ln -s ${base_bindir}/udevadm ${D}${base_sbindir}/udevadm + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm + + # 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 +} + +python populate_packages_prepend (){ + systemdlibdir = d.getVar("rootlibdir") + do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True) +} +PACKAGES_DYNAMIC += "^lib(udev|systemd|nss).*" + +PACKAGE_BEFORE_PN = "\ + ${PN}-gui \ + ${PN}-vconsole-setup \ + ${PN}-initramfs \ + ${PN}-analyze \ + ${PN}-kernel-install \ + ${PN}-rpm-macros \ + ${PN}-binfmt \ + ${PN}-zsh-completion \ + ${PN}-container \ + ${PN}-journal-gatewayd \ + ${PN}-journal-upload \ + ${PN}-journal-remote \ + ${PN}-extra-utils \ + udev \ + udev-hwdb \ +" + +SUMMARY_${PN}-container = "Tools for containers and VMs" +DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines." + +SUMMARY_${PN}-journal-gatewayd = "HTTP server for journal events" +DESCRIPTION_${PN}-journal-gatewayd = "systemd-journal-gatewayd serves journal events over the network. Clients must connect using HTTP. The server listens on port 19531 by default." + +SUMMARY_${PN}-journal-upload = "Send journal messages over the network" +DESCRIPTION_${PN}-journal-upload = "systemd-journal-upload uploads journal entries to a specified URL." + +SUMMARY_${PN}-journal-remote = "Receive journal messages over the network" +DESCRIPTION_${PN}-journal-remote = "systemd-journal-remote is a command to receive serialized journal events and store them to journal files." + +SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gatewayd', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ +" +SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service" + +USERADD_PACKAGES = "${PN} ${PN}-extra-utils \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-gateway', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '${PN}-journal-remote', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \ +" +GROUPADD_PARAM_${PN} = "-r systemd-journal" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', '--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}" +USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}" +USERADD_PARAM_${PN}-extra-utils = "--system -d / -M --shell /bin/nologin systemd-bus-proxy" +USERADD_PARAM_${PN}-journal-gateway = "--system -d / -M --shell /bin/nologin systemd-journal-gateway" +USERADD_PARAM_${PN}-journal-remote = "--system -d / -M --shell /bin/nologin systemd-journal-remote" +USERADD_PARAM_${PN}-journal-upload = "--system -d / -M --shell /bin/nologin systemd-journal-upload" + +FILES_${PN}-analyze = "${bindir}/systemd-analyze" + +FILES_${PN}-initramfs = "/init" +RDEPENDS_${PN}-initramfs = "${PN}" + +FILES_${PN}-gui = "${bindir}/systemadm" + +FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \ + ${systemd_unitdir}/system/systemd-vconsole-setup.service \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service" + +RDEPENDS_${PN}-kernel-install += "bash" +FILES_${PN}-kernel-install = "${bindir}/kernel-install \ + ${sysconfdir}/kernel/ \ + ${exec_prefix}/lib/kernel \ + " +FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \ + " + +FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions" + +FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \ + ${exec_prefix}/lib/binfmt.d \ + ${rootlibexecdir}/systemd/systemd-binfmt \ + ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \ + ${systemd_unitdir}/system/systemd-binfmt.service" +RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc" + +RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps" + + +FILES_${PN}-journal-gatewayd = "${rootlibexecdir}/systemd/systemd-journal-gatewayd \ + ${systemd_system_unitdir}/systemd-journal-gatewayd.service \ + ${systemd_system_unitdir}/systemd-journal-gatewayd.socket \ + ${systemd_system_unitdir}/sockets.target.wants/systemd-journal-gatewayd.socket \ + ${datadir}/systemd/gatewayd/browse.html \ + " +SYSTEMD_SERVICE_${PN}-journal-gatewayd = "systemd-journal-gatewayd.socket" + +FILES_${PN}-journal-upload = "${rootlibexecdir}/systemd/systemd-journal-upload \ + ${systemd_system_unitdir}/systemd-journal-upload.service \ + ${sysconfdir}/systemd/journal-upload.conf \ + " +SYSTEMD_SERVICE_${PN}-journal-upload = "systemd-journal-upload.service" + +FILES_${PN}-journal-remote = "${rootlibexecdir}/systemd/systemd-journal-remote \ + ${sysconfdir}/systemd/journal-remote.conf \ + ${systemd_system_unitdir}/systemd-journal-remote.service \ + ${systemd_system_unitdir}/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 \ + ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \ + ${sysconfdir}/systemd/system/multi-user.target.wants/machines.target \ + ${base_bindir}/machinectl \ + ${bindir}/systemd-nspawn \ + ${nonarch_libdir}/systemd/import-pubring.gpg \ + ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \ + ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \ + ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/machines.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/remote-fs.target.wants/var-lib-machines.mount \ + ${systemd_system_unitdir}/machine.slice \ + ${systemd_system_unitdir}/machines.target \ + ${systemd_system_unitdir}/org.freedesktop.import1.busname \ + ${systemd_system_unitdir}/org.freedesktop.machine1.busname \ + ${systemd_system_unitdir}/systemd-importd.service \ + ${systemd_system_unitdir}/systemd-machined.service \ + ${systemd_system_unitdir}/dbus-org.freedesktop.machine1.service \ + ${systemd_system_unitdir}/var-lib-machines.mount \ + ${rootlibexecdir}/systemd/systemd-import \ + ${rootlibexecdir}/systemd/systemd-importd \ + ${rootlibexecdir}/systemd/systemd-machined \ + ${rootlibexecdir}/systemd/systemd-pull \ + ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \ + ${systemd_system_unitdir}/systemd-nspawn@.service \ + ${libdir}/libnss_mymachines.so.2 \ + ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \ + ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \ + ${datadir}/dbus-1/system.d/org.freedesktop.import1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.machine1.conf \ + ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \ + ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \ + " + +RRECOMMENDS_${PN}-container += "\ + ${PN}-journal-upload \ + ${PN}-journal-remote \ + ${PN}-journal-gatewayd \ + " + +FILES_${PN}-extra-utils = "\ + ${base_bindir}/systemd-escape \ + ${base_bindir}/systemd-inhibit \ + ${bindir}/systemd-detect-virt \ + ${bindir}/systemd-path \ + ${bindir}/systemd-run \ + ${bindir}/systemd-cat \ + ${bindir}/systemd-delta \ + ${bindir}/systemd-cgls \ + ${bindir}/systemd-cgtop \ + ${bindir}/systemd-stdio-bridge \ + ${base_bindir}/systemd-ask-password \ + ${base_bindir}/systemd-tty-ask-password-agent \ + ${systemd_unitdir}/system/systemd-ask-password-console.path \ + ${systemd_unitdir}/system/systemd-ask-password-console.service \ + ${systemd_unitdir}/system/systemd-ask-password-wall.path \ + ${systemd_unitdir}/system/systemd-ask-password-wall.service \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \ + ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \ + ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \ + ${rootlibexecdir}/systemd/systemd-resolve-host \ + ${rootlibexecdir}/systemd/systemd-ac-power \ + ${rootlibexecdir}/systemd/systemd-activate \ + ${rootlibexecdir}/systemd/systemd-bus-proxyd \ + ${systemd_unitdir}/system/systemd-bus-proxyd.service \ + ${systemd_unitdir}/system/systemd-bus-proxyd.socket \ + ${rootlibexecdir}/systemd/systemd-socket-proxyd \ + ${rootlibexecdir}/systemd/systemd-reply-password \ + ${rootlibexecdir}/systemd/systemd-sleep \ + ${rootlibexecdir}/systemd/system-sleep \ + ${systemd_unitdir}/system/systemd-hibernate.service \ + ${systemd_unitdir}/system/systemd-hybrid-sleep.service \ + ${systemd_unitdir}/system/systemd-suspend.service \ + ${systemd_unitdir}/system/sleep.target \ + ${rootlibexecdir}/systemd/systemd-initctl \ + ${systemd_unitdir}/system/systemd-initctl.service \ + ${systemd_unitdir}/system/systemd-initctl.socket \ + ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \ + ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \ + ${rootlibexecdir}/systemd/systemd-cgroups-agent \ +" + +CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \ + ${sysconfdir}/systemd/journald.conf \ + ${sysconfdir}/systemd/logind.conf \ + ${sysconfdir}/systemd/system.conf \ + ${sysconfdir}/systemd/user.conf \ + ${sysconfdir}/systemd/resolved.conf \ + ${sysconfdir}/systemd/timesyncd.conf \ +" + +FILES_${PN} = " ${base_bindir}/* \ + ${base_sbindir}/shutdown \ + ${base_sbindir}/halt \ + ${base_sbindir}/poweroff \ + ${base_sbindir}/runlevel \ + ${base_sbindir}/telinit \ + ${base_sbindir}/resolvconf \ + ${base_sbindir}/reboot \ + ${base_sbindir}/init \ + ${datadir}/dbus-1/services \ + ${datadir}/dbus-1/system-services \ + ${datadir}/polkit-1 \ + ${datadir}/${BPN} \ + ${datadir}/factory \ + ${sysconfdir}/dbus-1/ \ + ${sysconfdir}/modules-load.d/ \ + ${sysconfdir}/pam.d/ \ + ${sysconfdir}/sysctl.d/ \ + ${sysconfdir}/systemd/ \ + ${sysconfdir}/tmpfiles.d/ \ + ${sysconfdir}/xdg/ \ + ${sysconfdir}/init.d/README \ + ${sysconfdir}/resolv-conf.systemd \ + ${sysconfdir}/X11/xinit/xinitrc.d/* \ + ${rootlibexecdir}/systemd/* \ + ${systemd_unitdir}/* \ + ${base_libdir}/security/*.so \ + /cgroup \ + ${bindir}/systemd* \ + ${bindir}/busctl \ + ${bindir}/coredumpctl \ + ${bindir}/localectl \ + ${bindir}/hostnamectl \ + ${bindir}/resolvectl \ + ${bindir}/timedatectl \ + ${bindir}/bootctl \ + ${exec_prefix}/lib/tmpfiles.d/*.conf \ + ${exec_prefix}/lib/systemd \ + ${exec_prefix}/lib/modules-load.d \ + ${exec_prefix}/lib/sysctl.d \ + ${exec_prefix}/lib/sysusers.d \ + ${exec_prefix}/lib/environment.d \ + ${localstatedir} \ + ${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 \ + ${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 \ + ${datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \ + ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \ + " + +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} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" +RDEPENDS_${PN} += "volatile-binds" + +RRECOMMENDS_${PN} += "systemd-extra-utils \ + systemd-compat-units udev-hwdb \ + e2fsprogs-e2fsck \ + kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \ + os-release \ + systemd-conf \ +" + +INSANE_SKIP_${PN} += "dev-so libdir" +INSANE_SKIP_${PN}-dbg += "libdir" +INSANE_SKIP_${PN}-doc += " libdir" + +RPROVIDES_udev = "hotplug" + +RDEPENDS_udev-hwdb += "udev" + +FILES_udev += "${base_sbindir}/udevd \ + ${rootlibexecdir}/systemd/network/99-default.link \ + ${rootlibexecdir}/systemd/systemd-udevd \ + ${rootlibexecdir}/udev/accelerometer \ + ${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 \ + ${rootlibexecdir}/udev/mtd_probe \ + ${rootlibexecdir}/udev/scsi_id \ + ${rootlibexecdir}/udev/v4l_id \ + ${rootlibexecdir}/udev/keymaps \ + ${rootlibexecdir}/udev/rules.d/50-udev-default.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 \ + " + +RCONFLICTS_${PN} = "tiny-init ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolvconf', '', d)}" + +INITSCRIPT_PACKAGES = "udev" +INITSCRIPT_NAME_udev = "systemd-udevd" +INITSCRIPT_PARAMS_udev = "start 03 S ." + +python __anonymous() { + if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): + d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1") +} + +python do_warn_musl() { + if d.getVar('TCLIBC') == "musl": + bb.warn("Using systemd with musl is not recommended since it is not supported upstream and some patches are known to be problematic.") +} +addtask warn_musl before do_configure + +ALTERNATIVE_${PN} = "halt reboot shutdown poweroff runlevel ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'resolv-conf', '', d)}" + +ALTERNATIVE_TARGET[resolv-conf] = "${sysconfdir}/resolv-conf.systemd" +ALTERNATIVE_LINK_NAME[resolv-conf] = "${sysconfdir}/resolv.conf" +ALTERNATIVE_PRIORITY[resolv-conf] ?= "50" + +ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" +ALTERNATIVE_PRIORITY[halt] ?= "300" + +ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" +ALTERNATIVE_PRIORITY[reboot] ?= "300" + +ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" +ALTERNATIVE_PRIORITY[shutdown] ?= "300" + +ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" +ALTERNATIVE_PRIORITY[poweroff] ?= "300" + +ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl" +ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" +ALTERNATIVE_PRIORITY[runlevel] ?= "300" + +pkg_postinst_${PN}_libc-glibc () { + sed -e '/^hosts:/s/\s*\//' \ + -e 's/\(^hosts:.*\)\(\\)\(.*\)\(\\)\(.*\)/\1\2 myhostname \3\4\5/' \ + -i $D${sysconfdir}/nsswitch.conf +} + +pkg_prerm_${PN}_libc-glibc () { + sed -e '/^hosts:/s/\s*\//' \ + -e '/^hosts:/s/\s*myhostname//' \ + -i $D${sysconfdir}/nsswitch.conf +} + +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} rootlibexecdir="${rootlibexecdir}" PREFERRED_PROVIDER_udev="${PREFERRED_PROVIDER_udev}" + else + udevadm hwdb --update + fi +} + +pkg_prerm_udev-hwdb () { + rm -f $D${sysconfdir}/udev/hwdb.bin +} diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch deleted file mode 100644 index 2575b59b..00000000 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 29c7a529d3bb0c1e20239f885e74c5036f1a908c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 6 Aug 2018 15:38:58 -0700 -Subject: [PATCH] include sys/sysmacros.h for major/minor defines in glibc - -Signed-off-by: Khem Raj -Upstream-Status: Pending ---- - src/bootlogd.c | 3 +++ - src/bootlogd.o | Bin 58448 -> 60376 bytes - src/dowall.c | 3 +++ - src/shutdown.c | 4 +++- - 4 files changed, 9 insertions(+), 1 deletion(-) - -Index: sysvinit-2.88dsf/src/bootlogd.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/bootlogd.c -+++ sysvinit-2.88dsf/src/bootlogd.c -@@ -53,6 +53,9 @@ - #ifdef __linux__ - #include - #endif -+#ifdef __GLIBC__ -+#include -+#endif - - char *Version = "@(#) bootlogd 2.86 03-Jun-2004 miquels@cistron.nl"; - -Index: sysvinit-2.88dsf/src/dowall.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/dowall.c -+++ sysvinit-2.88dsf/src/dowall.c -@@ -37,6 +37,9 @@ - #include - #include - #include -+#ifdef __GLIBC__ -+#include -+#endif - - #ifndef _PATH_DEV - # define _PATH_DEV "/dev/" -Index: sysvinit-2.88dsf/src/shutdown.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/shutdown.c -+++ sysvinit-2.88dsf/src/shutdown.c -@@ -57,7 +57,9 @@ - #include "reboot.h" - #include "initreq.h" - #include "init.h" -- -+#ifdef __GLIBC__ -+#include -+#endif - - char *Version = "@(#) shutdown 2.86-1 31-Jul-2004 miquels@cistron.nl"; - -Index: sysvinit-2.88dsf/src/mountpoint.c -=================================================================== ---- sysvinit-2.88dsf.orig/src/mountpoint.c -+++ sysvinit-2.88dsf/src/mountpoint.c -@@ -32,6 +32,9 @@ - #include - #include - #include -+#ifdef __GLIBC__ -+#include -+#endif - - int dostat(char *path, struct stat *st, int do_lstat, int quiet) - { diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch deleted file mode 100644 index 7b342901..00000000 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/crypt-lib.patch +++ /dev/null @@ -1,25 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -# The src Makefile was checking for libcrypt.a on the host, not in the -# build environment. This patch checks for $LCRYPT in the environment -# 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 - endif - - # Additional libs for GNU libc. -+ifneq ($(LCRYPT),) -+ SULOGINLIBS += $(LCRYPT) -+else - ifneq ($(wildcard /usr/lib*/libcrypt.a),) - SULOGINLIBS += -lcrypt - endif -+endif - - all: $(BIN) $(SBIN) $(USRBIN) - diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch deleted file mode 100644 index 6c4225a6..00000000 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/install.patch +++ /dev/null @@ -1,83 +0,0 @@ -Upstream-Status: Pending - -diff --git a/src/Makefile b/src/Makefile -index e2b8028..3e11e92 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -65,7 +65,14 @@ else - INSTALL_DATA = install -m 644 - endif - INSTALL_DIR = install -m 755 -d --MANDIR = /usr/share/man -+ -+ROOT ?= -+base_bindir ?= /bin -+base_sbindir ?= /sbin -+bindir ?= /usr/bin -+sysconfdir ?= /etc -+includedir ?= /usr/include -+mandir ?= /usr/share/man - - ifeq ($(WITH_SELINUX),yes) - SELINUX_DEF = -DWITH_SELINUX -@@ -138,39 +145,39 @@ clobber: cleanobjs - distclean: clobber - - install: -- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/ -- $(INSTALL_DIR) $(ROOT)/usr/bin/ -+ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/ -+ $(INSTALL_DIR) $(ROOT)$(bindir)/ - for i in $(BIN); do \ -- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \ -+ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \ - done - for i in $(SBIN); do \ -- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \ -+ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \ - done - for i in $(USRBIN); do \ -- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \ -+ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \ - done -- # $(INSTALL_DIR) $(ROOT)/etc/ -- # $(INSTALL_EXEC) 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 -+ ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof -+ if [ ! -f $(ROOT)$(bindir)/lastb ]; then \ -+ ln -sf last $(ROOT)$(bindir)/lastb; \ - fi -- $(INSTALL_DIR) $(ROOT)/usr/include/ -- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/ -- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/ -- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/ -- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/ -+ $(INSTALL_DIR) $(ROOT)$(includedir)/ -+ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/ -+ $(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/; \ - done - for i in $(MAN5); do \ -- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man5/; \ -+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man5/; \ - done - for i in $(MAN8); do \ -- $(INSTALL_DATA) ../man/$$i $(ROOT)$(MANDIR)/man8/; \ -+ $(INSTALL_DATA) ../man/$$i $(ROOT)$(mandir)/man8/; \ - done - ifeq ($(ROOT),) - # diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/pidof-add-m-option.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/pidof-add-m-option.patch deleted file mode 100644 index 5b5dfdc0..00000000 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-2.88dsf/pidof-add-m-option.patch +++ /dev/null @@ -1,189 +0,0 @@ -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 -used to avoid multiple shell scripts concurrently calling pidof returning -each other's pids. - -https://bugzilla.redhat.com/show_bug.cgi?id=883856 - -Upstream-Status: backport -Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166 - -Signed-off-by: Hongxu Jia ---- - 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 ---- a/man/pidof.8 -+++ b/man/pidof.8 -@@ -24,6 +24,7 @@ pidof -- find the process ID of a running program. - .RB [ \-c ] - .RB [ \-n ] - .RB [ \-x ] -+.RB [ \-m ] - .RB [ \-o - .IR omitpid[,omitpid..] ] - .RB [ \-o -@@ -63,6 +64,11 @@ shells running the named scripts. - 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. -+.IP -m -+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 -+used to avoid multiple shell scripts concurrently calling pidof returning -+each other's pids. - .SH "EXIT STATUS" - .TP - .B 0 -diff --git a/src/killall5.c b/src/killall5.c -index 5937d98..e73885e 100644 ---- a/src/killall5.c -+++ b/src/killall5.c -@@ -118,6 +118,7 @@ typedef struct _s_nfs - - /* List of processes. */ - PROC *plist; -+PROC *olist; - - /* List of processes to omit. */ - OMIT *omit; -@@ -345,6 +346,20 @@ static void clear_mnt(void) - } - } - -+static void clear_omit(void) -+{ -+ OMIT *o; -+ PROC *p; -+ for (o = omit; o; o = omit) { -+ omit = omit->next; -+ free(o); -+ } -+ for (p = olist; p; p = olist) { -+ olist = olist->next; -+ free(p); -+ } -+} -+ - /* - * Check if path is ia shadow off a NFS partition. - */ -@@ -452,6 +467,7 @@ int readproc(int do_stat) - DIR *dir; - FILE *fp; - PROC *p, *n; -+ OMIT *o, *m; - struct dirent *d; - struct stat st; - char path[PATH_MAX+1]; -@@ -624,6 +640,17 @@ int readproc(int do_stat) - p->next = plist; - plist = p; - p->pid = pid; -+ /* Could be smarter, but it's a small list. */ -+ m = omit; -+ for (o = omit; m; o = m) { -+ m = o->next; -+ if (o->pid == p->pid) { -+ n = (PROC*)xmalloc(sizeof(PROC)); -+ *n = *p; -+ n->next = olist; -+ olist = n; -+ } -+ } - } - closedir(dir); - -@@ -813,6 +840,26 @@ PIDQ_HEAD *pidof(char *prog) - return q; - } - -+int matches(PROC *o, PROC *p) -+{ -+ int ret = 0; -+ char *oargv1, *pargv1; -+ if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) { -+ if (o->argv1 && p->argv1) { -+ if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL) -+ oargv1 = strdup(o->argv1); -+ if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL) -+ pargv1 = strdup(p->argv1); -+ if (! strcmp(oargv1, pargv1)) { -+ ret = 1; -+ } -+ free(oargv1); -+ free(pargv1); -+ } -+ } -+ return ret; -+} -+ - /* Give usage message and exit. */ - void usage(void) - { -@@ -845,6 +892,7 @@ void nsyslog(int pri, char *fmt, ...) - #define PIDOF_SINGLE 0x01 - #define PIDOF_OMIT 0x02 - #define PIDOF_NETFS 0x04 -+#define PIDOF_OMIT_OMIT_MATCHES 0x08 - - /* - * Pidof functionality. -@@ -861,6 +909,7 @@ int main_pidof(int argc, char **argv) - struct stat st; - char tmp[512]; - -+ olist = (PROC*)0; - omit = (OMIT*)0; - nlist = (NFS*)0; - opterr = 0; -@@ -868,7 +917,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) { - 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; -+ 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) - pid_t spid = 0; - while ((p = get_next_from_pid_q(q))) { - if ((flags & PIDOF_OMIT) && omit) { -- OMIT * optr; -- for (optr = omit; optr; optr = optr->next) { -+ PROC * optr; -+ for (optr = olist; optr; optr = optr->next) { - if (optr->pid == p->pid) - break; -+ if (flags & PIDOF_OMIT_OMIT_MATCHES) -+ if (matches(optr, p)) -+ break; - } - - /* -@@ -977,6 +1032,7 @@ int main_pidof(int argc, char **argv) - if (!first) - printf("\n"); - -+ clear_omit(); - clear_mnt(); - - closelog(); --- -1.8.1.2 - diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty b/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty index e15ae35f..96fd6cfc 100644 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab/start_getty @@ -13,6 +13,18 @@ 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]') +# busybox' getty does this itself, util-linux' agetty needs extra help +getty="/sbin/getty" +case $(readlink -f "${getty}") in + */busybox*) + ;; + *) + if [ -x "/usr/bin/setsid" ] ; then + setsid="/usr/bin/setsid" + fi + ;; +esac + # Backup $IFS. DEFAULT_IFS=$IFS # Customize Internal Field Separator. @@ -31,7 +43,7 @@ for line in $active_serial; do then if [ -c /dev/$2 ] then - /sbin/getty -L $1 $2 $3 + ${setsid:-} ${getty} -L $1 $2 $3 fi break fi diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb index 8585a418..8781492d 100644 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb @@ -20,6 +20,7 @@ do_install() { install -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab install -d ${D}${base_bindir} install -m 0755 ${WORKDIR}/start_getty ${D}${base_bindir}/start_getty + sed -e 's,/usr/bin,${bindir},g' -i ${D}${base_bindir}/start_getty set -x tmp="${SERIAL_CONSOLES}" @@ -89,5 +90,4 @@ CONFFILES_${PN} = "${sysconfdir}/inittab" USE_VT ?= "1" SYSVINIT_ENABLED_GETTYS ?= "1" - - +RCONFLICTS_${PN} = "busybox-inittab" diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/0001-This-fixes-an-issue-that-clang-reports-about-mutlipl.patch deleted file mode 100644 index f35c15cb..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch new file mode 100644 index 00000000..60fbd875 --- /dev/null +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit/0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch @@ -0,0 +1,50 @@ +From c710a3accd1fabdb671274e1a458405282d51e0c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 6 Aug 2018 15:38:58 -0700 +Subject: [PATCH] include sys/sysmacros.h for major/minor definitions + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +--- + src/bootlogd.c | 1 + + src/mountpoint.c | 1 + + src/shutdown.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/src/bootlogd.c b/src/bootlogd.c +index 787db87..8b07903 100644 +--- a/src/bootlogd.c ++++ b/src/bootlogd.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/src/mountpoint.c b/src/mountpoint.c +index 5f20522..94df7a1 100644 +--- a/src/mountpoint.c ++++ b/src/mountpoint.c +@@ -25,6 +25,7 @@ + + #include + #include ++#include + #include + #include + #include +diff --git a/src/shutdown.c b/src/shutdown.c +index b744a2c..40b7faf 100644 +--- a/src/shutdown.c ++++ b/src/shutdown.c +@@ -40,6 +40,7 @@ + #endif + #include + #include ++#include + #include + #ifdef __linux__ + #include /* brought in my LFS patch */ diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch new file mode 100644 index 00000000..bd4444b8 --- /dev/null +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch @@ -0,0 +1,36 @@ +From 7276275d9a08d5ae268fb263027bbc60bc0ab2e8 Mon Sep 17 00:00:00 2001 +From: Jeff Dike +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 +# build environment. This patch checks for $LCRYPT in the environment +# and uses it if it's there. +# - jdike@linux.intel.com + +--- + src/Makefile | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index 1380d7f..628e77f 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -97,13 +97,8 @@ else + endif + + # Additional libs for GNU libc. +-ifneq ($(wildcard /usr/lib*/libcrypt.*),) +- SULOGINLIBS += -lcrypt +-endif +- +-# Additional libs for GNU libc / multiarch on Debian based systems. +-ifneq ($(wildcard /usr/lib/*/libcrypt.*),) +- SULOGINLIBS += -lcrypt ++ifneq ($(LCRYPT),) ++ SULOGINLIBS += $(LCRYPT) + endif + + all: $(BIN) $(SBIN) $(USRBIN) diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit/install.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/install.patch new file mode 100644 index 00000000..2930fb01 --- /dev/null +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit/install.patch @@ -0,0 +1,96 @@ +From b6cc66ab245ceb6bca0116dff7a41f6d7677b96a Mon Sep 17 00:00:00 2001 +From: Qing He +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 9f9f09e..1380d7f 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -77,7 +77,14 @@ else + INSTALL_DATA = install -m 644 + endif + INSTALL_DIR = install -m 755 -d +-MANDIR = /usr/share/man ++ ++ROOT ?= ++base_bindir ?= /bin ++base_sbindir ?= /sbin ++bindir ?= /usr/bin ++sysconfdir ?= /etc ++includedir ?= /usr/include ++mandir ?= /usr/share/man + + ifeq ($(WITH_SELINUX),yes) + SELINUX_DEF = -DWITH_SELINUX +@@ -189,42 +196,42 @@ clobber: cleanobjs + distclean: clobber + + install: all +- $(INSTALL_DIR) $(ROOT)/bin/ $(ROOT)/sbin/ +- $(INSTALL_DIR) $(ROOT)/usr/bin/ ++ $(INSTALL_DIR) $(ROOT)$(base_bindir)/ $(ROOT)$(base_sbindir)/ ++ $(INSTALL_DIR) $(ROOT)$(bindir)/ + for i in $(BIN); do \ +- $(INSTALL_EXEC) $$i $(ROOT)/bin/ ; \ ++ $(INSTALL_EXEC) $$i $(ROOT)$(base_bindir)/ ; \ + done + for i in $(SBIN); do \ +- $(INSTALL_EXEC) $$i $(ROOT)/sbin/ ; \ ++ $(INSTALL_EXEC) $$i $(ROOT)$(base_sbindir)/ ; \ + done + for i in $(USRBIN); do \ +- $(INSTALL_EXEC) $$i $(ROOT)/usr/bin/ ; \ ++ $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \ + done + # $(INSTALL_DIR) $(ROOT)/etc/ + # $(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; \ ++ ln -sf halt $(ROOT)$(base_sbindir)/reboot ++ ln -sf halt $(ROOT)$(base_sbindir)/poweroff ++ ln -sf init $(ROOT)$(base_sbindir)/telinit ++ ln -sf $(base_sbindir)/killall5 $(ROOT)$(base_bindir)/pidof ++ if [ ! -f $(ROOT)$(bindir)/lastb ]; then \ ++ ln -sf last $(ROOT)$(bindir)/lastb; \ + fi +- $(INSTALL_DIR) $(ROOT)/usr/include/ +- $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/ +- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/ +- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/ +- $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/ ++ $(INSTALL_DIR) $(ROOT)$(includedir)/ ++ $(INSTALL_DATA) initreq.h $(ROOT)$(includedir)/ ++ $(INSTALL_DIR) $(ROOT)$(mandir)/man1/ ++ $(INSTALL_DIR) $(ROOT)$(mandir)/man5/ ++ $(INSTALL_DIR) $(ROOT)$(mandir)/man8/ + 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 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 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/external/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch new file mode 100644 index 00000000..494aa0e0 --- /dev/null +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit/pidof-add-m-option.patch @@ -0,0 +1,191 @@ +From 6c490ea6579a132fabb7dbd25387bb521f820371 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +used to avoid multiple shell scripts concurrently calling pidof returning +each other's pids. + +https://bugzilla.redhat.com/show_bug.cgi?id=883856 + +Upstream-Status: backport +Imported patch from: https://bugzilla.redhat.com/attachment.cgi?id=658166 + +Signed-off-by: Hongxu Jia + +--- + 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 +@@ -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...] ] + .RB [ \-o +@@ -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. ++.IP -m ++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 ++used to avoid multiple shell scripts concurrently calling pidof returning ++each other's pids. + .SH "EXIT STATUS" + .TP + .B 0 +diff --git a/src/killall5.c b/src/killall5.c +index 8b5cb38..a664954 100644 +--- a/src/killall5.c ++++ b/src/killall5.c +@@ -126,6 +126,7 @@ typedef struct _s_nfs + + /* List of processes. */ + PROC *plist; ++PROC *olist; + + /* List of processes to omit. */ + OMIT *omit; +@@ -361,6 +362,20 @@ static void clear_mnt(void) + } + } + ++static void clear_omit(void) ++{ ++ OMIT *o; ++ PROC *p; ++ for (o = omit; o; o = omit) { ++ omit = omit->next; ++ free(o); ++ } ++ for (p = olist; p; p = olist) { ++ olist = olist->next; ++ free(p); ++ } ++} ++ + /* + * Check if path is a shadow off a NFS partition. + */ +@@ -486,6 +501,7 @@ int readproc(int do_stat) + DIR *dir; + FILE *fp; + PROC *p, *n; ++ OMIT *o, *m; + struct dirent *d; + struct stat st; + char path[PATH_MAX+1]; +@@ -733,6 +749,17 @@ int readproc(int do_stat) + p->next = plist; + plist = p; + p->pid = pid; ++ /* Could be smarter, but it's a small list. */ ++ m = omit; ++ for (o = omit; m; o = m) { ++ m = o->next; ++ if (o->pid == p->pid) { ++ n = (PROC*)xmalloc(sizeof(PROC)); ++ *n = *p; ++ n->next = olist; ++ olist = n; ++ } ++ } + } + closedir(dir); + +@@ -944,6 +971,26 @@ PIDQ_HEAD *pidof(char *prog) + return q; + } + ++int matches(PROC *o, PROC *p) ++{ ++ int ret = 0; ++ char *oargv1, *pargv1; ++ if ((o->argv0 && p->argv0 && !strcmp(o->argv0,p->argv0))) { ++ if (o->argv1 && p->argv1) { ++ if ((oargv1 = canonicalize_file_name(o->argv1)) == NULL) ++ oargv1 = strdup(o->argv1); ++ if ((pargv1 = canonicalize_file_name(p->argv1)) == NULL) ++ pargv1 = strdup(p->argv1); ++ if (! strcmp(oargv1, pargv1)) { ++ ret = 1; ++ } ++ free(oargv1); ++ free(pargv1); ++ } ++ } ++ return ret; ++} ++ + /* Give usage message and exit. */ + void usage(void) + { +@@ -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. +@@ -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; +@@ -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,"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(); +@@ -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; +@@ -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) { +- OMIT * optr; +- for (optr = omit; optr; optr = optr->next) { ++ PROC * optr; ++ for (optr = olist; optr; optr = optr->next) { + if (optr->pid == p->pid) + break; ++ if (flags & PIDOF_OMIT_OMIT_MATCHES) ++ if (matches(optr, p)) ++ break; + } + + /* +@@ -1145,6 +1200,7 @@ int main_pidof(int argc, char **argv) + printf("\n"); + } + ++ clear_omit(); + clear_mnt(); + + closelog(); diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch b/external/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch index 5e0dca3b..859fd8ba 100644 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit/realpath.patch +++ b/external/poky/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 +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 -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 - #include - #include -+#include - - #include - #include - #include --#include - - #include - #include -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 - #include - #include -+#include - #include - #include - -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 - #include - #include - #include -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 + #include #include + #include +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 #include + #include +#include #include "init.h" diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/external/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb deleted file mode 100644 index bfc1283f..00000000 --- a/external/poky/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +++ /dev/null @@ -1,110 +0,0 @@ -SUMMARY = "System-V like init" -DESCRIPTION = "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts." -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" - -RDEPENDS_${PN} = "${PN}-inittab" - -SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.bz2 \ - 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 \ - file://rc \ - file://rcS \ - file://bootlogd.init \ - file://01_bootlogd \ -" - -SRC_URI[md5sum] = "6eda8a97b86e0a6f59dabbf25202aa6f" -SRC_URI[sha256sum] = "60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519" - -S = "${WORKDIR}/sysvinit-${PV}" -B = "${S}/src" - -inherit update-alternatives distro_features_check -DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt" - -REQUIRED_DISTRO_FEATURES = "sysvinit" - -ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" - -ALTERNATIVE_PRIORITY = "200" - -ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" -ALTERNATIVE_PRIORITY[init] = "50" - -ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" -ALTERNATIVE_PRIORITY[mountpoint] = "20" - -ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" -ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" -ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" -ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" -ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" - -ALTERNATIVE_${PN}-pidof = "pidof" -ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof" - -ALTERNATIVE_${PN}-sulogin = "sulogin" -ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" - -ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1" - -ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" -ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" -ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1" -ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1" -ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8" -ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" -ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" - -PACKAGES =+ "sysvinit-pidof sysvinit-sulogin" -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" - -CFLAGS_prepend = "-D_GNU_SOURCE " -export LCRYPT = "-lcrypt" -EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \ - 'base_sbindir=${base_sbindir}' \ - 'bindir=${bindir}' \ - 'sbindir=${sbindir}' \ - 'sysconfdir=${sysconfdir}' \ - 'includedir=${includedir}' \ - 'mandir=${mandir}'" - -do_install () { - oe_runmake 'ROOT=${D}' install - - install -d ${D}${sysconfdir} \ - ${D}${sysconfdir}/default \ - ${D}${sysconfdir}/init.d - for level in S 0 1 2 3 4 5 6; do - install -d ${D}${sysconfdir}/rc$level.d - done - - install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS - install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd - ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd - - update-rc.d -r ${D} bootlogd start 07 S . - update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 . - - install -d ${D}${sysconfdir}/default/volatiles - install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles - - chown root:shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown - chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown -} diff --git a/external/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb b/external/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb new file mode 100644 index 00000000..d2b85ed9 --- /dev/null +++ b/external/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb @@ -0,0 +1,114 @@ +SUMMARY = "System-V like init" +DESCRIPTION = "This package is required to boot in most configurations. It provides the /sbin/init program. This is the first process started on boot, and the last process terminated before the system halts." +HOMEPAGE = "http://savannah.nongnu.org/projects/sysvinit/" +SECTION = "base" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ + file://COPYRIGHT;endline=15;md5=a1d3b3526501d3546d530bbe6ab6cdbe \ + " + +RDEPENDS_${PN} = "${PN}-inittab" + +SRC_URI = "${SAVANNAH_GNU_MIRROR}/sysvinit/sysvinit-${PV}.tar.xz \ + file://install.patch \ + file://crypt-lib.patch \ + file://pidof-add-m-option.patch \ + file://realpath.patch \ + file://0001-include-sys-sysmacros.h-for-major-minor-defines-in-g.patch \ + file://rcS-default \ + file://rc \ + file://rcS \ + file://bootlogd.init \ + file://01_bootlogd \ + " +SRC_URI[md5sum] = "48cebffebf2a96ab09bec14bf9976016" +SRC_URI[sha256sum] = "2a2e26b72aa235a23ab1c8471005f890309ce1196c83fbc9413c57b9ab62b587" + +S = "${WORKDIR}/sysvinit-${PV}" +B = "${S}/src" + +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" + +ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall" + +ALTERNATIVE_PRIORITY = "200" + +ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init" +ALTERNATIVE_PRIORITY[init] = "50" + +ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" +ALTERNATIVE_PRIORITY[mountpoint] = "20" + +ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt" +ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot" +ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel" +ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown" +ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff" + +ALTERNATIVE_${PN}-pidof = "pidof" +ALTERNATIVE_LINK_NAME[pidof] = "${base_bindir}/pidof" + +ALTERNATIVE_${PN}-sulogin = "sulogin" +ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" + +ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 sulogin.8 utmpdump.1" + +ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" +ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" +ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1" +ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1" +ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8" +ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" +ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" + +PACKAGES =+ "sysvinit-pidof sysvinit-sulogin" +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 base-passwd" + +CFLAGS_prepend = "-D_GNU_SOURCE " +export LCRYPT = "-lcrypt" +EXTRA_OEMAKE += "'base_bindir=${base_bindir}' \ + 'base_sbindir=${base_sbindir}' \ + 'bindir=${bindir}' \ + 'sbindir=${sbindir}' \ + 'sysconfdir=${sysconfdir}' \ + 'includedir=${includedir}' \ + 'mandir=${mandir}' \ + MNTPOINT=yes" + +do_install () { + oe_runmake 'ROOT=${D}' install + + install -d ${D}${sysconfdir} \ + ${D}${sysconfdir}/default \ + ${D}${sysconfdir}/init.d + for level in S 0 1 2 3 4 5 6; do + install -d ${D}${sysconfdir}/rc$level.d + done + + install -m 0644 ${WORKDIR}/rcS-default ${D}${sysconfdir}/default/rcS + install -m 0755 ${WORKDIR}/rc ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/bootlogd.init ${D}${sysconfdir}/init.d/bootlogd + ln -sf bootlogd ${D}${sysconfdir}/init.d/stop-bootlogd + + update-rc.d -r ${D} bootlogd start 07 S . + update-rc.d -r ${D} stop-bootlogd start 99 2 3 4 5 . + + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/01_bootlogd ${D}${sysconfdir}/default/volatiles + + 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/external/poky/meta/recipes-core/udev/eudev_3.2.7.bb b/external/poky/meta/recipes-core/udev/eudev_3.2.7.bb deleted file mode 100644 index 1bea4ebd..00000000 --- a/external/poky/meta/recipes-core/udev/eudev_3.2.7.bb +++ /dev/null @@ -1,96 +0,0 @@ -SUMMARY = "eudev is a fork of systemd's udev" -HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev" -LICENSE = "GPLv2.0+ & LGPL-2.1+" -LICENSE_libudev = "LGPL-2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -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 \ - file://0014-Revert-rules-remove-firmware-loading-rules.patch \ - file://Revert-udev-remove-userspace-firmware-loading-suppor.patch \ - file://devfs-udev.rules \ - file://init \ - file://links.conf \ - file://local.rules \ - file://permissions.rules \ - file://run.rules \ - file://udev.rules \ -" - -SRC_URI[md5sum] = "c75d99910c1791dd9430d26ab76059c0" -SRC_URI[sha256sum] = "3004614bd253c1f98558460215027aaf60d7592c70be27fd384ec01db87bf062" - -inherit autotools update-rc.d qemu pkgconfig distro_features_check - -CONFLICT_DISTRO_FEATURES = "systemd" - -EXTRA_OECONF = " \ - --sbindir=${base_sbindir} \ - --with-rootlibdir=${base_libdir} \ - --with-rootlibexecdir=${nonarch_base_libdir}/udev \ - --with-rootprefix= \ -" - -PACKAGECONFIG ??= "hwdb" -PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb" - -do_install_append() { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev - sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev - - install -d ${D}${sysconfdir}/udev/rules.d - install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules - - # Use classic network interface naming scheme - touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules - - # hid2hci has moved to bluez4. removed in udev as of version 169 - rm -f ${D}${base_libdir}/udev/hid2hci - - # duplicate udevadm for postinst script - install -d ${D}${libexecdir} - ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm -} - -do_install_prepend_class-target () { - # Remove references to buildmachine - sed -i -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - ${B}/src/udev/keyboard-keys-from-name.h -} - -INITSCRIPT_NAME = "udev" -INITSCRIPT_PARAMS = "start 04 S ." - -PACKAGES =+ "libudev" -PACKAGES =+ "eudev-hwdb" - - -FILES_${PN} += "${libexecdir} ${nonarch_base_libdir}/udev ${bindir}/udevadm" -FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \ - ${includedir}/libudev.h ${libdir}/libudev.so \ - ${includedir}/udev.h ${libdir}/libudev.la \ - ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc" -FILES_libudev = "${base_libdir}/libudev.so.*" -FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d" - -RDEPENDS_eudev-hwdb += "eudev" - -RPROVIDES_${PN} = "hotplug udev" -RPROVIDES_eudev-hwdb += "udev-hwdb" - -PACKAGE_WRITE_DEPS += "qemu-native" -pkg_postinst_eudev-hwdb () { - if test -n "$D"; then - $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} - else - udevadm hwdb --update - fi -} - -pkg_prerm_eudev-hwdb () { - rm -f $D${sysconfdir}/udev/hwdb.bin -} diff --git a/external/poky/meta/recipes-core/udev/eudev_3.2.9.bb b/external/poky/meta/recipes-core/udev/eudev_3.2.9.bb new file mode 100644 index 00000000..f96f8cbe --- /dev/null +++ b/external/poky/meta/recipes-core/udev/eudev_3.2.9.bb @@ -0,0 +1,96 @@ +SUMMARY = "eudev is a fork of systemd's udev" +HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev" +LICENSE = "GPLv2.0+ & LGPL-2.1+" +LICENSE_libudev = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux" + +PROVIDES = "udev" + +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 \ + file://init \ + file://links.conf \ + file://local.rules \ + file://permissions.rules \ + file://run.rules \ + file://udev.rules \ +" + +SRC_URI[md5sum] = "dedfb1964f6098fe9320de827957331f" +SRC_URI[sha256sum] = "89618619084a19e1451d373c43f141b469c9fd09767973d73dd268b92074d4fc" + +inherit autotools update-rc.d qemu pkgconfig features_check + +CONFLICT_DISTRO_FEATURES = "systemd" + +EXTRA_OECONF = " \ + --sbindir=${base_sbindir} \ + --with-rootlibdir=${base_libdir} \ + --with-rootlibexecdir=${nonarch_base_libdir}/udev \ + --with-rootprefix= \ +" + +PACKAGECONFIG ??= "hwdb" +PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb" + +do_install_append() { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev + sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev + + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules + + # Use classic network interface naming scheme + touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules + + # hid2hci has moved to bluez4. removed in udev as of version 169 + rm -f ${D}${base_libdir}/udev/hid2hci + + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm +} + +do_install_prepend_class-target () { + # Remove references to buildmachine + sed -i -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + ${B}/src/udev/keyboard-keys-from-name.h +} + +INITSCRIPT_NAME = "udev" +INITSCRIPT_PARAMS = "start 04 S ." + +PACKAGES =+ "libudev" +PACKAGES =+ "eudev-hwdb" + + +FILES_${PN} += "${libexecdir} ${nonarch_base_libdir}/udev ${bindir}/udevadm" +FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \ + ${includedir}/libudev.h ${libdir}/libudev.so \ + ${includedir}/udev.h ${libdir}/libudev.la \ + ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc" +FILES_libudev = "${base_libdir}/libudev.so.*" +FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d" + +RDEPENDS_eudev-hwdb += "eudev" + +RPROVIDES_${PN} = "hotplug udev" +RPROVIDES_eudev-hwdb += "udev-hwdb" + +PACKAGE_WRITE_DEPS += "qemu-native" +pkg_postinst_eudev-hwdb () { + if test -n "$D"; then + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX} + else + udevadm hwdb --update + fi +} + +pkg_prerm_eudev-hwdb () { + rm -f $D${sysconfdir}/udev/hwdb.bin +} diff --git a/external/poky/meta/recipes-core/udev/udev-extraconf/mount.sh b/external/poky/meta/recipes-core/udev/udev-extraconf/mount.sh index 3ee67b13..b2373187 100644 --- a/external/poky/meta/recipes-core/udev/udev-extraconf/mount.sh +++ b/external/poky/meta/recipes-core/udev/udev-extraconf/mount.sh @@ -38,6 +38,12 @@ done automount_systemd() { name="`basename "$DEVNAME"`" + # Skip already mounted partitions + if [ -f /run/systemd/transient/run-media-$name.mount ]; then + logger "mount.sh/automount" "/run/media/$name already mounted" + return + fi + # Skip the partition which are already in /etc/fstab grep "^[[:space:]]*$DEVNAME" /etc/fstab && return for n in LABEL PARTLABEL UUID PARTUUID; do @@ -57,6 +63,8 @@ automount_systemd() { vfat|fat) MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" ;; + swap) + return ;; # TODO *) ;; @@ -98,6 +106,8 @@ automount() { vfat|fat) MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" ;; + swap) + return ;; # TODO *) ;; diff --git a/external/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb b/external/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb index baa21aea..75632d94 100644 --- a/external/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb +++ b/external/poky/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb @@ -4,10 +4,10 @@ DESCRIPTION = "update-rc.d is a utility that allows the management of symlinks t SECTION = "base" LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=148a48321b10eb37c1fa3ee02b940a75" +LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=d40a07c27f535425934bb5001f2037d9" SRC_URI = "git://git.yoctoproject.org/update-rc.d" -SRCREV = "22e0692898c3e7ceedc8eb5ff4ec8e0b9c340b2d" +SRCREV = "4b150b25b38de688d25cde2b2d22c268ed65a748" UPSTREAM_CHECK_COMMITS = "1" diff --git a/external/poky/meta/recipes-core/util-linux/util-linux.inc b/external/poky/meta/recipes-core/util-linux/util-linux.inc index a05c1cab..532cceb9 100644 --- a/external/poky/meta/recipes-core/util-linux/util-linux.inc +++ b/external/poky/meta/recipes-core/util-linux/util-linux.inc @@ -6,134 +6,156 @@ disk partitioning, kernel message management, filesystem creation, and system lo SECTION = "base" -LICENSE = "GPLv2+ & LGPLv2.1+ & BSD" +LICENSE = "GPLv2+ & LGPLv2.1+ & BSD-3-Clause & BSD-4-Clause" -LIC_FILES_CHKSUM = "file://README.licensing;md5=1715f5ee3e01203ca1e1e0b9ee65918c \ +LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da \ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://Documentation/licenses/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://Documentation/licenses/COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c \ - file://Documentation/licenses/COPYING.BSD-3;md5=58dcd8452651fc8b07d1f65ce07ca8af \ - file://Documentation/licenses/COPYING.UCB;md5=263860f8968d8bafa5392cab74285262 \ - file://libuuid/COPYING;md5=b442ffb762cf8d3e9df1b99e0bb4af70 \ - file://libmount/COPYING;md5=fb93f01d4361069c5616327705373b16 \ - file://libblkid/COPYING;md5=fb93f01d4361069c5616327705373b16" + file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \ + file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af \ + 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" #gtk-doc is not enabled as it requires xmlto which requires util-linux -inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest -DEPENDS = "zlib ncurses virtual/crypt" -DEPENDS_append_class-native = " lzo-native" -DEPENDS_append_class-nativesdk = " lzo-native" +inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest +DEPENDS = "libcap-ng ncurses virtual/crypt zlib" -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.xz \ +MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${MAJOR_VERSION}/${BP}.tar.xz \ " -PACKAGES =+ "util-linux-agetty util-linux-fdisk util-linux-cfdisk util-linux-sfdisk \ - util-linux-swaponoff util-linux-losetup util-linux-umount \ - util-linux-mount util-linux-readprofile util-linux-uuidd \ - util-linux-uuidgen util-linux-lscpu util-linux-fsck.cramfs util-linux-fsck \ - util-linux-blkid util-linux-mkfs util-linux-mcookie util-linux-rfkill \ - util-linux-lsblk util-linux-mkfs.cramfs util-linux-fstrim \ - util-linux-partx util-linux-hwclock util-linux-mountpoint \ - util-linux-findfs util-linux-getopt util-linux-sulogin util-linux-prlimit \ - util-linux-ionice util-linux-switch-root util-linux-unshare" -PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', 'util-linux-pylibmount', '', d)}" -PACKAGES =+ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'util-linux-runuser util-linux-su', '', d)}" - -PACKAGES_DYNAMIC = "^util-linux-lib.*" - -SHARED_EXTRA_OECONF = "--disable-use-tty-group \ - --disable-makeinstall-chown \ - --enable-kill --enable-last --enable-mesg --enable-partx \ - --enable-raw --enable-rfkill --disable-login \ - --disable-vipw --disable-newgrp --disable-chfn-chsh \ - --enable-write --enable-mount --enable-unshare \ - --enable-libuuid --enable-libblkid --enable-fsck \ - --disable-minix --disable-bfs --without-udev \ - usrsbin_execdir='${sbindir}' \ +PACKAGES =+ "${PN}-swaponoff" +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', '${PN}-pylibmount', '', d)}" + +python util_linux_binpackages () { + def pkg_hook(f, pkg, file_regex, output_pattern, modulename): + pn = d.getVar('PN') + d.appendVar('RRECOMMENDS_%s' % pn, ' %s' % pkg) + + if d.getVar('ALTERNATIVE_' + pkg): + return + if d.getVarFlag('ALTERNATIVE_LINK_NAME', modulename): + d.setVar('ALTERNATIVE_' + pkg, modulename) + + bindirs = sorted(list(set(d.expand("${base_sbindir} ${base_bindir} ${sbindir} ${bindir}").split()))) + for dir in bindirs: + do_split_packages(d, root=dir, + file_regex=r'(.*)', output_pattern='${PN}-%s', + description='${PN} %s', + hook=pkg_hook, extra_depends='') + + # There are some symlinks for some binaries which we have ignored + # above. Add them to the package owning the binary they are + # pointing to + extras = {} + dvar = d.getVar('PKGD') + for root in bindirs: + for walkroot, dirs, files in os.walk(dvar + root): + for f in files: + file = os.path.join(walkroot, f) + if not os.path.islink(file): + continue + + pkg = os.path.basename(os.readlink(file)) + extras[pkg] = extras.get(pkg, '') + ' ' + file.replace(dvar, '', 1) + + pn = d.getVar('PN') + for pkg, links in extras.items(): + of = d.getVar('FILES_' + pn + '-' + pkg) + links = of + links + d.setVar('FILES_' + pn + '-' + pkg, links) +} + +# we must execute before update-alternatives PACKAGE_PREPROCESS_FUNCS +PACKAGE_PREPROCESS_FUNCS =+ "util_linux_binpackages " + +python util_linux_libpackages() { + do_split_packages(d, root=d.getVar('UTIL_LINUX_LIBDIR'), file_regex=r'^lib(.*)\.so\..*$', + output_pattern='${PN}-lib%s', + description='${PN} lib%s', + extra_depends='', prepend=True, allow_links=True) +} + +PACKAGESPLITFUNCS =+ "util_linux_libpackages" + +PACKAGES_DYNAMIC = "^${PN}-.*" + +CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms" +UTIL_LINUX_LIBDIR = "${libdir}" +UTIL_LINUX_LIBDIR_class-target = "${base_libdir}" +EXTRA_OECONF = "\ + --enable-libuuid --enable-libblkid \ + \ + --enable-fsck --enable-kill --enable-last --enable-mesg \ + --enable-mount --enable-partx --enable-raw --enable-rfkill \ + --enable-unshare --enable-write \ + \ + --disable-bfs --disable-chfn-chsh --disable-login \ + --disable-makeinstall-chown --disable-minix --disable-newgrp \ + --disable-use-tty-group --disable-vipw \ + \ + --without-udev \ + \ + usrsbin_execdir='${sbindir}' \ + --libdir='${UTIL_LINUX_LIBDIR}' \ " -EXTRA_OECONF = "${SHARED_EXTRA_OECONF} --libdir=${base_libdir}" +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 +PACKAGECONFIG[manpages] = "" PACKAGECONFIG[pam] = "--enable-su --enable-runuser,--disable-su --disable-runuser, libpam," - # Respect the systemd feature for uuidd -PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/, --without-systemd --without-systemdsystemunitdir,systemd" - -# Build setpriv requires libcap-ng -PACKAGECONFIG[libcap-ng] = "--enable-setpriv,--disable-setpriv,libcap-ng," - +PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_system_unitdir}, --without-systemd --without-systemdsystemunitdir,systemd" # Build python bindings for libmount 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" -FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" +EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}'" +ALLOW_EMPTY_${PN} = "1" +FILES_${PN} = "" +FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*" FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.la" - -FILES_util-linux-agetty = "${base_sbindir}/agetty" -FILES_util-linux-fdisk = "${base_sbindir}/fdisk.${BPN}" -FILES_util-linux-fstrim = "${base_sbindir}/fstrim.${BPN}" -FILES_util-linux-cfdisk = "${base_sbindir}/cfdisk" -FILES_util-linux-sfdisk = "${sbindir}/sfdisk" -FILES_util-linux-swaponoff = "${base_sbindir}/swapon.${BPN} ${base_sbindir}/swapoff.${BPN}" -FILES_util-linux-losetup = "${base_sbindir}/losetup.${BPN}" -FILES_util-linux-mount = "${base_bindir}/mount.${BPN}" -FILES_util-linux-mcookie = "${bindir}/mcookie" -FILES_util-linux-umount = "${base_bindir}/umount.${BPN}" -FILES_util-linux-readprofile = "${sbindir}/readprofile.${BPN}" -FILES_util-linux-uuidgen = "${bindir}/uuidgen" -FILES_util-linux-uuidd = "${sbindir}/uuidd" -FILES_util-linux-rfkill = "${sbindir}/rfkill*" -FILES_util-linux-partx = "${sbindir}/partx" -FILES_util-linux-hwclock = "${base_sbindir}/hwclock.${BPN}" -FILES_util-linux-findfs = "${sbindir}/findfs" -FILES_util-linux-getopt = "${base_bindir}/getopt.${BPN}" -FILES_util-linux-runuser = "${sbindir}/runuser" -FILES_util-linux-prlimit = "${bindir}/prlimit" -FILES_util-linux-ionice = "${bindir}/ionice.${BPN}" -FILES_util-linux-su = "${bindir}/su.util-linux ${sysconfdir}/pam.d/su-l" -CONFFILES_util-linux-su = "${sysconfdir}/pam.d/su-l" - -FILES_util-linux-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ - ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ - ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" -FILES_util-linux-lsblk = "${bindir}/lsblk" -FILES_util-linux-lscpu = "${bindir}/lscpu" - -FILES_util-linux-fsck = "${base_sbindir}/fsck*" -FILES_util-linux-mkfs = "${sbindir}/mkfs" - -FILES_util-linux-fsck.cramfs = "${sbindir}/fsck.cramfs" -FILES_util-linux-mkfs.cramfs = "${sbindir}/mkfs.cramfs" - -FILES_util-linux-sulogin = "${base_sbindir}/sulogin*" -FILES_util-linux-mountpoint = "${base_bindir}/mountpoint.${BPN}" - -FILES_util-linux-switch-root = "${base_sbindir}/switch_root.${BPN}" -FILES_util-linux-unshare = "${bindir}/unshare.${BPN}" +FILES_${PN}-mount = "${sysconfdir}/default/mountall" +FILES_${PN}-runuser = "${sysconfdir}/pam.d/runuser*" +FILES_${PN}-su = "${sysconfdir}/pam.d/su-l" +CONFFILES_${PN}-su = "${sysconfdir}/pam.d/su-l" +FILES_${PN}-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \ + ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \ + ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*" # Util-linux' blkid replaces the e2fsprogs one -FILES_util-linux-blkid = "${base_sbindir}/blkid*" -RCONFLICTS_util-linux-blkid = "e2fsprogs-blkid" -RREPLACES_util-linux-blkid = "e2fsprogs-blkid" - -RDEPENDS_util-linux-runuser += "libpam" -RDEPENDS_util-linux-su += "libpam" - -RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup util-linux-sulogin util-linux-lsblk" -RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'util-linux-runuser util-linux-su', '', d)}" - -RRECOMMENDS_${PN} = "util-linux-fdisk util-linux-cfdisk util-linux-sfdisk util-linux-mount util-linux-readprofile util-linux-mkfs util-linux-mountpoint util-linux-prlimit util-linux-ionice util-linux-switch-root" +RCONFLICTS_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" +RREPLACES_${PN}-blkid = "${MLPREFIX}e2fsprogs-blkid" RRECOMMENDS_${PN}_class-native = "" RRECOMMENDS_${PN}_class-nativesdk = "" RDEPENDS_${PN}_class-native = "" RDEPENDS_${PN}_class-nativesdk = "" -RPROVIDES_${PN}-dev = "util-linux-libblkid-dev util-linux-libmount-dev util-linux-libuuid-dev" +RPROVIDES_${PN}-dev = "${PN}-libblkid-dev ${PN}-libmount-dev ${PN}-libuuid-dev" + +RDEPENDS_${PN}-bash-completion += "${PN}-lsblk" +RDEPENDS_${PN}-ptest += "bash bc btrfs-tools coreutils e2fsprogs grep iproute2 kmod mdadm procps sed socat which xz" +RRECOMMENDS_${PN}-ptest += "kernel-module-scsi-debug" +RDEPENDS_${PN}-swaponoff = "${PN}-swapon ${PN}-swapoff" +ALLOW_EMPTY_${PN}-swaponoff = "1" #SYSTEMD_PACKAGES = "${PN}-uuidd ${PN}-fstrim" SYSTEMD_SERVICE_${PN}-uuidd = "uuidd.socket uuidd.service" @@ -141,23 +163,17 @@ SYSTEMD_AUTO_ENABLE_${PN}-uuidd = "disable" SYSTEMD_SERVICE_${PN}-fstrim = "fstrim.timer fstrim.service" SYSTEMD_AUTO_ENABLE_${PN}-fstrim = "disable" -do_compile () { - set -e - oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= 'OPT=${CFLAGS}' -} - do_install () { # with ccache the timestamps on compiled files may # end up earlier than on their inputs, this allows # for the resultant compilation in the install step. - oe_runmake ARCH=${TARGET_ARCH} CPU= CPUOPT= \ - 'OPT=${CFLAGS}' 'CC=${CC}' 'LD=${LD}' \ + oe_runmake 'CC=${CC}' 'LD=${LD}' \ 'LDFLAGS=${LDFLAGS}' 'DESTDIR=${D}' install mkdir -p ${D}${base_bindir} sbinprogs="agetty ctrlaltdel cfdisk vipw vigr" - sbinprogs_a="pivot_root hwclock mkswap mkfs.minix fsck.minix losetup swapon swapoff fdisk fsck blkid blockdev fstrim sulogin switch_root nologin" + sbinprogs_a="pivot_root hwclock mkswap losetup swapon swapoff fdisk fsck blkid blockdev fstrim sulogin switch_root nologin" binprogs_a="dmesg getopt kill more umount mount login su mountpoint" if [ "${base_sbindir}" != "${sbindir}" ]; then @@ -182,20 +198,19 @@ do_install () { echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall rm -f ${D}${bindir}/chkdupexe +} - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then +do_install_append_class-target () { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then install -d ${D}${sysconfdir}/pam.d install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l - fi - if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then # Required for "su -" aka "su --login" because # otherwise it uses "other", which has "auth pam_deny.so" # and thus prevents the operation. ln -s su ${D}${sysconfdir}/pam.d/su-l fi } - # nologin causes a conflict with shadow-native # kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir}) do_install_append_class-native () { @@ -205,123 +220,87 @@ do_install_append_class-native () { ALTERNATIVE_PRIORITY = "80" -ALTERNATIVE_${PN} = " \ - dmesg kill more mkswap blockdev pivot_root \ - hexdump last lastb logger mesg renice wall \ - setsid chrt flock utmpdump eject nologin taskset fallocate \ - fsfreeze nsenter cal rev \ -" - -ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" -ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" -ALTERNATIVE_LINK_NAME[more] = "${base_bindir}/more" -ALTERNATIVE_LINK_NAME[mkswap] = "${base_sbindir}/mkswap" +ALTERNATIVE_LINK_NAME[blkid] = "${base_sbindir}/blkid" ALTERNATIVE_LINK_NAME[blockdev] = "${base_sbindir}/blockdev" -ALTERNATIVE_LINK_NAME[pivot_root] = "${base_sbindir}/pivot_root" ALTERNATIVE_LINK_NAME[cal] = "${bindir}/cal" +ALTERNATIVE_LINK_NAME[chrt] = "${bindir}/chrt" +ALTERNATIVE_LINK_NAME[dmesg] = "${base_bindir}/dmesg" ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject" ALTERNATIVE_LINK_NAME[fallocate] = "${bindir}/fallocate" -ALTERNATIVE_LINK_NAME[rev] = "${bindir}/rev" +ALTERNATIVE_LINK_NAME[fdisk] = "${base_sbindir}/fdisk" +ALTERNATIVE_LINK_NAME[flock] = "${bindir}/flock" +ALTERNATIVE_LINK_NAME[fsck] = "${base_sbindir}/fsck" ALTERNATIVE_LINK_NAME[fsfreeze] = "${sbindir}/fsfreeze" +ALTERNATIVE_LINK_NAME[fstrim] = "${base_sbindir}/fstrim" +ALTERNATIVE_LINK_NAME[getopt] = "${base_bindir}/getopt" +ALTERNATIVE_${PN}-agetty = "getty" +ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty" +ALTERNATIVE_TARGET[getty] = "${base_sbindir}/agetty" +ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump" +ALTERNATIVE_LINK_NAME[hwclock] = "${base_sbindir}/hwclock" +ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" +ALTERNATIVE_LINK_NAME[kill] = "${base_bindir}/kill" +ALTERNATIVE_${PN}-last = "last lastb" +ALTERNATIVE_LINK_NAME[last] = "${bindir}/last" +ALTERNATIVE_LINK_NAME[lastb] = "${bindir}/lastb" +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[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[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" +ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" +ALTERNATIVE_LINK_NAME[swapoff] = "${base_sbindir}/swapoff" +ALTERNATIVE_LINK_NAME[swapon] = "${base_sbindir}/swapon" +ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" +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[wall] = "${bindir}/wall" -ALTERNATIVE_${PN}-doc = "mountpoint.1 last.1 lastb.1 mesg.1 wall.1 nologin.8 sulogin.8 utmpdump.1 rfkill.8 kill.1 libblkid.3 blkid.8 findfs.8 fsck.8 uuid.3 eject.1 logger.1" +ALTERNATIVE_${PN}-doc = "\ +blkid.8 eject.1 findfs.8 fsck.8 kill.1 last.1 lastb.1 libblkid.3 logger.1 mesg.1 \ +mountpoint.1 nologin.8 rfkill.8 sulogin.8 utmpdump.1 uuid.3 wall.1\ +" +ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'pam', 'su.1', '', d)}" +ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8" +ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1" +ALTERNATIVE_LINK_NAME[findfs.8] = "${mandir}/man8/findfs.8" +ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" +ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1" ALTERNATIVE_LINK_NAME[last.1] = "${mandir}/man1/last.1" ALTERNATIVE_LINK_NAME[lastb.1] = "${mandir}/man1/lastb.1" +ALTERNATIVE_LINK_NAME[libblkid.3] = "${mandir}/man3/libblkid.3" +ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" ALTERNATIVE_LINK_NAME[mesg.1] = "${mandir}/man1/mesg.1" ALTERNATIVE_LINK_NAME[mountpoint.1] = "${mandir}/man1/mountpoint.1" ALTERNATIVE_LINK_NAME[nologin.8] = "${mandir}/man8/nologin.8" ALTERNATIVE_LINK_NAME[rfkill.8] = "${mandir}/man8/rfkill.8" +ALTERNATIVE_LINK_NAME[setpriv.1] = "${mandir}/man1/setpriv.1" +ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1" ALTERNATIVE_LINK_NAME[sulogin.8] = "${mandir}/man8/sulogin.8" ALTERNATIVE_LINK_NAME[utmpdump.1] = "${mandir}/man1/utmpdump.1" -ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" -ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1" -ALTERNATIVE_LINK_NAME[libblkid.3] = "${mandir}/man3/libblkid.3" -ALTERNATIVE_LINK_NAME[blkid.8] = "${mandir}/man8/blkid.8" -ALTERNATIVE_LINK_NAME[findfs.8] = "${mandir}/man8/findfs.8" -ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" ALTERNATIVE_LINK_NAME[uuid.3] = "${mandir}/man3/uuid.3" -ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1" -ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1" - -ALTERNATIVE_util-linux-hwclock = "hwclock" -ALTERNATIVE_LINK_NAME[hwclock] = "${base_sbindir}/hwclock" - -ALTERNATIVE_util-linux-fdisk = "fdisk" -ALTERNATIVE_LINK_NAME[fdisk] = "${base_sbindir}/fdisk" - -ALTERNATIVE_util-linux-fstrim = "fstrim" -ALTERNATIVE_LINK_NAME[fstrim] = "${base_sbindir}/fstrim" - -ALTERNATIVE_util-linux-agetty = "getty" -ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty" -ALTERNATIVE_TARGET[getty] = "${base_sbindir}/agetty" - -ALTERNATIVE_util-linux-mount = "mount" -ALTERNATIVE_LINK_NAME[mount] = "${base_bindir}/mount" - -ALTERNATIVE_util-linux-umount = "umount" -ALTERNATIVE_LINK_NAME[umount] = "${base_bindir}/umount" - -ALTERNATIVE_util-linux-readprofile = "readprofile" -ALTERNATIVE_LINK_NAME[readprofile] = "${sbindir}/readprofile" - -ALTERNATIVE_util-linux-losetup = "losetup" -ALTERNATIVE_LINK_NAME[losetup] = "${base_sbindir}/losetup" - -ALTERNATIVE_util-linux-swaponoff = "swapoff swapon" -ALTERNATIVE_LINK_NAME[swapoff] = "${base_sbindir}/swapoff" -ALTERNATIVE_LINK_NAME[swapon] = "${base_sbindir}/swapon" - -ALTERNATIVE_util-linux-fsck = "fsck" -ALTERNATIVE_LINK_NAME[fsck] = "${base_sbindir}/fsck" - -ALTERNATIVE_util-linux-blkid = "blkid" -ALTERNATIVE_LINK_NAME[blkid] = "${base_sbindir}/blkid" - -ALTERNATIVE_util-linux-rfkill = "rfkill" -ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill" - -ALTERNATIVE_util-linux-getopt = "getopt" -ALTERNATIVE_LINK_NAME[getopt] = "${base_bindir}/getopt" - -ALTERNATIVE_util-linux-sulogin = "sulogin" -ALTERNATIVE_LINK_NAME[sulogin] = "${base_sbindir}/sulogin" - -ALTERNATIVE_util-linux-mountpoint = "mountpoint" -ALTERNATIVE_LINK_NAME[mountpoint] = "${base_bindir}/mountpoint" - -ALTERNATIVE_util-linux-unshare = "unshare" -ALTERNATIVE_LINK_NAME[unshare] = "${bindir}/unshare" - -ALTERNATIVE_util-linux-ionice = "ionice" -ALTERNATIVE_LINK_NAME[ionice] = "${bindir}/ionice" +ALTERNATIVE_LINK_NAME[wall.1] = "${mandir}/man1/wall.1" -ALTERNATIVE_util-linux-switch-root = "switch_root" -ALTERNATIVE_LINK_NAME[switch_root] = "${base_sbindir}/switch_root" BBCLASSEXTEND = "native nativesdk" -python do_package_prepend () { - if '--enable-su' in d.getVar('EXTRA_OECONF').split(): - d.appendVar(d.expand('ALTERNATIVE_${PN}'), ' su') - d.appendVar(d.expand('ALTERNATIVE_${PN}-doc'), ' su.1') - - d.setVarFlag('ALTERNATIVE_LINK_NAME', "su", d.expand('${base_bindir}/su')) - d.setVarFlag('ALTERNATIVE_LINK_NAME', "su.1", d.expand('${mandir}/man1/su.1')) -} - -python populate_packages_prepend() { - do_split_packages(d, '${base_libdir}', '^lib(.*)\.so\..*$', - output_pattern='util-linux-lib%s', - description='util-linux lib%s', - extra_depends='', prepend=True, allow_links=True) -} - -RDEPENDS_${PN}-bash-completion += "util-linux-lsblk" -RDEPENDS_${PN}-ptest = "bash grep coreutils which util-linux-blkid util-linux-fsck btrfs-tools" - +PTEST_BINDIR = "1" do_compile_ptest() { oe_runmake buildtest-TESTS } @@ -350,8 +329,12 @@ do_install_ptest() { '/^\tif[[:space:]]\[[[:space:]]![[:space:]]-x[[:space:]]"$1"/s|$1|`which $1 2>/dev/null`|g' \ ${D}${PTEST_PATH}/tests/functions.sh - # "kill -L" behaves differently than "/bin/kill -L" so we need an additional fix + # Running "kill" without the the complete path would use the shell's built-in kill sed -i -e \ - '/^TS_CMD_KILL/ s|kill|/bin/kill|g' \ + '/^TS_CMD_KILL/ s|kill|${PTEST_PATH}/bin/kill|g' \ ${D}${PTEST_PATH}/tests/commands.sh + + + sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest + } diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch b/external/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch new file mode 100644 index 00000000..0672c354 --- /dev/null +++ b/external/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-fix-for-glibc-2.31-settimeofday.patch @@ -0,0 +1,112 @@ +From ee85d3967ea09b215fcea5efdd90bbbf5e74a681 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 19 Feb 2020 15:50:47 +0100 +Subject: [PATCH] hwclock: fix for glibc 2.31 settimeofday() + +glibc announce: + ... settimeofday can no longer be used to set the time and the offset + simultaneously. If both of its two arguments are non-null, the call + will fail (setting errno to EINVAL). + +It means we need to call settimeofday(NULL, tz) and settimeofday(tv, NULL). + +Unfortunately, settimeofday(NULL, tz) has very special warp-clock +semantic if used as the very first settimeofday() call. It means we +have to be sure that we do not touch warp-clock if we need only need +to modify system TZ. So, let's always call settimeofday(NULL, 0) +before settimeofday(NULL, tz) for UTC rtc mode when modify system TZ. + +Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/ee85d3967ea09b215fcea5efdd90bbbf5e74a681] + +CC: J William Piggott +Signed-off-by: Karel Zak +Addresses: https://github.com/karelzak/util-linux/issues/957 +Signed-off-by: Liwei Song +--- + sys-utils/hwclock.c | 49 ++++++++++++++++++++++++++------------------- + 1 file changed, 28 insertions(+), 21 deletions(-) + +diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c +index e736da7179f8..16576bc186ff 100644 +--- a/sys-utils/hwclock.c ++++ b/sys-utils/hwclock.c +@@ -658,6 +658,9 @@ display_time(struct timeval hwctime) + * PCIL: persistent_clock_is_local, sets the "11 minute mode" timescale. + * firsttime: locks the warp_clock function (initialized to 1 at boot). + * ++ * Note that very first settimeofday(NULL, tz) modifies warp-clock as well as ++ * system TZ. ++ * + * +---------------------------------------------------------------------------+ + * | op | RTC scale | settimeofday calls | + * |---------|-----------|-----------------------------------------------------| +@@ -675,41 +678,45 @@ set_system_clock(const struct hwclock_control *ctl, + struct tm broken; + int minuteswest; + int rc = 0; +- const struct timezone tz_utc = { 0 }; + + localtime_r(&newtime.tv_sec, &broken); + minuteswest = -get_gmtoff(&broken) / 60; + + if (ctl->verbose) { +- if (ctl->hctosys && !ctl->universal) +- printf(_("Calling settimeofday(NULL, %d) to set " +- "persistent_clock_is_local.\n"), minuteswest); +- if (ctl->systz && ctl->universal) ++ if (ctl->universal) + puts(_("Calling settimeofday(NULL, 0) " +- "to lock the warp function.")); ++ "to lock the warp function.")); ++ else ++ printf(_("Calling settimeofday(NULL, %d) to set " ++ "persistent_clock_is_local and " ++ "the kernel timezone.\n"), minuteswest); ++ ++ if (ctl->universal && minuteswest) ++ printf(_("Calling settimeofday(NULL, %d) to set " ++ "the kernel timezone.\n"), minuteswest); ++ + if (ctl->hctosys) +- printf(_("Calling settimeofday(%ld.%06ld, %d)\n"), +- newtime.tv_sec, newtime.tv_usec, minuteswest); +- else { +- printf(_("Calling settimeofday(NULL, %d) "), minuteswest); +- if (ctl->universal) +- puts(_("to set the kernel timezone.")); +- else +- puts(_("to warp System time.")); +- } ++ printf(_("Calling settimeofday(%ld.%06ld, 0) to set " ++ "the kernel time.\n"), newtime.tv_sec, newtime.tv_usec); + } + + if (!ctl->testing) { ++ const struct timezone tz_utc = { 0 }; + const struct timezone tz = { minuteswest }; + +- if (ctl->hctosys && !ctl->universal) /* set PCIL */ ++ /* warp-clock */ ++ if (ctl->universal) ++ rc = settimeofday(NULL, &tz_utc); /* lock to UTC */ ++ else ++ rc = settimeofday(NULL, &tz); /* set PCIL and TZ */ ++ ++ /* set timezone */ ++ if (!rc && ctl->universal && minuteswest) + rc = settimeofday(NULL, &tz); +- if (ctl->systz && ctl->universal) /* lock warp_clock */ +- rc = settimeofday(NULL, &tz_utc); ++ ++ /* set time */ + if (!rc && ctl->hctosys) +- rc = settimeofday(&newtime, &tz); +- else if (!rc) +- rc = settimeofday(NULL, &tz); ++ rc = settimeofday(&newtime, NULL); + + if (rc) { + warn(_("settimeofday() failed")); +-- +2.17.1 + diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/0001-include-cleanup-pidfd-inckudes.patch b/external/poky/meta/recipes-core/util-linux/util-linux/0001-include-cleanup-pidfd-inckudes.patch new file mode 100644 index 00000000..0ef6fb4e --- /dev/null +++ b/external/poky/meta/recipes-core/util-linux/util-linux/0001-include-cleanup-pidfd-inckudes.patch @@ -0,0 +1,42 @@ +From 0a4035ff2e4fd5b5ae0cf8f8665696c2aff53b75 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 10 Mar 2020 11:43:16 +0100 +Subject: [PATCH] include: cleanup pidfd inckudes + +Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/0a4035ff2e4fd5b5ae0cf8f8665696c2aff53b75] + +Signed-off-by: Karel Zak +Signed-off-by: Benjamin Fair +--- + include/pidfd-utils.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h +index 0baedd2c9..4a6c3a604 100644 +--- a/include/pidfd-utils.h ++++ b/include/pidfd-utils.h +@@ -3,10 +3,10 @@ + + #if defined(__linux__) + # include +-# if defined(SYS_pidfd_send_signal) ++# if defined(SYS_pidfd_send_signal) && defined(SYS_pidfd_open) + # include + +-# ifndef HAVE_PIDFD_OPEN ++# ifndef HAVE_PIDFD_SEND_SIGNAL + static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + unsigned int flags) + { +@@ -14,7 +14,7 @@ static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + } + # endif + +-# ifndef HAVE_PIDFD_SEND_SIGNAL ++# ifndef HAVE_PIDFD_OPEN + static inline int pidfd_open(pid_t pid, unsigned int flags) + { + return syscall(SYS_pidfd_open, pid, flags); +-- +2.26.1.301.g55bc3eb7cb9-goog + diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch b/external/poky/meta/recipes-core/util-linux/util-linux/0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch new file mode 100644 index 00000000..e43e1287 --- /dev/null +++ b/external/poky/meta/recipes-core/util-linux/util-linux/0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch @@ -0,0 +1,64 @@ +From 3cfde0370d3a8949df0c5bcf447cec6692910ed2 Mon Sep 17 00:00:00 2001 +From: Sami Kerola +Date: Sat, 15 Feb 2020 21:12:50 +0000 +Subject: [PATCH] kill: include sys/types.h before checking + SYS_pidfd_send_signal + +Including sys/types.h must happen before SYS_pidfd_send_signal is checked, +because that header defines variable in normal conditions. When sys/types.h +does not have SYS_pidfd_send_signal then fallback is defined in config.h +that is included by default, and has therefore worked fine before and after +this change. + +Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/3cfde0370d3a8949df0c5bcf447cec6692910ed2] + +Signed-off-by: Sami Kerola +Signed-off-by: Benjamin Fair +--- + include/pidfd-utils.h | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h +index 593346576..0baedd2c9 100644 +--- a/include/pidfd-utils.h ++++ b/include/pidfd-utils.h +@@ -1,26 +1,28 @@ + #ifndef UTIL_LINUX_PIDFD_UTILS + #define UTIL_LINUX_PIDFD_UTILS + +-#if defined(__linux__) && defined(SYS_pidfd_send_signal) +-# include ++#if defined(__linux__) + # include ++# if defined(SYS_pidfd_send_signal) ++# include + +-# ifndef HAVE_PIDFD_OPEN ++# ifndef HAVE_PIDFD_OPEN + static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, + unsigned int flags) + { + return syscall(SYS_pidfd_send_signal, pidfd, sig, info, flags); + } +-# endif ++# endif + +-# ifndef HAVE_PIDFD_SEND_SIGNAL ++# ifndef HAVE_PIDFD_SEND_SIGNAL + static inline int pidfd_open(pid_t pid, unsigned int flags) + { + return syscall(SYS_pidfd_open, pid, flags); + } +-# endif ++# endif + +-# define UL_HAVE_PIDFD 1 ++# define UL_HAVE_PIDFD 1 + +-#endif /* __linux__ && SYS_pidfd_send_signal */ ++# endif /* SYS_pidfd_send_signal */ ++#endif /* __linux__ */ + #endif /* UTIL_LINUX_PIDFD_UTILS */ +-- +2.26.1.301.g55bc3eb7cb9-goog + diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch b/external/poky/meta/recipes-core/util-linux/util-linux/0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch new file mode 100644 index 00000000..911f70bc --- /dev/null +++ b/external/poky/meta/recipes-core/util-linux/util-linux/0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch @@ -0,0 +1,137 @@ +From 00e53f17c8462cb34ece08cc10db60a7da29a305 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 4 Feb 2020 15:11:19 +0100 +Subject: [PATCH] libfdisk: (script) accept sector-size, ignore unknown headers + +- add sector-size between supported headers (already in --dump output) + +- report unknown headers by -ENOTSUP + +- ignore ENOTSUP in sfdisk (but print warning) and in fdisk_script_read_file() + +Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/00e53f17c8462cb34ece08cc10db60a7da29a305] + +Addresses: https://github.com/karelzak/util-linux/issues/949 +Signed-off-by: Karel Zak +Signed-off-by: Pierre-Jean Texier +--- + disk-utils/sfdisk.c | 6 +++++- + libfdisk/src/script.c | 49 ++++++++++++++++++++++++++----------------------- + 2 files changed, 31 insertions(+), 24 deletions(-) + +diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c +index bb6e1c6..c0bea70 100644 +--- a/disk-utils/sfdisk.c ++++ b/disk-utils/sfdisk.c +@@ -1782,7 +1782,11 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) + } + + rc = fdisk_script_read_line(dp, stdin, buf, sizeof(buf)); +- if (rc < 0) { ++ if (rc == -ENOTSUP) { ++ buf[sizeof(buf) - 1] = '\0'; ++ fdisk_warnx(sf->cxt, _("Unknown script header '%s' -- ignore."), buf); ++ continue; ++ } else if (rc < 0) { + DBG(PARSE, ul_debug("script parsing failed, trying sfdisk specific commands")); + buf[sizeof(buf) - 1] = '\0'; + rc = loop_control_commands(sf, dp, buf); +diff --git a/libfdisk/src/script.c b/libfdisk/src/script.c +index a21771b..d3e67fa 100644 +--- a/libfdisk/src/script.c ++++ b/libfdisk/src/script.c +@@ -805,8 +805,12 @@ static inline int is_header_line(const char *s) + /* parses ": value", note modifies @s*/ + static int parse_line_header(struct fdisk_script *dp, char *s) + { +- int rc = -EINVAL; ++ size_t i; + char *name, *value; ++ static const char *supported[] = { ++ "label", "unit", "label-id", "device", "grain", ++ "first-lba", "last-lba", "table-length", "sector-size" ++ }; + + DBG(SCRIPT, ul_debugobj(dp, " parse header '%s'", s)); + +@@ -816,7 +820,7 @@ static int parse_line_header(struct fdisk_script *dp, char *s) + name = s; + value = strchr(s, ':'); + if (!value) +- goto done; ++ return -EINVAL; + *value = '\0'; + value++; + +@@ -825,32 +829,30 @@ static int parse_line_header(struct fdisk_script *dp, char *s) + ltrim_whitespace((unsigned char *) value); + rtrim_whitespace((unsigned char *) value); + ++ if (!*name || !*value) ++ return -EINVAL; ++ ++ /* check header name */ ++ for (i = 0; i < ARRAY_SIZE(supported); i++) { ++ if (strcmp(name, supported[i]) == 0) ++ break; ++ } ++ if (i == ARRAY_SIZE(supported)) ++ return -ENOTSUP; ++ ++ /* header specific actions */ + if (strcmp(name, "label") == 0) { + if (dp->cxt && !fdisk_get_label(dp->cxt, value)) +- goto done; /* unknown label name */ ++ return -EINVAL; /* unknown label name */ + dp->force_label = 1; ++ + } else if (strcmp(name, "unit") == 0) { + if (strcmp(value, "sectors") != 0) +- goto done; /* only "sectors" supported */ +- } else if (strcmp(name, "label-id") == 0 +- || strcmp(name, "device") == 0 +- || strcmp(name, "grain") == 0 +- || strcmp(name, "first-lba") == 0 +- || strcmp(name, "last-lba") == 0 +- || strcmp(name, "table-length") == 0) { +- ; /* whatever is possible */ +- } else +- goto done; /* unknown header */ ++ return -EINVAL; /* only "sectors" supported */ + +- if (*name && *value) +- rc = fdisk_script_set_header(dp, name, value); +-done: +- if (rc) +- DBG(SCRIPT, ul_debugobj(dp, "header parse error: " +- "[rc=%d, name='%s', value='%s']", +- rc, name, value)); +- return rc; ++ } + ++ return fdisk_script_set_header(dp, name, value); + } + + /* returns zero terminated string with next token and @str is updated */ +@@ -1363,7 +1365,8 @@ int fdisk_script_set_fgets(struct fdisk_script *dp, + * + * Reads next line into dump. + * +- * Returns: 0 on success, <0 on error, 1 when nothing to read. ++ * Returns: 0 on success, <0 on error, 1 when nothing to read. For unknown headers ++ * returns -ENOTSUP, it's usually safe to ignore this error. + */ + int fdisk_script_read_line(struct fdisk_script *dp, FILE *f, char *buf, size_t bufsz) + { +@@ -1428,7 +1431,7 @@ int fdisk_script_read_file(struct fdisk_script *dp, FILE *f) + + while (!feof(f)) { + rc = fdisk_script_read_line(dp, f, buf, sizeof(buf)); +- if (rc) ++ if (rc && rc != -ENOTSUP) + break; + } + +-- +2.7.4 + diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/run-ptest b/external/poky/meta/recipes-core/util-linux/util-linux/run-ptest index fbc2f9b5..e135ee58 100644 --- a/external/poky/meta/recipes-core/util-linux/util-linux/run-ptest +++ b/external/poky/meta/recipes-core/util-linux/util-linux/run-ptest @@ -1,5 +1,18 @@ #!/bin/sh + +# When udevd (from eudev) is running most eject/mount tests will fail because +# of automount. We need to stop udevd before executing util-linux's tests. +# The systemd-udevd daemon doesn't change the outcome of util-linux's tests. +UDEV_PID="`pidof "@base_sbindir@/udevd"`" +if [ "x$UDEV_PID" != "x" ]; then + /etc/init.d/udev stop +fi + +current_path=$(readlink -f $0) +export bindir=$(dirname $current_path) +export PATH=$bindir/bin:$PATH + cd tests || exit 1 comps=$(find ts/ -type f -perm -111 -regex ".*/[^\.~]*" | sort) @@ -16,10 +29,15 @@ res=0 count=0 for ts in $comps; do - $ts | sed '{ + $ts | sed -u '{ s/^\(.*\):\(.*\) \.\.\. OK$/PASS: \1:\2/ s/^\(.*\):\(.*\) \.\.\. FAILED \(.*\)$/FAIL: \1:\2 \3/ s/^\(.*\):\(.*\) \.\.\. SKIPPED \(.*\)$/SKIP: \1:\2 \3/ }' done + +if [ "x$UDEV_PID" != "x" ]; then + /etc/init.d/udev start +fi + diff --git a/external/poky/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch b/external/poky/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch deleted file mode 100644 index 68bf22de..00000000 --- a/external/poky/meta/recipes-core/util-linux/util-linux/util-linux-native-qsort.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f220d809be1baa654503bf6ff52f3630b0d7015c Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Wed, 26 Mar 2014 01:30:29 +0000 -Subject: [PATCH] sun.c: use qsort() to instead of qsort_r() - -qsort_r() was added to glibc in version 2.8, so there is no qsort_r() on -the host like CentOS 5.x. - -Upstream-Status: Inappropriate [Other] - -Signed-off-by: Robert Yang ---- - libfdisk/src/sun.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -Index: util-linux-2.24.2/libfdisk/src/sun.c -=================================================================== ---- util-linux-2.24.2.orig/libfdisk/src/sun.c -+++ util-linux-2.24.2/libfdisk/src/sun.c -@@ -431,10 +431,9 @@ static int sun_verify_disklabel(struct f - } - verify_sun_starts = starts; - -- qsort_r(array,ARRAY_SIZE(array),sizeof(array[0]), -- (int (*)(const void *,const void *,void *)) verify_sun_cmp, -- verify_sun_starts); -- -+ qsort(array,ARRAY_SIZE(array),sizeof(array[0]), -+ (int (*)(const void *,const void *)) verify_sun_cmp); -+ - if (array[0] == -1) { - fdisk_info(cxt, _("No partitions defined.")); - return 0; diff --git a/external/poky/meta/recipes-core/util-linux/util-linux_2.32.1.bb b/external/poky/meta/recipes-core/util-linux/util-linux_2.32.1.bb deleted file mode 100644 index a616d85b..00000000 --- a/external/poky/meta/recipes-core/util-linux/util-linux_2.32.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -MAJOR_VERSION = "2.32" -require util-linux.inc - -# To support older hosts, we need to patch and/or revert -# some upstream changes. Only do this for native packages. -OLDHOST = "" -OLDHOST_class-native = "file://util-linux-native-qsort.patch" - -SRC_URI += "file://configure-sbindir.patch \ - file://runuser.pamd \ - file://runuser-l.pamd \ - ${OLDHOST} \ - file://ptest.patch \ - file://run-ptest \ - file://display_testname_for_subtest.patch \ - file://avoid_parallel_tests.patch \ -" -SRC_URI[md5sum] = "9e5b1b8c1dc99455bdb6b462cf9436d9" -SRC_URI[sha256sum] = "86e6707a379c7ff5489c218cfaf1e3464b0b95acf7817db0bc5f179e356a67b2" - -CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms" - -EXTRA_OECONF_class-native = "${SHARED_EXTRA_OECONF} \ - --disable-use-tty-group \ -" -EXTRA_OECONF_class-nativesdk = "${SHARED_EXTRA_OECONF} \ - --disable-use-tty-group \ -" diff --git a/external/poky/meta/recipes-core/util-linux/util-linux_2.35.1.bb b/external/poky/meta/recipes-core/util-linux/util-linux_2.35.1.bb new file mode 100644 index 00000000..516b7838 --- /dev/null +++ b/external/poky/meta/recipes-core/util-linux/util-linux_2.35.1.bb @@ -0,0 +1,16 @@ +require util-linux.inc + +SRC_URI += "file://configure-sbindir.patch \ + file://runuser.pamd \ + file://runuser-l.pamd \ + file://ptest.patch \ + file://run-ptest \ + file://display_testname_for_subtest.patch \ + file://avoid_parallel_tests.patch \ + file://0001-hwclock-fix-for-glibc-2.31-settimeofday.patch \ + file://0001-libfdisk-script-accept-sector-size-ignore-unknown-he.patch \ + file://0001-kill-include-sys-types.h-before-checking-SYS_pidfd_s.patch \ + file://0001-include-cleanup-pidfd-inckudes.patch \ +" +SRC_URI[md5sum] = "7f64882f631225f0295ca05080cee1bf" +SRC_URI[sha256sum] = "d9de3edd287366cd908e77677514b9387b22bc7b88f45b83e1922c3597f1d7f9" diff --git a/external/poky/meta/recipes-core/volatile-binds/files/mount-copybind b/external/poky/meta/recipes-core/volatile-binds/files/mount-copybind index fddf5200..e32e6753 100755 --- a/external/poky/meta/recipes-core/volatile-binds/files/mount-copybind +++ b/external/poky/meta/recipes-core/volatile-binds/files/mount-copybind @@ -42,14 +42,14 @@ if [ -d "$mountpoint" ]; then if ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir" "$mountpoint" > /dev/null 2>&1; then if [ "$specdir_existed" != "yes" ]; then - cp -pPR "$mountpoint"/. "$spec/" + cp -aPR "$mountpoint"/. "$spec/" fi mount -o "bind$options" "$spec" "$mountpoint" fi elif [ -f "$mountpoint" ]; then if [ ! -f "$spec" ]; then - cp -pP "$mountpoint" "$spec" + cp -aP "$mountpoint" "$spec" fi mount -o "bind$options" "$spec" "$mountpoint" diff --git a/external/poky/meta/recipes-core/volatile-binds/volatile-binds.bb b/external/poky/meta/recipes-core/volatile-binds/volatile-binds.bb index d861a71a..b273293e 100644 --- a/external/poky/meta/recipes-core/volatile-binds/volatile-binds.bb +++ b/external/poky/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/external/poky/meta/recipes-devtools/apt/apt-native.inc b/external/poky/meta/recipes-devtools/apt/apt-native.inc index ef232c1e..d8267863 100644 --- a/external/poky/meta/recipes-devtools/apt/apt-native.inc +++ b/external/poky/meta/recipes-devtools/apt/apt-native.inc @@ -7,8 +7,6 @@ USE_NLS = "yes" SRC_URI += "file://db_linking_hack.patch \ file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \ - file://0001-remove-Wsuggest-attribute-from-CFLAGS.patch \ - file://0001-fix-the-gcc-version-check.patch \ " python do_install () { diff --git a/external/poky/meta/recipes-devtools/apt/apt-native_1.2.24.bb b/external/poky/meta/recipes-devtools/apt/apt-native_1.2.24.bb deleted file mode 100644 index 5b16b503..00000000 --- a/external/poky/meta/recipes-devtools/apt/apt-native_1.2.24.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/external/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb b/external/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb new file mode 100644 index 00000000..5b16b503 --- /dev/null +++ b/external/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb @@ -0,0 +1,7 @@ +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/external/poky/meta/recipes-devtools/apt/apt-package.inc b/external/poky/meta/recipes-devtools/apt/apt-package.inc index 6a01f99c..922f739d 100644 --- a/external/poky/meta/recipes-devtools/apt/apt-package.inc +++ b/external/poky/meta/recipes-devtools/apt/apt-package.inc @@ -35,6 +35,7 @@ FILES_${PN} = "${bindir}/apt-cdrom ${bindir}/apt-get \ ${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" @@ -83,7 +84,7 @@ do_install () { install -m 0644 include/apt-pkg/*.h ${D}${includedir}/apt-pkg/ install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/ + 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/ diff --git a/external/poky/meta/recipes-devtools/apt/apt.inc b/external/poky/meta/recipes-devtools/apt/apt.inc index 50f22c89..13f5969f 100644 --- a/external/poky/meta/recipes-devtools/apt/apt.inc +++ b/external/poky/meta/recipes-devtools/apt/apt.inc @@ -1,8 +1,11 @@ SUMMARY = "Advanced front-end for dpkg" +DESCRIPTION = "Provides command-line tools for searching and managing as well \ +as querying information about packages as a low-level access to all features \ +of the libapt-pkg library." LICENSE = "GPLv2.0+" SECTION = "base" -SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/apt/1.2.24/${BPN}_${PV}.tar.xz \ +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 \ @@ -13,16 +16,17 @@ SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/apt/1.2.24 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] = "ce8f9ab11f4fd0a08ec73eaffd75c8f0" -SRC_URI[sha256sum] = "fa1311a9ce00e72379a0a3bc6d240ba30c0968cfbbb3472859e50b99e24e9598" +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 +inherit autotools gettext useradd upstream-version-is-even EXTRA_AUTORECONF = "--exclude=autopoint,autoheader" diff --git a/external/poky/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch b/external/poky/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch new file mode 100644 index 00000000..e4a8faa2 --- /dev/null +++ b/external/poky/meta/recipes-devtools/apt/apt/0001-Include-array.h-for-std-array.patch @@ -0,0 +1,35 @@ +From 4d64ec843185bf6fd1b85c3a6a4c4e3c968c8ab1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 20 Jan 2019 18:56:58 -0800 +Subject: [PATCH] Include 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' + std::array c_weekdays = {{ "sun", "mon", "tue", "wed", "thu", "fri", "sat" }}; + +Signed-off-by: Khem Raj +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 + #include + ++#include + #include + #include + #include +-- +2.20.1 + diff --git a/external/poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch b/external/poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch deleted file mode 100644 index 3ac92462..00000000 --- a/external/poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 53c5d0982f03fd0e24c4195d6e1e42b9ade9d500 Mon Sep 17 00:00:00 2001 -From: Roy Li -Date: Wed, 27 May 2015 14:30:28 +0800 -Subject: [PATCH] fix the gcc version check - -Upstream-Status: pending - -"GCC diagnostic push" is gcc 4.6 feature, gcc 4.4.7 on centos did not know it - -Signed-off-by: Roy Li ---- - apt-pkg/contrib/macros.h | 2 +- - apt-pkg/deb/debsrcrecords.cc | 4 ++-- - apt-pkg/srcrecords.cc | 4 ++-- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/apt-pkg/contrib/macros.h b/apt-pkg/contrib/macros.h -index 2727fd8..0ecae50 100644 ---- a/apt-pkg/contrib/macros.h -+++ b/apt-pkg/contrib/macros.h -@@ -136,7 +136,7 @@ - #endif - #endif - --#if __GNUC__ >= 4 -+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__) - #define APT_IGNORE_DEPRECATED_PUSH \ - _Pragma("GCC diagnostic push") \ - _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") -diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc -index e8295de..40160b2 100644 ---- a/apt-pkg/deb/debsrcrecords.cc -+++ b/apt-pkg/deb/debsrcrecords.cc -@@ -139,13 +139,13 @@ bool debSrcRecordParser::Files(std::vector &F) - for (std::vector::const_iterator f2 = F2.begin(); f2 != F2.end(); ++f2) - { - pkgSrcRecords::File2 f; --#if __GNUC__ >= 4 -+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wdeprecated-declarations" - #endif - f.MD5Hash = f2->MD5Hash; - f.Size = f2->Size; --#if __GNUC__ >= 4 -+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__) - #pragma GCC diagnostic pop - #endif - f.Path = f2->Path; -diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc -index 53d7e60..1484828 100644 ---- a/apt-pkg/srcrecords.cc -+++ b/apt-pkg/srcrecords.cc -@@ -157,7 +157,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector &F2)/*{{{*/ - for (std::vector::const_iterator f = F.begin(); f != F.end(); ++f) - { - pkgSrcRecords::File2 f2; --#if __GNUC__ >= 4 -+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wdeprecated-declarations" - #endif -@@ -165,7 +165,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector &F2)/*{{{*/ - f2.Size = f->Size; - f2.Hashes.push_back(HashString("MD5Sum", f->MD5Hash)); - f2.FileSize = f->Size; --#if __GNUC__ >= 4 -+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__) - #pragma GCC diagnostic pop - #endif - f2.Path = f->Path; --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch b/external/poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch deleted file mode 100644 index 47870e3c..00000000 --- a/external/poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 9fdf50d63df08ee65e7d8e62c35f19ac4841bca9 Mon Sep 17 00:00:00 2001 -From: Roy Li -Date: Wed, 27 May 2015 09:48:45 +0800 -Subject: [PATCH] remove Wsuggest-attribute from CXXFLAGS - -Upstream-Status: Inappropriate - -Wsuggest-attribute is GCC 4.6 feature, centos6 is using GCC -4.4.7 which unknown this flag, so remove it from CXXFLAGS - -Signed-off-by: Roy Li ---- - buildlib/environment.mak.in | 1 - - test/libapt/makefile | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in -index 9620722..c344d01 100644 ---- a/buildlib/environment.mak.in -+++ b/buildlib/environment.mak.in -@@ -14,7 +14,6 @@ CXXFLAGS+= @CXXFLAGS@ -Wall -Wextra - CXXFLAGS+= -Wcast-align -Wlogical-op -Wredundant-decls -Wmissing-declarations -Wunsafe-loop-optimizations - CXXFLAGS+= -Wctor-dtor-privacy -Wdisabled-optimization -Winit-self -Wmissing-include-dirs -Wnoexcept -Wsign-promo -Wundef - # suggests methods which already have such an attribute --#CXXFLAGS+= -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn - # sanitize options to be enabled for testing - #CXXFLAGS+= -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr - # a bit too pedantic to be run by default -diff --git a/test/libapt/makefile b/test/libapt/makefile -index 5ff9cf6..c5b5190 100644 ---- a/test/libapt/makefile -+++ b/test/libapt/makefile -@@ -40,7 +40,6 @@ CXXFLAGS += -pthread - # disable some flags for gtest again - CXXFLAGS+= -Wno-missing-declarations - CXXFLAGS+= -Wno-missing-field-initializers --CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn - CXXFLAGS+= -Wno-undef - - # All Google Test headers. Usually you shouldn't change this definition. --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/apt/apt_1.2.24.bb b/external/poky/meta/recipes-devtools/apt/apt_1.2.24.bb deleted file mode 100644 index ae0bce93..00000000 --- a/external/poky/meta/recipes-devtools/apt/apt_1.2.24.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/external/poky/meta/recipes-devtools/apt/apt_1.2.31.bb b/external/poky/meta/recipes-devtools/apt/apt_1.2.31.bb new file mode 100644 index 00000000..ae0bce93 --- /dev/null +++ b/external/poky/meta/recipes-devtools/apt/apt_1.2.31.bb @@ -0,0 +1,20 @@ +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/external/poky/meta/recipes-devtools/apt/files/apt.conf b/external/poky/meta/recipes-devtools/apt/files/apt.conf index 03351356..c95a5b07 100644 --- a/external/poky/meta/recipes-devtools/apt/files/apt.conf +++ b/external/poky/meta/recipes-devtools/apt/files/apt.conf @@ -39,4 +39,4 @@ APT }; }; -DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-debsig"}; +DPkg::Options {"--root=#ROOTFS#";"--admindir=#ROOTFS#/var/lib/dpkg";"--force-all";"--no-force-overwrite";"--no-debsig"}; diff --git a/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb b/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb deleted file mode 100644 index 7d62e52a..00000000 --- a/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2018.03.13.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "a collection of freely re-usable Autoconf macros" -HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/" -SECTION = "devel" -LICENSE = "GPL-3.0-with-autoconf-exception" -LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ - file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515" - -SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "46b13a5936372297b6d49980327a3c35" -SRC_URI[sha256sum] = "6175f90d9fa64c4d939bdbb3e8511ae0ee2134863a2c7bf8d9733819efa6e159" - -inherit autotools allarch - -PACKAGES = "${PN} ${PN}-doc" - -FILES_${PN} += "${datadir}/aclocal" - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb b/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb new file mode 100644 index 00000000..13593d7b --- /dev/null +++ b/external/poky/meta/recipes-devtools/autoconf-archive/autoconf-archive_2019.01.06.bb @@ -0,0 +1,18 @@ +SUMMARY = "a collection of freely re-usable Autoconf macros" +HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/" +SECTION = "devel" +LICENSE = "GPL-3.0-with-autoconf-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \ + file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515" + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "d46413c8b00a125b1529bae385bbec55" +SRC_URI[sha256sum] = "17195c833098da79de5778ee90948f4c5d90ed1a0cf8391b4ab348e2ec511e3f" + +inherit autotools allarch texinfo + +PACKAGES = "${PN} ${PN}-doc" + +FILES_${PN} += "${datadir}/aclocal" + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/autoconf/autoconf.inc b/external/poky/meta/recipes-devtools/autoconf/autoconf.inc index b82af5a5..2c87bf82 100644 --- a/external/poky/meta/recipes-devtools/autoconf/autoconf.inc +++ b/external/poky/meta/recipes-devtools/autoconf/autoconf.inc @@ -22,10 +22,14 @@ RDEPENDS_${PN} = "m4 gnu-config \ perl-module-file-find \ perl-module-file-glob \ perl-module-file-path \ + perl-module-file-spec \ + perl-module-file-spec-unix \ perl-module-file-stat \ perl-module-getopt-long \ perl-module-io-file \ + perl-module-overloading \ perl-module-posix \ + perl-module-symbol \ perl-module-thread-queue \ perl-module-threads \ " @@ -46,14 +50,20 @@ RDEPENDS_${PN}_class-nativesdk = "\ nativesdk-perl-module-file-find \ nativesdk-perl-module-file-glob \ nativesdk-perl-module-file-path \ + nativesdk-perl-module-file-spec \ + nativesdk-perl-module-file-spec-unix \ 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-symbol \ nativesdk-perl-module-thread-queue \ nativesdk-perl-module-threads \ " + + SRC_URI = "${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \ file://program_prefix.patch" diff --git a/external/poky/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch b/external/poky/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch index fc37236b..b2d7dc0e 100644 --- a/external/poky/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch +++ b/external/poky/meta/recipes-devtools/autoconf/autoconf/AC_HEADER_MAJOR-port-to-glibc-2.25.patch @@ -1,4 +1,4 @@ -From e17a30e987d7ee695fb4294a82d987ec3dc9b974 Mon Sep 17 00:00:00 2001 +From b859ab1b211d348b46eca9158b7742f050c8115e Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 14 Sep 2016 08:17:06 -0500 Subject: [PATCH] AC_HEADER_MAJOR: port to glibc 2.25 @@ -35,85 +35,21 @@ this patch. * lib/autoconf/headers.m4 (AC_HEADER_MAJOR): Drop check for major within sys/types.h; it interferes with the need to check sysmacros.h first. -* doc/autoconf.texi (Particular Headers) : Expand -details on usage, and on workarounds for non-updated projects. Signed-off-by: Eric Blake ---- + +Remove the documentation change from the patch Upstream-Status: Backport - doc/autoconf.texi | 35 +++++++++++++++++++++++++++++++---- - lib/autoconf/headers.m4 | 30 ++++++++++++++---------------- - 2 files changed, 45 insertions(+), 20 deletions(-) +Signed-off-by: Hongxu Jia +--- + lib/autoconf/headers.m4 | 30 ++++++++++++++---------------- + 1 file changed, 14 insertions(+), 16 deletions(-) -Index: autoconf-2.69/doc/autoconf.texi -=================================================================== ---- autoconf-2.69.orig/doc/autoconf.texi -+++ autoconf-2.69/doc/autoconf.texi -@@ -15,7 +15,7 @@ - @c The ARG is an optional argument. To be used for macro arguments in - @c their documentation (@defmac). - @macro ovar{varname} --@r{[}@var{\varname\}@r{]}@c -+@r{[}@var{\varname\}@r{]} - @end macro - - @c @dvar(ARG, DEFAULT) -@@ -23,7 +23,7 @@ - @c The ARG is an optional argument, defaulting to DEFAULT. To be used - @c for macro arguments in their documentation (@defmac). - @macro dvar{varname, default} --@r{[}@var{\varname\} = @samp{\default\}@r{]}@c -+@r{[}@var{\varname\} = @samp{\default\}@r{]} - @end macro - - @c Handling the indexes with Texinfo yields several different problems. -@@ -5926,10 +5926,37 @@ Also see @code{AC_STRUCT_DIRENT_D_INO} a - @cvindex MAJOR_IN_SYSMACROS - @hdrindex{sys/mkdev.h} - @hdrindex{sys/sysmacros.h} --If @file{sys/types.h} does not define @code{major}, @code{minor}, and --@code{makedev}, but @file{sys/mkdev.h} does, define --@code{MAJOR_IN_MKDEV}; otherwise, if @file{sys/sysmacros.h} does, define --@code{MAJOR_IN_SYSMACROS}. -+Detect the headers required to use @code{makedev}, @code{major}, and -+@code{minor}. These functions may be defined by @file{sys/mkdev.h}, -+@code{sys/sysmacros.h}, or @file{sys/types.h}. -+ -+@code{AC_HEADER_MAJOR} defines @code{MAJOR_IN_MKDEV} if they are in -+@file{sys/mkdev.h}, or @code{MAJOR_IN_SYSMACROS} if they are in -+@file{sys/sysmacros.h}. If neither macro is defined, they are either in -+@file{sys/types.h} or unavailable. -+ -+To properly use these functions, your code should contain something -+like: -+ -+@verbatim -+#include -+#ifdef MAJOR_IN_MKDEV -+# include -+#elif defined MAJOR_IN_SYSMACROS -+# include -+#endif -+@end verbatim -+ -+Note: Configure scripts built with Autoconf 2.69 or earlier will not -+detect a problem if @file{sys/types.h} contains definitions of -+@code{major}, @code{minor}, and/or @code{makedev} that trigger compiler -+warnings upon use. This is known to occur with GNU libc 2.25, where -+those definitions are being deprecated to reduce namespace pollution. -+If it is not practical to use Autoconf 2.70 to regenerate the configure -+script of affected software, you can work around the problem by setting -+@samp{ac_cv_header_sys_types_h_makedev=no}, as an argument to -+@command{configure} or as part of a @file{config.site} site default file -+(@pxref{Site Defaults}). - @end defmac - - @defmac AC_HEADER_RESOLV -Index: autoconf-2.69/lib/autoconf/headers.m4 -=================================================================== ---- autoconf-2.69.orig/lib/autoconf/headers.m4 -+++ autoconf-2.69/lib/autoconf/headers.m4 +diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4 +index 81a7fa2..a57d0d3 100644 +--- a/lib/autoconf/headers.m4 ++++ b/lib/autoconf/headers.m4 @@ -502,31 +502,29 @@ fi # AC_HEADER_MAJOR @@ -160,3 +96,6 @@ Index: autoconf-2.69/lib/autoconf/headers.m4 fi ])# AC_HEADER_MAJOR +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-2.31.inc b/external/poky/meta/recipes-devtools/binutils/binutils-2.31.inc deleted file mode 100644 index c9a3610e..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils-2.31.inc +++ /dev/null @@ -1,60 +0,0 @@ -LIC_FILES_CHKSUM="\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\ - file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ - file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\ - file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\ - file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\ - " - -def binutils_branch_version(d): - pvsplit = d.getVar('PV').split('.') - return pvsplit[0] + "_" + pvsplit[1] - -BINUPV = "${@binutils_branch_version(d)}" -PV .= ".1" - -UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P\d+_(\d_?)*)" - -SRCREV ?= "c909e7afdc4710851a53e86ebed8cea3879b26e5" -BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=binutils-${BINUPV}-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://0007-Add-the-armv5e-architecture-to-binutils.patch \ - file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \ - file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \ - file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \ - file://0011-Change-default-emulation-for-mips64-linux.patch \ - file://0012-Add-support-for-Netlogic-XLP.patch \ - file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ - file://0014-Detect-64-bit-MIPS-targets.patch \ - file://0015-sync-with-OE-libtool-changes.patch \ - file://0016-add-i386pep-emulation-for-x86_64.patch \ - file://0022-Handle-ELF-compressed-header-alignment-correctly-by-.patch \ - file://0023-gold-Get-alignment-of-uncompressed-section-from-ch_a.patch \ - file://clang-bfd-fix.patch \ - file://CVE-2018-17358.patch \ - file://CVE-2018-17360.patch \ - file://CVE-2018-18309.patch \ - file://CVE-2018-18605.patch \ - file://CVE-2018-18606.patch \ - file://CVE-2018-18607.patch \ - file://CVE-2019-14444.patch \ - file://CVE-2019-12972.patch \ - file://CVE-2018-20623.patch \ - file://CVE-2018-20651.patch \ - file://CVE-2018-20671.patch \ - file://CVE-2018-1000876.patch \ -" -S = "${WORKDIR}/git" - -do_configure_prepend () { - rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim -} diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-2.34.inc b/external/poky/meta/recipes-devtools/binutils/binutils-2.34.inc new file mode 100644 index 00000000..f65fdb73 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils-2.34.inc @@ -0,0 +1,47 @@ +LIC_FILES_CHKSUM="\ + file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ + file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\ + file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\ + file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\ + file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\ + file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\ + file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\ + " + +def binutils_branch_version(d): + pvsplit = d.getVar('PV').split('.') + return pvsplit[0] + "_" + pvsplit[1] + +# When upgrading to 2.35, please make sure there is no trailing .0, so +# that upstream version check can work correctly. +PV = "2.34" +CVE_VERSION = "2.34" +BINUPV = "${@binutils_branch_version(d)}" +#BRANCH = "binutils-${BINUPV}-branch" +BRANCH ?= "binutils-2_34-branch" + +UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P\d+_(\d_?)*)" + +SRCREV ?= "d4b50999b3b287b5f984ade2f8734aa8c9359440" +BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git" +SRC_URI = "\ + ${BINUTILS_GIT_URI} \ + file://0004-configure-widen-the-regexp-for-SH-architectures.patch \ + file://0005-Point-scripts-location-to-libdir.patch \ + file://0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \ + file://0007-Use-libtool-2.4.patch \ + file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \ + file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \ + file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \ + file://0011-Change-default-emulation-for-mips64-linux.patch \ + file://0012-Add-support-for-Netlogic-XLP.patch \ + file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ + file://0014-Detect-64-bit-MIPS-targets.patch \ + file://0015-sync-with-OE-libtool-changes.patch \ + file://0016-Check-for-clang-before-checking-gcc-version.patch \ + file://0017-binutils-drop-redundant-program_name-definition-fno-.patch \ + file://CVE-2020-0551.patch \ +" +S = "${WORKDIR}/git" diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.31.bb b/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.31.bb deleted file mode 100644 index 5dbaa030..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.31.bb +++ /dev/null @@ -1,3 +0,0 @@ -require binutils.inc -require binutils-${PV}.inc -require binutils-cross-canadian.inc diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb b/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb new file mode 100644 index 00000000..5dbaa030 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb @@ -0,0 +1,3 @@ +require binutils.inc +require binutils-${PV}.inc +require binutils-cross-canadian.inc diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb b/external/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb new file mode 100644 index 00000000..07a8e7c4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb @@ -0,0 +1,85 @@ +require binutils.inc +require binutils-${PV}.inc + +BPN = "binutils" + +DEPENDS += "dejagnu-native expect-native" +DEPENDS += "binutils-native" + +deltask do_compile +deltask do_install + +inherit nopackages + +do_configure[dirs] += "${B}/ld ${B}/bfd" +do_configure() { + # create config.h, oe enables initfini-array by default + echo "#define HAVE_INITFINI_ARRAY" > ${B}/ld/config.h + # use the bfd_stdint.h from binutils-native, this is the same of the one + # generated by binutils-cross + cp ${RECIPE_SYSROOT_NATIVE}/usr/include/bfd_stdint.h ${B}/bfd/ +} + +# target depends +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}binutils" +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}gcc" +DEPENDS += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs" +DEPENDS += "virtual/${MLPREFIX}libc" + +python check_prepare() { + def suffix_sys(sys): + if sys.endswith("-linux"): + return sys + "-gnu" + return sys + + def generate_site_exp(d, suite): + content = [] + content.append('set srcdir "{0}/{1}"'.format(d.getVar("S"), suite)) + content.append('set objdir "{0}/{1}"'.format(d.getVar("B"), suite)) + content.append('set build_alias "{0}"'.format(d.getVar("BUILD_SYS"))) + content.append('set build_triplet {0}'.format(d.getVar("BUILD_SYS"))) + # use BUILD here since HOST=TARGET + content.append('set host_alias "{0}"'.format(d.getVar("BUILD_SYS"))) + content.append('set host_triplet {0}'.format(d.getVar("BUILD_SYS"))) + content.append('set target_alias "{0}"'.format(d.getVar("TARGET_SYS"))) + content.append('set target_triplet {0}'.format(suffix_sys(d.getVar("TARGET_SYS")))) + content.append("set development true") + content.append("set experimental false") + + content.append(d.expand('set CXXFILT "${TARGET_PREFIX}c++filt"')) + content.append(d.expand('set CC "${TARGET_PREFIX}gcc --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + content.append(d.expand('set CXX "${TARGET_PREFIX}g++ --sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + content.append(d.expand('set CFLAGS_FOR_TARGET "--sysroot=${STAGING_DIR_TARGET} ${TUNE_CCARGS}"')) + + if suite == "ld" and d.getVar("TUNE_ARCH") == "mips64": + # oe patches binutils to have the default mips64 abi as 64bit, but + # skips gas causing issues with the ld test suite (which uses gas) + content.append('set ASFLAGS "-64"') + + return "\n".join(content) + + for i in ["binutils", "gas", "ld"]: + builddir = os.path.join(d.getVar("B"), i) + if not os.path.isdir(builddir): + os.makedirs(builddir) + with open(os.path.join(builddir, "site.exp"), "w") as f: + f.write(generate_site_exp(d, i)) +} + +CHECK_TARGETS ??= "binutils gas ld" + +do_check[dirs] = "${B} ${B}/binutils ${B}/gas ${B}/ld" +do_check[prefuncs] += "check_prepare" +do_check[nostamp] = "1" +do_check() { + export LC_ALL=C + for i in ${CHECK_TARGETS}; do + (cd ${B}/$i; runtest \ + --tool $i \ + --srcdir ${S}/$i/testsuite \ + --ignore 'plugin.exp' \ + || true) + done +} +addtask check after do_configure + diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.31.bb b/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.31.bb deleted file mode 100644 index fbd1f7d2..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.31.bb +++ /dev/null @@ -1,3 +0,0 @@ -require binutils.inc -require binutils-${PV}.inc -require binutils-cross.inc diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb b/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb new file mode 100644 index 00000000..fbd1f7d2 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb @@ -0,0 +1,3 @@ +require binutils.inc +require binutils-${PV}.inc +require binutils-cross.inc diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.31.bb b/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.31.bb deleted file mode 100644 index 37f4d6d2..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.31.bb +++ /dev/null @@ -1,13 +0,0 @@ -require binutils-cross_${PV}.bb - -inherit crosssdk - -PN = "binutils-crosssdk-${SDK_SYS}" - -PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk" - -SRC_URI += "file://0001-binutils-crosssdk-Generate-relocatable-SDKs.patch" - -do_configure_prepend () { - sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt -} diff --git a/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb b/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb new file mode 100644 index 00000000..37f4d6d2 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb @@ -0,0 +1,13 @@ +require binutils-cross_${PV}.bb + +inherit crosssdk + +PN = "binutils-crosssdk-${SDK_SYS}" + +PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk" + +SRC_URI += "file://0001-binutils-crosssdk-Generate-relocatable-SDKs.patch" + +do_configure_prepend () { + sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt +} diff --git a/external/poky/meta/recipes-devtools/binutils/binutils.inc b/external/poky/meta/recipes-devtools/binutils/binutils.inc index 0fb6cae4..e93cd50b 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils.inc +++ b/external/poky/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/external/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch index 6bdb407b..14e84215 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch @@ -1,7 +1,7 @@ -From 4a99f058030c86794bb96b582a7dbd631f963b06 Mon Sep 17 00:00:00 2001 +From b05f0be13aadf0b26a0b39dfe7daf2c47a300338 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:58:54 +0000 -Subject: [PATCH 01/15] binutils-crosssdk: Generate relocatable SDKs +Subject: [PATCH] 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 @@ -18,35 +18,35 @@ Signed-off-by: Khem Raj 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index 370b22269d..a5c367aa8f 100755 +index 03392d265c..435689ea14 100755 --- a/ld/genscripts.sh +++ b/ld/genscripts.sh -@@ -279,6 +279,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 -@@ -287,10 +288,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 444aef2942..afa99f736d 100644 +index 0b8b32a440..ee6b71075d 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc -@@ -139,8 +139,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then +@@ -140,8 +140,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);" fi fi @@ -57,6 +57,3 @@ index 444aef2942..afa99f736d 100644 fi if test -z "$PLT"; then IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }" --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch index 02082138..91de94b7 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch @@ -1,8 +1,7 @@ -From 6e78b1c88c040a742b7af82542ac7eb92eddda3d Mon Sep 17 00:00:00 2001 +From 6d79f81336e7cbe727b5a51134f5d314a455379d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 6 Mar 2017 23:37:05 -0800 -Subject: [PATCH 02/15] binutils-cross: Do not generate linker script - directories +Subject: [PATCH] binutils-cross: Do not generate linker script directories We don't place target libraries within ${exec_prefix}, we'd always place these within the target sysroot within the standard library directories. Worse, the @@ -23,10 +22,10 @@ Signed-off-by: Khem Raj 1 file changed, 25 deletions(-) diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index a5c367aa8f..6cc9eed976 100755 +index 435689ea14..cff8a1467f 100755 --- a/ld/genscripts.sh +++ b/ld/genscripts.sh -@@ -189,31 +189,6 @@ append_to_lib_path() +@@ -235,31 +235,6 @@ append_to_lib_path() fi } @@ -58,6 +57,3 @@ index a5c367aa8f..6cc9eed976 100755 if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then libs=${NATIVE_LIB_DIRS} if [ "x${NATIVE}" = "xyes" ] ; then --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch new file mode 100644 index 00000000..4b4d73d2 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch @@ -0,0 +1,95 @@ +From d057b215f114f6158b4010ab44a19cae9dcc8386 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Wed, 19 Feb 2020 09:51:16 -0800 +Subject: [PATCH] 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 +2020/1/17 +Upstream-Status: Inappropriate [OE specific tweak] + +Signed-off-by: Khem Raj +--- + 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 4a9b8404b7..1c132d3ce4 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 46d9b14077..e453bc1b33 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -555,7 +555,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) + @ENABLE_PLUGINS_FALSE@PLUGIN_C = +diff --git a/ld/ldelf.c b/ld/ldelf.c +index 2e27cf48a8..a095d6aac5 100644 +--- a/ld/ldelf.c ++++ b/ld/ldelf.c +@@ -907,7 +907,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force, + + info.path = NULL; + info.len = info.alloc = 0; +- tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf", ++ tmppath = concat (ld_sysconfdir, "/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 c4af10f4e9..da1ad17763 100644 +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -69,6 +69,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 0f05821d1e..54c36a94ce 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; diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch deleted file mode 100644 index 15193c10..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0003-configure-widen-the-regexp-for-SH-architectures.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 4c6fd8f5eb9bc7c0d02f1a98ad86e395d4d2ab3b Mon Sep 17 00:00:00 2001 -From: Khem Raj -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 ---- - configure | 2 +- - gprof/configure | 5 +++++ - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index 08dd35c3ea..815e74ddb7 100755 ---- a/configure -+++ b/configure -@@ -3855,7 +3855,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 447cea7884..a730e20509 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.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch deleted file mode 100644 index bf1c1be2..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 48ad5292b10408d4e5d5739022753a7183a1cbb3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 01:09:58 +0000 -Subject: [PATCH 04/15] Point scripts location to libdir - -Upstream-Status: Inappropriate [debian patch] - -Signed-off-by: Khem Raj ---- - ld/Makefile.am | 2 +- - ld/Makefile.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ld/Makefile.am b/ld/Makefile.am -index d86ad0940c..c95b0ef025 100644 ---- a/ld/Makefile.am -+++ b/ld/Makefile.am -@@ -57,7 +57,7 @@ endif - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - - EMUL = @EMUL@ - EMULATION_OFILES = @EMULATION_OFILES@ -diff --git a/ld/Makefile.in b/ld/Makefile.in -index 4792b2b013..789df2d01b 100644 ---- a/ld/Makefile.in -+++ b/ld/Makefile.in -@@ -563,7 +563,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) - # We put the scripts in the directory $(scriptdir)/ldscripts. - # We can't put the scripts in $(datadir) because the SEARCH_DIR - # directives need to be different for native and cross linkers. --scriptdir = $(tooldir)/lib -+scriptdir = $(libdir) - BASEDIR = $(srcdir)/.. - BFDDIR = $(BASEDIR)/bfd - INCDIR = $(BASEDIR)/include --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch new file mode 100644 index 00000000..d10a144e --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch @@ -0,0 +1,41 @@ +From f7ad8a44c10f01e03680f093fd7af71c9f5e8606 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:07:33 +0000 +Subject: [PATCH] configure: widen the regexp for SH architectures + +gprof needs to know about uclibc + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 91dc42f6c7..7c1b747e7c 100755 +--- a/configure ++++ b/configure +@@ -3915,7 +3915,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 4bd869a63a..7187b34dfc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1159,7 +1159,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/external/poky/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0005-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch deleted file mode 100644 index 1f589718..00000000 --- a/external/poky/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 79e53510b1f9e16a21db312698fb1c1c442481e7 Mon Sep 17 00:00:00 2001 -From: Khem Raj -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 -Signed-off-by: Khem Raj ---- - ld/emultempl/elf32.em | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em -index 1ad9d6b6fa..6a025a45b4 100644 ---- a/ld/emultempl/elf32.em -+++ b/ld/emultempl/elf32.em -@@ -1471,6 +1471,8 @@ fragment <link.next) - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch new file mode 100644 index 00000000..3ba0ba63 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch @@ -0,0 +1,39 @@ +From 08b088b7dd3d9707ed66948a7271ffb438eeddf5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:09:58 +0000 +Subject: [PATCH] Point scripts location to libdir + +Upstream-Status: Inappropriate [debian patch] + +Signed-off-by: Khem Raj +--- + ld/Makefile.am | 2 +- + ld/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ld/Makefile.am b/ld/Makefile.am +index 1c132d3ce4..8d82cf2e16 100644 +--- a/ld/Makefile.am ++++ b/ld/Makefile.am +@@ -64,7 +64,7 @@ endif + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +diff --git a/ld/Makefile.in b/ld/Makefile.in +index e453bc1b33..2dcd72f809 100644 +--- a/ld/Makefile.in ++++ b/ld/Makefile.in +@@ -573,7 +573,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) + BASEDIR = $(srcdir)/.. + BFDDIR = $(BASEDIR)/bfd + INCDIR = $(BASEDIR)/include diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch new file mode 100644 index 00000000..d9207292 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch @@ -0,0 +1,37 @@ +From 13791636abf518f0db209dc51c29445d80421f2e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:27:17 +0000 +Subject: [PATCH] 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 +Signed-off-by: Khem Raj +--- + ld/ldelf.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ld/ldelf.c b/ld/ldelf.c +index a095d6aac5..a2455a8793 100644 +--- a/ld/ldelf.c ++++ b/ld/ldelf.c +@@ -1229,6 +1229,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd, + && 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)) +@@ -1573,6 +1575,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) diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch deleted file mode 100644 index 8550df0c..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch +++ /dev/null @@ -1,21253 +0,0 @@ -From 11f6d2889725ad592ab789534ca9b858073df4d1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 14 Feb 2016 17:04:07 +0000 -Subject: [PATCH 06/15] Use libtool 2.4 - -get libtool sysroot support - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - bfd/configure | 1322 ++++++++++++++----- - bfd/configure.ac | 2 +- - binutils/configure | 1320 ++++++++++++++----- - gas/configure | 1320 ++++++++++++++----- - gprof/configure | 1327 ++++++++++++++----- - 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, 9948 insertions(+), 3703 deletions(-) - -Index: git/bfd/configure -=================================================================== ---- git.orig/bfd/configure -+++ git/bfd/configure -@@ -704,6 +704,9 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -822,6 +825,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1504,6 +1508,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-mmap try using mmap for BFD input files if available - --with-separate-debug-dir=DIR - Look for global separate debug info in DIR -@@ -5693,8 +5699,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5734,7 +5740,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6420,8 +6426,8 @@ $as_echo_n "checking whether the shell u - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -6470,6 +6476,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if ${lt_cv_to_host_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if ${lt_cv_to_tool_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if ${lt_cv_ld_reload_flag+:} false; then : -@@ -6486,6 +6566,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6654,7 +6739,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -6808,6 +6894,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6823,9 +6924,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_AR+:} false; then : -@@ -6841,7 +7095,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6861,11 +7115,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_ac_ct_AR+:} false; then : -@@ -6881,7 +7139,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6900,6 +7158,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6911,16 +7173,72 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -7262,8 +7580,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -7299,6 +7617,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -7340,6 +7659,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -7351,7 +7682,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -7377,8 +7708,8 @@ static const void *lt_preloaded_setup() - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7388,8 +7719,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -7426,6 +7757,20 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ -+ - - - -@@ -7445,6 +7790,41 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ - - - # Check whether --enable-libtool-lock was given. -@@ -7653,6 +8033,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if ${lt_cv_path_mainfest_tool+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -8216,6 +8713,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -8380,7 +8879,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8469,7 +8969,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8767,8 +9267,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8934,6 +9432,12 @@ $as_echo_n "checking for $compiler optio - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -8996,7 +9500,7 @@ $as_echo_n "checking for $compiler optio - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -9053,13 +9557,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if ${lt_cv_prog_compiler_pic+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -9120,6 +9628,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9470,7 +9983,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9569,12 +10083,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9588,8 +10102,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9607,8 +10121,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9654,8 +10168,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9785,7 +10299,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath_+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9798,22 +10318,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9825,7 +10352,13 @@ if test -z "$aix_libpath"; then aix_libp - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath_+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9838,22 +10371,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9898,20 +10438,63 @@ if test -z "$aix_libpath"; then aix_libp - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -9972,7 +10555,7 @@ if test -z "$aix_libpath"; then aix_libp - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -9980,7 +10563,7 @@ if test -z "$aix_libpath"; then aix_libp - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -9996,7 +10579,7 @@ if test -z "$aix_libpath"; then aix_libp - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -10020,10 +10603,10 @@ if test -z "$aix_libpath"; then aix_libp - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -10102,23 +10685,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if ${lt_cv_irix_exported_symbol+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -10203,7 +10799,7 @@ rm -f core conftest.err conftest.$ac_obj - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -10222,9 +10818,9 @@ rm -f core conftest.err conftest.$ac_obj - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -10800,8 +11396,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10834,13 +11431,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10932,7 +11587,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11728,7 +12383,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11731 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11772,10 +12427,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11834,7 +12489,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11837 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11878,10 +12533,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -14525,7 +15180,7 @@ SHARED_LDFLAGS= - if test "$enable_shared" = "yes"; then - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` - if test -n "$x"; then -- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" -+ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" - fi - - # More hacks to build DLLs on Windows. -@@ -17139,13 +17794,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -17160,14 +17822,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -17200,12 +17865,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -17260,8 +17925,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 \ -@@ -17271,12 +17941,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 \ -@@ -17292,7 +17964,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 \ -@@ -17328,6 +17999,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -18116,7 +18788,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. -@@ -18219,19 +18892,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 - -@@ -18261,6 +18957,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -18270,6 +18972,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 - -@@ -18384,12 +19089,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 - -@@ -18476,9 +19181,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 - -@@ -18494,6 +19196,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 - -@@ -18526,210 +19231,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: git/bfd/configure.ac -=================================================================== ---- git.orig/bfd/configure.ac -+++ git/bfd/configure.ac -@@ -293,7 +293,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 - - # More hacks to build DLLs on Windows. -Index: git/binutils/configure -=================================================================== ---- git.orig/binutils/configure -+++ git/binutils/configure -@@ -688,8 +688,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -806,6 +809,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1482,6 +1486,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 - --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 -@@ -5453,8 +5459,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5494,7 +5500,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 -@@ -6180,8 +6186,8 @@ $as_echo_n "checking whether the shell u - # 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 -@@ -6230,6 +6236,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 : -@@ -6246,6 +6326,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' -@@ -6414,7 +6499,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 - ;; -@@ -6568,6 +6654,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 -@@ -6583,9 +6684,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+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 : -@@ -6601,7 +6855,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 -@@ -6621,11 +6875,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 : -@@ -6641,7 +6899,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 -@@ -6660,6 +6918,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 -@@ -6671,12 +6933,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6688,6 +6948,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -7022,8 +7340,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= -@@ -7059,6 +7377,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 -@@ -7100,6 +7419,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 -@@ -7111,7 +7442,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; - } -@@ -7137,8 +7468,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 -@@ -7148,8 +7479,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 -@@ -7186,6 +7517,18 @@ 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 -+ -+ -+ -+ -+ -+ - - - -@@ -7207,6 +7550,43 @@ 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; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7413,6 +7793,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*) -@@ -7976,6 +8473,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 -@@ -8171,7 +8670,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8260,7 +8760,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, -@@ -8558,8 +9058,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,' -@@ -8725,6 +9223,12 @@ $as_echo_n "checking for $compiler optio - 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) -@@ -8787,7 +9291,7 @@ $as_echo_n "checking for $compiler optio - 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,';; -@@ -8844,13 +9348,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. -@@ -8911,6 +9419,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9261,7 +9774,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' -@@ -9360,12 +9874,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 -@@ -9379,8 +9893,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 - ;; - -@@ -9398,8 +9912,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 -@@ -9445,8 +9959,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 -@@ -9576,7 +10090,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 -@@ -9589,22 +10109,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" -@@ -9616,7 +10143,13 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9629,22 +10162,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, -@@ -9689,20 +10229,63 @@ if test -z "$aix_libpath"; then aix_libp - # 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*) -@@ -9763,7 +10346,7 @@ if test -z "$aix_libpath"; then aix_libp - - # 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 -@@ -9771,7 +10354,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9787,7 +10370,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9811,10 +10394,10 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9893,23 +10476,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' -@@ -9994,7 +10590,7 @@ rm -f core conftest.err conftest.$ac_obj - 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 \*' -@@ -10013,9 +10609,9 @@ rm -f core conftest.err conftest.$ac_obj - 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"*) -@@ -10591,8 +11187,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}`~ -@@ -10625,13 +11222,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 - ;; -@@ -10723,7 +11378,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 - ;; - -@@ -11519,7 +12174,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11522 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11563,10 +12218,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); -@@ -11625,7 +12280,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11628 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11669,10 +12324,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); -@@ -15731,13 +16386,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -15752,14 +16414,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -15792,12 +16457,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -15852,8 +16517,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 \ -@@ -15863,12 +16533,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 \ -@@ -15884,7 +16556,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 \ -@@ -15920,6 +16591,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -16686,7 +17358,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. -@@ -16789,19 +17462,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 - -@@ -16831,6 +17527,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -16840,6 +17542,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 - -@@ -16954,12 +17659,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 - -@@ -17046,9 +17751,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 - -@@ -17064,6 +17766,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 - -@@ -17096,210 +17801,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: git/gas/configure -=================================================================== ---- git.orig/gas/configure -+++ git/gas/configure -@@ -681,8 +681,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -799,6 +802,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1482,6 +1486,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-cpu=CPU default cpu variant is CPU (currently only supported - on ARC) - --with-system-zlib use installed libz -@@ -5269,8 +5275,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5310,7 +5316,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 -@@ -5996,8 +6002,8 @@ $as_echo_n "checking whether the shell u - # 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 -@@ -6046,6 +6052,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 : -@@ -6062,6 +6142,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' -@@ -6230,7 +6315,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 - ;; -@@ -6384,6 +6470,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 -@@ -6399,9 +6500,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_AR+:} false; then : -@@ -6417,7 +6671,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 -@@ -6437,11 +6691,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 : -@@ -6457,7 +6715,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 -@@ -6476,6 +6734,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 -@@ -6487,12 +6749,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -6504,6 +6764,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -6838,8 +7156,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= -@@ -6875,6 +7193,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 -@@ -6916,6 +7235,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 -@@ -6927,7 +7258,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; - } -@@ -6953,8 +7284,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 -@@ -6964,8 +7295,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 -@@ -7002,6 +7333,19 @@ else - $as_echo "ok" >&6; } - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ -+ -+ -+ -+ -+ -+ - - - -@@ -7022,6 +7366,42 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -7229,6 +7609,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*) -@@ -7792,6 +8289,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 -@@ -7987,7 +8486,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8076,7 +8576,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, -@@ -8374,8 +8874,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,' -@@ -8541,6 +9039,12 @@ $as_echo_n "checking for $compiler optio - 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) -@@ -8603,7 +9107,7 @@ $as_echo_n "checking for $compiler optio - 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,';; -@@ -8660,13 +9164,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. -@@ -8727,6 +9235,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9077,7 +9590,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' -@@ -9176,12 +9690,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 -@@ -9195,8 +9709,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 - ;; - -@@ -9214,8 +9728,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 -@@ -9261,8 +9775,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 -@@ -9392,7 +9906,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 -@@ -9405,22 +9925,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" -@@ -9432,7 +9959,13 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9445,22 +9978,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, -@@ -9505,20 +10045,63 @@ if test -z "$aix_libpath"; then aix_libp - # 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*) -@@ -9579,7 +10162,7 @@ if test -z "$aix_libpath"; then aix_libp - - # 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 -@@ -9587,7 +10170,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9603,7 +10186,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9627,10 +10210,10 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9709,23 +10292,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' -@@ -9810,7 +10406,7 @@ rm -f core conftest.err conftest.$ac_obj - 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 \*' -@@ -9829,9 +10425,9 @@ rm -f core conftest.err conftest.$ac_obj - 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"*) -@@ -10407,8 +11003,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}`~ -@@ -10441,13 +11038,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 - ;; -@@ -10539,7 +11194,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 - ;; - -@@ -11335,7 +11990,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11338 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11379,10 +12034,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); -@@ -11441,7 +12096,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11444 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11485,10 +12140,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); -@@ -15803,13 +16458,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -15824,14 +16486,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -15864,12 +16529,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -15924,8 +16589,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 \ -@@ -15935,12 +16605,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 \ -@@ -15956,7 +16628,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 \ -@@ -15992,6 +16663,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -16765,7 +17437,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. -@@ -16868,19 +17541,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 - -@@ -16910,6 +17606,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -16919,6 +17621,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 - -@@ -17033,12 +17738,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 - -@@ -17125,9 +17830,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 - -@@ -17143,6 +17845,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 - -@@ -17175,210 +17880,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: git/gprof/configure -=================================================================== ---- git.orig/gprof/configure -+++ git/gprof/configure -@@ -662,8 +662,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -780,6 +783,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1442,6 +1446,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -5124,8 +5130,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5165,7 +5171,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5851,8 +5857,8 @@ $as_echo_n "checking whether the shell u - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5901,6 +5907,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if ${lt_cv_to_host_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if ${lt_cv_to_tool_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if ${lt_cv_ld_reload_flag+:} false; then : -@@ -5917,6 +5997,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6085,7 +6170,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -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 - 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 -@@ -6259,9 +6355,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_AR+:} false; then : -@@ -6277,7 +6526,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -6297,11 +6546,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_ac_ct_AR+:} false; then : -@@ -6317,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 -@@ -6336,6 +6589,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -6347,16 +6604,72 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ - -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a - -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } - -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi - - - -@@ -6698,8 +7011,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -6735,6 +7048,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -6776,6 +7090,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -6787,7 +7113,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -6813,8 +7139,8 @@ static const void *lt_preloaded_setup() - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -6824,8 +7150,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6862,6 +7188,17 @@ 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 -+ -+ -+ -+ -+ - - - -@@ -6883,6 +7220,44 @@ 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; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7089,6 +7464,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if ${lt_cv_path_mainfest_tool+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -7652,6 +8144,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7847,7 +8341,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7936,7 +8431,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8234,8 +8729,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -8401,6 +8894,12 @@ $as_echo_n "checking for $compiler optio - 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) -@@ -8463,7 +8962,7 @@ $as_echo_n "checking for $compiler optio - 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,';; -@@ -8520,13 +9019,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if ${lt_cv_prog_compiler_pic+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8587,6 +9090,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8937,7 +9445,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -9036,12 +9545,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -9055,8 +9564,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -9074,8 +9583,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9121,8 +9630,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -9252,7 +9761,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath_+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -9265,22 +9780,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -9292,7 +9814,13 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9305,22 +9833,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -9365,20 +9900,63 @@ if test -z "$aix_libpath"; then aix_libp - # 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*) -@@ -9439,7 +10017,7 @@ if test -z "$aix_libpath"; then aix_libp - - # 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 -@@ -9447,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9463,7 +10041,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9487,10 +10065,10 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9569,23 +10147,36 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if ${lt_cv_irix_exported_symbol+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9670,7 +10261,7 @@ rm -f core conftest.err conftest.$ac_obj - 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 \*' -@@ -9689,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_obj - 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"*) -@@ -10267,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -10301,13 +10893,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -10399,7 +11049,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -11195,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 -@@ -11239,10 +11889,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -11301,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 -@@ -11345,10 +11995,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -13314,13 +13964,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -13335,14 +13992,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -13375,12 +14035,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -13435,8 +14095,13 @@ reload_flag \ - OBJDUMP \ - deplibs_check_method \ - file_magic_cmd \ -+file_magic_glob \ -+want_nocaseglob \ -+DLLTOOL \ -+sharedlib_from_linklib_cmd \ - AR \ - AR_FLAGS \ -+archiver_list_spec \ - STRIP \ - RANLIB \ - CC \ -@@ -13446,12 +14111,14 @@ lt_cv_sys_global_symbol_pipe \ - lt_cv_sys_global_symbol_to_cdecl \ - lt_cv_sys_global_symbol_to_c_name_address \ - lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -+nm_file_list_spec \ - lt_prog_compiler_no_builtin_flag \ --lt_prog_compiler_wl \ - lt_prog_compiler_pic \ -+lt_prog_compiler_wl \ - lt_prog_compiler_static \ - lt_cv_prog_compiler_c_o \ - need_locks \ -+MANIFEST_TOOL \ - DSYMUTIL \ - NMEDIT \ - LIPO \ -@@ -13467,7 +14134,6 @@ no_undefined_flag \ - hardcode_libdir_flag_spec \ - hardcode_libdir_flag_spec_ld \ - hardcode_libdir_separator \ --fix_srcfile_path \ - exclude_expsyms \ - include_expsyms \ - file_list_spec \ -@@ -13503,6 +14169,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -14268,7 +14935,8 @@ $as_echo X"$file" | - # NOTE: Changes made to this file will be lost: look at ltmain.sh. - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -14371,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL - # turn newlines into spaces. - NL2SP=$lt_lt_NL2SP - -+# convert \$build file names to \$host format. -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+ -+# convert \$build files to toolchain format. -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+ - # An object symbol dumper. - OBJDUMP=$lt_OBJDUMP - - # Method to check whether dependent libraries are shared objects. - deplibs_check_method=$lt_deplibs_check_method - --# Command to use when deplibs_check_method == "file_magic". -+# Command to use when deplibs_check_method = "file_magic". - file_magic_cmd=$lt_file_magic_cmd - -+# How to find potential files when deplibs_check_method = "file_magic". -+file_magic_glob=$lt_file_magic_glob -+ -+# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -+want_nocaseglob=$lt_want_nocaseglob -+ -+# DLL creation program. -+DLLTOOL=$lt_DLLTOOL -+ -+# Command to associate shared and link libraries. -+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd -+ - # The archiver. - AR=$lt_AR -+ -+# Flags to create an archive. - AR_FLAGS=$lt_AR_FLAGS - -+# How to feed a file listing to the archiver. -+archiver_list_spec=$lt_archiver_list_spec -+ - # A symbol stripping program. - STRIP=$lt_STRIP - -@@ -14413,6 +15104,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -14422,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD - # Must we lock files when doing compilation? - need_locks=$lt_need_locks - -+# Manifest tool. -+MANIFEST_TOOL=$lt_MANIFEST_TOOL -+ - # Tool to manipulate archived DWARF debug symbol files on Mac OS X. - DSYMUTIL=$lt_DSYMUTIL - -@@ -14536,12 +15236,12 @@ with_gcc=$GCC - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static - -@@ -14628,9 +15328,6 @@ inherit_rpath=$inherit_rpath - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols - -@@ -14646,6 +15343,9 @@ include_expsyms=$lt_include_expsyms - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec - -@@ -14678,210 +15378,169 @@ ltmain="$ac_aux_dir/ltmain.sh" - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $* )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_EOF -- ;; -- *) # Bourne compatible functions. -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi --} -- --# func_basename file --func_basename () --{ -- func_basename_result=`$ECHO "${1}" | $SED "$basename"` --} -- -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -- --# sed scripts: --my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[^=]*=//' -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -- --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$@"` --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` --} -- --_LT_EOF --esac -- --case $lt_shell_append in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1+=\$2" --} --_LT_EOF -- ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$1=\$$1\$2" --} -- --_LT_EOF -- ;; -- esac -+ sed '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: git/ld/configure -=================================================================== ---- git.orig/ld/configure -+++ git/ld/configure -@@ -687,8 +687,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -815,6 +818,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_plugins - enable_largefile -@@ -1507,6 +1511,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - --with-lib-path=dir1:dir2... set default LIB_PATH - --with-sysroot=DIR Search for usr/lib et al within DIR. - -@@ -5959,8 +5965,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -6000,7 +6006,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 -@@ -6686,8 +6692,8 @@ $as_echo_n "checking whether the shell u - # 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 -@@ -6736,6 +6742,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 : -@@ -6752,6 +6832,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' -@@ -6920,7 +7005,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 - ;; -@@ -7074,6 +7160,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 -@@ -7089,9 +7190,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+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 : -@@ -7107,7 +7361,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 -@@ -7127,11 +7381,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 : -@@ -7147,7 +7405,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 -@@ -7166,6 +7424,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 -@@ -7177,12 +7439,11 @@ 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} -+ - - - -@@ -7193,6 +7454,63 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -@@ -7528,8 +7846,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= -@@ -7565,6 +7883,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 -@@ -7606,6 +7925,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 -@@ -7617,7 +7948,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; - } -@@ -7643,8 +7974,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 -@@ -7654,8 +7985,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 -@@ -7692,6 +8023,13 @@ 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 -+ - - - -@@ -7713,6 +8051,48 @@ 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; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7919,6 +8299,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*) -@@ -8482,6 +8979,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 -@@ -8550,6 +9049,16 @@ done - - - -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+ -+ -+ - - - # Set options -@@ -8678,7 +9187,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8767,7 +9277,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, -@@ -9065,8 +9575,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,' -@@ -9232,6 +9740,12 @@ $as_echo_n "checking for $compiler optio - 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) -@@ -9294,7 +9808,7 @@ $as_echo_n "checking for $compiler optio - 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,';; -@@ -9351,13 +9865,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. -@@ -9418,6 +9936,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9768,7 +10291,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' -@@ -9867,12 +10391,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 -@@ -9886,8 +10410,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 - ;; - -@@ -9905,8 +10429,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 -@@ -9952,8 +10476,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 -@@ -10083,7 +10607,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 -@@ -10096,22 +10626,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" -@@ -10123,7 +10660,13 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -10136,22 +10679,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, -@@ -10196,20 +10746,63 @@ if test -z "$aix_libpath"; then aix_libp - # 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*) -@@ -10270,7 +10863,7 @@ if test -z "$aix_libpath"; then aix_libp - - # 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 -@@ -10278,7 +10871,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -10294,7 +10887,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -10318,10 +10911,10 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -10400,23 +10993,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' -@@ -10501,7 +11107,7 @@ rm -f core conftest.err conftest.$ac_obj - 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 \*' -@@ -10520,9 +11126,9 @@ rm -f core conftest.err conftest.$ac_obj - 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"*) -@@ -11098,8 +11704,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}`~ -@@ -11132,13 +11739,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 - ;; -@@ -11230,7 +11895,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 - ;; - -@@ -12026,7 +12691,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 $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -12070,10 +12735,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); -@@ -12132,7 +12797,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 $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -12176,10 +12841,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); -@@ -12571,6 +13236,7 @@ $RM -r conftest* - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -12588,6 +13254,7 @@ $RM -r conftest* - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - compiler_CXX=$CC - for cc_temp in $compiler""; do -@@ -12870,7 +13537,13 @@ $as_echo_n "checking whether the $compil - allow_undefined_flag_CXX='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath__CXX+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12883,22 +13556,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - -@@ -12911,7 +13591,13 @@ if test -z "$aix_libpath"; then aix_libp - else - # Determine the default libpath from the value encoded in an - # empty executable. -- cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath__CXX+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int -@@ -12924,22 +13610,29 @@ main () - _ACEOF - if ac_fn_cxx_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath__CXX"; then -+ lt_cv_aix_libpath__CXX="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath__CXX -+fi - - hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -12982,29 +13675,75 @@ if test -z "$aix_libpath"; then aix_libp - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -- # as there is no search path for DLLs. -- hardcode_libdir_flag_spec_CXX='-L$libdir' -- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -- allow_undefined_flag_CXX=unsupported -- always_export_symbols_CXX=no -- enable_shared_with_static_runtimes_CXX=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- ld_shlibs_CXX=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX=' ' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=yes -+ file_list_spec_CXX='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' -+ enable_shared_with_static_runtimes_CXX=yes -+ # Don't use ranlib -+ old_postinstall_cmds_CXX='chmod 644 $oldlib' -+ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, -+ # as there is no search path for DLLs. -+ hardcode_libdir_flag_spec_CXX='-L$libdir' -+ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' -+ allow_undefined_flag_CXX=unsupported -+ always_export_symbols_CXX=no -+ enable_shared_with_static_runtimes_CXX=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ ld_shlibs_CXX=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - - -@@ -13110,7 +13849,7 @@ if test -z "$aix_libpath"; then aix_libp - ;; - *) - if test "$GXX" = yes; then -- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - ld_shlibs_CXX=no -@@ -13181,10 +13920,10 @@ if test -z "$aix_libpath"; then aix_libp - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -13225,9 +13964,9 @@ if test -z "$aix_libpath"; then aix_libp - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - link_all_deplibs_CXX=yes -@@ -13297,20 +14036,20 @@ if test -z "$aix_libpath"; then aix_libp - prelink_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - old_archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - archive_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -13505,7 +14244,7 @@ if test -z "$aix_libpath"; then aix_libp - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -13551,7 +14290,7 @@ if test -z "$aix_libpath"; then aix_libp - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' -@@ -13592,9 +14331,9 @@ if test -z "$aix_libpath"; then aix_libp - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - no_undefined_flag_CXX=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -13729,6 +14468,13 @@ private: - }; - _LT_EOF - -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? -@@ -13742,7 +14488,7 @@ if { { eval echo "\"\$as_me\":${as_linen - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -13751,13 +14497,22 @@ if { { eval echo "\"\$as_me\":${as_linen - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -13777,8 +14532,10 @@ if { { eval echo "\"\$as_me\":${as_linen - postdeps_CXX="${postdeps_CXX} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -13814,6 +14571,7 @@ else - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - case $host_os in -@@ -13849,7 +14607,7 @@ linux*) - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -13914,8 +14672,6 @@ fi - lt_prog_compiler_pic_CXX= - lt_prog_compiler_static_CXX= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -14020,6 +14776,11 @@ $as_echo_n "checking for $compiler optio - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -14172,7 +14933,7 @@ $as_echo_n "checking for $compiler optio - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' -@@ -14237,10 +14998,17 @@ case $host_os in - lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 --$as_echo "$lt_prog_compiler_pic_CXX" >&6; } -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if ${lt_cv_prog_compiler_pic_CXX+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 -+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } -+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX - - # - # Check to make sure the PIC flag actually works. -@@ -14298,6 +15066,8 @@ fi - - - -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -14475,6 +15245,7 @@ fi - $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - case $host_os in - aix[4-9]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -14489,15 +15260,20 @@ $as_echo_n "checking whether the $compil - ;; - pw32*) - export_symbols_cmds_CXX="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' -+ ;; -+ esac -+ ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 - $as_echo "$ld_shlibs_CXX" >&6; } -@@ -14760,8 +15536,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}`~ -@@ -14793,13 +15570,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 - ;; -@@ -14890,7 +15725,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 - ;; - -@@ -15349,6 +16184,7 @@ fi - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -18444,13 +19280,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -18465,14 +19308,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -18505,12 +19351,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -18549,8 +19395,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archi - compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' - GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' --lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' -+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' - lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' - lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' - archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' -@@ -18577,12 +19423,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$har - hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' - inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' - link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' --fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' - always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' - export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' - exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' - prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' -+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' - file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' - hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' - compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' -@@ -18620,8 +19466,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 \ -@@ -18631,12 +19482,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 \ -@@ -18652,7 +19505,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 \ -@@ -18674,8 +19526,8 @@ LD_CXX \ - reload_flag_CXX \ - compiler_CXX \ - lt_prog_compiler_no_builtin_flag_CXX \ --lt_prog_compiler_wl_CXX \ - lt_prog_compiler_pic_CXX \ -+lt_prog_compiler_wl_CXX \ - lt_prog_compiler_static_CXX \ - lt_cv_prog_compiler_c_o_CXX \ - export_dynamic_flag_spec_CXX \ -@@ -18687,7 +19539,6 @@ no_undefined_flag_CXX \ - hardcode_libdir_flag_spec_CXX \ - hardcode_libdir_flag_spec_ld_CXX \ - hardcode_libdir_separator_CXX \ --fix_srcfile_path_CXX \ - exclude_expsyms_CXX \ - include_expsyms_CXX \ - file_list_spec_CXX \ -@@ -18721,6 +19572,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -18735,7 +19587,8 @@ archive_expsym_cmds_CXX \ - module_cmds_CXX \ - module_expsym_cmds_CXX \ - export_symbols_cmds_CXX \ --prelink_cmds_CXX; do -+prelink_cmds_CXX \ -+postlink_cmds_CXX; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" -@@ -19539,7 +20392,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. -@@ -19642,19 +20496,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 - -@@ -19684,6 +20561,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -19693,6 +20576,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 - -@@ -19807,12 +20693,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 - -@@ -19899,9 +20785,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 - -@@ -19917,6 +20800,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 - -@@ -19963,210 +20849,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -@@ -20194,12 +21039,12 @@ with_gcc=$GCC_CXX - # Compiler flag to turn off builtin functions. - no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX - --# How to pass a linker flag through the compiler. --wl=$lt_lt_prog_compiler_wl_CXX -- - # Additional compiler flags for building library objects. - pic_flag=$lt_lt_prog_compiler_pic_CXX - -+# How to pass a linker flag through the compiler. -+wl=$lt_lt_prog_compiler_wl_CXX -+ - # Compiler flag to prevent dynamic linking. - link_static_flag=$lt_lt_prog_compiler_static_CXX - -@@ -20286,9 +21131,6 @@ inherit_rpath=$inherit_rpath_CXX - # Whether libtool must link a program against all its dependency libraries. - link_all_deplibs=$link_all_deplibs_CXX - --# Fix the shell variable \$srcfile for the compiler. --fix_srcfile_path=$lt_fix_srcfile_path_CXX -- - # Set to "yes" if exported symbols are required. - always_export_symbols=$always_export_symbols_CXX - -@@ -20304,6 +21146,9 @@ include_expsyms=$lt_include_expsyms_CXX - # Commands necessary for linking programs (against libraries) with templates. - prelink_cmds=$lt_prelink_cmds_CXX - -+# Commands necessary for finishing linking programs. -+postlink_cmds=$lt_postlink_cmds_CXX -+ - # Specify filename containing input files. - file_list_spec=$lt_file_list_spec_CXX - -Index: git/libtool.m4 -=================================================================== ---- git.orig/libtool.m4 -+++ git/libtool.m4 -@@ -1,7 +1,8 @@ - # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- - # - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is free software; the Free Software Foundation gives -@@ -10,7 +11,8 @@ - - m4_define([_LT_COPYING], [dnl - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, --# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, -+# Inc. - # Written by Gordon Matzigkeit, 1996 - # - # This file is part of GNU Libtool. -@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl - # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - ]) - --# serial 56 LT_INIT -+# serial 57 LT_INIT - - - # LT_PREREQ(VERSION) -@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - AC_SUBST(LIBTOOL)dnl - - _LT_SETUP -@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable - dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_CHECK_SHELL_FEATURES])dnl -+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl - m4_require([_LT_CMD_RELOAD])dnl - m4_require([_LT_CHECK_MAGIC_METHOD])dnl -+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl - m4_require([_LT_CMD_OLD_ARCHIVE])dnl - m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl -+m4_require([_LT_WITH_SYSROOT])dnl - - _LT_CONFIG_LIBTOOL_INIT([ - # See if we are running on zsh, and set the options which allow our -@@ -199,7 +205,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_ - m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) - configured by $[0], generated by m4_PACKAGE_STRING. - --Copyright (C) 2009 Free Software Foundation, Inc. -+Copyright (C) 2010 Free Software Foundation, Inc. - This config.lt script is free software; the Free Software Foundation - gives unlimited permision to copy, distribute and modify it." - -@@ -746,15 +752,12 @@ _LT_EOF - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? -- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -+ sed '$q' "$ltmain" >> "$cfgfile" \ -+ || (rm -f "$cfgfile"; exit 1) - -- _LT_PROG_XSI_SHELLFNS -+ _LT_PROG_REPLACE_SHELLFNS - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) -- -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - ], -@@ -980,6 +983,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD -+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD -+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], - fi - ]) - --# _LT_SYS_MODULE_PATH_AIX --# ----------------------- -+# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) -+# ---------------------------------- - # Links a minimal program and checks the executable - # for the system default hardcoded library path. In most cases, - # this is /usr/lib:/lib, but when the MPI compilers are used - # the location of the communication and MPI libs are included too. - # If we don't find anything, use the default library path according - # to the aix ld manual. -+# Store the results from the different compilers for each TAGNAME. -+# Allow to override them for all tags through lt_cv_aix_libpath. - m4_defun([_LT_SYS_MODULE_PATH_AIX], - [m4_require([_LT_DECL_SED])dnl --AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[ --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi],[]) --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], -+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ -+ lt_aix_libpath_sed='[ -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }]' -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi],[]) -+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then -+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" -+ fi -+ ]) -+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) -+fi - ])# _LT_SYS_MODULE_PATH_AIX - - -@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - - AC_MSG_CHECKING([how to print strings]) - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo progr - ])# _LT_PROG_ECHO_BACKSLASH - - -+# _LT_WITH_SYSROOT -+# ---------------- -+AC_DEFUN([_LT_WITH_SYSROOT], -+[AC_MSG_CHECKING([for sysroot]) -+AC_ARG_WITH([libtool-sysroot], -+[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified).], -+[], [with_libtool_sysroot=no]) -+ -+dnl lt_sysroot will always be passed unquoted. We quote it here -+dnl in case the user passed a directory name. -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ AC_MSG_RESULT([${with_libtool_sysroot}]) -+ AC_MSG_ERROR([The sysroot must be an absolute path.]) -+ ;; -+esac -+ -+ AC_MSG_RESULT([${lt_sysroot:-no}]) -+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl -+[dependent libraries, and in which our libraries should be installed.])]) -+ - # _LT_ENABLE_LOCK - # --------------- - m4_defun([_LT_ENABLE_LOCK], -@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock" - ])# _LT_ENABLE_LOCK - - -+# _LT_PROG_AR -+# ----------- -+m4_defun([_LT_PROG_AR], -+[AC_CHECK_TOOLS(AR, [ar], false) -+: ${AR=ar} -+: ${AR_FLAGS=cru} -+_LT_DECL([], [AR], [1], [The archiver]) -+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) -+ -+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], -+ [lt_cv_ar_at_file=no -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], -+ [echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ AC_TRY_EVAL([lt_ar_try]) -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ ]) -+ ]) -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+_LT_DECL([], [archiver_list_spec], [1], -+ [How to feed a file listing to the archiver]) -+])# _LT_PROG_AR -+ -+ - # _LT_CMD_OLD_ARCHIVE - # ------------------- - m4_defun([_LT_CMD_OLD_ARCHIVE], --[AC_CHECK_TOOL(AR, ar, false) --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru --_LT_DECL([], [AR], [1], [The archiver]) --_LT_DECL([], [AR_FLAGS], [1]) -+[_LT_PROG_AR - - AC_CHECK_TOOL(STRIP, strip, :) - test -z "$STRIP" && STRIP=: -@@ -1623,7 +1705,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --[#line __oline__ "configure" -+[#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -1667,10 +1749,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -2244,13 +2327,71 @@ m4_if([$1], [],[ - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -2342,7 +2483,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -2950,6 +3091,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -3016,7 +3162,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -3167,6 +3314,21 @@ tpf*) - ;; - esac - ]) -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && depli - _LT_DECL([], [deplibs_check_method], [1], - [Method to check whether dependent libraries are shared objects]) - _LT_DECL([], [file_magic_cmd], [1], -- [Command to use when deplibs_check_method == "file_magic"]) -+ [Command to use when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [file_magic_glob], [1], -+ [How to find potential files when deplibs_check_method = "file_magic"]) -+_LT_DECL([], [want_nocaseglob], [1], -+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) - ])# _LT_CHECK_MAGIC_METHOD - - -@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility: - dnl AC_DEFUN([AM_PROG_NM], []) - dnl AC_DEFUN([AC_PROG_NM], []) - -+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+# -------------------------------- -+# how to determine the name of the shared library -+# associated with a specific link library. -+# -- PORTME fill in with the dynamic library characteristics -+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], -+[m4_require([_LT_DECL_EGREP]) -+m4_require([_LT_DECL_OBJDUMP]) -+m4_require([_LT_DECL_DLLTOOL]) -+AC_CACHE_CHECK([how to associate runtime and link libraries], -+lt_cv_sharedlib_from_linklib_cmd, -+[lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+]) -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+_LT_DECL([], [sharedlib_from_linklib_cmd], [1], -+ [Command to associate shared and link libraries]) -+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB -+ -+ -+# _LT_PATH_MANIFEST_TOOL -+# ---------------------- -+# locate the manifest tool -+m4_defun([_LT_PATH_MANIFEST_TOOL], -+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], -+ [lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&AS_MESSAGE_LOG_FD -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest*]) -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl -+])# _LT_PATH_MANIFEST_TOOL -+ - - # LT_LIB_M - # -------- -@@ -3403,8 +3630,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -3473,6 +3701,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT@&t@_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT@&t@_DLSYM_CONST -+#else -+# define LT@&t@_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -3484,7 +3724,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT@&t@_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD - fi -@@ -3551,6 +3791,13 @@ else - AC_MSG_RESULT(ok) - fi - -+# Response file support. -+if test "$lt_cv_nm_interface" = "MS dumpbin"; then -+ nm_file_list_spec='@' -+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then -+ nm_file_list_spec='@' -+fi -+ - _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], - [Take the output of nm and produce a listing of raw symbols and C names]) - _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], -@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_addres - _LT_DECL([global_symbol_to_c_name_address_lib_prefix], - [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], - [Transform the output of nm in a C name address pair when lib prefix is needed]) -+_LT_DECL([], [nm_file_list_spec], [1], -+ [Specify filename containing input files for $NM]) - ]) # _LT_CMD_GLOBAL_SYMBOLS - - -@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= - _LT_TAGVAR(lt_prog_compiler_pic, $1)= - _LT_TAGVAR(lt_prog_compiler_static, $1)= - --AC_MSG_CHECKING([for $compiler option to produce PIC]) - m4_if([$1], [CXX], [ - # C++ specific cases for pic, static, wl, etc. - if test "$GXX" = yes; then -@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [ - ;; - esac - ;; -+ mingw* | cygwin* | os2* | pw32* | cegcc*) -+ # This hack is so that the source file can tell whether it is being -+ # built for inclusion in a dll (and should export symbols for example). -+ m4_if([$1], [GCJ], [], -+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) -+ ;; - dgux*) - case $cc_basename in - ec++*) -@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [ - ;; - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' - _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' -+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' -+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [ - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -@@ -4172,9 +4432,11 @@ case $host_os in - _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" - ;; - esac --AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) --_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -- [How to pass a linker flag through the compiler]) -+ -+AC_CACHE_CHECK([for $compiler option to produce PIC], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], -+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) - - # - # Check to make sure the PIC flag actually works. -@@ -4193,6 +4455,8 @@ fi - _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], - [Additional compiler flags for building library objects]) - -+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], -+ [How to pass a linker flag through the compiler]) - # - # Check to make sure the static flag actually works. - # -@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog - m4_defun([_LT_LINKER_SHLIBS], - [AC_REQUIRE([LT_PATH_LD])dnl - AC_REQUIRE([LT_PATH_NM])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl - m4_require([_LT_DECL_SED])dnl -@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl - AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) - m4_if([$1], [CXX], [ - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - case $host_os in - aix[[4-9]]*) - # If we're using GNU nm, then we don't want the "-C" option. -@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [ - ;; - pw32*) - _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" -- ;; -+ ;; - cygwin* | mingw* | cegcc*) -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ case $cc_basename in -+ cl*) ;; -+ *) -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] -+ ;; -+ esac -+ ;; - *) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' -- ;; -+ ;; - esac -- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] - ], [ - runpath_var= - _LT_TAGVAR(allow_undefined_flag, $1)= -@@ -4411,7 +4682,8 @@ _LT_EOF - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' -+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -4510,12 +4782,12 @@ _LT_EOF - _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' -- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -4529,8 +4801,8 @@ _LT_EOF - _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -4548,8 +4820,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4595,8 +4867,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi -@@ -4726,7 +4998,7 @@ _LT_EOF - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" - else -@@ -4737,7 +5009,7 @@ _LT_EOF - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -4781,20 +5053,63 @@ _LT_EOF - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -- # FIXME: Should let the user specify the lib program. -- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ # FIXME: Should let the user specify the lib program. -+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -4828,7 +5143,7 @@ _LT_EOF - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(hardcode_direct, $1)=yes - _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -@@ -4836,7 +5151,7 @@ _LT_EOF - - hpux9*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -4852,7 +5167,7 @@ _LT_EOF - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -4876,10 +5191,10 @@ _LT_EOF - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -4926,16 +5241,31 @@ _LT_EOF - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])], -- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- ) -- LDFLAGS="$save_LDFLAGS" -+ # This should be the same for all languages, so no per-tag cache variable. -+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], -+ [lt_cv_irix_exported_symbol], -+ [save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ AC_LINK_IFELSE( -+ [AC_LANG_SOURCE( -+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], -+ [C++], [[int foo (void) { return 0; }]], -+ [Fortran 77], [[ -+ subroutine foo -+ end]], -+ [Fortran], [[ -+ subroutine foo -+ end]])])], -+ [lt_cv_irix_exported_symbol=yes], -+ [lt_cv_irix_exported_symbol=no]) -+ LDFLAGS="$save_LDFLAGS"]) -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -5020,7 +5350,7 @@ _LT_EOF - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' - else - _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -@@ -5039,9 +5369,9 @@ _LT_EOF - _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], - to runtime path list]) - _LT_TAGDECL([], [link_all_deplibs], [0], - [Whether libtool must link a program against all its dependency libraries]) --_LT_TAGDECL([], [fix_srcfile_path], [1], -- [Fix the shell variable $srcfile for the compiler]) - _LT_TAGDECL([], [always_export_symbols], [0], - [Set to "yes" if exported symbols are required]) - _LT_TAGDECL([], [export_symbols_cmds], [2], -@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1], - [Symbols that must always be exported]) - _LT_TAGDECL([], [prelink_cmds], [2], - [Commands necessary for linking programs (against libraries) with templates]) -+_LT_TAGDECL([], [postlink_cmds], [2], -+ [Commands necessary for finishing linking programs]) - _LT_TAGDECL([], [file_list_spec], [1], - [Specify filename containing input files]) - dnl FIXME: Not yet implemented -@@ -5426,6 +5756,7 @@ CC="$lt_save_CC" - m4_defun([_LT_LANG_CXX_CONFIG], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl - m4_require([_LT_DECL_EGREP])dnl -+m4_require([_LT_PATH_MANIFEST_TOOL])dnl - if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then -@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; - - # Allow CC to be a program name with arguments. - lt_save_CC=$CC -+ lt_save_CFLAGS=$CFLAGS - lt_save_LD=$LD - lt_save_GCC=$GCC - GCC=$GXX -@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; - fi - test -z "${LDCXX+set}" || LD=$LDCXX - CC=${CXX-"c++"} -+ CFLAGS=$CXXFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; - _LT_TAGVAR(allow_undefined_flag, $1)='-berok' - # Determine the default libpath from the value encoded in an empty - # executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; - else - # Determine the default libpath from the value encoded in an - # empty executable. -- _LT_SYS_MODULE_PATH_AIX -+ _LT_SYS_MODULE_PATH_AIX([$1]) - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. -@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; - ;; - - cygwin* | mingw* | pw32* | cegcc*) -- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -- # as there is no search path for DLLs. -- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -- _LT_TAGVAR(always_export_symbols, $1)=no -- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -- -- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- # If the export-symbols file already is a .def file (1st line -- # is EXPORTS), use it as is; otherwise, prepend... -- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -- cp $export_symbols $output_objdir/$soname.def; -- else -- echo EXPORTS > $output_objdir/$soname.def; -- cat $export_symbols >> $output_objdir/$soname.def; -- fi~ -- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -- else -- _LT_TAGVAR(ld_shlibs, $1)=no -- fi -- ;; -+ case $GXX,$cc_basename in -+ ,cl* | no,cl*) -+ # Native MSVC -+ # hardcode_libdir_flag_spec is actually meaningless, as there is -+ # no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=yes -+ _LT_TAGVAR(file_list_spec, $1)='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ # Don't use ranlib -+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' -+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ func_to_tool_file "$lt_outputfile"~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # g++ -+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, -+ # as there is no search path for DLLs. -+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' -+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' -+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported -+ _LT_TAGVAR(always_export_symbols, $1)=no -+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes -+ -+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ # If the export-symbols file already is a .def file (1st line -+ # is EXPORTS), use it as is; otherwise, prepend... -+ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ cp $export_symbols $output_objdir/$soname.def; -+ else -+ echo EXPORTS > $output_objdir/$soname.def; -+ cat $export_symbols >> $output_objdir/$soname.def; -+ fi~ -+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -+ else -+ _LT_TAGVAR(ld_shlibs, $1)=no -+ fi -+ ;; -+ esac -+ ;; - darwin* | rhapsody*) - _LT_DARWIN_LINKER_FEATURES($1) - ;; -@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; - ;; - *) - if test "$GXX" = yes; then -- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - # FIXME: insert proper C++ library support - _LT_TAGVAR(ld_shlibs, $1)=no -@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - esac - fi -@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; - *) - if test "$GXX" = yes; then - if test "$with_gnu_ld" = no; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' - fi - fi - _LT_TAGVAR(link_all_deplibs, $1)=yes -@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; - _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ -- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' -+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' - _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ -- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ -+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ - $RANLIB $oldlib' - _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ - rm -rf $tpldir~ - $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ -- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' -+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' - ;; - *) # Version 6 and above use weak symbols - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - *) -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - ;; - esac - -@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # Sun C++ 4.2, 5.x and Centerline C++ - _LT_TAGVAR(archive_cmds_need_lc,$1)=yes - _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; - if test "$GXX" = yes && test "$with_gnu_ld" = no; then - _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' - if $CC --version | $GREP -v '^2\.7' > /dev/null; then -- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' -+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' - - # Commands to make compiler produce verbose output that lists - # what "hidden" libraries, object files and flags are used when -@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; - fi # test -n "$compiler" - - CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - LDCXX=$LD - LD=$lt_save_LD - GCC=$lt_save_GCC -@@ -6445,6 +6825,29 @@ AC_LANG_POP - ])# _LT_LANG_CXX_CONFIG - - -+# _LT_FUNC_STRIPNAME_CNF -+# ---------------------- -+# func_stripname_cnf prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# -+# This function is identical to the (non-XSI) version of func_stripname, -+# except this one can be used by m4 code that may be executed by configure, -+# rather than the libtool script. -+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl -+AC_REQUIRE([_LT_DECL_SED]) -+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) -+func_stripname_cnf () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname_cnf -+])# _LT_FUNC_STRIPNAME_CNF -+ - # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) - # --------------------------------- - # Figure out "hidden" library dependencies from verbose -@@ -6453,6 +6856,7 @@ AC_LANG_POP - # objects, libraries and library flags. - m4_defun([_LT_SYS_HIDDEN_LIBDEPS], - [m4_require([_LT_FILEUTILS_DEFAULTS])dnl -+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl - # Dependencies to place before and after the object being linked: - _LT_TAGVAR(predep_objects, $1)= - _LT_TAGVAR(postdep_objects, $1)= -@@ -6503,6 +6907,13 @@ public class foo { - }; - _LT_EOF - ]) -+ -+_lt_libdeps_save_CFLAGS=$CFLAGS -+case "$CC $CFLAGS " in #( -+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; -+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; -+esac -+ - dnl Parse the compiler output and extract the necessary - dnl objects, libraries and library flags. - if AC_TRY_EVAL(ac_compile); then -@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then - pre_test_object_deps_done=no - - for p in `eval "$output_verbose_link_cmd"`; do -- case $p in -+ case ${prev}${p} in - - -L* | -R* | -l*) - # Some compilers place space between "-{L,R}" and the path. -@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then - test $p = "-R"; then - prev=$p - continue -- else -- prev= - fi - -+ # Expand the sysroot to ease extracting the directories later. -+ if test -z "$prev"; then -+ case $p in -+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; -+ esac -+ fi -+ case $p in -+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; -+ esac - if test "$pre_test_object_deps_done" = no; then -- case $p in -- -L* | -R*) -+ case ${prev} in -+ -L | -R) - # Internal compiler library paths should come after those - # provided the user. The postdeps already come after the - # user supplied libs so there is no need to process them. -@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then - _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" - fi - fi -+ prev= - ;; - -+ *.lto.$objext) ;; # Ignore GCC LTO objects - *.$objext) - # This assumes that the test object file only shows up - # once in the compiler output. -@@ -6586,6 +7008,7 @@ else - fi - - $RM -f confest.$objext -+CFLAGS=$_lt_libdeps_save_CFLAGS - - # PORTME: override above test on systems where it is broken - m4_if([$1], [CXX], -@@ -6622,7 +7045,7 @@ linux*) - - solaris*) - case $cc_basename in -- CC*) -+ CC* | sunCC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as -@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${F77-"f77"} -+ CFLAGS=$FFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then - - GCC=$lt_save_GCC - CC="$lt_save_CC" -+ CFLAGS="$lt_save_CFLAGS" - fi # test "$_lt_disable_F77" != yes - - AC_LANG_POP -@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" - lt_save_GCC=$GCC -+ lt_save_CFLAGS=$CFLAGS - CC=${FC-"f95"} -+ CFLAGS=$FCFLAGS - compiler=$CC - GCC=$ac_cv_fc_compiler_gnu - -@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then - fi # test -n "$compiler" - - GCC=$lt_save_GCC -- CC="$lt_save_CC" -+ CC=$lt_save_CC -+ CFLAGS=$lt_save_CFLAGS - fi # test "$_lt_disable_FC" != yes - - AC_LANG_POP -@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE - _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. --lt_save_CC="$CC" -+lt_save_CC=$CC -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC=yes - CC=${GCJ-"gcj"} -+CFLAGS=$GCJFLAGS - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_TAGVAR(LD, $1)="$LD" -@@ -6992,7 +7423,8 @@ fi - AC_LANG_RESTORE - - GCC=$lt_save_GCC --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_GCJ_CONFIG - - -@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE - - # Allow CC to be a program name with arguments. - lt_save_CC="$CC" -+lt_save_CFLAGS=$CFLAGS - lt_save_GCC=$GCC - GCC= - CC=${RC-"windres"} -+CFLAGS= - compiler=$CC - _LT_TAGVAR(compiler, $1)=$CC - _LT_CC_BASENAME([$compiler]) -@@ -7042,7 +7476,8 @@ fi - - GCC=$lt_save_GCC - AC_LANG_RESTORE --CC="$lt_save_CC" -+CC=$lt_save_CC -+CFLAGS=$lt_save_CFLAGS - ])# _LT_LANG_RC_CONFIG - - -@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object - AC_SUBST([OBJDUMP]) - ]) - -+# _LT_DECL_DLLTOOL -+# ---------------- -+# Ensure DLLTOOL variable is set. -+m4_defun([_LT_DECL_DLLTOOL], -+[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) -+AC_SUBST([DLLTOOL]) -+]) - - # _LT_DECL_SED - # ------------ -@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn - ])# _LT_CHECK_SHELL_FEATURES - - --# _LT_PROG_XSI_SHELLFNS --# --------------------- --# Bourne and XSI compatible variants of some useful shell functions. --m4_defun([_LT_PROG_XSI_SHELLFNS], --[case $xsi_shell in -- yes) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_dirname file append nondir_replacement --# Compute the dirname of FILE. If nonempty, add APPEND to the result, --# otherwise set result to NONDIR_REPLACEMENT. --func_dirname () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac --} -- --# func_basename file --func_basename () --{ -- func_basename_result="${1##*/}" --} -- --# func_dirname_and_basename file append nondir_replacement --# perform func_basename and func_dirname in a single function --# call: --# dirname: Compute the dirname of FILE. If nonempty, --# add APPEND to the result, otherwise set result --# to NONDIR_REPLACEMENT. --# value returned in "$func_dirname_result" --# basename: Compute filename of FILE. --# value retuned in "$func_basename_result" --# Implementation must be kept synchronized with func_dirname --# and func_basename. For efficiency, we do not delegate to --# those functions but instead duplicate the functionality here. --func_dirname_and_basename () --{ -- case ${1} in -- */*) func_dirname_result="${1%/*}${2}" ;; -- * ) func_dirname_result="${3}" ;; -- esac -- func_basename_result="${1##*/}" --} -- --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --func_stripname () --{ -- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -- # positional parameters, so assign one to ordinary parameter first. -- func_stripname_result=${3} -- func_stripname_result=${func_stripname_result#"${1}"} -- func_stripname_result=${func_stripname_result%"${2}"} --} -- --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=${1%%=*} -- func_opt_split_arg=${1#*=} --} -- --# func_lo2o object --func_lo2o () --{ -- case ${1} in -- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -- *) func_lo2o_result=${1} ;; -- esac --} -- --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=${1%.*}.lo --} -- --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=$(( $[*] )) --} -- --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=${#1} --} -- --_LT_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"` --} -+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) -+# ------------------------------------------------------ -+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and -+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. -+m4_defun([_LT_PROG_FUNCTION_REPLACE], -+[dnl { -+sed -e '/^$1 ()$/,/^} # $1 /c\ -+$1 ()\ -+{\ -+m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) -+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ -+ && mv -f "$cfgfile.tmp" "$cfgfile" \ -+ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") -+test 0 -eq $? || _lt_function_replace_fail=: -+]) - --dnl func_dirname_and_basename --dnl A portable version of this function is already defined in general.m4sh --dnl so there is no need for it here. - --# func_stripname prefix suffix name --# strip PREFIX and SUFFIX off of NAME. --# PREFIX and SUFFIX must not contain globbing or regex special --# characters, hashes, percent signs, but SUFFIX may contain a leading --# dot (in which case that matches only a dot). --# func_strip_suffix prefix name --func_stripname () --{ -- case ${2} in -- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -- esac --} -+# _LT_PROG_REPLACE_SHELLFNS -+# ------------------------- -+# Replace existing portable implementations of several shell functions with -+# equivalent extended shell implementations where those features are available.. -+m4_defun([_LT_PROG_REPLACE_SHELLFNS], -+[if test x"$xsi_shell" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl -+ func_basename_result="${1##*/}"]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl -+ case ${1} in -+ */*) func_dirname_result="${1%/*}${2}" ;; -+ * ) func_dirname_result="${3}" ;; -+ esac -+ func_basename_result="${1##*/}"]) - --# sed scripts: --my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' --my_sed_long_arg='1s/^-[[^=]]*=//' -+ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl -+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are -+ # positional parameters, so assign one to ordinary parameter first. -+ func_stripname_result=${3} -+ func_stripname_result=${func_stripname_result#"${1}"} -+ func_stripname_result=${func_stripname_result%"${2}"}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl -+ func_split_long_opt_name=${1%%=*} -+ func_split_long_opt_arg=${1#*=}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl -+ func_split_short_opt_arg=${1#??} -+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -+ -+ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl -+ case ${1} in -+ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; -+ *) func_lo2o_result=${1} ;; -+ esac]) - --# func_opt_split --func_opt_split () --{ -- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` -- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) - --# func_lo2o object --func_lo2o () --{ -- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` --} -+ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) - --# func_xform libobj-or-source --func_xform () --{ -- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` --} -+ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) -+fi - --# func_arith arithmetic-term... --func_arith () --{ -- func_arith_result=`expr "$[@]"` --} -+if test x"$lt_shell_append" = xyes; then -+ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) - --# func_len string --# STRING may not start with a hyphen. --func_len () --{ -- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` --} -+ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl -+ func_quote_for_eval "${2}" -+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ -+ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -+ -+ # 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 - --_LT_EOF --esac -+if test x"$_lt_function_replace_fail" = x":"; then -+ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) -+fi -+]) - --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 -+# _LT_PATH_CONVERSION_FUNCTIONS -+# ----------------------------- -+# Determine which file name conversion functions should be used by -+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed -+# for certain cross-compile configurations and native mingw. -+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], -+[AC_REQUIRE([AC_CANONICAL_HOST])dnl -+AC_REQUIRE([AC_CANONICAL_BUILD])dnl -+AC_MSG_CHECKING([how to convert $build file names to $host format]) -+AC_CACHE_VAL(lt_cv_to_host_file_cmd, -+[case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac - ;; -- *) -- cat << \_LT_EOF >> "$cfgfile" -- --# func_append var value --# Append VALUE to the end of shell variable VAR. --func_append () --{ -- eval "$[1]=\$$[1]\$[2]" --} -- --_LT_EOF -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac - ;; -- esac -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+]) -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) -+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], -+ [0], [convert $build file names to $host format])dnl -+ -+AC_MSG_CHECKING([how to convert $build file names to toolchain format]) -+AC_CACHE_VAL(lt_cv_to_tool_file_cmd, -+[#assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac - ]) -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) -+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], -+ [0], [convert $build files to toolchain format])dnl -+])# _LT_PATH_CONVERSION_FUNCTIONS -Index: git/ltmain.sh -=================================================================== ---- git.orig/ltmain.sh -+++ git/ltmain.sh -@@ -1,10 +1,9 @@ --# Generated from ltmain.m4sh. - --# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# libtool (GNU libtool) 2.4 - # Written by Gordon Matzigkeit , 1996 - - # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, --# 2007, 2008, 2009 Free Software Foundation, Inc. -+# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. - # This is free software; see the source for copying conditions. There is NO - # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -@@ -38,7 +37,6 @@ - # -n, --dry-run display commands without modifying any files - # --features display basic configuration information and exit - # --mode=MODE use operation mode MODE --# --no-finish let install mode avoid finish commands - # --preserve-dup-deps don't remove duplicate dependency libraries - # --quiet, --silent don't print informational messages - # --no-quiet, --no-silent -@@ -71,17 +69,19 @@ - # compiler: $LTCC - # compiler flags: $LTCFLAGS - # linker: $LD (gnu? $with_gnu_ld) --# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a -+# $progname: (GNU libtool) 2.4 - # automake: $automake_version - # autoconf: $autoconf_version - # - # Report bugs to . -+# GNU libtool home page: . -+# General help using GNU software: . - - PROGRAM=libtool - PACKAGE=libtool --VERSION=2.2.7a --TIMESTAMP=" 1.3134 2009-11-29" --package_revision=1.3134 -+VERSION=2.4 -+TIMESTAMP="" -+package_revision=1.3293 - - # Be Bourne compatible - if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -@@ -106,9 +106,6 @@ _LTECHO_EOF' - } - - # NLS nuisances: We save the old values to restore during execute mode. --# Only set LANG and LC_ALL to C if already set. --# These must not be set unconditionally because not all systems understand --# e.g. LANG=C (notably SCO). - lt_user_locale= - lt_safe_locale= - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -@@ -121,15 +118,13 @@ do - lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" - fi" - done -+LC_ALL=C -+LANGUAGE=C -+export LANGUAGE LC_ALL - - $lt_unset CDPATH - - -- -- -- -- -- - # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh - # is ksh but when the shell is invoked as "sh" and the current value of - # the _XPG environment variable is not equal to 1 (one), the special -@@ -140,7 +135,7 @@ progpath="$0" - - - : ${CP="cp -f"} --: ${ECHO=$as_echo} -+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} - : ${EGREP="/bin/grep -E"} - : ${FGREP="/bin/grep -F"} - : ${GREP="/bin/grep"} -@@ -149,7 +144,7 @@ progpath="$0" - : ${MKDIR="mkdir"} - : ${MV="mv -f"} - : ${RM="rm -f"} --: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"} -+: ${SED="/bin/sed"} - : ${SHELL="${CONFIG_SHELL-/bin/sh}"} - : ${Xsed="$SED -e 1s/^X//"} - -@@ -169,6 +164,27 @@ IFS=" $lt_nl" - dirname="s,/[^/]*$,," - basename="s,^.*/,," - -+# func_dirname file append nondir_replacement -+# Compute the dirname of FILE. If nonempty, add APPEND to the result, -+# otherwise set result to NONDIR_REPLACEMENT. -+func_dirname () -+{ -+ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+} # func_dirname may be replaced by extended shell implementation -+ -+ -+# func_basename file -+func_basename () -+{ -+ func_basename_result=`$ECHO "${1}" | $SED "$basename"` -+} # func_basename may be replaced by extended shell implementation -+ -+ - # func_dirname_and_basename file append nondir_replacement - # perform func_basename and func_dirname in a single function - # call: -@@ -183,17 +199,31 @@ basename="s,^.*/,," - # those functions but instead duplicate the functionality here. - func_dirname_and_basename () - { -- # Extract subdirectory from the argument. -- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -- if test "X$func_dirname_result" = "X${1}"; then -- func_dirname_result="${3}" -- else -- func_dirname_result="$func_dirname_result${2}" -- fi -- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` --} -+ # Extract subdirectory from the argument. -+ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` -+ if test "X$func_dirname_result" = "X${1}"; then -+ func_dirname_result="${3}" -+ else -+ func_dirname_result="$func_dirname_result${2}" -+ fi -+ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` -+} # func_dirname_and_basename may be replaced by extended shell implementation -+ -+ -+# func_stripname prefix suffix name -+# strip PREFIX and SUFFIX off of NAME. -+# PREFIX and SUFFIX must not contain globbing or regex special -+# characters, hashes, percent signs, but SUFFIX may contain a leading -+# dot (in which case that matches only a dot). -+# func_strip_suffix prefix name -+func_stripname () -+{ -+ case ${2} in -+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; -+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; -+ esac -+} # func_stripname may be replaced by extended shell implementation - --# Generated shell functions inserted here. - - # These SED scripts presuppose an absolute path with a trailing slash. - pathcar='s,^/\([^/]*\).*$,\1,' -@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' - # Same as above, but do not quote variable references. - double_quote_subst='s/\(["`\\]\)/\\\1/g' - -+# Sed substitution that turns a string into a regex matching for the -+# string literally. -+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' -+ -+# Sed substitution that converts a w32 file name or path -+# which contains forward slashes, into one that contains -+# (escaped) backslashes. A very naive implementation. -+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -+ - # Re-`\' parameter expansions in output of double_quote_subst that were - # `\'-ed in input to the same. If an odd number of `\' preceded a '$' - # in input to double_quote_subst, that '$' was protected from expansion. -@@ -404,7 +443,7 @@ opt_warning=: - # name if it has been set yet. - func_echo () - { -- $ECHO "$progname${mode+: }$mode: $*" -+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" - } - - # func_verbose arg... -@@ -430,14 +469,14 @@ func_echo_all () - # Echo program name prefixed message to standard error. - func_error () - { -- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 -+ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 - } - - # func_warning arg... - # Echo program name prefixed warning message to standard error. - func_warning () - { -- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 -+ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 - - # bash bug again: - : -@@ -656,19 +695,35 @@ func_show_eval_locale () - fi - } - -- -- -+# func_tr_sh -+# Turn $1 into a string suitable for a shell variable name. -+# Result is stored in $func_tr_sh_result. All characters -+# not in the set a-zA-Z0-9_ are replaced with '_'. Further, -+# if $1 begins with a digit, a '_' is prepended as well. -+func_tr_sh () -+{ -+ case $1 in -+ [0-9]* | *[!a-zA-Z0-9_]*) -+ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` -+ ;; -+ * ) -+ func_tr_sh_result=$1 -+ ;; -+ esac -+} - - - # func_version - # Echo version message to standard output and exit. - func_version () - { -+ $opt_debug -+ - $SED -n '/(C)/!b go - :more - /\./!{ - N -- s/\n# // -+ s/\n# / / - b more - } - :go -@@ -685,7 +740,9 @@ func_version () - # Echo short help message to standard output and exit. - func_usage () - { -- $SED -n '/^# Usage:/,/^# *-h/ { -+ $opt_debug -+ -+ $SED -n '/^# Usage:/,/^# *.*--help/ { - s/^# // - s/^# *$// - s/\$progname/'$progname'/ -@@ -701,7 +758,10 @@ func_usage () - # unless 'noexit' is passed as argument. - func_help () - { -+ $opt_debug -+ - $SED -n '/^# Usage:/,/# Report bugs to/ { -+ :print - s/^# // - s/^# *$// - s*\$progname*'$progname'* -@@ -714,7 +774,11 @@ func_help () - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ - p -- }' < "$progpath" -+ d -+ } -+ /^# .* home page:/b print -+ /^# General help using/b print -+ ' < "$progpath" - ret=$? - if test -z "$1"; then - exit $ret -@@ -726,12 +790,39 @@ func_help () - # exit_cmd. - func_missing_arg () - { -- func_error "missing argument for $1" -+ $opt_debug -+ -+ func_error "missing argument for $1." - exit_cmd=exit - } - --exit_cmd=: - -+# func_split_short_opt shortopt -+# Set func_split_short_opt_name and func_split_short_opt_arg shell -+# variables after splitting SHORTOPT after the 2nd character. -+func_split_short_opt () -+{ -+ my_sed_short_opt='1s/^\(..\).*$/\1/;q' -+ my_sed_short_rest='1s/^..\(.*\)$/\1/;q' -+ -+ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` -+ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` -+} # func_split_short_opt may be replaced by extended shell implementation -+ -+ -+# func_split_long_opt longopt -+# Set func_split_long_opt_name and func_split_long_opt_arg shell -+# variables after splitting LONGOPT at the `=' sign. -+func_split_long_opt () -+{ -+ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' -+ my_sed_long_arg='1s/^--[^=]*=//' -+ -+ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` -+ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` -+} # func_split_long_opt may be replaced by extended shell implementation -+ -+exit_cmd=: - - - -@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%" - magic_exe="%%%MAGIC EXE variable%%%" - - # Global variables. --# $mode is unset - nonopt= --execute_dlfiles= - preserve_args= - lo2o="s/\\.lo\$/.${objext}/" - o2lo="s/\\.${objext}\$/.lo/" - extracted_archives= - extracted_serial=0 - --opt_dry_run=false --opt_finish=: --opt_duplicate_deps=false --opt_silent=false --opt_debug=: -- - # If this variable is set in any of the actions, the command in it - # will be execed at the end. This prevents here-documents from being - # left over by shells. - exec_cmd= - -+# func_append var value -+# Append VALUE to the end of shell variable VAR. -+func_append () -+{ -+ eval "${1}=\$${1}\${2}" -+} # func_append may be replaced by extended shell implementation -+ -+# func_append_quoted var value -+# Quote VALUE and append to the end of shell variable VAR, separated -+# by a space. -+func_append_quoted () -+{ -+ func_quote_for_eval "${2}" -+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result" -+} # func_append_quoted may be replaced by extended shell implementation -+ -+ -+# func_arith arithmetic-term... -+func_arith () -+{ -+ func_arith_result=`expr "${@}"` -+} # func_arith may be replaced by extended shell implementation -+ -+ -+# func_len string -+# STRING may not start with a hyphen. -+func_len () -+{ -+ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` -+} # func_len may be replaced by extended shell implementation -+ -+ -+# func_lo2o object -+func_lo2o () -+{ -+ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` -+} # func_lo2o may be replaced by extended shell implementation -+ -+ -+# func_xform libobj-or-source -+func_xform () -+{ -+ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` -+} # func_xform may be replaced by extended shell implementation -+ -+ - # func_fatal_configuration arg... - # Echo program name prefixed message to standard error, followed by - # a configuration failure hint, and exit. -@@ -850,130 +979,204 @@ func_enable_tag () - esac - } - --# Parse options once, thoroughly. This comes as soon as possible in --# the script to make things like `libtool --version' happen quickly. -+# func_check_version_match -+# Ensure that we are using m4 macros, and libtool script from the same -+# release of libtool. -+func_check_version_match () - { -+ if test "$package_revision" != "$macro_revision"; then -+ if test "$VERSION" != "$macro_version"; then -+ if test -z "$macro_version"; then -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from an older release. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -+$progname: and run autoconf again. -+_LT_EOF -+ fi -+ else -+ cat >&2 <<_LT_EOF -+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -+$progname: but the definition of this LT_INIT comes from revision $macro_revision. -+$progname: You should recreate aclocal.m4 with macros from revision $package_revision -+$progname: of $PACKAGE $VERSION and run autoconf again. -+_LT_EOF -+ fi -+ -+ exit $EXIT_MISMATCH -+ fi -+} -+ -+ -+# Shorthand for --mode=foo, only valid as the first argument -+case $1 in -+clean|clea|cle|cl) -+ shift; set dummy --mode clean ${1+"$@"}; shift -+ ;; -+compile|compil|compi|comp|com|co|c) -+ shift; set dummy --mode compile ${1+"$@"}; shift -+ ;; -+execute|execut|execu|exec|exe|ex|e) -+ shift; set dummy --mode execute ${1+"$@"}; shift -+ ;; -+finish|finis|fini|fin|fi|f) -+ shift; set dummy --mode finish ${1+"$@"}; shift -+ ;; -+install|instal|insta|inst|ins|in|i) -+ shift; set dummy --mode install ${1+"$@"}; shift -+ ;; -+link|lin|li|l) -+ shift; set dummy --mode link ${1+"$@"}; shift -+ ;; -+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -+ shift; set dummy --mode uninstall ${1+"$@"}; shift -+ ;; -+esac -+ -+ -+ -+# Option defaults: -+opt_debug=: -+opt_dry_run=false -+opt_config=false -+opt_preserve_dup_deps=false -+opt_features=false -+opt_finish=false -+opt_help=false -+opt_help_all=false -+opt_silent=: -+opt_verbose=: -+opt_silent=false -+opt_verbose=false - -- # Shorthand for --mode=foo, only valid as the first argument -- case $1 in -- clean|clea|cle|cl) -- shift; set dummy --mode clean ${1+"$@"}; shift -- ;; -- compile|compil|compi|comp|com|co|c) -- shift; set dummy --mode compile ${1+"$@"}; shift -- ;; -- execute|execut|execu|exec|exe|ex|e) -- shift; set dummy --mode execute ${1+"$@"}; shift -- ;; -- finish|finis|fini|fin|fi|f) -- shift; set dummy --mode finish ${1+"$@"}; shift -- ;; -- install|instal|insta|inst|ins|in|i) -- shift; set dummy --mode install ${1+"$@"}; shift -- ;; -- link|lin|li|l) -- shift; set dummy --mode link ${1+"$@"}; shift -- ;; -- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) -- shift; set dummy --mode uninstall ${1+"$@"}; shift -- ;; -- esac - -- # Parse non-mode specific arguments: -- while test "$#" -gt 0; do -+# Parse options once, thoroughly. This comes as soon as possible in the -+# script to make things like `--version' happen as quickly as we can. -+{ -+ # this just eases exit handling -+ while test $# -gt 0; do - opt="$1" - shift -- - case $opt in -- --config) func_config ;; -- -- --debug) preserve_args="$preserve_args $opt" -+ --debug|-x) opt_debug='set -x' - func_echo "enabling shell trace mode" -- opt_debug='set -x' - $opt_debug - ;; -- -- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break -- execute_dlfiles="$execute_dlfiles $1" -- shift -+ --dry-run|--dryrun|-n) -+ opt_dry_run=: - ;; -- -- --dry-run | -n) opt_dry_run=: ;; -- --features) func_features ;; -- --finish) mode="finish" ;; -- --no-finish) opt_finish=false ;; -- -- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break -- case $1 in -- # Valid mode arguments: -- clean) ;; -- compile) ;; -- execute) ;; -- finish) ;; -- install) ;; -- link) ;; -- relink) ;; -- uninstall) ;; -- -- # Catch anything else as an error -- *) func_error "invalid argument for $opt" -- exit_cmd=exit -- break -- ;; -- esac -- -- mode="$1" -+ --config) -+ opt_config=: -+func_config -+ ;; -+ --dlopen|-dlopen) -+ optarg="$1" -+ opt_dlopen="${opt_dlopen+$opt_dlopen -+}$optarg" - shift - ;; -- - --preserve-dup-deps) -- opt_duplicate_deps=: ;; -- -- --quiet|--silent) preserve_args="$preserve_args $opt" -- opt_silent=: -- opt_verbose=false -+ opt_preserve_dup_deps=: - ;; -- -- --no-quiet|--no-silent) -- preserve_args="$preserve_args $opt" -- opt_silent=false -+ --features) -+ opt_features=: -+func_features - ;; -- -- --verbose| -v) preserve_args="$preserve_args $opt" -+ --finish) -+ opt_finish=: -+set dummy --mode finish ${1+"$@"}; shift -+ ;; -+ --help) -+ opt_help=: -+ ;; -+ --help-all) -+ opt_help_all=: -+opt_help=': help-all' -+ ;; -+ --mode) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_mode="$optarg" -+case $optarg in -+ # Valid mode arguments: -+ clean|compile|execute|finish|install|link|relink|uninstall) ;; -+ -+ # Catch anything else as an error -+ *) func_error "invalid argument for $opt" -+ exit_cmd=exit -+ break -+ ;; -+esac -+ shift -+ ;; -+ --no-silent|--no-quiet) - opt_silent=false -- opt_verbose=: -+func_append preserve_args " $opt" - ;; -- -- --no-verbose) preserve_args="$preserve_args $opt" -+ --no-verbose) - opt_verbose=false -+func_append preserve_args " $opt" - ;; -- -- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break -- preserve_args="$preserve_args $opt $1" -- func_enable_tag "$1" # tagname is set here -+ --silent|--quiet) -+ opt_silent=: -+func_append preserve_args " $opt" -+ opt_verbose=false -+ ;; -+ --verbose|-v) -+ opt_verbose=: -+func_append preserve_args " $opt" -+opt_silent=false -+ ;; -+ --tag) -+ test $# = 0 && func_missing_arg $opt && break -+ optarg="$1" -+ opt_tag="$optarg" -+func_append preserve_args " $opt $optarg" -+func_enable_tag "$optarg" - shift - ;; - -+ -\?|-h) func_usage ;; -+ --help) func_help ;; -+ --version) func_version ;; -+ - # Separate optargs to long options: -- -dlopen=*|--mode=*|--tag=*) -- func_opt_split "$opt" -- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} -+ --*=*) -+ func_split_long_opt "$opt" -+ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} - shift - ;; - -- -\?|-h) func_usage ;; -- --help) opt_help=: ;; -- --help-all) opt_help=': help-all' ;; -- --version) func_version ;; -- -- -*) func_fatal_help "unrecognized option \`$opt'" ;; -- -- *) nonopt="$opt" -- break -+ # Separate non-argument short options: -+ -\?*|-h*|-n*|-v*) -+ func_split_short_opt "$opt" -+ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} -+ shift - ;; -+ -+ --) break ;; -+ -*) func_fatal_help "unrecognized option \`$opt'" ;; -+ *) set dummy "$opt" ${1+"$@"}; shift; break ;; - esac - done - -+ # Validate options: -+ -+ # save first non-option argument -+ if test "$#" -gt 0; then -+ nonopt="$opt" -+ shift -+ fi -+ -+ # preserve --debug -+ test "$opt_debug" = : || func_append preserve_args " --debug" - - case $host in - *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) -@@ -981,82 +1184,44 @@ func_enable_tag () - opt_duplicate_compiler_generated_deps=: - ;; - *) -- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps -+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps - ;; - esac - -- # Having warned about all mis-specified options, bail out if -- # anything was wrong. -- $exit_cmd $EXIT_FAILURE --} -+ $opt_help || { -+ # Sanity checks first: -+ func_check_version_match - --# func_check_version_match --# Ensure that we are using m4 macros, and libtool script from the same --# release of libtool. --func_check_version_match () --{ -- if test "$package_revision" != "$macro_revision"; then -- if test "$VERSION" != "$macro_version"; then -- if test -z "$macro_version"; then -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from an older release. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, but the --$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. --$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION --$progname: and run autoconf again. --_LT_EOF -- fi -- else -- cat >&2 <<_LT_EOF --$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, --$progname: but the definition of this LT_INIT comes from revision $macro_revision. --$progname: You should recreate aclocal.m4 with macros from revision $package_revision --$progname: of $PACKAGE $VERSION and run autoconf again. --_LT_EOF -+ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -+ func_fatal_configuration "not configured to build any kind of library" - fi - -- exit $EXIT_MISMATCH -- fi --} -- -- --## ----------- ## --## Main. ## --## ----------- ## -+ # Darwin sucks -+ eval std_shrext=\"$shrext_cmds\" - --$opt_help || { -- # Sanity checks first: -- func_check_version_match -- -- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then -- func_fatal_configuration "not configured to build any kind of library" -- fi -+ # Only execute mode is allowed to have -dlopen flags. -+ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then -+ func_error "unrecognized option \`-dlopen'" -+ $ECHO "$help" 1>&2 -+ exit $EXIT_FAILURE -+ fi - -- test -z "$mode" && func_fatal_error "error: you must specify a MODE." -+ # Change the help message to a mode-specific one. -+ generic_help="$help" -+ help="Try \`$progname --help --mode=$opt_mode' for more information." -+ } - - -- # Darwin sucks -- eval "std_shrext=\"$shrext_cmds\"" -+ # Bail if the options were screwed -+ $exit_cmd $EXIT_FAILURE -+} - - -- # Only execute mode is allowed to have -dlopen flags. -- if test -n "$execute_dlfiles" && test "$mode" != execute; then -- func_error "unrecognized option \`-dlopen'" -- $ECHO "$help" 1>&2 -- exit $EXIT_FAILURE -- fi - -- # Change the help message to a mode-specific one. -- generic_help="$help" -- help="Try \`$progname --help --mode=$mode' for more information." --} - -+## ----------- ## -+## Main. ## -+## ----------- ## - - # func_lalib_p file - # True iff FILE is a libtool `.la' library or `.lo' object file. -@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p () - # temporary ltwrapper_script. - func_ltwrapper_scriptname () - { -- func_ltwrapper_scriptname_result="" -- if func_ltwrapper_executable_p "$1"; then -- func_dirname_and_basename "$1" "" "." -- func_stripname '' '.exe' "$func_basename_result" -- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" -- fi -+ func_dirname_and_basename "$1" "" "." -+ func_stripname '' '.exe' "$func_basename_result" -+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - } - - # func_ltwrapper_p file -@@ -1149,7 +1311,7 @@ func_execute_cmds () - save_ifs=$IFS; IFS='~' - for cmd in $1; do - IFS=$save_ifs -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - func_show_eval "$cmd" "${2-:}" - done - IFS=$save_ifs -@@ -1172,6 +1334,37 @@ func_source () - } - - -+# func_resolve_sysroot PATH -+# Replace a leading = in PATH with a sysroot. Store the result into -+# func_resolve_sysroot_result -+func_resolve_sysroot () -+{ -+ func_resolve_sysroot_result=$1 -+ case $func_resolve_sysroot_result in -+ =*) -+ func_stripname '=' '' "$func_resolve_sysroot_result" -+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result -+ ;; -+ esac -+} -+ -+# func_replace_sysroot PATH -+# If PATH begins with the sysroot, replace it with = and -+# store the result into func_replace_sysroot_result. -+func_replace_sysroot () -+{ -+ case "$lt_sysroot:$1" in -+ ?*:"$lt_sysroot"*) -+ func_stripname "$lt_sysroot" '' "$1" -+ func_replace_sysroot_result="=$func_stripname_result" -+ ;; -+ *) -+ # Including no sysroot. -+ func_replace_sysroot_result=$1 -+ ;; -+ esac -+} -+ - # func_infer_tag arg - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. -@@ -1184,8 +1377,7 @@ func_infer_tag () - if test -n "$available_tags" && test -z "$tagname"; then - CC_quoted= - for arg in $CC; do -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1204,8 +1396,7 @@ func_infer_tag () - CC_quoted= - for arg in $CC; do - # Double-quote args containing other shell metacharacters. -- func_quote_for_eval "$arg" -- CC_quoted="$CC_quoted $func_quote_for_eval_result" -+ func_append_quoted CC_quoted "$arg" - done - CC_expanded=`func_echo_all $CC` - CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1274,6 +1465,486 @@ EOF - } - } - -+ -+################################################## -+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # -+################################################## -+ -+# func_convert_core_file_wine_to_w32 ARG -+# Helper function used by file name conversion functions when $build is *nix, -+# and $host is mingw, cygwin, or some other w32 environment. Relies on a -+# correctly configured wine environment available, with the winepath program -+# in $build's $PATH. -+# -+# ARG is the $build file name to be converted to w32 format. -+# Result is available in $func_convert_core_file_wine_to_w32_result, and will -+# be empty on error (or when ARG is empty) -+func_convert_core_file_wine_to_w32 () -+{ -+ $opt_debug -+ func_convert_core_file_wine_to_w32_result="$1" -+ if test -n "$1"; then -+ # Unfortunately, winepath does not exit with a non-zero error code, so we -+ # are forced to check the contents of stdout. On the other hand, if the -+ # command is not found, the shell will set an exit code of 127 and print -+ # *an error message* to stdout. So we must check for both error code of -+ # zero AND non-empty stdout, which explains the odd construction: -+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` -+ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then -+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | -+ $SED -e "$lt_sed_naive_backslashify"` -+ else -+ func_convert_core_file_wine_to_w32_result= -+ fi -+ fi -+} -+# end: func_convert_core_file_wine_to_w32 -+ -+ -+# func_convert_core_path_wine_to_w32 ARG -+# Helper function used by path conversion functions when $build is *nix, and -+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly -+# configured wine environment available, with the winepath program in $build's -+# $PATH. Assumes ARG has no leading or trailing path separator characters. -+# -+# ARG is path to be converted from $build format to win32. -+# Result is available in $func_convert_core_path_wine_to_w32_result. -+# Unconvertible file (directory) names in ARG are skipped; if no directory names -+# are convertible, then the result may be empty. -+func_convert_core_path_wine_to_w32 () -+{ -+ $opt_debug -+ # unfortunately, winepath doesn't convert paths, only file names -+ func_convert_core_path_wine_to_w32_result="" -+ if test -n "$1"; then -+ oldIFS=$IFS -+ IFS=: -+ for func_convert_core_path_wine_to_w32_f in $1; do -+ IFS=$oldIFS -+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" -+ if test -n "$func_convert_core_file_wine_to_w32_result" ; then -+ if test -z "$func_convert_core_path_wine_to_w32_result"; then -+ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" -+ else -+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" -+ fi -+ fi -+ done -+ IFS=$oldIFS -+ fi -+} -+# end: func_convert_core_path_wine_to_w32 -+ -+ -+# func_cygpath ARGS... -+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when -+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) -+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or -+# (2), returns the Cygwin file name or path in func_cygpath_result (input -+# file name or path is assumed to be in w32 format, as previously converted -+# from $build's *nix or MSYS format). In case (3), returns the w32 file name -+# or path in func_cygpath_result (input file name or path is assumed to be in -+# Cygwin format). Returns an empty string on error. -+# -+# ARGS are passed to cygpath, with the last one being the file name or path to -+# be converted. -+# -+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH -+# environment variable; do not put it in $PATH. -+func_cygpath () -+{ -+ $opt_debug -+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then -+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` -+ if test "$?" -ne 0; then -+ # on failure, ensure result is empty -+ func_cygpath_result= -+ fi -+ else -+ func_cygpath_result= -+ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" -+ fi -+} -+#end: func_cygpath -+ -+ -+# func_convert_core_msys_to_w32 ARG -+# Convert file name or path ARG from MSYS format to w32 format. Return -+# result in func_convert_core_msys_to_w32_result. -+func_convert_core_msys_to_w32 () -+{ -+ $opt_debug -+ # awkward: cmd appends spaces to result -+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | -+ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -+} -+#end: func_convert_core_msys_to_w32 -+ -+ -+# func_convert_file_check ARG1 ARG2 -+# Verify that ARG1 (a file name in $build format) was converted to $host -+# format in ARG2. Otherwise, emit an error message, but continue (resetting -+# func_to_host_file_result to ARG1). -+func_convert_file_check () -+{ -+ $opt_debug -+ if test -z "$2" && test -n "$1" ; then -+ func_error "Could not determine host file name corresponding to" -+ func_error " \`$1'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback: -+ func_to_host_file_result="$1" -+ fi -+} -+# end func_convert_file_check -+ -+ -+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH -+# Verify that FROM_PATH (a path in $build format) was converted to $host -+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting -+# func_to_host_file_result to a simplistic fallback value (see below). -+func_convert_path_check () -+{ -+ $opt_debug -+ if test -z "$4" && test -n "$3"; then -+ func_error "Could not determine the host path corresponding to" -+ func_error " \`$3'" -+ func_error "Continuing, but uninstalled executables may not work." -+ # Fallback. This is a deliberately simplistic "conversion" and -+ # should not be "improved". See libtool.info. -+ if test "x$1" != "x$2"; then -+ lt_replace_pathsep_chars="s|$1|$2|g" -+ func_to_host_path_result=`echo "$3" | -+ $SED -e "$lt_replace_pathsep_chars"` -+ else -+ func_to_host_path_result="$3" -+ fi -+ fi -+} -+# end func_convert_path_check -+ -+ -+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG -+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT -+# and appending REPL if ORIG matches BACKPAT. -+func_convert_path_front_back_pathsep () -+{ -+ $opt_debug -+ case $4 in -+ $1 ) func_to_host_path_result="$3$func_to_host_path_result" -+ ;; -+ esac -+ case $4 in -+ $2 ) func_append func_to_host_path_result "$3" -+ ;; -+ esac -+} -+# end func_convert_path_front_back_pathsep -+ -+ -+################################################## -+# $build to $host FILE NAME CONVERSION FUNCTIONS # -+################################################## -+# invoked via `$to_host_file_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# Result will be available in $func_to_host_file_result. -+ -+ -+# func_to_host_file ARG -+# Converts the file name ARG from $build format to $host format. Return result -+# in func_to_host_file_result. -+func_to_host_file () -+{ -+ $opt_debug -+ $to_host_file_cmd "$1" -+} -+# end func_to_host_file -+ -+ -+# func_to_tool_file ARG LAZY -+# converts the file name ARG from $build format to toolchain format. Return -+# result in func_to_tool_file_result. If the conversion in use is listed -+# in (the comma separated) LAZY, no conversion takes place. -+func_to_tool_file () -+{ -+ $opt_debug -+ case ,$2, in -+ *,"$to_tool_file_cmd",*) -+ func_to_tool_file_result=$1 -+ ;; -+ *) -+ $to_tool_file_cmd "$1" -+ func_to_tool_file_result=$func_to_host_file_result -+ ;; -+ esac -+} -+# end func_to_tool_file -+ -+ -+# func_convert_file_noop ARG -+# Copy ARG to func_to_host_file_result. -+func_convert_file_noop () -+{ -+ func_to_host_file_result="$1" -+} -+# end func_convert_file_noop -+ -+ -+# func_convert_file_msys_to_w32 ARG -+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_file_result. -+func_convert_file_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_msys_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_w32 -+ -+ -+# func_convert_file_cygwin_to_w32 ARG -+# Convert file name ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_file_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use -+ # LT_CYGPATH in this case. -+ func_to_host_file_result=`cygpath -m "$1"` -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_cygwin_to_w32 -+ -+ -+# func_convert_file_nix_to_w32 ARG -+# Convert file name ARG from *nix to w32 format. Requires a wine environment -+# and a working winepath. Returns result in func_to_host_file_result. -+func_convert_file_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_file_wine_to_w32 "$1" -+ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_w32 -+ -+ -+# func_convert_file_msys_to_cygwin ARG -+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_file_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ func_convert_core_msys_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_msys_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_msys_to_cygwin -+ -+ -+# func_convert_file_nix_to_cygwin ARG -+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed -+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result -+# in func_to_host_file_result. -+func_convert_file_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_file_result="$1" -+ if test -n "$1"; then -+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. -+ func_convert_core_file_wine_to_w32 "$1" -+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" -+ func_to_host_file_result="$func_cygpath_result" -+ fi -+ func_convert_file_check "$1" "$func_to_host_file_result" -+} -+# end func_convert_file_nix_to_cygwin -+ -+ -+############################################# -+# $build to $host PATH CONVERSION FUNCTIONS # -+############################################# -+# invoked via `$to_host_path_cmd ARG' -+# -+# In each case, ARG is the path to be converted from $build to $host format. -+# The result will be available in $func_to_host_path_result. -+# -+# Path separators are also converted from $build format to $host format. If -+# ARG begins or ends with a path separator character, it is preserved (but -+# converted to $host format) on output. -+# -+# All path conversion functions are named using the following convention: -+# file name conversion function : func_convert_file_X_to_Y () -+# path conversion function : func_convert_path_X_to_Y () -+# where, for any given $build/$host combination the 'X_to_Y' value is the -+# same. If conversion functions are added for new $build/$host combinations, -+# the two new functions must follow this pattern, or func_init_to_host_path_cmd -+# will break. -+ -+ -+# func_init_to_host_path_cmd -+# Ensures that function "pointer" variable $to_host_path_cmd is set to the -+# appropriate value, based on the value of $to_host_file_cmd. -+to_host_path_cmd= -+func_init_to_host_path_cmd () -+{ -+ $opt_debug -+ if test -z "$to_host_path_cmd"; then -+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" -+ to_host_path_cmd="func_convert_path_${func_stripname_result}" -+ fi -+} -+ -+ -+# func_to_host_path ARG -+# Converts the path ARG from $build format to $host format. Return result -+# in func_to_host_path_result. -+func_to_host_path () -+{ -+ $opt_debug -+ func_init_to_host_path_cmd -+ $to_host_path_cmd "$1" -+} -+# end func_to_host_path -+ -+ -+# func_convert_path_noop ARG -+# Copy ARG to func_to_host_path_result. -+func_convert_path_noop () -+{ -+ func_to_host_path_result="$1" -+} -+# end func_convert_path_noop -+ -+ -+# func_convert_path_msys_to_w32 ARG -+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic -+# conversion to w32 is not available inside the cwrapper. Returns result in -+# func_to_host_path_result. -+func_convert_path_msys_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from ARG. MSYS -+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; -+ # and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_msys_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_msys_to_w32 -+ -+ -+# func_convert_path_cygwin_to_w32 ARG -+# Convert path ARG from Cygwin to w32 format. Returns result in -+# func_to_host_file_result. -+func_convert_path_cygwin_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_cygwin_to_w32 -+ -+ -+# func_convert_path_nix_to_w32 ARG -+# Convert path ARG from *nix to w32 format. Requires a wine environment and -+# a working winepath. Returns result in func_to_host_file_result. -+func_convert_path_nix_to_w32 () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" -+ func_convert_path_check : ";" \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" -+ fi -+} -+# end func_convert_path_nix_to_w32 -+ -+ -+# func_convert_path_msys_to_cygwin ARG -+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. -+# Returns result in func_to_host_file_result. -+func_convert_path_msys_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # See func_convert_path_msys_to_w32: -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_msys_to_cygwin -+ -+ -+# func_convert_path_nix_to_cygwin ARG -+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a -+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in -+# func_to_host_file_result. -+func_convert_path_nix_to_cygwin () -+{ -+ $opt_debug -+ func_to_host_path_result="$1" -+ if test -n "$1"; then -+ # Remove leading and trailing path separator characters from -+ # ARG. msys behavior is inconsistent here, cygpath turns them -+ # into '.;' and ';.', and winepath ignores them completely. -+ func_stripname : : "$1" -+ func_to_host_path_tmp1=$func_stripname_result -+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" -+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" -+ func_to_host_path_result="$func_cygpath_result" -+ func_convert_path_check : : \ -+ "$func_to_host_path_tmp1" "$func_to_host_path_result" -+ func_convert_path_front_back_pathsep ":*" "*:" : "$1" -+ fi -+} -+# end func_convert_path_nix_to_cygwin -+ -+ - # func_mode_compile arg... - func_mode_compile () - { -@@ -1314,12 +1985,12 @@ func_mode_compile () - ;; - - -pie | -fpie | -fPIE) -- pie_flag="$pie_flag $arg" -+ func_append pie_flag " $arg" - continue - ;; - - -shared | -static | -prefer-pic | -prefer-non-pic) -- later="$later $arg" -+ func_append later " $arg" - continue - ;; - -@@ -1340,15 +2011,14 @@ func_mode_compile () - save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" -- func_quote_for_eval "$arg" -- lastarg="$lastarg $func_quote_for_eval_result" -+ func_append_quoted lastarg "$arg" - done - IFS="$save_ifs" - func_stripname ' ' '' "$lastarg" - lastarg=$func_stripname_result - - # Add the arguments to base_compile. -- base_compile="$base_compile $lastarg" -+ func_append base_compile " $lastarg" - continue - ;; - -@@ -1364,8 +2034,7 @@ func_mode_compile () - esac # case $arg_mode - - # Aesthetically quote the previous argument. -- func_quote_for_eval "$lastarg" -- base_compile="$base_compile $func_quote_for_eval_result" -+ func_append_quoted base_compile "$lastarg" - done # for arg - - case $arg_mode in -@@ -1496,17 +2165,16 @@ compiler." - $opt_dry_run || $RM $removelist - exit $EXIT_FAILURE - fi -- removelist="$removelist $output_obj" -+ func_append removelist " $output_obj" - $ECHO "$srcfile" > "$lockfile" - fi - - $opt_dry_run || $RM $removelist -- removelist="$removelist $lockfile" -+ func_append removelist " $lockfile" - trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - -- if test -n "$fix_srcfile_path"; then -- eval "srcfile=\"$fix_srcfile_path\"" -- fi -+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 -+ srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result - -@@ -1526,7 +2194,7 @@ compiler." - - if test -z "$output_obj"; then - # Place PIC objects in $objdir -- command="$command -o $lobj" -+ func_append command " -o $lobj" - fi - - func_show_eval_locale "$command" \ -@@ -1573,11 +2241,11 @@ compiler." - command="$base_compile $qsrcfile $pic_flag" - fi - if test "$compiler_c_o" = yes; then -- command="$command -o $obj" -+ func_append command " -o $obj" - fi - - # Suppress compiler output if we already did a PIC compilation. -- command="$command$suppress_output" -+ func_append command "$suppress_output" - func_show_eval_locale "$command" \ - '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' - -@@ -1622,13 +2290,13 @@ compiler." - } - - $opt_help || { -- test "$mode" = compile && func_mode_compile ${1+"$@"} -+ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} - } - - func_mode_help () - { - # We need to display help for each of the modes. -- case $mode in -+ case $opt_mode in - "") - # Generic help is extracted from the usage comments - # at the start of this file. -@@ -1659,8 +2327,8 @@ This mode accepts the following addition - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -no-suppress do not suppress compiler output for multiple passes -- -prefer-pic try to building PIC objects only -- -prefer-non-pic try to building non-PIC objects only -+ -prefer-pic try to build PIC objects only -+ -prefer-non-pic try to build non-PIC objects only - -shared do not build a \`.o' file suitable for static linking - -static only build a \`.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler -@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted u - ;; - - *) -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - ;; - esac - -@@ -1819,13 +2487,13 @@ if $opt_help; then - else - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - func_mode_help - done - } | sed -n '1p; 2,$s/^Usage:/ or: /p' - { - func_help noexit -- for mode in compile link execute install finish uninstall clean; do -+ for opt_mode in compile link execute install finish uninstall clean; do - echo - func_mode_help - done -@@ -1854,13 +2522,16 @@ func_mode_execute () - func_fatal_help "you must specify a COMMAND" - - # Handle -dlopen flags immediately. -- for file in $execute_dlfiles; do -+ for file in $opt_dlopen; do - test -f "$file" \ - || func_fatal_help "\`$file' is not a file" - - dir= - case $file in - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$lib' is not a valid libtool archive" -@@ -1882,7 +2553,7 @@ func_mode_execute () - dir="$func_dirname_result" - - if test -f "$dir/$objdir/$dlname"; then -- dir="$dir/$objdir" -+ func_append dir "/$objdir" - else - if test ! -f "$dir/$dlname"; then - func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -@@ -1907,10 +2578,10 @@ func_mode_execute () - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. -- if eval test -z \"\$$shlibpath_var\"; then -- eval $shlibpath_var=\$dir -+ if eval "test -z \"\$$shlibpath_var\""; then -+ eval "$shlibpath_var=\"\$dir\"" - else -- eval $shlibpath_var=\$dir:\$$shlibpath_var -+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - -@@ -1939,8 +2610,7 @@ func_mode_execute () - ;; - esac - # Quote arguments (to preserve shell metacharacters). -- func_quote_for_eval "$file" -- args="$args $func_quote_for_eval_result" -+ func_append_quoted args "$file" - done - - if test "X$opt_dry_run" = Xfalse; then -@@ -1972,22 +2642,59 @@ func_mode_execute () - fi - } - --test "$mode" = execute && func_mode_execute ${1+"$@"} -+test "$opt_mode" = execute && func_mode_execute ${1+"$@"} - - - # func_mode_finish arg... - func_mode_finish () - { - $opt_debug -- libdirs="$nonopt" -+ libs= -+ libdirs= - admincmds= - -- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -- for dir -- do -- libdirs="$libdirs $dir" -- done -+ for opt in "$nonopt" ${1+"$@"} -+ do -+ if test -d "$opt"; then -+ func_append libdirs " $opt" -+ -+ elif test -f "$opt"; then -+ if func_lalib_unsafe_p "$opt"; then -+ func_append libs " $opt" -+ else -+ func_warning "\`$opt' is not a valid libtool archive" -+ fi -+ -+ else -+ func_fatal_error "invalid argument \`$opt'" -+ fi -+ done -+ -+ if test -n "$libs"; then -+ if test -n "$lt_sysroot"; then -+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` -+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" -+ else -+ sysroot_cmd= -+ fi - -+ # Remove sysroot references -+ if $opt_dry_run; then -+ for lib in $libs; do -+ echo "removing references to $lt_sysroot and \`=' prefixes from $lib" -+ done -+ else -+ tmpdir=`func_mktempdir` -+ for lib in $libs; do -+ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ -+ > $tmpdir/tmp-la -+ mv -f $tmpdir/tmp-la $lib -+ done -+ ${RM}r "$tmpdir" -+ fi -+ fi -+ -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. -@@ -1997,7 +2704,7 @@ func_mode_finish () - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" -- $opt_dry_run || eval "$cmds" || admincmds="$admincmds -+ $opt_dry_run || eval "$cmds" || func_append admincmds " - $cmds" - fi - done -@@ -2006,53 +2713,55 @@ func_mode_finish () - # Exit here if they wanted silent mode. - $opt_silent && exit $EXIT_SUCCESS - -- echo "----------------------------------------------------------------------" -- echo "Libraries have been installed in:" -- for libdir in $libdirs; do -- $ECHO " $libdir" -- done -- echo -- echo "If you ever happen to want to link against installed libraries" -- echo "in a given directory, LIBDIR, you must either use libtool, and" -- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -- echo "flag during linking and do at least one of the following:" -- if test -n "$shlibpath_var"; then -- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -- echo " during execution" -- fi -- if test -n "$runpath_var"; then -- echo " - add LIBDIR to the \`$runpath_var' environment variable" -- echo " during linking" -- fi -- if test -n "$hardcode_libdir_flag_spec"; then -- libdir=LIBDIR -- eval "flag=\"$hardcode_libdir_flag_spec\"" -+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then -+ echo "----------------------------------------------------------------------" -+ echo "Libraries have been installed in:" -+ for libdir in $libdirs; do -+ $ECHO " $libdir" -+ done -+ echo -+ echo "If you ever happen to want to link against installed libraries" -+ echo "in a given directory, LIBDIR, you must either use libtool, and" -+ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" -+ echo "flag during linking and do at least one of the following:" -+ if test -n "$shlibpath_var"; then -+ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" -+ echo " during execution" -+ fi -+ if test -n "$runpath_var"; then -+ echo " - add LIBDIR to the \`$runpath_var' environment variable" -+ echo " during linking" -+ fi -+ if test -n "$hardcode_libdir_flag_spec"; then -+ libdir=LIBDIR -+ eval flag=\"$hardcode_libdir_flag_spec\" - -- $ECHO " - use the \`$flag' linker flag" -- fi -- if test -n "$admincmds"; then -- $ECHO " - have your system administrator run these commands:$admincmds" -- fi -- if test -f /etc/ld.so.conf; then -- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -- fi -- echo -+ $ECHO " - use the \`$flag' linker flag" -+ fi -+ if test -n "$admincmds"; then -+ $ECHO " - have your system administrator run these commands:$admincmds" -+ fi -+ if test -f /etc/ld.so.conf; then -+ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" -+ fi -+ echo - -- echo "See any operating system documentation about shared libraries for" -- case $host in -- solaris2.[6789]|solaris2.1[0-9]) -- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -- echo "pages." -- ;; -- *) -- echo "more information, such as the ld(1) and ld.so(8) manual pages." -- ;; -- esac -- echo "----------------------------------------------------------------------" -+ echo "See any operating system documentation about shared libraries for" -+ case $host in -+ solaris2.[6789]|solaris2.1[0-9]) -+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" -+ echo "pages." -+ ;; -+ *) -+ echo "more information, such as the ld(1) and ld.so(8) manual pages." -+ ;; -+ esac -+ echo "----------------------------------------------------------------------" -+ fi - exit $EXIT_SUCCESS - } - --test "$mode" = finish && func_mode_finish ${1+"$@"} -+test "$opt_mode" = finish && func_mode_finish ${1+"$@"} - - - # func_mode_install arg... -@@ -2077,7 +2786,7 @@ func_mode_install () - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - func_quote_for_eval "$arg" -- install_prog="$install_prog$func_quote_for_eval_result" -+ func_append install_prog "$func_quote_for_eval_result" - install_shared_prog=$install_prog - case " $install_prog " in - *[\\\ /]cp\ *) install_cp=: ;; -@@ -2097,7 +2806,7 @@ func_mode_install () - do - arg2= - if test -n "$dest"; then -- files="$files $dest" -+ func_append files " $dest" - dest=$arg - continue - fi -@@ -2135,11 +2844,11 @@ func_mode_install () - - # Aesthetically quote the argument. - func_quote_for_eval "$arg" -- install_prog="$install_prog $func_quote_for_eval_result" -+ func_append install_prog " $func_quote_for_eval_result" - if test -n "$arg2"; then - func_quote_for_eval "$arg2" - fi -- install_shared_prog="$install_shared_prog $func_quote_for_eval_result" -+ func_append install_shared_prog " $func_quote_for_eval_result" - done - - test -z "$install_prog" && \ -@@ -2151,7 +2860,7 @@ func_mode_install () - if test -n "$install_override_mode" && $no_mode; then - if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" -- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" -+ func_append install_shared_prog " -m $func_quote_for_eval_result" - fi - fi - -@@ -2209,10 +2918,13 @@ func_mode_install () - case $file in - *.$libext) - # Do the static libraries later. -- staticlibs="$staticlibs $file" -+ func_append staticlibs " $file" - ;; - - *.la) -+ func_resolve_sysroot "$file" -+ file=$func_resolve_sysroot_result -+ - # Check to see that this really is a libtool archive. - func_lalib_unsafe_p "$file" \ - || func_fatal_help "\`$file' is not a valid libtool archive" -@@ -2226,23 +2938,30 @@ func_mode_install () - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; -- *) current_libdirs="$current_libdirs $libdir" ;; -+ *) func_append current_libdirs " $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; -- *) future_libdirs="$future_libdirs $libdir" ;; -+ *) func_append future_libdirs " $libdir" ;; - esac - fi - - func_dirname "$file" "/" "" - dir="$func_dirname_result" -- dir="$dir$objdir" -+ func_append dir "$objdir" - - if test -n "$relink_command"; then -+ # Strip any trailing slash from the destination. -+ func_stripname '' '/' "$libdir" -+ destlibdir=$func_stripname_result -+ -+ func_stripname '' '/' "$destdir" -+ s_destdir=$func_stripname_result -+ - # Determine the prefix the user has applied to our future dir. -- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` -+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that -@@ -2315,7 +3034,7 @@ func_mode_install () - func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' - - # Maybe install the static library, too. -- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" -+ test -n "$old_library" && func_append staticlibs " $dir/$old_library" - ;; - - *.lo) -@@ -2503,7 +3222,7 @@ func_mode_install () - test -n "$future_libdirs" && \ - func_warning "remember to run \`$progname --finish$future_libdirs'" - -- if test -n "$current_libdirs" && $opt_finish; then -+ if test -n "$current_libdirs"; then - # Maybe just do a dry run. - $opt_dry_run && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -@@ -2512,7 +3231,7 @@ func_mode_install () - fi - } - --test "$mode" = install && func_mode_install ${1+"$@"} -+test "$opt_mode" = install && func_mode_install ${1+"$@"} - - - # func_generate_dlsyms outputname originator pic_p -@@ -2559,6 +3278,18 @@ extern \"C\" { - #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" - #endif - -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - /* External symbol declarations for the compiler. */\ - " - -@@ -2570,21 +3301,22 @@ extern \"C\" { - # Add our own program objects to the symbol list. - progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` - for progfile in $progfiles; do -- func_verbose "extracting global C symbols from \`$progfile'" -- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" -+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 -+ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" -+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $opt_dry_run || { -- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - - if test -n "$export_symbols_regex"; then - $opt_dry_run || { -- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - } - fi - -@@ -2593,23 +3325,23 @@ extern \"C\" { - export_symbols="$output_objdir/$outputname.exp" - $opt_dry_run || { - $RM $export_symbols -- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols" -+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$export_symbols" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - } - else - $opt_dry_run || { -- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp" -- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T -- $MV "$nlist"T "$nlist" -+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' -+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' -+ eval '$MV "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* | *cegcc* ) -- echo EXPORTS > "$output_objdir/$outputname.def" -- cat "$nlist" >> "$output_objdir/$outputname.def" -+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' -+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - } -@@ -2620,10 +3352,52 @@ extern \"C\" { - func_verbose "extracting global C symbols from \`$dlprefile'" - func_basename "$dlprefile" - name="$func_basename_result" -- $opt_dry_run || { -- $ECHO ": $name " >> "$nlist" -- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" -- } -+ case $host in -+ *cygwin* | *mingw* | *cegcc* ) -+ # if an import library, we need to obtain dlname -+ if func_win32_import_lib_p "$dlprefile"; then -+ func_tr_sh "$dlprefile" -+ eval "curr_lafile=\$libfile_$func_tr_sh_result" -+ dlprefile_dlbasename="" -+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then -+ # Use subshell, to avoid clobbering current variable values -+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` -+ if test -n "$dlprefile_dlname" ; then -+ func_basename "$dlprefile_dlname" -+ dlprefile_dlbasename="$func_basename_result" -+ else -+ # no lafile. user explicitly requested -dlpreopen . -+ $sharedlib_from_linklib_cmd "$dlprefile" -+ dlprefile_dlbasename=$sharedlib_from_linklib_result -+ fi -+ fi -+ $opt_dry_run || { -+ if test -n "$dlprefile_dlbasename" ; then -+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' -+ else -+ func_warning "Could not compute DLL name from $name" -+ eval '$ECHO ": $name " >> "$nlist"' -+ fi -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | -+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" -+ } -+ else # not an import lib -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ fi -+ ;; -+ *) -+ $opt_dry_run || { -+ eval '$ECHO ": $name " >> "$nlist"' -+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 -+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" -+ } -+ ;; -+ esac - done - - $opt_dry_run || { -@@ -2661,26 +3435,9 @@ typedef struct { - const char *name; - void *address; - } lt_dlsymlist; --" -- case $host in -- *cygwin* | *mingw* | *cegcc* ) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* DATA imports from DLLs on WIN32 con't be const, because -- runtime relocations are performed -- see ld's documentation -- on pseudo-relocs. */" -- lt_dlsym_const= ;; -- *osf5*) -- echo >> "$output_objdir/$my_dlsyms" "\ --/* This system does not cope well with relocations in const data */" -- lt_dlsym_const= ;; -- *) -- lt_dlsym_const=const ;; -- esac -- -- echo >> "$output_objdir/$my_dlsyms" "\ --extern $lt_dlsym_const lt_dlsymlist -+extern LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[]; --$lt_dlsym_const lt_dlsymlist -+LT_DLSYM_CONST lt_dlsymlist - lt_${my_prefix}_LTX_preloaded_symbols[] = - {\ - { \"$my_originator\", (void *) 0 }," -@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() - for arg in $LTCFLAGS; do - case $arg in - -pie | -fpie | -fPIE) ;; -- *) symtab_cflags="$symtab_cflags $arg" ;; -+ *) func_append symtab_cflags " $arg" ;; - esac - done - -@@ -2796,9 +3553,11 @@ func_win32_libid () - win32_libid_type="x86 archive import" - ;; - *ar\ archive*) # could be an import, or static -- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null | -- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -- win32_nmres=`$NM -f posix -A "$1" | -+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. -+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | -+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | - $SED -n -e ' - 1,100{ - / I /{ -@@ -2827,6 +3586,131 @@ func_win32_libid () - $ECHO "$win32_libid_type" - } - -+# func_cygming_dll_for_implib ARG -+# -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib () -+{ -+ $opt_debug -+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` -+} -+ -+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs -+# -+# The is the core of a fallback implementation of a -+# platform-specific function to extract the name of the -+# DLL associated with the specified import library LIBNAME. -+# -+# SECTION_NAME is either .idata$6 or .idata$7, depending -+# on the platform and compiler that created the implib. -+# -+# Echos the name of the DLL associated with the -+# specified import library. -+func_cygming_dll_for_implib_fallback_core () -+{ -+ $opt_debug -+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` -+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | -+ $SED '/^Contents of section '"$match_literal"':/{ -+ # Place marker at beginning of archive member dllname section -+ s/.*/====MARK====/ -+ p -+ d -+ } -+ # These lines can sometimes be longer than 43 characters, but -+ # are always uninteresting -+ /:[ ]*file format pe[i]\{,1\}-/d -+ /^In archive [^:]*:/d -+ # Ensure marker is printed -+ /^====MARK====/p -+ # Remove all lines with less than 43 characters -+ /^.\{43\}/!d -+ # From remaining lines, remove first 43 characters -+ s/^.\{43\}//' | -+ $SED -n ' -+ # Join marker and all lines until next marker into a single line -+ /^====MARK====/ b para -+ H -+ $ b para -+ b -+ :para -+ x -+ s/\n//g -+ # Remove the marker -+ s/^====MARK====// -+ # Remove trailing dots and whitespace -+ s/[\. \t]*$// -+ # Print -+ /./p' | -+ # we now have a list, one entry per line, of the stringified -+ # contents of the appropriate section of all members of the -+ # archive which possess that section. Heuristic: eliminate -+ # all those which have a first or second character that is -+ # a '.' (that is, objdump's representation of an unprintable -+ # character.) This should work for all archives with less than -+ # 0x302f exports -- but will fail for DLLs whose name actually -+ # begins with a literal '.' or a single character followed by -+ # a '.'. -+ # -+ # Of those that remain, print the first one. -+ $SED -e '/^\./d;/^.\./d;q' -+} -+ -+# func_cygming_gnu_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is a GNU/binutils-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_gnu_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` -+ test -n "$func_cygming_gnu_implib_tmp" -+} -+ -+# func_cygming_ms_implib_p ARG -+# This predicate returns with zero status (TRUE) if -+# ARG is an MS-style import library. Returns -+# with nonzero status (FALSE) otherwise. -+func_cygming_ms_implib_p () -+{ -+ $opt_debug -+ func_to_tool_file "$1" func_convert_file_msys_to_w32 -+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` -+ test -n "$func_cygming_ms_implib_tmp" -+} -+ -+# func_cygming_dll_for_implib_fallback ARG -+# Platform-specific function to extract the -+# name of the DLL associated with the specified -+# import library ARG. -+# -+# This fallback implementation is for use when $DLLTOOL -+# does not support the --identify-strict option. -+# Invoked by eval'ing the libtool variable -+# $sharedlib_from_linklib_cmd -+# Result is available in the variable -+# $sharedlib_from_linklib_result -+func_cygming_dll_for_implib_fallback () -+{ -+ $opt_debug -+ if func_cygming_gnu_implib_p "$1" ; then -+ # binutils import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` -+ elif func_cygming_ms_implib_p "$1" ; then -+ # ms-generated import library -+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` -+ else -+ # unknown -+ sharedlib_from_linklib_result="" -+ fi -+} - - - # func_extract_an_archive dir oldlib -@@ -2917,7 +3801,7 @@ func_extract_archives () - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do -- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` -+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` - $LIPO -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - $RM -rf unfat-$$ -@@ -2932,7 +3816,7 @@ func_extract_archives () - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac -- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` -+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` - done - - func_extract_archives_result="$my_oldobjs" -@@ -3014,7 +3898,110 @@ func_fallback_echo () - _LTECHO_EOF' - } - ECHO=\"$qECHO\" -- fi\ -+ fi -+ -+# Very basic option parsing. These options are (a) specific to -+# the libtool wrapper, (b) are identical between the wrapper -+# /script/ and the wrapper /executable/ which is used only on -+# windows platforms, and (c) all begin with the string "--lt-" -+# (application programs are unlikely to have options which match -+# this pattern). -+# -+# There are only two supported options: --lt-debug and -+# --lt-dump-script. There is, deliberately, no --lt-help. -+# -+# The first argument to this parsing function should be the -+# script's $0 value, followed by "$@". -+lt_option_debug= -+func_parse_lt_options () -+{ -+ lt_script_arg0=\$0 -+ shift -+ for lt_opt -+ do -+ case \"\$lt_opt\" in -+ --lt-debug) lt_option_debug=1 ;; -+ --lt-dump-script) -+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` -+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. -+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` -+ cat \"\$lt_dump_D/\$lt_dump_F\" -+ exit 0 -+ ;; -+ --lt-*) -+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 -+ exit 1 -+ ;; -+ esac -+ done -+ -+ # Print the debug banner immediately: -+ if test -n \"\$lt_option_debug\"; then -+ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 -+ fi -+} -+ -+# Used when --lt-debug. Prints its arguments to stdout -+# (redirection is the responsibility of the caller) -+func_lt_dump_args () -+{ -+ lt_dump_args_N=1; -+ for lt_arg -+ do -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" -+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` -+ done -+} -+ -+# Core function for launching the target application -+func_exec_program_core () -+{ -+" -+ case $host in -+ # Backslashes separate directories on plain windows -+ *-*-mingw | *-*-os2* | *-cegcc*) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -+" -+ ;; -+ -+ *) -+ $ECHO "\ -+ if test -n \"\$lt_option_debug\"; then -+ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 -+ func_lt_dump_args \${1+\"\$@\"} 1>&2 -+ fi -+ exec \"\$progdir/\$program\" \${1+\"\$@\"} -+" -+ ;; -+ esac -+ $ECHO "\ -+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -+ exit 1 -+} -+ -+# A function to encapsulate launching the target application -+# Strips options in the --lt-* namespace from \$@ and -+# launches target application with the remaining arguments. -+func_exec_program () -+{ -+ for lt_wr_arg -+ do -+ case \$lt_wr_arg in -+ --lt-*) ;; -+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; -+ esac -+ shift -+ done -+ func_exec_program_core \${1+\"\$@\"} -+} -+ -+ # Parse options -+ func_parse_lt_options \"\$0\" \${1+\"\$@\"} - - # Find the directory that this script lives in. - thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` -@@ -3078,7 +4065,7 @@ _LTECHO_EOF' - - # relink executable if necessary - if test -n \"\$relink_command\"; then -- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then : -+ if relink_command_output=\`eval \$relink_command 2>&1\`; then : - else - $ECHO \"\$relink_command_output\" >&2 - $RM \"\$progdir/\$file\" -@@ -3102,6 +4089,18 @@ _LTECHO_EOF' - - if test -f \"\$progdir/\$program\"; then" - -+ # fixup the dll searchpath if we need to. -+ # -+ # Fix the DLL searchpath if we need to. Do this before prepending -+ # to shlibpath, because on Windows, both are PATH and uninstalled -+ # libraries must come first. -+ if test -n "$dllsearchpath"; then -+ $ECHO "\ -+ # Add the dll search path components to the executable PATH -+ PATH=$dllsearchpath:\$PATH -+" -+ fi -+ - # Export our shlibpath_var if we have one. - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $ECHO "\ -@@ -3116,35 +4115,10 @@ _LTECHO_EOF' - " - fi - -- # fixup the dll searchpath if we need to. -- if test -n "$dllsearchpath"; then -- $ECHO "\ -- # Add the dll search path components to the executable PATH -- PATH=$dllsearchpath:\$PATH --" -- fi -- - $ECHO "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. --" -- case $host in -- # Backslashes separate directories on plain windows -- *-*-mingw | *-*-os2* | *-cegcc*) -- $ECHO "\ -- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} --" -- ;; -- -- *) -- $ECHO "\ -- exec \"\$progdir/\$program\" \${1+\"\$@\"} --" -- ;; -- esac -- $ECHO "\ -- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 -- exit 1 -+ func_exec_program \${1+\"\$@\"} - fi - else - # The program doesn't exist. -@@ -3158,166 +4132,6 @@ fi\ - } - - --# func_to_host_path arg --# --# Convert paths to host format when used with build tools. --# Intended for use with "native" mingw (where libtool itself --# is running under the msys shell), or in the following cross- --# build environments: --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# where wine is equipped with the `winepath' executable. --# In the native mingw case, the (msys) shell automatically --# converts paths for any non-msys applications it launches, --# but that facility isn't available from inside the cwrapper. --# Similar accommodations are necessary for $host mingw and --# $build cygwin. Calling this function does no harm for other --# $host/$build combinations not listed above. --# --# ARG is the path (on $build) that should be converted to --# the proper representation for $host. The result is stored --# in $func_to_host_path_result. --func_to_host_path () --{ -- func_to_host_path_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- case $build in -- *mingw* ) # actually, msys -- # awkward: cmd appends spaces to result -- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_path_result=`cygpath -w "$1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # Unfortunately, winepath does not exit with a non-zero -- # error code, so we are forced to check the contents of -- # stdout. On the other hand, if the command is not -- # found, the shell will set an exit code of 127 and print -- # *an error message* to stdout. So we must check for both -- # error code of zero AND non-empty stdout, which explains -- # the odd construction: -- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` -- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then -- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- else -- # Allow warning below. -- func_to_host_path_result= -- fi -- ;; -- esac -- if test -z "$func_to_host_path_result" ; then -- func_error "Could not determine host path corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback: -- func_to_host_path_result="$1" -- fi -- ;; -- esac -- fi --} --# end: func_to_host_path -- --# func_to_host_pathlist arg --# --# Convert pathlists to host format when used with build tools. --# See func_to_host_path(), above. This function supports the --# following $build/$host combinations (but does no harm for --# combinations not listed here): --# $build $host --# mingw (msys) mingw [e.g. native] --# cygwin mingw --# *nix + wine mingw --# --# Path separators are also converted from $build format to --# $host format. If ARG begins or ends with a path separator --# character, it is preserved (but converted to $host format) --# on output. --# --# ARG is a pathlist (on $build) that should be converted to --# the proper representation on $host. The result is stored --# in $func_to_host_pathlist_result. --func_to_host_pathlist () --{ -- func_to_host_pathlist_result="$1" -- if test -n "$1"; then -- case $host in -- *mingw* ) -- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' -- # Remove leading and trailing path separator characters from -- # ARG. msys behavior is inconsistent here, cygpath turns them -- # into '.;' and ';.', and winepath ignores them completely. -- func_stripname : : "$1" -- func_to_host_pathlist_tmp1=$func_stripname_result -- case $build in -- *mingw* ) # Actually, msys. -- # Awkward: cmd appends spaces to result. -- func_to_host_pathlist_result=` -- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | -- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` -- ;; -- *cygwin* ) -- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | -- $SED -e "$lt_sed_naive_backslashify"` -- ;; -- * ) -- # unfortunately, winepath doesn't convert pathlists -- func_to_host_pathlist_result="" -- func_to_host_pathlist_oldIFS=$IFS -- IFS=: -- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do -- IFS=$func_to_host_pathlist_oldIFS -- if test -n "$func_to_host_pathlist_f" ; then -- func_to_host_path "$func_to_host_pathlist_f" -- if test -n "$func_to_host_path_result" ; then -- if test -z "$func_to_host_pathlist_result" ; then -- func_to_host_pathlist_result="$func_to_host_path_result" -- else -- func_append func_to_host_pathlist_result ";$func_to_host_path_result" -- fi -- fi -- fi -- done -- IFS=$func_to_host_pathlist_oldIFS -- ;; -- esac -- if test -z "$func_to_host_pathlist_result"; then -- func_error "Could not determine the host path(s) corresponding to" -- func_error " \`$1'" -- func_error "Continuing, but uninstalled executables may not work." -- # Fallback. This may break if $1 contains DOS-style drive -- # specifications. The fix is not to complicate the expression -- # below, but for the user to provide a working wine installation -- # with winepath so that path translation in the cross-to-mingw -- # case works properly. -- lt_replace_pathsep_nix_to_dos="s|:|;|g" -- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ -- $SED -e "$lt_replace_pathsep_nix_to_dos"` -- fi -- # Now, add the leading and trailing path separators back -- case "$1" in -- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" -- ;; -- esac -- case "$1" in -- *: ) func_append func_to_host_pathlist_result ";" -- ;; -- esac -- ;; -- esac -- fi --} --# end: func_to_host_pathlist -- - # func_emit_cwrapperexe_src - # emit the source code for a wrapper executable on stdout - # Must ONLY be called from within func_mode_link because -@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src () - - This wrapper executable should never be moved out of the build directory. - If it is, it will not operate correctly. -- -- Currently, it simply execs the wrapper *script* "$SHELL $output", -- but could eventually absorb all of the scripts functionality and -- exec $objdir/$outputname directly. - */ - EOF - cat <<"EOF" -@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, - if (stale) { free ((void *) stale); stale = 0; } \ - } while (0) - --#undef LTWRAPPER_DEBUGPRINTF --#if defined LT_DEBUGWRAPPER --# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args --static void --ltwrapper_debugprintf (const char *fmt, ...) --{ -- va_list args; -- va_start (args, fmt); -- (void) vfprintf (stderr, fmt, args); -- va_end (args); --} -+#if defined(LT_DEBUGWRAPPER) -+static int lt_debug = 1; - #else --# define LTWRAPPER_DEBUGPRINTF(args) -+static int lt_debug = 0; - #endif - --const char *program_name = NULL; -+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ - - void *xmalloc (size_t num); - char *xstrdup (const char *string); -@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathsp - int make_executable (const char *path); - int check_executable (const char *path); - char *strendzap (char *str, const char *pat); --void lt_fatal (const char *message, ...); -+void lt_debugprintf (const char *file, int line, const char *fmt, ...); -+void lt_fatal (const char *file, int line, const char *message, ...); -+static const char *nonnull (const char *s); -+static const char *nonempty (const char *s); - void lt_setenv (const char *name, const char *value); - char *lt_extend_str (const char *orig_value, const char *add, int to_end); - void lt_update_exe_path (const char *name, const char *value); -@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f); - EOF - - cat <"))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", -+ nonnull (lt_argv_zero)); - for (i = 0; i < newargc; i++) - { -- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); -+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", -+ i, nonnull (newargz[i])); - } - - EOF -@@ -3706,7 +4529,9 @@ EOF - if (rval == -1) - { - /* failed to start process */ -- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(main) failed to launch target \"%s\": %s\n", -+ lt_argv_zero, nonnull (strerror (errno))); - return 127; - } - return rval; -@@ -3728,7 +4553,7 @@ xmalloc (size_t num) - { - void *p = (void *) malloc (num); - if (!p) -- lt_fatal ("Memory exhausted"); -+ lt_fatal (__FILE__, __LINE__, "memory exhausted"); - - return p; - } -@@ -3762,8 +4587,8 @@ check_executable (const char *path) - { - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3780,8 +4605,8 @@ make_executable (const char *path) - int rval = 0; - struct stat st; - -- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", -- path ? (*path ? path : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", -+ nonempty (path)); - if ((!path) || (!*path)) - return 0; - -@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper) - int tmp_len; - char *concat_name; - -- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", -- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); -+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", -+ nonempty (wrapper)); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; -@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = - XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper) - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) -- lt_fatal ("getcwd failed"); -+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", -+ nonnull (strerror (errno))); - tmp_len = strlen (tmp); - concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); -@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec) - int has_symlinks = 0; - while (strlen (tmp_pathspec) && !has_symlinks) - { -- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", -- tmp_pathspec)); -+ lt_debugprintf (__FILE__, __LINE__, -+ "checking path component for symlinks: %s\n", -+ tmp_pathspec); - if (lstat (tmp_pathspec, &s) == 0) - { - if (S_ISLNK (s.st_mode) != 0) -@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec) - } - else - { -- char *errstr = strerror (errno); -- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); -+ lt_fatal (__FILE__, __LINE__, -+ "error accessing file \"%s\": %s", -+ tmp_pathspec, nonnull (strerror (errno))); - } - } - XFREE (tmp_pathspec); -@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec) - tmp_pathspec = realpath (pathspec, buf); - if (tmp_pathspec == 0) - { -- lt_fatal ("Could not follow symlinks for %s", pathspec); -+ lt_fatal (__FILE__, __LINE__, -+ "could not follow symlinks for %s", pathspec); - } - return xstrdup (tmp_pathspec); - #endif -@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat) - return str; - } - -+void -+lt_debugprintf (const char *file, int line, const char *fmt, ...) -+{ -+ va_list args; -+ if (lt_debug) -+ { -+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); -+ va_start (args, fmt); -+ (void) vfprintf (stderr, fmt, args); -+ va_end (args); -+ } -+} -+ - static void --lt_error_core (int exit_status, const char *mode, -+lt_error_core (int exit_status, const char *file, -+ int line, const char *mode, - const char *message, va_list ap) - { -- fprintf (stderr, "%s: %s: ", program_name, mode); -+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); - vfprintf (stderr, message, ap); - fprintf (stderr, ".\n"); - -@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const ch - } - - void --lt_fatal (const char *message, ...) -+lt_fatal (const char *file, int line, const char *message, ...) - { - va_list ap; - va_start (ap, message); -- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); -+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); - va_end (ap); - } - -+static const char * -+nonnull (const char *s) -+{ -+ return s ? s : "(null)"; -+} -+ -+static const char * -+nonempty (const char *s) -+{ -+ return (s && !*s) ? "(empty)" : nonnull (s); -+} -+ - void - lt_setenv (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", -- (name ? name : ""), -- (value ? value : ""))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_setenv) setting '%s' to '%s'\n", -+ nonnull (name), nonnull (value)); - { - #ifdef HAVE_SETENV - /* always make a copy, for consistency with !HAVE_SETENV */ -@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, c - void - lt_update_exe_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -- (name ? name : ""), -- (value ? value : ""))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, co - void - lt_update_lib_path (const char *name, const char *value) - { -- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -- (name ? name : ""), -- (value ? value : ""))); -+ lt_debugprintf (__FILE__, __LINE__, -+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", -+ nonnull (name), nonnull (value)); - - if (name && *name && value && *value) - { -@@ -4222,7 +5078,7 @@ EOF - func_win32_import_lib_p () - { - $opt_debug -- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in -+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in - *import*) : ;; - *) false ;; - esac -@@ -4401,9 +5257,9 @@ func_mode_link () - ;; - *) - if test "$prev" = dlfiles; then -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $arg" - else -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $arg" - fi - prev= - continue -@@ -4427,7 +5283,7 @@ func_mode_link () - *-*-darwin*) - case "$deplibs " in - *" $qarg.ltframework "*) ;; -- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later -+ *) func_append deplibs " $qarg.ltframework" # this is fixed later - ;; - esac - ;; -@@ -4446,7 +5302,7 @@ func_mode_link () - moreargs= - for fil in `cat "$save_arg"` - do --# moreargs="$moreargs $fil" -+# func_append moreargs " $fil" - arg=$fil - # A libtool-controlled object. - -@@ -4475,7 +5331,7 @@ func_mode_link () - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -4487,7 +5343,7 @@ func_mode_link () - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -4557,12 +5413,12 @@ func_mode_link () - if test "$prev" = rpath; then - case "$rpath " in - *" $arg "*) ;; -- *) rpath="$rpath $arg" ;; -+ *) func_append rpath " $arg" ;; - esac - else - case "$xrpath " in - *" $arg "*) ;; -- *) xrpath="$xrpath $arg" ;; -+ *) func_append xrpath " $arg" ;; - esac - fi - prev= -@@ -4574,28 +5430,28 @@ func_mode_link () - continue - ;; - weak) -- weak_libs="$weak_libs $arg" -+ func_append weak_libs " $arg" - prev= - continue - ;; - xcclinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xcompiler) -- compiler_flags="$compiler_flags $qarg" -+ func_append compiler_flags " $qarg" - prev= - func_append compile_command " $qarg" - func_append finalize_command " $qarg" - continue - ;; - xlinker) -- linker_flags="$linker_flags $qarg" -- compiler_flags="$compiler_flags $wl$qarg" -+ func_append linker_flags " $qarg" -+ func_append compiler_flags " $wl$qarg" - prev= - func_append compile_command " $wl$qarg" - func_append finalize_command " $wl$qarg" -@@ -4686,15 +5542,16 @@ func_mode_link () - ;; - - -L*) -- func_stripname '-L' '' "$arg" -- dir=$func_stripname_result -- if test -z "$dir"; then -+ func_stripname "-L" '' "$arg" -+ if test -z "$func_stripname_result"; then - if test "$#" -gt 0; then - func_fatal_error "require no space between \`-L' and \`$1'" - else - func_fatal_error "need path for \`-L' option" - fi - fi -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -@@ -4706,10 +5563,16 @@ func_mode_link () - ;; - esac - case "$deplibs " in -- *" -L$dir "*) ;; -+ *" -L$dir "* | *" $arg "*) -+ # Will only happen for absolute or sysroot arguments -+ ;; - *) -- deplibs="$deplibs -L$dir" -- lib_search_path="$lib_search_path $dir" -+ # Preserve sysroot, but never include relative directories -+ case $dir in -+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; -+ *) func_append deplibs " -L$dir" ;; -+ esac -+ func_append lib_search_path " $dir" - ;; - esac - case $host in -@@ -4718,12 +5581,12 @@ func_mode_link () - case :$dllsearchpath: in - *":$dir:"*) ;; - ::) dllsearchpath=$dir;; -- *) dllsearchpath="$dllsearchpath:$dir";; -+ *) func_append dllsearchpath ":$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -4747,7 +5610,7 @@ func_mode_link () - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C and math libraries are in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - continue - ;; - *-*-sco3.2v5* | *-*-sco5v6*) -@@ -4758,9 +5621,6 @@ func_mode_link () - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; -- *-*-linux*) -- test "X$arg" = "X-lc" && continue -- ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in -@@ -4770,7 +5630,7 @@ func_mode_link () - ;; - esac - fi -- deplibs="$deplibs $arg" -+ func_append deplibs " $arg" - continue - ;; - -@@ -4782,8 +5642,8 @@ func_mode_link () - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - # Darwin uses the -arch flag to determine output architecture. -- -model|-arch|-isysroot) -- compiler_flags="$compiler_flags $arg" -+ -model|-arch|-isysroot|--sysroot) -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - prev=xcompiler -@@ -4791,12 +5651,12 @@ func_mode_link () - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - func_append compile_command " $arg" - func_append finalize_command " $arg" - case "$new_inherited_linker_flags " in - *" $arg "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; -+ * ) func_append new_inherited_linker_flags " $arg" ;; - esac - continue - ;; -@@ -4863,13 +5723,17 @@ func_mode_link () - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) ;; -+ =*) -+ func_stripname '=' '' "$dir" -+ dir=$lt_sysroot$func_stripname_result -+ ;; - *) - func_fatal_error "only absolute run-paths are allowed" - ;; - esac - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - continue - ;; -@@ -4922,8 +5786,8 @@ func_mode_link () - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $func_quote_for_eval_result" -- compiler_flags="$compiler_flags $func_quote_for_eval_result" -+ func_append arg " $func_quote_for_eval_result" -+ func_append compiler_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4938,9 +5802,9 @@ func_mode_link () - for flag in $args; do - IFS="$save_ifs" - func_quote_for_eval "$flag" -- arg="$arg $wl$func_quote_for_eval_result" -- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" -- linker_flags="$linker_flags $func_quote_for_eval_result" -+ func_append arg " $wl$func_quote_for_eval_result" -+ func_append compiler_flags " $wl$func_quote_for_eval_result" -+ func_append linker_flags " $func_quote_for_eval_result" - done - IFS="$save_ifs" - func_stripname ' ' '' "$arg" -@@ -4968,24 +5832,27 @@ func_mode_link () - arg="$func_quote_for_eval_result" - ;; - -- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler -- # -r[0-9][0-9]* specifies the processor on the SGI compiler -- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler -- # +DA*, +DD* enable 64-bit mode on the HP compiler -- # -q* pass through compiler args for the IBM compiler -- # -m*, -t[45]*, -txscale* pass through architecture-specific -- # compiler args for GCC -- # -F/path gives path to uninstalled frameworks, gcc on darwin -- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC -- # @file GCC response files -- # -tp=* Portland pgcc target processor selection -+ # Flags to be passed through unchanged, with rationale: -+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler -+ # -r[0-9][0-9]* specify processor for the SGI compiler -+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler -+ # +DA*, +DD* enable 64-bit mode for the HP compiler -+ # -q* compiler args for the IBM compiler -+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC -+ # -F/path path to uninstalled frameworks, gcc on darwin -+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC -+ # @file GCC response files -+ # -tp=* Portland pgcc target processor selection -+ # --sysroot=* for sysroot support -+ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) -+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) - func_quote_for_eval "$arg" - arg="$func_quote_for_eval_result" - func_append compile_command " $arg" - func_append finalize_command " $arg" -- compiler_flags="$compiler_flags $arg" -+ func_append compiler_flags " $arg" - continue - ;; - -@@ -4997,7 +5864,7 @@ func_mode_link () - - *.$objext) - # A standard object. -- objs="$objs $arg" -+ func_append objs " $arg" - ;; - - *.lo) -@@ -5028,7 +5895,7 @@ func_mode_link () - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then -- dlfiles="$dlfiles $pic_object" -+ func_append dlfiles " $pic_object" - prev= - continue - else -@@ -5040,7 +5907,7 @@ func_mode_link () - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. -- dlprefiles="$dlprefiles $pic_object" -+ func_append dlprefiles " $pic_object" - prev= - fi - -@@ -5085,24 +5952,25 @@ func_mode_link () - - *.$libext) - # An archive. -- deplibs="$deplibs $arg" -- old_deplibs="$old_deplibs $arg" -+ func_append deplibs " $arg" -+ func_append old_deplibs " $arg" - continue - ;; - - *.la) - # A libtool-controlled library. - -+ func_resolve_sysroot "$arg" - if test "$prev" = dlfiles; then - # This library was specified with -dlopen. -- dlfiles="$dlfiles $arg" -+ func_append dlfiles " $func_resolve_sysroot_result" - prev= - elif test "$prev" = dlprefiles; then - # The library was specified with -dlpreopen. -- dlprefiles="$dlprefiles $arg" -+ func_append dlprefiles " $func_resolve_sysroot_result" - prev= - else -- deplibs="$deplibs $arg" -+ func_append deplibs " $func_resolve_sysroot_result" - fi - continue - ;; -@@ -5127,7 +5995,7 @@ func_mode_link () - func_fatal_help "the \`$prevarg' option requires an argument" - - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then -- eval "arg=\"$export_dynamic_flag_spec\"" -+ eval arg=\"$export_dynamic_flag_spec\" - func_append compile_command " $arg" - func_append finalize_command " $arg" - fi -@@ -5144,11 +6012,13 @@ func_mode_link () - else - shlib_search_path= - fi -- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\"" -- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"" -+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" -+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - - func_dirname "$output" "/" "" - output_objdir="$func_dirname_result$objdir" -+ func_to_tool_file "$output_objdir/" -+ tool_output_objdir=$func_to_tool_file_result - # Create the object directory. - func_mkdir_p "$output_objdir" - -@@ -5169,12 +6039,12 @@ func_mode_link () - # Find all interdependent deplibs by searching for libraries - # that are linked more than once (e.g. -la -lb -la) - for deplib in $deplibs; do -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- libs="$libs $deplib" -+ func_append libs " $deplib" - done - - if test "$linkmode" = lib; then -@@ -5187,9 +6057,9 @@ func_mode_link () - if $opt_duplicate_compiler_generated_deps; then - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in -- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; -+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; - esac -- pre_post_deps="$pre_post_deps $pre_post_dep" -+ func_append pre_post_deps " $pre_post_dep" - done - fi - pre_post_deps= -@@ -5256,8 +6126,9 @@ func_mode_link () - for lib in $dlprefiles; do - # Ignore non-libtool-libs - dependency_libs= -+ func_resolve_sysroot "$lib" - case $lib in -- *.la) func_source "$lib" ;; -+ *.la) func_source "$func_resolve_sysroot_result" ;; - esac - - # Collect preopened libtool deplibs, except any this library -@@ -5267,7 +6138,7 @@ func_mode_link () - deplib_base=$func_basename_result - case " $weak_libs " in - *" $deplib_base "*) ;; -- *) deplibs="$deplibs $deplib" ;; -+ *) func_append deplibs " $deplib" ;; - esac - done - done -@@ -5288,11 +6159,11 @@ func_mode_link () - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- compiler_flags="$compiler_flags $deplib" -+ func_append compiler_flags " $deplib" - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5377,7 +6248,7 @@ func_mode_link () - if test "$linkmode" = lib ; then - case "$new_inherited_linker_flags " in - *" $deplib "*) ;; -- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; -+ * ) func_append new_inherited_linker_flags " $deplib" ;; - esac - fi - fi -@@ -5390,7 +6261,8 @@ func_mode_link () - test "$pass" = conv && continue - newdependency_libs="$deplib $newdependency_libs" - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - prog) - if test "$pass" = conv; then -@@ -5404,7 +6276,8 @@ func_mode_link () - finalize_deplibs="$deplib $finalize_deplibs" - fi - func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - *) - func_warning "\`-L' is ignored for archives/objects" -@@ -5415,17 +6288,21 @@ func_mode_link () - -R*) - if test "$pass" = link; then - func_stripname '-R' '' "$deplib" -- dir=$func_stripname_result -+ func_resolve_sysroot "$func_stripname_result" -+ dir=$func_resolve_sysroot_result - # Make sure the xrpath contains only unique directories. - case "$xrpath " in - *" $dir "*) ;; -- *) xrpath="$xrpath $dir" ;; -+ *) func_append xrpath " $dir" ;; - esac - fi - deplibs="$deplib $deplibs" - continue - ;; -- *.la) lib="$deplib" ;; -+ *.la) -+ func_resolve_sysroot "$deplib" -+ lib=$func_resolve_sysroot_result -+ ;; - *.$libext) - if test "$pass" = conv; then - deplibs="$deplib $deplibs" -@@ -5488,11 +6365,11 @@ func_mode_link () - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. -- newdlprefiles="$newdlprefiles $deplib" -+ func_append newdlprefiles " $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else -- newdlfiles="$newdlfiles $deplib" -+ func_append newdlfiles " $deplib" - fi - fi - continue -@@ -5538,7 +6415,7 @@ func_mode_link () - for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do - case " $new_inherited_linker_flags " in - *" $tmp_inherited_linker_flag "*) ;; -- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; -+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; - esac - done - fi -@@ -5546,8 +6423,8 @@ func_mode_link () - if test "$linkmode,$pass" = "lib,link" || - test "$linkmode,$pass" = "prog,scan" || - { test "$linkmode" != prog && test "$linkmode" != lib; }; then -- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" -- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" -+ test -n "$dlopen" && func_append dlfiles " $dlopen" -+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" - fi - - if test "$pass" = conv; then -@@ -5558,20 +6435,20 @@ func_mode_link () - func_fatal_error "cannot find name of link library for \`$lib'" - fi - # It is a libtool convenience library, so add in its objects. -- convenience="$convenience $ladir/$objdir/$old_library" -- old_convenience="$old_convenience $ladir/$objdir/$old_library" -+ func_append convenience " $ladir/$objdir/$old_library" -+ func_append old_convenience " $ladir/$objdir/$old_library" - elif test "$linkmode" != prog && test "$linkmode" != lib; then - func_fatal_error "\`$lib' is not a convenience library" - fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done - continue - fi # $pass = conv -@@ -5579,9 +6456,15 @@ func_mode_link () - - # Get the name of the library we link against. - linklib= -- for l in $old_library $library_names; do -- linklib="$l" -- done -+ if test -n "$old_library" && -+ { test "$prefer_static_libs" = yes || -+ test "$prefer_static_libs,$installed" = "built,no"; }; then -+ linklib=$old_library -+ else -+ for l in $old_library $library_names; do -+ linklib="$l" -+ done -+ fi - if test -z "$linklib"; then - func_fatal_error "cannot find name of link library for \`$lib'" - fi -@@ -5598,9 +6481,9 @@ func_mode_link () - # statically, we need to preload. We also need to preload any - # dependent libraries so libltdl's deplib preloader doesn't - # bomb out in the load deplibs phase. -- dlprefiles="$dlprefiles $lib $dependency_libs" -+ func_append dlprefiles " $lib $dependency_libs" - else -- newdlfiles="$newdlfiles $lib" -+ func_append newdlfiles " $lib" - fi - continue - fi # $pass = dlopen -@@ -5622,14 +6505,14 @@ func_mode_link () - - # Find the relevant object directory and library name. - if test "X$installed" = Xyes; then -- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then -+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - func_warning "library \`$lib' was moved." - dir="$ladir" - absdir="$abs_ladir" - libdir="$abs_ladir" - else -- dir="$libdir" -- absdir="$libdir" -+ dir="$lt_sysroot$libdir" -+ absdir="$lt_sysroot$libdir" - fi - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else -@@ -5637,12 +6520,12 @@ func_mode_link () - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later -- notinst_path="$notinst_path $abs_ladir" -+ func_append notinst_path " $abs_ladir" - fi - fi # $installed = yes - func_stripname 'lib' '.la' "$laname" -@@ -5653,20 +6536,46 @@ func_mode_link () - if test -z "$libdir" && test "$linkmode" = prog; then - func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" - fi -- # Prefer using a static library (so that no silly _DYNAMIC symbols -- # are required to link). -- if test -n "$old_library"; then -- newdlprefiles="$newdlprefiles $dir/$old_library" -- # Keep a list of preopened convenience libraries to check -- # that they are being used correctly in the link pass. -- test -z "$libdir" && \ -- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" -- # Otherwise, use the dlname, so that lt_dlopen finds it. -- elif test -n "$dlname"; then -- newdlprefiles="$newdlprefiles $dir/$dlname" -- else -- newdlprefiles="$newdlprefiles $dir/$linklib" -- fi -+ case "$host" in -+ # special handling for platforms with PE-DLLs. -+ *cygwin* | *mingw* | *cegcc* ) -+ # Linker will automatically link against shared library if both -+ # static and shared are present. Therefore, ensure we extract -+ # symbols from the import library if a shared library is present -+ # (otherwise, the dlopen module name will be incorrect). We do -+ # this by putting the import library name into $newdlprefiles. -+ # We recover the dlopen module name by 'saving' the la file -+ # name in a special purpose variable, and (later) extracting the -+ # dlname from the la file. -+ if test -n "$dlname"; then -+ func_tr_sh "$dir/$linklib" -+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" -+ func_append newdlprefiles " $dir/$linklib" -+ else -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ fi -+ ;; -+ * ) -+ # Prefer using a static library (so that no silly _DYNAMIC symbols -+ # are required to link). -+ if test -n "$old_library"; then -+ func_append newdlprefiles " $dir/$old_library" -+ # Keep a list of preopened convenience libraries to check -+ # that they are being used correctly in the link pass. -+ test -z "$libdir" && \ -+ func_append dlpreconveniencelibs " $dir/$old_library" -+ # Otherwise, use the dlname, so that lt_dlopen finds it. -+ elif test -n "$dlname"; then -+ func_append newdlprefiles " $dir/$dlname" -+ else -+ func_append newdlprefiles " $dir/$linklib" -+ fi -+ ;; -+ esac - fi # $pass = dlpreopen - - if test -z "$libdir"; then -@@ -5684,7 +6593,7 @@ func_mode_link () - - - if test "$linkmode" = prog && test "$pass" != link; then -- newlib_search_path="$newlib_search_path $ladir" -+ func_append newlib_search_path " $ladir" - deplibs="$lib $deplibs" - - linkalldeplibs=no -@@ -5697,7 +6606,8 @@ func_mode_link () - for deplib in $dependency_libs; do - case $deplib in - -L*) func_stripname '-L' '' "$deplib" -- newlib_search_path="$newlib_search_path $func_stripname_result" -+ func_resolve_sysroot "$func_stripname_result" -+ func_append newlib_search_path " $func_resolve_sysroot_result" - ;; - esac - # Need to link against all dependency_libs? -@@ -5708,12 +6618,12 @@ func_mode_link () - # or/and link against static libraries - newdependency_libs="$deplib $newdependency_libs" - fi -- if $opt_duplicate_deps ; then -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $deplib" - done # for deplib - continue - fi # $linkmode = prog... -@@ -5728,7 +6638,7 @@ func_mode_link () - # Make sure the rpath contains only unique directories. - case "$temp_rpath:" in - *"$absdir:"*) ;; -- *) temp_rpath="$temp_rpath$absdir:" ;; -+ *) func_append temp_rpath "$absdir:" ;; - esac - fi - -@@ -5740,7 +6650,7 @@ func_mode_link () - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5749,7 +6659,7 @@ func_mode_link () - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5774,12 +6684,12 @@ func_mode_link () - case $host in - *cygwin* | *mingw* | *cegcc*) - # No point in relinking DLLs because paths are not encoded -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=no - ;; - *) - if test "$installed" = no; then -- notinst_deplibs="$notinst_deplibs $lib" -+ func_append notinst_deplibs " $lib" - need_relink=yes - fi - ;; -@@ -5814,7 +6724,7 @@ func_mode_link () - *) - case "$compile_rpath " in - *" $absdir "*) ;; -- *) compile_rpath="$compile_rpath $absdir" -+ *) func_append compile_rpath " $absdir" ;; - esac - ;; - esac -@@ -5823,7 +6733,7 @@ func_mode_link () - *) - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" -+ *) func_append finalize_rpath " $libdir" ;; - esac - ;; - esac -@@ -5835,7 +6745,7 @@ func_mode_link () - shift - realname="$1" - shift -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - # use dlname if we got it. it's perfectly good, no? - if test -n "$dlname"; then - soname="$dlname" -@@ -5848,7 +6758,7 @@ func_mode_link () - versuffix="-$major" - ;; - esac -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -5877,7 +6787,7 @@ func_mode_link () - linklib=$newlib - fi # test -n "$old_archive_from_expsyms_cmds" - -- if test "$linkmode" = prog || test "$mode" != relink; then -+ if test "$linkmode" = prog || test "$opt_mode" != relink; then - add_shlibpath= - add_dir= - add= -@@ -5933,7 +6843,7 @@ func_mode_link () - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -5955,7 +6865,7 @@ func_mode_link () - if test -n "$add_shlibpath"; then - case :$compile_shlibpath: in - *":$add_shlibpath:"*) ;; -- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; -+ *) func_append compile_shlibpath "$add_shlibpath:" ;; - esac - fi - if test "$linkmode" = prog; then -@@ -5969,13 +6879,13 @@ func_mode_link () - test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - fi - fi - fi - -- if test "$linkmode" = prog || test "$mode" = relink; then -+ if test "$linkmode" = prog || test "$opt_mode" = relink; then - add_shlibpath= - add_dir= - add= -@@ -5989,7 +6899,7 @@ func_mode_link () - elif test "$hardcode_shlibpath_var" = yes; then - case :$finalize_shlibpath: in - *":$libdir:"*) ;; -- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; -+ *) func_append finalize_shlibpath "$libdir:" ;; - esac - add="-l$name" - elif test "$hardcode_automatic" = yes; then -@@ -6001,12 +6911,12 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" -+ add_dir="-L$lt_sysroot$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ func_append add_dir " -L$inst_prefix_dir$libdir" - ;; - esac - fi -@@ -6083,27 +6993,33 @@ func_mode_link () - temp_xrpath=$func_stripname_result - case " $xrpath " in - *" $temp_xrpath "*) ;; -- *) xrpath="$xrpath $temp_xrpath";; -+ *) func_append xrpath " $temp_xrpath";; - esac;; -- *) temp_deplibs="$temp_deplibs $libdir";; -+ *) func_append temp_deplibs " $libdir";; - esac - done - dependency_libs="$temp_deplibs" - fi - -- newlib_search_path="$newlib_search_path $absdir" -+ func_append newlib_search_path " $absdir" - # Link against this library - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" - # ... and its dependency_libs - tmp_libs= - for deplib in $dependency_libs; do - newdependency_libs="$deplib $newdependency_libs" -- if $opt_duplicate_deps ; then -+ case $deplib in -+ -L*) func_stripname '-L' '' "$deplib" -+ func_resolve_sysroot "$func_stripname_result";; -+ *) func_resolve_sysroot "$deplib" ;; -+ esac -+ if $opt_preserve_dup_deps ; then - case "$tmp_libs " in -- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; -+ *" $func_resolve_sysroot_result "*) -+ func_append specialdeplibs " $func_resolve_sysroot_result" ;; - esac - fi -- tmp_libs="$tmp_libs $deplib" -+ func_append tmp_libs " $func_resolve_sysroot_result" - done - - if test "$link_all_deplibs" != no; then -@@ -6113,8 +7029,10 @@ func_mode_link () - case $deplib in - -L*) path="$deplib" ;; - *.la) -+ func_resolve_sysroot "$deplib" -+ deplib=$func_resolve_sysroot_result - func_dirname "$deplib" "" "." -- dir="$func_dirname_result" -+ dir=$func_dirname_result - # We need an absolute path. - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -@@ -6130,7 +7048,7 @@ func_mode_link () - case $host in - *-*-darwin*) - depdepl= -- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` -+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` - if test -n "$deplibrary_names" ; then - for tmp in $deplibrary_names ; do - depdepl=$tmp -@@ -6141,8 +7059,8 @@ func_mode_link () - if test -z "$darwin_install_name"; then - darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` - fi -- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" -+ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" -+ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" - path= - fi - fi -@@ -6152,7 +7070,7 @@ func_mode_link () - ;; - esac - else -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" - test "$absdir" != "$libdir" && \ -@@ -6192,7 +7110,7 @@ func_mode_link () - for dir in $newlib_search_path; do - case "$lib_search_path " in - *" $dir "*) ;; -- *) lib_search_path="$lib_search_path $dir" ;; -+ *) func_append lib_search_path " $dir" ;; - esac - done - newlib_search_path= -@@ -6205,7 +7123,7 @@ func_mode_link () - fi - for var in $vars dependency_libs; do - # Add libraries to $var in reverse order -- eval tmp_libs=\$$var -+ eval tmp_libs=\"\$$var\" - new_libs= - for deplib in $tmp_libs; do - # FIXME: Pedantically, this is the right thing to do, so -@@ -6250,13 +7168,13 @@ func_mode_link () - -L*) - case " $tmp_libs " in - *" $deplib "*) ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - ;; -- *) tmp_libs="$tmp_libs $deplib" ;; -+ *) func_append tmp_libs " $deplib" ;; - esac - done -- eval $var=\$tmp_libs -+ eval $var=\"$tmp_libs\" - done # for var - fi - # Last step: remove runtime libs from dependency_libs -@@ -6269,7 +7187,7 @@ func_mode_link () - ;; - esac - if test -n "$i" ; then -- tmp_libs="$tmp_libs $i" -+ func_append tmp_libs " $i" - fi - done - dependency_libs=$tmp_libs -@@ -6310,7 +7228,7 @@ func_mode_link () - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" -- objs="$objs$old_deplibs" -+ func_append objs "$old_deplibs" - ;; - - lib) -@@ -6319,8 +7237,8 @@ func_mode_link () - lib*) - func_stripname 'lib' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - ;; - *) - test "$module" = no && \ -@@ -6330,8 +7248,8 @@ func_mode_link () - # Add the "lib" prefix for modules if required - func_stripname '' '.la' "$outputname" - name=$func_stripname_result -- eval "shared_ext=\"$shrext_cmds\"" -- eval "libname=\"$libname_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval libname=\"$libname_spec\" - else - func_stripname '' '.la' "$outputname" - libname=$func_stripname_result -@@ -6346,7 +7264,7 @@ func_mode_link () - echo - $ECHO "*** Warning: Linking the shared library $output against the non-libtool" - $ECHO "*** objects $objs is not portable!" -- libobjs="$libobjs $objs" -+ func_append libobjs " $objs" - fi - fi - -@@ -6544,7 +7462,7 @@ func_mode_link () - done - - # Make executables depend on our current version. -- verstring="$verstring:${current}.0" -+ func_append verstring ":${current}.0" - ;; - - qnx) -@@ -6612,10 +7530,10 @@ func_mode_link () - fi - - func_generate_dlsyms "$libname" "$libname" "yes" -- libobjs="$libobjs $symfileobj" -+ func_append libobjs " $symfileobj" - test "X$libobjs" = "X " && libobjs= - -- if test "$mode" != relink; then -+ if test "$opt_mode" != relink; then - # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= -@@ -6631,7 +7549,7 @@ func_mode_link () - continue - fi - fi -- removelist="$removelist $p" -+ func_append removelist " $p" - ;; - *) ;; - esac -@@ -6642,7 +7560,7 @@ func_mode_link () - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then -- oldlibs="$oldlibs $output_objdir/$libname.$libext" -+ func_append oldlibs " $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` -@@ -6659,10 +7577,11 @@ func_mode_link () - # If the user specified any rpath flags, then add them. - temp_xrpath= - for libdir in $xrpath; do -- temp_xrpath="$temp_xrpath -R$libdir" -+ func_replace_sysroot "$libdir" -+ func_append temp_xrpath " -R$func_replace_sysroot_result" - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -@@ -6676,7 +7595,7 @@ func_mode_link () - for lib in $old_dlfiles; do - case " $dlprefiles $dlfiles " in - *" $lib "*) ;; -- *) dlfiles="$dlfiles $lib" ;; -+ *) func_append dlfiles " $lib" ;; - esac - done - -@@ -6686,7 +7605,7 @@ func_mode_link () - for lib in $old_dlprefiles; do - case "$dlprefiles " in - *" $lib "*) ;; -- *) dlprefiles="$dlprefiles $lib" ;; -+ *) func_append dlprefiles " $lib" ;; - esac - done - -@@ -6698,7 +7617,7 @@ func_mode_link () - ;; - *-*-rhapsody* | *-*-darwin1.[012]) - # Rhapsody C library is in the System framework -- deplibs="$deplibs System.ltframework" -+ func_append deplibs " System.ltframework" - ;; - *-*-netbsd*) - # Don't link with libc until the a.out ld.so is fixed. -@@ -6715,7 +7634,7 @@ func_mode_link () - *) - # Add libc to deplibs on all other systems if necessary. - if test "$build_libtool_need_lc" = "yes"; then -- deplibs="$deplibs -lc" -+ func_append deplibs " -lc" - fi - ;; - esac -@@ -6764,18 +7683,18 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6789,7 +7708,7 @@ EOF - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6807,18 +7726,18 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $i "*) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - i="" - ;; - esac - fi - if test -n "$i" ; then -- eval "libname=\"$libname_spec\"" -- eval "deplib_matches=\"$library_names_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` - set dummy $deplib_matches; shift - deplib_match=$1 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - else - droppeddeps=yes - echo -@@ -6840,7 +7759,7 @@ EOF - fi - ;; - *) -- newdeplibs="$newdeplibs $i" -+ func_append newdeplibs " $i" - ;; - esac - done -@@ -6857,15 +7776,27 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` -+ if test -n "$file_magic_glob"; then -+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` -+ else -+ libnameglob=$libname -+ fi -+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do -- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` -+ if test "$want_nocaseglob" = yes; then -+ shopt -s nocaseglob -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ $nocaseglob -+ else -+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` -+ fi - for potent_lib in $potential_libs; do - # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null | -@@ -6885,10 +7816,10 @@ EOF - *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; - esac - done -- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null | -+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | - $SED -e 10q | - $EGREP "$file_magic_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6913,7 +7844,7 @@ EOF - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -6929,20 +7860,20 @@ EOF - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then - case " $predeps $postdeps " in - *" $a_deplib "*) -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - ;; - esac - fi - if test -n "$a_deplib" ; then -- eval "libname=\"$libname_spec\"" -+ libname=`eval "\\$ECHO \"$libname_spec\""` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ - $EGREP "$match_pattern_regex" > /dev/null; then -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - a_deplib="" - break 2 - fi -@@ -6967,7 +7898,7 @@ EOF - ;; - *) - # Add a -L argument. -- newdeplibs="$newdeplibs $a_deplib" -+ func_append newdeplibs " $a_deplib" - ;; - esac - done # Gone through all deplibs. -@@ -7071,7 +8002,7 @@ EOF - *) - case " $deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7081,10 +8012,10 @@ EOF - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - deplibs="$new_libs" -@@ -7101,10 +8032,12 @@ EOF - hardcode_libdirs= - dep_rpath= - rpath="$finalize_rpath" -- test "$mode" != relink && rpath="$compile_rpath$rpath" -+ test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" - else -@@ -7113,18 +8046,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- dep_rpath="$dep_rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append dep_rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_apped perm_rpath " $libdir" ;; - esac - fi - done -@@ -7133,40 +8066,38 @@ EOF - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then -- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else -- eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" -+ eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi - fi - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done -- eval $runpath_var=\$rpath\$$runpath_var -- export $runpath_var -+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" - fi - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" - fi - - shlibpath="$finalize_shlibpath" -- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" -+ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" - if test -n "$shlibpath"; then -- eval $shlibpath_var=\$shlibpath\$$shlibpath_var -- export $shlibpath_var -+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" - fi - - # Get the real and link names of the library. -- eval "shared_ext=\"$shrext_cmds\"" -- eval "library_names=\"$library_names_spec\"" -+ eval shared_ext=\"$shrext_cmds\" -+ eval library_names=\"$library_names_spec\" - set dummy $library_names - shift - realname="$1" - shift - - if test -n "$soname_spec"; then -- eval "soname=\"$soname_spec\"" -+ eval soname=\"$soname_spec\" - else - soname="$realname" - fi -@@ -7178,7 +8109,7 @@ EOF - linknames= - for link - do -- linknames="$linknames $link" -+ func_append linknames " $link" - done - - # Use standard objects if they are pic -@@ -7189,7 +8120,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" - export_symbols="$output_objdir/$libname.uexp" -- delfiles="$delfiles $export_symbols" -+ func_append delfiles " $export_symbols" - fi - - orig_export_symbols= -@@ -7220,13 +8151,45 @@ EOF - $opt_dry_run || $RM $export_symbols - cmds=$export_symbols_cmds - save_ifs="$IFS"; IFS='~' -- for cmd in $cmds; do -+ for cmd1 in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -- func_len " $cmd" -- len=$func_len_result -- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then -+ # Take the normal branch if the nm_file_list_spec branch -+ # doesn't work or if tool conversion is not needed. -+ case $nm_file_list_spec~$to_tool_file_cmd in -+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) -+ try_normal_branch=yes -+ eval cmd=\"$cmd1\" -+ func_len " $cmd" -+ len=$func_len_result -+ ;; -+ *) -+ try_normal_branch=no -+ ;; -+ esac -+ if test "$try_normal_branch" = yes \ -+ && { test "$len" -lt "$max_cmd_len" \ -+ || test "$max_cmd_len" -le -1; } -+ then -+ func_show_eval "$cmd" 'exit $?' -+ skipped_export=false -+ elif test -n "$nm_file_list_spec"; then -+ func_basename "$output" -+ output_la=$func_basename_result -+ save_libobjs=$libobjs -+ save_output=$output -+ output=${output_objdir}/${output_la}.nm -+ func_to_tool_file "$output" -+ libobjs=$nm_file_list_spec$func_to_tool_file_result -+ func_append delfiles " $output" -+ func_verbose "creating $NM input file list: $output" -+ for obj in $save_libobjs; do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > "$output" -+ eval cmd=\"$cmd1\" - func_show_eval "$cmd" 'exit $?' -+ output=$save_output -+ libobjs=$save_libobjs - skipped_export=false - else - # The command line is too long to execute in one step. -@@ -7248,7 +8211,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -@@ -7260,7 +8223,7 @@ EOF - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7270,7 +8233,7 @@ EOF - case " $convenience " in - *" $test_deplib "*) ;; - *) -- tmp_deplibs="$tmp_deplibs $test_deplib" -+ func_append tmp_deplibs " $test_deplib" - ;; - esac - done -@@ -7286,43 +8249,43 @@ EOF - fi - if test -n "$whole_archive_flag_spec"; then - save_libobjs=$libobjs -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - else - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - fi - - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then -- eval "flag=\"$thread_safe_flag_spec\"" -- linker_flags="$linker_flags $flag" -+ eval flag=\"$thread_safe_flag_spec\" -+ func_append linker_flags " $flag" - fi - - # Make a backup of the uninstalled library when relinking -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? - fi - - # Do each of the archive commands. - if test "$module" = yes && test -n "$module_cmds" ; then - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then -- eval "test_cmds=\"$module_expsym_cmds\"" -+ eval test_cmds=\"$module_expsym_cmds\" - cmds=$module_expsym_cmds - else -- eval "test_cmds=\"$module_cmds\"" -+ eval test_cmds=\"$module_cmds\" - cmds=$module_cmds - fi - else - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then -- eval "test_cmds=\"$archive_expsym_cmds\"" -+ eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds - else -- eval "test_cmds=\"$archive_cmds\"" -+ eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds - fi - fi -@@ -7366,10 +8329,13 @@ EOF - echo 'INPUT (' > $output - for obj in $save_libobjs - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done - echo ')' >> $output -- delfiles="$delfiles $output" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$func_to_tool_file_result - elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then - output=${output_objdir}/${output_la}.lnk - func_verbose "creating linker input file list: $output" -@@ -7383,15 +8349,17 @@ EOF - fi - for obj - do -- $ECHO "$obj" >> $output -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" >> $output - done -- delfiles="$delfiles $output" -- output=$firstobj\"$file_list_spec$output\" -+ func_append delfiles " $output" -+ func_to_tool_file "$output" -+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" - else - if test -n "$save_libobjs"; then - func_verbose "creating reloadable object files..." - output=$output_objdir/$output_la-${k}.$objext -- eval "test_cmds=\"$reload_cmds\"" -+ eval test_cmds=\"$reload_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -7411,12 +8379,12 @@ EOF - if test "$k" -eq 1 ; then - # The first file doesn't have a previous command to add. - reload_objs=$objlist -- eval "concat_cmds=\"$reload_cmds\"" -+ eval concat_cmds=\"$reload_cmds\" - else - # All subsequent reloadable object files will link in - # the last one created. - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" - fi - last_robj=$output_objdir/$output_la-${k}.$objext - func_arith $k + 1 -@@ -7433,11 +8401,11 @@ EOF - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - reload_objs="$objlist $last_robj" -- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$reload_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"" -+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" - fi -- delfiles="$delfiles $output" -+ func_append delfiles " $output" - - else - output= -@@ -7450,9 +8418,9 @@ EOF - libobjs=$output - # Append the command to create the export file. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\"" -+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" - if test -n "$last_robj"; then -- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\"" -+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" - fi - fi - -@@ -7471,7 +8439,7 @@ EOF - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7492,7 +8460,7 @@ EOF - if test -n "$export_symbols" && test -n "$include_expsyms"; then - tmp_export_symbols="$export_symbols" - test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" -- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" -+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' - fi - - if test -n "$orig_export_symbols"; then -@@ -7504,7 +8472,7 @@ EOF - # global variables. join(1) would be nice here, but unfortunately - # isn't a blessed tool. - $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter -- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" -+ func_append delfiles " $export_symbols $output_objdir/$libname.filter" - export_symbols=$output_objdir/$libname.def - $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols - fi -@@ -7515,7 +8483,7 @@ EOF - output=$save_output - - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then -- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" -+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - test "X$libobjs" = "X " && libobjs= - fi - # Expand the library linking commands again to reset the -@@ -7539,23 +8507,23 @@ EOF - - if test -n "$delfiles"; then - # Append the command to remove temporary files to $cmds. -- eval "cmds=\"\$cmds~\$RM $delfiles\"" -+ eval cmds=\"\$cmds~\$RM $delfiles\" - fi - - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- libobjs="$libobjs $func_extract_archives_result" -+ func_append libobjs " $func_extract_archives_result" - test "X$libobjs" = "X " && libobjs= - fi - - save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" -- eval "cmd=\"$cmd\"" -+ eval cmd=\"$cmd\" - $opt_silent || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" -@@ -7564,7 +8532,7 @@ EOF - lt_exit=$? - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -+ if test "$opt_mode" = relink; then - ( cd "$output_objdir" && \ - $RM "${realname}T" && \ - $MV "${realname}U" "$realname" ) -@@ -7576,8 +8544,8 @@ EOF - IFS="$save_ifs" - - # Restore the uninstalled library and exit -- if test "$mode" = relink; then -- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $? -+ if test "$opt_mode" = relink; then -+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then -@@ -7656,17 +8624,20 @@ EOF - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then -- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\"" -+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` - else - gentop="$output_objdir/${obj}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - fi - fi - -+ # If we're not building shared, we need to use non_pic_objs -+ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" -+ - # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test - -@@ -7690,7 +8661,7 @@ EOF - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - # $show "echo timestamp > $libobj" -- # $opt_dry_run || echo timestamp > $libobj || exit $? -+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? - exit $EXIT_SUCCESS - fi - -@@ -7740,8 +8711,8 @@ EOF - if test "$tagname" = CXX ; then - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[0123]) -- compile_command="$compile_command ${wl}-bind_at_load" -- finalize_command="$finalize_command ${wl}-bind_at_load" -+ func_append compile_command " ${wl}-bind_at_load" -+ func_append finalize_command " ${wl}-bind_at_load" - ;; - esac - fi -@@ -7761,7 +8732,7 @@ EOF - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) -- new_libs="$new_libs -L$path/$objdir" ;; -+ func_append new_libs " -L$path/$objdir" ;; - esac - ;; - esac -@@ -7771,17 +8742,17 @@ EOF - -L*) - case " $new_libs " in - *" $deplib "*) ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - ;; -- *) new_libs="$new_libs $deplib" ;; -+ *) func_append new_libs " $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - -- compile_command="$compile_command $compile_deplibs" -- finalize_command="$finalize_command $finalize_deplibs" -+ func_append compile_command " $compile_deplibs" -+ func_append finalize_command " $finalize_deplibs" - - if test -n "$rpath$xrpath"; then - # If the user specified any rpath flags, then add them. -@@ -7789,7 +8760,7 @@ EOF - # This is the magic to use -rpath. - case "$finalize_rpath " in - *" $libdir "*) ;; -- *) finalize_rpath="$finalize_rpath $libdir" ;; -+ *) func_append finalize_rpath " $libdir" ;; - esac - done - fi -@@ -7808,18 +8779,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; -- *) perm_rpath="$perm_rpath $libdir" ;; -+ *) func_append perm_rpath " $libdir" ;; - esac - fi - case $host in -@@ -7828,12 +8799,12 @@ EOF - case :$dllsearchpath: in - *":$libdir:"*) ;; - ::) dllsearchpath=$libdir;; -- *) dllsearchpath="$dllsearchpath:$libdir";; -+ *) func_append dllsearchpath ":$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - ::) dllsearchpath=$testbindir;; -- *) dllsearchpath="$dllsearchpath:$testbindir";; -+ *) func_append dllsearchpath ":$testbindir";; - esac - ;; - esac -@@ -7842,7 +8813,7 @@ EOF - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - compile_rpath="$rpath" - -@@ -7859,18 +8830,18 @@ EOF - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) -- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" -+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" - ;; - esac - fi - else -- eval "flag=\"$hardcode_libdir_flag_spec\"" -- rpath="$rpath $flag" -+ eval flag=\"$hardcode_libdir_flag_spec\" -+ func_append rpath " $flag" - fi - elif test -n "$runpath_var"; then - case "$finalize_perm_rpath " in - *" $libdir "*) ;; -- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; -+ *) func_append finalize_perm_rpath " $libdir" ;; - esac - fi - done -@@ -7878,7 +8849,7 @@ EOF - if test -n "$hardcode_libdir_separator" && - test -n "$hardcode_libdirs"; then - libdir="$hardcode_libdirs" -- eval "rpath=\" $hardcode_libdir_flag_spec\"" -+ eval rpath=\" $hardcode_libdir_flag_spec\" - fi - finalize_rpath="$rpath" - -@@ -7921,6 +8892,12 @@ EOF - exit_status=0 - func_show_eval "$link_command" 'exit_status=$?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Delete the generated files. - if test -f "$output_objdir/${outputname}S.${objext}"; then - func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' -@@ -7943,7 +8920,7 @@ EOF - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7951,7 +8928,7 @@ EOF - # We should set the runpath_var. - rpath= - for dir in $finalize_perm_rpath; do -- rpath="$rpath$dir:" -+ func_append rpath "$dir:" - done - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " - fi -@@ -7966,6 +8943,13 @@ EOF - $opt_dry_run || $RM $output - # Link the executable and exit - func_show_eval "$link_command" 'exit $?' -+ -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - exit $EXIT_SUCCESS - fi - -@@ -7999,6 +8983,12 @@ EOF - - func_show_eval "$link_command" 'exit $?' - -+ if test -n "$postlink_cmds"; then -+ func_to_tool_file "$output_objdir/$outputname" -+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` -+ func_execute_cmds "$postlink_cmds" 'exit $?' -+ fi -+ - # Now create the wrapper script. - func_verbose "creating $output" - -@@ -8096,7 +9086,7 @@ EOF - else - oldobjs="$old_deplibs $non_pic_objects" - if test "$preload" = yes && test -f "$symfileobj"; then -- oldobjs="$oldobjs $symfileobj" -+ func_append oldobjs " $symfileobj" - fi - fi - addlibs="$old_convenience" -@@ -8104,10 +9094,10 @@ EOF - - if test -n "$addlibs"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $addlibs -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # Do each command in the archive commands. -@@ -8118,10 +9108,10 @@ EOF - # Add any objects from preloaded convenience libraries - if test -n "$dlprefiles"; then - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - - func_extract_archives $gentop $dlprefiles -- oldobjs="$oldobjs $func_extract_archives_result" -+ func_append oldobjs " $func_extract_archives_result" - fi - - # POSIX demands no paths to be encoded in archives. We have -@@ -8139,7 +9129,7 @@ EOF - else - echo "copying selected object files to avoid basename conflicts..." - gentop="$output_objdir/${outputname}x" -- generated="$generated $gentop" -+ func_append generated " $gentop" - func_mkdir_p "$gentop" - save_oldobjs=$oldobjs - oldobjs= -@@ -8163,18 +9153,28 @@ EOF - esac - done - func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" -- oldobjs="$oldobjs $gentop/$newobj" -+ func_append oldobjs " $gentop/$newobj" - ;; -- *) oldobjs="$oldobjs $obj" ;; -+ *) func_append oldobjs " $obj" ;; - esac - done - fi -- eval "cmds=\"$old_archive_cmds\"" -+ eval cmds=\"$old_archive_cmds\" - - func_len " $cmds" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then - cmds=$old_archive_cmds -+ elif test -n "$archiver_list_spec"; then -+ func_verbose "using command file archive linking..." -+ for obj in $oldobjs -+ do -+ func_to_tool_file "$obj" -+ $ECHO "$func_to_tool_file_result" -+ done > $output_objdir/$libname.libcmd -+ func_to_tool_file "$output_objdir/$libname.libcmd" -+ oldobjs=" $archiver_list_spec$func_to_tool_file_result" -+ cmds=$old_archive_cmds - else - # the command line is too long to link in one step, link in parts - func_verbose "using piecewise archive linking..." -@@ -8189,7 +9189,7 @@ EOF - do - last_oldobj=$obj - done -- eval "test_cmds=\"$old_archive_cmds\"" -+ eval test_cmds=\"$old_archive_cmds\" - func_len " $test_cmds" - len0=$func_len_result - len=$len0 -@@ -8208,7 +9208,7 @@ EOF - RANLIB=$save_RANLIB - fi - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ -- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\"" -+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - len=$len0 - fi -@@ -8216,9 +9216,9 @@ EOF - RANLIB=$save_RANLIB - oldobjs=$objlist - if test "X$oldobjs" = "X" ; then -- eval "cmds=\"\$concat_cmds\"" -+ eval cmds=\"\$concat_cmds\" - else -- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\"" -+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" - fi - fi - fi -@@ -8268,12 +9268,23 @@ EOF - *.la) - func_basename "$deplib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` -+ func_resolve_sysroot "$deplib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$deplib' is not a valid libtool archive" -- newdependency_libs="$newdependency_libs $libdir/$name" -+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" -+ ;; -+ -L*) -+ func_stripname -L '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -L$func_replace_sysroot_result" - ;; -- *) newdependency_libs="$newdependency_libs $deplib" ;; -+ -R*) -+ func_stripname -R '' "$deplib" -+ func_replace_sysroot "$func_stripname_result" -+ func_append newdependency_libs " -R$func_replace_sysroot_result" -+ ;; -+ *) func_append newdependency_libs " $deplib" ;; - esac - done - dependency_libs="$newdependency_libs" -@@ -8284,12 +9295,14 @@ EOF - *.la) - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` -+ - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlfiles="$newdlfiles $libdir/$name" -+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" - ;; -- *) newdlfiles="$newdlfiles $lib" ;; -+ *) func_append newdlfiles " $lib" ;; - esac - done - dlfiles="$newdlfiles" -@@ -8303,10 +9316,11 @@ EOF - # the library: - func_basename "$lib" - name="$func_basename_result" -- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` -+ func_resolve_sysroot "$lib" -+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` - test -z "$libdir" && \ - func_fatal_error "\`$lib' is not a valid libtool archive" -- newdlprefiles="$newdlprefiles $libdir/$name" -+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" - ;; - esac - done -@@ -8318,7 +9332,7 @@ EOF - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlfiles="$newdlfiles $abs" -+ func_append newdlfiles " $abs" - done - dlfiles="$newdlfiles" - newdlprefiles= -@@ -8327,7 +9341,7 @@ EOF - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; - *) abs=`pwd`"/$lib" ;; - esac -- newdlprefiles="$newdlprefiles $abs" -+ func_append newdlprefiles " $abs" - done - dlprefiles="$newdlprefiles" - fi -@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\"" - exit $EXIT_SUCCESS - } - --{ test "$mode" = link || test "$mode" = relink; } && -+{ test "$opt_mode" = link || test "$opt_mode" = relink; } && - func_mode_link ${1+"$@"} - - -@@ -8432,9 +9446,9 @@ func_mode_uninstall () - for arg - do - case $arg in -- -f) RM="$RM $arg"; rmforce=yes ;; -- -*) RM="$RM $arg" ;; -- *) files="$files $arg" ;; -+ -f) func_append RM " $arg"; rmforce=yes ;; -+ -*) func_append RM " $arg" ;; -+ *) func_append files " $arg" ;; - esac - done - -@@ -8443,24 +9457,23 @@ func_mode_uninstall () - - rmdirs= - -- origobjdir="$objdir" - for file in $files; do - func_dirname "$file" "" "." - dir="$func_dirname_result" - if test "X$dir" = X.; then -- objdir="$origobjdir" -+ odir="$objdir" - else -- objdir="$dir/$origobjdir" -+ odir="$dir/$objdir" - fi - func_basename "$file" - name="$func_basename_result" -- test "$mode" = uninstall && objdir="$dir" -+ test "$opt_mode" = uninstall && odir="$dir" - -- # Remember objdir for removal later, being careful to avoid duplicates -- if test "$mode" = clean; then -+ # Remember odir for removal later, being careful to avoid duplicates -+ if test "$opt_mode" = clean; then - case " $rmdirs " in -- *" $objdir "*) ;; -- *) rmdirs="$rmdirs $objdir" ;; -+ *" $odir "*) ;; -+ *) func_append rmdirs " $odir" ;; - esac - fi - -@@ -8486,18 +9499,17 @@ func_mode_uninstall () - - # Delete the libtool libraries and symlinks. - for n in $library_names; do -- rmfiles="$rmfiles $objdir/$n" -+ func_append rmfiles " $odir/$n" - done -- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" -+ test -n "$old_library" && func_append rmfiles " $odir/$old_library" - -- case "$mode" in -+ case "$opt_mode" in - clean) -- case " $library_names " in -- # " " in the beginning catches empty $dlname -+ case " $library_names " in - *" $dlname "*) ;; -- *) rmfiles="$rmfiles $objdir/$dlname" ;; -+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; - esac -- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" -+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" - ;; - uninstall) - if test -n "$library_names"; then -@@ -8525,19 +9537,19 @@ func_mode_uninstall () - # Add PIC object to the list of files to remove. - if test -n "$pic_object" && - test "$pic_object" != none; then -- rmfiles="$rmfiles $dir/$pic_object" -+ func_append rmfiles " $dir/$pic_object" - fi - - # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" && - test "$non_pic_object" != none; then -- rmfiles="$rmfiles $dir/$non_pic_object" -+ func_append rmfiles " $dir/$non_pic_object" - fi - fi - ;; - - *) -- if test "$mode" = clean ; then -+ if test "$opt_mode" = clean ; then - noexename=$name - case $file in - *.exe) -@@ -8547,7 +9559,7 @@ func_mode_uninstall () - noexename=$func_stripname_result - # $file with .exe has already been added to rmfiles, - # add $file without .exe -- rmfiles="$rmfiles $file" -+ func_append rmfiles " $file" - ;; - esac - # Do a test to see if this is a libtool program. -@@ -8556,7 +9568,7 @@ func_mode_uninstall () - func_ltwrapper_scriptname "$file" - relink_command= - func_source $func_ltwrapper_scriptname_result -- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" -+ func_append rmfiles " $func_ltwrapper_scriptname_result" - else - relink_command= - func_source $dir/$noexename -@@ -8564,12 +9576,12 @@ func_mode_uninstall () - - # note $name still contains .exe if it was in $file originally - # as does the version of $file that was added into $rmfiles -- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" -+ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then -- rmfiles="$rmfiles $objdir/lt-$name" -+ func_append rmfiles " $odir/lt-$name" - fi - if test "X$noexename" != "X$name" ; then -- rmfiles="$rmfiles $objdir/lt-${noexename}.c" -+ func_append rmfiles " $odir/lt-${noexename}.c" - fi - fi - fi -@@ -8577,7 +9589,6 @@ func_mode_uninstall () - esac - func_show_eval "$RM $rmfiles" 'exit_status=1' - done -- objdir="$origobjdir" - - # Try to remove the ${objdir}s in the directories where we deleted files - for dir in $rmdirs; do -@@ -8589,16 +9600,16 @@ func_mode_uninstall () - exit $exit_status - } - --{ test "$mode" = uninstall || test "$mode" = clean; } && -+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && - func_mode_uninstall ${1+"$@"} - --test -z "$mode" && { -+test -z "$opt_mode" && { - help="$generic_help" - func_fatal_help "you must specify a MODE" - } - - test -z "$exec_cmd" && \ -- func_fatal_help "invalid operation mode \`$mode'" -+ func_fatal_help "invalid operation mode \`$opt_mode'" - - if test -n "$exec_cmd"; then - eval exec "$exec_cmd" -Index: git/ltoptions.m4 -=================================================================== ---- git.orig/ltoptions.m4 -+++ git/ltoptions.m4 -@@ -8,7 +8,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 6 ltoptions.m4 -+# serial 7 ltoptions.m4 - - # This is to help aclocal find these macros, as it can't see m4_define. - AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) -Index: git/ltversion.m4 -=================================================================== ---- git.orig/ltversion.m4 -+++ git/ltversion.m4 -@@ -7,17 +7,17 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# Generated from ltversion.in. -+# @configure_input@ - --# serial 3134 ltversion.m4 -+# serial 3293 ltversion.m4 - # This file is part of GNU Libtool - --m4_define([LT_PACKAGE_VERSION], [2.2.7a]) --m4_define([LT_PACKAGE_REVISION], [1.3134]) -+m4_define([LT_PACKAGE_VERSION], [2.4]) -+m4_define([LT_PACKAGE_REVISION], [1.3293]) - - AC_DEFUN([LTVERSION_VERSION], --[macro_version='2.2.7a' --macro_revision='1.3134' -+[macro_version='2.4' -+macro_revision='1.3293' - _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) - _LT_DECL(, macro_revision, 0) - ]) -Index: git/lt~obsolete.m4 -=================================================================== ---- git.orig/lt~obsolete.m4 -+++ git/lt~obsolete.m4 -@@ -7,7 +7,7 @@ - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. - --# serial 4 lt~obsolete.m4 -+# serial 5 lt~obsolete.m4 - - # These exist entirely to fool aclocal when bootstrapping libtool. - # -Index: git/opcodes/configure -=================================================================== ---- git.orig/opcodes/configure -+++ git/opcodes/configure -@@ -681,6 +681,9 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL -+ac_ct_AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -799,6 +802,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_targets - enable_werror -@@ -1463,6 +1467,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -5404,8 +5410,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -5445,7 +5451,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 -@@ -6131,8 +6137,8 @@ $as_echo_n "checking whether the shell u - # 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 -@@ -6181,6 +6187,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 : -@@ -6197,6 +6277,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' -@@ -6365,7 +6450,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 - ;; -@@ -6519,6 +6605,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 -@@ -6534,9 +6635,162 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_AR+:} false; then : -@@ -6552,7 +6806,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 -@@ -6572,11 +6826,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 : -@@ -6592,7 +6850,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 -@@ -6611,6 +6869,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 -@@ -6622,12 +6884,11 @@ 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} -+ - - - -@@ -6638,6 +6899,63 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -@@ -6973,8 +7291,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= -@@ -7010,6 +7328,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 -@@ -7051,6 +7370,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 -@@ -7062,7 +7393,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; - } -@@ -7088,8 +7419,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 -@@ -7099,8 +7430,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 -@@ -7137,6 +7468,14 @@ 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 -+ -+ - - - -@@ -7158,6 +7497,47 @@ 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; } -+ -+ -+ -+ -+ - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : - enableval=$enable_libtool_lock; -@@ -7364,6 +7744,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*) -@@ -7927,6 +8424,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 -@@ -8092,7 +8591,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -8181,7 +8681,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, -@@ -8479,8 +8979,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,' -@@ -8646,6 +9144,12 @@ $as_echo_n "checking for $compiler optio - 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) -@@ -8708,7 +9212,7 @@ $as_echo_n "checking for $compiler optio - 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,';; -@@ -8765,13 +9269,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. -@@ -8832,6 +9340,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -9182,7 +9695,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' -@@ -9281,12 +9795,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 -@@ -9300,8 +9814,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 - ;; - -@@ -9319,8 +9833,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 -@@ -9366,8 +9880,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 -@@ -9497,7 +10011,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 -@@ -9510,22 +10030,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" -@@ -9537,7 +10064,13 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9550,22 +10083,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, -@@ -9610,20 +10150,63 @@ if test -z "$aix_libpath"; then aix_libp - # 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*) -@@ -9684,7 +10267,7 @@ if test -z "$aix_libpath"; then aix_libp - - # 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 -@@ -9692,7 +10275,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9708,7 +10291,7 @@ if test -z "$aix_libpath"; then aix_libp - - 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 -@@ -9732,10 +10315,10 @@ if test -z "$aix_libpath"; then aix_libp - 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 -@@ -9814,23 +10397,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' -@@ -9915,7 +10511,7 @@ rm -f core conftest.err conftest.$ac_obj - 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 \*' -@@ -9934,9 +10530,9 @@ rm -f core conftest.err conftest.$ac_obj - 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"*) -@@ -10512,8 +11108,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}`~ -@@ -10546,13 +11143,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 - ;; -@@ -10644,7 +11299,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 - ;; - -@@ -11440,7 +12095,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11443 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11484,10 +12139,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); -@@ -11546,7 +12201,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11549 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11590,10 +12245,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); -@@ -12831,7 +13486,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 -@@ -13807,13 +14462,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -13828,14 +14490,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -13868,12 +14533,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -13928,8 +14593,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 \ -@@ -13939,12 +14609,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 \ -@@ -13960,7 +14632,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 \ -@@ -13996,6 +14667,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -14761,7 +15433,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. -@@ -14864,19 +15537,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 - -@@ -14906,6 +15602,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -14915,6 +15617,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 - -@@ -15029,12 +15734,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 - -@@ -15121,9 +15826,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 - -@@ -15139,6 +15841,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 - -@@ -15171,210 +15876,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - -Index: git/opcodes/configure.ac -=================================================================== ---- git.orig/opcodes/configure.ac -+++ git/opcodes/configure.ac -@@ -166,7 +166,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 -Index: git/zlib/configure -=================================================================== ---- git.orig/zlib/configure -+++ git/zlib/configure -@@ -646,8 +646,11 @@ OTOOL - LIPO - NMEDIT - DSYMUTIL -+MANIFEST_TOOL - RANLIB -+ac_ct_AR - AR -+DLLTOOL - OBJDUMP - LN_S - NM -@@ -774,6 +777,7 @@ enable_static - with_pic - enable_fast_install - with_gnu_ld -+with_libtool_sysroot - enable_libtool_lock - enable_host_shared - ' -@@ -1428,6 +1432,8 @@ Optional Packages: - --with-pic try to use only PIC/non-PIC objects [default=use - both] - --with-gnu-ld assume the C compiler uses GNU ld [default=no] -+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR -+ (or the compiler's sysroot if not specified). - - Some influential environment variables: - CC C compiler command -@@ -4147,8 +4153,8 @@ esac - - - --macro_version='2.2.7a' --macro_revision='1.3134' -+macro_version='2.4' -+macro_revision='1.3293' - - - -@@ -4188,7 +4194,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 - $as_echo_n "checking how to print strings... " >&6; } - # Test print first, because it will be a builtin if present. --if test "X`print -r -- -n 2>/dev/null`" = X-n && \ -+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' - elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -5004,8 +5010,8 @@ $as_echo_n "checking whether the shell u - # Try some XSI features - xsi_shell=no - ( _lt_dummy="a/b/c" -- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ -- = c,a/b,, \ -+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ -+ = c,a/b,b/c, \ - && eval 'test $(( 1 + 1 )) -eq 2 \ - && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ - && xsi_shell=yes -@@ -5054,6 +5060,80 @@ esac - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -+$as_echo_n "checking how to convert $build file names to $host format... " >&6; } -+if ${lt_cv_to_host_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 -+ ;; -+ esac -+ ;; -+ *-*-cygwin* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin -+ ;; -+ *-*-cygwin* ) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+ * ) # otherwise, assume *nix -+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin -+ ;; -+ esac -+ ;; -+ * ) # unhandled hosts (and "normal" native builds) -+ lt_cv_to_host_file_cmd=func_convert_file_noop -+ ;; -+esac -+ -+fi -+ -+to_host_file_cmd=$lt_cv_to_host_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -+$as_echo "$lt_cv_to_host_file_cmd" >&6; } -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } -+if ${lt_cv_to_tool_file_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ #assume ordinary cross tools, or native build. -+lt_cv_to_tool_file_cmd=func_convert_file_noop -+case $host in -+ *-*-mingw* ) -+ case $build in -+ *-*-mingw* ) # actually msys -+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 -+ ;; -+ esac -+ ;; -+esac -+ -+fi -+ -+to_tool_file_cmd=$lt_cv_to_tool_file_cmd -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -+$as_echo "$lt_cv_to_tool_file_cmd" >&6; } -+ -+ -+ -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 - $as_echo_n "checking for $LD option to reload object files... " >&6; } - if ${lt_cv_ld_reload_flag+:} false; then : -@@ -5070,6 +5150,11 @@ case $reload_flag in - esac - reload_cmds='$LD$reload_flag -o $output$reload_objs' - case $host_os in -+ cygwin* | mingw* | pw32* | cegcc*) -+ if test "$GCC" != yes; then -+ reload_cmds=false -+ fi -+ ;; - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -5238,7 +5323,8 @@ mingw* | pw32*) - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else -- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' -+ # Keep this pattern in sync with the one in func_win32_libid. -+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; -@@ -5392,6 +5478,21 @@ esac - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 - $as_echo "$lt_cv_deplibs_check_method" >&6; } -+ -+file_magic_glob= -+want_nocaseglob=no -+if test "$build" = "$host"; then -+ case $host_os in -+ mingw* | pw32*) -+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then -+ want_nocaseglob=yes -+ else -+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` -+ fi -+ ;; -+ esac -+fi -+ - file_magic_cmd=$lt_cv_file_magic_cmd - deplibs_check_method=$lt_cv_deplibs_check_method - test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -5407,9 +5508,163 @@ test -z "$deplibs_check_method" && depli - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. --set dummy ${ac_tool_prefix}ar; ac_word=$2 -+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -+set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$DLLTOOL"; then -+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+DLLTOOL=$ac_cv_prog_DLLTOOL -+if test -n "$DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -+$as_echo "$DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_DLLTOOL"; then -+ ac_ct_DLLTOOL=$DLLTOOL -+ # Extract the first word of "dlltool", so it can be a program name with args. -+set dummy dlltool; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_DLLTOOL"; then -+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_DLLTOOL="dlltool" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -+if test -n "$ac_ct_DLLTOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -+$as_echo "$ac_ct_DLLTOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_DLLTOOL" = x; then -+ DLLTOOL="false" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ DLLTOOL=$ac_ct_DLLTOOL -+ fi -+else -+ DLLTOOL="$ac_cv_prog_DLLTOOL" -+fi -+ -+test -z "$DLLTOOL" && DLLTOOL=dlltool -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -+$as_echo_n "checking how to associate runtime and link libraries... " >&6; } -+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_sharedlib_from_linklib_cmd='unknown' -+ -+case $host_os in -+cygwin* | mingw* | pw32* | cegcc*) -+ # two different shell functions defined in ltmain.sh -+ # decide which to use based on capabilities of $DLLTOOL -+ case `$DLLTOOL --help 2>&1` in -+ *--identify-strict*) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib -+ ;; -+ *) -+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback -+ ;; -+ esac -+ ;; -+*) -+ # fallback: assume linklib IS sharedlib -+ lt_cv_sharedlib_from_linklib_cmd="$ECHO" -+ ;; -+esac -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO -+ -+ -+ -+ -+ -+ -+ -+ -+if test -n "$ac_tool_prefix"; then -+ for ac_prog in ar -+ do -+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -+set dummy $ac_tool_prefix$ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_AR+:} false; then : -@@ -5425,7 +5680,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_AR="${ac_tool_prefix}ar" -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -5445,11 +5700,15 @@ $as_echo "no" >&6; } - fi - - -+ test -n "$AR" && break -+ done - fi --if test -z "$ac_cv_prog_AR"; then -+if test -z "$AR"; then - ac_ct_AR=$AR -- # Extract the first word of "ar", so it can be a program name with args. --set dummy ar; ac_word=$2 -+ for ac_prog in ar -+do -+ # Extract the first word of "$ac_prog", so it can be a program name with args. -+set dummy $ac_prog; ac_word=$2 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 - $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_ac_ct_AR+:} false; then : -@@ -5465,7 +5724,7 @@ do - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_AR="ar" -+ ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -@@ -5484,6 +5743,10 @@ else - $as_echo "no" >&6; } - fi - -+ -+ test -n "$ac_ct_AR" && break -+done -+ - if test "x$ac_ct_AR" = x; then - AR="false" - else -@@ -5495,12 +5758,10 @@ ac_tool_warned=yes ;; - esac - AR=$ac_ct_AR - fi --else -- AR="$ac_cv_prog_AR" - fi - --test -z "$AR" && AR=ar --test -z "$AR_FLAGS" && AR_FLAGS=cru -+: ${AR=ar} -+: ${AR_FLAGS=cru} - - - -@@ -5512,6 +5773,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -+$as_echo_n "checking for archiver @FILE support... " >&6; } -+if ${lt_cv_ar_at_file+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_ar_at_file=no -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ echo conftest.$ac_objext > conftest.lst -+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -eq 0; then -+ # Ensure the archiver fails upon bogus file names. -+ rm -f conftest.$ac_objext libconftest.a -+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 -+ (eval $lt_ar_try) 2>&5 -+ ac_status=$? -+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 -+ test $ac_status = 0; } -+ if test "$ac_status" -ne 0; then -+ lt_cv_ar_at_file=@ -+ fi -+ fi -+ rm -f conftest.* libconftest.a -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -+$as_echo "$lt_cv_ar_at_file" >&6; } -+ -+if test "x$lt_cv_ar_at_file" = xno; then -+ archiver_list_spec= -+else -+ archiver_list_spec=$lt_cv_ar_at_file -+fi -+ -+ -+ -+ -+ -+ -+ - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. - set dummy ${ac_tool_prefix}strip; ac_word=$2 -@@ -5846,8 +6165,8 @@ esac - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" - - # Transform an extracted symbol line into symbol name and symbol address --lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" --lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" - - # Handle CRLF in mingw tool chain - opt_cr= -@@ -5883,6 +6202,7 @@ for ac_symprfx in "" "_"; do - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi -+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no -@@ -5924,6 +6244,18 @@ _LT_EOF - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) -+/* DATA imports from DLLs on WIN32 con't be const, because runtime -+ relocations are performed -- see ld's documentation on pseudo-relocs. */ -+# define LT_DLSYM_CONST -+#elif defined(__osf__) -+/* This system does not cope well with relocations in const data. */ -+# define LT_DLSYM_CONST -+#else -+# define LT_DLSYM_CONST const -+#endif -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -5935,7 +6267,7 @@ _LT_EOF - cat <<_LT_EOF >> conftest.$ac_ext - - /* The mapping between symbol names and symbols. */ --const struct { -+LT_DLSYM_CONST struct { - const char *name; - void *address; - } -@@ -5961,8 +6293,8 @@ static const void *lt_preloaded_setup() - _LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext -- lt_save_LIBS="$LIBS" -- lt_save_CFLAGS="$CFLAGS" -+ lt_globsym_save_LIBS=$LIBS -+ lt_globsym_save_CFLAGS=$CFLAGS - LIBS="conftstm.$ac_objext" - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -5972,8 +6304,8 @@ _LT_EOF - test $ac_status = 0; } && test -s conftest${ac_exeext}; then - pipe_works=yes - fi -- LIBS="$lt_save_LIBS" -- CFLAGS="$lt_save_CFLAGS" -+ LIBS=$lt_globsym_save_LIBS -+ CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi -@@ -6010,6 +6342,18 @@ 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 -+ -+ -+ -+ -+ -+ - - - -@@ -6031,6 +6375,42 @@ fi - - - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -+$as_echo_n "checking for sysroot... " >&6; } -+ -+# Check whether --with-libtool-sysroot was given. -+if test "${with_libtool_sysroot+set}" = set; then : -+ withval=$with_libtool_sysroot; -+else -+ with_libtool_sysroot=no -+fi -+ -+ -+lt_sysroot= -+case ${with_libtool_sysroot} in #( -+ yes) -+ if test "$GCC" = yes; then -+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` -+ fi -+ ;; #( -+ /*) -+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` -+ ;; #( -+ no|'') -+ ;; #( -+ *) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 -+$as_echo "${with_libtool_sysroot}" >&6; } -+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 -+ ;; -+esac -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -+$as_echo "${lt_sysroot:-no}" >&6; } -+ -+ -+ -+ - - # Check whether --enable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then : -@@ -6241,6 +6621,123 @@ esac - - need_locks="$enable_libtool_lock" - -+if test -n "$ac_tool_prefix"; then -+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -+set dummy ${ac_tool_prefix}mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$MANIFEST_TOOL"; then -+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -+if test -n "$MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -+$as_echo "$MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ -+fi -+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then -+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL -+ # Extract the first word of "mt", so it can be a program name with args. -+set dummy mt; ac_word=$2 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -+$as_echo_n "checking for $ac_word... " >&6; } -+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test -n "$ac_ct_MANIFEST_TOOL"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" -+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+ done -+IFS=$as_save_IFS -+ -+fi -+fi -+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -+if test -n "$ac_ct_MANIFEST_TOOL"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+$as_echo "no" >&6; } -+fi -+ -+ if test "x$ac_ct_MANIFEST_TOOL" = x; then -+ MANIFEST_TOOL=":" -+ else -+ case $cross_compiling:$ac_tool_warned in -+yes:) -+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -+ac_tool_warned=yes ;; -+esac -+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL -+ fi -+else -+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -+fi -+ -+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -+if ${lt_cv_path_mainfest_tool+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_path_mainfest_tool=no -+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 -+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out -+ cat conftest.err >&5 -+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then -+ lt_cv_path_mainfest_tool=yes -+ fi -+ rm -f conftest* -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -+$as_echo "$lt_cv_path_mainfest_tool" >&6; } -+if test "x$lt_cv_path_mainfest_tool" != xyes; then -+ MANIFEST_TOOL=: -+fi -+ -+ -+ -+ -+ - - case $host_os in - rhapsody* | darwin*) -@@ -6807,6 +7304,8 @@ _LT_EOF - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 -+ echo "$RANLIB libconftest.a" >&5 -+ $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF - int main() { return 0;} - _LT_EOF -@@ -7269,7 +7768,8 @@ fi - LIBTOOL_DEPS="$ltmain" - - # Always use our own libtool. --LIBTOOL='$(SHELL) $(top_builddir)/libtool' -+LIBTOOL='$(SHELL) $(top_builddir)' -+LIBTOOL="$LIBTOOL/${host_alias}-libtool" - - - -@@ -7358,7 +7858,7 @@ aix3*) - esac - - # Global variables: --ofile=libtool -+ofile=${host_alias}-libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -7656,8 +8156,6 @@ fi - lt_prog_compiler_pic= - lt_prog_compiler_static= - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 --$as_echo_n "checking for $compiler option to produce PIC... " >&6; } - - if test "$GCC" = yes; then - lt_prog_compiler_wl='-Wl,' -@@ -7823,6 +8321,12 @@ $as_echo_n "checking for $compiler optio - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; -+ nagfor*) -+ # NAG Fortran compiler -+ lt_prog_compiler_wl='-Wl,-Wl,,' -+ lt_prog_compiler_pic='-PIC' -+ lt_prog_compiler_static='-Bstatic' -+ ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) -@@ -7885,7 +8389,7 @@ $as_echo_n "checking for $compiler optio - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in -- f77* | f90* | f95*) -+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; -@@ -7942,13 +8446,17 @@ case $host_os in - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; - esac --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 --$as_echo "$lt_prog_compiler_pic" >&6; } -- -- -- -- - -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -+$as_echo_n "checking for $compiler option to produce PIC... " >&6; } -+if ${lt_cv_prog_compiler_pic+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -+$as_echo "$lt_cv_prog_compiler_pic" >&6; } -+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - - # - # Check to make sure the PIC flag actually works. -@@ -8009,6 +8517,11 @@ fi - - - -+ -+ -+ -+ -+ - # - # Check to make sure the static flag actually works. - # -@@ -8359,7 +8872,8 @@ _LT_EOF - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes -- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' -+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -8458,12 +8972,12 @@ _LT_EOF - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' -- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' -+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test "x$supports_anon_versioning" = xyes; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ -- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' -+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac -@@ -8477,8 +8991,8 @@ _LT_EOF - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - -@@ -8496,8 +9010,8 @@ _LT_EOF - - _LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8543,8 +9057,8 @@ _LT_EOF - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi -@@ -8674,7 +9188,13 @@ _LT_EOF - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. -- if test x$gcc_no_link = xyes; then -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath_+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test x$gcc_no_link = xyes; then - as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -8690,22 +9210,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -8717,7 +9244,13 @@ if test -z "$aix_libpath"; then aix_libp - else - # Determine the default libpath from the value encoded in an - # empty executable. -- if test x$gcc_no_link = xyes; then -+ if test "${lt_cv_aix_libpath+set}" = set; then -+ aix_libpath=$lt_cv_aix_libpath -+else -+ if ${lt_cv_aix_libpath_+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ if test x$gcc_no_link = xyes; then - as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -@@ -8733,22 +9266,29 @@ main () - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - --lt_aix_libpath_sed=' -- /Import File Strings/,/^$/ { -- /^0/ { -- s/^0 *\(.*\)$/\1/ -- p -- } -- }' --aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --# Check for a 64-bit object if we didn't find anything. --if test -z "$aix_libpath"; then -- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` --fi -+ lt_aix_libpath_sed=' -+ /Import File Strings/,/^$/ { -+ /^0/ { -+ s/^0 *\([^ ]*\) *$/\1/ -+ p -+ } -+ }' -+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ # Check for a 64-bit object if we didn't find anything. -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -+ fi - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext --if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi -+ if test -z "$lt_cv_aix_libpath_"; then -+ lt_cv_aix_libpath_="/usr/lib:/lib" -+ fi -+ -+fi -+ -+ aix_libpath=$lt_cv_aix_libpath_ -+fi - - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, -@@ -8793,20 +9333,63 @@ if test -z "$aix_libpath"; then aix_libp - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. -- hardcode_libdir_flag_spec=' ' -- allow_undefined_flag=unsupported -- # Tell ltmain to make .lib files, not .a files. -- libext=lib -- # Tell ltmain to make .dll files, not .so files. -- shrext_cmds=".dll" -- # FIXME: Setting linknames here is a bad hack. -- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -- # The linker will automatically build a .lib file if we build a DLL. -- old_archive_from_new_cmds='true' -- # FIXME: Should let the user specify the lib program. -- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -- fix_srcfile_path='`cygpath -w "$srcfile"`' -- enable_shared_with_static_runtimes=yes -+ case $cc_basename in -+ cl*) -+ # Native MSVC -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ always_export_symbols=yes -+ file_list_spec='@' -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' -+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then -+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; -+ else -+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; -+ fi~ -+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ -+ linknames=' -+ # The linker will not automatically build a static lib if we build a DLL. -+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' -+ enable_shared_with_static_runtimes=yes -+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' -+ # Don't use ranlib -+ old_postinstall_cmds='chmod 644 $oldlib' -+ postlink_cmds='lt_outputfile="@OUTPUT@"~ -+ lt_tool_outputfile="@TOOL_OUTPUT@"~ -+ case $lt_outputfile in -+ *.exe|*.EXE) ;; -+ *) -+ lt_outputfile="$lt_outputfile.exe" -+ lt_tool_outputfile="$lt_tool_outputfile.exe" -+ ;; -+ esac~ -+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then -+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; -+ $RM "$lt_outputfile.manifest"; -+ fi' -+ ;; -+ *) -+ # Assume MSVC wrapper -+ hardcode_libdir_flag_spec=' ' -+ allow_undefined_flag=unsupported -+ # Tell ltmain to make .lib files, not .a files. -+ libext=lib -+ # Tell ltmain to make .dll files, not .so files. -+ shrext_cmds=".dll" -+ # FIXME: Setting linknames here is a bad hack. -+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' -+ # The linker will automatically build a .lib file if we build a DLL. -+ old_archive_from_new_cmds='true' -+ # FIXME: Should let the user specify the lib program. -+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' -+ enable_shared_with_static_runtimes=yes -+ ;; -+ esac - ;; - - darwin* | rhapsody*) -@@ -8867,7 +9450,7 @@ if test -z "$aix_libpath"; then aix_libp - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) -- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no -@@ -8875,7 +9458,7 @@ if test -z "$aix_libpath"; then aix_libp - - hpux9*) - if test "$GCC" = yes; then -- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' -+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' - fi -@@ -8891,7 +9474,7 @@ if test -z "$aix_libpath"; then aix_libp - - hpux10*) - if test "$GCC" = yes && test "$with_gnu_ld" = no; then -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi -@@ -8915,10 +9498,10 @@ if test -z "$aix_libpath"; then aix_libp - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) -- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else -@@ -8997,26 +9580,39 @@ fi - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then -- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. -- save_LDFLAGS="$LDFLAGS" -- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -- if test x$gcc_no_link = xyes; then -+ # This should be the same for all languages, so no per-tag cache variable. -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -+if ${lt_cv_irix_exported_symbol+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" -+ if test x$gcc_no_link = xyes; then - as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ --int foo(void) {} -+int foo (void) { return 0; } - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : -- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -- -+ lt_cv_irix_exported_symbol=yes -+else -+ lt_cv_irix_exported_symbol=no - fi - rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -- LDFLAGS="$save_LDFLAGS" -+ LDFLAGS="$save_LDFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -+$as_echo "$lt_cv_irix_exported_symbol" >&6; } -+ if test "$lt_cv_irix_exported_symbol" = yes; then -+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' -+ fi - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -9101,7 +9697,7 @@ rm -f core conftest.err conftest.$ac_obj - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' -- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' -+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' -@@ -9120,9 +9716,9 @@ rm -f core conftest.err conftest.$ac_obj - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - wlarc='${wl}' -- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' -+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ -- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' -+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) -@@ -9698,8 +10294,9 @@ cygwin* | mingw* | pw32* | cegcc*) - need_version=no - need_lib_prefix=no - -- case $GCC,$host_os in -- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) -+ case $GCC,$cc_basename in -+ yes,*) -+ # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \${file}`~ -@@ -9732,13 +10329,71 @@ cygwin* | mingw* | pw32* | cegcc*) - library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - ;; - esac -+ dynamic_linker='Win32 ld.exe' -+ ;; -+ -+ *,cl*) -+ # Native MSVC -+ libname_spec='$name' -+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' -+ library_names_spec='${libname}.dll.lib' -+ -+ case $build_os in -+ mingw*) -+ sys_lib_search_path_spec= -+ lt_save_ifs=$IFS -+ IFS=';' -+ for lt_path in $LIB -+ do -+ IFS=$lt_save_ifs -+ # Let DOS variable expansion print the short 8.3 style file name. -+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` -+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" -+ done -+ IFS=$lt_save_ifs -+ # Convert to MSYS style. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` -+ ;; -+ cygwin*) -+ # Convert to unix form, then to dos form, then back to unix form -+ # but this time dos style (no spaces!) so that the unix form looks -+ # like /cygdrive/c/PROGRA~1:/cygdr... -+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` -+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` -+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ ;; -+ *) -+ sys_lib_search_path_spec="$LIB" -+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then -+ # It is most probably a Windows format PATH. -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` -+ else -+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` -+ fi -+ # FIXME: find the short name or the path components, as spaces are -+ # common. (e.g. "Program Files" -> "PROGRA~1") -+ ;; -+ esac -+ -+ # DLL is installed to $(libdir)/../bin by postinstall_cmds -+ postinstall_cmds='base_file=`basename \${file}`~ -+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ -+ dldir=$destdir/`dirname \$dlpath`~ -+ test -d \$dldir || mkdir -p \$dldir~ -+ $install_prog $dir/$dlname \$dldir/$dlname' -+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ -+ dlpath=$dir/\$dldll~ -+ $RM \$dlpath' -+ shlibpath_overrides_runpath=yes -+ dynamic_linker='Win32 link.exe' - ;; - - *) -+ # Assume MSVC wrapper - library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' -+ dynamic_linker='Win32 ld.exe' - ;; - esac -- dynamic_linker='Win32 ld.exe' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; -@@ -9830,7 +10485,7 @@ haiku*) - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=yes -- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' -+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -@@ -10644,7 +11299,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10647 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10688,10 +11343,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -10750,7 +11405,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 10753 "configure" -+#line $LINENO "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -10794,10 +11449,10 @@ else - /* When -fvisbility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ - #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) --void fnord () __attribute__((visibility("default"))); -+int fnord () __attribute__((visibility("default"))); - #endif - --void fnord () { int i=42; } -+int fnord () { return 42; } - int main () - { - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -12266,13 +12921,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_ - 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"`' -@@ -12287,14 +12949,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$l - 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"`' -@@ -12327,12 +12992,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcod - 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"`' -@@ -12387,8 +13052,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 \ -@@ -12398,12 +13068,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 \ -@@ -12419,7 +13091,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 \ -@@ -12455,6 +13126,7 @@ module_cmds \ - module_expsym_cmds \ - export_symbols_cmds \ - prelink_cmds \ -+postlink_cmds \ - postinstall_cmds \ - postuninstall_cmds \ - finish_cmds \ -@@ -13053,7 +13725,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. -@@ -13156,19 +13829,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 - -@@ -13198,6 +13894,12 @@ global_symbol_to_c_name_address=$lt_lt_c - # 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 - -@@ -13207,6 +13909,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 - -@@ -13321,12 +14026,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 - -@@ -13413,9 +14118,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 - -@@ -13431,6 +14133,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 - -@@ -13463,210 +14168,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 '$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 - -- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ -- || (rm -f "$cfgfile"; exit 1) - -- mv -f "$cfgfile" "$ofile" || -+ mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch deleted file mode 100644 index 18ef6bb7..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ef50d848d983f81e4a86dd3eef4933e3579336f1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 01:37:10 +0000 -Subject: [PATCH 07/15] Add the armv5e architecture to binutils - -Binutils has a comment that indicates it is supposed to match gcc for -all of the support "-march=" settings, but it was lacking the armv5e setting. -This was a simple way to add it, as thumb instructions shouldn't be generated -by the compiler anyway. - -Upstream-Status: Denied -Upstream maintainer indicated that we should not be using armv5e, even -though it is a legal archicture defined by our gcc. - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - gas/config/tc-arm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c -index 3f5384e1c7..8d5bc145af 100644 ---- a/gas/config/tc-arm.c -+++ b/gas/config/tc-arm.c -@@ -26294,6 +26294,7 @@ static const struct arm_arch_option_table arm_archs[] = - ARM_ARCH_OPT ("armv4t", ARM_ARCH_V4T, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv4txm", ARM_ARCH_V4TxM, FPU_ARCH_FPA), - ARM_ARCH_OPT ("armv5", ARM_ARCH_V5, FPU_ARCH_VFP), -+ ARM_ARCH_OPT ("armv5e", ARM_ARCH_V5TE, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5t", ARM_ARCH_V5T, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5txm", ARM_ARCH_V5TxM, FPU_ARCH_VFP), - ARM_ARCH_OPT ("armv5te", ARM_ARCH_V5TE, FPU_ARCH_VFP), --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch new file mode 100644 index 00000000..89da62fb --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch @@ -0,0 +1,21234 @@ +From b8fafd8ce6c47c9a551ed796176d884a34930086 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 14 Feb 2016 17:04:07 +0000 +Subject: [PATCH 07/15] Use libtool 2.4 + +get libtool sysroot support + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + 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 +++++++++++++++----- + 13 files changed, 9939 insertions(+), 3700 deletions(-) + +diff --git a/bfd/configure b/bfd/configure +index bc576b7894a..cd036638081 100755 +--- a/bfd/configure ++++ b/bfd/configure +@@ -704,6 +704,9 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++ac_ct_AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -822,6 +825,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1504,6 +1508,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-mmap try using mmap for BFD input files if available + --with-separate-debug-dir=DIR + Look for global separate debug info in DIR +@@ -5693,8 +5699,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5734,7 +5740,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6420,8 +6426,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6470,6 +6476,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6486,6 +6566,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6654,7 +6739,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6808,6 +6894,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6821,11 +6922,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6841,7 +7095,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6861,11 +7115,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6881,7 +7139,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6900,6 +7158,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6911,16 +7173,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -7262,8 +7580,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7299,6 +7617,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7340,6 +7659,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7351,7 +7682,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7377,8 +7708,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7388,8 +7719,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7426,6 +7757,16 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ + + + +@@ -7442,6 +7783,45 @@ fi + + + ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7653,6 +8033,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -8216,6 +8713,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8380,7 +8879,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8469,7 +8969,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8767,8 +9267,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8934,6 +9432,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8996,7 +9500,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -9053,13 +9557,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -9120,6 +9628,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9470,7 +9983,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9569,12 +10083,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9588,8 +10102,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9607,8 +10121,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9654,8 +10168,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9785,7 +10299,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9798,22 +10318,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9825,7 +10352,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9838,22 +10371,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9898,20 +10438,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9972,7 +10555,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9980,7 +10563,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9996,7 +10579,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -10020,10 +10603,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -10102,23 +10685,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -10203,7 +10799,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -10222,9 +10818,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10800,8 +11396,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10834,13 +11431,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10932,7 +11587,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11728,7 +12383,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11731 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11772,10 +12427,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11834,7 +12489,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11837 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11878,10 +12533,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -14554,7 +15209,7 @@ SHARED_LDFLAGS= + if test "$enable_shared" = "yes"; then + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` + if test -n "$x"; then +- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" ++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" + fi + + case "${host}" in +@@ -17176,13 +17831,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"`' +@@ -17197,14 +17859,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"`' +@@ -17237,12 +17902,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"`' +@@ -17297,8 +17962,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 \ +@@ -17308,12 +17978,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 \ +@@ -17329,7 +18001,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 \ +@@ -17365,6 +18036,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -18153,7 +18825,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. +@@ -18256,19 +18929,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 + +@@ -18298,6 +18994,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 + +@@ -18307,6 +19009,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 + +@@ -18421,12 +19126,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 + +@@ -18513,9 +19218,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 + +@@ -18531,6 +19233,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 + +@@ -18563,210 +19268,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/bfd/configure.ac b/bfd/configure.ac +index c5bfbd5d129..e666b1cc106 100644 +--- a/bfd/configure.ac ++++ b/bfd/configure.ac +@@ -290,7 +290,7 @@ changequote(,)dnl + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` + changequote([,])dnl + if test -n "$x"; then +- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" ++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" + fi + + case "${host}" in +diff --git a/binutils/configure b/binutils/configure +index a8dfd4bd68c..82316496953 100755 +--- a/binutils/configure ++++ b/binutils/configure +@@ -690,8 +690,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -808,6 +811,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1485,6 +1489,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 +@@ -5461,8 +5467,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5502,7 +5508,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 +@@ -6188,8 +6194,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 +@@ -6238,6 +6244,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 : +@@ -6254,6 +6334,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' +@@ -6422,7 +6507,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 + ;; +@@ -6576,6 +6662,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 +@@ -6591,9 +6692,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 : +@@ -6609,7 +6863,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 +@@ -6629,11 +6883,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 : +@@ -6649,7 +6907,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 +@@ -6668,6 +6926,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 +@@ -6679,12 +6941,10 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} + + + +@@ -6696,6 +6956,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. + set dummy ${ac_tool_prefix}strip; ac_word=$2 +@@ -7030,8 +7348,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= +@@ -7067,6 +7385,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 +@@ -7108,6 +7427,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 +@@ -7119,7 +7450,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; + } +@@ -7145,8 +7476,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 +@@ -7156,8 +7487,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 +@@ -7194,6 +7525,21 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7210,6 +7556,40 @@ fi + + + ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7421,6 +7801,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*) +@@ -7984,6 +8481,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 +@@ -8179,7 +8678,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8268,7 +8768,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, +@@ -8566,8 +9066,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,' +@@ -8733,6 +9231,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) +@@ -8795,7 +9299,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,';; +@@ -8852,13 +9356,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. +@@ -8919,6 +9427,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9269,7 +9782,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' +@@ -9368,12 +9882,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 +@@ -9387,8 +9901,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 + ;; + +@@ -9406,8 +9920,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 +@@ -9453,8 +9967,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 +@@ -9584,7 +10098,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 +@@ -9597,22 +10117,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" +@@ -9624,7 +10151,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 +@@ -9637,22 +10170,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, +@@ -9697,20 +10237,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*) +@@ -9771,7 +10354,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 +@@ -9779,7 +10362,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 +@@ -9795,7 +10378,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 +@@ -9819,10 +10402,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 +@@ -9901,23 +10484,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' +@@ -10002,7 +10598,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 \*' +@@ -10021,9 +10617,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"*) +@@ -10599,8 +11195,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}`~ +@@ -10633,13 +11230,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 + ;; +@@ -10731,7 +11386,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 + ;; + +@@ -11527,7 +12182,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11530 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11571,10 +12226,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); +@@ -11633,7 +12288,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11636 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11677,10 +12332,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); +@@ -16024,13 +16679,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"`' +@@ -16045,14 +16707,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"`' +@@ -16085,12 +16750,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"`' +@@ -16145,8 +16810,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 \ +@@ -16156,12 +16826,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 \ +@@ -16177,7 +16849,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 \ +@@ -16213,6 +16884,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -16979,7 +17651,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. +@@ -17082,19 +17755,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 + +@@ -17124,6 +17820,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 + +@@ -17133,6 +17835,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 + +@@ -17247,12 +17952,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 + +@@ -17339,9 +18044,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 + +@@ -17357,6 +18059,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 + +@@ -17389,210 +18094,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/gas/configure b/gas/configure +index 60c1a055ae2..0e0ce4c0e23 100755 +--- a/gas/configure ++++ b/gas/configure +@@ -681,8 +681,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -799,6 +802,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1490,6 +1494,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-cpu=CPU default cpu variant is CPU (currently only supported + on ARC) + --with-system-zlib use installed libz +@@ -5277,8 +5283,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5318,7 +5324,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6004,8 +6010,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6054,6 +6060,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6070,6 +6150,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6238,7 +6323,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6392,6 +6478,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6407,9 +6508,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6425,7 +6679,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6445,11 +6699,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6465,7 +6723,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6484,6 +6742,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6495,12 +6757,10 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} + + + +@@ -6512,6 +6772,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. + set dummy ${ac_tool_prefix}strip; ac_word=$2 +@@ -6846,8 +7164,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -6883,6 +7201,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -6924,6 +7243,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -6935,7 +7266,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -6961,8 +7292,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -6972,8 +7303,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7010,6 +7341,21 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7026,6 +7372,40 @@ fi + + + ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7237,6 +7617,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7800,6 +8297,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -7995,7 +8494,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8084,7 +8584,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8382,8 +8882,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8549,6 +9047,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8611,7 +9115,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8668,13 +9172,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8735,6 +9243,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9085,7 +9598,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9184,12 +9698,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9203,8 +9717,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9222,8 +9736,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9269,8 +9783,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9400,7 +9914,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9413,22 +9933,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9440,7 +9967,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9453,22 +9986,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9513,20 +10053,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9587,7 +10170,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9595,7 +10178,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9611,7 +10194,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9635,10 +10218,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9717,23 +10300,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9818,7 +10414,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9837,9 +10433,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10415,8 +11011,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10449,13 +11046,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10547,7 +11202,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11343,7 +11998,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11346 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11387,10 +12042,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11449,7 +12104,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11452 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11493,10 +12148,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -15928,13 +16583,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"`' +@@ -15949,14 +16611,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"`' +@@ -15989,12 +16654,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"`' +@@ -16049,8 +16714,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 \ +@@ -16060,12 +16730,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 \ +@@ -16081,7 +16753,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 \ +@@ -16117,6 +16788,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -16890,7 +17562,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. +@@ -16993,19 +17666,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 + +@@ -17035,6 +17731,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 + +@@ -17044,6 +17746,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 + +@@ -17158,12 +17863,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 + +@@ -17250,9 +17955,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 + +@@ -17268,6 +17970,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 + +@@ -17300,210 +18005,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/gprof/configure b/gprof/configure +index c23692e5c3d..9f936a5b03d 100755 +--- a/gprof/configure ++++ b/gprof/configure +@@ -662,8 +662,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -780,6 +783,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1442,6 +1446,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + + Some influential environment variables: + CC C compiler command +@@ -5124,8 +5130,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5165,7 +5171,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -5851,8 +5857,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -5901,6 +5907,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -5917,6 +5997,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6085,7 +6170,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6239,6 +6325,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6252,11 +6353,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6272,7 +6526,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6292,11 +6546,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6312,7 +6570,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6331,6 +6589,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6342,16 +6604,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -6693,8 +7011,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -6730,6 +7048,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -6771,6 +7090,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -6782,7 +7113,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -6808,8 +7139,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -6819,8 +7150,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -6857,6 +7188,20 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -6873,6 +7218,41 @@ fi + + + ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7084,6 +7464,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7647,6 +8144,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -7842,7 +8341,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -7931,7 +8431,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8229,8 +8729,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8396,6 +8894,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8458,7 +8962,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8515,13 +9019,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8582,6 +9090,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -8932,7 +9445,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9031,12 +9545,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9050,8 +9564,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9069,8 +9583,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9116,8 +9630,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9247,7 +9761,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9260,22 +9780,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9287,7 +9814,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9300,22 +9833,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9360,20 +9900,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9434,7 +10017,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9442,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9458,7 +10041,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9482,10 +10065,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9564,23 +10147,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9665,7 +10261,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9684,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10262,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10296,13 +10893,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10394,7 +11049,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11190,7 +11845,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11193 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11234,10 +11889,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11296,7 +11951,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11299 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11340,10 +11995,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -13309,13 +13964,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -13330,14 +13992,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -13370,12 +14035,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -13430,8 +14095,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -13441,12 +14111,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -13462,7 +14134,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -13498,6 +14169,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -14263,7 +14935,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -14366,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -14408,6 +15104,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -14417,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -14531,12 +15236,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -14623,9 +15328,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -14641,6 +15343,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -14673,210 +15378,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/ld/configure b/ld/configure +index 811134a503b..f432f4637d0 100755 +--- a/ld/configure ++++ b/ld/configure +@@ -691,8 +691,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -819,6 +822,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1512,6 +1516,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-lib-path=dir1:dir2... set default LIB_PATH + --with-sysroot=DIR Search for usr/lib et al within DIR. + --with-system-zlib use installed libz +@@ -5965,8 +5971,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -6006,7 +6012,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 +@@ -6692,8 +6698,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 +@@ -6742,6 +6748,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 : +@@ -6758,6 +6838,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' +@@ -6926,7 +7011,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 + ;; +@@ -7080,6 +7166,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 +@@ -7095,9 +7196,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 : +@@ -7113,7 +7367,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 +@@ -7133,11 +7387,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 : +@@ -7153,7 +7411,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 +@@ -7172,6 +7430,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 +@@ -7183,12 +7445,12 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ + + + +@@ -7198,6 +7460,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +@@ -7534,8 +7852,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= +@@ -7571,6 +7889,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 +@@ -7612,6 +7931,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 +@@ -7623,7 +7954,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; + } +@@ -7649,8 +7980,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 +@@ -7660,8 +7991,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 +@@ -7698,6 +8029,19 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7714,6 +8058,42 @@ fi + + + ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7925,6 +8305,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*) +@@ -8488,6 +8985,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 +@@ -8556,6 +9055,16 @@ done + + + ++func_stripname_cnf () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname_cnf ++ ++ ++ + + + # Set options +@@ -8684,7 +9193,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8773,7 +9283,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, +@@ -9071,8 +9581,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,' +@@ -9238,6 +9746,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) +@@ -9300,7 +9814,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,';; +@@ -9357,13 +9871,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. +@@ -9424,6 +9942,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9774,7 +10297,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' +@@ -9873,12 +10397,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 +@@ -9892,8 +10416,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 + ;; + +@@ -9911,8 +10435,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 +@@ -9958,8 +10482,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 +@@ -10089,7 +10613,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 +@@ -10102,22 +10632,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" +@@ -10129,7 +10666,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 +@@ -10142,22 +10685,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, +@@ -10201,21 +10751,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is +- # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ # no search path for DLLs. ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -10276,7 +10869,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 +@@ -10284,7 +10877,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 +@@ -10300,7 +10893,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 +@@ -10324,10 +10917,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 +@@ -10406,23 +10999,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' +@@ -10507,7 +11113,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 \*' +@@ -10526,9 +11132,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"*) +@@ -11104,8 +11710,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}`~ +@@ -11138,13 +11745,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 + ;; +@@ -11236,7 +11901,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 + ;; + +@@ -12032,7 +12697,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 12035 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12076,10 +12741,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); +@@ -12138,7 +12803,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 12141 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12182,10 +12847,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); +@@ -12577,6 +13242,7 @@ $RM -r conftest* + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX +@@ -12594,6 +13260,7 @@ $RM -r conftest* + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do +@@ -12876,7 +13543,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -12889,22 +13562,29 @@ main () + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + +@@ -12917,7 +13597,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -12930,22 +13616,29 @@ main () + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -12988,29 +13681,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) +- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, +- # as there is no search path for DLLs. +- hardcode_libdir_flag_spec_CXX='-L$libdir' +- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' +- allow_undefined_flag_CXX=unsupported +- always_export_symbols_CXX=no +- enable_shared_with_static_runtimes_CXX=yes +- +- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +- cp $export_symbols $output_objdir/$soname.def; +- else +- echo EXPORTS > $output_objdir/$soname.def; +- cat $export_symbols >> $output_objdir/$soname.def; +- fi~ +- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- else +- ld_shlibs_CXX=no +- fi +- ;; ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX=' ' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=yes ++ file_list_spec_CXX='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' ++ enable_shared_with_static_runtimes_CXX=yes ++ # Don't use ranlib ++ old_postinstall_cmds_CXX='chmod 644 $oldlib' ++ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, ++ # as there is no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX='-L$libdir' ++ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=no ++ enable_shared_with_static_runtimes_CXX=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; + darwin* | rhapsody*) + + +@@ -13116,7 +13855,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + ;; + *) + if test "$GXX" = yes; then +- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no +@@ -13187,10 +13926,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) +- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) +- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi +@@ -13231,9 +13970,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes +@@ -13303,20 +14042,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +@@ -13511,7 +14250,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) +- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + +@@ -13557,7 +14296,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' +@@ -13598,9 +14337,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then +- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when +@@ -13735,6 +14474,13 @@ private: + }; + _LT_EOF + ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++esac ++ + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -13748,7 +14494,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do +- case $p in ++ case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. +@@ -13757,13 +14503,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + test $p = "-R"; then + prev=$p + continue +- else +- prev= + fi + ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac + if test "$pre_test_object_deps_done" = no; then +- case $p in +- -L* | -R*) ++ case ${prev} in ++ -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. +@@ -13783,8 +14538,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi ++ prev= + ;; + ++ *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. +@@ -13820,6 +14577,7 @@ else + fi + + $RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS + + # PORTME: override above test on systems where it is broken + case $host_os in +@@ -13855,7 +14613,7 @@ linux*) + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as +@@ -13920,8 +14678,6 @@ fi + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then +@@ -14026,6 +14782,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + ;; + esac + ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ++ ;; + dgux*) + case $cc_basename in + ec++*) +@@ -14178,7 +14939,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + ;; + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' +@@ -14243,10 +15004,17 @@ case $host_os in + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +-$as_echo "$lt_prog_compiler_pic_CXX" >&6; } +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } ++lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + + # + # Check to make sure the PIC flag actually works. +@@ -14304,6 +15072,8 @@ fi + + + ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -14481,6 +15251,7 @@ fi + $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. +@@ -14495,15 +15266,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" +- ;; ++ ;; + cygwin* | mingw* | cegcc*) +- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ case $cc_basename in ++ cl*) ;; ++ *) ++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ++ ;; ++ esac ++ ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ ;; + esac +- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 + $as_echo "$ld_shlibs_CXX" >&6; } +@@ -14766,8 +15542,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}`~ +@@ -14799,13 +15576,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 + ;; +@@ -14896,7 +15731,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 + ;; + +@@ -15355,6 +16190,7 @@ fi + fi # test -n "$compiler" + + CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC +@@ -18477,13 +19313,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"`' +@@ -18498,14 +19341,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"`' +@@ -18538,12 +19384,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"`' +@@ -18582,8 +19428,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote + compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' + GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' + archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +@@ -18610,12 +19456,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_ + hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' + inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' + link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' + always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' + exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' + include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' + prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' + file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' + hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' + compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +@@ -18653,8 +19499,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 \ +@@ -18664,12 +19515,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 \ +@@ -18685,7 +19538,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 \ +@@ -18707,8 +19559,8 @@ LD_CXX \ + reload_flag_CXX \ + compiler_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ +-lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ ++lt_prog_compiler_wl_CXX \ + lt_prog_compiler_static_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + export_dynamic_flag_spec_CXX \ +@@ -18720,7 +19572,6 @@ no_undefined_flag_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ +-fix_srcfile_path_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX \ + file_list_spec_CXX \ +@@ -18754,6 +19605,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -18768,7 +19620,8 @@ archive_expsym_cmds_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + export_symbols_cmds_CXX \ +-prelink_cmds_CXX; do ++prelink_cmds_CXX \ ++postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" +@@ -19533,7 +20386,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. +@@ -19636,19 +20490,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 + +@@ -19678,6 +20555,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 + +@@ -19687,6 +20570,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 + +@@ -19801,12 +20687,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 + +@@ -19893,9 +20779,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 + +@@ -19911,6 +20794,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 + +@@ -19957,210 +20843,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" + +@@ -20188,12 +21033,12 @@ with_gcc=$GCC_CXX + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl_CXX +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic_CXX + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl_CXX ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static_CXX + +@@ -20280,9 +21125,6 @@ inherit_rpath=$inherit_rpath_CXX + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs_CXX + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path_CXX +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols_CXX + +@@ -20298,6 +21140,9 @@ include_expsyms=$lt_include_expsyms_CXX + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds_CXX + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds_CXX ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec_CXX + +diff --git a/libctf/configure b/libctf/configure +index e5493b31691..9977e4f7a42 100755 +--- a/libctf/configure ++++ b/libctf/configure +@@ -663,6 +663,8 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -778,6 +780,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_largefile + enable_werror_always +@@ -1436,6 +1439,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: +@@ -5324,8 +5329,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5436,7 +5441,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 +@@ -6122,8 +6127,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 +@@ -6172,6 +6177,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 : +@@ -6188,6 +6267,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' +@@ -6356,7 +6440,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 + ;; +@@ -6510,6 +6595,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 +@@ -6525,9 +6625,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 : +@@ -6543,7 +6796,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 +@@ -6563,11 +6816,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 : +@@ -6583,7 +6840,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 +@@ -6602,6 +6859,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 +@@ -6613,16 +6874,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 + + + +@@ -6964,8 +7281,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= +@@ -7001,6 +7318,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 +@@ -7042,6 +7360,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 +@@ -7053,7 +7383,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; + } +@@ -7079,8 +7409,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 +@@ -7090,8 +7420,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 +@@ -7128,6 +7458,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 ++ ++ ++ ++ + + + +@@ -7144,6 +7484,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; } + + + +@@ -7355,6 +7734,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*) +@@ -7918,6 +8414,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 +@@ -8083,7 +8581,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8172,7 +8671,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, +@@ -8470,8 +8969,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,' +@@ -8637,6 +9134,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) +@@ -8699,7 +9202,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,';; +@@ -8756,13 +9259,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. +@@ -8823,6 +9330,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9173,7 +9685,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' +@@ -9272,12 +9785,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 +@@ -9291,8 +9804,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 + ;; + +@@ -9310,8 +9823,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 +@@ -9357,8 +9870,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 +@@ -9488,7 +10001,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 +@@ -9501,22 +10020,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" +@@ -9528,7 +10054,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 +@@ -9541,22 +10073,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, +@@ -9601,20 +10140,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*) +@@ -9675,7 +10257,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 +@@ -9683,7 +10265,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 +@@ -9699,7 +10281,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 +@@ -9723,10 +10305,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 +@@ -9805,23 +10387,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' +@@ -9906,7 +10501,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 \*' +@@ -9925,9 +10520,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"*) +@@ -10503,8 +11098,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}`~ +@@ -10537,13 +11133,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 + ;; +@@ -10635,7 +11289,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 + ;; + +@@ -11431,7 +12085,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11434 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11475,10 +12129,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); +@@ -11537,7 +12191,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11540 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11581,10 +12235,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); +@@ -13994,13 +14648,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"`' +@@ -14015,14 +14676,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"`' +@@ -14055,12 +14719,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"`' +@@ -14115,8 +14779,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 \ +@@ -14126,12 +14795,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 \ +@@ -14147,7 +14818,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 \ +@@ -14183,6 +14853,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -14939,7 +15610,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. +@@ -15042,19 +15714,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 + +@@ -15084,6 +15779,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 + +@@ -15093,6 +15794,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 + +@@ -15207,12 +15911,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 + +@@ -15299,9 +16003,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 + +@@ -15317,6 +16018,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 + +@@ -15349,210 +16053,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/libtool.m4 b/libtool.m4 +index 434530059fa..e45fdc6998c 100644 +--- a/libtool.m4 ++++ b/libtool.m4 +@@ -1,7 +1,8 @@ + # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is free software; the Free Software Foundation gives +@@ -10,7 +11,8 @@ + + m4_define([_LT_COPYING], [dnl + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl + # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ]) + +-# serial 56 LT_INIT ++# serial 57 LT_INIT + + + # LT_PREREQ(VERSION) +@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl + dnl + m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_CHECK_SHELL_FEATURES])dnl ++m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl + m4_require([_LT_CMD_RELOAD])dnl + m4_require([_LT_CHECK_MAGIC_METHOD])dnl ++m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl + m4_require([_LT_CMD_OLD_ARCHIVE])dnl + m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++m4_require([_LT_WITH_SYSROOT])dnl + + _LT_CONFIG_LIBTOOL_INIT([ + # See if we are running on zsh, and set the options which allow our +@@ -199,7 +205,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl + m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) + configured by $[0], generated by m4_PACKAGE_STRING. + +-Copyright (C) 2009 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This config.lt script is free software; the Free Software Foundation + gives unlimited permision to copy, distribute and modify it." + +@@ -746,15 +752,12 @@ _LT_EOF + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) + +- _LT_PROG_XSI_SHELLFNS ++ _LT_PROG_REPLACE_SHELLFNS + +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + ], +@@ -980,6 +983,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD ++ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD ++ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], + fi + ]) + +-# _LT_SYS_MODULE_PATH_AIX +-# ----------------------- ++# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) ++# ---------------------------------- + # Links a minimal program and checks the executable + # for the system default hardcoded library path. In most cases, + # this is /usr/lib:/lib, but when the MPI compilers are used + # the location of the communication and MPI libs are included too. + # If we don't find anything, use the default library path according + # to the aix ld manual. ++# Store the results from the different compilers for each TAGNAME. ++# Allow to override them for all tags through lt_cv_aix_libpath. + m4_defun([_LT_SYS_MODULE_PATH_AIX], + [m4_require([_LT_DECL_SED])dnl +-AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[ +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi],[]) +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ ++ lt_aix_libpath_sed='[ ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }]' ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi],[]) ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" ++ fi ++ ]) ++ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) ++fi + ])# _LT_SYS_MODULE_PATH_AIX + + +@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + + AC_MSG_CHECKING([how to print strings]) + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) + ])# _LT_PROG_ECHO_BACKSLASH + + ++# _LT_WITH_SYSROOT ++# ---------------- ++AC_DEFUN([_LT_WITH_SYSROOT], ++[AC_MSG_CHECKING([for sysroot]) ++AC_ARG_WITH([libtool-sysroot], ++[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified).], ++[], [with_libtool_sysroot=no]) ++ ++dnl lt_sysroot will always be passed unquoted. We quote it here ++dnl in case the user passed a directory name. ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ AC_MSG_RESULT([${with_libtool_sysroot}]) ++ AC_MSG_ERROR([The sysroot must be an absolute path.]) ++ ;; ++esac ++ ++ AC_MSG_RESULT([${lt_sysroot:-no}]) ++_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl ++[dependent libraries, and in which our libraries should be installed.])]) ++ + # _LT_ENABLE_LOCK + # --------------- + m4_defun([_LT_ENABLE_LOCK], +@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock" + ])# _LT_ENABLE_LOCK + + ++# _LT_PROG_AR ++# ----------- ++m4_defun([_LT_PROG_AR], ++[AC_CHECK_TOOLS(AR, [ar], false) ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++_LT_DECL([], [AR], [1], [The archiver]) ++_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) ++ ++AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], ++ [lt_cv_ar_at_file=no ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], ++ [echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' ++ AC_TRY_EVAL([lt_ar_try]) ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ AC_TRY_EVAL([lt_ar_try]) ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ]) ++ ]) ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++_LT_DECL([], [archiver_list_spec], [1], ++ [How to feed a file listing to the archiver]) ++])# _LT_PROG_AR ++ ++ + # _LT_CMD_OLD_ARCHIVE + # ------------------- + m4_defun([_LT_CMD_OLD_ARCHIVE], +-[AC_CHECK_TOOL(AR, ar, false) +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru +-_LT_DECL([], [AR], [1], [The archiver]) +-_LT_DECL([], [AR_FLAGS], [1]) ++[_LT_PROG_AR + + AC_CHECK_TOOL(STRIP, strip, :) + test -z "$STRIP" && STRIP=: +@@ -1623,7 +1705,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-[#line __oline__ "configure" ++[#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -1667,10 +1749,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -2244,13 +2327,71 @@ m4_if([$1], [],[ + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -2342,7 +2483,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -2950,6 +3091,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -3016,7 +3162,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -3167,6 +3314,21 @@ tpf*) + ;; + esac + ]) ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + _LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) + _LT_DECL([], [file_magic_cmd], [1], +- [Command to use when deplibs_check_method == "file_magic"]) ++ [Command to use when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [file_magic_glob], [1], ++ [How to find potential files when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [want_nocaseglob], [1], ++ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) + ])# _LT_CHECK_MAGIC_METHOD + + +@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility: + dnl AC_DEFUN([AM_PROG_NM], []) + dnl AC_DEFUN([AC_PROG_NM], []) + ++# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++# -------------------------------- ++# how to determine the name of the shared library ++# associated with a specific link library. ++# -- PORTME fill in with the dynamic library characteristics ++m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], ++[m4_require([_LT_DECL_EGREP]) ++m4_require([_LT_DECL_OBJDUMP]) ++m4_require([_LT_DECL_DLLTOOL]) ++AC_CACHE_CHECK([how to associate runtime and link libraries], ++lt_cv_sharedlib_from_linklib_cmd, ++[lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++]) ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++_LT_DECL([], [sharedlib_from_linklib_cmd], [1], ++ [Command to associate shared and link libraries]) ++])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++ ++ ++# _LT_PATH_MANIFEST_TOOL ++# ---------------------- ++# locate the manifest tool ++m4_defun([_LT_PATH_MANIFEST_TOOL], ++[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], ++ [lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest*]) ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ++])# _LT_PATH_MANIFEST_TOOL ++ + + # LT_LIB_M + # -------- +@@ -3403,8 +3630,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -3473,6 +3701,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT@&t@_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT@&t@_DLSYM_CONST ++#else ++# define LT@&t@_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -3484,7 +3724,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi +@@ -3551,6 +3791,13 @@ else + AC_MSG_RESULT(ok) + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) + _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], +@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_address], + _LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) ++_LT_DECL([], [nm_file_list_spec], [1], ++ [Specify filename containing input files for $NM]) + ]) # _LT_CMD_GLOBAL_SYMBOLS + + +@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)= + +-AC_MSG_CHECKING([for $compiler option to produce PIC]) + m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then +@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [ + ;; + esac + ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; + dgux*) + case $cc_basename in + ec++*) +@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [ + ;; + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; +@@ -4172,9 +4432,11 @@ case $host_os in + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; + esac +-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], +- [How to pass a linker flag through the compiler]) ++ ++AC_CACHE_CHECK([for $compiler option to produce PIC], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ++_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + + # + # Check to make sure the PIC flag actually works. +@@ -4193,6 +4455,8 @@ fi + _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + ++_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], ++ [How to pass a linker flag through the compiler]) + # + # Check to make sure the static flag actually works. + # +@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + m4_defun([_LT_LINKER_SHLIBS], + [AC_REQUIRE([LT_PATH_LD])dnl + AC_REQUIRE([LT_PATH_NM])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl + m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_DECL_EGREP])dnl + m4_require([_LT_DECL_SED])dnl +@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. +@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [ + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" +- ;; ++ ;; + cygwin* | mingw* | cegcc*) +- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ case $cc_basename in ++ cl*) ;; ++ *) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ++ ;; ++ esac ++ ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ ;; + esac +- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + ], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= +@@ -4411,7 +4682,8 @@ _LT_EOF + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -4510,12 +4782,12 @@ _LT_EOF + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' +- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -4529,8 +4801,8 @@ _LT_EOF + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -4548,8 +4820,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +@@ -4595,8 +4867,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +@@ -4726,7 +4998,7 @@ _LT_EOF + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else +@@ -4737,7 +5009,7 @@ _LT_EOF + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. +@@ -4781,20 +5053,63 @@ _LT_EOF + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' +- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' +- # FIXME: Should let the user specify the lib program. +- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' +- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' +- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ # FIXME: Should let the user specify the lib program. ++ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -4828,7 +5143,7 @@ _LT_EOF + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no +@@ -4836,7 +5151,7 @@ _LT_EOF + + hpux9*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -4852,7 +5167,7 @@ _LT_EOF + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -4876,10 +5191,10 @@ _LT_EOF + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -4926,16 +5241,31 @@ _LT_EOF + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])], +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ) +- LDFLAGS="$save_LDFLAGS" ++ # This should be the same for all languages, so no per-tag cache variable. ++ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], ++ [lt_cv_irix_exported_symbol], ++ [save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ AC_LINK_IFELSE( ++ [AC_LANG_SOURCE( ++ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], ++ [C++], [[int foo (void) { return 0; }]], ++ [Fortran 77], [[ ++ subroutine foo ++ end]], ++ [Fortran], [[ ++ subroutine foo ++ end]])])], ++ [lt_cv_irix_exported_symbol=yes], ++ [lt_cv_irix_exported_symbol=no]) ++ LDFLAGS="$save_LDFLAGS"]) ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -5020,7 +5350,7 @@ _LT_EOF + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' +@@ -5039,9 +5369,9 @@ _LT_EOF + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], + to runtime path list]) + _LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +-_LT_TAGDECL([], [fix_srcfile_path], [1], +- [Fix the shell variable $srcfile for the compiler]) + _LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) + _LT_TAGDECL([], [export_symbols_cmds], [2], +@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) + _LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) ++_LT_TAGDECL([], [postlink_cmds], [2], ++ [Commands necessary for finishing linking programs]) + _LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) + dnl FIXME: Not yet implemented +@@ -5426,6 +5756,7 @@ CC="$lt_save_CC" + m4_defun([_LT_LANG_CXX_CONFIG], + [m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then +@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; then + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX +@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; then + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. +@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; then + ;; + + cygwin* | mingw* | pw32* | cegcc*) +- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, +- # as there is no search path for DLLs. +- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' +- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported +- _LT_TAGVAR(always_export_symbols, $1)=no +- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- +- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +- cp $export_symbols $output_objdir/$soname.def; +- else +- echo EXPORTS > $output_objdir/$soname.def; +- cat $export_symbols >> $output_objdir/$soname.def; +- fi~ +- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- else +- _LT_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; +@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; then + ;; + *) + if test "$GXX" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no +@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi +@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; then + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes +@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + +@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; then + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' +@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; then + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when +@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; then + fi # test -n "$compiler" + + CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC +@@ -6445,6 +6825,29 @@ AC_LANG_POP + ])# _LT_LANG_CXX_CONFIG + + ++# _LT_FUNC_STRIPNAME_CNF ++# ---------------------- ++# func_stripname_cnf prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# ++# This function is identical to the (non-XSI) version of func_stripname, ++# except this one can be used by m4 code that may be executed by configure, ++# rather than the libtool script. ++m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl ++AC_REQUIRE([_LT_DECL_SED]) ++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) ++func_stripname_cnf () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname_cnf ++])# _LT_FUNC_STRIPNAME_CNF ++ + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) + # --------------------------------- + # Figure out "hidden" library dependencies from verbose +@@ -6453,6 +6856,7 @@ AC_LANG_POP + # objects, libraries and library flags. + m4_defun([_LT_SYS_HIDDEN_LIBDEPS], + [m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl + # Dependencies to place before and after the object being linked: + _LT_TAGVAR(predep_objects, $1)= + _LT_TAGVAR(postdep_objects, $1)= +@@ -6503,6 +6907,13 @@ public class foo { + }; + _LT_EOF + ]) ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++esac ++ + dnl Parse the compiler output and extract the necessary + dnl objects, libraries and library flags. + if AC_TRY_EVAL(ac_compile); then +@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do +- case $p in ++ case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. +@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then + test $p = "-R"; then + prev=$p + continue +- else +- prev= + fi + ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac + if test "$pre_test_object_deps_done" = no; then +- case $p in +- -L* | -R*) ++ case ${prev} in ++ -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. +@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi ++ prev= + ;; + ++ *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. +@@ -6586,6 +7008,7 @@ else + fi + + $RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS + + # PORTME: override above test on systems where it is broken + m4_if([$1], [CXX], +@@ -6622,7 +7045,7 @@ linux*) + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as +@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} ++ CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then + + GCC=$lt_save_GCC + CC="$lt_save_CC" ++ CFLAGS="$lt_save_CFLAGS" + fi # test "$_lt_disable_F77" != yes + + AC_LANG_POP +@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} ++ CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + +@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then + fi # test -n "$compiler" + + GCC=$lt_save_GCC +- CC="$lt_save_CC" ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + fi # test "$_lt_disable_FC" != yes + + AC_LANG_POP +@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. +-lt_save_CC="$CC" ++lt_save_CC=$CC ++lt_save_CFLAGS=$CFLAGS + lt_save_GCC=$GCC + GCC=yes + CC=${GCJ-"gcj"} ++CFLAGS=$GCJFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_TAGVAR(LD, $1)="$LD" +@@ -6992,7 +7423,8 @@ fi + AC_LANG_RESTORE + + GCC=$lt_save_GCC +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_GCJ_CONFIG + + +@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" ++lt_save_CFLAGS=$CFLAGS + lt_save_GCC=$GCC + GCC= + CC=${RC-"windres"} ++CFLAGS= + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -7042,7 +7476,8 @@ fi + + GCC=$lt_save_GCC + AC_LANG_RESTORE +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_RC_CONFIG + + +@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) + AC_SUBST([OBJDUMP]) + ]) + ++# _LT_DECL_DLLTOOL ++# ---------------- ++# Ensure DLLTOOL variable is set. ++m4_defun([_LT_DECL_DLLTOOL], ++[AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) ++AC_SUBST([DLLTOOL]) ++]) + + # _LT_DECL_SED + # ------------ +@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl + ])# _LT_CHECK_SHELL_FEATURES + + +-# _LT_PROG_XSI_SHELLFNS +-# --------------------- +-# Bourne and XSI compatible variants of some useful shell functions. +-m4_defun([_LT_PROG_XSI_SHELLFNS], +-[case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $[*] )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} ++# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) ++# ------------------------------------------------------ ++# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and ++# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. ++m4_defun([_LT_PROG_FUNCTION_REPLACE], ++[dnl { ++sed -e '/^$1 ()$/,/^} # $1 /c\ ++$1 ()\ ++{\ ++m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) ++} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++]) + +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" + +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} ++# _LT_PROG_REPLACE_SHELLFNS ++# ------------------------- ++# Replace existing portable implementations of several shell functions with ++# equivalent extended shell implementations where those features are available.. ++m4_defun([_LT_PROG_REPLACE_SHELLFNS], ++[if test x"$xsi_shell" = xyes; then ++ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac]) ++ ++ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl ++ func_basename_result="${1##*/}"]) ++ ++ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}"]) + +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"}]) + +-dnl func_dirname_and_basename +-dnl A portable version of this function is already defined in general.m4sh +-dnl so there is no need for it here. ++ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl ++ func_split_long_opt_name=${1%%=*} ++ func_split_long_opt_arg=${1#*=}]) + +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} ++ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl ++ func_split_short_opt_arg=${1#??} ++ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + +-# sed scripts: +-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[[^=]]*=//' ++ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac]) + +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) ++fi + +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$[@]"` +-} ++if test x"$lt_shell_append" = xyes; then ++ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl ++ func_quote_for_eval "${2}" ++dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ ++ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + +-_LT_EOF +-esac ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi + +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" ++if test x"$_lt_function_replace_fail" = x":"; then ++ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) ++fi ++]) + +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]+=\$[2]" +-} +-_LT_EOF ++# _LT_PATH_CONVERSION_FUNCTIONS ++# ----------------------------- ++# Determine which file name conversion functions should be used by ++# func_to_host_file (and, implicitly, by func_to_host_path). These are needed ++# for certain cross-compile configurations and native mingw. ++m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_MSG_CHECKING([how to convert $build file names to $host format]) ++AC_CACHE_VAL(lt_cv_to_host_file_cmd, ++[case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac + ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]=\$$[1]\$[2]" +-} +- +-_LT_EOF ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac + ;; +- esac ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++]) ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) ++_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], ++ [0], [convert $build file names to $host format])dnl ++ ++AC_MSG_CHECKING([how to convert $build file names to toolchain format]) ++AC_CACHE_VAL(lt_cv_to_tool_file_cmd, ++[#assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac + ]) ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) ++_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], ++ [0], [convert $build files to toolchain format])dnl ++])# _LT_PATH_CONVERSION_FUNCTIONS +diff --git a/ltmain.sh b/ltmain.sh +index 9503ec85d70..70e856e0659 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -1,10 +1,9 @@ +-# Generated from ltmain.m4sh. + +-# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a ++# libtool (GNU libtool) 2.4 + # Written by Gordon Matzigkeit , 1996 + + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +-# 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2007, 2008, 2009, 2010 Free Software Foundation, Inc. + # This is free software; see the source for copying conditions. There is NO + # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +@@ -38,7 +37,6 @@ + # -n, --dry-run display commands without modifying any files + # --features display basic configuration information and exit + # --mode=MODE use operation mode MODE +-# --no-finish let install mode avoid finish commands + # --preserve-dup-deps don't remove duplicate dependency libraries + # --quiet, --silent don't print informational messages + # --no-quiet, --no-silent +@@ -71,17 +69,19 @@ + # compiler: $LTCC + # compiler flags: $LTCFLAGS + # linker: $LD (gnu? $with_gnu_ld) +-# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a ++# $progname: (GNU libtool) 2.4 + # automake: $automake_version + # autoconf: $autoconf_version + # + # Report bugs to . ++# GNU libtool home page: . ++# General help using GNU software: . + + PROGRAM=libtool + PACKAGE=libtool +-VERSION=2.2.7a +-TIMESTAMP=" 1.3134 2009-11-29" +-package_revision=1.3134 ++VERSION=2.4 ++TIMESTAMP="" ++package_revision=1.3293 + + # Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then +@@ -106,9 +106,6 @@ _LTECHO_EOF' + } + + # NLS nuisances: We save the old values to restore during execute mode. +-# Only set LANG and LC_ALL to C if already set. +-# These must not be set unconditionally because not all systems understand +-# e.g. LANG=C (notably SCO). + lt_user_locale= + lt_safe_locale= + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +@@ -121,15 +118,13 @@ do + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" + done ++LC_ALL=C ++LANGUAGE=C ++export LANGUAGE LC_ALL + + $lt_unset CDPATH + + +- +- +- +- +- + # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh + # is ksh but when the shell is invoked as "sh" and the current value of + # the _XPG environment variable is not equal to 1 (one), the special +@@ -140,7 +135,7 @@ progpath="$0" + + + : ${CP="cp -f"} +-: ${ECHO=$as_echo} ++test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} + : ${EGREP="/bin/grep -E"} + : ${FGREP="/bin/grep -F"} + : ${GREP="/bin/grep"} +@@ -149,7 +144,7 @@ progpath="$0" + : ${MKDIR="mkdir"} + : ${MV="mv -f"} + : ${RM="rm -f"} +-: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"} ++: ${SED="/bin/sed"} + : ${SHELL="${CONFIG_SHELL-/bin/sh}"} + : ${Xsed="$SED -e 1s/^X//"} + +@@ -169,6 +164,27 @@ IFS=" $lt_nl" + dirname="s,/[^/]*$,," + basename="s,^.*/,," + ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++} # func_dirname may be replaced by extended shell implementation ++ ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result=`$ECHO "${1}" | $SED "$basename"` ++} # func_basename may be replaced by extended shell implementation ++ ++ + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function + # call: +@@ -183,17 +199,31 @@ basename="s,^.*/,," + # those functions but instead duplicate the functionality here. + func_dirname_and_basename () + { +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +- func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +-} ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++ func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` ++} # func_dirname_and_basename may be replaced by extended shell implementation ++ ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# func_strip_suffix prefix name ++func_stripname () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname may be replaced by extended shell implementation + +-# Generated shell functions inserted here. + + # These SED scripts presuppose an absolute path with a trailing slash. + pathcar='s,^/\([^/]*\).*$,\1,' +@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + # Same as above, but do not quote variable references. + double_quote_subst='s/\(["`\\]\)/\\\1/g' + ++# Sed substitution that turns a string into a regex matching for the ++# string literally. ++sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' ++ ++# Sed substitution that converts a w32 file name or path ++# which contains forward slashes, into one that contains ++# (escaped) backslashes. A very naive implementation. ++lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' ++ + # Re-`\' parameter expansions in output of double_quote_subst that were + # `\'-ed in input to the same. If an odd number of `\' preceded a '$' + # in input to double_quote_subst, that '$' was protected from expansion. +@@ -404,7 +443,7 @@ opt_warning=: + # name if it has been set yet. + func_echo () + { +- $ECHO "$progname${mode+: }$mode: $*" ++ $ECHO "$progname: ${opt_mode+$opt_mode: }$*" + } + + # func_verbose arg... +@@ -430,14 +469,14 @@ func_echo_all () + # Echo program name prefixed message to standard error. + func_error () + { +- $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 ++ $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 + } + + # func_warning arg... + # Echo program name prefixed warning message to standard error. + func_warning () + { +- $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 ++ $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +@@ -656,19 +695,35 @@ func_show_eval_locale () + fi + } + +- +- ++# func_tr_sh ++# Turn $1 into a string suitable for a shell variable name. ++# Result is stored in $func_tr_sh_result. All characters ++# not in the set a-zA-Z0-9_ are replaced with '_'. Further, ++# if $1 begins with a digit, a '_' is prepended as well. ++func_tr_sh () ++{ ++ case $1 in ++ [0-9]* | *[!a-zA-Z0-9_]*) ++ func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ++ ;; ++ * ) ++ func_tr_sh_result=$1 ++ ;; ++ esac ++} + + + # func_version + # Echo version message to standard output and exit. + func_version () + { ++ $opt_debug ++ + $SED -n '/(C)/!b go + :more + /\./!{ + N +- s/\n# // ++ s/\n# / / + b more + } + :go +@@ -685,7 +740,9 @@ func_version () + # Echo short help message to standard output and exit. + func_usage () + { +- $SED -n '/^# Usage:/,/^# *-h/ { ++ $opt_debug ++ ++ $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ +@@ -701,7 +758,10 @@ func_usage () + # unless 'noexit' is passed as argument. + func_help () + { ++ $opt_debug ++ + $SED -n '/^# Usage:/,/# Report bugs to/ { ++ :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* +@@ -714,7 +774,11 @@ func_help () + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p +- }' < "$progpath" ++ d ++ } ++ /^# .* home page:/b print ++ /^# General help using/b print ++ ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret +@@ -726,12 +790,39 @@ func_help () + # exit_cmd. + func_missing_arg () + { +- func_error "missing argument for $1" ++ $opt_debug ++ ++ func_error "missing argument for $1." + exit_cmd=exit + } + +-exit_cmd=: + ++# func_split_short_opt shortopt ++# Set func_split_short_opt_name and func_split_short_opt_arg shell ++# variables after splitting SHORTOPT after the 2nd character. ++func_split_short_opt () ++{ ++ my_sed_short_opt='1s/^\(..\).*$/\1/;q' ++ my_sed_short_rest='1s/^..\(.*\)$/\1/;q' ++ ++ func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` ++ func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` ++} # func_split_short_opt may be replaced by extended shell implementation ++ ++ ++# func_split_long_opt longopt ++# Set func_split_long_opt_name and func_split_long_opt_arg shell ++# variables after splitting LONGOPT at the `=' sign. ++func_split_long_opt () ++{ ++ my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' ++ my_sed_long_arg='1s/^--[^=]*=//' ++ ++ func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` ++ func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` ++} # func_split_long_opt may be replaced by extended shell implementation ++ ++exit_cmd=: + + + +@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%" + magic_exe="%%%MAGIC EXE variable%%%" + + # Global variables. +-# $mode is unset + nonopt= +-execute_dlfiles= + preserve_args= + lo2o="s/\\.lo\$/.${objext}/" + o2lo="s/\\.${objext}\$/.lo/" + extracted_archives= + extracted_serial=0 + +-opt_dry_run=false +-opt_finish=: +-opt_duplicate_deps=false +-opt_silent=false +-opt_debug=: +- + # If this variable is set in any of the actions, the command in it + # will be execed at the end. This prevents here-documents from being + # left over by shells. + exec_cmd= + ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "${1}=\$${1}\${2}" ++} # func_append may be replaced by extended shell implementation ++ ++# func_append_quoted var value ++# Quote VALUE and append to the end of shell variable VAR, separated ++# by a space. ++func_append_quoted () ++{ ++ func_quote_for_eval "${2}" ++ eval "${1}=\$${1}\\ \$func_quote_for_eval_result" ++} # func_append_quoted may be replaced by extended shell implementation ++ ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=`expr "${@}"` ++} # func_arith may be replaced by extended shell implementation ++ ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` ++} # func_len may be replaced by extended shell implementation ++ ++ ++# func_lo2o object ++func_lo2o () ++{ ++ func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` ++} # func_lo2o may be replaced by extended shell implementation ++ ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` ++} # func_xform may be replaced by extended shell implementation ++ ++ + # func_fatal_configuration arg... + # Echo program name prefixed message to standard error, followed by + # a configuration failure hint, and exit. +@@ -850,130 +979,204 @@ func_enable_tag () + esac + } + +-# Parse options once, thoroughly. This comes as soon as possible in +-# the script to make things like `libtool --version' happen quickly. ++# func_check_version_match ++# Ensure that we are using m4 macros, and libtool script from the same ++# release of libtool. ++func_check_version_match () + { ++ if test "$package_revision" != "$macro_revision"; then ++ if test "$VERSION" != "$macro_version"; then ++ if test -z "$macro_version"; then ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from an older release. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, but the ++$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. ++$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION ++$progname: and run autoconf again. ++_LT_EOF ++ fi ++ else ++ cat >&2 <<_LT_EOF ++$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, ++$progname: but the definition of this LT_INIT comes from revision $macro_revision. ++$progname: You should recreate aclocal.m4 with macros from revision $package_revision ++$progname: of $PACKAGE $VERSION and run autoconf again. ++_LT_EOF ++ fi + +- # Shorthand for --mode=foo, only valid as the first argument +- case $1 in +- clean|clea|cle|cl) +- shift; set dummy --mode clean ${1+"$@"}; shift +- ;; +- compile|compil|compi|comp|com|co|c) +- shift; set dummy --mode compile ${1+"$@"}; shift +- ;; +- execute|execut|execu|exec|exe|ex|e) +- shift; set dummy --mode execute ${1+"$@"}; shift +- ;; +- finish|finis|fini|fin|fi|f) +- shift; set dummy --mode finish ${1+"$@"}; shift +- ;; +- install|instal|insta|inst|ins|in|i) +- shift; set dummy --mode install ${1+"$@"}; shift +- ;; +- link|lin|li|l) +- shift; set dummy --mode link ${1+"$@"}; shift +- ;; +- uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) +- shift; set dummy --mode uninstall ${1+"$@"}; shift +- ;; +- esac ++ exit $EXIT_MISMATCH ++ fi ++} ++ ++ ++# Shorthand for --mode=foo, only valid as the first argument ++case $1 in ++clean|clea|cle|cl) ++ shift; set dummy --mode clean ${1+"$@"}; shift ++ ;; ++compile|compil|compi|comp|com|co|c) ++ shift; set dummy --mode compile ${1+"$@"}; shift ++ ;; ++execute|execut|execu|exec|exe|ex|e) ++ shift; set dummy --mode execute ${1+"$@"}; shift ++ ;; ++finish|finis|fini|fin|fi|f) ++ shift; set dummy --mode finish ${1+"$@"}; shift ++ ;; ++install|instal|insta|inst|ins|in|i) ++ shift; set dummy --mode install ${1+"$@"}; shift ++ ;; ++link|lin|li|l) ++ shift; set dummy --mode link ${1+"$@"}; shift ++ ;; ++uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) ++ shift; set dummy --mode uninstall ${1+"$@"}; shift ++ ;; ++esac + +- # Parse non-mode specific arguments: +- while test "$#" -gt 0; do ++ ++ ++# Option defaults: ++opt_debug=: ++opt_dry_run=false ++opt_config=false ++opt_preserve_dup_deps=false ++opt_features=false ++opt_finish=false ++opt_help=false ++opt_help_all=false ++opt_silent=: ++opt_verbose=: ++opt_silent=false ++opt_verbose=false ++ ++ ++# Parse options once, thoroughly. This comes as soon as possible in the ++# script to make things like `--version' happen as quickly as we can. ++{ ++ # this just eases exit handling ++ while test $# -gt 0; do + opt="$1" + shift +- + case $opt in +- --config) func_config ;; +- +- --debug) preserve_args="$preserve_args $opt" ++ --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" +- opt_debug='set -x' + $opt_debug + ;; +- +- -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break +- execute_dlfiles="$execute_dlfiles $1" +- shift ++ --dry-run|--dryrun|-n) ++ opt_dry_run=: + ;; +- +- --dry-run | -n) opt_dry_run=: ;; +- --features) func_features ;; +- --finish) mode="finish" ;; +- --no-finish) opt_finish=false ;; +- +- --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break +- case $1 in +- # Valid mode arguments: +- clean) ;; +- compile) ;; +- execute) ;; +- finish) ;; +- install) ;; +- link) ;; +- relink) ;; +- uninstall) ;; +- +- # Catch anything else as an error +- *) func_error "invalid argument for $opt" +- exit_cmd=exit +- break +- ;; +- esac +- +- mode="$1" ++ --config) ++ opt_config=: ++func_config ++ ;; ++ --dlopen|-dlopen) ++ optarg="$1" ++ opt_dlopen="${opt_dlopen+$opt_dlopen ++}$optarg" + shift + ;; +- + --preserve-dup-deps) +- opt_duplicate_deps=: ;; +- +- --quiet|--silent) preserve_args="$preserve_args $opt" +- opt_silent=: +- opt_verbose=false ++ opt_preserve_dup_deps=: + ;; +- +- --no-quiet|--no-silent) +- preserve_args="$preserve_args $opt" +- opt_silent=false ++ --features) ++ opt_features=: ++func_features + ;; +- +- --verbose| -v) preserve_args="$preserve_args $opt" ++ --finish) ++ opt_finish=: ++set dummy --mode finish ${1+"$@"}; shift ++ ;; ++ --help) ++ opt_help=: ++ ;; ++ --help-all) ++ opt_help_all=: ++opt_help=': help-all' ++ ;; ++ --mode) ++ test $# = 0 && func_missing_arg $opt && break ++ optarg="$1" ++ opt_mode="$optarg" ++case $optarg in ++ # Valid mode arguments: ++ clean|compile|execute|finish|install|link|relink|uninstall) ;; ++ ++ # Catch anything else as an error ++ *) func_error "invalid argument for $opt" ++ exit_cmd=exit ++ break ++ ;; ++esac ++ shift ++ ;; ++ --no-silent|--no-quiet) + opt_silent=false +- opt_verbose=: ++func_append preserve_args " $opt" + ;; +- +- --no-verbose) preserve_args="$preserve_args $opt" ++ --no-verbose) + opt_verbose=false ++func_append preserve_args " $opt" + ;; +- +- --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break +- preserve_args="$preserve_args $opt $1" +- func_enable_tag "$1" # tagname is set here ++ --silent|--quiet) ++ opt_silent=: ++func_append preserve_args " $opt" ++ opt_verbose=false ++ ;; ++ --verbose|-v) ++ opt_verbose=: ++func_append preserve_args " $opt" ++opt_silent=false ++ ;; ++ --tag) ++ test $# = 0 && func_missing_arg $opt && break ++ optarg="$1" ++ opt_tag="$optarg" ++func_append preserve_args " $opt $optarg" ++func_enable_tag "$optarg" + shift + ;; + ++ -\?|-h) func_usage ;; ++ --help) func_help ;; ++ --version) func_version ;; ++ + # Separate optargs to long options: +- -dlopen=*|--mode=*|--tag=*) +- func_opt_split "$opt" +- set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} ++ --*=*) ++ func_split_long_opt "$opt" ++ set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + +- -\?|-h) func_usage ;; +- --help) opt_help=: ;; +- --help-all) opt_help=': help-all' ;; +- --version) func_version ;; +- +- -*) func_fatal_help "unrecognized option \`$opt'" ;; +- +- *) nonopt="$opt" +- break ++ # Separate non-argument short options: ++ -\?*|-h*|-n*|-v*) ++ func_split_short_opt "$opt" ++ set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} ++ shift + ;; ++ ++ --) break ;; ++ -*) func_fatal_help "unrecognized option \`$opt'" ;; ++ *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + ++ # Validate options: ++ ++ # save first non-option argument ++ if test "$#" -gt 0; then ++ nonopt="$opt" ++ shift ++ fi ++ ++ # preserve --debug ++ test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) +@@ -981,82 +1184,44 @@ func_enable_tag () + opt_duplicate_compiler_generated_deps=: + ;; + *) +- opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ++ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + +- # Having warned about all mis-specified options, bail out if +- # anything was wrong. +- $exit_cmd $EXIT_FAILURE +-} ++ $opt_help || { ++ # Sanity checks first: ++ func_check_version_match + +-# func_check_version_match +-# Ensure that we are using m4 macros, and libtool script from the same +-# release of libtool. +-func_check_version_match () +-{ +- if test "$package_revision" != "$macro_revision"; then +- if test "$VERSION" != "$macro_version"; then +- if test -z "$macro_version"; then +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from an older release. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +-$progname: and run autoconf again. +-_LT_EOF +- fi +- else +- cat >&2 <<_LT_EOF +-$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +-$progname: but the definition of this LT_INIT comes from revision $macro_revision. +-$progname: You should recreate aclocal.m4 with macros from revision $package_revision +-$progname: of $PACKAGE $VERSION and run autoconf again. +-_LT_EOF ++ if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ++ func_fatal_configuration "not configured to build any kind of library" + fi + +- exit $EXIT_MISMATCH +- fi +-} +- ++ # Darwin sucks ++ eval std_shrext=\"$shrext_cmds\" + +-## ----------- ## +-## Main. ## +-## ----------- ## +- +-$opt_help || { +- # Sanity checks first: +- func_check_version_match +- +- if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then +- func_fatal_configuration "not configured to build any kind of library" +- fi ++ # Only execute mode is allowed to have -dlopen flags. ++ if test -n "$opt_dlopen" && test "$opt_mode" != execute; then ++ func_error "unrecognized option \`-dlopen'" ++ $ECHO "$help" 1>&2 ++ exit $EXIT_FAILURE ++ fi + +- test -z "$mode" && func_fatal_error "error: you must specify a MODE." ++ # Change the help message to a mode-specific one. ++ generic_help="$help" ++ help="Try \`$progname --help --mode=$opt_mode' for more information." ++ } + + +- # Darwin sucks +- eval "std_shrext=\"$shrext_cmds\"" ++ # Bail if the options were screwed ++ $exit_cmd $EXIT_FAILURE ++} + + +- # Only execute mode is allowed to have -dlopen flags. +- if test -n "$execute_dlfiles" && test "$mode" != execute; then +- func_error "unrecognized option \`-dlopen'" +- $ECHO "$help" 1>&2 +- exit $EXIT_FAILURE +- fi + +- # Change the help message to a mode-specific one. +- generic_help="$help" +- help="Try \`$progname --help --mode=$mode' for more information." +-} + ++## ----------- ## ++## Main. ## ++## ----------- ## + + # func_lalib_p file + # True iff FILE is a libtool `.la' library or `.lo' object file. +@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p () + # temporary ltwrapper_script. + func_ltwrapper_scriptname () + { +- func_ltwrapper_scriptname_result="" +- if func_ltwrapper_executable_p "$1"; then +- func_dirname_and_basename "$1" "" "." +- func_stripname '' '.exe' "$func_basename_result" +- func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +- fi ++ func_dirname_and_basename "$1" "" "." ++ func_stripname '' '.exe' "$func_basename_result" ++ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + } + + # func_ltwrapper_p file +@@ -1149,7 +1311,7 @@ func_execute_cmds () + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs +- eval "cmd=\"$cmd\"" ++ eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +@@ -1172,6 +1334,37 @@ func_source () + } + + ++# func_resolve_sysroot PATH ++# Replace a leading = in PATH with a sysroot. Store the result into ++# func_resolve_sysroot_result ++func_resolve_sysroot () ++{ ++ func_resolve_sysroot_result=$1 ++ case $func_resolve_sysroot_result in ++ =*) ++ func_stripname '=' '' "$func_resolve_sysroot_result" ++ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ++ ;; ++ esac ++} ++ ++# func_replace_sysroot PATH ++# If PATH begins with the sysroot, replace it with = and ++# store the result into func_replace_sysroot_result. ++func_replace_sysroot () ++{ ++ case "$lt_sysroot:$1" in ++ ?*:"$lt_sysroot"*) ++ func_stripname "$lt_sysroot" '' "$1" ++ func_replace_sysroot_result="=$func_stripname_result" ++ ;; ++ *) ++ # Including no sysroot. ++ func_replace_sysroot_result=$1 ++ ;; ++ esac ++} ++ + # func_infer_tag arg + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. +@@ -1184,8 +1377,7 @@ func_infer_tag () + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` +@@ -1204,8 +1396,7 @@ func_infer_tag () + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. +- func_quote_for_eval "$arg" +- CC_quoted="$CC_quoted $func_quote_for_eval_result" ++ func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` +@@ -1274,6 +1465,486 @@ EOF + } + } + ++ ++################################################## ++# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # ++################################################## ++ ++# func_convert_core_file_wine_to_w32 ARG ++# Helper function used by file name conversion functions when $build is *nix, ++# and $host is mingw, cygwin, or some other w32 environment. Relies on a ++# correctly configured wine environment available, with the winepath program ++# in $build's $PATH. ++# ++# ARG is the $build file name to be converted to w32 format. ++# Result is available in $func_convert_core_file_wine_to_w32_result, and will ++# be empty on error (or when ARG is empty) ++func_convert_core_file_wine_to_w32 () ++{ ++ $opt_debug ++ func_convert_core_file_wine_to_w32_result="$1" ++ if test -n "$1"; then ++ # Unfortunately, winepath does not exit with a non-zero error code, so we ++ # are forced to check the contents of stdout. On the other hand, if the ++ # command is not found, the shell will set an exit code of 127 and print ++ # *an error message* to stdout. So we must check for both error code of ++ # zero AND non-empty stdout, which explains the odd construction: ++ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` ++ if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then ++ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | ++ $SED -e "$lt_sed_naive_backslashify"` ++ else ++ func_convert_core_file_wine_to_w32_result= ++ fi ++ fi ++} ++# end: func_convert_core_file_wine_to_w32 ++ ++ ++# func_convert_core_path_wine_to_w32 ARG ++# Helper function used by path conversion functions when $build is *nix, and ++# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly ++# configured wine environment available, with the winepath program in $build's ++# $PATH. Assumes ARG has no leading or trailing path separator characters. ++# ++# ARG is path to be converted from $build format to win32. ++# Result is available in $func_convert_core_path_wine_to_w32_result. ++# Unconvertible file (directory) names in ARG are skipped; if no directory names ++# are convertible, then the result may be empty. ++func_convert_core_path_wine_to_w32 () ++{ ++ $opt_debug ++ # unfortunately, winepath doesn't convert paths, only file names ++ func_convert_core_path_wine_to_w32_result="" ++ if test -n "$1"; then ++ oldIFS=$IFS ++ IFS=: ++ for func_convert_core_path_wine_to_w32_f in $1; do ++ IFS=$oldIFS ++ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" ++ if test -n "$func_convert_core_file_wine_to_w32_result" ; then ++ if test -z "$func_convert_core_path_wine_to_w32_result"; then ++ func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" ++ else ++ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" ++ fi ++ fi ++ done ++ IFS=$oldIFS ++ fi ++} ++# end: func_convert_core_path_wine_to_w32 ++ ++ ++# func_cygpath ARGS... ++# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when ++# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) ++# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or ++# (2), returns the Cygwin file name or path in func_cygpath_result (input ++# file name or path is assumed to be in w32 format, as previously converted ++# from $build's *nix or MSYS format). In case (3), returns the w32 file name ++# or path in func_cygpath_result (input file name or path is assumed to be in ++# Cygwin format). Returns an empty string on error. ++# ++# ARGS are passed to cygpath, with the last one being the file name or path to ++# be converted. ++# ++# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH ++# environment variable; do not put it in $PATH. ++func_cygpath () ++{ ++ $opt_debug ++ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then ++ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` ++ if test "$?" -ne 0; then ++ # on failure, ensure result is empty ++ func_cygpath_result= ++ fi ++ else ++ func_cygpath_result= ++ func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" ++ fi ++} ++#end: func_cygpath ++ ++ ++# func_convert_core_msys_to_w32 ARG ++# Convert file name or path ARG from MSYS format to w32 format. Return ++# result in func_convert_core_msys_to_w32_result. ++func_convert_core_msys_to_w32 () ++{ ++ $opt_debug ++ # awkward: cmd appends spaces to result ++ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | ++ $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ++} ++#end: func_convert_core_msys_to_w32 ++ ++ ++# func_convert_file_check ARG1 ARG2 ++# Verify that ARG1 (a file name in $build format) was converted to $host ++# format in ARG2. Otherwise, emit an error message, but continue (resetting ++# func_to_host_file_result to ARG1). ++func_convert_file_check () ++{ ++ $opt_debug ++ if test -z "$2" && test -n "$1" ; then ++ func_error "Could not determine host file name corresponding to" ++ func_error " \`$1'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback: ++ func_to_host_file_result="$1" ++ fi ++} ++# end func_convert_file_check ++ ++ ++# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH ++# Verify that FROM_PATH (a path in $build format) was converted to $host ++# format in TO_PATH. Otherwise, emit an error message, but continue, resetting ++# func_to_host_file_result to a simplistic fallback value (see below). ++func_convert_path_check () ++{ ++ $opt_debug ++ if test -z "$4" && test -n "$3"; then ++ func_error "Could not determine the host path corresponding to" ++ func_error " \`$3'" ++ func_error "Continuing, but uninstalled executables may not work." ++ # Fallback. This is a deliberately simplistic "conversion" and ++ # should not be "improved". See libtool.info. ++ if test "x$1" != "x$2"; then ++ lt_replace_pathsep_chars="s|$1|$2|g" ++ func_to_host_path_result=`echo "$3" | ++ $SED -e "$lt_replace_pathsep_chars"` ++ else ++ func_to_host_path_result="$3" ++ fi ++ fi ++} ++# end func_convert_path_check ++ ++ ++# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG ++# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT ++# and appending REPL if ORIG matches BACKPAT. ++func_convert_path_front_back_pathsep () ++{ ++ $opt_debug ++ case $4 in ++ $1 ) func_to_host_path_result="$3$func_to_host_path_result" ++ ;; ++ esac ++ case $4 in ++ $2 ) func_append func_to_host_path_result "$3" ++ ;; ++ esac ++} ++# end func_convert_path_front_back_pathsep ++ ++ ++################################################## ++# $build to $host FILE NAME CONVERSION FUNCTIONS # ++################################################## ++# invoked via `$to_host_file_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# Result will be available in $func_to_host_file_result. ++ ++ ++# func_to_host_file ARG ++# Converts the file name ARG from $build format to $host format. Return result ++# in func_to_host_file_result. ++func_to_host_file () ++{ ++ $opt_debug ++ $to_host_file_cmd "$1" ++} ++# end func_to_host_file ++ ++ ++# func_to_tool_file ARG LAZY ++# converts the file name ARG from $build format to toolchain format. Return ++# result in func_to_tool_file_result. If the conversion in use is listed ++# in (the comma separated) LAZY, no conversion takes place. ++func_to_tool_file () ++{ ++ $opt_debug ++ case ,$2, in ++ *,"$to_tool_file_cmd",*) ++ func_to_tool_file_result=$1 ++ ;; ++ *) ++ $to_tool_file_cmd "$1" ++ func_to_tool_file_result=$func_to_host_file_result ++ ;; ++ esac ++} ++# end func_to_tool_file ++ ++ ++# func_convert_file_noop ARG ++# Copy ARG to func_to_host_file_result. ++func_convert_file_noop () ++{ ++ func_to_host_file_result="$1" ++} ++# end func_convert_file_noop ++ ++ ++# func_convert_file_msys_to_w32 ARG ++# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_file_result. ++func_convert_file_msys_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_to_host_file_result="$func_convert_core_msys_to_w32_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_w32 ++ ++ ++# func_convert_file_cygwin_to_w32 ARG ++# Convert file name ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_file_cygwin_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use ++ # LT_CYGPATH in this case. ++ func_to_host_file_result=`cygpath -m "$1"` ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_cygwin_to_w32 ++ ++ ++# func_convert_file_nix_to_w32 ARG ++# Convert file name ARG from *nix to w32 format. Requires a wine environment ++# and a working winepath. Returns result in func_to_host_file_result. ++func_convert_file_nix_to_w32 () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_file_wine_to_w32 "$1" ++ func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_w32 ++ ++ ++# func_convert_file_msys_to_cygwin ARG ++# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_file_msys_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ func_convert_core_msys_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_msys_to_w32_result" ++ func_to_host_file_result="$func_cygpath_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_msys_to_cygwin ++ ++ ++# func_convert_file_nix_to_cygwin ARG ++# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed ++# in a wine environment, working winepath, and LT_CYGPATH set. Returns result ++# in func_to_host_file_result. ++func_convert_file_nix_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_file_result="$1" ++ if test -n "$1"; then ++ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. ++ func_convert_core_file_wine_to_w32 "$1" ++ func_cygpath -u "$func_convert_core_file_wine_to_w32_result" ++ func_to_host_file_result="$func_cygpath_result" ++ fi ++ func_convert_file_check "$1" "$func_to_host_file_result" ++} ++# end func_convert_file_nix_to_cygwin ++ ++ ++############################################# ++# $build to $host PATH CONVERSION FUNCTIONS # ++############################################# ++# invoked via `$to_host_path_cmd ARG' ++# ++# In each case, ARG is the path to be converted from $build to $host format. ++# The result will be available in $func_to_host_path_result. ++# ++# Path separators are also converted from $build format to $host format. If ++# ARG begins or ends with a path separator character, it is preserved (but ++# converted to $host format) on output. ++# ++# All path conversion functions are named using the following convention: ++# file name conversion function : func_convert_file_X_to_Y () ++# path conversion function : func_convert_path_X_to_Y () ++# where, for any given $build/$host combination the 'X_to_Y' value is the ++# same. If conversion functions are added for new $build/$host combinations, ++# the two new functions must follow this pattern, or func_init_to_host_path_cmd ++# will break. ++ ++ ++# func_init_to_host_path_cmd ++# Ensures that function "pointer" variable $to_host_path_cmd is set to the ++# appropriate value, based on the value of $to_host_file_cmd. ++to_host_path_cmd= ++func_init_to_host_path_cmd () ++{ ++ $opt_debug ++ if test -z "$to_host_path_cmd"; then ++ func_stripname 'func_convert_file_' '' "$to_host_file_cmd" ++ to_host_path_cmd="func_convert_path_${func_stripname_result}" ++ fi ++} ++ ++ ++# func_to_host_path ARG ++# Converts the path ARG from $build format to $host format. Return result ++# in func_to_host_path_result. ++func_to_host_path () ++{ ++ $opt_debug ++ func_init_to_host_path_cmd ++ $to_host_path_cmd "$1" ++} ++# end func_to_host_path ++ ++ ++# func_convert_path_noop ARG ++# Copy ARG to func_to_host_path_result. ++func_convert_path_noop () ++{ ++ func_to_host_path_result="$1" ++} ++# end func_convert_path_noop ++ ++ ++# func_convert_path_msys_to_w32 ARG ++# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic ++# conversion to w32 is not available inside the cwrapper. Returns result in ++# func_to_host_path_result. ++func_convert_path_msys_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ARG. MSYS ++ # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; ++ # and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result="$func_convert_core_msys_to_w32_result" ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_msys_to_w32 ++ ++ ++# func_convert_path_cygwin_to_w32 ARG ++# Convert path ARG from Cygwin to w32 format. Returns result in ++# func_to_host_file_result. ++func_convert_path_cygwin_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_cygwin_to_w32 ++ ++ ++# func_convert_path_nix_to_w32 ARG ++# Convert path ARG from *nix to w32 format. Requires a wine environment and ++# a working winepath. Returns result in func_to_host_file_result. ++func_convert_path_nix_to_w32 () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" ++ func_convert_path_check : ";" \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" ++ fi ++} ++# end func_convert_path_nix_to_w32 ++ ++ ++# func_convert_path_msys_to_cygwin ARG ++# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. ++# Returns result in func_to_host_file_result. ++func_convert_path_msys_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # See func_convert_path_msys_to_w32: ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_msys_to_w32_result" ++ func_to_host_path_result="$func_cygpath_result" ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_msys_to_cygwin ++ ++ ++# func_convert_path_nix_to_cygwin ARG ++# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a ++# a wine environment, working winepath, and LT_CYGPATH set. Returns result in ++# func_to_host_file_result. ++func_convert_path_nix_to_cygwin () ++{ ++ $opt_debug ++ func_to_host_path_result="$1" ++ if test -n "$1"; then ++ # Remove leading and trailing path separator characters from ++ # ARG. msys behavior is inconsistent here, cygpath turns them ++ # into '.;' and ';.', and winepath ignores them completely. ++ func_stripname : : "$1" ++ func_to_host_path_tmp1=$func_stripname_result ++ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" ++ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" ++ func_to_host_path_result="$func_cygpath_result" ++ func_convert_path_check : : \ ++ "$func_to_host_path_tmp1" "$func_to_host_path_result" ++ func_convert_path_front_back_pathsep ":*" "*:" : "$1" ++ fi ++} ++# end func_convert_path_nix_to_cygwin ++ ++ + # func_mode_compile arg... + func_mode_compile () + { +@@ -1314,12 +1985,12 @@ func_mode_compile () + ;; + + -pie | -fpie | -fPIE) +- pie_flag="$pie_flag $arg" ++ func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) +- later="$later $arg" ++ func_append later " $arg" + continue + ;; + +@@ -1340,15 +2011,14 @@ func_mode_compile () + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" +- func_quote_for_eval "$arg" +- lastarg="$lastarg $func_quote_for_eval_result" ++ func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. +- base_compile="$base_compile $lastarg" ++ func_append base_compile " $lastarg" + continue + ;; + +@@ -1364,8 +2034,7 @@ func_mode_compile () + esac # case $arg_mode + + # Aesthetically quote the previous argument. +- func_quote_for_eval "$lastarg" +- base_compile="$base_compile $func_quote_for_eval_result" ++ func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in +@@ -1496,17 +2165,16 @@ compiler." + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi +- removelist="$removelist $output_obj" ++ func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist +- removelist="$removelist $lockfile" ++ func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + +- if test -n "$fix_srcfile_path"; then +- eval "srcfile=\"$fix_srcfile_path\"" +- fi ++ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 ++ srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + +@@ -1526,7 +2194,7 @@ compiler." + + if test -z "$output_obj"; then + # Place PIC objects in $objdir +- command="$command -o $lobj" ++ func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ +@@ -1573,11 +2241,11 @@ compiler." + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then +- command="$command -o $obj" ++ func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. +- command="$command$suppress_output" ++ func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + +@@ -1622,13 +2290,13 @@ compiler." + } + + $opt_help || { +- test "$mode" = compile && func_mode_compile ${1+"$@"} ++ test "$opt_mode" = compile && func_mode_compile ${1+"$@"} + } + + func_mode_help () + { + # We need to display help for each of the modes. +- case $mode in ++ case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. +@@ -1659,8 +2327,8 @@ This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes +- -prefer-pic try to building PIC objects only +- -prefer-non-pic try to building non-PIC objects only ++ -prefer-pic try to build PIC objects only ++ -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler +@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted using RM." + ;; + + *) +- func_fatal_help "invalid operation mode \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + +@@ -1819,13 +2487,13 @@ if $opt_help; then + else + { + func_help noexit +- for mode in compile link execute install finish uninstall clean; do ++ for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit +- for mode in compile link execute install finish uninstall clean; do ++ for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done +@@ -1854,13 +2522,16 @@ func_mode_execute () + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. +- for file in $execute_dlfiles; do ++ for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" +@@ -1882,7 +2553,7 @@ func_mode_execute () + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then +- dir="$dir/$objdir" ++ func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" +@@ -1907,10 +2578,10 @@ func_mode_execute () + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. +- if eval test -z \"\$$shlibpath_var\"; then +- eval $shlibpath_var=\$dir ++ if eval "test -z \"\$$shlibpath_var\""; then ++ eval "$shlibpath_var=\"\$dir\"" + else +- eval $shlibpath_var=\$dir:\$$shlibpath_var ++ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + +@@ -1939,8 +2610,7 @@ func_mode_execute () + ;; + esac + # Quote arguments (to preserve shell metacharacters). +- func_quote_for_eval "$file" +- args="$args $func_quote_for_eval_result" ++ func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then +@@ -1972,22 +2642,59 @@ func_mode_execute () + fi + } + +-test "$mode" = execute && func_mode_execute ${1+"$@"} ++test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + + # func_mode_finish arg... + func_mode_finish () + { + $opt_debug +- libdirs="$nonopt" ++ libs= ++ libdirs= + admincmds= + +- if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then +- for dir +- do +- libdirs="$libdirs $dir" +- done ++ for opt in "$nonopt" ${1+"$@"} ++ do ++ if test -d "$opt"; then ++ func_append libdirs " $opt" + ++ elif test -f "$opt"; then ++ if func_lalib_unsafe_p "$opt"; then ++ func_append libs " $opt" ++ else ++ func_warning "\`$opt' is not a valid libtool archive" ++ fi ++ ++ else ++ func_fatal_error "invalid argument \`$opt'" ++ fi ++ done ++ ++ if test -n "$libs"; then ++ if test -n "$lt_sysroot"; then ++ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` ++ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" ++ else ++ sysroot_cmd= ++ fi ++ ++ # Remove sysroot references ++ if $opt_dry_run; then ++ for lib in $libs; do ++ echo "removing references to $lt_sysroot and \`=' prefixes from $lib" ++ done ++ else ++ tmpdir=`func_mktempdir` ++ for lib in $libs; do ++ sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ ++ > $tmpdir/tmp-la ++ mv -f $tmpdir/tmp-la $lib ++ done ++ ${RM}r "$tmpdir" ++ fi ++ fi ++ ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. +@@ -1997,7 +2704,7 @@ func_mode_finish () + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" +- $opt_dry_run || eval "$cmds" || admincmds="$admincmds ++ $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done +@@ -2006,53 +2713,55 @@ func_mode_finish () + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + +- echo "----------------------------------------------------------------------" +- echo "Libraries have been installed in:" +- for libdir in $libdirs; do +- $ECHO " $libdir" +- done +- echo +- echo "If you ever happen to want to link against installed libraries" +- echo "in a given directory, LIBDIR, you must either use libtool, and" +- echo "specify the full pathname of the library, or use the \`-LLIBDIR'" +- echo "flag during linking and do at least one of the following:" +- if test -n "$shlibpath_var"; then +- echo " - add LIBDIR to the \`$shlibpath_var' environment variable" +- echo " during execution" +- fi +- if test -n "$runpath_var"; then +- echo " - add LIBDIR to the \`$runpath_var' environment variable" +- echo " during linking" +- fi +- if test -n "$hardcode_libdir_flag_spec"; then +- libdir=LIBDIR +- eval "flag=\"$hardcode_libdir_flag_spec\"" ++ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then ++ echo "----------------------------------------------------------------------" ++ echo "Libraries have been installed in:" ++ for libdir in $libdirs; do ++ $ECHO " $libdir" ++ done ++ echo ++ echo "If you ever happen to want to link against installed libraries" ++ echo "in a given directory, LIBDIR, you must either use libtool, and" ++ echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ++ echo "flag during linking and do at least one of the following:" ++ if test -n "$shlibpath_var"; then ++ echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ++ echo " during execution" ++ fi ++ if test -n "$runpath_var"; then ++ echo " - add LIBDIR to the \`$runpath_var' environment variable" ++ echo " during linking" ++ fi ++ if test -n "$hardcode_libdir_flag_spec"; then ++ libdir=LIBDIR ++ eval flag=\"$hardcode_libdir_flag_spec\" + +- $ECHO " - use the \`$flag' linker flag" +- fi +- if test -n "$admincmds"; then +- $ECHO " - have your system administrator run these commands:$admincmds" +- fi +- if test -f /etc/ld.so.conf; then +- echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" +- fi +- echo ++ $ECHO " - use the \`$flag' linker flag" ++ fi ++ if test -n "$admincmds"; then ++ $ECHO " - have your system administrator run these commands:$admincmds" ++ fi ++ if test -f /etc/ld.so.conf; then ++ echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" ++ fi ++ echo + +- echo "See any operating system documentation about shared libraries for" +- case $host in +- solaris2.[6789]|solaris2.1[0-9]) +- echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" +- echo "pages." +- ;; +- *) +- echo "more information, such as the ld(1) and ld.so(8) manual pages." +- ;; +- esac +- echo "----------------------------------------------------------------------" ++ echo "See any operating system documentation about shared libraries for" ++ case $host in ++ solaris2.[6789]|solaris2.1[0-9]) ++ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" ++ echo "pages." ++ ;; ++ *) ++ echo "more information, such as the ld(1) and ld.so(8) manual pages." ++ ;; ++ esac ++ echo "----------------------------------------------------------------------" ++ fi + exit $EXIT_SUCCESS + } + +-test "$mode" = finish && func_mode_finish ${1+"$@"} ++test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + + # func_mode_install arg... +@@ -2077,7 +2786,7 @@ func_mode_install () + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" +- install_prog="$install_prog$func_quote_for_eval_result" ++ func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; +@@ -2097,7 +2806,7 @@ func_mode_install () + do + arg2= + if test -n "$dest"; then +- files="$files $dest" ++ func_append files " $dest" + dest=$arg + continue + fi +@@ -2135,11 +2844,11 @@ func_mode_install () + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" +- install_prog="$install_prog $func_quote_for_eval_result" ++ func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi +- install_shared_prog="$install_shared_prog $func_quote_for_eval_result" ++ func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ +@@ -2151,7 +2860,7 @@ func_mode_install () + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" +- install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" ++ func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + +@@ -2209,10 +2918,13 @@ func_mode_install () + case $file in + *.$libext) + # Do the static libraries later. +- staticlibs="$staticlibs $file" ++ func_append staticlibs " $file" + ;; + + *.la) ++ func_resolve_sysroot "$file" ++ file=$func_resolve_sysroot_result ++ + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" +@@ -2226,23 +2938,30 @@ func_mode_install () + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; +- *) current_libdirs="$current_libdirs $libdir" ;; ++ *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; +- *) future_libdirs="$future_libdirs $libdir" ;; ++ *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" +- dir="$dir$objdir" ++ func_append dir "$objdir" + + if test -n "$relink_command"; then ++ # Strip any trailing slash from the destination. ++ func_stripname '' '/' "$libdir" ++ destlibdir=$func_stripname_result ++ ++ func_stripname '' '/' "$destdir" ++ s_destdir=$func_stripname_result ++ + # Determine the prefix the user has applied to our future dir. +- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` ++ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that +@@ -2315,7 +3034,7 @@ func_mode_install () + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. +- test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ++ test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) +@@ -2503,7 +3222,7 @@ func_mode_install () + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + +- if test -n "$current_libdirs" && $opt_finish; then ++ if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' +@@ -2512,7 +3231,7 @@ func_mode_install () + fi + } + +-test "$mode" = install && func_mode_install ${1+"$@"} ++test "$opt_mode" = install && func_mode_install ${1+"$@"} + + + # func_generate_dlsyms outputname originator pic_p +@@ -2559,6 +3278,18 @@ extern \"C\" { + #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" + #endif + ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + /* External symbol declarations for the compiler. */\ + " + +@@ -2570,21 +3301,22 @@ extern \"C\" { + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do +- func_verbose "extracting global C symbols from \`$progfile'" +- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" ++ func_to_tool_file "$progfile" func_convert_file_msys_to_w32 ++ func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" ++ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { +- $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T +- $MV "$nlist"T "$nlist" ++ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { +- $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T +- $MV "$nlist"T "$nlist" ++ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' + } + fi + +@@ -2593,23 +3325,23 @@ extern \"C\" { + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols +- ${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' < "$nlist" > "$export_symbols" ++ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) +- echo EXPORTS > "$output_objdir/$outputname.def" +- cat "$export_symbols" >> "$output_objdir/$outputname.def" ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { +- ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp" +- $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T +- $MV "$nlist"T "$nlist" ++ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' ++ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' ++ eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) +- echo EXPORTS > "$output_objdir/$outputname.def" +- cat "$nlist" >> "$output_objdir/$outputname.def" ++ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ++ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } +@@ -2620,10 +3352,52 @@ extern \"C\" { + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" +- $opt_dry_run || { +- $ECHO ": $name " >> "$nlist" +- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" +- } ++ case $host in ++ *cygwin* | *mingw* | *cegcc* ) ++ # if an import library, we need to obtain dlname ++ if func_win32_import_lib_p "$dlprefile"; then ++ func_tr_sh "$dlprefile" ++ eval "curr_lafile=\$libfile_$func_tr_sh_result" ++ dlprefile_dlbasename="" ++ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then ++ # Use subshell, to avoid clobbering current variable values ++ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` ++ if test -n "$dlprefile_dlname" ; then ++ func_basename "$dlprefile_dlname" ++ dlprefile_dlbasename="$func_basename_result" ++ else ++ # no lafile. user explicitly requested -dlpreopen . ++ $sharedlib_from_linklib_cmd "$dlprefile" ++ dlprefile_dlbasename=$sharedlib_from_linklib_result ++ fi ++ fi ++ $opt_dry_run || { ++ if test -n "$dlprefile_dlbasename" ; then ++ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' ++ else ++ func_warning "Could not compute DLL name from $name" ++ eval '$ECHO ": $name " >> "$nlist"' ++ fi ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | ++ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" ++ } ++ else # not an import lib ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ fi ++ ;; ++ *) ++ $opt_dry_run || { ++ eval '$ECHO ": $name " >> "$nlist"' ++ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 ++ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" ++ } ++ ;; ++ esac + done + + $opt_dry_run || { +@@ -2661,26 +3435,9 @@ typedef struct { + const char *name; + void *address; + } lt_dlsymlist; +-" +- case $host in +- *cygwin* | *mingw* | *cegcc* ) +- echo >> "$output_objdir/$my_dlsyms" "\ +-/* DATA imports from DLLs on WIN32 con't be const, because +- runtime relocations are performed -- see ld's documentation +- on pseudo-relocs. */" +- lt_dlsym_const= ;; +- *osf5*) +- echo >> "$output_objdir/$my_dlsyms" "\ +-/* This system does not cope well with relocations in const data */" +- lt_dlsym_const= ;; +- *) +- lt_dlsym_const=const ;; +- esac +- +- echo >> "$output_objdir/$my_dlsyms" "\ +-extern $lt_dlsym_const lt_dlsymlist ++extern LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[]; +-$lt_dlsym_const lt_dlsymlist ++LT_DLSYM_CONST lt_dlsymlist + lt_${my_prefix}_LTX_preloaded_symbols[] = + {\ + { \"$my_originator\", (void *) 0 }," +@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() { + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; +- *) symtab_cflags="$symtab_cflags $arg" ;; ++ *) func_append symtab_cflags " $arg" ;; + esac + done + +@@ -2796,9 +3553,11 @@ func_win32_libid () + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static +- if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null | +- $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then +- win32_nmres=`$NM -f posix -A "$1" | ++ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. ++ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | ++ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ +@@ -2827,6 +3586,131 @@ func_win32_libid () + $ECHO "$win32_libid_type" + } + ++# func_cygming_dll_for_implib ARG ++# ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib () ++{ ++ $opt_debug ++ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` ++} ++ ++# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs ++# ++# The is the core of a fallback implementation of a ++# platform-specific function to extract the name of the ++# DLL associated with the specified import library LIBNAME. ++# ++# SECTION_NAME is either .idata$6 or .idata$7, depending ++# on the platform and compiler that created the implib. ++# ++# Echos the name of the DLL associated with the ++# specified import library. ++func_cygming_dll_for_implib_fallback_core () ++{ ++ $opt_debug ++ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` ++ $OBJDUMP -s --section "$1" "$2" 2>/dev/null | ++ $SED '/^Contents of section '"$match_literal"':/{ ++ # Place marker at beginning of archive member dllname section ++ s/.*/====MARK====/ ++ p ++ d ++ } ++ # These lines can sometimes be longer than 43 characters, but ++ # are always uninteresting ++ /:[ ]*file format pe[i]\{,1\}-/d ++ /^In archive [^:]*:/d ++ # Ensure marker is printed ++ /^====MARK====/p ++ # Remove all lines with less than 43 characters ++ /^.\{43\}/!d ++ # From remaining lines, remove first 43 characters ++ s/^.\{43\}//' | ++ $SED -n ' ++ # Join marker and all lines until next marker into a single line ++ /^====MARK====/ b para ++ H ++ $ b para ++ b ++ :para ++ x ++ s/\n//g ++ # Remove the marker ++ s/^====MARK====// ++ # Remove trailing dots and whitespace ++ s/[\. \t]*$// ++ # Print ++ /./p' | ++ # we now have a list, one entry per line, of the stringified ++ # contents of the appropriate section of all members of the ++ # archive which possess that section. Heuristic: eliminate ++ # all those which have a first or second character that is ++ # a '.' (that is, objdump's representation of an unprintable ++ # character.) This should work for all archives with less than ++ # 0x302f exports -- but will fail for DLLs whose name actually ++ # begins with a literal '.' or a single character followed by ++ # a '.'. ++ # ++ # Of those that remain, print the first one. ++ $SED -e '/^\./d;/^.\./d;q' ++} ++ ++# func_cygming_gnu_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is a GNU/binutils-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_gnu_implib_p () ++{ ++ $opt_debug ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` ++ test -n "$func_cygming_gnu_implib_tmp" ++} ++ ++# func_cygming_ms_implib_p ARG ++# This predicate returns with zero status (TRUE) if ++# ARG is an MS-style import library. Returns ++# with nonzero status (FALSE) otherwise. ++func_cygming_ms_implib_p () ++{ ++ $opt_debug ++ func_to_tool_file "$1" func_convert_file_msys_to_w32 ++ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` ++ test -n "$func_cygming_ms_implib_tmp" ++} ++ ++# func_cygming_dll_for_implib_fallback ARG ++# Platform-specific function to extract the ++# name of the DLL associated with the specified ++# import library ARG. ++# ++# This fallback implementation is for use when $DLLTOOL ++# does not support the --identify-strict option. ++# Invoked by eval'ing the libtool variable ++# $sharedlib_from_linklib_cmd ++# Result is available in the variable ++# $sharedlib_from_linklib_result ++func_cygming_dll_for_implib_fallback () ++{ ++ $opt_debug ++ if func_cygming_gnu_implib_p "$1" ; then ++ # binutils import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` ++ elif func_cygming_ms_implib_p "$1" ; then ++ # ms-generated import library ++ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` ++ else ++ # unknown ++ sharedlib_from_linklib_result="" ++ fi ++} + + + # func_extract_an_archive dir oldlib +@@ -2917,7 +3801,7 @@ func_extract_archives () + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do +- darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` ++ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ +@@ -2932,7 +3816,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +@@ -3014,7 +3898,110 @@ func_fallback_echo () + _LTECHO_EOF' + } + ECHO=\"$qECHO\" +- fi\ ++ fi ++ ++# Very basic option parsing. These options are (a) specific to ++# the libtool wrapper, (b) are identical between the wrapper ++# /script/ and the wrapper /executable/ which is used only on ++# windows platforms, and (c) all begin with the string "--lt-" ++# (application programs are unlikely to have options which match ++# this pattern). ++# ++# There are only two supported options: --lt-debug and ++# --lt-dump-script. There is, deliberately, no --lt-help. ++# ++# The first argument to this parsing function should be the ++# script's $0 value, followed by "$@". ++lt_option_debug= ++func_parse_lt_options () ++{ ++ lt_script_arg0=\$0 ++ shift ++ for lt_opt ++ do ++ case \"\$lt_opt\" in ++ --lt-debug) lt_option_debug=1 ;; ++ --lt-dump-script) ++ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` ++ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. ++ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` ++ cat \"\$lt_dump_D/\$lt_dump_F\" ++ exit 0 ++ ;; ++ --lt-*) ++ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ ++ # Print the debug banner immediately: ++ if test -n \"\$lt_option_debug\"; then ++ echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 ++ fi ++} ++ ++# Used when --lt-debug. Prints its arguments to stdout ++# (redirection is the responsibility of the caller) ++func_lt_dump_args () ++{ ++ lt_dump_args_N=1; ++ for lt_arg ++ do ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" ++ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` ++ done ++} ++ ++# Core function for launching the target application ++func_exec_program_core () ++{ ++" ++ case $host in ++ # Backslashes separate directories on plain windows ++ *-*-mingw | *-*-os2* | *-cegcc*) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} ++" ++ ;; ++ ++ *) ++ $ECHO "\ ++ if test -n \"\$lt_option_debug\"; then ++ \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 ++ func_lt_dump_args \${1+\"\$@\"} 1>&2 ++ fi ++ exec \"\$progdir/\$program\" \${1+\"\$@\"} ++" ++ ;; ++ esac ++ $ECHO "\ ++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 ++ exit 1 ++} ++ ++# A function to encapsulate launching the target application ++# Strips options in the --lt-* namespace from \$@ and ++# launches target application with the remaining arguments. ++func_exec_program () ++{ ++ for lt_wr_arg ++ do ++ case \$lt_wr_arg in ++ --lt-*) ;; ++ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; ++ esac ++ shift ++ done ++ func_exec_program_core \${1+\"\$@\"} ++} ++ ++ # Parse options ++ func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` +@@ -3078,7 +4065,7 @@ _LTECHO_EOF' + + # relink executable if necessary + if test -n \"\$relink_command\"; then +- if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then : ++ if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" +@@ -3102,6 +4089,18 @@ _LTECHO_EOF' + + if test -f \"\$progdir/\$program\"; then" + ++ # fixup the dll searchpath if we need to. ++ # ++ # Fix the DLL searchpath if we need to. Do this before prepending ++ # to shlibpath, because on Windows, both are PATH and uninstalled ++ # libraries must come first. ++ if test -n "$dllsearchpath"; then ++ $ECHO "\ ++ # Add the dll search path components to the executable PATH ++ PATH=$dllsearchpath:\$PATH ++" ++ fi ++ + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ +@@ -3116,35 +4115,10 @@ _LTECHO_EOF' + " + fi + +- # fixup the dll searchpath if we need to. +- if test -n "$dllsearchpath"; then +- $ECHO "\ +- # Add the dll search path components to the executable PATH +- PATH=$dllsearchpath:\$PATH +-" +- fi +- + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +-" +- case $host in +- # Backslashes separate directories on plain windows +- *-*-mingw | *-*-os2* | *-cegcc*) +- $ECHO "\ +- exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +-" +- ;; +- +- *) +- $ECHO "\ +- exec \"\$progdir/\$program\" \${1+\"\$@\"} +-" +- ;; +- esac +- $ECHO "\ +- \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 +- exit 1 ++ func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. +@@ -3158,166 +4132,6 @@ fi\ + } + + +-# func_to_host_path arg +-# +-# Convert paths to host format when used with build tools. +-# Intended for use with "native" mingw (where libtool itself +-# is running under the msys shell), or in the following cross- +-# build environments: +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# where wine is equipped with the `winepath' executable. +-# In the native mingw case, the (msys) shell automatically +-# converts paths for any non-msys applications it launches, +-# but that facility isn't available from inside the cwrapper. +-# Similar accommodations are necessary for $host mingw and +-# $build cygwin. Calling this function does no harm for other +-# $host/$build combinations not listed above. +-# +-# ARG is the path (on $build) that should be converted to +-# the proper representation for $host. The result is stored +-# in $func_to_host_path_result. +-func_to_host_path () +-{ +- func_to_host_path_result="$1" +- if test -n "$1"; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- case $build in +- *mingw* ) # actually, msys +- # awkward: cmd appends spaces to result +- func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | +- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_path_result=`cygpath -w "$1" | +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # Unfortunately, winepath does not exit with a non-zero +- # error code, so we are forced to check the contents of +- # stdout. On the other hand, if the command is not +- # found, the shell will set an exit code of 127 and print +- # *an error message* to stdout. So we must check for both +- # error code of zero AND non-empty stdout, which explains +- # the odd construction: +- func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` +- if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then +- func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | +- $SED -e "$lt_sed_naive_backslashify"` +- else +- # Allow warning below. +- func_to_host_path_result= +- fi +- ;; +- esac +- if test -z "$func_to_host_path_result" ; then +- func_error "Could not determine host path corresponding to" +- func_error " \`$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback: +- func_to_host_path_result="$1" +- fi +- ;; +- esac +- fi +-} +-# end: func_to_host_path +- +-# func_to_host_pathlist arg +-# +-# Convert pathlists to host format when used with build tools. +-# See func_to_host_path(), above. This function supports the +-# following $build/$host combinations (but does no harm for +-# combinations not listed here): +-# $build $host +-# mingw (msys) mingw [e.g. native] +-# cygwin mingw +-# *nix + wine mingw +-# +-# Path separators are also converted from $build format to +-# $host format. If ARG begins or ends with a path separator +-# character, it is preserved (but converted to $host format) +-# on output. +-# +-# ARG is a pathlist (on $build) that should be converted to +-# the proper representation on $host. The result is stored +-# in $func_to_host_pathlist_result. +-func_to_host_pathlist () +-{ +- func_to_host_pathlist_result="$1" +- if test -n "$1"; then +- case $host in +- *mingw* ) +- lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' +- # Remove leading and trailing path separator characters from +- # ARG. msys behavior is inconsistent here, cygpath turns them +- # into '.;' and ';.', and winepath ignores them completely. +- func_stripname : : "$1" +- func_to_host_pathlist_tmp1=$func_stripname_result +- case $build in +- *mingw* ) # Actually, msys. +- # Awkward: cmd appends spaces to result. +- func_to_host_pathlist_result=` +- ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | +- $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +- ;; +- *cygwin* ) +- func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | +- $SED -e "$lt_sed_naive_backslashify"` +- ;; +- * ) +- # unfortunately, winepath doesn't convert pathlists +- func_to_host_pathlist_result="" +- func_to_host_pathlist_oldIFS=$IFS +- IFS=: +- for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do +- IFS=$func_to_host_pathlist_oldIFS +- if test -n "$func_to_host_pathlist_f" ; then +- func_to_host_path "$func_to_host_pathlist_f" +- if test -n "$func_to_host_path_result" ; then +- if test -z "$func_to_host_pathlist_result" ; then +- func_to_host_pathlist_result="$func_to_host_path_result" +- else +- func_append func_to_host_pathlist_result ";$func_to_host_path_result" +- fi +- fi +- fi +- done +- IFS=$func_to_host_pathlist_oldIFS +- ;; +- esac +- if test -z "$func_to_host_pathlist_result"; then +- func_error "Could not determine the host path(s) corresponding to" +- func_error " \`$1'" +- func_error "Continuing, but uninstalled executables may not work." +- # Fallback. This may break if $1 contains DOS-style drive +- # specifications. The fix is not to complicate the expression +- # below, but for the user to provide a working wine installation +- # with winepath so that path translation in the cross-to-mingw +- # case works properly. +- lt_replace_pathsep_nix_to_dos="s|:|;|g" +- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ +- $SED -e "$lt_replace_pathsep_nix_to_dos"` +- fi +- # Now, add the leading and trailing path separators back +- case "$1" in +- :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" +- ;; +- esac +- case "$1" in +- *: ) func_append func_to_host_pathlist_result ";" +- ;; +- esac +- ;; +- esac +- fi +-} +-# end: func_to_host_pathlist +- + # func_emit_cwrapperexe_src + # emit the source code for a wrapper executable on stdout + # Must ONLY be called from within func_mode_link because +@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src () + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +- +- Currently, it simply execs the wrapper *script* "$SHELL $output", +- but could eventually absorb all of the scripts functionality and +- exec $objdir/$outputname directly. + */ + EOF + cat <<"EOF" +@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, int); + if (stale) { free ((void *) stale); stale = 0; } \ + } while (0) + +-#undef LTWRAPPER_DEBUGPRINTF +-#if defined LT_DEBUGWRAPPER +-# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args +-static void +-ltwrapper_debugprintf (const char *fmt, ...) +-{ +- va_list args; +- va_start (args, fmt); +- (void) vfprintf (stderr, fmt, args); +- va_end (args); +-} ++#if defined(LT_DEBUGWRAPPER) ++static int lt_debug = 1; + #else +-# define LTWRAPPER_DEBUGPRINTF(args) ++static int lt_debug = 0; + #endif + +-const char *program_name = NULL; ++const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + + void *xmalloc (size_t num); + char *xstrdup (const char *string); +@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathspec); + int make_executable (const char *path); + int check_executable (const char *path); + char *strendzap (char *str, const char *pat); +-void lt_fatal (const char *message, ...); ++void lt_debugprintf (const char *file, int line, const char *fmt, ...); ++void lt_fatal (const char *file, int line, const char *message, ...); ++static const char *nonnull (const char *s); ++static const char *nonempty (const char *s); + void lt_setenv (const char *name, const char *value); + char *lt_extend_str (const char *orig_value, const char *add, int to_end); + void lt_update_exe_path (const char *name, const char *value); +@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f); + EOF + + cat <"))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", ++ nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { +- LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); ++ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", ++ i, nonnull (newargz[i])); + } + + EOF +@@ -3706,7 +4529,9 @@ EOF + if (rval == -1) + { + /* failed to start process */ +- LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(main) failed to launch target \"%s\": %s\n", ++ lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +@@ -3728,7 +4553,7 @@ xmalloc (size_t num) + { + void *p = (void *) malloc (num); + if (!p) +- lt_fatal ("Memory exhausted"); ++ lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; + } +@@ -3762,8 +4587,8 @@ check_executable (const char *path) + { + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3780,8 +4605,8 @@ make_executable (const char *path) + int rval = 0; + struct stat st; + +- LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", +- path ? (*path ? path : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", ++ nonempty (path)); + if ((!path) || (!*path)) + return 0; + +@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper) + int tmp_len; + char *concat_name; + +- LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", +- wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); ++ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", ++ nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; +@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); +@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper) + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) +- lt_fatal ("getcwd failed"); ++ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", ++ nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); +@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec) + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { +- LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", +- tmp_pathspec)); ++ lt_debugprintf (__FILE__, __LINE__, ++ "checking path component for symlinks: %s\n", ++ tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) +@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec) + } + else + { +- char *errstr = strerror (errno); +- lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); ++ lt_fatal (__FILE__, __LINE__, ++ "error accessing file \"%s\": %s", ++ tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); +@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec) + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { +- lt_fatal ("Could not follow symlinks for %s", pathspec); ++ lt_fatal (__FILE__, __LINE__, ++ "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); + #endif +@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat) + return str; + } + ++void ++lt_debugprintf (const char *file, int line, const char *fmt, ...) ++{ ++ va_list args; ++ if (lt_debug) ++ { ++ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); ++ va_start (args, fmt); ++ (void) vfprintf (stderr, fmt, args); ++ va_end (args); ++ } ++} ++ + static void +-lt_error_core (int exit_status, const char *mode, ++lt_error_core (int exit_status, const char *file, ++ int line, const char *mode, + const char *message, va_list ap) + { +- fprintf (stderr, "%s: %s: ", program_name, mode); ++ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + +@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const char *mode, + } + + void +-lt_fatal (const char *message, ...) ++lt_fatal (const char *file, int line, const char *message, ...) + { + va_list ap; + va_start (ap, message); +- lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ++ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); + } + ++static const char * ++nonnull (const char *s) ++{ ++ return s ? s : "(null)"; ++} ++ ++static const char * ++nonempty (const char *s) ++{ ++ return (s && !*s) ? "(empty)" : nonnull (s); ++} ++ + void + lt_setenv (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", +- (name ? name : ""), +- (value ? value : ""))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_setenv) setting '%s' to '%s'\n", ++ nonnull (name), nonnull (value)); + { + #ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ +@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) + void + lt_update_exe_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", +- (name ? name : ""), +- (value ? value : ""))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, const char *value) + void + lt_update_lib_path (const char *name, const char *value) + { +- LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", +- (name ? name : ""), +- (value ? value : ""))); ++ lt_debugprintf (__FILE__, __LINE__, ++ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", ++ nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { +@@ -4222,7 +5078,7 @@ EOF + func_win32_import_lib_p () + { + $opt_debug +- case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in ++ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +@@ -4401,9 +5257,9 @@ func_mode_link () + ;; + *) + if test "$prev" = dlfiles; then +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $arg" + else +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $arg" + fi + prev= + continue +@@ -4427,7 +5283,7 @@ func_mode_link () + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; +- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ++ *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; +@@ -4446,7 +5302,7 @@ func_mode_link () + moreargs= + for fil in `cat "$save_arg"` + do +-# moreargs="$moreargs $fil" ++# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + +@@ -4475,7 +5331,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -4487,7 +5343,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -4557,12 +5413,12 @@ func_mode_link () + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; +- *) rpath="$rpath $arg" ;; ++ *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; +- *) xrpath="$xrpath $arg" ;; ++ *) func_append xrpath " $arg" ;; + esac + fi + prev= +@@ -4574,28 +5430,28 @@ func_mode_link () + continue + ;; + weak) +- weak_libs="$weak_libs $arg" ++ func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) +- compiler_flags="$compiler_flags $qarg" ++ func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) +- linker_flags="$linker_flags $qarg" +- compiler_flags="$compiler_flags $wl$qarg" ++ func_append linker_flags " $qarg" ++ func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" +@@ -4686,15 +5542,16 @@ func_mode_link () + ;; + + -L*) +- func_stripname '-L' '' "$arg" +- dir=$func_stripname_result +- if test -z "$dir"; then ++ func_stripname "-L" '' "$arg" ++ if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; +@@ -4706,10 +5563,16 @@ func_mode_link () + ;; + esac + case "$deplibs " in +- *" -L$dir "*) ;; ++ *" -L$dir "* | *" $arg "*) ++ # Will only happen for absolute or sysroot arguments ++ ;; + *) +- deplibs="$deplibs -L$dir" +- lib_search_path="$lib_search_path $dir" ++ # Preserve sysroot, but never include relative directories ++ case $dir in ++ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; ++ *) func_append deplibs " -L$dir" ;; ++ esac ++ func_append lib_search_path " $dir" + ;; + esac + case $host in +@@ -4718,12 +5581,12 @@ func_mode_link () + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; +- *) dllsearchpath="$dllsearchpath:$dir";; ++ *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -4747,7 +5610,7 @@ func_mode_link () + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) +@@ -4758,9 +5621,6 @@ func_mode_link () + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; +- *-*-linux*) +- test "X$arg" = "X-lc" && continue +- ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in +@@ -4770,7 +5630,7 @@ func_mode_link () + ;; + esac + fi +- deplibs="$deplibs $arg" ++ func_append deplibs " $arg" + continue + ;; + +@@ -4782,8 +5642,8 @@ func_mode_link () + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. +- -model|-arch|-isysroot) +- compiler_flags="$compiler_flags $arg" ++ -model|-arch|-isysroot|--sysroot) ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler +@@ -4791,12 +5651,12 @@ func_mode_link () + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; ++ * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; +@@ -4863,13 +5723,17 @@ func_mode_link () + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; ++ =*) ++ func_stripname '=' '' "$dir" ++ dir=$lt_sysroot$func_stripname_result ++ ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + continue + ;; +@@ -4922,8 +5786,8 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $func_quote_for_eval_result" +- compiler_flags="$compiler_flags $func_quote_for_eval_result" ++ func_append arg " $func_quote_for_eval_result" ++ func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -4938,9 +5802,9 @@ func_mode_link () + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" +- arg="$arg $wl$func_quote_for_eval_result" +- compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" +- linker_flags="$linker_flags $func_quote_for_eval_result" ++ func_append arg " $wl$func_quote_for_eval_result" ++ func_append compiler_flags " $wl$func_quote_for_eval_result" ++ func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" +@@ -4968,24 +5832,27 @@ func_mode_link () + arg="$func_quote_for_eval_result" + ;; + +- # -64, -mips[0-9] enable 64-bit mode on the SGI compiler +- # -r[0-9][0-9]* specifies the processor on the SGI compiler +- # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler +- # +DA*, +DD* enable 64-bit mode on the HP compiler +- # -q* pass through compiler args for the IBM compiler +- # -m*, -t[45]*, -txscale* pass through architecture-specific +- # compiler args for GCC +- # -F/path gives path to uninstalled frameworks, gcc on darwin +- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC +- # @file GCC response files +- # -tp=* Portland pgcc target processor selection ++ # Flags to be passed through unchanged, with rationale: ++ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler ++ # -r[0-9][0-9]* specify processor for the SGI compiler ++ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler ++ # +DA*, +DD* enable 64-bit mode for the HP compiler ++ # -q* compiler args for the IBM compiler ++ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC ++ # -F/path path to uninstalled frameworks, gcc on darwin ++ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC ++ # @file GCC response files ++ # -tp=* Portland pgcc target processor selection ++ # --sysroot=* for sysroot support ++ # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ +- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) ++ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ ++ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" +- compiler_flags="$compiler_flags $arg" ++ func_append compiler_flags " $arg" + continue + ;; + +@@ -4997,7 +5864,7 @@ func_mode_link () + + *.$objext) + # A standard object. +- objs="$objs $arg" ++ func_append objs " $arg" + ;; + + *.lo) +@@ -5028,7 +5895,7 @@ func_mode_link () + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then +- dlfiles="$dlfiles $pic_object" ++ func_append dlfiles " $pic_object" + prev= + continue + else +@@ -5040,7 +5907,7 @@ func_mode_link () + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. +- dlprefiles="$dlprefiles $pic_object" ++ func_append dlprefiles " $pic_object" + prev= + fi + +@@ -5085,24 +5952,25 @@ func_mode_link () + + *.$libext) + # An archive. +- deplibs="$deplibs $arg" +- old_deplibs="$old_deplibs $arg" ++ func_append deplibs " $arg" ++ func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + ++ func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. +- dlfiles="$dlfiles $arg" ++ func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. +- dlprefiles="$dlprefiles $arg" ++ func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else +- deplibs="$deplibs $arg" ++ func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; +@@ -5127,7 +5995,7 @@ func_mode_link () + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then +- eval "arg=\"$export_dynamic_flag_spec\"" ++ eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi +@@ -5144,11 +6012,13 @@ func_mode_link () + else + shlib_search_path= + fi +- eval "sys_lib_search_path=\"$sys_lib_search_path_spec\"" +- eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"" ++ eval sys_lib_search_path=\"$sys_lib_search_path_spec\" ++ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" ++ func_to_tool_file "$output_objdir/" ++ tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + +@@ -5169,12 +6039,12 @@ func_mode_link () + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- libs="$libs $deplib" ++ func_append libs " $deplib" + done + + if test "$linkmode" = lib; then +@@ -5187,9 +6057,9 @@ func_mode_link () + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in +- *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; ++ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac +- pre_post_deps="$pre_post_deps $pre_post_dep" ++ func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= +@@ -5256,8 +6126,9 @@ func_mode_link () + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= ++ func_resolve_sysroot "$lib" + case $lib in +- *.la) func_source "$lib" ;; ++ *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library +@@ -5267,7 +6138,7 @@ func_mode_link () + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; +- *) deplibs="$deplibs $deplib" ;; ++ *) func_append deplibs " $deplib" ;; + esac + done + done +@@ -5288,11 +6159,11 @@ func_mode_link () + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- compiler_flags="$compiler_flags $deplib" ++ func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5377,7 +6248,7 @@ func_mode_link () + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; +- * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; ++ * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi +@@ -5390,7 +6261,8 @@ func_mode_link () + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then +@@ -5404,7 +6276,8 @@ func_mode_link () + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" +@@ -5415,17 +6288,21 @@ func_mode_link () + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" +- dir=$func_stripname_result ++ func_resolve_sysroot "$func_stripname_result" ++ dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; +- *) xrpath="$xrpath $dir" ;; ++ *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; +- *.la) lib="$deplib" ;; ++ *.la) ++ func_resolve_sysroot "$deplib" ++ lib=$func_resolve_sysroot_result ++ ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" +@@ -5488,11 +6365,11 @@ func_mode_link () + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. +- newdlprefiles="$newdlprefiles $deplib" ++ func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else +- newdlfiles="$newdlfiles $deplib" ++ func_append newdlfiles " $deplib" + fi + fi + continue +@@ -5538,7 +6415,7 @@ func_mode_link () + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +- *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; ++ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi +@@ -5546,8 +6423,8 @@ func_mode_link () + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then +- test -n "$dlopen" && dlfiles="$dlfiles $dlopen" +- test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" ++ test -n "$dlopen" && func_append dlfiles " $dlopen" ++ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then +@@ -5558,20 +6435,20 @@ func_mode_link () + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. +- convenience="$convenience $ladir/$objdir/$old_library" +- old_convenience="$old_convenience $ladir/$objdir/$old_library" ++ func_append convenience " $ladir/$objdir/$old_library" ++ func_append old_convenience " $ladir/$objdir/$old_library" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv +@@ -5579,9 +6456,15 @@ func_mode_link () + + # Get the name of the library we link against. + linklib= +- for l in $old_library $library_names; do +- linklib="$l" +- done ++ if test -n "$old_library" && ++ { test "$prefer_static_libs" = yes || ++ test "$prefer_static_libs,$installed" = "built,no"; }; then ++ linklib=$old_library ++ else ++ for l in $old_library $library_names; do ++ linklib="$l" ++ done ++ fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi +@@ -5598,9 +6481,9 @@ func_mode_link () + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. +- dlprefiles="$dlprefiles $lib $dependency_libs" ++ func_append dlprefiles " $lib $dependency_libs" + else +- newdlfiles="$newdlfiles $lib" ++ func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen +@@ -5622,14 +6505,14 @@ func_mode_link () + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then +- if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then ++ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else +- dir="$libdir" +- absdir="$libdir" ++ dir="$lt_sysroot$libdir" ++ absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else +@@ -5637,12 +6520,12 @@ func_mode_link () + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later +- notinst_path="$notinst_path $abs_ladir" ++ func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" +@@ -5653,20 +6536,46 @@ func_mode_link () + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi +- # Prefer using a static library (so that no silly _DYNAMIC symbols +- # are required to link). +- if test -n "$old_library"; then +- newdlprefiles="$newdlprefiles $dir/$old_library" +- # Keep a list of preopened convenience libraries to check +- # that they are being used correctly in the link pass. +- test -z "$libdir" && \ +- dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" +- # Otherwise, use the dlname, so that lt_dlopen finds it. +- elif test -n "$dlname"; then +- newdlprefiles="$newdlprefiles $dir/$dlname" +- else +- newdlprefiles="$newdlprefiles $dir/$linklib" +- fi ++ case "$host" in ++ # special handling for platforms with PE-DLLs. ++ *cygwin* | *mingw* | *cegcc* ) ++ # Linker will automatically link against shared library if both ++ # static and shared are present. Therefore, ensure we extract ++ # symbols from the import library if a shared library is present ++ # (otherwise, the dlopen module name will be incorrect). We do ++ # this by putting the import library name into $newdlprefiles. ++ # We recover the dlopen module name by 'saving' the la file ++ # name in a special purpose variable, and (later) extracting the ++ # dlname from the la file. ++ if test -n "$dlname"; then ++ func_tr_sh "$dir/$linklib" ++ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" ++ func_append newdlprefiles " $dir/$linklib" ++ else ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ fi ++ ;; ++ * ) ++ # Prefer using a static library (so that no silly _DYNAMIC symbols ++ # are required to link). ++ if test -n "$old_library"; then ++ func_append newdlprefiles " $dir/$old_library" ++ # Keep a list of preopened convenience libraries to check ++ # that they are being used correctly in the link pass. ++ test -z "$libdir" && \ ++ func_append dlpreconveniencelibs " $dir/$old_library" ++ # Otherwise, use the dlname, so that lt_dlopen finds it. ++ elif test -n "$dlname"; then ++ func_append newdlprefiles " $dir/$dlname" ++ else ++ func_append newdlprefiles " $dir/$linklib" ++ fi ++ ;; ++ esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then +@@ -5684,7 +6593,7 @@ func_mode_link () + + + if test "$linkmode" = prog && test "$pass" != link; then +- newlib_search_path="$newlib_search_path $ladir" ++ func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no +@@ -5697,7 +6606,8 @@ func_mode_link () + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" +- newlib_search_path="$newlib_search_path $func_stripname_result" ++ func_resolve_sysroot "$func_stripname_result" ++ func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? +@@ -5708,12 +6618,12 @@ func_mode_link () + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi +- if $opt_duplicate_deps ; then ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... +@@ -5728,7 +6638,7 @@ func_mode_link () + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; +- *) temp_rpath="$temp_rpath$absdir:" ;; ++ *) func_append temp_rpath "$absdir:" ;; + esac + fi + +@@ -5740,7 +6650,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5749,7 +6659,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5774,12 +6684,12 @@ func_mode_link () + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then +- notinst_deplibs="$notinst_deplibs $lib" ++ func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; +@@ -5814,7 +6724,7 @@ func_mode_link () + *) + case "$compile_rpath " in + *" $absdir "*) ;; +- *) compile_rpath="$compile_rpath $absdir" ++ *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac +@@ -5823,7 +6733,7 @@ func_mode_link () + *) + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ++ *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac +@@ -5835,7 +6745,7 @@ func_mode_link () + shift + realname="$1" + shift +- eval "libname=\"$libname_spec\"" ++ libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" +@@ -5848,7 +6758,7 @@ func_mode_link () + versuffix="-$major" + ;; + esac +- eval "soname=\"$soname_spec\"" ++ eval soname=\"$soname_spec\" + else + soname="$realname" + fi +@@ -5877,7 +6787,7 @@ func_mode_link () + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + +- if test "$linkmode" = prog || test "$mode" != relink; then ++ if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= +@@ -5933,7 +6843,7 @@ func_mode_link () + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -5955,7 +6865,7 @@ func_mode_link () + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; +- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; ++ *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then +@@ -5969,13 +6879,13 @@ func_mode_link () + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + +- if test "$linkmode" = prog || test "$mode" = relink; then ++ if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= +@@ -5989,7 +6899,7 @@ func_mode_link () + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; +- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; ++ *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then +@@ -6001,12 +6911,12 @@ func_mode_link () + fi + else + # We cannot seem to hardcode it, guess we'll fake it. +- add_dir="-L$libdir" ++ add_dir="-L$lt_sysroot$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi +@@ -6083,27 +6993,33 @@ func_mode_link () + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; +- *) xrpath="$xrpath $temp_xrpath";; ++ *) func_append xrpath " $temp_xrpath";; + esac;; +- *) temp_deplibs="$temp_deplibs $libdir";; ++ *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + +- newlib_search_path="$newlib_search_path $absdir" ++ func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" +- if $opt_duplicate_deps ; then ++ case $deplib in ++ -L*) func_stripname '-L' '' "$deplib" ++ func_resolve_sysroot "$func_stripname_result";; ++ *) func_resolve_sysroot "$deplib" ;; ++ esac ++ if $opt_preserve_dup_deps ; then + case "$tmp_libs " in +- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; ++ *" $func_resolve_sysroot_result "*) ++ func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi +- tmp_libs="$tmp_libs $deplib" ++ func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then +@@ -6113,8 +7029,10 @@ func_mode_link () + case $deplib in + -L*) path="$deplib" ;; + *.la) ++ func_resolve_sysroot "$deplib" ++ deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." +- dir="$func_dirname_result" ++ dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; +@@ -6130,7 +7048,7 @@ func_mode_link () + case $host in + *-*-darwin*) + depdepl= +- deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` ++ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp +@@ -6141,8 +7059,8 @@ func_mode_link () + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi +- compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" +- linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" ++ func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" ++ func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi +@@ -6152,7 +7070,7 @@ func_mode_link () + ;; + esac + else +- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ +@@ -6192,7 +7110,7 @@ func_mode_link () + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; +- *) lib_search_path="$lib_search_path $dir" ;; ++ *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= +@@ -6205,7 +7123,7 @@ func_mode_link () + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order +- eval tmp_libs=\$$var ++ eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so +@@ -6250,13 +7168,13 @@ func_mode_link () + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + ;; +- *) tmp_libs="$tmp_libs $deplib" ;; ++ *) func_append tmp_libs " $deplib" ;; + esac + done +- eval $var=\$tmp_libs ++ eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs +@@ -6269,7 +7187,7 @@ func_mode_link () + ;; + esac + if test -n "$i" ; then +- tmp_libs="$tmp_libs $i" ++ func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs +@@ -6310,7 +7228,7 @@ func_mode_link () + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" +- objs="$objs$old_deplibs" ++ func_append objs "$old_deplibs" + ;; + + lib) +@@ -6319,8 +7237,8 @@ func_mode_link () + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result +- eval "shared_ext=\"$shrext_cmds\"" +- eval "libname=\"$libname_spec\"" ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ +@@ -6330,8 +7248,8 @@ func_mode_link () + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result +- eval "shared_ext=\"$shrext_cmds\"" +- eval "libname=\"$libname_spec\"" ++ eval shared_ext=\"$shrext_cmds\" ++ eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result +@@ -6346,7 +7264,7 @@ func_mode_link () + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" +- libobjs="$libobjs $objs" ++ func_append libobjs " $objs" + fi + fi + +@@ -6544,7 +7462,7 @@ func_mode_link () + done + + # Make executables depend on our current version. +- verstring="$verstring:${current}.0" ++ func_append verstring ":${current}.0" + ;; + + qnx) +@@ -6612,10 +7530,10 @@ func_mode_link () + fi + + func_generate_dlsyms "$libname" "$libname" "yes" +- libobjs="$libobjs $symfileobj" ++ func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + +- if test "$mode" != relink; then ++ if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= +@@ -6631,7 +7549,7 @@ func_mode_link () + continue + fi + fi +- removelist="$removelist $p" ++ func_append removelist " $p" + ;; + *) ;; + esac +@@ -6642,7 +7560,7 @@ func_mode_link () + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then +- oldlibs="$oldlibs $output_objdir/$libname.$libext" ++ func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` +@@ -6659,10 +7577,11 @@ func_mode_link () + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do +- temp_xrpath="$temp_xrpath -R$libdir" ++ func_replace_sysroot "$libdir" ++ func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then +@@ -6676,7 +7595,7 @@ func_mode_link () + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; +- *) dlfiles="$dlfiles $lib" ;; ++ *) func_append dlfiles " $lib" ;; + esac + done + +@@ -6686,7 +7605,7 @@ func_mode_link () + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; +- *) dlprefiles="$dlprefiles $lib" ;; ++ *) func_append dlprefiles " $lib" ;; + esac + done + +@@ -6698,7 +7617,7 @@ func_mode_link () + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework +- deplibs="$deplibs System.ltframework" ++ func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. +@@ -6715,7 +7634,7 @@ func_mode_link () + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then +- deplibs="$deplibs -lc" ++ func_append deplibs " -lc" + fi + ;; + esac +@@ -6764,18 +7683,18 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac + fi + if test -n "$i" ; then +- eval "libname=\"$libname_spec\"" +- eval "deplib_matches=\"$library_names_spec\"" ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes + echo +@@ -6789,7 +7708,7 @@ EOF + fi + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6807,18 +7726,18 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + i="" + ;; + esac + fi + if test -n "$i" ; then +- eval "libname=\"$libname_spec\"" +- eval "deplib_matches=\"$library_names_spec\"" ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + else + droppeddeps=yes + echo +@@ -6840,7 +7759,7 @@ EOF + fi + ;; + *) +- newdeplibs="$newdeplibs $i" ++ func_append newdeplibs " $i" + ;; + esac + done +@@ -6857,15 +7776,27 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then +- eval "libname=\"$libname_spec\"" ++ libname=`eval "\\$ECHO \"$libname_spec\""` ++ if test -n "$file_magic_glob"; then ++ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` ++ else ++ libnameglob=$libname ++ fi ++ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do +- potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ++ if test "$want_nocaseglob" = yes; then ++ shopt -s nocaseglob ++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ++ $nocaseglob ++ else ++ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` ++ fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | +@@ -6885,10 +7816,10 @@ EOF + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done +- if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null | ++ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6913,7 +7844,7 @@ EOF + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. +@@ -6929,20 +7860,20 @@ EOF + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then +- eval "libname=\"$libname_spec\"" ++ libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi +@@ -6967,7 +7898,7 @@ EOF + ;; + *) + # Add a -L argument. +- newdeplibs="$newdeplibs $a_deplib" ++ func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. +@@ -7071,7 +8002,7 @@ EOF + *) + case " $deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -7081,10 +8012,10 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" +@@ -7101,10 +8032,12 @@ EOF + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" +- test "$mode" != relink && rpath="$compile_rpath$rpath" ++ test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else +@@ -7113,18 +8046,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else +- eval "flag=\"$hardcode_libdir_flag_spec\"" +- dep_rpath="$dep_rpath $flag" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_apped perm_rpath " $libdir" ;; + esac + fi + done +@@ -7133,40 +8066,38 @@ EOF + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then +- eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\"" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else +- eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" ++ eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done +- eval $runpath_var=\$rpath\$$runpath_var +- export $runpath_var ++ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" +- test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" ++ test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then +- eval $shlibpath_var=\$shlibpath\$$shlibpath_var +- export $shlibpath_var ++ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. +- eval "shared_ext=\"$shrext_cmds\"" +- eval "library_names=\"$library_names_spec\"" ++ eval shared_ext=\"$shrext_cmds\" ++ eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then +- eval "soname=\"$soname_spec\"" ++ eval soname=\"$soname_spec\" + else + soname="$realname" + fi +@@ -7178,7 +8109,7 @@ EOF + linknames= + for link + do +- linknames="$linknames $link" ++ func_append linknames " $link" + done + + # Use standard objects if they are pic +@@ -7189,7 +8120,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" +- delfiles="$delfiles $export_symbols" ++ func_append delfiles " $export_symbols" + fi + + orig_export_symbols= +@@ -7220,13 +8151,45 @@ EOF + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' +- for cmd in $cmds; do ++ for cmd1 in $cmds; do + IFS="$save_ifs" +- eval "cmd=\"$cmd\"" +- func_len " $cmd" +- len=$func_len_result +- if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then ++ # Take the normal branch if the nm_file_list_spec branch ++ # doesn't work or if tool conversion is not needed. ++ case $nm_file_list_spec~$to_tool_file_cmd in ++ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) ++ try_normal_branch=yes ++ eval cmd=\"$cmd1\" ++ func_len " $cmd" ++ len=$func_len_result ++ ;; ++ *) ++ try_normal_branch=no ++ ;; ++ esac ++ if test "$try_normal_branch" = yes \ ++ && { test "$len" -lt "$max_cmd_len" \ ++ || test "$max_cmd_len" -le -1; } ++ then ++ func_show_eval "$cmd" 'exit $?' ++ skipped_export=false ++ elif test -n "$nm_file_list_spec"; then ++ func_basename "$output" ++ output_la=$func_basename_result ++ save_libobjs=$libobjs ++ save_output=$output ++ output=${output_objdir}/${output_la}.nm ++ func_to_tool_file "$output" ++ libobjs=$nm_file_list_spec$func_to_tool_file_result ++ func_append delfiles " $output" ++ func_verbose "creating $NM input file list: $output" ++ for obj in $save_libobjs; do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > "$output" ++ eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' ++ output=$save_output ++ libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. +@@ -7248,7 +8211,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then +@@ -7260,7 +8223,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -7270,7 +8233,7 @@ EOF + case " $convenience " in + *" $test_deplib "*) ;; + *) +- tmp_deplibs="$tmp_deplibs $test_deplib" ++ func_append tmp_deplibs " $test_deplib" + ;; + esac + done +@@ -7286,43 +8249,43 @@ EOF + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs +- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $convenience +- libobjs="$libobjs $func_extract_archives_result" ++ func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then +- eval "flag=\"$thread_safe_flag_spec\"" +- linker_flags="$linker_flags $flag" ++ eval flag=\"$thread_safe_flag_spec\" ++ func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking +- if test "$mode" = relink; then +- $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $? ++ if test "$opt_mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then +- eval "test_cmds=\"$module_expsym_cmds\"" ++ eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else +- eval "test_cmds=\"$module_cmds\"" ++ eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then +- eval "test_cmds=\"$archive_expsym_cmds\"" ++ eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else +- eval "test_cmds=\"$archive_cmds\"" ++ eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi +@@ -7366,10 +8329,13 @@ EOF + echo 'INPUT (' > $output + for obj in $save_libobjs + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output +- delfiles="$delfiles $output" ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" +@@ -7383,15 +8349,17 @@ EOF + fi + for obj + do +- $ECHO "$obj" >> $output ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" >> $output + done +- delfiles="$delfiles $output" +- output=$firstobj\"$file_list_spec$output\" ++ func_append delfiles " $output" ++ func_to_tool_file "$output" ++ output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext +- eval "test_cmds=\"$reload_cmds\"" ++ eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 +@@ -7411,12 +8379,12 @@ EOF + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist +- eval "concat_cmds=\"$reload_cmds\"" ++ eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" +- eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"" ++ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 +@@ -7433,11 +8401,11 @@ EOF + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" +- eval "concat_cmds=\"\${concat_cmds}$reload_cmds\"" ++ eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then +- eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"" ++ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi +- delfiles="$delfiles $output" ++ func_append delfiles " $output" + + else + output= +@@ -7450,9 +8418,9 @@ EOF + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\"" ++ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then +- eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\"" ++ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + +@@ -7471,7 +8439,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7492,7 +8460,7 @@ EOF + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" +- $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" ++ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then +@@ -7504,7 +8472,7 @@ EOF + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter +- delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" ++ func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi +@@ -7515,7 +8483,7 @@ EOF + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then +- eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" ++ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the +@@ -7539,23 +8507,23 @@ EOF + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. +- eval "cmds=\"\$cmds~\$RM $delfiles\"" ++ eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- libobjs="$libobjs $func_extract_archives_result" ++ func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" +- eval "cmd=\"$cmd\"" ++ eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" +@@ -7564,7 +8532,7 @@ EOF + lt_exit=$? + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then ++ if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) +@@ -7576,8 +8544,8 @@ EOF + IFS="$save_ifs" + + # Restore the uninstalled library and exit +- if test "$mode" = relink; then +- $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $? ++ if test "$opt_mode" = relink; then ++ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then +@@ -7656,17 +8624,20 @@ EOF + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then +- eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\"" ++ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + ++ # If we're not building shared, we need to use non_pic_objs ++ test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" ++ + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + +@@ -7690,7 +8661,7 @@ EOF + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" +- # $opt_dry_run || echo timestamp > $libobj || exit $? ++ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + +@@ -7740,8 +8711,8 @@ EOF + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) +- compile_command="$compile_command ${wl}-bind_at_load" +- finalize_command="$finalize_command ${wl}-bind_at_load" ++ func_append compile_command " ${wl}-bind_at_load" ++ func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi +@@ -7761,7 +8732,7 @@ EOF + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) +- new_libs="$new_libs -L$path/$objdir" ;; ++ func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac +@@ -7771,17 +8742,17 @@ EOF + -L*) + case " $new_libs " in + *" $deplib "*) ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + ;; +- *) new_libs="$new_libs $deplib" ;; ++ *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + +- compile_command="$compile_command $compile_deplibs" +- finalize_command="$finalize_command $finalize_deplibs" ++ func_append compile_command " $compile_deplibs" ++ func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. +@@ -7789,7 +8760,7 @@ EOF + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; +- *) finalize_rpath="$finalize_rpath $libdir" ;; ++ *) func_append finalize_rpath " $libdir" ;; + esac + done + fi +@@ -7808,18 +8779,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else +- eval "flag=\"$hardcode_libdir_flag_spec\"" +- rpath="$rpath $flag" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; +- *) perm_rpath="$perm_rpath $libdir" ;; ++ *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in +@@ -7828,12 +8799,12 @@ EOF + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; +- *) dllsearchpath="$dllsearchpath:$libdir";; ++ *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; +- *) dllsearchpath="$dllsearchpath:$testbindir";; ++ *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac +@@ -7842,7 +8813,7 @@ EOF + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" +- eval "rpath=\" $hardcode_libdir_flag_spec\"" ++ eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + +@@ -7859,18 +8830,18 @@ EOF + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) +- hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ++ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else +- eval "flag=\"$hardcode_libdir_flag_spec\"" +- rpath="$rpath $flag" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; +- *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; ++ *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done +@@ -7878,7 +8849,7 @@ EOF + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" +- eval "rpath=\" $hardcode_libdir_flag_spec\"" ++ eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + +@@ -7921,6 +8892,12 @@ EOF + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' +@@ -7943,7 +8920,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7951,7 +8928,7 @@ EOF + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do +- rpath="$rpath$dir:" ++ func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi +@@ -7966,6 +8943,13 @@ EOF + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' ++ ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + exit $EXIT_SUCCESS + fi + +@@ -7999,6 +8983,12 @@ EOF + + func_show_eval "$link_command" 'exit $?' + ++ if test -n "$postlink_cmds"; then ++ func_to_tool_file "$output_objdir/$outputname" ++ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` ++ func_execute_cmds "$postlink_cmds" 'exit $?' ++ fi ++ + # Now create the wrapper script. + func_verbose "creating $output" + +@@ -8096,7 +9086,7 @@ EOF + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then +- oldobjs="$oldobjs $symfileobj" ++ func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" +@@ -8104,10 +9094,10 @@ EOF + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $addlibs +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. +@@ -8118,10 +9108,10 @@ EOF + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles +- oldobjs="$oldobjs $func_extract_archives_result" ++ func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have +@@ -8139,7 +9129,7 @@ EOF + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" +- generated="$generated $gentop" ++ func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= +@@ -8163,18 +9153,28 @@ EOF + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" +- oldobjs="$oldobjs $gentop/$newobj" ++ func_append oldobjs " $gentop/$newobj" + ;; +- *) oldobjs="$oldobjs $obj" ;; ++ *) func_append oldobjs " $obj" ;; + esac + done + fi +- eval "cmds=\"$old_archive_cmds\"" ++ eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds ++ elif test -n "$archiver_list_spec"; then ++ func_verbose "using command file archive linking..." ++ for obj in $oldobjs ++ do ++ func_to_tool_file "$obj" ++ $ECHO "$func_to_tool_file_result" ++ done > $output_objdir/$libname.libcmd ++ func_to_tool_file "$output_objdir/$libname.libcmd" ++ oldobjs=" $archiver_list_spec$func_to_tool_file_result" ++ cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." +@@ -8189,7 +9189,7 @@ EOF + do + last_oldobj=$obj + done +- eval "test_cmds=\"$old_archive_cmds\"" ++ eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 +@@ -8208,7 +9208,7 @@ EOF + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ +- eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\"" ++ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi +@@ -8216,9 +9216,9 @@ EOF + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then +- eval "cmds=\"\$concat_cmds\"" ++ eval cmds=\"\$concat_cmds\" + else +- eval "cmds=\"\$concat_cmds~\$old_archive_cmds\"" ++ eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi +@@ -8268,12 +9268,23 @@ EOF + *.la) + func_basename "$deplib" + name="$func_basename_result" +- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ func_resolve_sysroot "$deplib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" +- newdependency_libs="$newdependency_libs $libdir/$name" ++ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ++ ;; ++ -L*) ++ func_stripname -L '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; +- *) newdependency_libs="$newdependency_libs $deplib" ;; ++ -R*) ++ func_stripname -R '' "$deplib" ++ func_replace_sysroot "$func_stripname_result" ++ func_append newdependency_libs " -R$func_replace_sysroot_result" ++ ;; ++ *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" +@@ -8284,12 +9295,14 @@ EOF + *.la) + func_basename "$lib" + name="$func_basename_result" +- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ func_resolve_sysroot "$lib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` ++ + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlfiles="$newdlfiles $libdir/$name" ++ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; +- *) newdlfiles="$newdlfiles $lib" ;; ++ *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" +@@ -8303,10 +9316,11 @@ EOF + # the library: + func_basename "$lib" + name="$func_basename_result" +- libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ func_resolve_sysroot "$lib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" +- newdlprefiles="$newdlprefiles $libdir/$name" ++ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done +@@ -8318,7 +9332,7 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlfiles="$newdlfiles $abs" ++ func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= +@@ -8327,7 +9341,7 @@ EOF + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac +- newdlprefiles="$newdlprefiles $abs" ++ func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi +@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\"" + exit $EXIT_SUCCESS + } + +-{ test "$mode" = link || test "$mode" = relink; } && ++{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +@@ -8432,9 +9446,9 @@ func_mode_uninstall () + for arg + do + case $arg in +- -f) RM="$RM $arg"; rmforce=yes ;; +- -*) RM="$RM $arg" ;; +- *) files="$files $arg" ;; ++ -f) func_append RM " $arg"; rmforce=yes ;; ++ -*) func_append RM " $arg" ;; ++ *) func_append files " $arg" ;; + esac + done + +@@ -8443,24 +9457,23 @@ func_mode_uninstall () + + rmdirs= + +- origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then +- objdir="$origobjdir" ++ odir="$objdir" + else +- objdir="$dir/$origobjdir" ++ odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" +- test "$mode" = uninstall && objdir="$dir" ++ test "$opt_mode" = uninstall && odir="$dir" + +- # Remember objdir for removal later, being careful to avoid duplicates +- if test "$mode" = clean; then ++ # Remember odir for removal later, being careful to avoid duplicates ++ if test "$opt_mode" = clean; then + case " $rmdirs " in +- *" $objdir "*) ;; +- *) rmdirs="$rmdirs $objdir" ;; ++ *" $odir "*) ;; ++ *) func_append rmdirs " $odir" ;; + esac + fi + +@@ -8486,18 +9499,17 @@ func_mode_uninstall () + + # Delete the libtool libraries and symlinks. + for n in $library_names; do +- rmfiles="$rmfiles $objdir/$n" ++ func_append rmfiles " $odir/$n" + done +- test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ++ test -n "$old_library" && func_append rmfiles " $odir/$old_library" + +- case "$mode" in ++ case "$opt_mode" in + clean) +- case " $library_names " in +- # " " in the beginning catches empty $dlname ++ case " $library_names " in + *" $dlname "*) ;; +- *) rmfiles="$rmfiles $objdir/$dlname" ;; ++ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac +- test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ++ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then +@@ -8525,19 +9537,19 @@ func_mode_uninstall () + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then +- rmfiles="$rmfiles $dir/$pic_object" ++ func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then +- rmfiles="$rmfiles $dir/$non_pic_object" ++ func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) +- if test "$mode" = clean ; then ++ if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) +@@ -8547,7 +9559,7 @@ func_mode_uninstall () + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe +- rmfiles="$rmfiles $file" ++ func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. +@@ -8556,7 +9568,7 @@ func_mode_uninstall () + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result +- rmfiles="$rmfiles $func_ltwrapper_scriptname_result" ++ func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename +@@ -8564,12 +9576,12 @@ func_mode_uninstall () + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles +- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ++ func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then +- rmfiles="$rmfiles $objdir/lt-$name" ++ func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then +- rmfiles="$rmfiles $objdir/lt-${noexename}.c" ++ func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi +@@ -8577,7 +9589,6 @@ func_mode_uninstall () + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done +- objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do +@@ -8589,16 +9600,16 @@ func_mode_uninstall () + exit $exit_status + } + +-{ test "$mode" = uninstall || test "$mode" = clean; } && ++{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +-test -z "$mode" && { ++test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" + } + + test -z "$exec_cmd" && \ +- func_fatal_help "invalid operation mode \`$mode'" ++ func_fatal_help "invalid operation mode \`$opt_mode'" + + if test -n "$exec_cmd"; then + eval exec "$exec_cmd" +diff --git a/ltoptions.m4 b/ltoptions.m4 +index 5ef12ced2a8..17cfd51c0b3 100644 +--- a/ltoptions.m4 ++++ b/ltoptions.m4 +@@ -8,7 +8,7 @@ + # unlimited permission to copy and/or distribute it, with or without + # modifications, as long as this notice is preserved. + +-# serial 6 ltoptions.m4 ++# serial 7 ltoptions.m4 + + # This is to help aclocal find these macros, as it can't see m4_define. + AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +diff --git a/ltversion.m4 b/ltversion.m4 +index bf87f77132d..9c7b5d41185 100644 +--- a/ltversion.m4 ++++ b/ltversion.m4 +@@ -7,17 +7,17 @@ + # unlimited permission to copy and/or distribute it, with or without + # modifications, as long as this notice is preserved. + +-# Generated from ltversion.in. ++# @configure_input@ + +-# serial 3134 ltversion.m4 ++# serial 3293 ltversion.m4 + # This file is part of GNU Libtool + +-m4_define([LT_PACKAGE_VERSION], [2.2.7a]) +-m4_define([LT_PACKAGE_REVISION], [1.3134]) ++m4_define([LT_PACKAGE_VERSION], [2.4]) ++m4_define([LT_PACKAGE_REVISION], [1.3293]) + + AC_DEFUN([LTVERSION_VERSION], +-[macro_version='2.2.7a' +-macro_revision='1.3134' ++[macro_version='2.4' ++macro_revision='1.3293' + _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) + _LT_DECL(, macro_revision, 0) + ]) +diff --git a/lt~obsolete.m4 b/lt~obsolete.m4 +index bf92b5e0790..c573da90c5c 100644 +--- a/lt~obsolete.m4 ++++ b/lt~obsolete.m4 +@@ -7,7 +7,7 @@ + # unlimited permission to copy and/or distribute it, with or without + # modifications, as long as this notice is preserved. + +-# serial 4 lt~obsolete.m4 ++# serial 5 lt~obsolete.m4 + + # These exist entirely to fool aclocal when bootstrapping libtool. + # +diff --git a/opcodes/configure b/opcodes/configure +index 4723dcdc1e8..006ccdaa458 100755 +--- a/opcodes/configure ++++ b/opcodes/configure +@@ -680,6 +680,9 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++ac_ct_AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -798,6 +801,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_targets + enable_werror +@@ -1462,6 +1466,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + + Some influential environment variables: + CC C compiler command +@@ -5403,8 +5409,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5444,7 +5450,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6130,8 +6136,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6180,6 +6186,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6196,6 +6276,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6364,7 +6449,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6518,6 +6604,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6531,11 +6632,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6551,7 +6805,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6571,11 +6825,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6591,7 +6849,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6610,6 +6868,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6621,16 +6883,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -6972,8 +7290,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7009,6 +7327,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7050,6 +7369,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7061,7 +7392,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7087,8 +7418,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7098,8 +7429,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7136,6 +7467,16 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ + + + +@@ -7152,6 +7493,45 @@ fi + + + ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7363,6 +7743,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7926,6 +8423,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8091,7 +8590,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8180,7 +8680,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8478,8 +8978,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8645,6 +9143,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8707,7 +9211,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8764,13 +9268,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8831,6 +9339,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9181,7 +9694,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9280,12 +9794,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9299,8 +9813,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9318,8 +9832,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9365,8 +9879,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9496,7 +10010,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9509,22 +10029,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9536,7 +10063,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9549,22 +10082,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9609,20 +10149,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9683,7 +10266,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9691,7 +10274,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9707,7 +10290,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9731,10 +10314,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9813,23 +10396,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9914,7 +10510,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9933,9 +10529,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10511,8 +11107,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10545,13 +11142,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10643,7 +11298,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11439,7 +12094,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11442 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11483,10 +12138,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11545,7 +12200,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11548 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11589,10 +12244,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -13756,13 +14411,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -13777,14 +14439,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -13817,12 +14482,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -13877,8 +14542,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -13888,12 +14558,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -13909,7 +14581,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -13945,6 +14616,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -14710,7 +15382,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -14813,19 +15486,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -14855,6 +15551,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -14864,6 +15566,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -14978,12 +15683,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -15070,9 +15775,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -15088,6 +15790,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -15120,210 +15825,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +-- +2.26.0 + diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch index 6999ed9c..b0e94ab1 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch @@ -1,8 +1,8 @@ -From ca25d55cef8398bad508c2b2be29aea5aa3c4d26 Mon Sep 17 00:00:00 2001 +From e36a4e05f900bbe6a8d744a93f3a407bc55c96f7 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:39:01 +0000 -Subject: [PATCH 08/15] don't let the distro compiler point to the wrong - installation location +Subject: [PATCH] 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 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index ed1b334c36..d4ffd8b57b 100644 +index fe738d0db4..27d818f253 100644 --- a/libiberty/Makefile.in +++ b/libiberty/Makefile.in -@@ -364,7 +364,8 @@ install-strip: install +@@ -365,7 +365,8 @@ install-strip: install # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the # default multilib, so we have to take CFLAGS into account as well, # since it will be passed the multilib flags. @@ -30,6 +30,3 @@ index ed1b334c36..d4ffd8b57b 100644 install_to_libdir: all if test -n "${target_header_dir}"; then \ ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch index 9a9e3196..11a8110d 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch @@ -1,7 +1,7 @@ -From a3667059fc0d52d890b505bed0e5050ea3d7002e Mon Sep 17 00:00:00 2001 +From 7b24f81e04c9d00d96de7dbd250beade6d2c6e44 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 15 Jan 2016 06:31:09 +0000 -Subject: [PATCH 09/15] warn for uses of system directories when cross linking +Subject: [PATCH] warn for uses of system directories when cross linking 2008-07-02 Joseph Myers @@ -59,8 +59,8 @@ Signed-off-by: Khem Raj ld/ldfile.c | 17 +++++++++++++++++ ld/ldlex.h | 2 ++ ld/ldmain.c | 2 ++ - ld/lexsup.c | 16 ++++++++++++++++ - 9 files changed, 86 insertions(+) + ld/lexsup.c | 15 +++++++++++++++ + 9 files changed, 85 insertions(+) diff --git a/ld/config.in b/ld/config.in index d93c9b0830..5da2742bea 100644 @@ -77,7 +77,7 @@ index d93c9b0830..5da2742bea 100644 #undef EXTRA_SHLIB_EXTENSION diff --git a/ld/configure b/ld/configure -index 2b291f0da8..facc386563 100755 +index 811134a503..f8c17c19ae 100755 --- a/ld/configure +++ b/ld/configure @@ -826,6 +826,7 @@ with_lib_path @@ -88,7 +88,7 @@ index 2b291f0da8..facc386563 100755 enable_gold enable_got enable_compressed_debug_sections -@@ -1490,6 +1491,8 @@ Optional Features: +@@ -1491,6 +1492,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 2b291f0da8..facc386563 100755 --enable-gold[=ARG] build gold [ARG={default,yes,no}] --enable-got= GOT handling scheme (target, single, negative, multigot) -@@ -16618,6 +16621,19 @@ fi +@@ -15788,6 +15791,19 @@ fi @@ -118,7 +118,7 @@ index 2b291f0da8..facc386563 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 d10c553650..9f1b57b120 100644 +index b5e849d84a..22e022ec03 100644 --- a/ld/configure.ac +++ b/ld/configure.ac @@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) @@ -139,10 +139,10 @@ index d10c553650..9f1b57b120 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 ba914b921e..9df17dab6c 100644 +index 71fd781267..5c7843100b 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 ba914b921e..9df17dab6c 100644 enum endian_enum endian; diff --git a/ld/ld.texi b/ld/ld.texi -index b9fe2324da..43486605e0 100644 +index eb7bcb9933..3c73d445a0 100644 --- a/ld/ld.texi +++ b/ld/ld.texi -@@ -2479,6 +2479,18 @@ string identifying the original linked file does not change. +@@ -2551,6 +2551,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 b9fe2324da..43486605e0 100644 @c man end diff --git a/ld/ldfile.c b/ld/ldfile.c -index a72ff13526..dc5148f748 100644 +index 411f7ddf97..17db16c2cc 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,23 @@ index a72ff13526..dc5148f748 100644 /* Try to open a BFD for a lang_input_statement. */ diff --git a/ld/ldlex.h b/ld/ldlex.h -index 04d6fd5f96..d7df005bb2 100644 +index 5287f19a7f..55096e4fc9 100644 --- a/ld/ldlex.h +++ b/ld/ldlex.h -@@ -148,6 +148,8 @@ enum option_values - OPTION_REQUIRE_DEFINED_SYMBOL, - OPTION_ORPHAN_HANDLING, +@@ -150,6 +150,8 @@ enum option_values OPTION_FORCE_GROUP_ALLOCATION, + OPTION_PRINT_MAP_DISCARDED, + OPTION_NO_PRINT_MAP_DISCARDED, + 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 f31eeb29c3..25f8497888 100644 +index da1ad17763..12d0b07d8a 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c -@@ -268,6 +268,8 @@ main (int argc, char **argv) +@@ -274,6 +274,8 @@ main (int argc, char **argv) command_line.warn_mismatch = TRUE; command_line.warn_search_mismatch = TRUE; command_line.check_section_addresses = -1; @@ -235,12 +235,12 @@ index f31eeb29c3..25f8497888 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 86a033a383..4a40d48020 100644 +index 3d15cc491d..0e8b4f2b7a 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."), +@@ -550,6 +550,14 @@ 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 }, + { {"no-poison-system-directories", no_argument, NULL, + OPTION_NO_POISON_SYSTEM_DIRECTORIES}, @@ -253,10 +253,10 @@ index 86a033a383..4a40d48020 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; +@@ -1603,6 +1611,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 +264,6 @@ index 86a033a383..4a40d48020 100644 + + case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: + command_line.error_poison_system_directories = TRUE; -+ break; + break; } } - --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch index 8fc00ff4..f4f1a068 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch @@ -1,7 +1,7 @@ -From 9e1d8f9a657a8bd48048c2ea6407cf60b723bd68 Mon Sep 17 00:00:00 2001 +From 70f3f2d9e912ea777fa113e02cdbc3465a66e40d Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:42:38 +0000 -Subject: [PATCH 10/15] Fix rpath in libtool when sysroot is enabled +Subject: [PATCH] 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 @@ -47,6 +47,3 @@ index 70e856e065..11ee684ccc 100644 if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch index 2e93b129..c49b8e86 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch @@ -1,7 +1,7 @@ -From 2d2e2fcdd9646849716ee99d8d3e5d72ae8889bc Mon Sep 17 00:00:00 2001 +From 2182791a453f34bee6968b3e72848608cf7d7abe Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:44:14 +0000 -Subject: [PATCH 11/15] Change default emulation for mips64*-*-linux +Subject: [PATCH] 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 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd -index 6391f35684..8a11c0680a 100644 +index b96931f52e..847f9f0ba9 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd -@@ -913,12 +913,12 @@ case "${targ}" in +@@ -911,12 +911,12 @@ case "${targ}" in targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" ;; mips64*el-*-linux*) @@ -35,25 +35,23 @@ index 6391f35684..8a11c0680a 100644 mips*el-*-linux*) targ_defvec=mips_elf32_trad_le_vec diff --git a/ld/configure.tgt b/ld/configure.tgt -index fad8b2e5c8..7fb2168503 100644 +index 23194e357f..f4f0eaf9b2 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt -@@ -464,11 +464,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks - mips*-*-vxworks*) targ_emul=elf32ebmipvxworks - targ_extra_emuls="elf32elmipvxworks" ;; - mips*-*-windiss) targ_emul=elf32mipswindiss ;; +@@ -541,12 +541,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.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch index 4d64bd53..c32867a2 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch @@ -1,7 +1,7 @@ -From 96ff7570c29f792c466a933529fefda9b8e97994 Mon Sep 17 00:00:00 2001 +From a0237ec2d1e58bd35c236df39dd5a06504c6d2ed Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 14 Feb 2016 17:06:19 +0000 -Subject: [PATCH 12/15] Add support for Netlogic XLP +Subject: [PATCH] Add support for Netlogic XLP Patch From: Nebu Philips @@ -26,18 +26,19 @@ Signed-off-by: Mark Hatle 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 023843b0be..46246fec2d 100644 +index fa3a9746b6..5078024fd5 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h -@@ -798,6 +798,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch, +@@ -799,6 +799,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch, case bfd_mach_mipsisa64r6: case bfd_mach_mips_sb1: case bfd_mach_mips_xlr: @@ -46,10 +47,10 @@ index 023843b0be..46246fec2d 100644 arch_flags = M_MIPS2; break; diff --git a/bfd/archures.c b/bfd/archures.c -index 282e983086..b38b05d132 100644 +index 232103817c..b2b3b8c124 100644 --- a/bfd/archures.c +++ b/bfd/archures.c -@@ -183,6 +183,7 @@ DESCRIPTION +@@ -185,6 +185,7 @@ DESCRIPTION .#define bfd_mach_mips_octeon3 6503 .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR'. *} .#define bfd_mach_mips_interaptiv_mr2 736550 {* decimal 'IA2'. *} @@ -58,10 +59,10 @@ index 282e983086..b38b05d132 100644 .#define bfd_mach_mipsisa32r2 33 .#define bfd_mach_mipsisa32r3 34 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 93745bd3fd..326e9e49ed 100644 +index 7c13bc8c91..2e453c50c1 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h -@@ -2054,6 +2054,7 @@ enum bfd_architecture +@@ -1568,6 +1568,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 93745bd3fd..326e9e49ed 100644 #define bfd_mach_mipsisa32r2 33 #define bfd_mach_mipsisa32r3 34 diff --git a/bfd/config.bfd b/bfd/config.bfd -index 8a11c0680a..c882421343 100644 +index 847f9f0ba9..a12707f827 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd -@@ -896,6 +896,11 @@ case "${targ}" in +@@ -894,6 +894,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 8a11c0680a..c882421343 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 cb50c64371..2b9d1d6ecf 100644 +index 802acb45f1..fd9ec4c0ad 100644 --- a/bfd/cpu-mips.c +++ b/bfd/cpu-mips.c -@@ -105,7 +105,8 @@ enum +@@ -108,7 +108,8 @@ enum I_mipsocteon3, I_xlr, I_interaptiv_mr2, @@ -99,21 +100,21 @@ index cb50c64371..2b9d1d6ecf 100644 }; #define NN(index) (&arch_info_struct[(index) + 1]) -@@ -158,7 +159,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 d91942301c..5d1bd3f0b1 100644 +index d7e3aed3b6..7baeee9ee3 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c -@@ -6805,6 +6805,9 @@ _bfd_elf_mips_mach (flagword flags) +@@ -6999,6 +6999,9 @@ _bfd_elf_mips_mach (flagword flags) case E_MIPS_MACH_IAMR2: return bfd_mach_mips_interaptiv_mr2; @@ -123,7 +124,7 @@ index d91942301c..5d1bd3f0b1 100644 default: switch (flags & EF_MIPS_ARCH) { -@@ -12003,6 +12006,10 @@ mips_set_isa_flags (bfd *abfd) +@@ -12355,6 +12358,10 @@ mips_set_isa_flags (bfd *abfd) val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; break; @@ -134,19 +135,19 @@ index d91942301c..5d1bd3f0b1 100644 case bfd_mach_mipsisa32: val = E_MIPS_ARCH_32; break; -@@ -13992,6 +13999,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = - { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, - { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, - { bfd_mach_mips_loongson_3a, bfd_mach_mipsisa64r2 }, +@@ -14379,6 +14386,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 }, + { bfd_mach_mips_xlp, bfd_mach_mipsisa64r2 }, /* MIPS64 extensions. */ { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 }, diff --git a/binutils/readelf.c b/binutils/readelf.c -index 2b78db219b..7a7178925f 100644 +index 6b5bebe743..d15a7828db 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c -@@ -3403,6 +3403,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine) +@@ -3440,6 +3440,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 2b78db219b..7a7178925f 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 59df787155..48537226c0 100644 +index fc6898834e..2c7151ccdb 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c -@@ -552,6 +552,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 59df787155..48537226c0 100644 ) /* Whether the processor uses hardware interlocks to protect reads -@@ -581,6 +582,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 59df787155..48537226c0 100644 ) /* Whether the processor uses hardware interlocks to protect reads -@@ -19778,7 +19780,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] = +@@ -20135,7 +20137,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 134278fa25..2fdca147a1 100755 +index 60c1a055ae..59d6d11215 100755 --- a/gas/configure +++ b/gas/configure -@@ -13336,6 +13336,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 6f32e55a1a..11c2e0d273 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 4e2cde3279..c329f38929 100644 +index d116b036b6..dceeb3f156 100644 --- a/include/elf/mips.h +++ b/include/elf/mips.h @@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext) @@ -210,10 +225,10 @@ index 4e2cde3279..c329f38929 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 1ab1780567..74f457b579 100644 +index fd031f3758..a96a44df84 100644 --- a/include/opcode/mips.h +++ b/include/opcode/mips.h -@@ -1262,6 +1262,8 @@ static const unsigned int mips_isa_table[] = { +@@ -1260,6 +1260,8 @@ static const unsigned int mips_isa_table[] = { #define INSN_XLR 0x00000020 /* Imagination interAptiv MR2. */ #define INSN_INTERAPTIV_MR2 0x04000000 @@ -222,7 +237,7 @@ index 1ab1780567..74f457b579 100644 /* DSP ASE */ #define ASE_DSP 0x00000001 -@@ -1373,6 +1375,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 1ab1780567..74f457b579 100644 /* Return true if the given CPU is included in INSN_* mask MASK. */ -@@ -1453,6 +1456,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 1ab1780567..74f457b579 100644 return FALSE; } diff --git a/ld/configure.tgt b/ld/configure.tgt -index 7fb2168503..a1db7adfe2 100644 +index f4f0eaf9b2..0da3eca19c 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt -@@ -450,6 +450,8 @@ mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*) - mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) +@@ -520,6 +520,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 bbf21328e8..38e487c16f 100644 +index 755bbe294b..ce22ef683a 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c -@@ -656,13 +656,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,10 +293,10 @@ index bbf21328e8..38e487c16f 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 1cbcbc6abc..e1fbdc89de 100644 +index 5270aeefa8..d17dc78cd7 100644 --- a/opcodes/mips-opc.c +++ b/opcodes/mips-opc.c -@@ -329,6 +329,7 @@ decode_mips_operand (const char *p) +@@ -328,6 +328,7 @@ decode_mips_operand (const char *p) #define IOCT3 INSN_OCTEON3 #define XLR INSN_XLR #define IAMR2 INSN_INTERAPTIV_MR2 @@ -288,7 +304,7 @@ index 1cbcbc6abc..e1fbdc89de 100644 #define IVIRT ASE_VIRT #define IVIRT64 ASE_VIRT64 -@@ -974,6 +975,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1006,12 +1008,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1083,6 +1086,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1098,6 +1102,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1251,9 +1257,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1418,7 +1424,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1463,10 +1469,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1516,7 +1525,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 1cbcbc6abc..e1fbdc89de 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 }, -@@ -1953,9 +1962,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 }, @@ -388,6 +404,3 @@ index 1cbcbc6abc..e1fbdc89de 100644 {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, {"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, {"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 }, --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch index c9ffdada..463de806 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch @@ -1,7 +1,7 @@ -From d45455db35db5693c5efe0e1b384295e4c0db998 Mon Sep 17 00:00:00 2001 +From ef4ad1cb9ff1b5a871ffa792a71b3ad6d14eb3dc Mon Sep 17 00:00:00 2001 From: Zhenhua Luo Date: Sat, 11 Jun 2016 22:08:29 -0500 -Subject: [PATCH 13/15] fix the incorrect assembling for ppc wait mnemonic +Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic Signed-off-by: Zhenhua Luo @@ -11,10 +11,10 @@ Upstream-Status: Pending 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c -index 4a0fca5f0a..49f72fc35c 100644 +index 7ef91d819b..145953d3c4 100644 --- a/opcodes/ppc-opc.c +++ b/opcodes/ppc-opc.c -@@ -5351,7 +5351,6 @@ const struct powerpc_opcode powerpc_opcodes[] = { +@@ -5709,7 +5709,6 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, @@ -22,7 +22,7 @@ index 4a0fca5f0a..49f72fc35c 100644 {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, -@@ -5405,7 +5404,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { +@@ -5763,7 +5762,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, @@ -31,6 +31,3 @@ index 4a0fca5f0a..49f72fc35c 100644 {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch index 6197df6d..6acde1f7 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch @@ -1,7 +1,7 @@ -From 9af90cfc35ff1fe78755578861473039836c467a Mon Sep 17 00:00:00 2001 +From 2f7f2389764ef1d699f6ad32057314024b7e84e7 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 31 Mar 2017 11:42:03 -0700 -Subject: [PATCH 14/15] Detect 64-bit MIPS targets +Subject: [PATCH] Detect 64-bit MIPS targets Add mips64 target triplets and default to N64 @@ -14,7 +14,7 @@ Signed-off-by: Khem Raj 1 file changed, 14 insertions(+) diff --git a/gold/configure.tgt b/gold/configure.tgt -index 8aef22a318..7030026ffa 100644 +index aa7ec552ae..470515062e 100644 --- a/gold/configure.tgt +++ b/gold/configure.tgt @@ -153,6 +153,13 @@ aarch64*-*) @@ -45,6 +45,3 @@ index 8aef22a318..7030026ffa 100644 mips*-*-*) targ_obj=mips targ_machine=EM_MIPS --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch index 7dc8ba8c..a794719b 100644 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch @@ -1,7 +1,7 @@ -From f9e26bd29b5f017ea1307b51b5036063bff78600 Mon Sep 17 00:00:00 2001 +From 392d474a72d37b669f53ab9f0fa913b958af93f6 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 6 Mar 2017 23:33:27 -0800 -Subject: [PATCH 15/15] sync with OE libtool changes +Subject: [PATCH] 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 @@ -84,6 +84,3 @@ index 11ee684ccc..3b19ac1532 100644 fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch new file mode 100644 index 00000000..c694b42d --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch @@ -0,0 +1,48 @@ +From 67590a44c1256491fa674426f0170d5d05377d05 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 15 Apr 2020 14:17:20 -0700 +Subject: [PATCH 16/16] 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 +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 590b03c2da0..46f116fdb54 100755 +--- a/configure ++++ b/configure +@@ -5140,7 +5140,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 d3f85e6f5d5..c0eb1343121 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1309,7 +1309,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.26.1 + diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch deleted file mode 100644 index 9f20784e..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0016-add-i386pep-emulation-for-x86_64.patch +++ /dev/null @@ -1,41 +0,0 @@ -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. - -Signed-off-by: Christopher Clark - -Upstream-Status: Inappropriate [OE configuration specific] ---- -diff --git a/bfd/config.bfd b/bfd/config.bfd -index c882421..dc705b6 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -688,7 +688,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 a1db7ad..65a984a 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -253,8 +253,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 ;; diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch new file mode 100644 index 00000000..55af9abc --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch @@ -0,0 +1,61 @@ +From 57a3e055605b28a9449b1b27eda7125737c42b00 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich +Date: Sat, 1 Feb 2020 23:16:11 +0000 +Subject: [PATCH] binutils: drop redundant 'program_name' definition + (-fno-common) + + * coffdump.c (program_name): Drop redundant definition. + * srconv.c (program_name): Likewise + * sysdump.c (program_name): Likewise + +Upstream-Status: Accepted (commit 0b398d69ac) +Signed-off-by: Sergei Trofimovich +Signed-off-by: Richard Leitner +--- + binutils/coffdump.c | 2 -- + binutils/srconv.c | 2 -- + binutils/sysdump.c | 2 -- + 3 files changed, 6 deletions(-) + +diff --git a/binutils/coffdump.c b/binutils/coffdump.c +index 531a4e46c3..336da57ca2 100644 +--- a/binutils/coffdump.c ++++ b/binutils/coffdump.c +@@ -456,8 +456,6 @@ coff_dump (struct coff_ofile *ptr) + dump_coff_section (ptr->sections + i); + } + +-char * program_name; +- + static void + show_usage (FILE *file, int status) + { +diff --git a/binutils/srconv.c b/binutils/srconv.c +index 5742b16759..f071794f0a 100644 +--- a/binutils/srconv.c ++++ b/binutils/srconv.c +@@ -1687,8 +1687,6 @@ prescan (struct coff_ofile *otree) + } + } + +-char *program_name; +- + ATTRIBUTE_NORETURN static void + show_usage (FILE *ffile, int status) + { +diff --git a/binutils/sysdump.c b/binutils/sysdump.c +index d433e71ed9..7eebbd61d3 100644 +--- a/binutils/sysdump.c ++++ b/binutils/sysdump.c +@@ -633,8 +633,6 @@ module (void) + } + } + +-char *program_name; +- + ATTRIBUTE_NORETURN static void + show_usage (FILE *ffile, int status) + { +-- +2.26.2 + diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0022-Handle-ELF-compressed-header-alignment-correctly-by-.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0022-Handle-ELF-compressed-header-alignment-correctly-by-.patch deleted file mode 100644 index 650de9b9..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0022-Handle-ELF-compressed-header-alignment-correctly-by-.patch +++ /dev/null @@ -1,332 +0,0 @@ -From bb9c8cc3c5f4ffd6019a8c53adead429954162e1 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 27 Nov 2018 11:59:10 +0000 -Subject: [PATCH 1/2] Handle ELF compressed header alignment correctly by - setting up the section alignment correctly for the Elf32_Chdr or Elf64_Chdr - type and respect the ch_addralign field when decompressing the section data. - - PR binutils/23919 -binutils* readelf.c (dump_sections_as_strings): Remove bogus addralign check. - (dump_sections_as_bytes): Likewise. - (load_specific_debug_sections): Likewise. - * testsuite/binutils-all/dw2-3.rS: Adjust alignment. - * testsuite/binutils-all/dw2-3.rt: Likewise. - -bfd * bfd.c (bfd_update_compression_header): Explicitly set alignment. - (bfd_check_compression_header): Add uncompressed_alignment_power - argument. Check ch_addralign is a power of 2. - * bfd-in2.h: Regenerated. - * compress.c (bfd_compress_section_contents): Get and set - orig_uncompressed_alignment_pow if section is decompressed. - (bfd_is_section_compressed_with_header): Add and get - uncompressed_align_pow_p argument. - (bfd_is_section_compressed): Add uncompressed_align_power argument - to bfd_is_section_compressed_with_header call. - (bfd_init_section_decompress_status): Get and set - uncompressed_alignment_power. - * elf.c (_bfd_elf_make_section_from_shdr): Add - uncompressed_align_power argument to - bfd_is_section_compressed_with_header call. ---- - bfd/bfd-in2.h | 6 ++-- - bfd/bfd.c | 20 ++++++++++---- - bfd/compress.c | 35 +++++++++++++++++------- - bfd/elf.c | 5 ++-- - binutils/readelf.c | 18 ------------ - binutils/testsuite/binutils-all/dw2-3.rS | 2 +- - binutils/testsuite/binutils-all/dw2-3.rt | 2 +- - 7 files changed, 49 insertions(+), 39 deletions(-) - -Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4207142d6a5d2359170c5f9a140fc1a2351fbda9] -Signed-off-by: Khem Raj - -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index f53dbb5e8c..d0c2190d0b 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -7279,7 +7279,8 @@ void bfd_update_compression_header - - bfd_boolean bfd_check_compression_header - (bfd *abfd, bfd_byte *contents, asection *sec, -- bfd_size_type *uncompressed_size); -+ bfd_size_type *uncompressed_size, -+ unsigned int *uncompressed_alignment_power); - - int bfd_get_compression_header_size (bfd *abfd, asection *sec); - -@@ -7855,7 +7856,8 @@ void bfd_cache_section_contents - bfd_boolean bfd_is_section_compressed_with_header - (bfd *abfd, asection *section, - int *compression_header_size_p, -- bfd_size_type *uncompressed_size_p); -+ bfd_size_type *uncompressed_size_p, -+ unsigned int *uncompressed_alignment_power_p); - - bfd_boolean bfd_is_section_compressed - (bfd *abfd, asection *section); -diff --git a/bfd/bfd.c b/bfd/bfd.c -index 851710401e..ea10d7b185 100644 ---- a/bfd/bfd.c -+++ b/bfd/bfd.c -@@ -2332,6 +2332,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, - bfd_put_32 (abfd, sec->size, &echdr->ch_size); - bfd_put_32 (abfd, 1 << sec->alignment_power, - &echdr->ch_addralign); -+ /* bfd_log2 (alignof (Elf32_Chdr)) */ -+ bfd_set_section_alignment (abfd, sec, 2); - } - else - { -@@ -2342,6 +2344,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, - bfd_put_64 (abfd, sec->size, &echdr->ch_size); - bfd_put_64 (abfd, 1 << sec->alignment_power, - &echdr->ch_addralign); -+ /* bfd_log2 (alignof (Elf64_Chdr)) */ -+ bfd_set_section_alignment (abfd, sec, 3); - } - } - else -@@ -2354,6 +2358,8 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, - order. */ - memcpy (contents, "ZLIB", 4); - bfd_putb64 (sec->size, contents + 4); -+ /* No way to keep the original alignment, just use 1 always. */ -+ bfd_set_section_alignment (abfd, sec, 0); - } - } - } -@@ -2368,12 +2374,14 @@ bfd_update_compression_header (bfd *abfd, bfd_byte *contents, - SYNOPSIS - bfd_boolean bfd_check_compression_header - (bfd *abfd, bfd_byte *contents, asection *sec, -- bfd_size_type *uncompressed_size); -+ bfd_size_type *uncompressed_size, -+ unsigned int *uncompressed_alignment_power); - - DESCRIPTION - Check the compression header at CONTENTS of SEC in ABFD and -- store the uncompressed size in UNCOMPRESSED_SIZE if the -- compression header is valid. -+ store the uncompressed size in UNCOMPRESSED_SIZE and the -+ uncompressed data alignment in UNCOMPRESSED_ALIGNMENT_POWER -+ if the compression header is valid. - - RETURNS - Return TRUE if the compression header is valid. -@@ -2382,7 +2390,8 @@ RETURNS - bfd_boolean - bfd_check_compression_header (bfd *abfd, bfd_byte *contents, - asection *sec, -- bfd_size_type *uncompressed_size) -+ bfd_size_type *uncompressed_size, -+ unsigned int *uncompressed_alignment_power) - { - if (bfd_get_flavour (abfd) == bfd_target_elf_flavour - && (elf_section_flags (sec) & SHF_COMPRESSED) != 0) -@@ -2404,9 +2413,10 @@ bfd_check_compression_header (bfd *abfd, bfd_byte *contents, - chdr.ch_addralign = bfd_get_64 (abfd, &echdr->ch_addralign); - } - if (chdr.ch_type == ELFCOMPRESS_ZLIB -- && chdr.ch_addralign == 1U << sec->alignment_power) -+ && chdr.ch_addralign == (1U << bfd_log2 (chdr.ch_addralign))) - { - *uncompressed_size = chdr.ch_size; -+ *uncompressed_alignment_power = bfd_log2 (chdr.ch_addralign); - return TRUE; - } - } -diff --git a/bfd/compress.c b/bfd/compress.c -index 53e566e498..97ea624eb8 100644 ---- a/bfd/compress.c -+++ b/bfd/compress.c -@@ -84,11 +84,13 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec, - int zlib_size = 0; - int orig_compression_header_size; - bfd_size_type orig_uncompressed_size; -+ unsigned int orig_uncompressed_alignment_pow; - int header_size = bfd_get_compression_header_size (abfd, NULL); - bfd_boolean compressed - = bfd_is_section_compressed_with_header (abfd, sec, - &orig_compression_header_size, -- &orig_uncompressed_size); -+ &orig_uncompressed_size, -+ &orig_uncompressed_alignment_pow); - - /* Either ELF compression header or the 12-byte, "ZLIB" + 8-byte size, - overhead in .zdebug* section. */ -@@ -153,6 +155,9 @@ bfd_compress_section_contents (bfd *abfd, sec_ptr sec, - return 0; - } - free (uncompressed_buffer); -+ bfd_set_section_alignment (abfd, sec, -+ orig_uncompressed_alignment_pow); -+ - sec->contents = buffer; - sec->compress_status = COMPRESS_SECTION_DONE; - return orig_uncompressed_size; -@@ -364,20 +369,24 @@ SYNOPSIS - bfd_boolean bfd_is_section_compressed_with_header - (bfd *abfd, asection *section, - int *compression_header_size_p, -- bfd_size_type *uncompressed_size_p); -+ bfd_size_type *uncompressed_size_p, -+ unsigned int *uncompressed_alignment_power_p); - - DESCRIPTION - Return @code{TRUE} if @var{section} is compressed. Compression -- header size is returned in @var{compression_header_size_p} and -- uncompressed size is returned in @var{uncompressed_size_p}. If -- compression is unsupported, compression header size is returned -- with -1 and uncompressed size is returned with 0. -+ header size is returned in @var{compression_header_size_p}, -+ uncompressed size is returned in @var{uncompressed_size_p} -+ and the uncompressed data alignement power is returned in -+ @var{uncompressed_align_pow_p}. If compression is -+ unsupported, compression header size is returned with -1 -+ and uncompressed size is returned with 0. - */ - - bfd_boolean - bfd_is_section_compressed_with_header (bfd *abfd, sec_ptr sec, - int *compression_header_size_p, -- bfd_size_type *uncompressed_size_p) -+ bfd_size_type *uncompressed_size_p, -+ unsigned int *uncompressed_align_pow_p) - { - bfd_byte header[MAX_COMPRESSION_HEADER_SIZE]; - int compression_header_size; -@@ -412,7 +421,8 @@ bfd_is_section_compressed_with_header (bfd *abfd, sec_ptr sec, - if (compression_header_size != 0) - { - if (!bfd_check_compression_header (abfd, header, sec, -- uncompressed_size_p)) -+ uncompressed_size_p, -+ uncompressed_align_pow_p)) - compression_header_size = -1; - } - /* Check for the pathalogical case of a debug string section that -@@ -449,9 +459,11 @@ bfd_is_section_compressed (bfd *abfd, sec_ptr sec) - { - int compression_header_size; - bfd_size_type uncompressed_size; -+ unsigned int uncompressed_align_power; - return (bfd_is_section_compressed_with_header (abfd, sec, - &compression_header_size, -- &uncompressed_size) -+ &uncompressed_size, -+ &uncompressed_align_power) - && compression_header_size >= 0 - && uncompressed_size > 0); - } -@@ -480,6 +492,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) - int compression_header_size; - int header_size; - bfd_size_type uncompressed_size; -+ unsigned int uncompressed_alignment_power = 0; - - compression_header_size = bfd_get_compression_header_size (abfd, sec); - if (compression_header_size > MAX_COMPRESSION_HEADER_SIZE) -@@ -508,7 +521,8 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) - uncompressed_size = bfd_getb64 (header + 4); - } - else if (!bfd_check_compression_header (abfd, header, sec, -- &uncompressed_size)) -+ &uncompressed_size, -+ &uncompressed_alignment_power)) - { - bfd_set_error (bfd_error_wrong_format); - return FALSE; -@@ -516,6 +530,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec) - - sec->compressed_size = sec->size; - sec->size = uncompressed_size; -+ bfd_set_section_alignment (abfd, sec, uncompressed_alignment_power); - sec->compress_status = DECOMPRESS_SECTION_SIZED; - - return TRUE; -diff --git a/bfd/elf.c b/bfd/elf.c -index 828241d48a..c4f131ddcf 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -1177,11 +1177,12 @@ _bfd_elf_make_section_from_shdr (bfd *abfd, - enum { nothing, compress, decompress } action = nothing; - int compression_header_size; - bfd_size_type uncompressed_size; -+ unsigned int uncompressed_align_power; - bfd_boolean compressed - = bfd_is_section_compressed_with_header (abfd, newsect, - &compression_header_size, -- &uncompressed_size); -- -+ &uncompressed_size, -+ &uncompressed_align_power); - if (compressed) - { - /* Compressed section. Check if we should decompress. */ -diff --git a/binutils/readelf.c b/binutils/readelf.c -index f4df697a7d..4b0efa884f 100644 ---- a/binutils/readelf.c -+++ b/binutils/readelf.c -@@ -13345,12 +13345,6 @@ dump_section_as_strings (Elf_Internal_Shdr * section, Filedata * filedata) - printable_section_name (filedata, section), chdr.ch_type); - return FALSE; - } -- else if (chdr.ch_addralign != section->sh_addralign) -- { -- warn (_("compressed section '%s' is corrupted\n"), -- printable_section_name (filedata, section)); -- return FALSE; -- } - uncompressed_size = chdr.ch_size; - start += compression_header_size; - new_size -= compression_header_size; -@@ -13492,12 +13486,6 @@ dump_section_as_bytes (Elf_Internal_Shdr * section, - printable_section_name (filedata, section), chdr.ch_type); - return FALSE; - } -- else if (chdr.ch_addralign != section->sh_addralign) -- { -- warn (_("compressed section '%s' is corrupted\n"), -- printable_section_name (filedata, section)); -- return FALSE; -- } - uncompressed_size = chdr.ch_size; - start += compression_header_size; - new_size -= compression_header_size; -@@ -13667,12 +13655,6 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, - section->name, chdr.ch_type); - return FALSE; - } -- else if (chdr.ch_addralign != sec->sh_addralign) -- { -- warn (_("compressed section '%s' is corrupted\n"), -- section->name); -- return FALSE; -- } - uncompressed_size = chdr.ch_size; - start += compression_header_size; - size -= compression_header_size; -diff --git a/binutils/testsuite/binutils-all/dw2-3.rS b/binutils/testsuite/binutils-all/dw2-3.rS -index f1637e9149..86bc73d9a2 100644 ---- a/binutils/testsuite/binutils-all/dw2-3.rS -+++ b/binutils/testsuite/binutils-all/dw2-3.rS -@@ -1,3 +1,3 @@ - #... -- +\[[ 0-9]+\] .debug_info +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +C +0 +0 +1 -+ +\[[ 0-9]+\] .debug_info +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +C +0 +0 +(4|8) - #pass -diff --git a/binutils/testsuite/binutils-all/dw2-3.rt b/binutils/testsuite/binutils-all/dw2-3.rt -index f59cbaa22b..74e7f8deca 100644 ---- a/binutils/testsuite/binutils-all/dw2-3.rt -+++ b/binutils/testsuite/binutils-all/dw2-3.rt -@@ -1,6 +1,6 @@ - #... - +\[[ 0-9]+\] .debug_info -- +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+ +0 +0 +1 -+ +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ +[0-9a-f]+ +0 +0 +(4|8) - +\[0+800\]: COMPRESSED - +ZLIB, 0+9d, 1 - #pass --- -2.20.1 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/0023-gold-Get-alignment-of-uncompressed-section-from-ch_a.patch b/external/poky/meta/recipes-devtools/binutils/binutils/0023-gold-Get-alignment-of-uncompressed-section-from-ch_a.patch deleted file mode 100644 index 1f072a60..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/0023-gold-Get-alignment-of-uncompressed-section-from-ch_a.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 0261ec511ac07177fa488133e0bb3c03860977b3 Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Sun, 2 Dec 2018 05:42:36 -0800 -Subject: [PATCH 2/2] gold: Get alignment of uncompressed section from - ch_addralign - -The ELF compression header has a field (ch_addralign) that is set to -the alignment of the uncompressed section. This way the section itself -can have a different alignment than the decompressed section. Update -decompress_input_section to get alignment of the decompressed section -and use it when merging decompressed strings. - - PR binutils/23919 - * merge.cc (Output_merge_string::do_add_input_section): - Get addralign from decompressed_section_contents. - * object.cc (build_compressed_section_map): Set info.addralign. - (Object::decompressed_section_contents): Add a palign - argument and store p->second.addralign in *palign if it isn't - NULL. - * object.h (Compressed_section_info): Add addralign. - (section_is_compressed): Add a palign argument, default it - to NULL, store p->second.addralign in *palign if it isn't NULL. - (Object::decompressed_section_contents): Likewise. - * output.cc (Output_section::add_input_section): Get addralign - from section_is_compressed. ---- - gold/merge.cc | 8 +++++--- - gold/object.cc | 11 +++++++++-- - gold/object.h | 8 ++++++-- - gold/output.cc | 11 ++++++----- - 4 files changed, 26 insertions(+), 12 deletions(-) - -Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5f6c22aee74f17393b82934a5682d985672e011a] -Signed-off-by: Khem Raj - - -diff --git a/gold/merge.cc b/gold/merge.cc -index de00ee9ae9..d7de11789f 100644 ---- a/gold/merge.cc -+++ b/gold/merge.cc -@@ -440,9 +440,11 @@ Output_merge_string::do_add_input_section(Relobj* object, - { - section_size_type sec_len; - bool is_new; -+ uint64_t addralign = this->addralign(); - const unsigned char* pdata = object->decompressed_section_contents(shndx, - &sec_len, -- &is_new); -+ &is_new, -+ &addralign); - - const Char_type* p = reinterpret_cast(pdata); - const Char_type* pend = p + sec_len / sizeof(Char_type); -@@ -494,7 +496,7 @@ Output_merge_string::do_add_input_section(Relobj* object, - // aligned, so each string within the section must retain the same - // modulo. - uintptr_t init_align_modulo = (reinterpret_cast(pdata) -- & (this->addralign() - 1)); -+ & (addralign - 1)); - bool has_misaligned_strings = false; - - while (p < pend) -@@ -503,7 +505,7 @@ Output_merge_string::do_add_input_section(Relobj* object, - - // Within merge input section each string must be aligned. - if (len != 0 -- && ((reinterpret_cast(p) & (this->addralign() - 1)) -+ && ((reinterpret_cast(p) & (addralign - 1)) - != init_align_modulo)) - has_misaligned_strings = true; - -diff --git a/gold/object.cc b/gold/object.cc -index 374340fa16..711793e5e4 100644 ---- a/gold/object.cc -+++ b/gold/object.cc -@@ -751,11 +751,13 @@ build_compressed_section_map( - const unsigned char* contents = - obj->section_contents(i, &len, false); - uint64_t uncompressed_size; -+ Compressed_section_info info; - if (is_zcompressed) - { - // Skip over the ".zdebug" prefix. - name += 7; - uncompressed_size = get_uncompressed_size(contents, len); -+ info.addralign = shdr.get_sh_addralign(); - } - else - { -@@ -763,8 +765,8 @@ build_compressed_section_map( - name += 6; - elfcpp::Chdr chdr(contents); - uncompressed_size = chdr.get_ch_size(); -+ info.addralign = chdr.get_ch_addralign(); - } -- Compressed_section_info info; - info.size = convert_to_section_size_type(uncompressed_size); - info.flag = shdr.get_sh_flags(); - info.contents = NULL; -@@ -3060,7 +3062,8 @@ const unsigned char* - Object::decompressed_section_contents( - unsigned int shndx, - section_size_type* plen, -- bool* is_new) -+ bool* is_new, -+ uint64_t* palign) - { - section_size_type buffer_size; - const unsigned char* buffer = this->do_section_contents(shndx, &buffer_size, -@@ -3087,6 +3090,8 @@ Object::decompressed_section_contents( - { - *plen = uncompressed_size; - *is_new = false; -+ if (palign != NULL) -+ *palign = p->second.addralign; - return p->second.contents; - } - -@@ -3108,6 +3113,8 @@ Object::decompressed_section_contents( - // once in this pass. - *plen = uncompressed_size; - *is_new = true; -+ if (palign != NULL) -+ *palign = p->second.addralign; - return uncompressed_data; - } - -diff --git a/gold/object.h b/gold/object.h -index 0b786a5471..b99548463d 100644 ---- a/gold/object.h -+++ b/gold/object.h -@@ -373,6 +373,7 @@ struct Compressed_section_info - { - section_size_type size; - elfcpp::Elf_Xword flag; -+ uint64_t addralign; - const unsigned char* contents; - }; - typedef std::map Compressed_section_map; -@@ -808,7 +809,8 @@ class Object - - bool - section_is_compressed(unsigned int shndx, -- section_size_type* uncompressed_size) const -+ section_size_type* uncompressed_size, -+ elfcpp::Elf_Xword* palign = NULL) const - { - if (this->compressed_sections_ == NULL) - return false; -@@ -818,6 +820,8 @@ class Object - { - if (uncompressed_size != NULL) - *uncompressed_size = p->second.size; -+ if (palign != NULL) -+ *palign = p->second.addralign; - return true; - } - return false; -@@ -828,7 +832,7 @@ class Object - // by the caller. - const unsigned char* - decompressed_section_contents(unsigned int shndx, section_size_type* plen, -- bool* is_cached); -+ bool* is_cached, uint64_t* palign = NULL); - - // Discard any buffers of decompressed sections. This is done - // at the end of the Add_symbols task. -diff --git a/gold/output.cc b/gold/output.cc -index 1701db1c99..75ac3bcf97 100644 ---- a/gold/output.cc -+++ b/gold/output.cc -@@ -2448,7 +2448,13 @@ Output_section::add_input_section(Layout* layout, - unsigned int reloc_shndx, - bool have_sections_script) - { -+ section_size_type input_section_size = shdr.get_sh_size(); -+ section_size_type uncompressed_size; - elfcpp::Elf_Xword addralign = shdr.get_sh_addralign(); -+ if (object->section_is_compressed(shndx, &uncompressed_size, -+ &addralign)) -+ input_section_size = uncompressed_size; -+ - if ((addralign & (addralign - 1)) != 0) - { - object->error(_("invalid alignment %lu for section \"%s\""), -@@ -2498,11 +2504,6 @@ Output_section::add_input_section(Layout* layout, - } - } - -- section_size_type input_section_size = shdr.get_sh_size(); -- section_size_type uncompressed_size; -- if (object->section_is_compressed(shndx, &uncompressed_size)) -- input_section_size = uncompressed_size; -- - off_t offset_in_section; - - if (this->has_fixed_layout()) --- -2.20.1 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-1000876.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-1000876.patch deleted file mode 100644 index ff853511..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-1000876.patch +++ /dev/null @@ -1,180 +0,0 @@ -From efec0844fcfb5692f5a78f4082994d63e420ecd9 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sun, 16 Dec 2018 23:02:50 +1030 -Subject: [PATCH] PR23994, libbfd integer overflow - - PR 23994 - * aoutx.h: Include limits.h. - (get_reloc_upper_bound): Detect long overflow and return a file - too big error if it occurs. - * elf.c: Include limits.h. - (_bfd_elf_get_symtab_upper_bound): Detect long overflow and return - a file too big error if it occurs. - (_bfd_elf_get_dynamic_symtab_upper_bound): Likewise. - (_bfd_elf_get_dynamic_reloc_upper_bound): Likewise. - -CVE: CVE-2018-1000876 -Upstream-Status: Backport -[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3a551c7a1b80fca579461774860574eabfd7f18f] - -Signed-off-by: Dan Tran ---- - bfd/aoutx.h | 40 +++++++++++++++++++++------------------- - bfd/elf.c | 32 ++++++++++++++++++++++++-------- - 2 files changed, 45 insertions(+), 27 deletions(-) - -diff --git a/bfd/aoutx.h b/bfd/aoutx.h -index 023843b0be..78eaa9c503 100644 ---- a/bfd/aoutx.h -+++ b/bfd/aoutx.h -@@ -117,6 +117,7 @@ DESCRIPTION - #define KEEPIT udata.i - - #include "sysdep.h" -+#include - #include "bfd.h" - #include "safe-ctype.h" - #include "bfdlink.h" -@@ -2491,6 +2492,8 @@ NAME (aout, canonicalize_reloc) (bfd *abfd, - long - NAME (aout, get_reloc_upper_bound) (bfd *abfd, sec_ptr asect) - { -+ bfd_size_type count; -+ - if (bfd_get_format (abfd) != bfd_object) - { - bfd_set_error (bfd_error_invalid_operation); -@@ -2498,26 +2501,25 @@ NAME (aout, get_reloc_upper_bound) (bfd *abfd, sec_ptr asect) - } - - if (asect->flags & SEC_CONSTRUCTOR) -- return sizeof (arelent *) * (asect->reloc_count + 1); -- -- if (asect == obj_datasec (abfd)) -- return sizeof (arelent *) -- * ((exec_hdr (abfd)->a_drsize / obj_reloc_entry_size (abfd)) -- + 1); -- -- if (asect == obj_textsec (abfd)) -- return sizeof (arelent *) -- * ((exec_hdr (abfd)->a_trsize / obj_reloc_entry_size (abfd)) -- + 1); -- -- if (asect == obj_bsssec (abfd)) -- return sizeof (arelent *); -- -- if (asect == obj_bsssec (abfd)) -- return 0; -+ count = asect->reloc_count; -+ else if (asect == obj_datasec (abfd)) -+ count = exec_hdr (abfd)->a_drsize / obj_reloc_entry_size (abfd); -+ else if (asect == obj_textsec (abfd)) -+ count = exec_hdr (abfd)->a_trsize / obj_reloc_entry_size (abfd); -+ else if (asect == obj_bsssec (abfd)) -+ count = 0; -+ else -+ { -+ bfd_set_error (bfd_error_invalid_operation); -+ return -1; -+ } - -- bfd_set_error (bfd_error_invalid_operation); -- return -1; -+ if (count >= LONG_MAX / sizeof (arelent *)) -+ { -+ bfd_set_error (bfd_error_file_too_big); -+ return -1; -+ } -+ return (count + 1) * sizeof (arelent *); - } - - long -diff --git a/bfd/elf.c b/bfd/elf.c -index 828241d48a..10037176a3 100644 ---- a/bfd/elf.c -+++ b/bfd/elf.c -@@ -35,6 +35,7 @@ SECTION - /* For sparc64-cross-sparc32. */ - #define _SYSCALL32 - #include "sysdep.h" -+#include - #include "bfd.h" - #include "bfdlink.h" - #include "libbfd.h" -@@ -8114,11 +8115,16 @@ error_return: - long - _bfd_elf_get_symtab_upper_bound (bfd *abfd) - { -- long symcount; -+ bfd_size_type symcount; - long symtab_size; - Elf_Internal_Shdr *hdr = &elf_tdata (abfd)->symtab_hdr; - - symcount = hdr->sh_size / get_elf_backend_data (abfd)->s->sizeof_sym; -+ if (symcount >= LONG_MAX / sizeof (asymbol *)) -+ { -+ bfd_set_error (bfd_error_file_too_big); -+ return -1; -+ } - symtab_size = (symcount + 1) * (sizeof (asymbol *)); - if (symcount > 0) - symtab_size -= sizeof (asymbol *); -@@ -8129,7 +8135,7 @@ _bfd_elf_get_symtab_upper_bound (bfd *abfd) - long - _bfd_elf_get_dynamic_symtab_upper_bound (bfd *abfd) - { -- long symcount; -+ bfd_size_type symcount; - long symtab_size; - Elf_Internal_Shdr *hdr = &elf_tdata (abfd)->dynsymtab_hdr; - -@@ -8140,6 +8146,11 @@ _bfd_elf_get_dynamic_symtab_upper_bound (bfd *abfd) - } - - symcount = hdr->sh_size / get_elf_backend_data (abfd)->s->sizeof_sym; -+ if (symcount >= LONG_MAX / sizeof (asymbol *)) -+ { -+ bfd_set_error (bfd_error_file_too_big); -+ return -1; -+ } - symtab_size = (symcount + 1) * (sizeof (asymbol *)); - if (symcount > 0) - symtab_size -= sizeof (asymbol *); -@@ -8209,7 +8220,7 @@ _bfd_elf_canonicalize_dynamic_symtab (bfd *abfd, - long - _bfd_elf_get_dynamic_reloc_upper_bound (bfd *abfd) - { -- long ret; -+ bfd_size_type count; - asection *s; - - if (elf_dynsymtab (abfd) == 0) -@@ -8218,15 +8229,20 @@ _bfd_elf_get_dynamic_reloc_upper_bound (bfd *abfd) - return -1; - } - -- ret = sizeof (arelent *); -+ count = 1; - for (s = abfd->sections; s != NULL; s = s->next) - if (elf_section_data (s)->this_hdr.sh_link == elf_dynsymtab (abfd) - && (elf_section_data (s)->this_hdr.sh_type == SHT_REL - || elf_section_data (s)->this_hdr.sh_type == SHT_RELA)) -- ret += ((s->size / elf_section_data (s)->this_hdr.sh_entsize) -- * sizeof (arelent *)); -- -- return ret; -+ { -+ count += s->size / elf_section_data (s)->this_hdr.sh_entsize; -+ if (count > LONG_MAX / sizeof (arelent *)) -+ { -+ bfd_set_error (bfd_error_file_too_big); -+ return -1; -+ } -+ } -+ return count * sizeof (arelent *); - } - - /* Canonicalize the dynamic relocation entries. Note that we return the --- -2.22.0.vfs.1.1.57.gbaf16c8 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17358.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17358.patch deleted file mode 100644 index d5a1ea1d..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17358.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 30838132997e6a3cfe3ec11c58b32b22f6f6b102 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Thu, 20 Sep 2018 15:29:17 +0930 -Subject: [PATCH] Bug 23686, two segment faults in nm - -Fixes the bugs exposed by the testcases in the PR, plus two more bugs -I noticed when looking at _bfd_stab_section_find_nearest_line. - - PR 23686 - * dwarf2.c (read_section): Error when attempting to malloc - "(bfd_size_type) -1". - * syms.c (_bfd_stab_section_find_nearest_line): Bounds check - function_name. Bounds check reloc address. Formatting. Ensure - .stabstr zero terminated. -CVE: CVE-2018-17358 and CVE-2018-17359 -Upstream-Status: Backport -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 9 +++++++++ - bfd/dwarf2.c | 9 ++++++++- - bfd/syms.c | 22 ++++++++++++++++------ - 3 files changed, 33 insertions(+), 7 deletions(-) - ---- a/bfd/dwarf2.c -+++ b/bfd/dwarf2.c -@@ -527,6 +527,7 @@ read_section (bfd * abfd, - asection *msec; - const char *section_name = sec->uncompressed_name; - bfd_byte *contents = *section_buffer; -+ bfd_size_type amt; - - /* The section may have already been read. */ - if (contents == NULL) -@@ -549,7 +550,13 @@ read_section (bfd * abfd, - *section_size = msec->rawsize ? msec->rawsize : msec->size; - /* Paranoia - alloc one extra so that we can make sure a string - section is NUL terminated. */ -- contents = (bfd_byte *) bfd_malloc (*section_size + 1); -+ amt = *section_size + 1; -+ if (amt == 0) -+ { -+ bfd_set_error (bfd_error_no_memory); -+ return FALSE; -+ } -+ contents = (bfd_byte *) bfd_malloc (amt); - if (contents == NULL) - return FALSE; - if (syms ---- a/bfd/syms.c -+++ b/bfd/syms.c -@@ -1035,6 +1035,10 @@ _bfd_stab_section_find_nearest_line (bfd - 0, strsize)) - return FALSE; - -+ /* Stab strings ought to be nul terminated. Ensure the last one -+ is, to prevent running off the end of the buffer. */ -+ info->strs[strsize - 1] = 0; -+ - /* If this is a relocatable object file, we have to relocate - the entries in .stab. This should always be simple 32 bit - relocations against symbols defined in this object file, so -@@ -1073,7 +1077,8 @@ _bfd_stab_section_find_nearest_line (bfd - || r->howto->bitsize != 32 - || r->howto->pc_relative - || r->howto->bitpos != 0 -- || r->howto->dst_mask != 0xffffffff) -+ || r->howto->dst_mask != 0xffffffff -+ || r->address * bfd_octets_per_byte (abfd) + 4 > stabsize) - { - _bfd_error_handler - (_("unsupported .stab relocation")); -@@ -1195,7 +1200,8 @@ _bfd_stab_section_find_nearest_line (bfd - { - nul_fun = stab; - nul_str = str; -- if (file_name >= (char *) info->strs + strsize || file_name < (char *) str) -+ if (file_name >= (char *) info->strs + strsize -+ || file_name < (char *) str) - file_name = NULL; - if (stab + STABSIZE + TYPEOFF < info->stabs + stabsize - && *(stab + STABSIZE + TYPEOFF) == (bfd_byte) N_SO) -@@ -1206,7 +1212,8 @@ _bfd_stab_section_find_nearest_line (bfd - directory_name = file_name; - file_name = ((char *) str - + bfd_get_32 (abfd, stab + STRDXOFF)); -- if (file_name >= (char *) info->strs + strsize || file_name < (char *) str) -+ if (file_name >= (char *) info->strs + strsize -+ || file_name < (char *) str) - file_name = NULL; - } - } -@@ -1217,7 +1224,8 @@ _bfd_stab_section_find_nearest_line (bfd - file_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); - /* PR 17512: file: 0c680a1f. */ - /* PR 17512: file: 5da8aec4. */ -- if (file_name >= (char *) info->strs + strsize || file_name < (char *) str) -+ if (file_name >= (char *) info->strs + strsize -+ || file_name < (char *) str) - file_name = NULL; - break; - -@@ -1226,7 +1234,8 @@ _bfd_stab_section_find_nearest_line (bfd - function_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); - if (function_name == (char *) str) - continue; -- if (function_name >= (char *) info->strs + strsize) -+ if (function_name >= (char *) info->strs + strsize -+ || function_name < (char *) str) - function_name = NULL; - - nul_fun = NULL; -@@ -1335,7 +1344,8 @@ _bfd_stab_section_find_nearest_line (bfd - if (val <= offset) - { - file_name = (char *) str + bfd_get_32 (abfd, stab + STRDXOFF); -- if (file_name >= (char *) info->strs + strsize || file_name < (char *) str) -+ if (file_name >= (char *) info->strs + strsize -+ || file_name < (char *) str) - file_name = NULL; - *pline = 0; - } diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17360.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17360.patch deleted file mode 100644 index 45c63796..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-17360.patch +++ /dev/null @@ -1,45 +0,0 @@ -From cf93e9c2cf8f8b2566f8fc86e961592b51b5980d Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Thu, 20 Sep 2018 18:23:17 +0930 -Subject: [PATCH] PR23685, buffer overflow - - PR 23685 - * peXXigen.c (pe_print_edata): Correct export address table - overflow checks. Check dataoff against section size too. - -CVE: CVE-2018-17360 -Upstream-Status: Backport -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 6 ++++++ - bfd/peXXigen.c | 11 ++++++----- - 2 files changed, 12 insertions(+), 5 deletions(-) - ---- a/bfd/peXXigen.c -+++ b/bfd/peXXigen.c -@@ -1661,7 +1661,8 @@ pe_print_edata (bfd * abfd, void * vfile - - dataoff = addr - section->vma; - datasize = extra->DataDirectory[PE_EXPORT_TABLE].Size; -- if (datasize > section->size - dataoff) -+ if (dataoff > section->size -+ || datasize > section->size - dataoff) - { - fprintf (file, - _("\nThere is an export table in %s, but it does not fit into that section\n"), -@@ -1778,11 +1779,11 @@ pe_print_edata (bfd * abfd, void * vfile - edt.base); - - /* PR 17512: Handle corrupt PE binaries. */ -- if (edt.eat_addr + (edt.num_functions * 4) - adj >= datasize -+ /* PR 17512 file: 140-165018-0.004. */ -+ if (edt.eat_addr - adj >= datasize - /* PR 17512: file: 092b1829 */ -- || (edt.num_functions * 4) < edt.num_functions -- /* PR 17512 file: 140-165018-0.004. */ -- || data + edt.eat_addr - adj < data) -+ || (edt.num_functions + 1) * 4 < edt.num_functions -+ || edt.eat_addr - adj + (edt.num_functions + 1) * 4 > datasize) - fprintf (file, _("\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"), - (long) edt.eat_addr, - (long) edt.num_functions); diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18309.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18309.patch deleted file mode 100644 index 010e6b5d..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18309.patch +++ /dev/null @@ -1,251 +0,0 @@ -From 0930cb3021b8078b34cf216e79eb8608d017864f Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Sat, 13 Oct 2018 22:03:02 +1030 -Subject: [PATCH] _bfd_clear_contents bounds checking - -This PR shows a fuzzed binary triggering a segfault via a bad -relocation in .debug_line. It turns out that unlike normal -relocations applied to a section, the linker applies those with -symbols from discarded sections via _bfd_clear_contents without -checking that the relocation is within the section bounds. The same -thing now happens when reading debug sections since commit -a4cd947aca23, the PR23425 fix. - - PR 23770 - PR 23425 - * reloc.c (_bfd_clear_contents): Replace "location" param with - "buf" and "off". Bounds check "off". Return status. - * cofflink.c (_bfd_coff_generic_relocate_section): Update - _bfd_clear_contents call. - * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Likewise. - * elf32-arc.c (elf_arc_relocate_section): Likewise. - * elf32-i386.c (elf_i386_relocate_section): Likewise. - * elf32-metag.c (metag_final_link_relocate): Likewise. - * elf32-nds32.c (nds32_elf_get_relocated_section_contents): Likewise. - * elf32-ppc.c (ppc_elf_relocate_section): Likewise. - * elf32-visium.c (visium_elf_relocate_section): Likewise. - * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. - * elf64-x86-64.c *(elf_x86_64_relocate_section): Likewise. - * libbfd-in.h (_bfd_clear_contents): Update prototype. - * libbfd.h: Regenerate. - -Upstream-Status: Backport -CVE: CVE-2018-18605 -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 20 ++++++++++++++++++++ - bfd/cofflink.c | 2 +- - bfd/elf-bfd.h | 2 +- - bfd/elf32-arc.c | 2 +- - bfd/elf32-i386.c | 2 +- - bfd/elf32-metag.c | 2 +- - bfd/elf32-nds32.c | 8 ++++---- - bfd/elf32-ppc.c | 2 +- - bfd/elf32-visium.c | 2 +- - bfd/elf64-ppc.c | 2 +- - bfd/elf64-x86-64.c | 2 +- - bfd/libbfd-in.h | 4 ++-- - bfd/libbfd.h | 4 ++-- - bfd/reloc.c | 19 +++++++++++++------ - 14 files changed, 50 insertions(+), 23 deletions(-) - ---- a/bfd/cofflink.c -+++ b/bfd/cofflink.c -@@ -3080,7 +3080,7 @@ _bfd_coff_generic_relocate_section (bfd - if (sec != NULL && discarded_section (sec)) - { - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + (rel->r_vaddr - input_section->vma)); -+ contents, rel->r_vaddr - input_section->vma); - continue; - } - ---- a/bfd/elf-bfd.h -+++ b/bfd/elf-bfd.h -@@ -2811,7 +2811,7 @@ extern asection _bfd_elf_large_com_secti - { \ - int i_; \ - _bfd_clear_contents (howto, input_bfd, input_section, \ -- contents + rel[index].r_offset); \ -+ contents, rel[index].r_offset); \ - \ - if (bfd_link_relocatable (info) \ - && (input_section->flags & SEC_DEBUGGING)) \ ---- a/bfd/elf32-arc.c -+++ b/bfd/elf32-arc.c -@@ -1552,7 +1552,7 @@ elf_arc_relocate_section (bfd * outp - if (sec != NULL && discarded_section (sec)) - { - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - rel->r_info = 0; - rel->r_addend = 0; - ---- a/bfd/elf32-i386.c -+++ b/bfd/elf32-i386.c -@@ -2197,7 +2197,7 @@ elf_i386_relocate_section (bfd *output_b - if (sec != NULL && discarded_section (sec)) - { - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - wrel->r_offset = rel->r_offset; - wrel->r_info = 0; - wrel->r_addend = 0; ---- a/bfd/elf32-metag.c -+++ b/bfd/elf32-metag.c -@@ -1396,7 +1396,7 @@ metag_final_link_relocate (reloc_howto_t - rel, relend, howto, contents) \ - { \ - _bfd_clear_contents (howto, input_bfd, input_section, \ -- contents + rel->r_offset); \ -+ contents, rel->r_offset); \ - \ - if (bfd_link_relocatable (info) \ - && (input_section->flags & SEC_DEBUGGING)) \ ---- a/bfd/elf32-nds32.c -+++ b/bfd/elf32-nds32.c -@@ -12582,14 +12582,14 @@ nds32_elf_get_relocated_section_contents - symbol = *(*parent)->sym_ptr_ptr; - if (symbol->section && discarded_section (symbol->section)) - { -- bfd_byte *p; -+ bfd_vma off; - static reloc_howto_type none_howto - = HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, - "unused", FALSE, 0, 0, FALSE); - -- p = data + (*parent)->address * bfd_octets_per_byte (input_bfd); -- _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, -- p); -+ off = (*parent)->address * bfd_octets_per_byte (input_bfd); -+ _bfd_clear_contents ((*parent)->howto, input_bfd, -+ input_section, data, off); - (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - (*parent)->addend = 0; - (*parent)->howto = &none_howto; ---- a/bfd/elf32-ppc.c -+++ b/bfd/elf32-ppc.c -@@ -8232,7 +8232,7 @@ ppc_elf_relocate_section (bfd *output_bf - howto = ppc_elf_howto_table[r_type]; - - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - wrel->r_offset = rel->r_offset; - wrel->r_info = 0; - wrel->r_addend = 0; ---- a/bfd/elf32-visium.c -+++ b/bfd/elf32-visium.c -@@ -621,7 +621,7 @@ visium_elf_relocate_section (bfd *output - or sections discarded by a linker script, we just want the - section contents zeroed. Avoid any special processing. */ - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - - rel->r_info = 0; - rel->r_addend = 0; ---- a/bfd/elf64-ppc.c -+++ b/bfd/elf64-ppc.c -@@ -14074,7 +14074,7 @@ ppc64_elf_relocate_section (bfd *output_ - { - _bfd_clear_contents (ppc64_elf_howto_table[r_type], - input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - wrel->r_offset = rel->r_offset; - wrel->r_info = 0; - wrel->r_addend = 0; ---- a/bfd/elf64-x86-64.c -+++ b/bfd/elf64-x86-64.c -@@ -2490,7 +2490,7 @@ elf_x86_64_relocate_section (bfd *output - if (sec != NULL && discarded_section (sec)) - { - _bfd_clear_contents (howto, input_bfd, input_section, -- contents + rel->r_offset); -+ contents, rel->r_offset); - wrel->r_offset = rel->r_offset; - wrel->r_info = 0; - wrel->r_addend = 0; ---- a/bfd/libbfd-in.h -+++ b/bfd/libbfd-in.h -@@ -696,8 +696,8 @@ extern bfd_reloc_status_type _bfd_reloca - (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *) ATTRIBUTE_HIDDEN; - - /* Clear a given location using a given howto. */ --extern void _bfd_clear_contents -- (reloc_howto_type *, bfd *, asection *, bfd_byte *) ATTRIBUTE_HIDDEN; -+extern bfd_reloc_status_type _bfd_clear_contents -+ (reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma) ATTRIBUTE_HIDDEN; - - /* Link stabs in sections in the first pass. */ - ---- a/bfd/libbfd.h -+++ b/bfd/libbfd.h -@@ -701,8 +701,8 @@ extern bfd_reloc_status_type _bfd_reloca - (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *) ATTRIBUTE_HIDDEN; - - /* Clear a given location using a given howto. */ --extern void _bfd_clear_contents -- (reloc_howto_type *, bfd *, asection *, bfd_byte *) ATTRIBUTE_HIDDEN; -+extern bfd_reloc_status_type _bfd_clear_contents -+ (reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma) ATTRIBUTE_HIDDEN; - - /* Link stabs in sections in the first pass. */ - ---- a/bfd/reloc.c -+++ b/bfd/reloc.c -@@ -1613,16 +1613,22 @@ _bfd_relocate_contents (reloc_howto_type - relocations against discarded symbols, to make ignorable debug or unwind - information more obvious. */ - --void -+bfd_reloc_status_type - _bfd_clear_contents (reloc_howto_type *howto, - bfd *input_bfd, - asection *input_section, -- bfd_byte *location) -+ bfd_byte *buf, -+ bfd_vma off) - { - int size; - bfd_vma x = 0; -+ bfd_byte *location; -+ -+ if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, off)) -+ return bfd_reloc_outofrange; - - /* Get the value we are going to relocate. */ -+ location = buf + off; - size = bfd_get_reloc_size (howto); - switch (size) - { -@@ -1681,6 +1687,7 @@ _bfd_clear_contents (reloc_howto_type *h - #endif - break; - } -+ return bfd_reloc_ok; - } - - /* -@@ -8268,14 +8275,14 @@ bfd_generic_get_relocated_section_conten - - if (symbol->section && discarded_section (symbol->section)) - { -- bfd_byte *p; -+ bfd_vma off; - static reloc_howto_type none_howto - = HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, - "unused", FALSE, 0, 0, FALSE); - -- p = data + (*parent)->address * bfd_octets_per_byte (input_bfd); -- _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, -- p); -+ off = (*parent)->address * bfd_octets_per_byte (input_bfd); -+ _bfd_clear_contents ((*parent)->howto, input_bfd, -+ input_section, data, off); - (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; - (*parent)->addend = 0; - (*parent)->howto = &none_howto; diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18605.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18605.patch deleted file mode 100644 index a117f95d..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18605.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ab419ddbb2cdd17ca83618990f2cacf904ce1d61 Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Tue, 23 Oct 2018 18:29:24 +1030 -Subject: [PATCH] PR23804, buffer overflow in sec_merge_hash_lookup - - PR 23804 - * merge.c (_bfd_add_merge_section): Don't attempt to merge - sections where size is not a multiple of entsize. - -Upstream-Status: Backport -CVE: CVE-2018-18605 -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 6 ++++++ - bfd/merge.c | 3 +++ - 2 files changed, 9 insertions(+) - ---- a/bfd/merge.c -+++ b/bfd/merge.c -@@ -376,6 +376,9 @@ _bfd_add_merge_section (bfd *abfd, void - || sec->entsize == 0) - return TRUE; - -+ if (sec->size % sec->entsize != 0) -+ return TRUE; -+ - if ((sec->flags & SEC_RELOC) != 0) - { - /* We aren't prepared to handle relocations in merged sections. */ diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18606.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18606.patch deleted file mode 100644 index 325c339b..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18606.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 45a0eaf77022963d639d6d19871dbab7b79703fc Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Tue, 23 Oct 2018 19:02:06 +1030 -Subject: [PATCH] PR23806, NULL pointer dereference in merge_strings - - PR 23806 - * merge.c (_bfd_add_merge_section): Don't attempt to merge - sections with ridiculously large alignments. - -Upstream-Status: Backport -CVE: CVE-2018-18606 -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 6 ++++++ - bfd/merge.c | 15 +++++++++++---- - 2 files changed, 17 insertions(+), 4 deletions(-) - ---- a/bfd/merge.c -+++ b/bfd/merge.c -@@ -24,6 +24,7 @@ - as used in ELF SHF_MERGE. */ - - #include "sysdep.h" -+#include - #include "bfd.h" - #include "elf-bfd.h" - #include "libbfd.h" -@@ -385,12 +386,18 @@ _bfd_add_merge_section (bfd *abfd, void - return TRUE; - } - -- align = sec->alignment_power; -- if ((sec->entsize < (unsigned) 1 << align -+#ifndef CHAR_BIT -+#define CHAR_BIT 8 -+#endif -+ if (sec->alignment_power >= sizeof (align) * CHAR_BIT) -+ return TRUE; -+ -+ align = 1u << sec->alignment_power; -+ if ((sec->entsize < align - && ((sec->entsize & (sec->entsize - 1)) - || !(sec->flags & SEC_STRINGS))) -- || (sec->entsize > (unsigned) 1 << align -- && (sec->entsize & (((unsigned) 1 << align) - 1)))) -+ || (sec->entsize > align -+ && (sec->entsize & (align - 1)))) - { - /* Sanity check. If string character size is smaller than - alignment, then we require character size to be a power diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18607.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18607.patch deleted file mode 100644 index 902a90db..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-18607.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 102def4da826b3d9e169741421e5e67e8731909a Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Tue, 23 Oct 2018 18:30:22 +1030 -Subject: [PATCH] PR23805, NULL pointer dereference in elf_link_input_bfd - - PR 23805 - * elflink.c (elf_link_input_bfd): Don't segfault on finding - STT_TLS symbols without any TLS sections. Instead, change the - symbol type to STT_NOTYPE. - -Upstream-Status: Backport -CVE: CVE-2018-18606 -Signed-off-by: Zhixiong Chi ---- - bfd/ChangeLog | 7 +++++++ - bfd/elflink.c | 20 ++++++++++++++------ - 2 files changed, 21 insertions(+), 6 deletions(-) - ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -10496,8 +10496,11 @@ elf_link_input_bfd (struct elf_final_lin - if (ELF_ST_TYPE (osym.st_info) == STT_TLS) - { - /* STT_TLS symbols are relative to PT_TLS segment base. */ -- BFD_ASSERT (elf_hash_table (flinfo->info)->tls_sec != NULL); -- osym.st_value -= elf_hash_table (flinfo->info)->tls_sec->vma; -+ if (elf_hash_table (flinfo->info)->tls_sec != NULL) -+ osym.st_value -= elf_hash_table (flinfo->info)->tls_sec->vma; -+ else -+ osym.st_info = ELF_ST_INFO (ELF_ST_BIND (osym.st_info), -+ STT_NOTYPE); - } - } - -@@ -11053,12 +11056,17 @@ elf_link_input_bfd (struct elf_final_lin - sym.st_value += osec->vma; - if (ELF_ST_TYPE (sym.st_info) == STT_TLS) - { -+ struct elf_link_hash_table *htab -+ = elf_hash_table (flinfo->info); -+ - /* STT_TLS symbols are relative to PT_TLS - segment base. */ -- BFD_ASSERT (elf_hash_table (flinfo->info) -- ->tls_sec != NULL); -- sym.st_value -= (elf_hash_table (flinfo->info) -- ->tls_sec->vma); -+ if (htab->tls_sec != NULL) -+ sym.st_value -= htab->tls_sec->vma; -+ else -+ sym.st_info -+ = ELF_ST_INFO (ELF_ST_BIND (sym.st_info), -+ STT_NOTYPE); - } - } - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20623.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20623.patch deleted file mode 100644 index b44d448f..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20623.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 90cce28d4b59f86366d4f562d01a8d439d514234 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Wed, 9 Jan 2019 12:25:16 +0000 -Subject: [PATCH] Fix a heap use after free memory access fault when displaying - error messages about malformed archives. - - PR 14049 - * readelf.c (process_archive): Use arch.file_name in error - messages until the qualified name is available. - -CVE: CVE-2018-20623 -Upstream-Status: Backport -[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=28e817cc440bce73691c03e01860089a0954a837] - -Signed-off-by: Dan Tran ---- - binutils/readelf.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -diff --git a/binutils/readelf.c b/binutils/readelf.c -index f4df697a7d..280023d8de 100644 ---- a/binutils/readelf.c -+++ b/binutils/readelf.c -@@ -19061,7 +19061,7 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive) - /* Read the next archive header. */ - if (fseek (filedata->handle, arch.next_arhdr_offset, SEEK_SET) != 0) - { -- error (_("%s: failed to seek to next archive header\n"), filedata->file_name); -+ error (_("%s: failed to seek to next archive header\n"), arch.file_name); - return FALSE; - } - got = fread (&arch.arhdr, 1, sizeof arch.arhdr, filedata->handle); -@@ -19069,7 +19069,10 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive) - { - if (got == 0) - break; -- error (_("%s: failed to read archive header\n"), filedata->file_name); -+ /* PR 24049 - we cannot use filedata->file_name as this will -+ have already been freed. */ -+ error (_("%s: failed to read archive header\n"), arch.file_name); -+ - ret = FALSE; - break; - } -@@ -19089,7 +19092,7 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive) - name = get_archive_member_name (&arch, &nested_arch); - if (name == NULL) - { -- error (_("%s: bad archive file name\n"), filedata->file_name); -+ error (_("%s: bad archive file name\n"), arch.file_name); - ret = FALSE; - break; - } -@@ -19098,7 +19101,7 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive) - qualified_name = make_qualified_name (&arch, &nested_arch, name); - if (qualified_name == NULL) - { -- error (_("%s: bad archive file name\n"), filedata->file_name); -+ error (_("%s: bad archive file name\n"), arch.file_name); - ret = FALSE; - break; - } -@@ -19144,7 +19147,7 @@ process_archive (Filedata * filedata, bfd_boolean is_thin_archive) - if (nested_arch.file == NULL) - { - error (_("%s: contains corrupt thin archive: %s\n"), -- filedata->file_name, name); -+ qualified_name, name); - ret = FALSE; - break; - } --- -2.22.0.vfs.1.1.57.gbaf16c8 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20651.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20651.patch deleted file mode 100644 index 24fb0312..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20651.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 6a29d95602b09bb83d2c82b45ed935157fb780aa Mon Sep 17 00:00:00 2001 -From: Alan Modra -Date: Mon, 31 Dec 2018 15:40:08 +1030 -Subject: [PATCH] PR24041, Invalid Memory Address Dereference in - elf_link_add_object_symbols - - PR 24041 - * elflink.c (elf_link_add_object_symbols): Don't segfault on - crafted ET_DYN with no program headers. - -CVE: CVE-2018-20651 -Upstream-Status: Backport -[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=54025d5812ff100f5f0654eb7e1ffd50f2e37f5f] - -Signed-off-by: Dan Tran ---- - bfd/elflink.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/bfd/elflink.c b/bfd/elflink.c -index 46091b6341..557c550082 100644 ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -4178,7 +4178,7 @@ error_free_dyn: - all sections contained fully therein. This makes relro - shared library sections appear as they will at run-time. */ - phdr = elf_tdata (abfd)->phdr + elf_elfheader (abfd)->e_phnum; -- while (--phdr >= elf_tdata (abfd)->phdr) -+ while (phdr-- > elf_tdata (abfd)->phdr) - if (phdr->p_type == PT_GNU_RELRO) - { - for (s = abfd->sections; s != NULL; s = s->next) --- -2.22.0.vfs.1.1.57.gbaf16c8 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20671.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20671.patch deleted file mode 100644 index 9bd9207b..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2018-20671.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8a5f4f2ebe7f35ac5646060fa51e3332f6ef388c Mon Sep 17 00:00:00 2001 -From: Nick Clifton -Date: Fri, 4 Jan 2019 13:44:34 +0000 -Subject: [PATCH] Fix a possible integer overflow problem when examining - corrupt binaries using a 32-bit binutil. - - PR 24005 - * objdump.c (load_specific_debug_section): Check for integer - overflow before attempting to allocate contents. - -CVE: CVE-2018-20671 -Upstream-Status: Backport -[https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=11fa9f134fd658075c6f74499c780df045d9e9ca] - -Signed-off-by: Dan Tran ---- - binutils/objdump.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/binutils/objdump.c b/binutils/objdump.c -index f468fcdb59..89ca688938 100644 ---- a/binutils/objdump.c -+++ b/binutils/objdump.c -@@ -2503,12 +2503,19 @@ load_specific_debug_section (enum dwarf_section_display_enum debug, - section->reloc_info = NULL; - section->num_relocs = 0; - section->address = bfd_get_section_vma (abfd, sec); -+ section->user_data = sec; - section->size = bfd_get_section_size (sec); - amt = section->size + 1; -+ if (amt == 0 || amt > bfd_get_file_size (abfd)) -+ { -+ section->start = NULL; -+ free_debug_section (debug); -+ printf (_("\nSection '%s' has an invalid size: %#llx.\n"), -+ section->name, (unsigned long long) section->size); -+ return FALSE; -+ } - section->start = contents = malloc (amt); -- section->user_data = sec; -- if (amt == 0 -- || section->start == NULL -+ if (section->start == NULL - || !bfd_get_full_section_contents (abfd, sec, &contents)) - { - free_debug_section (debug); --- -2.22.0.vfs.1.1.57.gbaf16c8 - diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch deleted file mode 100644 index 3e95b922..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-12972.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 890f750a3b053532a4b839a2dd6243076de12031 Mon Sep 17 00:00:00 2001 -From: Alan Modra -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 -https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=890f750a3b053532a4b839a2dd6243076de12031 - -CVE: CVE-2019-12972 -Affects: <= 2.23.0 -Dropped Changelog -Signed-off-by Armin Kuster ---- - bfd/ChangeLog | 5 +++++ - bfd/elfcode.h | 3 ++- - 2 files changed, 7 insertions(+), 1 deletion(-) - -Index: git/bfd/elfcode.h -=================================================================== ---- git.orig/bfd/elfcode.h -+++ git/bfd/elfcode.h -@@ -747,7 +747,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 diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch deleted file mode 100644 index 499cf0e0..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e17869db99195849826eaaf5d2d0eb2cfdd7a2a7 Mon Sep 17 00:00:00 2001 -From: Nick Clifton -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. - -Upstream-Status: Backport -https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17869db99195849826eaaf5d2d0eb2cfdd7a2a7 -CVE: CVE-2019-14444 -Dropped changelog -Signed-off-by: Armin Kuster - ---- - binutils/readelf.c | 2 +- - 2 files changed, 7 insertions(+), 1 deletion(-) - -Index: git/binutils/readelf.c -=================================================================== ---- git.orig/binutils/readelf.c -+++ git/binutils/readelf.c -@@ -13113,7 +13113,7 @@ apply_relocations (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/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch new file mode 100644 index 00000000..53e3caf4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch @@ -0,0 +1,549 @@ +From ae531041c7c5956672342f89c486a011c84f027f Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" +Date: Wed, 11 Mar 2020 09:46:19 -0700 +Subject: [PATCH 1/1] i386: Generate lfence with load/indirect branch/ret + [CVE-2020-0551] + +Add 3 command-line options to generate lfence for load, indirect near +branch and ret to help mitigate: + +https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html +http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0551 + +1. -mlfence-after-load=[no|yes]: + -mlfence-after-load=yes generates lfence after load instructions. +2. -mlfence-before-indirect-branch=[none|all|memory|register]: + a. -mlfence-before-indirect-branch=all generates lfence before indirect + near branches via register and a warning before indirect near branches + via memory. + b. -mlfence-before-indirect-branch=memory issue a warning before + indirect near branches via memory. + c. -mlfence-before-indirect-branch=register generates lfence before + indirect near branches via register. +Note that lfence won't be generated before indirect near branches via +register with -mlfence-after-load=yes since lfence will be generated +after loading branch target register. +3. -mlfence-before-ret=[none|or|not] + a. -mlfence-before-ret=or generates or with lfence before ret. + b. -mlfence-before-ret=not generates not with lfence before ret. + +A warning will be issued and lfence won't be generated before indirect +near branch and ret if the previous item is a prefix or a constant +directive, which may be used to hardcode an instruction, since there +is no clear instruction boundary. + + * config/tc-i386.c (lfence_after_load): New. + (lfence_before_indirect_branch_kind): New. + (lfence_before_indirect_branch): New. + (lfence_before_ret_kind): New. + (lfence_before_ret): New. + (last_insn): New. + (load_insn_p): New. + (insert_lfence_after): New. + (insert_lfence_before): New. + (md_assemble): Call insert_lfence_before and insert_lfence_after. + Set last_insn. + (OPTION_MLFENCE_AFTER_LOAD): New. + (OPTION_MLFENCE_BEFORE_INDIRECT_BRANCH): New. + (OPTION_MLFENCE_BEFORE_RET): New. + (md_longopts): Add -mlfence-after-load=, + -mlfence-before-indirect-branch= and -mlfence-before-ret=. + (md_parse_option): Handle -mlfence-after-load=, + -mlfence-before-indirect-branch= and -mlfence-before-ret=. + (md_show_usage): Display -mlfence-after-load=, + -mlfence-before-indirect-branch= and -mlfence-before-ret=. + (i386_cons_align): New. + * config/tc-i386.h (i386_cons_align): New. + (md_cons_align): New. + * doc/c-i386.texi: Document -mlfence-after-load=, + -mlfence-before-indirect-branch= and -mlfence-before-ret=. + +Signed-off-by: Anuj Mittal +Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ae531041c7c5956672342f89c486a011c84f027f] +CVE: CVE-2020-0551 +--- +diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c +index b020f39c863..09063f784b7 100644 +--- a/gas/config/tc-i386.c ++++ b/gas/config/tc-i386.c +@@ -629,7 +629,29 @@ static int omit_lock_prefix = 0; + "lock addl $0, (%{re}sp)". */ + static int avoid_fence = 0; + +-/* Type of the previous instruction. */ ++/* 1 if lfence should be inserted after every load. */ ++static int lfence_after_load = 0; ++ ++/* Non-zero if lfence should be inserted before indirect branch. */ ++static enum lfence_before_indirect_branch_kind ++ { ++ lfence_branch_none = 0, ++ lfence_branch_register, ++ lfence_branch_memory, ++ lfence_branch_all ++ } ++lfence_before_indirect_branch; ++ ++/* Non-zero if lfence should be inserted before ret. */ ++static enum lfence_before_ret_kind ++ { ++ lfence_before_ret_none = 0, ++ lfence_before_ret_not, ++ lfence_before_ret_or ++ } ++lfence_before_ret; ++ ++/* Types of previous instruction is .byte or prefix. */ + static struct + { + segT seg; +@@ -4311,6 +4333,283 @@ optimize_encoding (void) + } + } + ++/* Return non-zero for load instruction. */ ++ ++static int ++load_insn_p (void) ++{ ++ unsigned int dest; ++ int any_vex_p = is_any_vex_encoding (&i.tm); ++ unsigned int base_opcode = i.tm.base_opcode | 1; ++ ++ if (!any_vex_p) ++ { ++ /* lea */ ++ if (i.tm.base_opcode == 0x8d) ++ return 0; ++ ++ /* pop */ ++ if ((i.tm.base_opcode & ~7) == 0x58 ++ || (i.tm.base_opcode == 0x8f && i.tm.extension_opcode == 0)) ++ return 1; ++ ++ /* movs, cmps, lods, scas. */ ++ if ((i.tm.base_opcode | 0xb) == 0xaf) ++ return 1; ++ ++ /* outs */ ++ if (base_opcode == 0x6f) ++ return 1; ++ } ++ ++ /* No memory operand. */ ++ if (!i.mem_operands) ++ return 0; ++ ++ if (any_vex_p) ++ { ++ /* vldmxcsr. */ ++ if (i.tm.base_opcode == 0xae ++ && i.tm.opcode_modifier.vex ++ && i.tm.opcode_modifier.vexopcode == VEX0F ++ && i.tm.extension_opcode == 2) ++ return 1; ++ } ++ else ++ { ++ /* test, not, neg, mul, imul, div, idiv. */ ++ if ((i.tm.base_opcode == 0xf6 || i.tm.base_opcode == 0xf7) ++ && i.tm.extension_opcode != 1) ++ return 1; ++ ++ /* inc, dec. */ ++ if (base_opcode == 0xff && i.tm.extension_opcode <= 1) ++ return 1; ++ ++ /* add, or, adc, sbb, and, sub, xor, cmp. */ ++ if (i.tm.base_opcode >= 0x80 && i.tm.base_opcode <= 0x83) ++ return 1; ++ ++ /* bt, bts, btr, btc. */ ++ if (i.tm.base_opcode == 0xfba ++ && (i.tm.extension_opcode >= 4 && i.tm.extension_opcode <= 7)) ++ return 1; ++ ++ /* rol, ror, rcl, rcr, shl/sal, shr, sar. */ ++ if ((base_opcode == 0xc1 ++ || (i.tm.base_opcode >= 0xd0 && i.tm.base_opcode <= 0xd3)) ++ && i.tm.extension_opcode != 6) ++ return 1; ++ ++ /* cmpxchg8b, cmpxchg16b, xrstors. */ ++ if (i.tm.base_opcode == 0xfc7 ++ && (i.tm.extension_opcode == 1 || i.tm.extension_opcode == 3)) ++ return 1; ++ ++ /* fxrstor, ldmxcsr, xrstor. */ ++ if (i.tm.base_opcode == 0xfae ++ && (i.tm.extension_opcode == 1 ++ || i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 5)) ++ return 1; ++ ++ /* lgdt, lidt, lmsw. */ ++ if (i.tm.base_opcode == 0xf01 ++ && (i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 3 ++ || i.tm.extension_opcode == 6)) ++ return 1; ++ ++ /* vmptrld */ ++ if (i.tm.base_opcode == 0xfc7 ++ && i.tm.extension_opcode == 6) ++ return 1; ++ ++ /* Check for x87 instructions. */ ++ if (i.tm.base_opcode >= 0xd8 && i.tm.base_opcode <= 0xdf) ++ { ++ /* Skip fst, fstp, fstenv, fstcw. */ ++ if (i.tm.base_opcode == 0xd9 ++ && (i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 3 ++ || i.tm.extension_opcode == 6 ++ || i.tm.extension_opcode == 7)) ++ return 0; ++ ++ /* Skip fisttp, fist, fistp, fstp. */ ++ if (i.tm.base_opcode == 0xdb ++ && (i.tm.extension_opcode == 1 ++ || i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 3 ++ || i.tm.extension_opcode == 7)) ++ return 0; ++ ++ /* Skip fisttp, fst, fstp, fsave, fstsw. */ ++ if (i.tm.base_opcode == 0xdd ++ && (i.tm.extension_opcode == 1 ++ || i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 3 ++ || i.tm.extension_opcode == 6 ++ || i.tm.extension_opcode == 7)) ++ return 0; ++ ++ /* Skip fisttp, fist, fistp, fbstp, fistp. */ ++ if (i.tm.base_opcode == 0xdf ++ && (i.tm.extension_opcode == 1 ++ || i.tm.extension_opcode == 2 ++ || i.tm.extension_opcode == 3 ++ || i.tm.extension_opcode == 6 ++ || i.tm.extension_opcode == 7)) ++ return 0; ++ ++ return 1; ++ } ++ } ++ ++ dest = i.operands - 1; ++ ++ /* Check fake imm8 operand and 3 source operands. */ ++ if ((i.tm.opcode_modifier.immext ++ || i.tm.opcode_modifier.vexsources == VEX3SOURCES) ++ && i.types[dest].bitfield.imm8) ++ dest--; ++ ++ /* add, or, adc, sbb, and, sub, xor, cmp, test, xchg, xadd */ ++ if (!any_vex_p ++ && (base_opcode == 0x1 ++ || base_opcode == 0x9 ++ || base_opcode == 0x11 ++ || base_opcode == 0x19 ++ || base_opcode == 0x21 ++ || base_opcode == 0x29 ++ || base_opcode == 0x31 ++ || base_opcode == 0x39 ++ || (i.tm.base_opcode >= 0x84 && i.tm.base_opcode <= 0x87) ++ || base_opcode == 0xfc1)) ++ return 1; ++ ++ /* Check for load instruction. */ ++ return (i.types[dest].bitfield.class != ClassNone ++ || i.types[dest].bitfield.instance == Accum); ++} ++ ++/* Output lfence, 0xfaee8, after instruction. */ ++ ++static void ++insert_lfence_after (void) ++{ ++ if (lfence_after_load && load_insn_p ()) ++ { ++ char *p = frag_more (3); ++ *p++ = 0xf; ++ *p++ = 0xae; ++ *p = 0xe8; ++ } ++} ++ ++/* Output lfence, 0xfaee8, before instruction. */ ++ ++static void ++insert_lfence_before (void) ++{ ++ char *p; ++ ++ if (is_any_vex_encoding (&i.tm)) ++ return; ++ ++ if (i.tm.base_opcode == 0xff ++ && (i.tm.extension_opcode == 2 || i.tm.extension_opcode == 4)) ++ { ++ /* Insert lfence before indirect branch if needed. */ ++ ++ if (lfence_before_indirect_branch == lfence_branch_none) ++ return; ++ ++ if (i.operands != 1) ++ abort (); ++ ++ if (i.reg_operands == 1) ++ { ++ /* Indirect branch via register. Don't insert lfence with ++ -mlfence-after-load=yes. */ ++ if (lfence_after_load ++ || lfence_before_indirect_branch == lfence_branch_memory) ++ return; ++ } ++ else if (i.mem_operands == 1 ++ && lfence_before_indirect_branch != lfence_branch_register) ++ { ++ as_warn (_("indirect `%s` with memory operand should be avoided"), ++ i.tm.name); ++ return; ++ } ++ else ++ return; ++ ++ if (last_insn.kind != last_insn_other ++ && last_insn.seg == now_seg) ++ { ++ as_warn_where (last_insn.file, last_insn.line, ++ _("`%s` skips -mlfence-before-indirect-branch on `%s`"), ++ last_insn.name, i.tm.name); ++ return; ++ } ++ ++ p = frag_more (3); ++ *p++ = 0xf; ++ *p++ = 0xae; ++ *p = 0xe8; ++ return; ++ } ++ ++ /* Output or/not and lfence before ret. */ ++ if (lfence_before_ret != lfence_before_ret_none ++ && (i.tm.base_opcode == 0xc2 ++ || i.tm.base_opcode == 0xc3 ++ || i.tm.base_opcode == 0xca ++ || i.tm.base_opcode == 0xcb)) ++ { ++ if (last_insn.kind != last_insn_other ++ && last_insn.seg == now_seg) ++ { ++ as_warn_where (last_insn.file, last_insn.line, ++ _("`%s` skips -mlfence-before-ret on `%s`"), ++ last_insn.name, i.tm.name); ++ return; ++ } ++ if (lfence_before_ret == lfence_before_ret_or) ++ { ++ /* orl: 0x830c2400. */ ++ p = frag_more ((flag_code == CODE_64BIT ? 1 : 0) + 4 + 3); ++ if (flag_code == CODE_64BIT) ++ *p++ = 0x48; ++ *p++ = 0x83; ++ *p++ = 0xc; ++ *p++ = 0x24; ++ *p++ = 0x0; ++ } ++ else ++ { ++ p = frag_more ((flag_code == CODE_64BIT ? 2 : 0) + 6 + 3); ++ /* notl: 0xf71424. */ ++ if (flag_code == CODE_64BIT) ++ *p++ = 0x48; ++ *p++ = 0xf7; ++ *p++ = 0x14; ++ *p++ = 0x24; ++ /* notl: 0xf71424. */ ++ if (flag_code == CODE_64BIT) ++ *p++ = 0x48; ++ *p++ = 0xf7; ++ *p++ = 0x14; ++ *p++ = 0x24; ++ } ++ *p++ = 0xf; ++ *p++ = 0xae; ++ *p = 0xe8; ++ } ++} ++ + /* This is the guts of the machine-dependent assembler. LINE points to a + machine dependent instruction. This function is supposed to emit + the frags/bytes it assembles to. */ +@@ -4628,9 +4927,13 @@ md_assemble (char *line) + if (i.rex != 0) + add_prefix (REX_OPCODE | i.rex); + ++ insert_lfence_before (); ++ + /* We are ready to output the insn. */ + output_insn (); + ++ insert_lfence_after (); ++ + last_insn.seg = now_seg; + + if (i.tm.opcode_modifier.isprefix) +@@ -12250,6 +12553,9 @@ const char *md_shortopts = "qnO::"; + #define OPTION_MALIGN_BRANCH_PREFIX_SIZE (OPTION_MD_BASE + 28) + #define OPTION_MALIGN_BRANCH (OPTION_MD_BASE + 29) + #define OPTION_MBRANCHES_WITH_32B_BOUNDARIES (OPTION_MD_BASE + 30) ++#define OPTION_MLFENCE_AFTER_LOAD (OPTION_MD_BASE + 31) ++#define OPTION_MLFENCE_BEFORE_INDIRECT_BRANCH (OPTION_MD_BASE + 32) ++#define OPTION_MLFENCE_BEFORE_RET (OPTION_MD_BASE + 33) + + struct option md_longopts[] = + { +@@ -12289,6 +12595,10 @@ struct option md_longopts[] = + {"malign-branch-prefix-size", required_argument, NULL, OPTION_MALIGN_BRANCH_PREFIX_SIZE}, + {"malign-branch", required_argument, NULL, OPTION_MALIGN_BRANCH}, + {"mbranches-within-32B-boundaries", no_argument, NULL, OPTION_MBRANCHES_WITH_32B_BOUNDARIES}, ++ {"mlfence-after-load", required_argument, NULL, OPTION_MLFENCE_AFTER_LOAD}, ++ {"mlfence-before-indirect-branch", required_argument, NULL, ++ OPTION_MLFENCE_BEFORE_INDIRECT_BRANCH}, ++ {"mlfence-before-ret", required_argument, NULL, OPTION_MLFENCE_BEFORE_RET}, + {"mamd64", no_argument, NULL, OPTION_MAMD64}, + {"mintel64", no_argument, NULL, OPTION_MINTEL64}, + {NULL, no_argument, NULL, 0} +@@ -12668,6 +12978,41 @@ md_parse_option (int c, const char *arg) + as_fatal (_("invalid -mfence-as-lock-add= option: `%s'"), arg); + break; + ++ case OPTION_MLFENCE_AFTER_LOAD: ++ if (strcasecmp (arg, "yes") == 0) ++ lfence_after_load = 1; ++ else if (strcasecmp (arg, "no") == 0) ++ lfence_after_load = 0; ++ else ++ as_fatal (_("invalid -mlfence-after-load= option: `%s'"), arg); ++ break; ++ ++ case OPTION_MLFENCE_BEFORE_INDIRECT_BRANCH: ++ if (strcasecmp (arg, "all") == 0) ++ lfence_before_indirect_branch = lfence_branch_all; ++ else if (strcasecmp (arg, "memory") == 0) ++ lfence_before_indirect_branch = lfence_branch_memory; ++ else if (strcasecmp (arg, "register") == 0) ++ lfence_before_indirect_branch = lfence_branch_register; ++ else if (strcasecmp (arg, "none") == 0) ++ lfence_before_indirect_branch = lfence_branch_none; ++ else ++ as_fatal (_("invalid -mlfence-before-indirect-branch= option: `%s'"), ++ arg); ++ break; ++ ++ case OPTION_MLFENCE_BEFORE_RET: ++ if (strcasecmp (arg, "or") == 0) ++ lfence_before_ret = lfence_before_ret_or; ++ else if (strcasecmp (arg, "not") == 0) ++ lfence_before_ret = lfence_before_ret_not; ++ else if (strcasecmp (arg, "none") == 0) ++ lfence_before_ret = lfence_before_ret_none; ++ else ++ as_fatal (_("invalid -mlfence-before-ret= option: `%s'"), ++ arg); ++ break; ++ + case OPTION_MRELAX_RELOCATIONS: + if (strcasecmp (arg, "yes") == 0) + generate_relax_relocations = 1; +@@ -13025,6 +13370,15 @@ md_show_usage (FILE *stream) + -mbranches-within-32B-boundaries\n\ + align branches within 32 byte boundary\n")); + fprintf (stream, _("\ ++ -mlfence-after-load=[no|yes] (default: no)\n\ ++ generate lfence after load\n")); ++ fprintf (stream, _("\ ++ -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)\n\ ++ generate lfence before indirect near branch\n")); ++ fprintf (stream, _("\ ++ -mlfence-before-ret=[none|or|not] (default: none)\n\ ++ generate lfence before ret\n")); ++ fprintf (stream, _("\ + -mamd64 accept only AMD64 ISA [default]\n")); + fprintf (stream, _("\ + -mintel64 accept only Intel64 ISA\n")); +@@ -13254,6 +13608,16 @@ i386_cons_align (int ignore ATTRIBUTE_UNUSED) + last_insn.kind = last_insn_directive; + last_insn.name = "constant directive"; + last_insn.file = as_where (&last_insn.line); ++ if (lfence_before_ret != lfence_before_ret_none) ++ { ++ if (lfence_before_indirect_branch != lfence_branch_none) ++ as_warn (_("constant directive skips -mlfence-before-ret " ++ "and -mlfence-before-indirect-branch")); ++ else ++ as_warn (_("constant directive skips -mlfence-before-ret")); ++ } ++ else if (lfence_before_indirect_branch != lfence_branch_none) ++ as_warn (_("constant directive skips -mlfence-before-indirect-branch")); + } + } + +diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi +index c536759cb38..1dd99f91bb0 100644 +--- a/gas/doc/c-i386.texi ++++ b/gas/doc/c-i386.texi +@@ -464,6 +464,49 @@ on an instruction. It is equivalent to + @option{-malign-branch-prefix-size=5}. + The default doesn't align branches. + ++@cindex @samp{-mlfence-after-load=} option, i386 ++@cindex @samp{-mlfence-after-load=} option, x86-64 ++@item -mlfence-after-load=@var{no} ++@itemx -mlfence-after-load=@var{yes} ++These options control whether the assembler should generate lfence ++after load instructions. @option{-mlfence-after-load=@var{yes}} will ++generate lfence. @option{-mlfence-after-load=@var{no}} will not generate ++lfence, which is the default. ++ ++@cindex @samp{-mlfence-before-indirect-branch=} option, i386 ++@cindex @samp{-mlfence-before-indirect-branch=} option, x86-64 ++@item -mlfence-before-indirect-branch=@var{none} ++@item -mlfence-before-indirect-branch=@var{all} ++@item -mlfence-before-indirect-branch=@var{register} ++@itemx -mlfence-before-indirect-branch=@var{memory} ++These options control whether the assembler should generate lfence ++after indirect near branch instructions. ++@option{-mlfence-before-indirect-branch=@var{all}} will generate lfence ++after indirect near branch via register and issue a warning before ++indirect near branch via memory. ++@option{-mlfence-before-indirect-branch=@var{register}} will generate ++lfence after indirect near branch via register. ++@option{-mlfence-before-indirect-branch=@var{memory}} will issue a ++warning before indirect near branch via memory. ++@option{-mlfence-before-indirect-branch=@var{none}} will not generate ++lfence nor issue warning, which is the default. Note that lfence won't ++be generated before indirect near branch via register with ++@option{-mlfence-after-load=@var{yes}} since lfence will be generated ++after loading branch target register. ++ ++@cindex @samp{-mlfence-before-ret=} option, i386 ++@cindex @samp{-mlfence-before-ret=} option, x86-64 ++@item -mlfence-before-ret=@var{none} ++@item -mlfence-before-ret=@var{or} ++@itemx -mlfence-before-ret=@var{not} ++These options control whether the assembler should generate lfence ++before ret. @option{-mlfence-before-ret=@var{or}} will generate ++generate or instruction with lfence. ++@option{-mlfence-before-ret=@var{not}} will generate not instruction ++with lfence. ++@option{-mlfence-before-ret=@var{none}} will not generate lfence, ++which is the default. ++ + @cindex @samp{-mx86-used-note=} option, i386 + @cindex @samp{-mx86-used-note=} option, x86-64 + @item -mx86-used-note=@var{no} +-- +2.18.2 diff --git a/external/poky/meta/recipes-devtools/binutils/binutils/clang-bfd-fix.patch b/external/poky/meta/recipes-devtools/binutils/binutils/clang-bfd-fix.patch deleted file mode 100644 index 29c0d48f..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils/clang-bfd-fix.patch +++ /dev/null @@ -1,30 +0,0 @@ -Fix compiler error seen with clang, The return value of this -function is not checked anywhere so in a way its useless but -still technically correct to return a value here - -Fixes - -../../bfd/reloc.c:1638:7: error: non-void function '_bfd_clear_contents' should return a value [-Wreturn-type] - return; - ^ -1 error generated. - -It has been fixed in master along with a larger cleanup and fix for relocations - -https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=1dc9e2d63e37839ff1768346b2e3f52e338baba5 - -Upstream-Status: Backport [Fixes differently] - -Signed-off-by: Khem Raj - ---- a/bfd/reloc.c -+++ b/bfd/reloc.c -@@ -1629,7 +1629,7 @@ _bfd_clear_contents (reloc_howto_type *h - default: - abort (); - case 0: -- return; -+ return 0; - case 1: - x = bfd_get_8 (input_bfd, location); - break; diff --git a/external/poky/meta/recipes-devtools/binutils/binutils_2.31.bb b/external/poky/meta/recipes-devtools/binutils/binutils_2.31.bb deleted file mode 100644 index 51a97489..00000000 --- a/external/poky/meta/recipes-devtools/binutils/binutils_2.31.bb +++ /dev/null @@ -1,49 +0,0 @@ -require binutils.inc -require binutils-${PV}.inc - -DEPENDS += "flex bison zlib" - -EXTRA_OECONF += "--with-sysroot=/ \ - --enable-install-libbfd \ - --enable-install-libiberty \ - --enable-shared \ - --with-system-zlib \ - " - -EXTRA_OEMAKE_append_libc-musl = "\ - gt_cv_func_gnugettext1_libc=yes \ - gt_cv_func_gnugettext2_libc=yes \ - " -EXTRA_OECONF_class-native = "--enable-targets=all \ - --enable-64-bit-bfd \ - --enable-install-libiberty \ - --enable-install-libbfd \ - --disable-werror" - -do_install_class-native () { - autotools_do_install - - # Install the libiberty header - install -d ${D}${includedir} - install -m 644 ${S}/include/ansidecl.h ${D}${includedir} - install -m 644 ${S}/include/libiberty.h ${D}${includedir} - - # We only want libiberty, libbfd and libopcodes - rm -rf ${D}${bindir} - rm -rf ${D}${prefix}/${TARGET_SYS} - rm -rf ${D}${prefix}/lib/ldscripts - rm -rf ${D}${prefix}/share/info - rm -rf ${D}${prefix}/share/locale - rm -rf ${D}${prefix}/share/man - rmdir ${D}${prefix}/share || : - rmdir ${D}/${libdir}/gcc-lib || : - rmdir ${D}/${libdir}64/gcc-lib || : - rmdir ${D}/${libdir} || : - rmdir ${D}/${libdir}64 || : -} - -# Split out libbfd-*.so so including perf doesn't include extra stuff -PACKAGE_BEFORE_PN += "libbfd" -FILES_libbfd = "${libdir}/libbfd-*.so" - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/binutils/binutils_2.34.bb b/external/poky/meta/recipes-devtools/binutils/binutils_2.34.bb new file mode 100644 index 00000000..2e645e1e --- /dev/null +++ b/external/poky/meta/recipes-devtools/binutils/binutils_2.34.bb @@ -0,0 +1,65 @@ +require binutils.inc +require binutils-${PV}.inc + +DEPENDS += "flex bison zlib" + +EXTRA_OECONF += "--with-sysroot=/ \ + --enable-install-libbfd \ + --enable-install-libiberty \ + --enable-shared \ + --with-system-zlib \ + " + +EXTRA_OEMAKE_append_libc-musl = "\ + gt_cv_func_gnugettext1_libc=yes \ + gt_cv_func_gnugettext2_libc=yes \ + " +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 +# So remove -O2 and use -Os as workaround +SELECTED_OPTIMIZATION_remove_mipsarch = "-O2" +SELECTED_OPTIMIZATION_append_mipsarch = " -Os" + +do_install_class-native () { + autotools_do_install + + # Install the libiberty header + install -d ${D}${includedir} + install -m 644 ${S}/include/ansidecl.h ${D}${includedir} + install -m 644 ${S}/include/libiberty.h ${D}${includedir} + + # We only want libiberty, libbfd and libopcodes + rm -rf ${D}${bindir} + rm -rf ${D}${prefix}/${TARGET_SYS} + rm -rf ${D}${prefix}/lib/ldscripts + rm -rf ${D}${prefix}/share/info + rm -rf ${D}${prefix}/share/locale + rm -rf ${D}${prefix}/share/man + rmdir ${D}${prefix}/share || : + rmdir ${D}/${libdir}/gcc-lib || : + rmdir ${D}/${libdir}64/gcc-lib || : + rmdir ${D}/${libdir} || : + rmdir ${D}/${libdir}64 || : +} + +# Split out libbfd-*.so so including perf doesn't include extra stuff +PACKAGE_BEFORE_PN += "libbfd" +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/external/poky/meta/recipes-devtools/bison/bison/0001-Unset-need_charset_alias-when-building-for-musl.patch b/external/poky/meta/recipes-devtools/bison/bison/0001-Unset-need_charset_alias-when-building-for-musl.patch deleted file mode 100644 index ba1a4bab..00000000 --- a/external/poky/meta/recipes-devtools/bison/bison/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 -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 ---- - 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/external/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch b/external/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch new file mode 100644 index 00000000..c3be91a1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch @@ -0,0 +1,63 @@ +From e0dbcee6e25b3c0cb11a627bbfe3af45ef67ec30 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Thu, 14 May 2020 15:23:16 +0800 +Subject: [PATCH] bison: fix the parallel build + +Explicitly make the BUILT_SOURCES which +are the generated headers such as stdio.h, +fcntl.h and etc to be the dependencies of +the gl_LIBOBJS such as libbison_a-sprintf.o, +libbison_a-printf.o and etc to guarantee the +BUILT_SOURCES is generated before begin to +compile EXTRA_lib_libbison_a_SOURCES such as +fprintf.c in parallel builid, otherwise there +may come below error: + | muscle-tab.c:(.text+0x77a): undefined reference to `rpl_sprintf' + +It does the same for src_bison_OBJECTS and +lib_libbison_a_OBJECTS to make sure BUILT_SOURCES +generated before begin to compile src_bison_SOURCES +which contains AnnotationList.c and etc. + +BTW, the MOSTLYCLEANFILES also contains the +generated header needs to be created early +in the build process, so add it also in to +avoid below error: + | ./lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory + +Upstream-Status: Submitted [bison-patches@gnu.org maillist] + +Signed-off-by: Mingli Yu +--- + lib/gnulib.mk | 2 ++ + src/local.mk | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/lib/gnulib.mk b/lib/gnulib.mk +index c21c656..27fb3dc 100644 +--- a/lib/gnulib.mk ++++ b/lib/gnulib.mk +@@ -120,6 +120,8 @@ lib_libbison_a_SOURCES = + lib_libbison_a_LIBADD = $(gl_LIBOBJS) + lib_libbison_a_DEPENDENCIES = $(gl_LIBOBJS) + EXTRA_lib_libbison_a_SOURCES = ++$(lib_libbison_a_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) ++$(gl_LIBOBJS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) + + lib_libbison_a_CPPFLAGS = $(AM_CPPFLAGS) -DDEFAULT_TEXT_DOMAIN=\"bison-gnulib\" + +diff --git a/src/local.mk b/src/local.mk +index 61dc573..b5b9079 100644 +--- a/src/local.mk ++++ b/src/local.mk +@@ -24,6 +24,7 @@ if RELOCATABLE_VIA_LD + src_bison_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)` + endif + ++$(src_bison_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h) + src_bison_CFLAGS = $(AM_CFLAGS) $(WERROR_CFLAGS) + src_bison_SOURCES = \ + src/AnnotationList.c \ +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/bison/bison/0001-src-local.mk-fix-parallel-issue.patch b/external/poky/meta/recipes-devtools/bison/bison/0001-src-local.mk-fix-parallel-issue.patch deleted file mode 100644 index 1e86f552..00000000 --- a/external/poky/meta/recipes-devtools/bison/bison/0001-src-local.mk-fix-parallel-issue.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5b9204eee4b06b48d54ecc3ef3a0b56fc5cc84f8 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Fri, 24 Apr 2015 00:38:32 -0700 -Subject: [PATCH] src/local.mk: fix parallel issue - -Fixed: -rm -f src/yacc src/yacc.tmp -echo '#! /bin/sh' >src/yacc.tmp -/bin/bash: src/yacc.tmp: No such file or directory -Makefile:6670: recipe for target 'src/yacc' failed - -Upstream-Status: Submitted [ http://lists.gnu.org/archive/html/bison-patches/2017-07/msg00000.html ] - -Signed-off-by: Robert Yang -Signed-off-by: Dengke Du ---- - src/local.mk | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/local.mk b/src/local.mk -index 573ad00..28bfae4 100644 ---- a/src/local.mk -+++ b/src/local.mk -@@ -119,6 +119,7 @@ MOSTLYCLEANFILES += src/yacc - - src/yacc: - $(AM_V_GEN)rm -f $@ $@.tmp -+ $(AM_V_at)$(MKDIR_P) src - $(AM_V_at)echo '#! /bin/sh' >$@.tmp - $(AM_V_at)echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@.tmp - $(AM_V_at)chmod a+x $@.tmp --- -2.8.1 - diff --git a/external/poky/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch b/external/poky/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch index ac16c577..8a41a3a7 100644 --- a/external/poky/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch +++ b/external/poky/meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch.patch @@ -1,4 +1,4 @@ -From 4c0d7733f30903f8d7c7cd7433f5c8a7505e35f5 Mon Sep 17 00:00:00 2001 +From 31bb81ef15c42b10844eb8af8738f672076edf0e Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Tue, 21 Apr 2015 00:48:45 -0700 Subject: [PATCH] doc/local.mk: dont-depend-on-help2man.patch @@ -10,15 +10,16 @@ Signed-off-by: Marko Lindqvist Updated for bison 3.0.4 Signed-off-by: Robert Yang + --- - doc/local.mk | 9 +-------- + doc/local.mk | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/doc/local.mk b/doc/local.mk -index c340452..642f385 100644 +index d12836e..f9bf332 100644 --- a/doc/local.mk +++ b/doc/local.mk -@@ -98,10 +98,7 @@ endif ! CROSS_COMPILING +@@ -101,10 +101,7 @@ endif ! CROSS_COMPILING ## Man Pages. ## ## ----------- ## @@ -30,9 +31,9 @@ index c340452..642f385 100644 # Differences to ignore when comparing the man page (the date). remove_time_stamp = \ -@@ -124,10 +121,6 @@ $(top_srcdir)/doc/bison.1: $(MAN_DEPS) +@@ -127,10 +124,6 @@ $(top_srcdir)/doc/bison.1: $(MAN_DEPS) fi - $(AM_V_at)rm -f $@*.t + $(AM_V_at)rm -f $@*.tmp -if ENABLE_YACC -nodist_man_MANS = doc/yacc.1 @@ -41,6 +42,3 @@ index c340452..642f385 100644 ## ----------------------------- ## ## Graphviz examples generation. ## ## ----------------------------- ## --- -1.7.9.5 - diff --git a/external/poky/meta/recipes-devtools/bison/bison/gnulib.patch b/external/poky/meta/recipes-devtools/bison/bison/gnulib.patch deleted file mode 100644 index 7eaf0ce0..00000000 --- a/external/poky/meta/recipes-devtools/bison/bison/gnulib.patch +++ /dev/null @@ -1,21 +0,0 @@ -Fix gnulib issues found with glibc 2.28 libio.h removal - -see -https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Index: bison-3.0.4/lib/fseterr.c -=================================================================== ---- bison-3.0.4.orig/lib/fseterr.c -+++ bison-3.0.4/lib/fseterr.c -@@ -29,7 +29,7 @@ fseterr (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags |= _IO_ERR_SEEN; - #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */ - fp_->_flags |= __SERR; diff --git a/external/poky/meta/recipes-devtools/bison/bison_3.0.4.bb b/external/poky/meta/recipes-devtools/bison/bison_3.0.4.bb deleted file mode 100644 index f1b05da4..00000000 --- a/external/poky/meta/recipes-devtools/bison/bison_3.0.4.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "GNU Project parser generator (yacc replacement)" -DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ -an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ -grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ -little trouble." -HOMEPAGE = "http://www.gnu.org/software/bison/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "devel" -DEPENDS = "bison-native flex-native" - -SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ - file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ - file://dont-depend-on-help2man.patch.patch \ - file://0001-src-local.mk-fix-parallel-issue.patch \ - file://add-with-bisonlocaledir.patch \ - file://gnulib.patch \ -" - -# No point in hardcoding path to m4, just use PATH -EXTRA_OECONF += "M4=m4" - -SRC_URI[md5sum] = "c342201de104cc9ce0a21e0ad10d4021" -SRC_URI[sha256sum] = "a72428c7917bdf9fa93cb8181c971b6e22834125848cf1d03ce10b1bb0716fe1" - -inherit autotools gettext texinfo - -# The automatic m4 path detection gets confused, so force the right value -acpaths = "-I ${S}/m4" - -do_compile_prepend() { - for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done -} - -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison -} -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${datadir}/bison -} -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/bison/bison_3.5.3.bb b/external/poky/meta/recipes-devtools/bison/bison_3.5.3.bb new file mode 100644 index 00000000..e6c169e9 --- /dev/null +++ b/external/poky/meta/recipes-devtools/bison/bison_3.5.3.bb @@ -0,0 +1,45 @@ +SUMMARY = "GNU Project parser generator (yacc replacement)" +DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ +an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ +grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ +little trouble." +HOMEPAGE = "http://www.gnu.org/software/bison/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +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 \ + file://0001-bison-fix-the-parallel-build.patch \ +" +SRC_URI[sha256sum] = "2bf85b5f88a5f2fa8069aed2a2dfc3a9f8d15a97e59c713e3906e5fdd982a7c4" + +# No point in hardcoding path to m4, just use PATH +EXTRA_OECONF += "M4=m4" + +# Reset any loadavg set via environment, it breaks parallel build +# | ../bison-3.5.2/lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory +# | #include "uniwidth.h" +# | ^~~~~~~~~~~~ +EXTRA_OEMAKE_append = " -l" + +inherit autotools gettext texinfo + +# The automatic m4 path detection gets confused, so force the right value +acpaths = "-I ./m4" + +do_compile_prepend() { + for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done +} + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison +} +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${datadir}/bison +} +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch b/external/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch new file mode 100644 index 00000000..8ee6723d --- /dev/null +++ b/external/poky/meta/recipes-devtools/bootchart2/bootchart2/0001-bootchart2-support-usrmerge.patch @@ -0,0 +1,37 @@ +From b6d1a1ff2de363b1b76c8c70f77ae56a4e4d4b56 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 5 Sep 2019 18:37:31 +0800 +Subject: [PATCH] bootchart2: support usrmerge + +Upstream-Status: Inappropriate[oe-specific] + +Signed-off-by: Changqing Li +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 1cc2974..f988904 100644 +--- a/Makefile ++++ b/Makefile +@@ -36,7 +36,7 @@ endif + PY_SITEDIR ?= $(PY_LIBDIR)/site-packages + LIBC_A_PATH = /usr$(LIBDIR) + # Always lib, even on systems that otherwise use lib64 +-SYSTEMD_UNIT_DIR = $(EARLY_PREFIX)/lib/systemd/system ++SYSTEMD_UNIT_DIR ?= $(EARLY_PREFIX)/lib/systemd/system + COLLECTOR = \ + collector/collector.o \ + collector/output.o \ +@@ -99,7 +99,7 @@ install-chroot: + install -d $(DESTDIR)$(PKGLIBDIR)/tmpfs + + install-collector: all install-chroot +- install -m 755 -D bootchartd $(DESTDIR)$(EARLY_PREFIX)/sbin/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX) ++ install -m 755 -D bootchartd $(DESTDIR)${BASE_SBINDIR}/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX) + install -m 644 -D bootchartd.conf $(DESTDIR)/etc/$(PROGRAM_PREFIX)bootchartd$(PROGRAM_SUFFIX).conf + install -m 755 -D bootchart-collector $(DESTDIR)$(PKGLIBDIR)/$(PROGRAM_PREFIX)bootchart$(PROGRAM_SUFFIX)-collector + +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb b/external/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb index 396d0ec0..a938b2da 100644 --- a/external/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb +++ b/external/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb @@ -93,6 +93,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.\d+(\.\d+)*)" SRC_URI = "git://github.com/xrmx/bootchart.git \ file://bootchartd_stop.sh \ file://0001-collector-Allocate-space-on-heap-for-chunks.patch \ + file://0001-bootchart2-support-usrmerge.patch \ " S = "${WORKDIR}/git" @@ -114,6 +115,8 @@ UPDATERCPN = "bootchartd-stop-initscript" INITSCRIPT_NAME = "bootchartd_stop.sh" INITSCRIPT_PARAMS = "start 99 2 3 4 5 ." +EXTRA_OEMAKE = 'BASE_SBINDIR="${base_sbindir}"' + do_compile_prepend () { export PY_LIBDIR="${libdir}/${PYTHON_DIR}" export BINDIR="${bindir}" @@ -126,6 +129,8 @@ do_install () { export BINDIR="${bindir}" export DESTDIR="${D}" export LIBDIR="${base_libdir}" + export PKGLIBDIR="${base_libdir}/bootchart" + export SYSTEMD_UNIT_DIR="${systemd_unitdir}/system" oe_runmake install install -d ${D}${sysconfdir}/init.d @@ -141,7 +146,7 @@ PACKAGES =+ "pybootchartgui" FILES_pybootchartgui += "${PYTHON_SITEPACKAGES_DIR}/pybootchartgui ${bindir}/pybootchartgui" RDEPENDS_pybootchartgui = "python3-pycairo python3-compression python3-image python3-shell python3-compression python3-codecs" RDEPENDS_${PN}_class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}" -RDEPENDS_${PN}_class-target += "lsb" +RDEPENDS_${PN}_class-target += "lsb-release" DEPENDS_append_class-native = " python3-pycairo-native" PACKAGES =+ "bootchartd-stop-initscript" diff --git a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch b/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch deleted file mode 100644 index a8fcfc0f..00000000 --- a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch +++ /dev/null @@ -1,35 +0,0 @@ -From eecc48ecad359cd4fab650ce49cfe57e99d1859d Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Thu, 17 May 2018 12:21:31 +0300 -Subject: [PATCH] Add LDFLAGS when building libbtrfsutil.so and python - bindings. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin - ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 10f0e3b0..1697794c 100644 ---- a/Makefile -+++ b/Makefile -@@ -402,7 +402,7 @@ libbtrfsutil/%.o: libbtrfsutil/%.c - - libbtrfsutil.so.$(libbtrfsutil_version): $(libbtrfsutil_objects) - @echo " [LD] $@" -- $(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(libbtrfsutil_objects) \ -+ $(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(LDFLAGS) $(libbtrfsutil_objects) \ - -shared -Wl,-soname,libbtrfsutil.so.$(libbtrfsutil_major) -o $@ - - libbtrfsutil.a: $(libbtrfsutil_objects) -@@ -417,7 +417,7 @@ ifeq ($(PYTHON_BINDINGS),1) - libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h - @echo " [PY] libbtrfsutil" - $(Q)cd libbtrfsutil/python; \ -- CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build -+ CFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build - - .PHONY: libbtrfsutil_python - endif diff --git a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Makefile-build-mktables-using-native-gcc.patch b/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Makefile-build-mktables-using-native-gcc.patch deleted file mode 100644 index 467de327..00000000 --- a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Makefile-build-mktables-using-native-gcc.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e58369f6d36bc51eb59d6afa34c1cae3ff0810ef Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 7 Aug 2017 14:10:38 +0300 -Subject: [PATCH] Makefile: build mktables using native gcc - -It's a throwaway helper binary used during build, and so it needs to -be native. - -Upstream-Status: Inappropriate [oe specific] -Signed-off-by: Alexander Kanavin ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: git/Makefile -=================================================================== ---- git.orig/Makefile -+++ git/Makefile -@@ -343,7 +343,7 @@ version.h: version.sh version.h.in confi - - mktables: kernel-lib/mktables.c - @echo " [CC] $@" -- $(Q)$(CC) $(CFLAGS) $< -o $@ -+ $(Q)$(BUILD_CC) $(BUILD_CFLAGS) $< -o $@ - - # the target can be regenerated manually using mktables, but a local copy is - # kept so the build process is simpler diff --git a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.17.1.bb b/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.17.1.bb deleted file mode 100644 index 6b53fbcd..00000000 --- a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.17.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Checksumming Copy on Write Filesystem utilities" -DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ -implementing advanced features while focusing on fault tolerance, repair and \ -easy administration. \ -This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ -btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." - -HOMEPAGE = "https://btrfs.wiki.kernel.org" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" -SECTION = "base" -DEPENDS = "util-linux attr e2fsprogs lzo acl python3-setuptools-native" -DEPENDS_append_class-target = " udev" -RDEPENDS_${PN} = "libgcc" - -SRCREV = "7faaca0d9f78f7162ae603231f693dd8e1af2a41" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ - file://0001-Makefile-build-mktables-using-native-gcc.patch \ - file://0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch \ - file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ - " - -inherit autotools-brokensep pkgconfig manpages distutils3-base - -CLEANBROKEN = "1" - -PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" -EXTRA_OECONF = " --disable-zstd" -EXTRA_OECONF_append_libc-musl = " --disable-backtrace " - -do_configure_prepend() { - # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. - mkdir -p ${S}/config - cp -f $(automake --print-libdir)/install-sh ${S}/config/ -} - -S = "${WORKDIR}/git" - -do_install_append() { - oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python -} - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb b/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb new file mode 100644 index 00000000..cdc971cf --- /dev/null +++ b/external/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.4.1.bb @@ -0,0 +1,52 @@ +SUMMARY = "Checksumming Copy on Write Filesystem utilities" +DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ +implementing advanced features while focusing on fault tolerance, repair and \ +easy administration. \ +This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ +btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." + +HOMEPAGE = "https://btrfs.wiki.kernel.org" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" +SECTION = "base" +DEPENDS = "util-linux attr e2fsprogs lzo acl" +DEPENDS_append_class-target = " udev" +RDEPENDS_${PN} = "libgcc" + +SRCREV = "3fc2326d3474a5e4df2449f5e3043f7298501334" +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 \ + " + +PACKAGECONFIG ??= "python" +PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" +PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" + +inherit autotools-brokensep pkgconfig manpages +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'distutils3-base', '', d)} + +CLEANBROKEN = "1" + +EXTRA_OECONF_append_libc-musl = " --disable-backtrace " +EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}" +EXTRA_PYTHON_CFLAGS_class-native = "" +EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}" +EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'" + +do_configure_prepend() { + # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. + mkdir -p ${S}/config + cp -f $(automake --print-libdir)/install-sh ${S}/config/ +} + +S = "${WORKDIR}/git" + +do_install_append() { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then + oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python + fi +} + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/build-compare/build-compare_git.bb b/external/poky/meta/recipes-devtools/build-compare/build-compare_git.bb index efcf6b6d..b0560cc2 100644 --- a/external/poky/meta/recipes-devtools/build-compare/build-compare_git.bb +++ b/external/poky/meta/recipes-devtools/build-compare/build-compare_git.bb @@ -6,22 +6,14 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" SRC_URI = "git://github.com/openSUSE/build-compare.git \ - file://Rename-rpm-check.sh-to-pkg-diff.sh.patch;striplevel=1 \ file://Ignore-DWARF-sections.patch;striplevel=1 \ - file://0001-Add-support-for-deb-and-ipk-packaging.patch \ - file://functions.sh-remove-space-at-head.patch \ - file://functions.sh-run-rpm-once-to-make-it-faster.patch \ - file://pkg-diff.sh-check-for-fifo-named-pipe.patch \ - file://pkg-diff.sh-check_single_file-return-at-once-when-sa.patch \ - file://pkg-diff.sh-remove-space-in-the-end-for-ftype.patch \ - file://functions.sh-improve-deb-and-ipk-checking.patch \ " # Date matches entry in build-compare.changes and date of SRCREV. # -SRCREV = "c5352c054c6ef15735da31b76d6d88620f4aff0a" +SRCREV = "4dfa207660776cae120afa4353aec7f1f2a998d2" PE = "1" -PV = "2015.02.10+git${SRCPV}" +PV = "2019.08.14+git${SRCPV}" UPSTREAM_CHECK_COMMITS = "1" S = "${WORKDIR}/git" diff --git a/external/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch b/external/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch deleted file mode 100644 index 82fd8169..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 02dbc7e3478e409d6f5e3e1c53daddf8838be999 Mon Sep 17 00:00:00 2001 -From: Paul Eggleton -Date: Tue, 1 Sep 2015 12:04:33 +0100 -Subject: [PATCH] Add support for deb and ipk packaging - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Paul Eggleton ---- - functions.sh | 15 +++++++++++++++ - pkg-diff.sh | 6 ++++++ - 2 files changed, 21 insertions(+) - -diff --git a/functions.sh b/functions.sh -index 06079df..85c9003 100644 ---- a/functions.sh -+++ b/functions.sh -@@ -85,6 +85,13 @@ function unpackage() - CPIO_OPTS="--extract --unconditional --preserve-modification-time --make-directories --quiet" - rpm2cpio $file | cpio ${CPIO_OPTS} - ;; -+ *.ipk|*.deb) -+ ar x $file -+ tar xf control.tar.gz -+ rm control.tar.gz -+ tar xf data.tar.gz -+ rm data.tar.gz -+ ;; - esac - popd 1>/dev/null - } -@@ -255,4 +262,12 @@ function cmp_spec () - rm $file1 $file2 - return $RES - } -+ -+function adjust_controlfile() { -+ cat $1/control | sed '/^Version: /d' > $1/control.fixed -+ mv $1/control.fixed $1/control -+ cat $2/control | sed '/^Version: /d' > $2/control.fixed -+ mv $2/control.fixed $2/control -+} -+ - # vim: tw=666 ts=2 et -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 0f1fa76..3cf10aa 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -138,6 +138,12 @@ echo "Extracting packages" - unpackage $oldpkg $dir/old - unpackage $newpkg $dir/new - -+case $oldpkg in -+ *.deb|*.ipk) -+ adjust_controlfile $dir/old $dir/new -+ ;; -+esac -+ - # files is set in cmp_spec for rpms, so if RES is empty we should assume - # it wasn't an rpm and pick all files for comparison. - if [ -z $RES ]; then --- -2.1.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch b/external/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch index 7dda1acb..2fb62ae8 100644 --- a/external/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch +++ b/external/poky/meta/recipes-devtools/build-compare/files/Ignore-DWARF-sections.patch @@ -23,18 +23,15 @@ Signed-off-by: Randy Witt 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg-diff.sh b/pkg-diff.sh -index 56035c1..0f1fa76 100755 +index 9c2125e..b0d77c8 100755 --- a/pkg-diff.sh +++ b/pkg-diff.sh -@@ -658,7 +658,7 @@ check_single_file() +@@ -851,7 +851,7 @@ check_single_file() echo "" >$file1 echo "" >$file2 - # Don't compare .build-id and .gnu_debuglink sections -- sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | 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 "\.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" " ")" + # 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 --- -1.9.3 - + $OBJDUMP -s -j $section old/$file | sed "s,^old/,," > $file1 + $OBJDUMP -s -j $section new/$file | sed "s,^new/,," > $file2 diff --git a/external/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch b/external/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch deleted file mode 100644 index cff3a9e2..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/Rename-rpm-check.sh-to-pkg-diff.sh.patch +++ /dev/null @@ -1,1599 +0,0 @@ -From 4de3df5a1b361cd09a081f0e0bdb94cbf684ed48 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 19 Feb 2015 00:34:47 -0800 -Subject: [PATCH] Rename rpm-check.sh to pkg-diff.sh. - -The tool now accepts package input other than rpm, so change the name -which could be misleading. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pulls] - -Signed-off-by: Randy Witt - -Updated for rpm-check.sh. - -Signed-off-by: Robert Yang ---- - build-compare.spec | 2 +- - pkg-diff.sh | 765 ++++++++++++++++++++++++++++++++++++++++++++++++++ - rpm-check.sh | 764 ------------------------------------------------- - same-build-result.sh | 4 +- - 4 files changed, 768 insertions(+), 767 deletions(-) - create mode 100644 pkg-diff.sh - delete mode 100755 rpm-check.sh - -diff --git a/build-compare.spec b/build-compare.spec -index 14a97e9..5f47ca1 100644 ---- a/build-compare.spec -+++ b/build-compare.spec -@@ -25,7 +25,7 @@ Version: 2015.02.10 - Release: 0 - Source1: COPYING - Source2: same-build-result.sh --Source3: rpm-check.sh -+Source3: pkg-diff.sh - Source4: functions.sh - Source5: srpm-check.sh - BuildRoot: %{_tmppath}/%{name}-%{version}-build -diff --git a/pkg-diff.sh b/pkg-diff.sh -new file mode 100644 -index 0000000..56035c1 ---- /dev/null -+++ b/pkg-diff.sh -@@ -0,0 +1,765 @@ -+#! /bin/bash -+# -+# Copyright (c) 2009, 2010, 2011, 2012 SUSE Linux Product GmbH, Germany. -+# Licensed under GPL v2, see COPYING file for details. -+# -+# Written by Michael Matz and Stephan Coolo -+# Enhanced by Andreas Jaeger -+ -+FUNCTIONS=${0%/*}/functions.sh -+ -+check_all= -+case $1 in -+ -a | --check-all) -+ check_all=1 -+ shift -+esac -+ -+if test "$#" != 2; then -+ echo "usage: $0 [-a|--check-all] old.rpm new.rpm" -+ exit 1 -+fi -+ -+self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0)) -+ -+source $FUNCTIONS -+ -+oldpkg=`readlink -f $1` -+newpkg=`readlink -f $2` -+rename_script=`mktemp` -+ -+if test ! -f "$oldpkg"; then -+ echo "can't open $1" -+ exit 1 -+fi -+ -+if test ! -f "$newpkg"; then -+ echo "can't open $2" -+ exit 1 -+fi -+ -+#usage unjar -+function unjar() -+{ -+ local file -+ file=$1 -+ -+ if [[ $(type -p fastjar) ]]; then -+ UNJAR=fastjar -+ elif [[ $(type -p jar) ]]; then -+ UNJAR=jar -+ elif [[ $(type -p unzip) ]]; then -+ UNJAR=unzip -+ else -+ echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -+ exit 1 -+ fi -+ -+ case $UNJAR in -+ jar|fastjar) -+ # echo jar -xf $file -+ ${UNJAR} -xf $file -+ ;; -+ unzip) -+ unzip -oqq $file -+ ;; -+ esac -+} -+ -+# list files in directory -+#usage unjar_l -+function unjar_l() -+{ -+ local file -+ file=$1 -+ -+ if [[ $(type -p fastjar) ]]; then -+ UNJAR=fastjar -+ elif [[ $(type -p jar) ]]; then -+ UNJAR=jar -+ elif [[ $(type -p unzip) ]]; then -+ UNJAR=unzip -+ else -+ echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -+ exit 1 -+ fi -+ -+ case $UNJAR in -+ jar|fastjar) -+ ${UNJAR} -tf $file -+ ;; -+ unzip) -+ unzip -l $file -+ ;; -+ esac -+} -+ -+filter_disasm() -+{ -+ sed -e 's/^ *[0-9a-f]\+://' -e 's/\$0x[0-9a-f]\+/$something/' -e 's/callq *[0-9a-f]\+/callq /' -e 's/# *[0-9a-f]\+/# /' -e 's/\(0x\)\?[0-9a-f]\+(/offset(/' -e 's/[0-9a-f]\+ :/\1:/' -e 's/<\(.*\)+0x[0-9a-f]\+>/<\1 + ofs>/' -+} -+ -+echo "Comparing `basename $oldpkg` to `basename $newpkg`" -+ -+case $oldpkg in -+ *.rpm) -+ cmp_spec $rename_script $oldpkg $newpkg -+ RES=$? -+ case $RES in -+ 0) -+ echo "RPM meta information is identical" -+ if test -z "$check_all"; then -+ exit 0 -+ fi -+ ;; -+ 1) -+ echo "RPM meta information is different" -+ if test -z "$check_all"; then -+ exit 1 -+ fi -+ ;; -+ 2) -+ echo "RPM file checksum differs." -+ RES=0 -+ ;; -+ *) -+ echo "Wrong exit code!" -+ exit 1 -+ ;; -+ esac -+ ;; -+esac -+ -+file1=`mktemp` -+file2=`mktemp` -+ -+dir=`mktemp -d` -+echo "Extracting packages" -+unpackage $oldpkg $dir/old -+unpackage $newpkg $dir/new -+ -+# files is set in cmp_spec for rpms, so if RES is empty we should assume -+# it wasn't an rpm and pick all files for comparison. -+if [ -z $RES ]; then -+ oldfiles=`cd $dir/old; find . -type f` -+ newfiles=`cd $dir/new; find . -type f` -+ -+ files=`echo -e "$oldfiles\n$newfiles" | sort -u` -+fi -+ -+cd $dir -+bash $rename_script -+ -+dfile=`mktemp` -+ -+diff_two_files() -+{ -+ if ! cmp -s old/$file new/$file; then -+ echo "$file differs ($ftype)" -+ hexdump -C old/$file > $file1 -+ hexdump -C new/$file > $file2 -+ diff -u $file1 $file2 | head -n 200 -+ return 1 -+ fi -+ return 0 -+} -+ -+trim_man_first_line() -+{ -+ # Handles the first line if it is like: -+ #.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) -+ #.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.43.3. -+ local f=$1 -+ sed -i -e '1{ -+ s|^\.\\"[[:blank:]]\+Automatically[[:blank:]]generated[[:blank:]]by[[:blank:]]Pod::Man[[:blank:]].*|.\\" Overly verbose Pod::Man| -+ s|^\.\\"[[:blank:]]\+DO[[:blank:]]NOT[[:blank:]]MODIFY[[:blank:]]THIS[[:blank:]]FILE![[:blank:]]\+It[[:blank:]]was[[:blank:]]generated[[:blank:]]by[[:blank:]]help2man[[:blank:]].*|.\\" Overly verbose help2man| -+ }' $f -+} -+ -+trim_man_TH() -+{ -+ # Handles lines like: -+ # .TH debhelper 7 "2010-02-27" "7.4.15" "Debhelper" -+ # .TH DIRMNGR-CLIENT 1 2010-02-27 "Dirmngr 1.0.3" "GNU Privacy Guard" -+ # .TH ccmake 1 "March 06, 2010" "ccmake 2.8.1-rc3" -+ # .TH QEMU-IMG 1 "2010-03-14" " " " " -+ # .TH kdecmake 1 "May 07, 2010" "cmake 2.8.1" -+ # .TH "appender.h" 3 "12 May 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH "OFFLINEIMAP" "1" "11 May 2010" "John Goerzen" "OfflineIMAP Manual" -+ # .TH gv 3guile "13 May 2010" -+ #.TH "GIT\-ARCHIMPORT" "1" "09/13/2010" "Git 1\&.7\&.1" "Git Manual" -+ # .TH LDIRECTORD 8 "2010-10-20" "perl v5.12.2" "User Contributed Perl Documentation" -+ # .TH ccmake 1 "February 05, 2012" "ccmake 2.8.7" -+ # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -+ # .TH ARCH "1" "September 2010" "GNU coreutils 8.5" "User Commands" -+ # .TH "GCM-CALIBRATE" "1" "03 February 2012" "" "" -+ #.TH Locale::Po4a::Xml.pm 3pm "2015-01-30" "Po4a Tools" "Po4a Tools" -+ local f=$1 -+ # (.TH quoted section) (quoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "qq2000-01-01"\3|' $f -+ # (.TH unquoted section) (quoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "uq2000-02-02"\3|' $f -+ # (.TH quoted section) (unquoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 qu2000-03-03\3|' $f -+ # (.TH unquoted section) (unquoted_date)(*) -+ sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 uu2000-04-04\3|' $f -+} -+ -+strip_numbered_anchors() -+{ -+ # Remove numbered anchors on Docbook / HTML files. -+ # This should be save since we remove them from old and new files. -+ # A trailing or tag will stay also on both files. -+ for f in old/$file new/$file; do -+ sed -i -e 's%<[ ]*a[ ]\+name[^<]*[0-9]\+[^<]*%%g' \ -+ -e 's%<[ ]*a[ ]\+href[^<]*#[^<]*[0-9]\+[^<]*%%g' \ -+ -e 's%<[^<]*id="ftn\.[^<]*[0-9]\+[^<]*%%g' $f -+ done -+} -+ -+ -+check_compressed_file() -+{ -+ local file=$1 -+ local ext=$2 -+ local tmpdir=`mktemp -d` -+ local ftype -+ local ret=0 -+ echo "$ext file with odd filename: $file" -+ if test -n "$tmpdir"; then -+ mkdir $tmpdir/{old,new} -+ cp --parents --dereference old/$file $tmpdir/ -+ cp --parents --dereference new/$file $tmpdir/ -+ if pushd $tmpdir > /dev/null ; then -+ case "$ext" in -+ bz2) -+ mv old/$file{,.bz2} -+ mv new/$file{,.bz2} -+ bzip2 -d old/$file.bz2 -+ bzip2 -d new/$file.bz2 -+ ;; -+ gzip) -+ mv old/$file{,.gz} -+ mv new/$file{,.gz} -+ gzip -d old/$file.gz -+ gzip -d new/$file.gz -+ ;; -+ xz) -+ mv old/$file{,.xz} -+ mv new/$file{,.xz} -+ xz -d old/$file.xz -+ xz -d new/$file.xz -+ ;; -+ esac -+ ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ case $ftype in -+ POSIX\ tar\ archive) -+ echo "$ext content is: $ftype" -+ mv old/$file{,.tar} -+ mv new/$file{,.tar} -+ if ! check_single_file ${file}.tar; then -+ ret=1 -+ fi -+ ;; -+ ASCII\ cpio\ archive\ *) -+ echo "$ext content is: $ftype" -+ mv old/$file{,.cpio} -+ mv new/$file{,.cpio} -+ if ! check_single_file ${file}.cpio; then -+ ret=1 -+ fi -+ ;; -+ *) -+ echo "unhandled $ext content: $ftype" -+ if ! diff_two_files; then -+ ret=1 -+ fi -+ ;; -+ esac -+ popd > /dev/null -+ fi -+ rm -rf "$tmpdir" -+ fi -+ return $ret -+} -+ -+check_single_file() -+{ -+ local file="$1" -+ case $file in -+ *.spec) -+ sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file -+ sed -i -e "s,Release:.*$release2,Release: @RELEASE@," new/$file -+ ;; -+ *.exe.mdb|*.dll.mdb) -+ # Just debug information, we can skip them -+ echo "$file skipped as debug file." -+ return 0 -+ ;; -+ *.a) -+ flist=`ar t new/$file` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ ar x `basename $file` -+ cd $pwd/new/$fdir -+ ar x `basename $file` -+ cd $pwd -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ return 1 -+ fi -+ done -+ return 0 -+ ;; -+ *.cpio) -+ flist=`cpio --quiet --list --force-local < "new/$file"` -+ pwd=$PWD -+ fdir=$file.extract.$PPID.$$ -+ mkdir old/$fdir new/$fdir -+ cd old/$fdir -+ cpio --quiet --extract --force-local < "../${file##*/}" -+ cd $pwd/new/$fdir -+ cpio --quiet --extract --force-local < "../${file##*/}" -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ rm -rf old/$fdir new/$fdir -+ return $ret -+ ;; -+ *.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2) -+ flist=`tar tf new/$file` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ tar xf `basename $file` -+ cd $pwd/new/$fdir -+ tar xf `basename $file` -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ return $ret -+ ;; -+ *.zip|*.jar|*.war) -+ cd old -+ unjar_l ./$file |sort > flist -+ # 10-05-2010 14:39 -+ sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ," flist -+ # 2012-02-03 07:59 -+ sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -+ cd ../new -+ unjar_l ./$file |sort> flist -+ sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ,; " flist -+ sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -+ cd .. -+ if ! cmp -s old/flist new/flist; then -+ echo "$file has different file list" -+ diff -u old/flist new/flist -+ return 1 -+ fi -+ flist=`grep date new/flist | sed -e 's,.* date ,,'` -+ pwd=$PWD -+ fdir=`dirname $file` -+ cd old/$fdir -+ unjar `basename $file` -+ cd $pwd/new/$fdir -+ unjar `basename $file` -+ cd $pwd -+ local ret=0 -+ for f in $flist; do -+ if test -f new/$fdir/$f && ! check_single_file $fdir/$f; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+ done -+ return $ret;; -+ *.pyc|*.pyo) -+ perl -e "open fh, '+<', 'old/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -+ perl -e "open fh, '+<', 'new/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -+ ;; -+ *.bz2) -+ bunzip2 -c old/$file > old/${file/.bz2/} -+ bunzip2 -c new/$file > new/${file/.bz2/} -+ check_single_file ${file/.bz2/} -+ return $? -+ ;; -+ *.gz) -+ gunzip -c old/$file > old/${file/.gz/} -+ gunzip -c new/$file > new/${file/.gz/} -+ check_single_file ${file/.gz/} -+ return $? -+ ;; -+ *.rpm) -+ $self_script -a old/$file new/$file -+ return $? -+ ;; -+ *png) -+ # Try to remove timestamps, only if convert from ImageMagick is installed -+ if [[ $(type -p convert) ]]; then -+ convert old/$file +set date:create +set date:modify old/${file/.png/_n.png} -+ convert old/$file +set date:create +set date:modify new/${file/.png/_n.png} -+ if ! cmp -s old/${file/.png/_n.png} new/${file/.png/_n.png}; then -+ echo "$file differs ($ftype)" -+ hexdump -C old/${file/.png/_n.png} > $file1 -+ hexdump -C new/${file/.png/_n.png} > $file2 -+ diff -u $file1 $file2 | head -n 20 -+ return 1 -+ fi -+ return 0 -+ fi -+ ;; -+ /usr/share/locale/*/LC_MESSAGES/*.mo|/usr/share/locale-bundle/*/LC_MESSAGES/*.mo) -+ for f in old/$file new/$file; do -+ sed -i -e "s,POT-Creation-Date: ....-..-.. ..:..+....,POT-Creation-Date: 1970-01-01 00:00+0000," $f -+ done -+ ;; -+ /usr/share/doc/packages/*/*.html|\ -+ /usr/share/doc/kde/HTML/*/*/*.html|/usr/share/doc/*/html/*.html) -+ for f in old/$file new/$file; do -+ # texi2html output, e.g. in kvm, indent, qemu -+ sed -i -e "s|^ -+ # -+ # -+ # -+ sed -i -e ' -+ /^/{ -+ : next -+ n -+ /^<\/head>/{ -+ b end_head -+ } -+ s/^\(\)/\1 some-date-removed-by-build-compare \5/ -+ t next -+ s/^\(\)/\1 some-date-removed-by-build-compare \3/ -+ t next -+ s/^// -+ b next -+ } -+ : end_head -+ ' $f -+ # Gjdoc HtmlDoclet: -+ sed -i -e 's%Generated by Gjdoc HtmlDoclet [0-9,.]*, part of GNU Classpath Tools, on .*, 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.%Generated by Gjdoc.%' $f -+ sed -i -e 's%, on [A-Z][a-z]* [0-9]*, 20?? [0-9]*:??:?? \(a|p\)\.m\. GMT.

%, on January 1, 2009 0:00:00 a.m. GMT.

%' $f -+ sed -i -e 's%\), on [a-zA-Z]* [0-9][0-9], 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.

%%' $f -+ # deprecated-list is randomly ordered, sort it for comparison -+ case $f in -+ */deprecated-list.html) -+ sort -o $f $f -+ ;; -+ esac -+ done -+ ;; -+ /usr/share/javadoc/gjdoc.properties |\ -+ /usr/share/javadoc/*/gjdoc.properties) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^#[A-Z][a-z]\{2\} [A-Z][a-z]\{2\} [0-9]\{2\} ..:..:.. GMT 20..$|#Fri Jan 01 11:27:36 GMT 2009|' $f -+ done -+ ;; -+ */fonts.scale|*/fonts.dir|*/encodings.dir) -+ for f in old/$file new/$file; do -+ # sort files before comparing -+ sort -o $f $f -+ done -+ ;; -+ /var/adm/perl-modules/*) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^=head2 ... ... .. ..:..:.. ....: C|=head2 Wed Jul 1 00:00:00 2009: C|' $f -+ done -+ ;; -+ /usr/share/man/man3/*3pm) -+ for f in old/$file new/$file; do -+ sed -i -e 's| 3 "20..-..-.." "perl v5....." "User Contributed Perl Documentation"$| 3 "2009-01-01" "perl v5.10.0" "User Contributed Perl Documentation"|' $f -+ trim_man_TH $f -+ trim_man_first_line $f -+ done -+ ;; -+ /usr/share/man/*/man*|/usr/share/man/man*|/usr/lib/texmf/doc/man/*/*) -+ -+ for f in old/$file new/$file; do -+ trim_man_TH $f -+ trim_man_first_line $f -+ # generated by docbook xml: -+ #.\" Date: 09/13/2010 -+ sed -i -e 's|Date: [0-1][0-9]/[0-9][0-9]/201[0-9]|Date: 09/13/2010|' $f -+ done -+ ;; -+ *.elc) -+ # emacs lisp files -+ for f in old/$file new/$file; do -+ sed -i -e 's|Compiled by abuild@.* on ... ... .. ..:..:.. 20..$|compiled by abuild@buildhost on Wed Jul 01 00:00:00 2009|' $f -+ done -+ ;; -+ /var/lib/texmf/web2c/*/*fmt |\ -+ /var/lib/texmf/web2c/metafont/*.base|\ -+ /var/lib/texmf/web2c/metapost/*.mem) -+ # binary dump of TeX and Metafont formats, we can ignore them for good -+ echo "difference in $file ignored." -+ return 0 -+ ;; -+ */libtool) -+ for f in old/$file new/$file; do -+ sed -i -e 's|^# Libtool was configured on host [A-Za-z0-9]*:$|# Libtool was configured on host x42:|' $f -+ done -+ ;; -+ /etc/mail/*cf|/etc/sendmail.cf) -+ # from sendmail package -+ for f in old/$file new/$file; do -+ # - ##### built by abuild@build33 on Thu May 6 11:21:17 UTC 2010 -+ sed -i -e 's|built by abuild@[a-z0-9]* on ... ... [0-9]* [0-9]*:[0-9][0-9]:[0-9][0-9] .* 20[0-9][0-9]|built by abuild@build42 on Thu May 6 11:21:17 UTC 2010|' $f -+ done -+ ;; -+ /usr/share/doc/kde/HTML/*/*/index.cache|/usr/share/doc/kde/HTML/*/*/*/index.cache|\ -+ /usr/share/gtk-doc/html/*/*.html|/usr/share/gtk-doc/html/*/*.devhelp2) -+ # various kde and gtk packages -+ strip_numbered_anchors -+ ;; -+ */created.rid) -+ # ruby documentation -+ # file just contains a timestamp and nothing else, so ignore it -+ echo "Ignore $file" -+ return 0 -+ ;; -+ */rdoc/files/*.html) -+ # ruby documentation -+ # Mon Sep 20 19:02:43 +0000 2010 -+ for f in old/$file new/$file; do -+ sed -i -e 's%[A-Z][a-z][a-z] [A-Z][a-z][a-z] [0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+ +0000 201[0-9]%Mon Sep 20 19:02:43 +0000 2010%g' $f -+ done -+ strip_numbered_anchors -+ ;; -+ */Linux*Env.Set.sh) -+ # LibreOffice files, contains: -+ # Generated on: Mon Apr 18 13:19:22 UTC 2011 -+ for f in old/$file new/$file; do -+ sed -i -e 's%^# Generated on:.*UTC 201[0-9] *$%# Generated on: Sometime%g' $f -+ done -+ ;; -+ /usr/lib/libreoffice/solver/inc/*/deliver.log) -+ # LibreOffice log file -+ echo "Ignore $file" -+ return 0 -+ ;; -+ /var/adm/update-messages/*|/var/adm/update-scripts/*) -+ # encode version-release inside -+ oldfn=`echo "$file"|sed -e s/-$release2/-$release1/;` -+ -+ # fetchmsttfonts embeds the release number in the update shell script. -+ echo sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -+ sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -+ -+ if ! diff -u old/$oldfn new/$file; then -+ echo "$oldfn is not same as $file" -+ return 1 -+ fi -+ echo "$file and $oldfn are same" -+ return 0 -+ ;; -+ *.ps) -+ for f in "old/$file" "new/$file"; do -+ sed -i -e ' -+ /^%%CreationDate:[[:blank:]]/d -+ /^%%Creator:[[:blank:]]groff[[:blank:]]version[[:blank:]]/d -+ /^%DVIPSSource:[[:blank:]]/d -+ ' "$f" -+ done -+ ;; -+ *pdf) -+ # PDF files contain a unique ID, remove it -+ # Format of the ID is: -+ # /ID [<9ACE247A70CF9BEAFEE15E116259BD6D> <9ACE247A70CF9BEAFEE15E116259BD6D>] -+ # with optional spaces. pdftex creates also: -+ # /CreationDate (D:20120103083206Z) -+ # /ModDate (D:20120103083206Z) -+ # and possibly XML metadata as well -+ for f in "old/$file" "new/$file"; do -+ sed -i \ -+ '/obj/,/endobj/{ -+ s%/ID \?\[ \?<[^>]\+> \?<[^>]\+> \?\]%/IDrandom%g; -+ s%/CreationDate \?(D:[^)]*)%/CreationDate (D: XXX)%g; -+ s%/ModDate \?(D:[^)]*)%/ModDate (D: XXX)%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ s%[^<]*%XXX%g; -+ }' "$f" -+ done -+ ;; -+ esac -+ -+ ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ case $ftype in -+ PE32\ executable*Mono\/\.Net\ assembly*) -+ echo "PE32 Mono/.Net assembly: $file" -+ if [ -x /usr/bin/monodis ] ; then -+ monodis old/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file1} -+ monodis new/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file2} -+ if ! cmp -s ${file1} ${file2}; then -+ echo "$file differs ($ftype)" -+ diff -u ${file1} ${file2} -+ return 1 -+ fi -+ else -+ echo "Cannot compare, no monodis installed" -+ return 1 -+ fi -+ ;; -+ ELF*executable*|ELF*[LM]SB\ shared\ object*) -+ objdump -d --no-show-raw-insn old/$file | filter_disasm > $file1 -+ if ! test -s $file1; then -+ # objdump has no idea how to handle it -+ if ! diff_two_files; then -+ ret=1 -+ break -+ fi -+ fi -+ elfdiff= -+ sed -i -e "s,old/,," $file1 -+ objdump -d --no-show-raw-insn new/$file | filter_disasm > $file2 -+ sed -i -e "s,new/,," $file2 -+ if ! diff -u $file1 $file2 > $dfile; then -+ echo "$file differs in assembler output" -+ head -n 200 $dfile -+ elfdiff="1" -+ fi -+ echo "" >$file1 -+ echo "" >$file2 -+ # Don't compare .build-id and .gnu_debuglink sections -+ sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | 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 -+ if ! diff -u $file1 $file2 > $dfile; then -+ echo "$file differs in ELF section $section" -+ head -n 200 $dfile -+ elfdiff="1" -+ fi -+ done -+ if test -z "$elfdiff"; then -+ echo "$file: only difference was in build-id or gnu_debuglink, GOOD." -+ return 0 -+ fi -+ return 1 -+ ;; -+ *ASCII*|*text*) -+ if ! cmp -s old/$file new/$file; then -+ echo "$file differs ($ftype)" -+ diff -u old/$file new/$file | head -n 200 -+ return 1 -+ fi -+ ;; -+ directory|setuid,\ directory|sticky,\ directory) -+ # tar might package directories - ignore them here -+ return 0 -+ ;; -+ bzip2\ compressed\ data*) -+ if ! check_compressed_file "$file" "bz2"; then -+ return 1 -+ fi -+ ;; -+ gzip\ compressed\ data*) -+ if ! check_compressed_file "$file" "gzip"; then -+ return 1 -+ fi -+ ;; -+ XZ\ compressed\ data*) -+ if ! check_compressed_file "$file" "xz"; then -+ return 1 -+ fi -+ ;; -+ POSIX\ tar\ archive) -+ mv old/$file{,.tar} -+ mv new/$file{,.tar} -+ if ! check_single_file ${file}.tar; then -+ return 1 -+ fi -+ ;; -+ cpio\ archive) -+ mv old/$file{,.cpio} -+ mv new/$file{,.cpio} -+ if ! check_single_file ${file}.cpio; then -+ return 1 -+ fi -+ ;; -+ symbolic\ link\ to\ *) -+ readlink "old/$file" > $file1 -+ readlink "new/$file" > $file2 -+ if ! diff -u $file1 $file2; then -+ echo "symlink target for $file differs" -+ return 1 -+ fi -+ ;; -+ *) -+ if ! diff_two_files; then -+ return 1 -+ fi -+ ;; -+ esac -+ return 0 -+} -+ -+# We need /proc mounted for some tests, so check that it's mounted and -+# complain if not. -+PROC_MOUNTED=0 -+if [ ! -d /proc/self/ ]; then -+ echo "/proc is not mounted" -+ mount -orw -n -tproc none /proc -+ PROC_MOUNTED=1 -+fi -+ -+# preserve cmp_spec result for check_all runs -+ret=$RES -+for file in $files; do -+ if ! check_single_file $file; then -+ ret=1 -+ if test -z "$check_all"; then -+ break -+ fi -+ fi -+done -+ -+if [ "$PROC_MOUNTED" -eq "1" ]; then -+ echo "Unmounting proc" -+ umount /proc -+fi -+ -+rm $file1 $file2 $dfile $rename_script -+rm -rf $dir -+if test "$ret" = 0; then -+ echo "Package content is identical" -+fi -+exit $ret -+# vim: tw=666 ts=2 et -diff --git a/rpm-check.sh b/rpm-check.sh -deleted file mode 100755 -index dd47642..0000000 ---- a/rpm-check.sh -+++ /dev/null -@@ -1,764 +0,0 @@ --#! /bin/bash --# --# Copyright (c) 2009, 2010, 2011, 2012 SUSE Linux Product GmbH, Germany. --# Licensed under GPL v2, see COPYING file for details. --# --# Written by Michael Matz and Stephan Coolo --# Enhanced by Andreas Jaeger -- --FUNCTIONS=${0%/*}/functions.sh -- --check_all= --case $1 in -- -a | --check-all) -- check_all=1 -- shift --esac -- --if test "$#" != 2; then -- echo "usage: $0 [-a|--check-all] old.rpm new.rpm" -- exit 1 --fi -- --self_script=$(cd $(dirname $0); echo $(pwd)/$(basename $0)) -- --source $FUNCTIONS -- --oldpkg=`readlink -f $1` --newpkg=`readlink -f $2` --rename_script=`mktemp` -- --if test ! -f "$oldpkg"; then -- echo "can't open $1" -- exit 1 --fi -- --if test ! -f "$newpkg"; then -- echo "can't open $2" -- exit 1 --fi -- --#usage unjar --function unjar() --{ -- local file -- file=$1 -- -- if [[ $(type -p fastjar) ]]; then -- UNJAR=fastjar -- elif [[ $(type -p jar) ]]; then -- UNJAR=jar -- elif [[ $(type -p unzip) ]]; then -- UNJAR=unzip -- else -- echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -- exit 1 -- fi -- -- case $UNJAR in -- jar|fastjar) -- # echo jar -xf $file -- ${UNJAR} -xf $file -- ;; -- unzip) -- unzip -oqq $file -- ;; -- esac --} -- --# list files in directory --#usage unjar_l --function unjar_l() --{ -- local file -- file=$1 -- -- if [[ $(type -p fastjar) ]]; then -- UNJAR=fastjar -- elif [[ $(type -p jar) ]]; then -- UNJAR=jar -- elif [[ $(type -p unzip) ]]; then -- UNJAR=unzip -- else -- echo "ERROR: jar, fastjar, or unzip is not installed (trying file $file)" -- exit 1 -- fi -- -- case $UNJAR in -- jar|fastjar) -- ${UNJAR} -tf $file -- ;; -- unzip) -- unzip -l $file -- ;; -- esac --} -- --filter_disasm() --{ -- sed -e 's/^ *[0-9a-f]\+://' -e 's/\$0x[0-9a-f]\+/$something/' -e 's/callq *[0-9a-f]\+/callq /' -e 's/# *[0-9a-f]\+/# /' -e 's/\(0x\)\?[0-9a-f]\+(/offset(/' -e 's/[0-9a-f]\+ :/\1:/' -e 's/<\(.*\)+0x[0-9a-f]\+>/<\1 + ofs>/' --} -- --echo "Comparing `basename $oldpkg` to `basename $newpkg`" -- --case $oldpkg in -- *.rpm) -- cmp_spec $rename_script $oldpkg $newpkg -- RES=$? -- case $RES in -- 0) -- echo "RPM meta information is identical" -- if test -z "$check_all"; then -- exit 0 -- fi -- ;; -- 1) -- echo "RPM meta information is different" -- if test -z "$check_all"; then -- exit 1 -- fi -- ;; -- 2) -- echo "RPM file checksum differs." -- RES=0 -- ;; -- *) -- echo "Wrong exit code!" -- exit 1 -- ;; -- esac -- ;; --esac -- --file1=`mktemp` --file2=`mktemp` -- --dir=`mktemp -d` --echo "Extracting packages" --unpackage $oldpkg $dir/old --unpackage $newpkg $dir/new -- --# files is set in cmp_spec for rpms, so if RES is empty we should assume --# it wasn't an rpm and pick all files for comparison. --if [ -z $RES ]; then -- oldfiles=`cd $dir/old; find . -type f` -- newfiles=`cd $dir/new; find . -type f` -- -- files=`echo -e "$oldfiles\n$newfiles" | sort -u` --fi -- --cd $dir --bash $rename_script -- --dfile=`mktemp` -- --diff_two_files() --{ -- if ! cmp -s old/$file new/$file; then -- echo "$file differs ($ftype)" -- hexdump -C old/$file > $file1 -- hexdump -C new/$file > $file2 -- diff -u $file1 $file2 | head -n 200 -- return 1 -- fi -- return 0 --} -- --trim_man_first_line() --{ -- # Handles the first line if it is like: -- #.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) -- #.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.43.3. -- local f=$1 -- sed -i -e '1{ -- s|^\.\\"[[:blank:]]\+Automatically[[:blank:]]generated[[:blank:]]by[[:blank:]]Pod::Man[[:blank:]].*|.\\" Overly verbose Pod::Man| -- s|^\.\\"[[:blank:]]\+DO[[:blank:]]NOT[[:blank:]]MODIFY[[:blank:]]THIS[[:blank:]]FILE![[:blank:]]\+It[[:blank:]]was[[:blank:]]generated[[:blank:]]by[[:blank:]]help2man[[:blank:]].*|.\\" Overly verbose help2man| -- }' $f --} -- --trim_man_TH() --{ -- # Handles lines like: -- # .TH debhelper 7 "2010-02-27" "7.4.15" "Debhelper" -- # .TH DIRMNGR-CLIENT 1 2010-02-27 "Dirmngr 1.0.3" "GNU Privacy Guard" -- # .TH ccmake 1 "March 06, 2010" "ccmake 2.8.1-rc3" -- # .TH QEMU-IMG 1 "2010-03-14" " " " " -- # .TH kdecmake 1 "May 07, 2010" "cmake 2.8.1" -- # .TH "appender.h" 3 "12 May 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH "OFFLINEIMAP" "1" "11 May 2010" "John Goerzen" "OfflineIMAP Manual" -- # .TH gv 3guile "13 May 2010" -- #.TH "GIT\-ARCHIMPORT" "1" "09/13/2010" "Git 1\&.7\&.1" "Git Manual" -- # .TH LDIRECTORD 8 "2010-10-20" "perl v5.12.2" "User Contributed Perl Documentation" -- # .TH ccmake 1 "February 05, 2012" "ccmake 2.8.7" -- # .TH "appender.h" 3 "Tue Aug 31 2010" "Version 1.2.1" "log4c" \" -*- nroff -*- -- # .TH ARCH "1" "September 2010" "GNU coreutils 8.5" "User Commands" -- # .TH "GCM-CALIBRATE" "1" "03 February 2012" "" "" -- #.TH Locale::Po4a::Xml.pm 3pm "2015-01-30" "Po4a Tools" "Po4a Tools" -- local f=$1 -- # (.TH quoted section) (quoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "qq2000-01-01"\3|' $f -- # (.TH unquoted section) (quoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\("[^"]\+"\)\([[:blank:]]\+.*\)\?|\1 "uq2000-02-02"\3|' $f -- # (.TH quoted section) (unquoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+"[^"]\+"[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 qu2000-03-03\3|' $f -- # (.TH unquoted section) (unquoted_date)(*) -- sed -i -e 's|^\([[:blank:]]*\.TH[[:blank:]]\+[^"][^[:blank:]]\+[[:blank:]]\+[^[:blank:]]\+\)[[:blank:]]\+\([^"][^[:blank:]]\+\)\([[:blank:]]\+.*\)\?|\1 uu2000-04-04\3|' $f --} -- --strip_numbered_anchors() --{ -- # Remove numbered anchors on Docbook / HTML files. -- # This should be save since we remove them from old and new files. -- # A trailing or tag will stay also on both files. -- for f in old/$file new/$file; do -- sed -i -e 's%<[ ]*a[ ]\+name[^<]*[0-9]\+[^<]*%%g' \ -- -e 's%<[ ]*a[ ]\+href[^<]*#[^<]*[0-9]\+[^<]*%%g' \ -- -e 's%<[^<]*id="ftn\.[^<]*[0-9]\+[^<]*%%g' $f -- done --} -- -- --check_compressed_file() --{ -- local file=$1 -- local ext=$2 -- local tmpdir=`mktemp -d` -- local ftype -- local ret=0 -- echo "$ext file with odd filename: $file" -- if test -n "$tmpdir"; then -- mkdir $tmpdir/{old,new} -- cp --parents --dereference old/$file $tmpdir/ -- cp --parents --dereference new/$file $tmpdir/ -- if pushd $tmpdir > /dev/null ; then -- case "$ext" in -- bz2) -- mv old/$file{,.bz2} -- mv new/$file{,.bz2} -- bzip2 -d old/$file.bz2 -- bzip2 -d new/$file.bz2 -- ;; -- gzip) -- mv old/$file{,.gz} -- mv new/$file{,.gz} -- gzip -d old/$file.gz -- gzip -d new/$file.gz -- ;; -- xz) -- mv old/$file{,.xz} -- mv new/$file{,.xz} -- xz -d old/$file.xz -- xz -d new/$file.xz -- ;; -- esac -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -- case $ftype in -- POSIX\ tar\ archive) -- echo "$ext content is: $ftype" -- mv old/$file{,.tar} -- mv new/$file{,.tar} -- if ! check_single_file ${file}.tar; then -- ret=1 -- fi -- ;; -- ASCII\ cpio\ archive\ *) -- echo "$ext content is: $ftype" -- mv old/$file{,.cpio} -- mv new/$file{,.cpio} -- if ! check_single_file ${file}.cpio; then -- ret=1 -- fi -- ;; -- *) -- echo "unhandled $ext content: $ftype" -- if ! diff_two_files; then -- ret=1 -- fi -- ;; -- esac -- popd > /dev/null -- fi -- rm -rf "$tmpdir" -- fi -- return $ret --} -- --check_single_file() --{ -- local file="$1" -- case $file in -- *.spec) -- sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file -- sed -i -e "s,Release:.*$release2,Release: @RELEASE@," new/$file -- ;; -- *.exe.mdb|*.dll.mdb) -- # Just debug information, we can skip them -- echo "$file skipped as debug file." -- return 0 -- ;; -- *.a) -- flist=`ar t new/$file` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- ar x `basename $file` -- cd $pwd/new/$fdir -- ar x `basename $file` -- cd $pwd -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- return 1 -- fi -- done -- return 0 -- ;; -- *.cpio) -- flist=`cpio --quiet --list --force-local < "new/$file"` -- pwd=$PWD -- fdir=$file.extract.$PPID.$$ -- mkdir old/$fdir new/$fdir -- cd old/$fdir -- cpio --quiet --extract --force-local < "../${file##*/}" -- cd $pwd/new/$fdir -- cpio --quiet --extract --force-local < "../${file##*/}" -- cd $pwd -- local ret=0 -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- rm -rf old/$fdir new/$fdir -- return $ret -- ;; -- *.tar|*.tar.bz2|*.tar.gz|*.tgz|*.tbz2) -- flist=`tar tf new/$file` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- tar xf `basename $file` -- cd $pwd/new/$fdir -- tar xf `basename $file` -- cd $pwd -- local ret=0 -- for f in $flist; do -- if ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- return $ret -- ;; -- *.zip|*.jar|*.war) -- cd old -- unjar_l ./$file |sort > flist -- # 10-05-2010 14:39 -- sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ," flist -- # 2012-02-03 07:59 -- sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -- cd ../new -- unjar_l ./$file |sort> flist -- sed -i -e "s, [0-9][0-9]-[0-9][0-9]-[0-9]\+ [0-9][0-9]:[0-9][0-9] , date ,; " flist -- sed -i -e "s, 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9] , date ," flist -- cd .. -- if ! cmp -s old/flist new/flist; then -- echo "$file has different file list" -- diff -u old/flist new/flist -- return 1 -- fi -- flist=`grep date new/flist | sed -e 's,.* date ,,'` -- pwd=$PWD -- fdir=`dirname $file` -- cd old/$fdir -- unjar `basename $file` -- cd $pwd/new/$fdir -- unjar `basename $file` -- cd $pwd -- local ret=0 -- for f in $flist; do -- if test -f new/$fdir/$f && ! check_single_file $fdir/$f; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi -- done -- return $ret;; -- *.pyc|*.pyo) -- perl -e "open fh, '+<', 'old/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -- perl -e "open fh, '+<', 'new/$file'; seek fh, 4, SEEK_SET; print fh '0000';" -- ;; -- *.bz2) -- bunzip2 -c old/$file > old/${file/.bz2/} -- bunzip2 -c new/$file > new/${file/.bz2/} -- check_single_file ${file/.bz2/} -- return $? -- ;; -- *.gz) -- gunzip -c old/$file > old/${file/.gz/} -- gunzip -c new/$file > new/${file/.gz/} -- check_single_file ${file/.gz/} -- return $? -- ;; -- *.rpm) -- $self_script -a old/$file new/$file -- return $? -- ;; -- *png) -- # Try to remove timestamps, only if convert from ImageMagick is installed -- if [[ $(type -p convert) ]]; then -- convert old/$file +set date:create +set date:modify old/${file/.png/_n.png} -- convert old/$file +set date:create +set date:modify new/${file/.png/_n.png} -- if ! cmp -s old/${file/.png/_n.png} new/${file/.png/_n.png}; then -- echo "$file differs ($ftype)" -- hexdump -C old/${file/.png/_n.png} > $file1 -- hexdump -C new/${file/.png/_n.png} > $file2 -- diff -u $file1 $file2 | head -n 20 -- return 1 -- fi -- return 0 -- fi -- ;; -- /usr/share/locale/*/LC_MESSAGES/*.mo|/usr/share/locale-bundle/*/LC_MESSAGES/*.mo) -- for f in old/$file new/$file; do -- sed -i -e "s,POT-Creation-Date: ....-..-.. ..:..+....,POT-Creation-Date: 1970-01-01 00:00+0000," $f -- done -- ;; -- /usr/share/doc/packages/*/*.html|\ -- /usr/share/doc/kde/HTML/*/*/*.html|/usr/share/doc/*/html/*.html) -- for f in old/$file new/$file; do -- # texi2html output, e.g. in kvm, indent, qemu -- sed -i -e "s|^ -- # -- # -- # -- sed -i -e ' -- /^/{ -- : next -- n -- /^<\/head>/{ -- b end_head -- } -- s/^\(\)/\1 some-date-removed-by-build-compare \5/ -- t next -- s/^\(\)/\1 some-date-removed-by-build-compare \3/ -- t next -- s/^// -- b next -- } -- : end_head -- ' $f -- # Gjdoc HtmlDoclet: -- sed -i -e 's%Generated by Gjdoc HtmlDoclet [0-9,.]*, part of GNU Classpath Tools, on .*, 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.%Generated by Gjdoc.%' $f -- sed -i -e 's%, on [A-Z][a-z]* [0-9]*, 20?? [0-9]*:??:?? \(a|p\)\.m\. GMT.

%, on January 1, 2009 0:00:00 a.m. GMT.

%' $f -- sed -i -e 's%\), on [a-zA-Z]* [0-9][0-9], 20.. [0-9]*:..:.. \(a\|p\)\.m\. GMT.

%%' $f -- # deprecated-list is randomly ordered, sort it for comparison -- case $f in -- */deprecated-list.html) -- sort -o $f $f -- ;; -- esac -- done -- ;; -- /usr/share/javadoc/gjdoc.properties |\ -- /usr/share/javadoc/*/gjdoc.properties) -- for f in old/$file new/$file; do -- sed -i -e 's|^#[A-Z][a-z]\{2\} [A-Z][a-z]\{2\} [0-9]\{2\} ..:..:.. GMT 20..$|#Fri Jan 01 11:27:36 GMT 2009|' $f -- done -- ;; -- */fonts.scale|*/fonts.dir|*/encodings.dir) -- for f in old/$file new/$file; do -- # sort files before comparing -- sort -o $f $f -- done -- ;; -- /var/adm/perl-modules/*) -- for f in old/$file new/$file; do -- sed -i -e 's|^=head2 ... ... .. ..:..:.. ....: C|=head2 Wed Jul 1 00:00:00 2009: C|' $f -- done -- ;; -- /usr/share/man/man3/*3pm) -- for f in old/$file new/$file; do -- sed -i -e 's| 3 "20..-..-.." "perl v5....." "User Contributed Perl Documentation"$| 3 "2009-01-01" "perl v5.10.0" "User Contributed Perl Documentation"|' $f -- trim_man_TH $f -- trim_man_first_line $f -- done -- ;; -- /usr/share/man/*/man*|/usr/share/man/man*|/usr/lib/texmf/doc/man/*/*) -- -- for f in old/$file new/$file; do -- trim_man_TH $f -- trim_man_first_line $f -- # generated by docbook xml: -- #.\" Date: 09/13/2010 -- sed -i -e 's|Date: [0-1][0-9]/[0-9][0-9]/201[0-9]|Date: 09/13/2010|' $f -- done -- ;; -- *.elc) -- # emacs lisp files -- for f in old/$file new/$file; do -- sed -i -e 's|Compiled by abuild@.* on ... ... .. ..:..:.. 20..$|compiled by abuild@buildhost on Wed Jul 01 00:00:00 2009|' $f -- done -- ;; -- /var/lib/texmf/web2c/*/*fmt |\ -- /var/lib/texmf/web2c/metafont/*.base|\ -- /var/lib/texmf/web2c/metapost/*.mem) -- # binary dump of TeX and Metafont formats, we can ignore them for good -- echo "difference in $file ignored." -- return 0 -- ;; -- */libtool) -- for f in old/$file new/$file; do -- sed -i -e 's|^# Libtool was configured on host [A-Za-z0-9]*:$|# Libtool was configured on host x42:|' $f -- done -- ;; -- /etc/mail/*cf|/etc/sendmail.cf) -- # from sendmail package -- for f in old/$file new/$file; do -- # - ##### built by abuild@build33 on Thu May 6 11:21:17 UTC 2010 -- sed -i -e 's|built by abuild@[a-z0-9]* on ... ... [0-9]* [0-9]*:[0-9][0-9]:[0-9][0-9] .* 20[0-9][0-9]|built by abuild@build42 on Thu May 6 11:21:17 UTC 2010|' $f -- done -- ;; -- /usr/share/doc/kde/HTML/*/*/index.cache|/usr/share/doc/kde/HTML/*/*/*/index.cache|\ -- /usr/share/gtk-doc/html/*/*.html|/usr/share/gtk-doc/html/*/*.devhelp2) -- # various kde and gtk packages -- strip_numbered_anchors -- ;; -- */created.rid) -- # ruby documentation -- # file just contains a timestamp and nothing else, so ignore it -- echo "Ignore $file" -- return 0 -- ;; -- */rdoc/files/*.html) -- # ruby documentation -- # Mon Sep 20 19:02:43 +0000 2010 -- for f in old/$file new/$file; do -- sed -i -e 's%[A-Z][a-z][a-z] [A-Z][a-z][a-z] [0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+ +0000 201[0-9]%Mon Sep 20 19:02:43 +0000 2010%g' $f -- done -- strip_numbered_anchors -- ;; -- */Linux*Env.Set.sh) -- # LibreOffice files, contains: -- # Generated on: Mon Apr 18 13:19:22 UTC 2011 -- for f in old/$file new/$file; do -- sed -i -e 's%^# Generated on:.*UTC 201[0-9] *$%# Generated on: Sometime%g' $f -- done -- ;; -- /usr/lib/libreoffice/solver/inc/*/deliver.log) -- # LibreOffice log file -- echo "Ignore $file" -- return 0 -- ;; -- /var/adm/update-messages/*|/var/adm/update-scripts/*) -- # encode version-release inside -- oldfn=`echo "$file"|sed -e s/-$release2/-$release1/;` -- -- # fetchmsttfonts embeds the release number in the update shell script. -- echo sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -- sed -i -e "s/-$release1/-$release2/g;" "old/$oldfn" -- -- if ! diff -u old/$oldfn new/$file; then -- echo "$oldfn is not same as $file" -- return 1 -- fi -- echo "$file and $oldfn are same" -- return 0 -- ;; -- *.ps) -- for f in "old/$file" "new/$file"; do -- sed -i -e ' -- /^%%CreationDate:[[:blank:]]/d -- /^%%Creator:[[:blank:]]groff[[:blank:]]version[[:blank:]]/d -- ' "$f" -- done -- ;; -- *pdf) -- # PDF files contain a unique ID, remove it -- # Format of the ID is: -- # /ID [<9ACE247A70CF9BEAFEE15E116259BD6D> <9ACE247A70CF9BEAFEE15E116259BD6D>] -- # with optional spaces. pdftex creates also: -- # /CreationDate (D:20120103083206Z) -- # /ModDate (D:20120103083206Z) -- # and possibly XML metadata as well -- for f in "old/$file" "new/$file"; do -- sed -i \ -- '/obj/,/endobj/{ -- s%/ID \?\[ \?<[^>]\+> \?<[^>]\+> \?\]%/IDrandom%g; -- s%/CreationDate \?(D:[^)]*)%/CreationDate (D: XXX)%g; -- s%/ModDate \?(D:[^)]*)%/ModDate (D: XXX)%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- s%[^<]*%XXX%g; -- }' "$f" -- done -- ;; -- esac -- -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -- case $ftype in -- PE32\ executable*Mono\/\.Net\ assembly*) -- echo "PE32 Mono/.Net assembly: $file" -- if [ -x /usr/bin/monodis ] ; then -- monodis old/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file1} -- monodis new/$file 2>/dev/null|sed -e 's/GUID = {.*}/GUID = { 42 }/;'> ${file2} -- if ! cmp -s ${file1} ${file2}; then -- echo "$file differs ($ftype)" -- diff -u ${file1} ${file2} -- return 1 -- fi -- else -- echo "Cannot compare, no monodis installed" -- return 1 -- fi -- ;; -- ELF*executable*|ELF*[LM]SB\ shared\ object*) -- objdump -d --no-show-raw-insn old/$file | filter_disasm > $file1 -- if ! test -s $file1; then -- # objdump has no idea how to handle it -- if ! diff_two_files; then -- ret=1 -- break -- fi -- fi -- elfdiff= -- sed -i -e "s,old/,," $file1 -- objdump -d --no-show-raw-insn new/$file | filter_disasm > $file2 -- sed -i -e "s,new/,," $file2 -- if ! diff -u $file1 $file2 > $dfile; then -- echo "$file differs in assembler output" -- head -n 200 $dfile -- elfdiff="1" -- fi -- echo "" >$file1 -- echo "" >$file2 -- # Don't compare .build-id and .gnu_debuglink sections -- sections="$(objdump -s new/$file | grep "Contents of section .*:" | sed -r "s,.* (.*):,\1,g" | grep -v -e "\.build-id" -e "\.gnu_debuglink" | 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 -- if ! diff -u $file1 $file2 > $dfile; then -- echo "$file differs in ELF section $section" -- head -n 200 $dfile -- elfdiff="1" -- fi -- done -- if test -z "$elfdiff"; then -- echo "$file: only difference was in build-id or gnu_debuglink, GOOD." -- return 0 -- fi -- return 1 -- ;; -- *ASCII*|*text*) -- if ! cmp -s old/$file new/$file; then -- echo "$file differs ($ftype)" -- diff -u old/$file new/$file | head -n 200 -- return 1 -- fi -- ;; -- directory|setuid,\ directory|sticky,\ directory) -- # tar might package directories - ignore them here -- return 0 -- ;; -- bzip2\ compressed\ data*) -- if ! check_compressed_file "$file" "bz2"; then -- return 1 -- fi -- ;; -- gzip\ compressed\ data*) -- if ! check_compressed_file "$file" "gzip"; then -- return 1 -- fi -- ;; -- XZ\ compressed\ data*) -- if ! check_compressed_file "$file" "xz"; then -- return 1 -- fi -- ;; -- POSIX\ tar\ archive) -- mv old/$file{,.tar} -- mv new/$file{,.tar} -- if ! check_single_file ${file}.tar; then -- return 1 -- fi -- ;; -- cpio\ archive) -- mv old/$file{,.cpio} -- mv new/$file{,.cpio} -- if ! check_single_file ${file}.cpio; then -- return 1 -- fi -- ;; -- symbolic\ link\ to\ *) -- readlink "old/$file" > $file1 -- readlink "new/$file" > $file2 -- if ! diff -u $file1 $file2; then -- echo "symlink target for $file differs" -- return 1 -- fi -- ;; -- *) -- if ! diff_two_files; then -- return 1 -- fi -- ;; -- esac -- return 0 --} -- --# We need /proc mounted for some tests, so check that it's mounted and --# complain if not. --PROC_MOUNTED=0 --if [ ! -d /proc/self/ ]; then -- echo "/proc is not mounted" -- mount -orw -n -tproc none /proc -- PROC_MOUNTED=1 --fi -- --# preserve cmp_spec result for check_all runs --ret=$RES --for file in $files; do -- if ! check_single_file $file; then -- ret=1 -- if test -z "$check_all"; then -- break -- fi -- fi --done -- --if [ "$PROC_MOUNTED" -eq "1" ]; then -- echo "Unmounting proc" -- umount /proc --fi -- --rm $file1 $file2 $dfile $rename_script --rm -rf $dir --if test "$ret" = 0; then -- echo "Package content is identical" --fi --exit $ret --# vim: tw=666 ts=2 et -diff --git a/same-build-result.sh b/same-build-result.sh -index c8907e2..7e9bd4f 100644 ---- a/same-build-result.sh -+++ b/same-build-result.sh -@@ -7,11 +7,11 @@ - # Enhanced by Andreas Jaeger - # - # The script decides if the new build differes from the former one, --# using rpm-check.sh. -+# using pkg-diff.sh. - # The script is called as part of the build process as: - # /usr/lib/build/same-build-result.sh /.build.oldpackages /usr/src/packages/RPMS /usr/src/packages/SRPMS - --CMPSCRIPT=${0%/*}/rpm-check.sh -+CMPSCRIPT=${0%/*}/pkg-diff.sh - SCMPSCRIPT=${0%/*}/srpm-check.sh - - check_all=1 --- -1.7.9.5 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch b/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch deleted file mode 100644 index 05420f89..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch +++ /dev/null @@ -1,117 +0,0 @@ -From b4eb7fde10318162bd2d02b9017ef51746752a91 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 23:14:21 -0700 -Subject: [PATCH 4/4] functions.sh: improve deb and ipk checking - -* The deb and ipk's depends version string is like: - Depends: libc6 (>= 2.24) - Update trim_release_old and trim_release_new to match the bracket in - the end ")". - -* The deb's data tarball now is .tar.xz, and ipk's is .tar.gz. - -* Update adjust_controlfile() to make ituse trim_release_old and - trim_release_new. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - functions.sh | 45 ++++++++++++++++++++++++++++----------------- - 1 file changed, 28 insertions(+), 17 deletions(-) - -diff --git a/functions.sh b/functions.sh -index aa572f9..fe493ba 100755 ---- a/functions.sh -+++ b/functions.sh -@@ -78,7 +78,7 @@ check_header() - function trim_release_old() - { - sed -e " -- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} -+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\|$version_release_old_regex_l)\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g - s/^ *//g - " -@@ -86,7 +86,7 @@ function trim_release_old() - function trim_release_new() - { - sed -e " -- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} -+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\|$version_release_new_regex_l)\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g - s/^ *//g - " -@@ -133,8 +133,8 @@ function unpackage() - ar x $file - tar xf control.tar.gz - rm control.tar.gz -- tar xf data.tar.gz -- rm data.tar.gz -+ tar xf data.tar.[xg]z -+ rm data.tar.[xg]z - ;; - esac - popd 1>/dev/null -@@ -164,6 +164,22 @@ function get_value() - sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d" - } - -+# Set version_release_old_regex_s, version_release_old_regex_l and -+# name_ver_rel_old_regex_l, also the new ones. -+function set_regex() { -+ # Remember to quote the . which is in release -+ # Short version without B_CN -+ version_release_old_regex_s=${version_release_old%.*} -+ version_release_old_regex_s=${version_release_old_regex_s//./\\.} -+ version_release_new_regex_s=${version_release_new%.*} -+ version_release_new_regex_s=${version_release_new_regex_s//./\\.} -+ # Long version with B_CNT -+ version_release_old_regex_l=${version_release_old//./\\.} -+ version_release_new_regex_l=${version_release_new//./\\.} -+ name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} -+ name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+} -+ - # Compare just the rpm meta data of two rpms - # Returns: - # 0 in case of same content -@@ -194,17 +210,7 @@ function cmp_spec () - version_release_old="$(get_value QF_VER_REL $spec_old)" - name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)" - -- # Remember to quote the . which is in release -- # Short version without B_CN -- version_release_old_regex_s=${version_release_old%.*} -- version_release_old_regex_s=${version_release_old_regex_s//./\\.} -- version_release_new_regex_s=${version_release_new%.*} -- version_release_new_regex_s=${version_release_new_regex_s//./\\.} -- # Long version with B_CNT -- version_release_old_regex_l=${version_release_old//./\\.} -- version_release_new_regex_l=${version_release_new//./\\.} -- name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} -- name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+ set_regex - - # Check the whole spec file at first, return 0 immediately if the - # are the same. -@@ -285,9 +291,14 @@ function cmp_spec () - } - - function adjust_controlfile() { -- cat $1/control | sed '/^Version: /d' > $1/control.fixed -+ version_release_old="`sed -ne 's/^Version: \(.*\)/\1/p' $1/control`" -+ name_ver_rel_old="`sed -n -e 's/^Package: \(.*\)/\1/p' $1/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $1/control`" -+ version_release_new="`sed -ne 's/^Version: \(.*\)/\1/p' $2/control`" -+ name_ver_rel_new="`sed -n -e 's/^Package: \(.*\)/\1/p' $2/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $2/control`" -+ set_regex -+ cat $1/control | trim_release_old > $1/control.fixed - mv $1/control.fixed $1/control -- cat $2/control | sed '/^Version: /d' > $2/control.fixed -+ cat $2/control | trim_release_new > $2/control.fixed - mv $2/control.fixed $2/control - } - --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch b/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch deleted file mode 100644 index 02e96bab..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 402a821e604f280e62c34bf4d40c6d1b4c6c892d Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 4 Jul 2016 20:11:33 -0700 -Subject: [PATCH] functions.sh: remove space at head - -The command like: -rpm -qp --nodigest --nosignature --qf ' [%{REQUIRENAME}\n]\n' - ^^space - -The space will be printed, and will impact the check result, so remove it. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9] - -Signed-off-by: Robert Yang ---- - functions.sh | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/functions.sh b/functions.sh -index 85c9003..b1069d2 100644 ---- a/functions.sh -+++ b/functions.sh -@@ -26,6 +26,7 @@ function trim_release_old() - sed -e " - /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g -+ s/^ *//g - " - } - function trim_release_new() -@@ -33,6 +34,7 @@ function trim_release_new() - sed -e " - /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g} - s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g -+ s/^ *//g - " - } - # Get single directory or filename with long or short release string --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch b/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch deleted file mode 100644 index f5b99d94..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch +++ /dev/null @@ -1,361 +0,0 @@ -From f34d632c427b1e1570ef9136454fc01d8c9f10a6 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 7 Jul 2016 19:34:09 -0700 -Subject: [PATCH] functions.sh: run rpm once to make it faster - -The rpm tool is a heavy process, it ran 16 (or 17 for kernel) -"rpm -qp" times when the pkgs are identical, now we only run -"rpm -qp --qf " twice (one is for old pkg, and one is for -new), save the results to spec_old and spec_new, then use sed command to -get what we need later, this can make it 75% faster when the pkgs are -identical. Here is the rough data on my host Ubuntu 14.04.4, 32 cores -CPU and 128G mem: -* When the pkgs are identical: - - Before the patch: 1s - - After the patch: 0.26s - I compare the whole spec firstly, and return 0 if they are the same, - or go on checking one by one if not, without this, it would be 0.46s, - the gain is great when there are lot of packages, usually, we have - more than 10,000 rpms to compare. - -* When the pkgs are different: - That depends on where is the different, if the different is at the - comparing rpmtags stage: - - Before the patch: 0.26s - - After the patch: 0.29s - Increased 0.03s, but if the different is happend later than comparing - rpmtags, it will save time. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9] - -Signed-off-by: Robert Yang ---- - functions.sh | 245 ++++++++++++++++++++++++++++++++--------------------------- - 1 file changed, 132 insertions(+), 113 deletions(-) - mode change 100644 => 100755 functions.sh - -diff --git a/functions.sh b/functions.sh -old mode 100644 -new mode 100755 -index b1069d2..aa572f9 ---- a/functions.sh -+++ b/functions.sh -@@ -10,9 +10,63 @@ - - RPM="rpm -qp --nodigest --nosignature" - --check_header() -+# Name, Version, Release -+QF_NAME="%{NAME}" -+QF_VER_REL="%{VERSION}-%{RELEASE}" -+QF_NAME_VER_REL="%{NAME}-%{VERSION}-%{RELEASE}" -+ -+# provides destroy this because at least the self-provide includes the -+# -buildnumber :-( -+QF_PROVIDES="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n" -+QF_PROVIDES="$QF_PROVIDES [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n" -+ -+# don't look at RELEASE, it contains our build number -+QF_TAGS="%{NAME} %{VERSION} %{EPOCH}\\n" -+QF_TAGS="$QF_TAGS %{SUMMARY}\\n%{DESCRIPTION}\\n" -+# the DISTURL tag can be used as checkin ID -+QF_TAGS="$QF_TAGS %{VENDOR} %{DISTRIBUTION} %{DISTURL}" -+QF_TAGS="$QF_TAGS %{LICENSE} %{LICENSE}\\n" -+QF_TAGS="$QF_TAGS %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n" -+QF_TAGS="$QF_TAGS %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n" -+QF_TAGS="$QF_TAGS %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n" -+ -+# XXX We also need to check the existence (but not the content (!)) -+# of SIGGPG (and perhaps the other SIG*) -+# XXX We don't look at triggers -+QF_TAGS="$QF_TAGS [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n" -+# Only the first ChangeLog entry; should be enough -+QF_TAGS="$QF_TAGS %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n" -+ -+# scripts, might contain release number -+QF_SCRIPT="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n" -+ -+# Now the files. We leave out mtime and size. For normal files -+# the size will influence the MD5 anyway. For directories the sizes can -+# differ, depending on which file system the package was built. To not -+# have to filter out directories we simply ignore all sizes. -+# Also leave out FILEDEVICES, FILEINODES (depends on the build host), -+# FILECOLORS, FILECLASS (normally useful but file output contains mtimes), -+# FILEDEPENDSX and FILEDEPENDSN. -+# Also FILELANGS (or?) -+QF_FILELIST="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n" -+# ??? what to do with FILEPROVIDE and FILEREQUIRE? -+ -+QF_CHECKSUM="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n" -+ -+QF_ALL="\n___QF_NAME___\n${QF_NAME}\n___QF_NAME___\n" -+QF_ALL="$QF_ALL\n___QF_TAGS___\n${QF_TAGS}\n___QF_TAGS___\n" -+QF_ALL="$QF_ALL\n___QF_VER_REL___\n${QF_VER_REL}\n___QF_VER_REL___\n" -+QF_ALL="$QF_ALL\n___QF_NAME_VER_REL___\n${QF_NAME_VER_REL}\n___QF_NAME_VER_REL___\n" -+QF_ALL="$QF_ALL\n___QF_PROVIDES___\n${QF_PROVIDES}\n___QF_PROVIDES___\n" -+QF_ALL="$QF_ALL\n___QF_SCRIPT___\n${QF_SCRIPT}\n___QF_SCRIPT___\n" -+QF_ALL="$QF_ALL\n___QF_FILELIST___\n${QF_FILELIST}\n___QF_FILELIST___\n" -+QF_ALL="$QF_ALL\n___QF_CHECKSUM___\n${QF_CHECKSUM}\n___QF_CHECKSUM___\n" -+ -+check_header() - { -- $RPM --qf "$QF" "$1" -+ $RPM --qf "$1" "$2" - } - - # Trim version-release string: -@@ -47,18 +101,6 @@ function grep_release_new() - grep -E "(/boot|/lib/modules|/lib/firmware|/usr/src)/[^/]+(${version_release_new_regex_l}(\$|[^/]+\$)|${version_release_new_regex_s}(\$|[^/]+\$))" - } - --function check_provides() --{ -- local pkg=$1 -- # provides destroy this because at least the self-provide includes the -- # -buildnumber :-( -- QF="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n" -- QF="$QF [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n" -- QF="$QF [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n" -- QF="$QF [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n" -- check_header "$pkg" --} -- - #usage unpackage $dir - # Unpack files in directory $dir - # like /usr/bin/unpackage - just for one file and with no options -@@ -98,6 +140,30 @@ function unpackage() - popd 1>/dev/null - } - -+# Run diff command on the files -+# $1: printed info -+# $2: file1 -+# $3: file2 -+function comp_file() -+{ -+ echo "comparing $1" -+ if ! diff -au $2 $3; then -+ if test -z "$check_all"; then -+ rm $2 $3 $spec_old $spec_new -+ return 1 -+ fi -+ fi -+ return 0 -+} -+ -+# Get var's value from specfile. -+# $1: var name -+# $2: specfile -+function get_value() -+{ -+ sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d" -+} -+ - # Compare just the rpm meta data of two rpms - # Returns: - # 0 in case of same content -@@ -107,56 +173,29 @@ function unpackage() - function cmp_spec () - { - local RES -- local file1 file2 -+ local file_old file_new - local f - local sh=$1 - local oldrpm=$2 - local newrpm=$3 - -- QF="%{NAME}" -- -- # don't look at RELEASE, it contains our build number -- QF="$QF %{VERSION} %{EPOCH}\\n" -- QF="$QF %{SUMMARY}\\n%{DESCRIPTION}\\n" -- QF="$QF %{VENDOR} %{DISTRIBUTION} %{DISTURL}" -- QF="$QF %{LICENSE} %{LICENSE}\\n" -- QF="$QF %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n" -- QF="$QF %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n" -- QF="$QF %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n" -- -- -- # XXX We also need to check the existence (but not the content (!)) -- # of SIGGPG (and perhaps the other SIG*) -- -- # XXX We don't look at triggers -- -- QF="$QF [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n" -- -- # Only the first ChangeLog entry; should be enough -- QF="$QF %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n" -- -- file1=`mktemp` -- file2=`mktemp` -- -- check_header $oldrpm > $file1 -- check_header $newrpm > $file2 -- -- # the DISTURL tag can be used as checkin ID -- #echo "$QF" -- echo "comparing rpmtags" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- -+ file_old=`mktemp` -+ file_new=`mktemp` -+ spec_old=`mktemp` -+ spec_new=`mktemp` -+ -+ check_header "$QF_ALL" $oldrpm > $spec_old -+ check_header "$QF_ALL" $newrpm > $spec_new -+ -+ name_new="$(get_value QF_NAME $spec_new)" -+ version_release_new="$(get_value QF_VER_REL $spec_new)" -+ name_ver_rel_new="$(get_value QF_NAME_VER_REL $spec_new)" -+ -+ version_release_old="$(get_value QF_VER_REL $spec_old)" -+ name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)" -+ - # Remember to quote the . which is in release -- version_release_old=$($RPM --qf "%{VERSION}-%{RELEASE}" "$oldrpm") -- version_release_new=$($RPM --qf "%{VERSION}-%{RELEASE}" "$newrpm") -- name_ver_rel_old=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$oldrpm") -- name_ver_rel_new=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$newrpm") -- # Short version without B_CNT -+ # Short version without B_CN - version_release_old_regex_s=${version_release_old%.*} - version_release_old_regex_s=${version_release_old_regex_s//./\\.} - version_release_new_regex_s=${version_release_new%.*} -@@ -166,10 +205,27 @@ function cmp_spec () - version_release_new_regex_l=${version_release_new//./\\.} - name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.} - name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.} -+ -+ # Check the whole spec file at first, return 0 immediately if the -+ # are the same. -+ cat $spec_old | trim_release_old > $file_old -+ cat $spec_new | trim_release_new > $file_new -+ echo "comparing the whole specfile" -+ if diff -au $spec_old $spec_new; then -+ if test -z "$check_all"; then -+ rm $file_old $file_new $spec_old $spec_new -+ return 0 -+ fi -+ fi -+ -+ get_value QF_TAGS $spec_old > $file_old -+ get_value QF_TAGS $spec_new > $file_new -+ comp_file rpmtags $file_old $file_new || return 1 -+ - # This might happen when?! - echo "comparing RELEASE" - if [ "${version_release_old%.*}" != "${version_release_new%.*}" ] ; then -- case $($RPM --qf '%{NAME}' "$newrpm") in -+ case $name_new in - kernel-*) - # Make sure all kernel packages have the same %RELEASE - echo "release prefix mismatch" -@@ -181,71 +237,34 @@ function cmp_spec () - *) ;; - esac - fi -- -- check_provides $oldrpm | trim_release_old | sort > $file1 -- check_provides $newrpm | trim_release_new | sort > $file2 -- -- echo "comparing PROVIDES" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi - -- # scripts, might contain release number -- QF="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n" -- check_header $oldrpm | trim_release_old > $file1 -- check_header $newrpm | trim_release_new > $file2 -+ get_value QF_PROVIDES $spec_old | trim_release_old | sort > $file_old -+ get_value QF_PROVIDES $spec_new | trim_release_new | sort > $file_new -+ comp_file PROVIDES $file_old $file_new || return 1 -+ -+ get_value QF_SCRIPT $spec_old | trim_release_old > $file_old -+ get_value QF_SCRIPT $spec_new | trim_release_new > $file_new -+ comp_file scripts $file_old $file_new || return 1 - -- echo "comparing scripts" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- - # First check the file attributes and later the md5s -- -- # Now the files. We leave out mtime and size. For normal files -- # the size will influence the MD5 anyway. For directories the sizes can -- # differ, depending on which file system the package was built. To not -- # have to filter out directories we simply ignore all sizes. -- # Also leave out FILEDEVICES, FILEINODES (depends on the build host), -- # FILECOLORS, FILECLASS (normally useful but file output contains mtimes), -- # FILEDEPENDSX and FILEDEPENDSN. -- # Also FILELANGS (or?) -- QF="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n" -- # ??? what to do with FILEPROVIDE and FILEREQUIRE? -- -- check_header $oldrpm | trim_release_old > $file1 -- check_header $newrpm | trim_release_new > $file2 -- -- echo "comparing filelist" -- if ! diff -au $file1 $file2; then -- if test -z "$check_all"; then -- rm $file1 $file2 -- return 1 -- fi -- fi -- -+ get_value QF_FILELIST $spec_old | trim_release_old > $file_old -+ get_value QF_FILELIST $spec_new | trim_release_new > $file_new -+ comp_file filelist $file_old $file_new || return 1 -+ - # now the md5sums. if they are different, we check more detailed - # if there are different filenames, we will already have aborted before - # file flag 64 means "ghost", filter those out. -- QF="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n" -- check_header $oldrpm |grep -v " 64$"| trim_release_old > $file1 -- check_header $newrpm |grep -v " 64$"| trim_release_new > $file2 -- -+ get_value QF_CHECKSUM $spec_old | grep -v " 64$" | trim_release_old > $file_old -+ get_value QF_CHECKSUM $spec_new | grep -v " 64$" | trim_release_new > $file_new - RES=2 - # done if the same - echo "comparing file checksum" -- if cmp -s $file1 $file2; then -+ if cmp -s $file_old $file_new; then - RES=0 - fi -- -+ - # Get only files with different MD5sums -- files=`diff -U0 $file1 $file2 | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'` -+ files=`diff -U0 $file_old $file_new | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'` - - if test -f "$sh"; then - echo "creating rename script" -@@ -261,7 +280,7 @@ function cmp_spec () - done >> "${sh}" - fi - # -- rm $file1 $file2 -+ rm $file_old $file_new - return $RES - } - --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch b/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch deleted file mode 100644 index e4f0c541..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a78fe4f792a9ac9f4d364e836c8855f48561d6f2 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:52:18 -0700 -Subject: [PATCH 3/4] pkg-diff.sh: check for fifo(named pipe) - -Otherwise "cmp -s fifo1 fifo2" will wait for inputing forever. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 5dd3a38..1f353aa 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -735,6 +735,13 @@ check_single_file() - return 1 - fi - ;; -+ fifo*pipe*) -+ ftype_new="`/usr/bin/file new/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`" -+ if [ "$ftype_new" = "$ftype" ]; then -+ return 0 -+ fi -+ return 1 -+ ;; - *) - if ! diff_two_files; then - return 1 --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch b/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch deleted file mode 100644 index b42af253..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 657983ef9ca8f8354172682e17408c4f6b5bc667 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:46:08 -0700 -Subject: [PATCH 1/4] pkg-diff.sh: check_single_file(): return at once when - same - -If the two files are the same, return at once, this can save a lot of -time when there are archives inside archives. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 3cf10aa..402d4a4 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -293,6 +293,13 @@ check_compressed_file() - check_single_file() - { - local file="$1" -+ -+ # If the two files are the same, return at once. -+ if [ -f old/$file -a -f new/$file ]; then -+ if cmp -s old/$file new/$file; then -+ return 0 -+ fi -+ fi - case $file in - *.spec) - sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch b/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch deleted file mode 100644 index 80771723..00000000 --- a/external/poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 836a6783df9c582a834fca239f227063a5687715 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 14 Jul 2016 19:49:12 -0700 -Subject: [PATCH 2/4] pkg-diff.sh: remove space in the end for ftype - -Versions of file like 5.14 returns a " " in the end, for example: -ftype="directory ", but we need ftype="directory", remove the space to -fix the problem. - -Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10] - -Signed-off-by: Robert Yang ---- - pkg-diff.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pkg-diff.sh b/pkg-diff.sh -index 402d4a4..5dd3a38 100644 ---- a/pkg-diff.sh -+++ b/pkg-diff.sh -@@ -633,7 +633,7 @@ check_single_file() - ;; - esac - -- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'` -+ ftype=`/usr/bin/file old/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'` - case $ftype in - PE32\ executable*Mono\/\.Net\ assembly*) - echo "PE32 Mono/.Net assembly: $file" --- -2.9.0 - diff --git a/external/poky/meta/recipes-devtools/ccache/ccache.inc b/external/poky/meta/recipes-devtools/ccache/ccache.inc index 65663289..dcbbf0ca 100644 --- a/external/poky/meta/recipes-devtools/ccache/ccache.inc +++ b/external/poky/meta/recipes-devtools/ccache/ccache.inc @@ -9,8 +9,20 @@ LICENSE = "GPLv3+" DEPENDS = "zlib" -SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.xz" +SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" +UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" inherit autotools +# Remove ccache-native's dependencies, so that it can be used widely by +# other native recipes. +DEPENDS_class-native = "" +EXTRA_OECONF_class-native = "--with-bundled-zlib" +INHIBIT_AUTOTOOLS_DEPS_class-native = "1" +PATCHTOOL = "patch" + BBCLASSEXTEND = "native" + +do_configure_class-native() { + oe_runconf +} diff --git a/external/poky/meta/recipes-devtools/ccache/ccache_3.4.2.bb b/external/poky/meta/recipes-devtools/ccache/ccache_3.4.2.bb deleted file mode 100644 index 72309348..00000000 --- a/external/poky/meta/recipes-devtools/ccache/ccache_3.4.2.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ccache.inc - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=2722abeaf1750dbf175b9491112374e1" - -SRC_URI[md5sum] = "9e048f88f3897125864f9a5e1abfb72d" -SRC_URI[sha256sum] = "18a8b14367d63d3d37fb6c33cba60e1b7fcd7a63d608df97c9771ae0d234fee2" - -SRC_URI += " \ - file://0002-dev.mk.in-fix-file-name-too-long.patch \ -" diff --git a/external/poky/meta/recipes-devtools/ccache/ccache_3.7.7.bb b/external/poky/meta/recipes-devtools/ccache/ccache_3.7.7.bb new file mode 100644 index 00000000..3e7362b2 --- /dev/null +++ b/external/poky/meta/recipes-devtools/ccache/ccache_3.7.7.bb @@ -0,0 +1,7 @@ +require ccache.inc + +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" + +SRC_URI[md5sum] = "500d7bd9ebc6ee3105d7fc332c1ef395" +SRC_URI[sha256sum] = "9b61f7fab2ec15305ee8382b03365503232dfb04b57414e7b0433768d530fa8a" diff --git a/external/poky/meta/recipes-devtools/ccache/files/0002-dev.mk.in-fix-file-name-too-long.patch b/external/poky/meta/recipes-devtools/ccache/files/0002-dev.mk.in-fix-file-name-too-long.patch deleted file mode 100644 index 68c2371f..00000000 --- a/external/poky/meta/recipes-devtools/ccache/files/0002-dev.mk.in-fix-file-name-too-long.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7dab2995ed8eeccd7b0acd79668bc28f3a2427d5 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Wed, 16 Sep 2015 19:45:40 -0700 -Subject: [PATCH] dev.mk.in: fix file name too long - -The all_cppflags change paths to filename which cause file name too long -error when the path is longer than NAME_MAX (usually 255). Strip srcdir -to fix the problem. - -Upstream-Status: Pending - -Signed-off-by: Robert Yang - ---- - dev.mk.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dev.mk.in b/dev.mk.in -index 91b0a57..583ade0 100644 ---- a/dev.mk.in -+++ b/dev.mk.in -@@ -1,7 +1,7 @@ - # GNU make syntax reigns in this file. - - all_cflags += -Werror --all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$<)).d -+all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$(subst $(srcdir)/,,$<))).d - - A2X = a2x - ASCIIDOC = asciidoc diff --git a/external/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb b/external/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb index 78e1565e..c08da6cd 100644 --- a/external/poky/meta/recipes-devtools/cdrtools/cdrtools-native_3.01.bb +++ b/external/poky/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/external/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch b/external/poky/meta/recipes-devtools/cdrtools/cdrtools/0001-Don-t-set-uid-gid-during-install.patch new file mode 100644 index 00000000..9d38294b --- /dev/null +++ b/external/poky/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 +Date: Tue, 12 Nov 2019 22:17:19 +0000 +Subject: [PATCH] Don't set uid/gid during install + +Signed-off-by: Paul Barker +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/external/poky/meta/recipes-devtools/cmake/cmake-native_3.12.2.bb b/external/poky/meta/recipes-devtools/cmake/cmake-native_3.12.2.bb deleted file mode 100644 index 9a1390f9..00000000 --- a/external/poky/meta/recipes-devtools/cmake/cmake-native_3.12.2.bb +++ /dev/null @@ -1,50 +0,0 @@ -require cmake.inc -inherit native - -DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native" - -SRC_URI += "file://OEToolchainConfig.cmake \ - file://environment.d-cmake.sh \ - file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ - file://0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch \ - " - - -B = "${WORKDIR}/build" -do_configure[cleandirs] = "${B}" - -# Disable ccmake since we don't depend on ncurses -CMAKE_EXTRACONF = "\ - -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ - -DBUILD_CursesDialog=0 \ - -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ - -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ - -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ - -DHAVE_SYS_ACL_H=0 \ -" - -do_configure () { - ${S}/configure --verbose --prefix=${prefix} -- ${CMAKE_EXTRACONF} -} - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - - # The following codes are here because eSDK needs to provide compatibilty - # for SDK. That is, eSDK could also be used like traditional SDK. - mkdir -p ${D}${datadir}/cmake - install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ - mkdir -p ${D}${base_prefix}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh -} - -do_compile[progress] = "percent" - -SYSROOT_DIRS_NATIVE += "${datadir}/cmake ${base_prefix}/environment-setup.d" diff --git a/external/poky/meta/recipes-devtools/cmake/cmake-native_3.16.5.bb b/external/poky/meta/recipes-devtools/cmake/cmake-native_3.16.5.bb new file mode 100644 index 00000000..b2952ee5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/cmake/cmake-native_3.16.5.bb @@ -0,0 +1,52 @@ +require cmake.inc +inherit native + +DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native ncurses-native" + +SRC_URI += "file://OEToolchainConfig.cmake \ + file://environment.d-cmake.sh \ + file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ + file://0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch \ + " + + +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + +CMAKE_EXTRACONF = "\ + -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \ + -DBUILD_CursesDialog=1 \ + -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ + -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ + -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ + -DHAVE_SYS_ACL_H=0 \ +" + +do_configure () { + ${S}/configure --verbose --prefix=${prefix} \ + ${@oe.utils.parallel_make_argument(d, '--parallel=%d')} \ + ${@bb.utils.contains('CCACHE', 'ccache ', '--enable-ccache', '', d)} \ + -- ${CMAKE_EXTRACONF} +} + +do_compile() { + oe_runmake +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + # The following codes are here because eSDK needs to provide compatibilty + # for SDK. That is, eSDK could also be used like traditional SDK. + mkdir -p ${D}${datadir}/cmake + install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ + mkdir -p ${D}${base_prefix}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${base_prefix}/environment-setup.d/cmake.sh +} + +do_compile[progress] = "percent" + +SYSROOT_DIRS_NATIVE += "${datadir}/cmake ${base_prefix}/environment-setup.d" diff --git a/external/poky/meta/recipes-devtools/cmake/cmake.inc b/external/poky/meta/recipes-devtools/cmake/cmake.inc index 09e28b73..09949b56 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake.inc +++ b/external/poky/meta/recipes-devtools/cmake/cmake.inc @@ -2,11 +2,15 @@ # Released under the MIT license (see packages/COPYING) 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." 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=f61f5f859bc5ddba2b050eb10335e013 \ +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://Copyright.txt;md5=622747147b46f22e1953876a7cba3323 \ file://Source/cmake.h;md5=4494dee184212fc89c469c3acd555a14;beginline=1;endline=3 \ " @@ -18,7 +22,7 @@ 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] = "6e7c550cfa1c2e216b35903dc70d80af" -SRC_URI[sha256sum] = "0f97485799e51a7070cc11494f3e02349b0fc3a24cc12b082e737bf67a0581a4" +SRC_URI[md5sum] = "d86ccaf3d2462b6b5947919abe5b9f15" +SRC_URI[sha256sum] = "5f760b50b8ecc9c0c37135fae5fbf00a2fef617059aa9d61c1bb91653e5a8bfc" UPSTREAM_CHECK_REGEX = "cmake-(?P\d+(\.\d+)+)\.tar" diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/external/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch index f6907208..e2a58d25 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch +++ b/external/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch @@ -1,9 +1,8 @@ -From 71085723f8028b3e1c4029fc1abe1243ac49ffc6 Mon Sep 17 00:00:00 2001 +From ab272d703ce77f323aa1285526559c9efbf85834 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Thu, 27 Apr 2017 11:35:05 -0400 -Subject: [PATCH 1/5] CMakeDetermineSystem: use oe environment vars to load - default toolchain file in sdk -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default + toolchain file in sdk Passing the toolchain by: @@ -20,15 +19,16 @@ because '-D' options are cache entries themselves. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Cody P Schafer Signed-off-by: Otavio Salvador + --- Modules/CMakeDetermineSystem.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake -index 600d5580e..32d7f1945 100644 +index dc208c6..e0af4ca 100644 --- a/Modules/CMakeDetermineSystem.cmake +++ b/Modules/CMakeDetermineSystem.cmake -@@ -82,6 +82,13 @@ else() +@@ -81,6 +81,13 @@ else() endif() endif() @@ -42,6 +42,3 @@ index 600d5580e..32d7f1945 100644 # if a toolchain file is used, the user wants to cross compile. # in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_* # variables around so they can be used in CMakeLists.txt. --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch b/external/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch index 6f788ada..61c8f27c 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch +++ b/external/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch @@ -1,7 +1,8 @@ -From 7a1f4e724f9c68498f401244c2938e784a2e6fbd Mon Sep 17 00:00:00 2001 +From 5a86c7fa987bd407f228176df2abeffd015be9ea Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 17 Jan 2018 10:02:14 -0200 -Subject: [PATCH 2/5] cmake: Prevent the detection of Qt5 +Subject: [PATCH] cmake: Prevent the detection of Qt5 + Organization: O.S. Systems Software LTDA. CMake doesn't have dependency on qt4/qt5, so these tests usually fail @@ -12,23 +13,24 @@ while running the test in cmake) Upstream-Status: Inappropriate [configuration] Signed-off-by: Otavio Salvador + --- Source/QtDialog/CMakeLists.txt | 2 +- Tests/CMakeLists.txt | 2 +- Tests/Qt4And5Automoc/CMakeLists.txt | 4 ++-- - Tests/QtAutogen/AutogenTest.cmake | 2 +- + Tests/QtAutogen/AutogenGuiTest.cmake | 3 +-- Tests/QtAutogen/MacOsFW/CMakeLists.txt | 2 +- Tests/RunCMake/CMakeLists.txt | 2 +- Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake | 2 +- - 7 files changed, 8 insertions(+), 8 deletions(-) + 7 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt -index 330b74729..e7709dee6 100644 +index cb89d19..9e68981 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt -@@ -6,7 +6,7 @@ if(POLICY CMP0020) - cmake_policy(SET CMP0020 NEW) # Drop when CMake >= 2.8.11 required - endif() +@@ -3,7 +3,7 @@ + + project(QtDialog) CMake_OPTIONAL_COMPONENT(cmake-gui) -find_package(Qt5Widgets QUIET) +#find_package(Qt5Widgets QUIET) @@ -36,10 +38,10 @@ index 330b74729..e7709dee6 100644 include_directories(${Qt5Widgets_INCLUDE_DIRS}) add_definitions(${Qt5Widgets_DEFINITONS}) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt -index b8b724ed8..63f6bb6d2 100644 +index 57fa7fc..d50c146 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt -@@ -1322,7 +1322,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release +@@ -1329,7 +1329,7 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH set(CMake_TEST_Qt5 1) endif() if(CMake_TEST_Qt5) @@ -49,7 +51,7 @@ index b8b724ed8..63f6bb6d2 100644 if(CMake_TEST_Qt5 AND Qt5Widgets_FOUND) add_subdirectory(Qt5Autogen) diff --git a/Tests/Qt4And5Automoc/CMakeLists.txt b/Tests/Qt4And5Automoc/CMakeLists.txt -index ad74961d9..a9dd74b15 100644 +index ad74961..a9dd74b 100644 --- a/Tests/Qt4And5Automoc/CMakeLists.txt +++ b/Tests/Qt4And5Automoc/CMakeLists.txt @@ -3,11 +3,11 @@ cmake_minimum_required(VERSION 2.8.12) @@ -66,26 +68,27 @@ index ad74961d9..a9dd74b15 100644 endif() set(CMAKE_AUTOMOC ON) -diff --git a/Tests/QtAutogen/AutogenTest.cmake b/Tests/QtAutogen/AutogenTest.cmake -index 8c0a14fca..e9923b21a 100644 ---- a/Tests/QtAutogen/AutogenTest.cmake -+++ b/Tests/QtAutogen/AutogenTest.cmake -@@ -22,7 +22,7 @@ if (QT_TEST_VERSION STREQUAL 4) +diff --git a/Tests/QtAutogen/AutogenGuiTest.cmake b/Tests/QtAutogen/AutogenGuiTest.cmake +index b76d341..a6e0acb 100644 +--- a/Tests/QtAutogen/AutogenGuiTest.cmake ++++ b/Tests/QtAutogen/AutogenGuiTest.cmake +@@ -22,8 +22,7 @@ if (QT_TEST_VERSION EQUAL 4) endmacro() - elseif(QT_TEST_VERSION STREQUAL 5) + elseif(QT_TEST_VERSION EQUAL 5) +- - find_package(Qt5Widgets REQUIRED) + #find_package(Qt5Widgets REQUIRED) set(QT_QTCORE_TARGET Qt5::Core) - set(QT_QTGUI_TARGET Qt5::Widgets) + set(QT_LIBRARIES Qt5::Widgets) diff --git a/Tests/QtAutogen/MacOsFW/CMakeLists.txt b/Tests/QtAutogen/MacOsFW/CMakeLists.txt -index 26d201926..e48e1c8de 100644 +index c08efc4..87e25d9 100644 --- a/Tests/QtAutogen/MacOsFW/CMakeLists.txt +++ b/Tests/QtAutogen/MacOsFW/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10) project(MacOsFW) - include("../AutogenTest.cmake") + include("../AutogenGuiTest.cmake") -find_package(Qt5Test REQUIRED) +#find_package(Qt5Test REQUIRED) @@ -93,11 +96,11 @@ index 26d201926..e48e1c8de 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 637c5c2cb..c0376effc 100644 +index 6b2f117..1002005 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt -@@ -291,7 +291,7 @@ add_RunCMake_test(configure_file) - add_RunCMake_test(CTestTimeoutAfterMatch) +@@ -376,7 +376,7 @@ else() + endif() find_package(Qt4 QUIET) -find_package(Qt5Core QUIET) @@ -106,7 +109,7 @@ index 637c5c2cb..c0376effc 100644 add_RunCMake_test(IncompatibleQt) endif() diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake -index 4fccdc418..b76e1e531 100644 +index 4fccdc4..b76e1e5 100644 --- a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake +++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake @@ -1,6 +1,6 @@ @@ -117,6 +120,3 @@ index 4fccdc418..b76e1e531 100644 add_executable(mainexe main.cpp) target_link_libraries(mainexe Qt4::QtCore Qt5::Core) --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch b/external/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch index 55cf4718..e30dc51e 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch +++ b/external/poky/meta/recipes-devtools/cmake/cmake/0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch @@ -1,8 +1,7 @@ -From c783ceeef485c23e13c3d9f0418719cb0e0b86ee Mon Sep 17 00:00:00 2001 +From e528861023bf69df0ad061a59fd4e527c9dde1ce Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Thu, 12 May 2011 15:36:03 +0000 -Subject: [PATCH 3/5] cmake: support OpenEmbedded Qt4 tool binary names -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] cmake: support OpenEmbedded Qt4 tool binary names The FindQt4 module looks for Qt4 binaries to be able to gather the paths used for compilation and also to be using during other processes @@ -20,15 +19,16 @@ Instead of find_program, _find_qt4_program is now used. Signed-off-by: Moritz Blume Signed-off-by: Otavio Salvador + --- Modules/FindQt4.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 847a798af..7ad981879 100644 +index 3993968..b2a8585 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake -@@ -517,7 +517,7 @@ endfunction() +@@ -518,7 +518,7 @@ endfunction() set(QT4_INSTALLED_VERSION_TOO_OLD FALSE) @@ -37,7 +37,7 @@ index 847a798af..7ad981879 100644 _qt4_find_qmake("${_QT4_QMAKE_NAMES}" QT_QMAKE_EXECUTABLE QTVERSION) if (QT_QMAKE_EXECUTABLE AND -@@ -1135,12 +1135,12 @@ if (QT_QMAKE_EXECUTABLE AND +@@ -1136,12 +1136,12 @@ if (QT_QMAKE_EXECUTABLE AND _find_qt4_program(QT_MOC_EXECUTABLE Qt4::moc moc-qt4 moc4 moc) _find_qt4_program(QT_UIC_EXECUTABLE Qt4::uic uic-qt4 uic4 uic) _find_qt4_program(QT_UIC3_EXECUTABLE Qt4::uic3 uic3) @@ -54,6 +54,3 @@ index 847a798af..7ad981879 100644 _find_qt4_program(QT_DESIGNER_EXECUTABLE Qt4::designer designer-qt4 designer4 designer) _find_qt4_program(QT_LINGUIST_EXECUTABLE Qt4::linguist linguist-qt4 linguist4 linguist) --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch b/external/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch index a59c6804..48f43be8 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch +++ b/external/poky/meta/recipes-devtools/cmake/cmake/0004-Fail-silently-if-system-Qt-installation-is-broken.patch @@ -1,8 +1,7 @@ -From 9516fc4260f701c6d9db0c341bb36480362e1747 Mon Sep 17 00:00:00 2001 +From b0aeca35187983e22ec256a439cff4702dbde331 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Thu, 5 Jul 2018 10:26:48 -0300 -Subject: [PATCH 4/5] Fail silently if system Qt installation is broken -Organization: O.S. Systems Software LTDA. +Subject: [PATCH] Fail silently if system Qt installation is broken Fixes a regression in behaviour from 2.8.10 to 2.8.11 resulting in the following error if the system Qt installation is broken: @@ -23,15 +22,16 @@ within the if(QT_QTCORE_FOUND) statement. Signed-off-by: Moritz Blume Signed-off-by: Otavio Salvador + --- Modules/FindQt4.cmake | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake -index 7ad981879..8b6f43cda 100644 +index b2a8585..77c89aa 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake -@@ -987,25 +987,26 @@ if (QT_QMAKE_EXECUTABLE AND +@@ -988,25 +988,26 @@ if (QT_QMAKE_EXECUTABLE AND endif() endmacro() @@ -77,6 +77,3 @@ index 7ad981879..8b6f43cda 100644 foreach(QT_MODULE ${QT_MODULES}) _QT4_ADJUST_LIB_VARS(${QT_MODULE}) --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch b/external/poky/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch index 23ce8e9e..ad42d409 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch +++ b/external/poky/meta/recipes-devtools/cmake/cmake/0005-Disable-use-of-ext2fs-ext2_fs.h-by-cmake-s-internal-.patch @@ -20,7 +20,7 @@ diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMak index 206f3c6a5..642fb0dd9 100644 --- a/Utilities/cmlibarchive/CMakeLists.txt +++ b/Utilities/cmlibarchive/CMakeLists.txt -@@ -400,12 +400,8 @@ LA_CHECK_INCLUDE_FILE("copyfile.h" HAVE_COPYFILE_H) +@@ -430,12 +430,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) diff --git a/external/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/external/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake index 8a0fb4cb..398069ee 100644 --- a/external/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake +++ b/external/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake @@ -5,7 +5,7 @@ set( CMAKE_ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE ) set( CMAKE_LDFLAGS_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE ) set( CMAKE_SYSROOT $ENV{OECORE_TARGET_SYSROOT} ) -set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} $ENV{OECORE_NATIVE_SYSROOT} ) +set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) diff --git a/external/poky/meta/recipes-devtools/cmake/cmake_3.12.2.bb b/external/poky/meta/recipes-devtools/cmake/cmake_3.12.2.bb deleted file mode 100644 index e0457677..00000000 --- a/external/poky/meta/recipes-devtools/cmake/cmake_3.12.2.bb +++ /dev/null @@ -1,53 +0,0 @@ -require cmake.inc - -inherit cmake - -DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" - -SRC_URI_append_class-nativesdk = " \ - file://OEToolchainConfig.cmake \ - file://environment.d-cmake.sh \ - file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ -" - -# Strip ${prefix} from ${docdir}, set result into docdir_stripped -python () { - prefix=d.getVar("prefix") - docdir=d.getVar("docdir") - - if not docdir.startswith(prefix): - bb.fatal('docdir must contain prefix as its prefix') - - docdir_stripped = docdir[len(prefix):] - if len(docdir_stripped) > 0 and docdir_stripped[0] == '/': - docdir_stripped = docdir_stripped[1:] - - d.setVar("docdir_stripped", docdir_stripped) -} - -EXTRA_OECMAKE=" \ - -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \ - -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ - -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ - -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ - -DKWSYS_CHAR_IS_SIGNED=1 \ - -DBUILD_CursesDialog=0 \ - -DKWSYS_LFS_WORKS=1 \ -" - -do_install_append_class-nativesdk() { - mkdir -p ${D}${datadir}/cmake - install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ - - mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d - install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh -} - -FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}" - -FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal" -FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}" -FILES_${PN}-dev = "" - -BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/cmake/cmake_3.16.5.bb b/external/poky/meta/recipes-devtools/cmake/cmake_3.16.5.bb new file mode 100644 index 00000000..e0457677 --- /dev/null +++ b/external/poky/meta/recipes-devtools/cmake/cmake_3.16.5.bb @@ -0,0 +1,53 @@ +require cmake.inc + +inherit cmake + +DEPENDS += "curl expat zlib libarchive xz ncurses bzip2" + +SRC_URI_append_class-nativesdk = " \ + file://OEToolchainConfig.cmake \ + file://environment.d-cmake.sh \ + file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \ +" + +# Strip ${prefix} from ${docdir}, set result into docdir_stripped +python () { + prefix=d.getVar("prefix") + docdir=d.getVar("docdir") + + if not docdir.startswith(prefix): + bb.fatal('docdir must contain prefix as its prefix') + + docdir_stripped = docdir[len(prefix):] + if len(docdir_stripped) > 0 and docdir_stripped[0] == '/': + docdir_stripped = docdir_stripped[1:] + + d.setVar("docdir_stripped", docdir_stripped) +} + +EXTRA_OECMAKE=" \ + -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \ + -DCMAKE_USE_SYSTEM_LIBRARIES=1 \ + -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ + -DKWSYS_CHAR_IS_SIGNED=1 \ + -DBUILD_CursesDialog=0 \ + -DKWSYS_LFS_WORKS=1 \ +" + +do_install_append_class-nativesdk() { + mkdir -p ${D}${datadir}/cmake + install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/ + + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh +} + +FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}" + +FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION} ${datadir}/cmake ${datadir}/aclocal" +FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}" +FILES_${PN}-dev = "" + +BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch deleted file mode 100644 index cd72084e..00000000 --- a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Correctly-install-the-shared-library.patch +++ /dev/null @@ -1,28 +0,0 @@ -From fef835e1fdedc72c97d9c3e5704302e56e1bdef0 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Mon, 2 Jan 2017 17:23:59 +0200 -Subject: [PATCH] Correctly install the shared library - -Upstream-Status: Submitted [https://github.com/rpm-software-management/createrepo_c/pull/78] -Signed-off-by: Alexander Kanavin ---- - src/CMakeLists.txt | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index f3635e8..46dc037 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -110,7 +110,8 @@ CONFIGURE_FILE("deltarpms.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/deltarpms.h" @ONLY) - IF (CMAKE_SIZEOF_VOID_P MATCHES "8") - SET (LIB_SUFFIX "64") - ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") --SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -+#SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -+SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") - - INSTALL(FILES ${headers} DESTINATION "include/createrepo_c") - INSTALL(FILES "createrepo_c.pc" DESTINATION "${LIB_INSTALL_DIR}/pkgconfig") --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch index 95310709..c0f07fe2 100644 --- a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch @@ -1,27 +1,25 @@ -From bef487b5c2515062c5dd73c21082ce42f69aa717 Mon Sep 17 00:00:00 2001 +From 4644d18157296257284bedd857f4610f1037d50e Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 30 Dec 2016 18:31:02 +0200 Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + --- src/python/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt -index 9f1ac64..eae0cbb 100644 +index 3d873f7..e977b2f 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt -@@ -19,7 +19,7 @@ else() - FIND_PACKAGE(PythonInterp 3.0 REQUIRED) - endif() +@@ -21,7 +21,7 @@ if (NOT SKBUILD) + endif () + endif (NOT SKBUILD) -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}) MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-setup-of-logging-log-domains-RhBug-1645897.patch b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-setup-of-logging-log-domains-RhBug-1645897.patch deleted file mode 100644 index 6de9c055..00000000 --- a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Fix-setup-of-logging-log-domains-RhBug-1645897.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 80810f04f2de6bae6e394f52ad9cdd2189862f74 Mon Sep 17 00:00:00 2001 -From: Jaroslav Rohel -Date: Fri, 9 Nov 2018 07:35:13 +0100 -Subject: [PATCH] Fix setup of logging (log domains) (RhBug:1645897) - -New debug messages were added into GLib library. These messages come -from the "GLib" log domain and were not hidden in the standard and -quiet mode of the application. -This fix hides log messages regardless on source log domain. - -Upstream-Status: Backport - -Signed-off-by: Zheng Ruoqin ---- - src/createrepo_shared.c | 19 ++++++------------- - src/misc.c | 5 ++++- - 2 files changed, 10 insertions(+), 14 deletions(-) - -diff --git a/src/createrepo_shared.c b/src/createrepo_shared.c -index 8a26787..7cb8ba8 100644 ---- a/src/createrepo_shared.c -+++ b/src/createrepo_shared.c -@@ -270,24 +270,17 @@ cr_lock_repo(const gchar *repo_dir, - void - cr_setup_logging(gboolean quiet, gboolean verbose) - { -- g_log_set_default_handler (cr_log_fn, NULL); -- - if (quiet) { - // Quiet mode -- GLogLevelFlags levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | -- G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING; -- g_log_set_handler(NULL, levels, cr_null_log_fn, NULL); -- g_log_set_handler("C_CREATEREPOLIB", levels, cr_null_log_fn, NULL); -+ GLogLevelFlags hidden_levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | -+ G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING; -+ g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(hidden_levels)); - } else if (verbose) { - // Verbose mode -- GLogLevelFlags levels = G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | -- G_LOG_LEVEL_DEBUG | G_LOG_LEVEL_WARNING; -- g_log_set_handler(NULL, levels, cr_log_fn, NULL); -- g_log_set_handler("C_CREATEREPOLIB", levels, cr_log_fn, NULL); -+ g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(0)); - } else { - // Standard mode -- GLogLevelFlags levels = G_LOG_LEVEL_DEBUG; -- g_log_set_handler(NULL, levels, cr_null_log_fn, NULL); -- g_log_set_handler("C_CREATEREPOLIB", levels, cr_null_log_fn, NULL); -+ GLogLevelFlags hidden_levels = G_LOG_LEVEL_DEBUG; -+ g_log_set_default_handler (cr_log_fn, GINT_TO_POINTER(hidden_levels)); - } - } -diff --git a/src/misc.c b/src/misc.c -index 9937480..9549a44 100644 ---- a/src/misc.c -+++ b/src/misc.c -@@ -912,8 +912,11 @@ void - cr_log_fn(const gchar *log_domain, - GLogLevelFlags log_level, - const gchar *message, -- G_GNUC_UNUSED gpointer user_data) -+ gpointer user_data) - { -+ gint hidden_log_levels = GPOINTER_TO_INT(user_data); -+ if (log_level & hidden_log_levels) -+ return; - switch(log_level) { - case G_LOG_LEVEL_ERROR: - if (log_domain) g_printerr("%s: ", log_domain); --- -1.8.3.1 - diff --git a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb new file mode 100644 index 00000000..c6a53ffe --- /dev/null +++ b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.7.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "C implementation of createrepo." +HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "4ab6b56b8b718396386982afba4ade297c14d91a" + +S = "${WORKDIR}/git" + +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 -DWITH_LIBMODULEMD=OFF" + +BBCLASSEXTEND = "native nativesdk" + +# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm + rm -rf ${D}/etc +} diff --git a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_git.bb b/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_git.bb deleted file mode 100644 index 08766b31..00000000 --- a/external/poky/meta/recipes-devtools/createrepo-c/createrepo-c_git.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "C implementation of createrepo." -HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ - file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - file://0001-Correctly-install-the-shared-library.patch \ - file://0001-Fix-setup-of-logging-log-domains-RhBug-1645897.patch \ - " - -PV = "0.11.1+git${SRCPV}" -SRCREV = "434a40babdde57ab405e9a1085a30e9575ea0c92" - -S = "${WORKDIR}/git" - -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" - -BBCLASSEXTEND = "native nativesdk" - -# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm - rm -rf ${D}/etc -} diff --git a/external/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb b/external/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb new file mode 100644 index 00000000..10220ebc --- /dev/null +++ b/external/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb @@ -0,0 +1,17 @@ +SUMMARY = "GNU unit testing framework, written in Expect and Tcl" +DESCRIPTION = "DejaGnu is a framework for testing other programs. Its purpose \ +is to provide a single front end for all tests." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "devel" + +DEPENDS += "expect-native" + +inherit autotools + +SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz" + +SRC_URI[md5sum] = "e1b07516533f351b3aba3423fafeffd6" +SRC_URI[sha256sum] = "0d0671e1b45189c5fc8ade4b3b01635fb9eeab45cf54f57db23e4c4c1a17d261" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb b/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb deleted file mode 100644 index 6446f471..00000000 --- a/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb +++ /dev/null @@ -1,19 +0,0 @@ -SECTION = "console/utils" -SUMMARY = "Command line utilities for working with *.desktop files" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils" -LICENSE = "GPLv2+" - -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] = "599133d51cc9a41bfec186414906b6f1" -SRC_URI[sha256sum] = "6c094031bdec46c9f621708f919084e1cb5294e2c5b1e4c883b3e70cb8903385" - -DEPENDS = "glib-2.0" - -inherit autotools pkgconfig - -EXTRA_OECONF += "ac_cv_prog_EMACS=no" - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb b/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb new file mode 100644 index 00000000..aecba072 --- /dev/null +++ b/external/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb @@ -0,0 +1,24 @@ +SECTION = "console/utils" +SUMMARY = "Command line utilities for working with *.desktop files" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils" +LICENSE = "GPLv2+" + +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" + +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +EXTRA_OECONF += "ac_cv_prog_EMACS=no" + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + rm -rf ${D}${datadir}/emacs +} + diff --git a/external/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch b/external/poky/meta/recipes-devtools/diffstat/diffstat/0001-aclocal.m4-add-missing-header-defines.patch new file mode 100644 index 00000000..5bd94d7d --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/diffstat/diffstat_1.62.bb b/external/poky/meta/recipes-devtools/diffstat/diffstat_1.62.bb deleted file mode 100644 index 93d77797..00000000 --- a/external/poky/meta/recipes-devtools/diffstat/diffstat_1.62.bb +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "Tool to produce a statistics based on a diff" -DESCRIPTION = "diffstat reads the output of diff and displays a histogram of \ -the insertions, deletions, and modifications per-file. It is useful for \ -reviewing large, complex patch files." -HOMEPAGE = "http://invisible-island.net/diffstat/" -SECTION = "devel" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://install-sh;endline=42;md5=b3549726c1022bee09c174c72a0ca4a5" - -SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \ - file://run-ptest \ - file://avoid-check-user-break-cc.patch \ -" - -SRC_URI[md5sum] = "91e106bb34cb097750db7ddc0ba1d8fc" -SRC_URI[sha256sum] = "7f09183644ed77a156b15346bbad4e89c93543e140add9dab18747e30522591f" - -S = "${WORKDIR}/diffstat-${PV}" - -inherit autotools gettext ptest - -EXTRA_AUTORECONF += "--exclude=aclocal" - -LDFLAGS += "${TOOLCHAIN_OPTIONS}" - -do_install_ptest() { - cp -r ${S}/testing ${D}${PTEST_PATH} -} diff --git a/external/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb b/external/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb new file mode 100644 index 00000000..ee0a7e7b --- /dev/null +++ b/external/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb @@ -0,0 +1,29 @@ +SUMMARY = "Tool to produce a statistics based on a diff" +DESCRIPTION = "diffstat reads the output of diff and displays a histogram of \ +the insertions, deletions, and modifications per-file. It is useful for \ +reviewing large, complex patch files." +HOMEPAGE = "http://invisible-island.net/diffstat/" +SECTION = "devel" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://install-sh;endline=42;md5=b3549726c1022bee09c174c72a0ca4a5" + +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] = "b9272ec8af6257103261ec3622692991" +SRC_URI[sha256sum] = "7eddd53401b99b90bac3f7ebf23dd583d7d99c6106e67a4f1161b7a20110dc6f" + +S = "${WORKDIR}/diffstat-${PV}" + +inherit autotools gettext ptest + +EXTRA_AUTORECONF += "--exclude=aclocal" + +LDFLAGS += "${TOOLCHAIN_OPTIONS}" + +do_install_ptest() { + cp -r ${S}/testing ${D}${PTEST_PATH} +} diff --git a/external/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb b/external/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb deleted file mode 100644 index 0d069631..00000000 --- a/external/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb +++ /dev/null @@ -1,71 +0,0 @@ -SUMMARY = "A parallel build system" -DESCRIPTION = "distcc is a parallel build system that distributes \ -compilation of C/C++/ObjC code across machines on a network." -SECTION = "devel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" - -DEPENDS = "avahi binutils" - -PACKAGECONFIG ??= "popt" -PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+" -# use system popt by default -PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt" - -RRECOMMENDS_${PN} = "avahi-daemon" - -SRC_URI = "git://github.com/distcc/distcc.git \ - file://separatebuilddir.patch \ - file://default \ - file://distccmon-gnome.desktop \ - file://distcc \ - file://distcc.service" -SRCREV = "8600f0857dac55ea393dc11a860948692d215fc8" -S = "${WORKDIR}/git" - -inherit autotools pkgconfig update-rc.d useradd systemd - -ASNEEDED = "" - -EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = "--system \ - --home /dev/null \ - --no-create-home \ - --gid nogroup \ - distcc" - -INITSCRIPT_NAME = "distcc" - -SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "distcc.service" - -do_install() { - # Improve reproducibility: compress w/o timestamps - oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install - install -d ${D}${sysconfdir}/init.d/ - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/ - install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc - install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system - sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service - ${DESKTOPINSTALL} -} -DESKTOPINSTALL = "" -DESKTOPINSTALL_libc-glibc () { - install -d ${D}${datadir}/distcc/ - install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/ -} -PACKAGES += "distcc-distmon-gnome" - -FILES_${PN} = " ${sysconfdir} \ - ${bindir}/distcc \ - ${bindir}/lsdistcc \ - ${bindir}/distccd \ - ${bindir}/distccmon-text \ - ${sbindir}/update-distcc-symlinks \ - ${systemd_unitdir}/system/distcc.service" -FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \ - ${datadir}/distcc" diff --git a/external/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb b/external/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb new file mode 100644 index 00000000..c52f136b --- /dev/null +++ b/external/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb @@ -0,0 +1,87 @@ +SUMMARY = "A parallel build system" +DESCRIPTION = "distcc is a parallel build system that distributes \ +compilation of C/C++/ObjC code across machines on a network." +SECTION = "devel" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "avahi binutils" + +PACKAGECONFIG ??= "popt" +PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+" +# use system popt by default +PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt" + +RRECOMMENDS_${PN}-server = "avahi-daemon" + +SRC_URI = "git://github.com/distcc/distcc.git \ + file://fix-gnome.patch \ + file://separatebuilddir.patch \ + file://default \ + file://distcc \ + file://distcc.service" +SRCREV = "4cde9bcfbda589abd842e3bbc652ce369085eaae" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig update-rc.d useradd systemd + +ASNEEDED = "" + +EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode" + +PACKAGE_BEFORE_PN = "${PN}-distmon-gnome ${PN}-server" + +USERADD_PACKAGES = "${PN}-server" +USERADD_PARAM_${PN}-server = "--system \ + --home /dev/null \ + --no-create-home \ + --gid nogroup \ + distcc" + +UPDATERCPN = "${PN}-server" +INITSCRIPT_NAME = "distcc" + +SYSTEMD_PACKAGES = "${PN}-server" +SYSTEMD_SERVICE_${PN}-server = "distcc.service" + +do_install() { + # Improve reproducibility: compress w/o timestamps + oe_runmake 'DESTDIR=${D}' "GZIP_BIN=gzip -n" install + install -d ${D}${sysconfdir}/init.d/ + install -d ${D}${sysconfdir}/default + install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system + sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service +} + +FILES_${PN}-server = "${sysconfdir} \ + ${bindir}/distccd \ + ${sbindir}" +FILES_${PN}-distmon-gnome = "${bindir}/distccmon-gnome \ + ${datadir}/applications \ + ${datadir}/pixmaps" + +# +# distcc upstream dropped the 3.2 branch which we reference in older project releases +# the revisions are there, just the branch is not. In order to be able to continue +# to build those old releases, adjust any mirror tarball to contain the missing branch +# +fixup_distcc_mirror_tarball () { + TBALL=${DL_DIR}/git2_github.com.distcc.distcc.git.tar.gz + if [ -f $TBALL ]; then + TDIR=`mktemp -d` + cd $TDIR + tar -xzf $TBALL + set +e + git rev-parse --verify 3.2 + if [ "$?" != "0" ]; then + git branch 3.2 d8b18df3e9dcbe4f092bed565835d3975e99432c + tar -czf $TBALL * + fi + set -e + rm -rf $TDIR/* + fi +} +do_fetch[postfuncs] += "fixup_distcc_mirror_tarball" diff --git a/external/poky/meta/recipes-devtools/distcc/files/default b/external/poky/meta/recipes-devtools/distcc/files/default index e5ca68b8..a5bc13ec 100644 --- a/external/poky/meta/recipes-devtools/distcc/files/default +++ b/external/poky/meta/recipes-devtools/distcc/files/default @@ -21,4 +21,4 @@ ALLOWEDNETS="127.0.0.1" # # OPTIONS is used for the systemd service file # -OPTIONS="--allow 127.0.0.1 --make-me-a-botnet" +OPTIONS="--allow 127.0.0.1 --enable-tcp-insecure" diff --git a/external/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop b/external/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop deleted file mode 100644 index 7b5d85ce..00000000 --- a/external/poky/meta/recipes-devtools/distcc/files/distccmon-gnome.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Version=0.9.4 -Exec=distccmon-gnome -Name=distcc monitor -GenericName=Distributed Compile Monitor -Comment=Graphical view of distributed compile tasks -Icon=distccmon-gnome-icon -TryExec=distccmon-gnome -Terminal=false -Type=Application -Categories=GNOME;Development; -StartupNotify=true diff --git a/external/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch b/external/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch new file mode 100644 index 00000000..f1f5ed1a --- /dev/null +++ b/external/poky/meta/recipes-devtools/distcc/files/fix-gnome.patch @@ -0,0 +1,122 @@ +Upstream-Status: Backport [https://github.com/distcc/distcc/pull/319] +Signed-off-by: Ross Burton + +From 2faacc2be8d7eeee0a3f66d88fedd1d3ab11070e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Sat, 8 Dec 2018 12:50:07 +0100 +Subject: [PATCH] Fix desktop spec compliance of distccmon-gnome install + +Update the .desktop file and install rules for distccmon-gnome to +conform to the freedesktop.org specifications. More specifically: + +- update to version 1.0 of the spec +- remove obsolete 'Encoding' key +- remove obsolete 'Application' category and add recommended 'GTK' +- install icon file to the correct directory +- strip suffix from desktop file (specifying it is deprecated) +- while at it, remove redundant '-icon' from the filename +- install desktop file to the correct directory +--- + Makefile.in | 18 ++++++++++-------- + gnome/distccmon-gnome.desktop | 7 +++---- + ...mon-gnome-icon.png => distccmon-gnome.png} | Bin + src/mon-gnome.c | 2 +- + 4 files changed, 14 insertions(+), 13 deletions(-) + rename gnome/{distccmon-gnome-icon.png => distccmon-gnome.png} (100%) + +diff --git a/Makefile.in b/Makefile.in +index 6e1e467..1106559 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -52,13 +52,14 @@ mandir = @mandir@ + includedir = @includedir@ + oldincludedir = /usr/include + docdir = @docdir@ +-pkgdatadir = $(datadir)/@PACKAGE_NAME@ ++icondir = $(datarootdir)/pixmaps ++desktopdir = $(datarootdir)/applications + + include_server_builddir = $(builddir)/_include_server + + # These must be done from here, not from autoconf, because they can + # contain variable expansions written in Make syntax. Ew. +-DIR_DEFS = -DLIBDIR="\"${libdir}\"" -DSYSCONFDIR="\"${sysconfdir}\"" -DPKGDATADIR="\"${pkgdatadir}\"" ++DIR_DEFS = -DLIBDIR="\"${libdir}\"" -DSYSCONFDIR="\"${sysconfdir}\"" -DICONDIR="\"${icondir}\"" + + # arguments to pkgconfig + GNOME_PACKAGES = @GNOME_PACKAGES@ +@@ -387,7 +388,7 @@ man_HTML = man/distcc_1.html man/distccd_1.html man/distccmon_text_1.html \ + man/lsdistcc_1.html man/pump_1.html man/include_server_1.html + MEN = $(man1_MEN) + +-gnome_data = gnome/distccmon-gnome-icon.png \ ++gnome_data = gnome/distccmon-gnome.png \ + gnome/distccmon-gnome.desktop + + popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \ +@@ -1033,7 +1034,8 @@ showpaths: + @echo " programs $(DESTDIR)$(bindir)" + @echo " sbin programs $(DESTDIR)$(sbindir)" + @echo " system configuration $(DESTDIR)$(sysconfdir)" +- @echo " shared data files $(DESTDIR)$(pkgdatadir)" ++ @echo " icon file $(DESTDIR)$(icondir)" ++ @echo " application file $(DESTDIR)$(desktopdir)" + + + # install-sh can't handle multiple arguments, but we don't need any +@@ -1129,10 +1131,10 @@ install-example: $(example_DOCS) + done + + install-gnome-data: $(gnome_data) +- $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" +- for p in $(gnome_data); do \ +- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ +- done ++ $(mkinstalldirs) "$(DESTDIR)$(icondir)" ++ $(mkinstalldirs) "$(DESTDIR)$(desktopdir)" ++ $(INSTALL_DATA) gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" ++ $(INSTALL_DATA) gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" + + install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +diff --git a/gnome/distccmon-gnome.desktop b/gnome/distccmon-gnome.desktop +index bd1fa26..7205f5e 100644 +--- a/gnome/distccmon-gnome.desktop ++++ b/gnome/distccmon-gnome.desktop +@@ -1,6 +1,5 @@ + [Desktop Entry] +-Version=0.9.4 +-Encoding=UTF-8 ++Version=1.0 + Exec=distccmon-gnome + Name=distcc monitor + Name[sv]=distcc övervakare +@@ -8,9 +7,9 @@ GenericName=Distributed Compile Monitor + GenericName[sv]=Distribuerad kompilerings-övervakare + Comment=Graphical view of distributed compile tasks + Comment[sv]=Grafisk vy av distribuerade kompileringsuppgifter +-Icon=distccmon-gnome-icon.png ++Icon=distccmon-gnome + TryExec=distccmon-gnome + Terminal=false + Type=Application +-Categories=GNOME;Application;Development; ++Categories=GNOME;GTK;Development; + StartupNotify=true +diff --git a/gnome/distccmon-gnome-icon.png b/gnome/distccmon-gnome.png +similarity index 100% +rename from gnome/distccmon-gnome-icon.png +rename to gnome/distccmon-gnome.png +diff --git a/src/mon-gnome.c b/src/mon-gnome.c +index 24681d0..bfc286d 100644 +--- a/src/mon-gnome.c ++++ b/src/mon-gnome.c +@@ -599,7 +599,7 @@ static GtkWidget * dcc_gnome_make_mainwin (void) + + #if GTK_CHECK_VERSION(2,2,0) + gtk_window_set_icon_from_file (GTK_WINDOW (mainwin), +- PKGDATADIR "/distccmon-gnome-icon.png", ++ ICONDIR "/distccmon-gnome.png", + NULL); + #endif + diff --git a/external/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch b/external/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch index 7580b558..c8da9d51 100644 --- a/external/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch +++ b/external/poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch @@ -1,21 +1,33 @@ -When building with a separate build directory, make install fails, -unable to find the gnome_data files. This patch corrects the -patch and ensures the build works in this case. +Upstream-Status: Backport [https://github.com/distcc/distcc/pull/363] +Signed-off-by: Ross Burton -RP 2013/3/8 +From 469628ee8dc90c7162d1a850c0b179b7349f9cf3 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 17 Sep 2019 13:04:22 +0100 +Subject: [PATCH] Makefile.in: fix out-of-tree builds when the GNOME UI is + enabled -Upstream-Status: Pending +The install command doesn't use $(srcdir) so out-of-tree builds fail. -Index: git/Makefile.in -=================================================================== ---- git.orig/Makefile.in -+++ git/Makefile.in -@@ -1117,7 +1117,7 @@ install-example: $(example_DOCS) +Signed-off-by: Ross Burton +--- + Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 123054f..b9ce974 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -1130,8 +1130,8 @@ install-example: $(example_DOCS) install-gnome-data: $(gnome_data) - $(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)" - for p in $(gnome_data); do \ -- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ -+ $(INSTALL_DATA) "$(srcdir)/$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \ - done + $(mkinstalldirs) "$(DESTDIR)$(icondir)" + $(mkinstalldirs) "$(DESTDIR)$(desktopdir)" +- $(INSTALL_DATA) gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" +- $(INSTALL_DATA) gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" ++ $(INSTALL_DATA) $(srcdir)/gnome/distccmon-gnome.png "$(DESTDIR)$(icondir)" ++ $(INSTALL_DATA) $(srcdir)/gnome/distccmon-gnome.desktop "$(DESTDIR)$(desktopdir)" install-conf: $(conf_files) $(default_files) + $(mkinstalldirs) "$(DESTDIR)$(sysconfdir)/distcc" +-- +2.20.1 diff --git a/external/poky/meta/recipes-devtools/dmidecode/dmidecode/0001-Committing-changes-from-do_unpack_extra.patch b/external/poky/meta/recipes-devtools/dmidecode/dmidecode/0001-Committing-changes-from-do_unpack_extra.patch new file mode 100644 index 00000000..ce9d4231 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dmidecode/dmidecode/0001-Committing-changes-from-do_unpack_extra.patch @@ -0,0 +1,24 @@ +From 00a3ace35d66e7ae60046e254a4d00f0f9c1abe2 Mon Sep 17 00:00:00 2001 +From: OpenEmbedded +Date: Thu, 22 Nov 2018 12:05:04 +0000 +Subject: [PATCH] Do not install to /usr/local + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 77c9310..fc378fd 100644 +--- a/Makefile ++++ b/Makefile +@@ -30,7 +30,7 @@ CFLAGS += -O2 + LDFLAGS = + + DESTDIR = +-prefix = /usr/local ++prefix = /usr + sbindir = $(prefix)/sbin + mandir = $(prefix)/share/man + man8dir = $(mandir)/man8 diff --git a/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.1.bb b/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.1.bb deleted file mode 100644 index b423fda6..00000000 --- a/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.1.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "DMI (Desktop Management Interface) table related utilities" -HOMEPAGE = "http://www.nongnu.org/dmidecode/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/dmidecode/${BP}.tar.xz" - -COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm|powerpc|powerpc64).*-linux" - -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -# The upstream buildsystem uses 'docdir' as the path where it puts AUTHORS, -# README, etc, but we don't want those in the root of our docdir. -docdir .= "/${BPN}" - -do_install() { - oe_runmake DESTDIR="${D}" install -} - -do_unpack_extra() { - sed -i -e '/^prefix/s:/usr/local:${exec_prefix}:' ${S}/Makefile -} -addtask unpack_extra after do_unpack before do_patch - -SRC_URI[md5sum] = "679c2c015c515aa6ca5f229aee49c102" -SRC_URI[sha256sum] = "d766ce9b25548c59b1e7e930505b4cad9a7bb0b904a1a391fbb604d529781ac0" - diff --git a/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.2.bb b/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.2.bb new file mode 100644 index 00000000..63f4061c --- /dev/null +++ b/external/poky/meta/recipes-devtools/dmidecode/dmidecode_3.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "DMI (Desktop Management Interface) table related utilities" +HOMEPAGE = "http://www.nongnu.org/dmidecode/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/dmidecode/${BP}.tar.xz \ + file://0001-Committing-changes-from-do_unpack_extra.patch \ + " + +COMPATIBLE_HOST = "(i.86|x86_64|aarch64|arm|powerpc|powerpc64).*-linux" + +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +# The upstream buildsystem uses 'docdir' as the path where it puts AUTHORS, +# README, etc, but we don't want those in the root of our docdir. +docdir .= "/${BPN}" + +do_install() { + oe_runmake DESTDIR="${D}" install +} + +SRC_URI[md5sum] = "9cc2e27e74ade740a25b1aaf0412461b" +SRC_URI[sha256sum] = "077006fa2da0d06d6383728112f2edef9684e9c8da56752e97cd45a11f838edd" + diff --git a/external/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch b/external/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch index 15a7bfc7..cb09f17a 100644 --- a/external/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch +++ b/external/poky/meta/recipes-devtools/dnf/dnf/0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch @@ -1,7 +1,7 @@ -From a8ef81c115a45f05dad145c98e10f3c4940e4e29 Mon Sep 17 00:00:00 2001 +From ffb7942cc73c3d2c6aa7c689cdaf9bc0bcbc144b Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 26 Jan 2017 16:25:47 +0200 -Subject: [PATCH 3/5] Do not hardcode /etc and systemd unit directories +Subject: [PATCH] Do not hardcode /etc and systemd unit directories Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin @@ -11,20 +11,17 @@ Signed-off-by: Alexander Kanavin 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 650b624a..10199618 100644 +index 73552967..38cf4fbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -7,8 +7,8 @@ if (NOT PYTHON_DESIRED) - set (PYTHON_DESIRED "2") - endif() +@@ -3,8 +3,8 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.4) + + INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake) -SET( SYSCONFDIR /etc) -SET( SYSTEMD_DIR /usr/lib/systemd/system) +SET( SYSCONFDIR ${CMAKE_INSTALL_SYSCONFDIR}) +SET( SYSTEMD_DIR $ENV{systemd_system_unitdir}) - if (${PYTHON_DESIRED} STREQUAL "2") - FIND_PACKAGE (PythonInterp REQUIRED) --- -2.14.2 - + IF (NOT PYTHON_DESIRED) + FIND_PACKAGE (PythonInterp REQUIRED) diff --git a/external/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch b/external/poky/meta/recipes-devtools/dnf/dnf/0001-set-python-path-for-completion_helper.patch new file mode 100644 index 00000000..448f6408 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/external/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch index 6e011915..0ed9afc5 100644 --- a/external/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch +++ b/external/poky/meta/recipes-devtools/dnf/dnf/0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch @@ -1,7 +1,7 @@ -From 7205033e44d8fba1d3b18b490e7eaab82da1ffa3 Mon Sep 17 00:00:00 2001 +From 6be13143a54c79085d400d5bd4c7a6e1cb6ffaf5 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 30 Dec 2016 18:29:07 +0200 -Subject: [PATCH 1/5] Do not set PYTHON_INSTALL_DIR by running python +Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin @@ -11,18 +11,15 @@ Signed-off-by: Alexander Kanavin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 23e5f889..650b624a 100644 +index 38cf4fbf..6c5debd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -18,7 +18,7 @@ else() - FIND_PACKAGE(PythonInterp 3.0 REQUIRED) - endif() +@@ -19,7 +19,7 @@ ELSE () + MESSAGE (FATAL_ERROR "Invalid PYTHON_DESIRED value: " ${PYTHON_DESIRED}) + ENDIF() -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())" 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())" OUTPUT_VARIABLE PYTHON_INSTALL_DIR) - EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION) MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") --- -2.14.2 - + ADD_SUBDIRECTORY (dnf) diff --git a/external/poky/meta/recipes-devtools/dnf/dnf/Fix-SyntaxWarning.patch b/external/poky/meta/recipes-devtools/dnf/dnf/Fix-SyntaxWarning.patch new file mode 100644 index 00000000..1bd8b095 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dnf/dnf/Fix-SyntaxWarning.patch @@ -0,0 +1,34 @@ +From 23c5b15efe42e5e6ee695e54798bac248532d8d6 Mon Sep 17 00:00:00 2001 + +Date: Tue, 28 May 2019 13:14:51 +0200 +Subject: [oe-core][PATCH 1/1] Fix SyntaxWarning: "is" with a literal. Did you + mean "=="? + +--- + dnf/cli/commands/repoquery.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +--- + +Unchanged. Appears in version 4.2.7. + +Upstream-Status: Backport [git://github.com/rpm-software-management/dnf.git] + +Signed-off-by: Joe Slater + + +diff --git a/dnf/cli/commands/repoquery.py b/dnf/cli/commands/repoquery.py +index 941a470..63fc668 100644 +--- a/dnf/cli/commands/repoquery.py ++++ b/dnf/cli/commands/repoquery.py +@@ -611,7 +611,7 @@ class RepoQueryCommand(commands.Command): + + def tree_seed(self, query, aquery, opts, level=-1, usedpkgs=None): + for pkg in sorted(set(query.run()), key=lambda p: p.name): +- usedpkgs = set() if usedpkgs is None or level is -1 else usedpkgs ++ usedpkgs = set() if usedpkgs is None or level == -1 else usedpkgs + if pkg.name.startswith("rpmlib") or pkg.name.startswith("solvable"): + return + self.grow_tree(level, pkg, opts) +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/dnf/dnf_2.7.5.bb b/external/poky/meta/recipes-devtools/dnf/dnf_2.7.5.bb deleted file mode 100644 index df60d731..00000000 --- a/external/poky/meta/recipes-devtools/dnf/dnf_2.7.5.bb +++ /dev/null @@ -1,75 +0,0 @@ -SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://PACKAGE-LICENSING;md5=bfc29916e11321be06924c4fb096fdcc \ - " - -SRC_URI = "git://github.com/rpm-software-management/dnf.git \ - file://0001-Corretly-install-tmpfiles.d-configuration.patch \ - file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ - 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 \ - " - -SRCREV = "564c44667c7014843fa6f1732621093114ec59b2" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -inherit cmake gettext bash-completion distutils3-base systemd - -DEPENDS += "libdnf librepo libcomps python3-iniparse" - -# manpages generation requires http://www.sphinx-doc.org/ -EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS_${PN}_class-target += " \ - python3-core \ - python3-codecs \ - python3-netclient \ - python3-email \ - python3-threading \ - python3-distutils \ - python3-logging \ - python3-fcntl \ - librepo \ - python3-shell \ - libcomps \ - libdnf \ - python3-sqlite3 \ - python3-compression \ - python3-rpm \ - python3-iniparse \ - python3-json \ - python3-curses \ - python3-misc \ - python3-gpg \ - " - -RRECOMMENDS_${PN}_class-target += "gnupg" - -# Create a symlink called 'dnf' as 'make install' does not do it, but -# .spec file in dnf source tree does (and then Fedora and dnf documentation -# says that dnf binary is plain 'dnf'). -do_install_append() { - lnr ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf - lnr ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic -} - -# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/dnf \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 -} - -SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \ - dnf-automatic.service dnf-automatic.timer \ - dnf-automatic-download.service dnf-automatic-download.timer \ - dnf-automatic-install.service dnf-automatic-install.timer \ - dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \ -" -SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/external/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb b/external/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb new file mode 100644 index 00000000..a046ffc0 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dnf/dnf_4.2.2.bb @@ -0,0 +1,90 @@ +SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" +DESCRIPTION = "Software package manager that installs, updates, and removes \ +packages on RPM-based Linux distributions. It automatically computes \ +dependencies and determines the actions required to install packages." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ + " + +SRC_URI = "git://github.com/rpm-software-management/dnf.git \ + file://0001-Corretly-install-tmpfiles.d-configuration.patch \ + file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ + 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://Fix-SyntaxWarning.patch \ + file://0001-set-python-path-for-completion_helper.patch \ + " + +SRCREV = "9947306a55271b8b7c9e2b6e3b7d582885b6045d" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +inherit cmake gettext bash-completion distutils3-base systemd + +DEPENDS += "libdnf librepo libcomps python3-iniparse" + +# manpages generation requires http://www.sphinx-doc.org/ +EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN} += " \ + python3-core \ + python3-codecs \ + python3-netclient \ + python3-email \ + python3-threading \ + python3-distutils \ + python3-logging \ + python3-fcntl \ + librepo \ + python3-shell \ + libcomps \ + libdnf \ + python3-sqlite3 \ + python3-compression \ + python3-rpm \ + python3-iniparse \ + python3-json \ + python3-curses \ + python3-misc \ + python3-gpg \ + " + +RDEPENDS_${PN}_class-native = "" + +RRECOMMENDS_${PN}_class-target += "gnupg" + +# Create a symlink called 'dnf' as 'make install' does not do it, but +# .spec file in dnf source tree does (and then Fedora and dnf documentation +# says that dnf binary is plain 'dnf'). +do_install_append() { + lnr ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf + lnr ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic +} + +# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/dnf \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/dnf \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \ + dnf-automatic.service dnf-automatic.timer \ + dnf-automatic-download.service dnf-automatic-download.timer \ + dnf-automatic-install.service dnf-automatic-install.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/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml.xml b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml.xml deleted file mode 100644 index b71f559e..00000000 --- a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4/docbook-xml.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb index da62b77a..6452c8d9 100644 --- a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb +++ b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb @@ -14,7 +14,6 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-OASIS;md5=c608985dd5f7f215e669e763 SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \ file://LICENSE-OASIS \ file://docbook-xml-update-catalog.xml.patch \ - file://docbook-xml.xml \ " SRC_URI[md5sum] = "487b4d44e15cffb1f4048af23f98208e" @@ -22,7 +21,7 @@ SRC_URI[sha256sum] = "b0f8edcf697f5318e63dd98c9a931f3fee167af0805ba441db372e0f17 UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/" -S="${WORKDIR}/docbook-xml-4.5.c31424" +S = "${WORKDIR}/docbook-xml-4.5.c31424" inherit allarch BBCLASSEXTEND = "native" @@ -36,20 +35,18 @@ do_compile (){ } do_install () { - # Refer debian https://packages.debian.org/sid/all/docbook-xml/filelist + install -d ${D}${sysconfdir}/xml/ + xmlcatalog --create --noout ${D}${sysconfdir}/xml/docbook-xml.xml + for DTDVERSION in 4.0 4.1.2 4.2 4.3 4.4 4.5; do - install -d -m 755 ${D}${datadir}/xml/docbook/schema/dtd/${DTDVERSION} - cp -v -R docbook-${DTDVERSION}/* ${D}${datadir}/xml/docbook/schema/dtd/${DTDVERSION} + DEST=${datadir}/xml/docbook/schema/dtd/$DTDVERSION + install -d -m 755 ${D}$DEST + cp -v -R docbook-$DTDVERSION/* ${D}$DEST + xmlcatalog --verbose --noout --add nextCatalog unused file://$DEST/catalog.xml ${D}${sysconfdir}/xml/docbook-xml.xml done - - install -d ${D}${sysconfdir}/xml/ - install -m 755 ${WORKDIR}/docbook-xml.xml ${D}${sysconfdir}/xml/docbook-xml.xml } -do_install_append_class-native () { - # Ensure that the catalog file sgml-docbook.cat is properly - # updated when the package is installed from sstate cache. - sed -i -e "s|file://.*/usr/share/xml|file://${datadir}/xml|g" ${D}${sysconfdir}/xml/docbook-xml.xml -} +XMLCATALOGS = "${sysconfdir}/xml/docbook-xml.xml" +inherit xmlcatalog FILES_${PN} = "${datadir}/* ${sysconfdir}/xml/docbook-xml.xml" diff --git a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml deleted file mode 100644 index c60555ae..00000000 --- a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb index 07d32ce9..c5d3a248 100644 --- a/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb +++ b/external/poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb @@ -4,7 +4,6 @@ LICENSE = "XSL" LIC_FILES_CHKSUM = "file://COPYING;md5=6beadd98f9c54ab0c387e14211ee4d0e" SRC_URI = "${SOURCEFORGE_MIRROR}/docbook/docbook-xsl-${PV}.tar.bz2 \ - file://docbook-xsl.xml \ file://docbook-xsl-stylesheets-no-bashism-in-docbook-xsl-up.patch \ " @@ -17,8 +16,7 @@ UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P(\d+[\.\-_]*)+(?!\.0)\.\d+)/" S = "${WORKDIR}/docbook-xsl-${PV}" -inherit allarch -BBCLASSEXTEND = "native" +inherit allarch xmlcatalog do_configure (){ : @@ -29,8 +27,6 @@ do_compile (){ } do_install () { - # Refer to http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-xsl.html - # for details. install -v -m755 -d ${D}${datadir}/xml/docbook/xsl-stylesheets-${PV} ln -s xsl-stylesheets-${PV} ${D}${datadir}/xml/docbook/xsl-stylesheets @@ -42,22 +38,14 @@ do_install () { ln -s VERSION ${D}/${datadir}/xml/docbook/xsl-stylesheets-${PV}/VERSION.xsl - install -v -m644 -D README \ - ${D}${datadir}/doc/docbook-xsl-${PV}/README.txt - install -v -m644 RELEASE-NOTES* NEWS* \ - ${D}${datadir}/doc/docbook-xsl-${PV} - - install -d ${D}${sysconfdir}/xml/ - install -m 755 ${WORKDIR}/docbook-xsl.xml ${D}${sysconfdir}/xml/docbook-xsl.xml - -} - -do_install_append_class-native () { - # Ensure that the catalog file sgml-docbook.cat is properly - # updated when the package is installed from sstate cache. - sed -i -e "s|file://.*/usr/share/xml|file://${datadir}/xml|g" ${D}${sysconfdir}/xml/docbook-xsl.xml + install -d ${D}${docdir}/${BPN} + install -v -m644 README RELEASE-NOTES* NEWS* ${D}${docdir}/${BPN} } RDEPENDS_${PN} += "perl" FILES_${PN} = "${datadir}/xml/* ${sysconfdir}/xml/docbook-xsl.xml" FILES_${PN}-doc = "${datadir}/doc/*" + +XMLCATALOGS = "${datadir}/xml/docbook/xsl-stylesheets-${PV}/catalog.xml" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb b/external/poky/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb index 69aa81af..23b88366 100644 --- a/external/poky/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb +++ b/external/poky/meta/recipes-devtools/dosfstools/dosfstools_4.1.bb @@ -23,3 +23,6 @@ EXTRA_OECONF = "--without-udev --enable-compat-symlinks" CFLAGS += "-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" BBCLASSEXTEND = "native" + +# Add codepage437 to avoid error from `dosfsck -l` +RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconv-ibm437" diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg.inc b/external/poky/meta/recipes-devtools/dpkg/dpkg.inc index fe4732d1..1c3c585d 100644 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg.inc +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg.inc @@ -9,15 +9,8 @@ RDEPENDS_${PN}_class-native = "" UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/" -inherit autotools gettext perlnative pkgconfig systemd perl-version +inherit autotools gettext perlnative pkgconfig perl-version update-alternatives -python () { - if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): - pn = d.getVar('PN') - d.setVar('SYSTEMD_SERVICE_%s' % (pn), 'dpkg-configure.service') -} - -export PERL = "${bindir}/perl" PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}" @@ -29,14 +22,14 @@ EXTRA_OECONF = "\ --with-libz \ --with-libbz2 \ --without-libselinux \ + TAR=tar \ " +EXTRA_OECONF_append_class-target = " --disable-update-alternatives DEB_HOST_ARCH=${DPKG_ARCH}" + PACKAGECONFIG = "liblzma" PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" -EXTRA_OECONF += "TAR=tar" -EXTRA_OECONF_append_class-target = " DEB_HOST_ARCH=${DPKG_ARCH}" - do_install_append () { if [ "${PN}" = "dpkg-native" ]; then # update-alternatives doesn't have an offline mode @@ -45,16 +38,6 @@ do_install_append () { else sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-* fi - - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)};then - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/dpkg-configure.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@BINDIR@,${bindir},g' \ - -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \ - ${D}${systemd_unitdir}/system/dpkg-configure.service - fi } PROV = "virtual/update-alternatives" @@ -93,7 +76,10 @@ RDEPENDS_${PN}-perl += "perl-module-carp perl-module-constant \ # the bitbake version. # PACKAGES =+ "${PN}-start-stop" -FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon" +FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon.${BPN}" +ALTERNATIVE_${PN}-start-stop = "start-stop-daemon" +ALTERNATIVE_LINK_NAME[start-stop-daemon] = "${sbindir}/start-stop-daemon" +ALTERNATIVE_PRIORITY = "100" RDEPENDS_${PN} += "${PN}-start-stop" diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/0001-arch-Add-support-for-riscv64-CPU.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/0001-arch-Add-support-for-riscv64-CPU.patch deleted file mode 100644 index 45c606e6..00000000 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/0001-arch-Add-support-for-riscv64-CPU.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 319f32d743f5b5e725012654d124e49226d5de91 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 16 Mar 2018 20:28:24 -0700 -Subject: [PATCH] arch: Add support for riscv64 CPU - - * Architecture support: - - Add support for riscv64 CPU. Closes: #822914 - Thanks to Manuel A. Fernandez Montecelo - -Upstream-Status: Backport [https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=dpkg%2Fdpkg.git;a=commitdiff_plain;h=ee0855cc66076691de4796be48f8a0d889fde001;hp=2f5816d8be40b449d2473b22f9e0c33b32f3bd78] - -Signed-off-by: Khem Raj ---- - data/cputable | 1 + - scripts/t/Dpkg_Arch.t | 4 ++-- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/data/cputable b/data/cputable -index a2bd7d6..9f2a8e0 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 -+riscv64 riscv64 riscv64 64 little - s390 s390 s390 32 big - s390x s390x s390x 64 big - sh3 sh3 sh3 32 little -diff --git a/scripts/t/Dpkg_Arch.t b/scripts/t/Dpkg_Arch.t -index d478b49..ecd5d66 100644 ---- a/scripts/t/Dpkg_Arch.t -+++ b/scripts/t/Dpkg_Arch.t -@@ -16,7 +16,7 @@ - use strict; - use warnings; - --use Test::More tests => 16367; -+use Test::More tests => 16832; - - use_ok('Dpkg::Arch', qw(debarch_to_debtuple debarch_to_multiarch - debarch_eq debarch_is debarch_is_wildcard -@@ -162,7 +162,7 @@ is(gnutriplet_to_debarch(undef), undef, 'undef gnutriplet'); - is(gnutriplet_to_debarch('unknown-unknown-unknown'), undef, 'unknown gnutriplet'); - is(gnutriplet_to_debarch('x86_64-linux-gnu'), 'amd64', 'known gnutriplet'); - --is(scalar get_valid_arches(), 524, 'expected amount of known architectures'); -+is(scalar get_valid_arches(), 539, 'expected amount of known architectures'); - - { - local $ENV{CC} = 'false'; --- -2.16.2 - diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch index 93d87044..9ca7262e 100644 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch @@ -1,7 +1,7 @@ -From 24229971492515b64c81e8c6392e5dfbdc22b44c Mon Sep 17 00:00:00 2001 +From dd11ed66640f79143e42d778b58fdd5a61fb5836 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 26 Aug 2015 16:25:45 +0300 -Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a +Subject: [PATCH] Our pre/postinsts expect $D to be set when running in a sysroot and don't expect a chroot. This matches up our system expectations with what dpkg does. @@ -10,15 +10,16 @@ Upstream-Status: Inappropriate [OE Specific] RP 2011/12/07 ALIMON 2016/05/26 ALIMON 2017/02/21 +KKang 2019/02/20 --- - src/script.c | 44 +++----------------------------------------- - 1 file changed, 3 insertions(+), 41 deletions(-) + src/script.c | 53 +++------------------------------------------------- + 1 file changed, 3 insertions(+), 50 deletions(-) diff --git a/src/script.c b/src/script.c -index 2f252ae..768a9d1 100644 +index abe65b6f7..621ff9b27 100644 --- a/src/script.c +++ b/src/script.c -@@ -97,48 +97,10 @@ setexecute(const char *path, struct stat *stab) +@@ -96,58 +96,11 @@ setexecute(const char *path, struct stat *stab) static const char * maintscript_pre_exec(struct command *cmd) { @@ -26,12 +27,14 @@ index 2f252ae..768a9d1 100644 - const char *changedir; - size_t instdirlen = strlen(instdir); - -- if (instdirlen > 0 && fc_script_chrootless) +- if (instdirlen > 0 && in_force(FORCE_SCRIPT_CHROOTLESS)) - changedir = instdir; - else - changedir = "/"; - -- if (instdirlen > 0 && !fc_script_chrootless) { +- if (instdirlen > 0 && !in_force(FORCE_SCRIPT_CHROOTLESS)) { +- int rc; +- - if (strncmp(admindir, instdir, instdirlen) != 0) - ohshit(_("admindir must be inside instdir for dpkg to work properly")); - if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0) @@ -39,7 +42,12 @@ index 2f252ae..768a9d1 100644 - if (setenv("DPKG_ROOT", "", 1) < 0) - ohshite(_("unable to setenv for subprocesses")); - -- if (chroot(instdir)) +- rc = chroot(instdir); +- if (rc && in_force(FORCE_NON_ROOT) && errno == EPERM) +- ohshit(_("not enough privileges to change root " +- "directory with --force-not-root, consider " +- "using --force-script-chrootless?")); +- else if (rc) - ohshite(_("failed to chroot to '%.250s'"), instdir); + if (*instdir) { + setenv("D", instdir, 1); @@ -61,15 +69,18 @@ index 2f252ae..768a9d1 100644 - args.buf); - varbuf_destroy(&args); - } -- if (instdirlen == 0 || fc_script_chrootless) +- if (instdirlen == 0 || in_force(FORCE_SCRIPT_CHROOTLESS)) - return cmd->filename; - -- assert(strlen(cmd->filename) >= instdirlen); +- if (strlen(cmd->filename) < instdirlen) +- internerr("maintscript name '%s' length < instdir length %zd", +- cmd->filename, instdirlen); + - return cmd->filename + instdirlen; + return cmd->filename; } /** -- -2.1.4 +2.17.1 diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch deleted file mode 100644 index 96e96f27..00000000 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0ad7bba80d5b9035089ff2b2f77a774b5b201915 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 26 Aug 2015 16:28:59 +0300 -Subject: [PATCH 5/5] dpkg-compiler.m4: remove -Wvla -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Remove the -Wvla flag from the set of compiler warning flags, since gcc -on old host systems such as CentOS 5.8 doesn't support it, and it -causes a build error for dpkg-native. - -Upstream-Status: Pending - -Signed-off-by: Donn Seeley -Signed-off-by: Robert Yang -Signed-off-by: Aníbal Limón ---- - m4/dpkg-compiler.m4 | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4 -index 682857c..23ed7d0 100644 ---- a/m4/dpkg-compiler.m4 -+++ b/m4/dpkg-compiler.m4 -@@ -52,7 +52,6 @@ AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [ - DPKG_CHECK_COMPILER_FLAG([-Wlogical-op]) - DPKG_CHECK_COMPILER_FLAG([-Wlogical-not-parentheses]) - DPKG_CHECK_COMPILER_FLAG([-Wswitch-bool]) -- DPKG_CHECK_COMPILER_FLAG([-Wvla]) - DPKG_CHECK_COMPILER_FLAG([-Winit-self]) - DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings]) - DPKG_CHECK_COMPILER_FLAG([-Wcast-align]) --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch index 1b985df0..4f79a40d 100644 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch @@ -18,22 +18,26 @@ Upstream-Status: Inappropriate [Configuration] [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759999#20 [2] https://lists.gnu.org/archive/html/help-tar/2016-01/msg00000.html + +Update patch context for dpkg 1.19.4. + +Signed-off-by: Kai Kang --- dpkg-deb/build.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c -index a92b58e..a3d1912 100644 +index 68d1875..053fcb7 100644 --- a/dpkg-deb/build.c +++ b/dpkg-deb/build.c -@@ -450,7 +450,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, +@@ -457,7 +457,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, command_init(&cmd, TAR, "tar -cf"); command_add_args(&cmd, "tar", "-cf", "-", "--format=gnu", - "--mtime", mtime, "--clamp-mtime", NULL); + "--mtime", mtime, NULL); /* Mode might become a positional argument, pass it before -T. */ - if (mode) - command_add_args(&cmd, "--mode", mode, NULL); + if (options->mode) + command_add_args(&cmd, "--mode", options->mode, NULL); -- 2.11.0 diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service b/external/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service deleted file mode 100644 index 9a248ccb..00000000 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=dpkg first boot configure -DefaultDependencies=no -After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount -Before=sysinit.target - -[Service] -Type=oneshot -EnvironmentFile=-@SYSCONFDIR@/default/postinst -ExecStart=-@BASE_BINDIR@/sh -c " if [ $POSTINST_LOGGING = '1' ]; then @BINDIR@/dpkg --configure -a > $LOGFILE 2>&1; else @BINDIR@/dpkg --configure -a; fi" -ExecStartPost=@BASE_BINDIR@/systemctl --no-reload disable dpkg-configure.service -StandardOutput=syslog -RemainAfterExit=No - -[Install] -WantedBy=basic.target -WantedBy=sysinit.target diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch deleted file mode 100644 index d4838664..00000000 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 9d260d408f9e17abd1d1dccd685bd7e80a3655a9 Mon Sep 17 00:00:00 2001 -From: Donn Seeley -Date: Tue, 25 Feb 2014 17:44:04 +0800 -Subject: [PATCH] dpkg: fix a link problem for dpkg-native on CentOS 5.8 - -CentOS 5.8 kernels and headers support the sync_file_range() system call, -but glibc 2.5 doesn't provide the syscall stub. It appears that this -problem is known but will never be fixed: - - https://bugzilla.redhat.com/show_bug.cgi?id=518581 - - Bug 518581 - [RHEL5] glibc misses sync_file_range syscall interface - - Status: CLOSED CANTFIX - Last Closed: 2009-11-22 22:19:55 - - Kirby Zhou 2009-08-20 23:37:55 EDT - - Description of problem: - - glibc misses sync_file_range syscall interface. The header file and - man page both say 'sync_file_range' should exist. From man page, - sync_file_range should exist sinc kernel-2.6.17 - - Andreas Schwab 2009-08-21 03:24:24 EDT - - It has only been added to glibc 2.6, and cannot be backported due to - ABI breakage. You can always fall back to syscall(3). - - Ulrich Drepper 2009-11-22 22:19:55 EST - - As comment #1 says, no chance to backport this. - - See the syscall man page for instructions. - - Jon E 2010-03-19 10:32:37 EDT - - then why document it if it's broken and you're not going to fix it? - .. might want to FTFM over at sync_file_range(2) - in the meantime - - borrowing from glibc 2.6 .. any thoughts on this implementation for a - hacky workaround for those still on your "ancient releases" .. (eg: - RHEL5.3)?: - - #ifdef ULI_WONT_FIX_THIS_IN_GLIBC2.5 - #define NR_sync_file_range 277 - int sync_file_range (int fd, __off64_t from, __off64_t to, unsigned int flags) - { - return syscall (NR_sync_file_range, fd, - __LONG_LONG_PAIR ((long) (from >> 32), (long) from), - __LONG_LONG_PAIR ((long) (to >> 32), (long) to), - flags); - } - #endif - - assuming of course that you're on an x86_64 and include/asm- - x86_64/unistd.h has the correct entry - - (fwiw - fio is starting to use this now) - -Rather than attempting to provide an implementation using syscall(), -we take the more conservative route and ignore header support for -sync_file_range() flags when the glibc version is <= 2.5. - -Upstream-Status: Inappropriate [everyone else builds on newer hosts :-)] - -Signed-off-by: Donn Seeley -Signed-off-by: Lei Liu - ---- - src/archives.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/archives.c b/src/archives.c -index 4b2fc92..a92b795 100644 ---- a/src/archives.c -+++ b/src/archives.c -@@ -69,7 +69,7 @@ fd_writeback_init(int fd) - /* Ignore the return code as it should be considered equivalent to an - * asynchronous hint for the kernel, we are doing an fsync() later on - * anyway. */ --#if defined(SYNC_FILE_RANGE_WRITE) -+#if defined(SYNC_FILE_RANGE_WRITE) && __GLIBC_PREREQ(2, 6) - sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE); - #elif defined(HAVE_POSIX_FADVISE) - posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED); -@@ -1078,7 +1078,7 @@ tarobject(void *ctx, struct tar_entry *ti) - return 0; - } - --#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) -+#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) && __GLIBC_PREREQ(2, 6) - static void - tar_writeback_barrier(struct fileinlist *files, struct pkginfo *pkg) - { --- -2.16.2 - diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch new file mode 100644 index 00000000..e56b9d28 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch @@ -0,0 +1,21 @@ +pager: Use less instead of pager + +pager is a Debianism. Istead use directly pager. + +Upstream-Status: Inappropriate [OE-Core integration specific] + +Suggested-by: Burton, Ross +Signed-off-by: Ricardo Ribalda +diff --git a/lib/dpkg/dpkg.h b/lib/dpkg/dpkg.h +index 2bb067a..6cbce80 100644 +--- a/lib/dpkg/dpkg.h ++++ b/lib/dpkg/dpkg.h +@@ -95,7 +95,7 @@ DPKG_BEGIN_DECLS + #define MAXUPDATES 250 + + #define DEFAULTSHELL "sh" +-#define DEFAULTPAGER "pager" ++#define DEFAULTPAGER "less" + + #define MD5HASHLEN 32 + #define MAXTRIGDIRECTIVE 256 diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch b/external/poky/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch new file mode 100644 index 00000000..e9119918 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch @@ -0,0 +1,27 @@ +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 +--- +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/external/poky/meta/recipes-devtools/dpkg/dpkg_1.18.24.bb b/external/poky/meta/recipes-devtools/dpkg/dpkg_1.18.24.bb deleted file mode 100644 index 6d8ec347..00000000 --- a/external/poky/meta/recipes-devtools/dpkg/dpkg_1.18.24.bb +++ /dev/null @@ -1,22 +0,0 @@ -require dpkg.inc -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = "http://snapshot.debian.org/archive/debian/20170518T093838Z/pool/main/d/dpkg/dpkg_1.18.24.tar.xz \ - file://noman.patch \ - file://remove-tar-no-timestamp.patch \ - file://arch_pm.patch \ - file://dpkg-configure.service \ - file://add_armeb_triplet_entry.patch \ - file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ - file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ - file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ - file://0005-dpkg-compiler.m4-remove-Wvla.patch \ - file://0006-add-musleabi-to-known-target-tripets.patch \ - file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ - file://0001-dpkg-Support-muslx32-build.patch \ - file://0001-arch-Add-support-for-riscv64-CPU.patch \ - " -SRC_URI_append_class-native = " file://glibc2.5-sync_file_range.patch " - -SRC_URI[md5sum] = "02e8af8faf1e689228da806c3e8c6882" -SRC_URI[sha256sum] = "d853081d3e06bfd46a227056e591f094e42e78fa8a5793b0093bad30b710d7b4" diff --git a/external/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb b/external/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb new file mode 100644 index 00000000..e9dec337 --- /dev/null +++ b/external/poky/meta/recipes-devtools/dpkg/dpkg_1.19.7.bb @@ -0,0 +1,22 @@ +require dpkg.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ + file://noman.patch \ + file://remove-tar-no-timestamp.patch \ + file://arch_pm.patch \ + file://add_armeb_triplet_entry.patch \ + file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ + file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ + file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ + file://0006-add-musleabi-to-known-target-tripets.patch \ + file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ + file://0001-dpkg-Support-muslx32-build.patch \ + file://pager.patch \ + " +SRC_URI_append_class-native = " \ + file://tweak-options-require-tar-1.27.patch \ +" + +SRC_URI[md5sum] = "60f57c5494e6dfa177504d47bfa0e383" +SRC_URI[sha256sum] = "4c27fededf620c0aa522fff1a48577ba08144445341257502e7730f2b1a296e8" diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc index a54a11c3..009f5ed8 100644 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc +++ b/external/poky/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/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-configure.ac-correct-AM_GNU_GETTEXT.patch new file mode 100644 index 00000000..2719594c --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch deleted file mode 100644 index c89581dc..00000000 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-create_inode-fix-copying-large-files.patch +++ /dev/null @@ -1,50 +0,0 @@ -Upstream-Status: Submitted -Signed-off-by: Ross Burton - -From 674ab87b8338372338d20e21a350f88b4ff6c7c8 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Fri, 1 Feb 2019 10:59:59 +0000 -Subject: [PATCH] create_inode: fix copying large files - -When copying large files into a ext filesystem at mkfs time the copy fails at -2^31 bytes in. There are two problems: - -copy_file_chunk() passes an offset (off_t, 64-bit typically) to -ext2fs_file_lseek() which expects a ext2_off_t (typedef to __u32) so the value -is truncated. Solve by calling ext2fs_file_llseek() which takes a u64 offset -instead. - -try_lseek_copy() rounds the data and hole offsets as found by lseek() to block -boundaries, but the calculation gets truncated to 32-bits. Solve by casting the -32-bit blocksize to off_t to ensure this doesn't happen. - -Signed-off-by: Ross Burton ---- - misc/create_inode.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/misc/create_inode.c b/misc/create_inode.c -index 05aa6363..f106dcda 100644 ---- a/misc/create_inode.c -+++ b/misc/create_inode.c -@@ -438,7 +438,7 @@ static errcode_t copy_file_chunk(ext2_filsys fs, int fd, ext2_file_t e2_file, - ptr += blen; - continue; - } -- err = ext2fs_file_lseek(e2_file, off + bpos, -+ err = ext2fs_file_llseek(e2_file, off + bpos, - EXT2_SEEK_SET, NULL); - if (err) - goto fail; -@@ -481,7 +481,7 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf, - return EXT2_ET_UNIMPLEMENTED; - - data_blk = data & ~(fs->blocksize - 1); -- hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1); -+ hole_blk = (hole + (off_t)(fs->blocksize - 1)) & ~(off_t)(fs->blocksize - 1); - err = copy_file_chunk(fs, fd, e2_file, data_blk, hole_blk, buf, - zerobuf); - if (err) --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-don-t-try-to-rehash-a-deleted-directory.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-don-t-try-to-rehash-a-deleted-directory.patch new file mode 100644 index 00000000..ba4e3a3c --- /dev/null +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-don-t-try-to-rehash-a-deleted-directory.patch @@ -0,0 +1,49 @@ +From 71ba13755337e19c9a826dfc874562a36e1b24d3 Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Thu, 19 Dec 2019 19:45:06 -0500 +Subject: [PATCH] e2fsck: don't try to rehash a deleted directory + +If directory has been deleted in pass1[bcd] processing, then we +shouldn't try to rehash the directory in pass 3a when we try to +rehash/reoptimize directories. + +Signed-off-by: Theodore Ts'o + +Upstream-Status: Backport [https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=71ba13755337e19c9a826dfc874562a36e1b24d3] +Signed-off-by: Anuj Mittal +--- + e2fsck/pass1b.c | 4 ++++ + e2fsck/rehash.c | 2 ++ + 2 files changed, 6 insertions(+) + +diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c +index 5693b9cf..bca701ca 100644 +--- a/e2fsck/pass1b.c ++++ b/e2fsck/pass1b.c +@@ -705,6 +705,10 @@ static void delete_file(e2fsck_t ctx, ext2_ino_t ino, + fix_problem(ctx, PR_1B_BLOCK_ITERATE, &pctx); + if (ctx->inode_bad_map) + ext2fs_unmark_inode_bitmap2(ctx->inode_bad_map, ino); ++ if (ctx->inode_reg_map) ++ ext2fs_unmark_inode_bitmap2(ctx->inode_reg_map, ino); ++ ext2fs_unmark_inode_bitmap2(ctx->inode_dir_map, ino); ++ ext2fs_unmark_inode_bitmap2(ctx->inode_used_map, ino); + ext2fs_inode_alloc_stats2(fs, ino, -1, LINUX_S_ISDIR(dp->inode.i_mode)); + quota_data_sub(ctx->qctx, &dp->inode, ino, + pb.dup_blocks * fs->blocksize); +diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c +index 3dd1e941..2c908be0 100644 +--- a/e2fsck/rehash.c ++++ b/e2fsck/rehash.c +@@ -1028,6 +1028,8 @@ void e2fsck_rehash_directories(e2fsck_t ctx) + if (!ext2fs_u32_list_iterate(iter, &ino)) + break; + } ++ if (!ext2fs_test_inode_bitmap2(ctx->inode_dir_map, ino)) ++ continue; + + pctx.dir = ino; + if (first) { +-- +2.24.1 + diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch new file mode 100644 index 00000000..31b585fc --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/CVE-2019-5188.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/CVE-2019-5188.patch new file mode 100644 index 00000000..de4bce00 --- /dev/null +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/CVE-2019-5188.patch @@ -0,0 +1,57 @@ +From 8dd73c149f418238f19791f9d666089ef9734dff Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Thu, 19 Dec 2019 19:37:34 -0500 +Subject: [PATCH] e2fsck: abort if there is a corrupted directory block when + rehashing + +In e2fsck pass 3a, when we are rehashing directories, at least in +theory, all of the directories should have had corruptions with +respect to directory entry structure fixed. However, it's possible +(for example, if the user declined a fix) that we can reach this stage +of processing with a corrupted directory entries. + +So check for that case and don't try to process a corrupted directory +block so we don't run into trouble in mutate_name() if there is a +zero-length file name. + +Addresses: TALOS-2019-0973 +Addresses: CVE-2019-5188 +Signed-off-by: Theodore Ts'o + +CVE: CVE-2019-5188 +Signed-off-by: Anuj Mittal +Upstream-Status: Backport [https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=8dd73c149f418238f19791f9d666089ef9734dff] +--- + e2fsck/rehash.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c +index a5fc1be1..3dd1e941 100644 +--- a/e2fsck/rehash.c ++++ b/e2fsck/rehash.c +@@ -160,6 +160,10 @@ static int fill_dir_block(ext2_filsys fs, + dir_offset += rec_len; + if (dirent->inode == 0) + continue; ++ if ((name_len) == 0) { ++ fd->err = EXT2_ET_DIR_CORRUPTED; ++ return BLOCK_ABORT; ++ } + if (!fd->compress && (name_len == 1) && + (dirent->name[0] == '.')) + continue; +@@ -401,6 +405,11 @@ static int duplicate_search_and_fix(e2fsck_t ctx, ext2_filsys fs, + continue; + } + new_len = ext2fs_dirent_name_len(ent->dir); ++ if (new_len == 0) { ++ /* should never happen */ ++ ext2fs_unmark_valid(fs); ++ continue; ++ } + memcpy(new_name, ent->dir->name, new_len); + mutate_name(new_name, &new_len); + for (j=0; j < fd->num_array; j++) { +-- +2.24.1 + diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch deleted file mode 100644 index d7e09b6b..00000000 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0a392baf1874964651115d9f77b0daa6851d1daa Mon Sep 17 00:00:00 2001 -From: Jonathan Liu -Date: Tue, 1 Mar 2016 14:28:01 +1100 -Subject: [PATCH] Revert "mke2fs: enable the metadata_csum and 64bit features - by default" - -This reverts commit cd27af3ecb83e8fd1e3eaa14994284a1818c7c15 as we -don't want to enable features by default that are not supported by -the latest stable e2fsprogs release. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Jonathan Liu - -Rebase to 1.43: -The upstream has disabled metadata_csum by default -this rebase just revert 64bit feature. -Signed-off-by: Hongxu Jia ---- - misc/mke2fs.conf.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in -index 01e35cf..25105b3 100644 ---- a/misc/mke2fs.conf.in -+++ b/misc/mke2fs.conf.in -@@ -11,8 +11,9 @@ - features = has_journal - } - ext4 = { -- features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize -+ features = has_journal,extent,huge_file,flex_bg,metadata_csum,dir_nlink,extra_isize - inode_size = 256 -+ auto_64-bit_support = 1 - } - small = { - blocksize = 1024 diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsck-fix-use-after-free-in-calculate_tree.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsck-fix-use-after-free-in-calculate_tree.patch new file mode 100644 index 00000000..342a2b85 --- /dev/null +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsck-fix-use-after-free-in-calculate_tree.patch @@ -0,0 +1,76 @@ +From: Wang Shilong +Date: Mon, 30 Dec 2019 19:52:39 -0500 +Subject: e2fsck: fix use after free in calculate_tree() + +The problem is alloc_blocks() will call get_next_block() which might +reallocate outdir->buf, and memory address could be changed after +this. To fix this, pointers that point into outdir->buf, such as +int_limit and root need to be recaulated based on the new starting +address of outdir->buf. + +[ Changed to correctly recalculate int_limit, and to optimize how we + reallocate outdir->buf. -TYT ] + +Addresses-Debian-Bug: 948517 +Signed-off-by: Wang Shilong +Signed-off-by: Theodore Ts'o +(cherry picked from commit 101e73e99ccafa0403fcb27dd7413033b587ca01) + +Signed-off-by: Anuj Mittal +Upstream-Status: Backport [https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=101e73e99ccafa0403fcb27dd7413033b587ca01] +--- + e2fsck/rehash.c | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/e2fsck/rehash.c b/e2fsck/rehash.c +index 0a5888a9..2574e151 100644 +--- a/e2fsck/rehash.c ++++ b/e2fsck/rehash.c +@@ -295,7 +295,11 @@ static errcode_t get_next_block(ext2_filsys fs, struct out_dir *outdir, + errcode_t retval; + + if (outdir->num >= outdir->max) { +- retval = alloc_size_dir(fs, outdir, outdir->max + 50); ++ int increment = outdir->max / 10; ++ ++ if (increment < 50) ++ increment = 50; ++ retval = alloc_size_dir(fs, outdir, outdir->max + increment); + if (retval) + return retval; + } +@@ -637,6 +641,9 @@ static int alloc_blocks(ext2_filsys fs, + if (retval) + return retval; + ++ /* outdir->buf might be reallocated */ ++ *prev_ent = (struct ext2_dx_entry *) (outdir->buf + *prev_offset); ++ + *next_ent = set_int_node(fs, block_start); + *limit = (struct ext2_dx_countlimit *)(*next_ent); + if (next_offset) +@@ -726,6 +733,9 @@ static errcode_t calculate_tree(ext2_filsys fs, + return retval; + } + if (c3 == 0) { ++ int delta1 = (char *)int_limit - outdir->buf; ++ int delta2 = (char *)root - outdir->buf; ++ + retval = alloc_blocks(fs, &limit, &int_ent, + &dx_ent, &int_offset, + NULL, outdir, i, &c2, +@@ -733,6 +743,11 @@ static errcode_t calculate_tree(ext2_filsys fs, + if (retval) + return retval; + ++ /* outdir->buf might be reallocated */ ++ int_limit = (struct ext2_dx_countlimit *) ++ (outdir->buf + delta1); ++ root = (struct ext2_dx_entry *) ++ (outdir->buf + delta2); + } + dx_ent->block = ext2fs_cpu_to_le32(i); + if (c3 != limit->limit) +-- +2.24.1 + diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch index 69c09bc1..4d335af4 100644 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch +++ b/external/poky/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 e8331a76983e839a3d193446ab8ae9c1b09daa07 Mon Sep 17 00:00:00 2001 From: Jackie Huang 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 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/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch index 4e6b6292..c3e46ce6 100644 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/ptest.patch @@ -5,11 +5,13 @@ Subject: [PATCH] e2fsprogs: add ptest Upstream-Status: Inappropriate +Rebase for e2fsprogs 1.45.3. + +Signed-off-by: Kai Kang --- - tests/Makefile.in | 4 ++-- - tests/test_config | 32 ++++++++++++++++---------------- - tests/test_script.in | 2 +- - 3 files changed, 19 insertions(+), 19 deletions(-) + tests/Makefile.in | 4 ++-- + tests/test_config | 32 ++++++++++++++++---------------- + 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/Makefile.in b/tests/Makefile.in index 8c4d2048..e021af32 100644 @@ -34,10 +36,10 @@ index 8c4d2048..e021af32 100644 @chmod +x-w test_script diff --git a/tests/test_config b/tests/test_config -index 1f146ca2..05125f9c 100644 +index 9dc762ce..a5fbdef6 100644 --- a/tests/test_config +++ b/tests/test_config -@@ -3,16 +3,16 @@ +@@ -3,25 +3,25 @@ # unset LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME PAGER @@ -62,12 +64,6 @@ index 1f146ca2..05125f9c 100644 +DEBUGFS="$USE_VALGRIND debugfs" +DEBUGFS_EXE="/sbin/debugfs" TEST_BITS="test_data.tmp" - if [ ! -s $TEST_BITS ]; then - # create a non-sparse test file if possible, since debugfs may be -@@ -21,14 +21,14 @@ if [ ! -s $TEST_BITS ]; then - dd if=/dev/urandom of=$TEST_BITS bs=128k count=1 > /dev/null 2>&1 || - TEST_BITS="$DEFBUGFS_EXE" - fi -RESIZE2FS_EXE="../resize/resize2fs" +RESIZE2FS_EXE="/sbin/resize2fs" RESIZE2FS="$USE_VALGRIND $RESIZE2FS_EXE" @@ -85,16 +81,3 @@ index 1f146ca2..05125f9c 100644 CLEAN_OUTPUT="sed -f $cmd_dir/filter.sed" LD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${LD_LIBRARY_PATH} DYLD_LIBRARY_PATH=../lib:../lib/ext2fs:../lib/e2p:../lib/et:../lib/ss:${DYLD_LIBRARY_PATH} -diff --git a/tests/test_script.in b/tests/test_script.in -index 9959e308..442999db 100644 ---- a/tests/test_script.in -+++ b/tests/test_script.in -@@ -39,7 +39,7 @@ for i; do - done - - if test "$TESTS"x = x ; then -- if test -n "DO_FAILED"; then -+ if test -n "$DO_FAILED"; then - exit 0 - fi - TESTS=`ls -d $SRCDIR/[a-zA-Z]_*` diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch index 830e9d57..95e6a7a2 100644 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch @@ -1,14 +1,23 @@ +From de6d6f0dd010f5b9d917553acb9430278f448f23 Mon Sep 17 00:00:00 2001 +From: Ross Burton +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 +--- + 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/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb deleted file mode 100644 index cffb5362..00000000 --- a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb +++ /dev/null @@ -1,136 +0,0 @@ -require e2fsprogs.inc - -SRC_URI += "file://remove.ldconfig.call.patch \ - file://run-ptest \ - file://ptest.patch \ - file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch \ - file://mkdir_p.patch \ - file://0001-misc-create_inode.c-set-dir-s-mode-correctly.patch \ - file://0001-create_inode-fix-copying-large-files.patch \ - " - -SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \ - file://quiet-debugfs.patch \ -" - -SRCREV = "85e53f42f98d5334914de01e972e9ed44bccd0a5" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+\.\d+(\.\d+)*)$" - -EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \ - --enable-elf-shlibs --disable-libuuid --disable-uuidd \ - --disable-libblkid --enable-verbose-makecmds" - -EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse' - -# make locale rules sometimes fire, sometimes don't as git doesn't preserve -# file mktime. Touch the files introducing non-determinism to the build -do_compile_prepend (){ - find ${S}/po -type f -name "*.po" -exec touch {} + -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - oe_runmake 'DESTDIR=${D}' install-libs - # We use blkid from util-linux now so remove from here - rm -f ${D}${base_libdir}/libblkid* - rm -rf ${D}${includedir}/blkid - rm -f ${D}${base_libdir}/pkgconfig/blkid.pc - rm -f ${D}${base_sbindir}/blkid - rm -f ${D}${base_sbindir}/fsck - rm -f ${D}${base_sbindir}/findfs - - # e2initrd_helper and the pkgconfig files belong in libdir - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - install -d ${D}${libdir} - mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir} - mv ${D}${base_libdir}/pkgconfig ${D}${libdir} - fi - - oe_multilib_header ext2fs/ext2_types.h - install -d ${D}${base_bindir} - mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs - - install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/ - - # Clean host path (build directory) in compile_et, mk_cmds - sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et - sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds -} - -# Need to find the right mke2fs.conf file -e2fsprogs_conf_fixup () { - for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do - create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf - done -} - -do_install_append_class-native() { - e2fsprogs_conf_fixup -} - -do_install_append_class-nativesdk() { - e2fsprogs_conf_fixup -} - -do_install_append_class-target() { - mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs - mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs - mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs -} - -RDEPENDS_e2fsprogs = "e2fsprogs-badblocks" -RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck" - -PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs" -PACKAGES =+ "libcomerr libss libe2p libext2fs" - -FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*" -FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*" -FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf" -FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label" -FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks" -FILES_libcomerr = "${base_libdir}/libcom_err.so.*" -FILES_libss = "${base_libdir}/libss.so.*" -FILES_libe2p = "${base_libdir}/libe2p.so.*" -FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*" -FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds" - -ALTERNATIVE_${PN} = "chattr" -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr" -ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs" - -ALTERNATIVE_${PN}-doc = "fsck.8" -ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" - -ALTERNATIVE_${PN}-mke2fs = "mke2fs mkfs.ext2" -ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs" -ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2" - -ALTERNATIVE_${PN}-tune2fs = "tune2fs" -ALTERNATIVE_LINK_NAME[tune2fs] = "${base_sbindir}/tune2fs" - -RDEPENDS_${PN}-ptest += "${PN} ${PN}-tune2fs coreutils procps bash bzip2 diffutils perl" - -do_compile_ptest() { - oe_runmake -C ${B}/tests -} - -do_install_ptest() { - cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test - cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test - sed -e 's!../e2fsck/e2fsck!e2fsck!g' \ - -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect* - sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script - - # Remove various files - find "${D}${PTEST_PATH}" -type f \ - \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\ - -exec rm -f {} + - - install -d ${D}${PTEST_PATH}/lib - install -m 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/ -} diff --git a/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb new file mode 100644 index 00000000..4f7cafea --- /dev/null +++ b/external/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.4.bb @@ -0,0 +1,144 @@ +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://0001-configure.ac-correct-AM_GNU_GETTEXT.patch \ + file://0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch \ + file://CVE-2019-5188.patch \ + file://0001-e2fsck-don-t-try-to-rehash-a-deleted-directory.patch \ + file://e2fsck-fix-use-after-free-in-calculate_tree.patch \ + " + +SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \ + file://quiet-debugfs.patch \ +" + +SRCREV = "984ff8d6a0a1d5dc300505f67b38ed5047d51dac" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P\d+\.\d+(\.\d+)*)$" + +EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \ + --enable-elf-shlibs --disable-libuuid --disable-uuidd \ + --disable-libblkid --enable-verbose-makecmds \ + --with-crond-dir=no" + +EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse' + +# make locale rules sometimes fire, sometimes don't as git doesn't preserve +# file mktime. Touch the files introducing non-determinism to the build +do_compile_prepend (){ + find ${S}/po -type f -name "*.po" -exec touch {} + +} + +do_install () { + oe_runmake 'DESTDIR=${D}' install + oe_runmake 'DESTDIR=${D}' install-libs + # We use blkid from util-linux now so remove from here + rm -f ${D}${base_libdir}/libblkid* + rm -rf ${D}${includedir}/blkid + rm -f ${D}${base_libdir}/pkgconfig/blkid.pc + rm -f ${D}${base_sbindir}/blkid + rm -f ${D}${base_sbindir}/fsck + rm -f ${D}${base_sbindir}/findfs + + # e2initrd_helper and the pkgconfig files belong in libdir + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + install -d ${D}${libdir} + mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir} + mv ${D}${base_libdir}/pkgconfig ${D}${libdir} + fi + + oe_multilib_header ext2fs/ext2_types.h + install -d ${D}${base_bindir} + mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs + + install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/ + + # Clean host path (build directory) in compile_et, mk_cmds + sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et + sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds +} + +# Need to find the right mke2fs.conf file +e2fsprogs_conf_fixup () { + for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4; do + create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf + done +} + +do_install_append_class-native() { + e2fsprogs_conf_fixup +} + +do_install_append_class-nativesdk() { + e2fsprogs_conf_fixup +} + +do_install_append_class-target() { + mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.e2fsprogs + mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.e2fsprogs + mv ${D}${base_sbindir}/tune2fs ${D}${base_sbindir}/tune2fs.e2fsprogs +} + +RDEPENDS_e2fsprogs = "e2fsprogs-badblocks e2fsprogs-dumpe2fs" +RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck" + +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*" +FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.e2fsprogs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf" +FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs.e2fsprogs ${base_sbindir}/e2label" +FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks" +FILES_libcomerr = "${base_libdir}/libcom_err.so.*" +FILES_libss = "${base_libdir}/libss.so.*" +FILES_libe2p = "${base_libdir}/libe2p.so.*" +FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*" +FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds" + +ALTERNATIVE_${PN} = "chattr" +ALTERNATIVE_PRIORITY = "100" +ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr" +ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs" + +ALTERNATIVE_${PN}-doc = "fsck.8" +ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8" + +ALTERNATIVE_${PN}-mke2fs = "mke2fs mkfs.ext2" +ALTERNATIVE_LINK_NAME[mke2fs] = "${base_sbindir}/mke2fs" +ALTERNATIVE_LINK_NAME[mkfs.ext2] = "${base_sbindir}/mkfs.ext2" + +ALTERNATIVE_${PN}-tune2fs = "tune2fs" +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-badblocks e2fsprogs-dumpe2fs e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-resize2fs e2fsprogs-tune2fs" + +do_compile_ptest() { + oe_runmake -C ${B}/tests +} + +do_install_ptest() { + cp -R --no-dereference --preserve=mode,links -v ${B}/tests ${D}${PTEST_PATH}/test + cp -R --no-dereference --preserve=mode,links -v ${S}/tests/* ${D}${PTEST_PATH}/test + sed -e 's!../e2fsck/e2fsck!e2fsck!g' \ + -e 's!../misc/tune2fs!tune2fs!g' -i ${D}${PTEST_PATH}/test/*/expect* + sed -e 's!../e2fsck/e2fsck!${base_sbindir}/e2fsck!g' -i ${D}${PTEST_PATH}/test/*/script + + # Remove various files + find "${D}${PTEST_PATH}" -type f \ + \( -name 'Makefile' -o -name 'Makefile.in' -o -name '*.o' -o -name '*.c' -o -name '*.h' \)\ + -exec rm -f {} + + + install -d ${D}${PTEST_PATH}/lib + install -m 0644 ${B}/lib/config.h ${D}${PTEST_PATH}/lib/ +} diff --git a/external/poky/meta/recipes-devtools/elfutils/elfutils_0.175.bb b/external/poky/meta/recipes-devtools/elfutils/elfutils_0.175.bb deleted file mode 100644 index 862a9b6c..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/elfutils_0.175.bb +++ /dev/null @@ -1,79 +0,0 @@ -SUMMARY = "Utilities and libraries for handling compiled object files" -HOMEPAGE = "https://sourceware.org/elfutils" -SECTION = "base" -LICENSE = "(GPLv3 & Elfutils-Exception)" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "libtool bzip2 zlib virtual/libintl" -DEPENDS_append_libc-musl = " argp-standalone fts " -# The Debian patches below are from: -# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.175-1.debian.tar.xz -SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ - file://0001-dso-link-change.patch \ - file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ - 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://CVE-2019-7149.patch \ - file://CVE-2019-7150.patch \ - file://CVE-2019-7146_p1.patch \ - file://CVE-2019-7146_p2.patch \ - file://CVE-2019-7664.patch \ - file://CVE-2019-7665.patch \ - " -SRC_URI_append_libc-musl = " file://0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch" - -SRC_URI[md5sum] = "9a02b0382b78cc2d515fb950275d4c02" -SRC_URI[sha256sum] = "f7ef925541ee32c6d15ae5cb27da5f119e01a5ccdbe9fe57bf836730d7b7a65b" - -inherit autotools gettext - -EXTRA_OECONF = "--program-prefix=eu- --without-lzma" -EXTRA_OECONF_append_class-native = " --without-bzlib" - -do_install_append() { - if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then - rm -f ${D}${bindir}/eu-objdump - fi -} - -EXTRA_OEMAKE_class-native = "" -EXTRA_OEMAKE_class-nativesdk = "" - -ALLOW_EMPTY_${PN}_libc-musl = "1" - -BBCLASSEXTEND = "native nativesdk" - -# Package utilities separately -PACKAGES =+ "${PN}-binutils libelf libasm libdw" -FILES_${PN}-binutils = "\ - ${bindir}/eu-addr2line \ - ${bindir}/eu-ld \ - ${bindir}/eu-nm \ - ${bindir}/eu-readelf \ - ${bindir}/eu-size \ - ${bindir}/eu-strip" - -FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" -FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" -FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" -# Some packages have the version preceeding the .so instead properly -# versioned .so., so we need to reorder and repackage. -#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" -#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" - -# The package contains symlinks that trip up insane -INSANE_SKIP_${MLPREFIX}libdw = "dev-so" diff --git a/external/poky/meta/recipes-devtools/elfutils/elfutils_0.178.bb b/external/poky/meta/recipes-devtools/elfutils/elfutils_0.178.bb new file mode 100644 index 00000000..c500ae3c --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/elfutils_0.178.bb @@ -0,0 +1,157 @@ +SUMMARY = "Utilities and libraries for handling compiled object files" +HOMEPAGE = "https://sourceware.org/elfutils" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv3+ & GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +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 +SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ + file://0001-dso-link-change.patch \ + file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ + file://0003-fixheadercheck.patch \ + file://0004-Disable-the-test-to-convert-euc-jp.patch \ + file://0006-Fix-build-on-aarch64-musl.patch \ + file://0001-libasm-may-link-with-libbz2-if-found.patch \ + file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ + file://debian/hppa_backend.diff \ + file://debian/arm_backend.diff \ + file://debian/mips_backend.diff \ + file://debian/mips_readelf_w.patch \ + file://debian/kfreebsd_path.patch \ + file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \ + file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ + file://debian/0003-Add-mips-n64-relocation-format-hack.patch \ + file://debian/hurd_path.patch \ + file://debian/ignore_strmerge.diff \ + file://debian/disable_werror.patch \ + file://debian/testsuite-ignore-elflint.diff \ + file://debian/mips_cfi.patch \ + file://debian/0001-fix-compile-failure-with-debian-patches.patch \ + file://0001-skip-the-test-when-gcc-not-deployed.patch \ + file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \ + file://run-ptest \ + file://ptest.patch \ + " +SRC_URI_append_libc-musl = " \ + file://0001-musl-obstack-fts.patch \ + file://0002-musl-libs.patch \ + file://0003-musl-utils.patch \ + file://0004-Fix-error-on-musl.patch \ + " +SRC_URI[md5sum] = "5480d0b7174446aba13a6adde107287f" +SRC_URI[sha256sum] = "31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2" + +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" + +RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils" + +EXTRA_OECONF_append_class-target = " --disable-tests-rpath" + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" + +do_compile_ptest() { + cd ${B}/tests + oe_runmake buildtest-TESTS oecheck +} + +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 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 + fi + 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} + cp -r ${B}/backends ${D}${PTEST_PATH} + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + fi +} + +EXTRA_OEMAKE_class-native = "" +EXTRA_OEMAKE_class-nativesdk = "" + +BBCLASSEXTEND = "native nativesdk" + +# Package utilities separately +PACKAGES =+ "${PN}-binutils libelf libasm libdw" + +# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ +# according to NEWS file: +# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone +# programs. There is now also a formal CONTRIBUTING document describing how to +# submit patches." +LICENSE_${PN}-binutils = "GPLv3+" +LICENSE_${PN} = "GPLv3+" +LICENSE_libelf = "GPLv2 | LGPLv3+" +LICENSE_libasm = "GPLv2 | LGPLv3+" +LICENSE_libdw = "GPLv2 | LGPLv3+" + +FILES_${PN}-binutils = "\ + ${bindir}/eu-addr2line \ + ${bindir}/eu-ld \ + ${bindir}/eu-nm \ + ${bindir}/eu-readelf \ + ${bindir}/eu-size \ + ${bindir}/eu-strip" + +FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" +FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" +FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" +# Some packages have the version preceeding the .so instead properly +# versioned .so., so we need to reorder and repackage. +#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" +#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" + +# The package contains symlinks that trip up insane +INSANE_SKIP_${MLPREFIX}libdw = "dev-so" + +# 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 +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/test-nlist \ + ${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 \ + ${PKGD}${PTEST_PATH}/src/elfcmp \ + ${PKGD}${PTEST_PATH}/src/objdump \ + ${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 libasm.so.1" diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch index 4c62dc51..62031073 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-dso-link-change.patch @@ -1,7 +1,7 @@ -From c9c6d2414651dbf163dc4963c3c3d6f5cacef898 Mon Sep 17 00:00:00 2001 +From ec9a7742734aae5417c0ebbffce66ac353e6cae7 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 15 Aug 2017 17:10:57 +0800 -Subject: [PATCH 1/7] dso link change +Subject: [PATCH] dso link change Upstream-Status: Pending @@ -16,16 +16,17 @@ more details. Rebase to 0.170 Signed-off-by: Hongxu Jia + --- src/Makefile.am | 2 +- tests/Makefile.am | 2 +- 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 @@ -33,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 b45ecdc..dd256fb 100644 +index eab4ae6..f59a01f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am -@@ -436,7 +436,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 @@ -47,6 +48,3 @@ index b45ecdc..dd256fb 100644 libelf = ../libelf/libelf.so libasm = ../libasm/libasm.so endif --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch index c342053a..73ead6d4 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-libasm-may-link-with-libbz2-if-found.patch @@ -1,4 +1,4 @@ -From 74629016e76343a4bf39915c9192b6bf26a57c2d Mon Sep 17 00:00:00 2001 +From 8e5fff8b1d819e0870fb22b27950bb5f10c7a272 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 4 Oct 2017 22:30:46 -0700 Subject: [PATCH] libasm may link with libbz2 if found @@ -11,21 +11,22 @@ where indirect libraries may be not found by linker Upstream-Status: Pending Signed-off-by: Khem Raj + --- src/Makefile.am | 4 ++-- 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 @@ -33,6 +34,3 @@ index 9305b84..9b7e853 100644 libdw = ../libdw/libdw.so $(zip_LIBS) $(libelf) $(libebl) -ldl libelf = ../libelf/libelf.so endif --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch index 1bdb5116..b26ed99f 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch @@ -1,4 +1,4 @@ -From 3393a2e544818f0bd1887c13f28a76ad60c2df98 Mon Sep 17 00:00:00 2001 +From e571cbd0c20085ec71969971f19280b5de95cfb7 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Thu, 16 Aug 2018 09:58:26 +0800 Subject: [PATCH] libelf/elf_end.c: check data_list.data.d.d_buf before free it @@ -14,6 +14,7 @@ The segmentation fault happens when prelink call elf_end(). Upstream-Status: Submitted [https://sourceware.org/ml/elfutils-devel/2018-q3/msg00085.html] Signed-off-by: Robert Yang + --- libelf/elf_end.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) @@ -41,6 +42,3 @@ index 160f0b8..5280a70 100644 free (scn->rawdata_base); /* Free the list of data buffers for the section. --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch new file mode 100644 index 00000000..f751a2ec --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch @@ -0,0 +1,127 @@ +From 8ccf3d92b8766b53f203df7e01b489604ef851f3 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:17:25 +0800 +Subject: [PATCH 1/4] musl-obstack-fts + +Look for libfts and libobstack during configure, these +libraries are external to libc when using musl, whereas +on glibc these libraries are provided in libc itself. + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia + +--- + configure.ac | 54 +++++++++++++++++++++++++++++++++++++++++++++++ + libdw/Makefile.am | 2 +- + src/Makefile.am | 6 +++--- + 3 files changed, 58 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index cad7b2b..6d4229b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -529,6 +529,60 @@ else + fi + AC_SUBST([argp_LDADD]) + ++dnl Check if we have fts available from our libc ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#if !defined(__x86_64__) ++ #undef _FILE_OFFSET_BITS ++ #define _FILE_OFFSET_BITS 32 ++ #endif ++ #include ], ++ [FTS* fts = 0; return fts_close(fts); return 0;] ++ )], ++ [libc_has_fts="true"], ++ [libc_has_fts="false"] ++) ++ ++dnl If our libc doesn't provide fts, then test for libfts ++if test "$libc_has_fts" = "false" ; then ++ AC_MSG_WARN("libc does not have fts") ++ AC_CHECK_LIB([fts], [fts_close], [have_fts="true"], [have_fts="false"]) ++ ++ if test "$have_fts" = "false"; then ++ AC_MSG_ERROR("no libfts found") ++ else ++ fts_LDADD="-lfts" ++ fi ++else ++ fts_LDADD="" ++fi ++AC_SUBST([fts_LDADD]) ++ ++dnl Check if we have obstack available from our libc ++AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM( ++ [#include ], ++ [_obstack_begin(0, 0, 0, NULL, NULL); return 0;] ++ )], ++ [libc_has_obstack="true"], ++ [libc_has_obstack="false"] ++) ++ ++dnl If our libc doesn't provide obstack, then test for libobstack ++if test "$libc_has_obstack" = "false" ; then ++ AC_MSG_WARN("libc does not have obstack") ++ AC_CHECK_LIB([obstack], [_obstack_begin], [have_obstack="true"], [have_obstack="false"]) ++ ++ if test "$have_obstack" = "false"; then ++ AC_MSG_ERROR("no libobstack found") ++ else ++ obstack_LDADD="-lobstack" ++ fi ++else ++ obstack_LDADD="" ++fi ++AC_SUBST([obstack_LDADD]) ++ + dnl The directories with content. + + dnl Documentation. +diff --git a/libdw/Makefile.am b/libdw/Makefile.am +index 33b5838..ff92e02 100644 +--- a/libdw/Makefile.am ++++ b/libdw/Makefile.am +@@ -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) -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) + $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \ +diff --git a/src/Makefile.am b/src/Makefile.am +index 13d9bda..d5a4f7d 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -69,7 +69,7 @@ ar_no_Wstack_usage = yes + unstrip_no_Wstack_usage = yes + + 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) +@@ -78,9 +78,9 @@ findtextrel_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) + addr2line_LDADD = $(libdw) $(libelf) $(libeu) $(argp_LDADD) $(demanglelib) + 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) + stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib) + elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch new file mode 100644 index 00000000..3303333c --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch @@ -0,0 +1,32 @@ +From 2e2232d0935bf8ef6e66ebffba3be68a73b5b3e5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 8 Sep 2019 15:57:59 -0700 +Subject: [PATCH] ppc_initreg.c: Incliude asm/ptrace.h for pt_regs definition + +Fixes +| ../../elfutils-0.176/backends/ppc_initreg.c:79:22: error: field 'r' has incomplete type +| struct pt_regs r; +| ^ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + backends/ppc_initreg.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c +index 0e0d359..e5cca7e 100644 +--- a/backends/ppc_initreg.c ++++ b/backends/ppc_initreg.c +@@ -33,6 +33,7 @@ + #include + #if defined(__powerpc__) && defined(__linux__) + # include ++# include + # include + #endif + +-- +2.23.0 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch b/external/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch new file mode 100644 index 00000000..de8c05f1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0001-skip-the-test-when-gcc-not-deployed.patch @@ -0,0 +1,73 @@ +From e82a055f85e398cb03a4eaf5faf351a3a1f19344 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Tue, 21 May 2019 15:20:34 +0800 +Subject: [PATCH v2] skip the test when gcc not deployed + +Skip the tests which depend on gcc when +gcc not deployed. + +Upstream-Status: Submitted[https://sourceware.org/ml/elfutils-devel/2019-q2/msg00091.html] + +Signed-off-by: Mingli Yu +--- + tests/run-disasm-x86-64.sh | 2 ++ + tests/run-disasm-x86.sh | 2 ++ + tests/run-strip-g.sh | 2 ++ + tests/run-strip-nothing.sh | 2 ++ + 4 files changed, 8 insertions(+) + +diff --git a/tests/run-disasm-x86-64.sh b/tests/run-disasm-x86-64.sh +index a6be62b..c3ef238 100755 +--- a/tests/run-disasm-x86-64.sh ++++ b/tests/run-disasm-x86-64.sh +@@ -22,6 +22,8 @@ case "`uname -m`" in + x86_64) + tempfiles testfile45.o + testfiles testfile45.S testfile45.expect ++ # skip the case if no gcc deployed ++ which gcc || exit 77 + gcc -m64 -c -o testfile45.o testfile45.S + testrun_compare ${abs_top_builddir}/src/objdump -d testfile45.o < testfile45.expect + ;; +diff --git a/tests/run-disasm-x86.sh b/tests/run-disasm-x86.sh +index 28a3df7..544fc28 100755 +--- a/tests/run-disasm-x86.sh ++++ b/tests/run-disasm-x86.sh +@@ -22,6 +22,8 @@ case "`uname -m`" in + x86_64 | i?86 ) + tempfiles testfile44.o + testfiles testfile44.S testfile44.expect ++ # skip the case if no gcc deployed ++ which gcc || exit 77 + gcc -m32 -c -o testfile44.o testfile44.S + testrun_compare ${abs_top_builddir}/src/objdump -d testfile44.o < testfile44.expect + ;; +diff --git a/tests/run-strip-g.sh b/tests/run-strip-g.sh +index 1303819..a943dec 100755 +--- a/tests/run-strip-g.sh ++++ b/tests/run-strip-g.sh +@@ -24,6 +24,8 @@ + + tempfiles a.out strip.out debug.out readelf.out + ++# skip the test if gcc deployed ++which gcc || exit 77 + echo Create debug a.out. + echo "int main() { return 1; }" | gcc -g -xc - + +diff --git a/tests/run-strip-nothing.sh b/tests/run-strip-nothing.sh +index 914fdfb..d03f734 100755 +--- a/tests/run-strip-nothing.sh ++++ b/tests/run-strip-nothing.sh +@@ -22,6 +22,8 @@ + + tempfiles a.out strip.out debug.out + ++# skip the case if no gcc deployed ++which gcc || exit 77 + # Create no-debug a.out. + echo "int main() { return 1; }" | gcc -s -xc - + +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch b/external/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch index 86d26bdf..96c2565e 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch @@ -1,7 +1,7 @@ -From 9fd4bb05d3f2b7eaf9fe441bee26d3b1878d7cc7 Mon Sep 17 00:00:00 2001 +From f8e4118b60a9b54950437006a82b4047f38f5347 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 15 Aug 2017 17:13:59 +0800 -Subject: [PATCH 2/7] Fix elf_cvt_gunhash if dest and src are same. +Subject: [PATCH] Fix elf_cvt_gunhash if dest and src are same. Upstream-Status: Pending @@ -12,6 +12,7 @@ Signed-off-by: Baoshan Pang Rebase to 0.170 Signed-off-by: Hongxu Jia + --- libelf/gnuhash_xlate.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) @@ -37,6 +38,3 @@ index 6faf113..04d9ca1 100644 /* Now the 64 bit words. */ Elf64_Xword *dest64 = (Elf64_Xword *) &dest32[4]; --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch new file mode 100644 index 00000000..cf146838 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch @@ -0,0 +1,145 @@ +From ea908c7009de5a208383abf4bec4c6b3d9519ca3 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:18:47 +0800 +Subject: [PATCH 2/4] musl-libs + +Collection of fixes needed to compile libelf and other libraries +provided by elfutils for musl targets + +error is glibc specific API, so this patch will mostly not accepted +upstream given that elfutils has been closely tied to glibc + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia + +--- + lib/error.h | 27 +++++++++++++++++++++++++++ + lib/fixedsizehash.h | 1 - + lib/libeu.h | 1 + + libdwfl/dwfl_error.c | 9 +++++++++ + libdwfl/linux-kernel-modules.c | 1 + + libelf/elf.h | 9 ++++++--- + 6 files changed, 44 insertions(+), 4 deletions(-) + create mode 100644 lib/error.h + +diff --git a/lib/error.h b/lib/error.h +new file mode 100644 +index 0000000..ef06827 +--- /dev/null ++++ b/lib/error.h +@@ -0,0 +1,27 @@ ++#ifndef _ERROR_H_ ++#define _ERROR_H_ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned int error_message_count = 0; ++ ++static inline void error(int status, int errnum, const char* format, ...) ++{ ++ va_list ap; ++ fprintf(stderr, "%s: ", program_invocation_name); ++ va_start(ap, format); ++ vfprintf(stderr, format, ap); ++ va_end(ap); ++ if (errnum) ++ fprintf(stderr, ": %s", strerror(errnum)); ++ fprintf(stderr, "\n"); ++ error_message_count++; ++ if (status) ++ exit(status); ++} ++ ++#endif /* _ERROR_H_ */ +diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h +index dac2a5f..43016fc 100644 +--- a/lib/fixedsizehash.h ++++ b/lib/fixedsizehash.h +@@ -30,7 +30,6 @@ + #include + #include + #include +-#include + + #include + +diff --git a/lib/libeu.h b/lib/libeu.h +index ecb4d01..edc85e3 100644 +--- a/lib/libeu.h ++++ b/lib/libeu.h +@@ -29,6 +29,7 @@ + #ifndef LIBEU_H + #define LIBEU_H + ++#include "system.h" + #include + #include + +diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c +index 7bcf61c..11dcc8b 100644 +--- a/libdwfl/dwfl_error.c ++++ b/libdwfl/dwfl_error.c +@@ -154,7 +154,16 @@ dwfl_errmsg (int error) + switch (error &~ 0xffff) + { + case OTHER_ERROR (ERRNO): ++#if defined(__GLIBC__) + return strerror_r (error & 0xffff, "bad", 0); ++#else ++ { ++ static __thread char buf[128] = ""; ++ if (strerror_r (error & 0xffff, buf, sizeof(buf)) == 0) ++ return buf; ++ } ++ return "strerror_r() failed"; ++#endif + case OTHER_ERROR (LIBELF): + 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 +--- a/libdwfl/linux-kernel-modules.c ++++ b/libdwfl/linux-kernel-modules.c +@@ -50,6 +50,7 @@ + #include + #include + #include ++#include "system.h" + + /* 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 +--- a/libelf/elf.h ++++ b/libelf/elf.h +@@ -21,7 +21,9 @@ + + #include + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /* Standard ELF types. */ + +@@ -4029,6 +4031,7 @@ enum + #define R_NDS32_TLS_TPOFF 102 + #define R_NDS32_TLS_DESC 119 + +-__END_DECLS +- ++#ifdef __cplusplus ++} ++#endif + #endif /* elf.h */ +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch b/external/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch index d1c8e414..e36d3f44 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0003-fixheadercheck.patch @@ -1,7 +1,7 @@ -From 04fb3f65ec186df5231dd0c21780a55dcc03c868 Mon Sep 17 00:00:00 2001 +From dd7c8c730457def5f62ebd43022b2f06df8c6ed9 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 15 Aug 2017 17:17:20 +0800 -Subject: [PATCH 3/7] fixheadercheck +Subject: [PATCH] fixheadercheck For some binaries we can get a invalid section alignment, for example if sh_align = 1 and sh_addralign is 0. In the case of a zero size section @@ -16,6 +16,7 @@ Upstream-Status: Pending Rebase to 0.170 Signed-off-by: Hongxu Jia + --- libelf/elf32_updatenull.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -35,6 +36,3 @@ index 3e9ef61..5351518 100644 { __libelf_seterrno (ELF_E_INVALID_ALIGN); return -1; --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/external/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch new file mode 100644 index 00000000..79c9d9ad --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch @@ -0,0 +1,166 @@ +From 94028b16e56c8eef1aa02dcc4da268a0e471b4ea Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:19:48 +0800 +Subject: [PATCH 3/4] musl-utils + +Provide missing defines which otherwise are available on glibc system headers + +Alter the error API to match posix version +use qsort instead of qsort_r which is glibc specific API + +Signed-off-by: Khem Raj +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia + +--- + src/arlib.h | 6 ++++++ + src/elfcompress.c | 7 +++++++ + src/readelf.c | 20 ++++++++++++-------- + src/strip.c | 7 +++++++ + src/unstrip.c | 9 +++++++++ + 5 files changed, 41 insertions(+), 8 deletions(-) + +diff --git a/src/arlib.h b/src/arlib.h +index e117166..8326f6c 100644 +--- a/src/arlib.h ++++ b/src/arlib.h +@@ -29,6 +29,12 @@ + #include + #include + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(DEFFILEMODE) ++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ ++#endif + + /* State of -D/-U flags. */ + extern bool arlib_deterministic_output; +diff --git a/src/elfcompress.c b/src/elfcompress.c +index 6ba6af4..0c7674b 100644 +--- a/src/elfcompress.c ++++ b/src/elfcompress.c +@@ -37,6 +37,13 @@ + #include "libeu.h" + #include "printversion.h" + ++#if !defined(ALLPERMS) ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +diff --git a/src/readelf.c b/src/readelf.c +index 5994615..f3cc071 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -4829,10 +4829,11 @@ listptr_base (struct listptr *p) + return cudie_base (&cu); + } + ++static const char *listptr_name; ++ + static int +-compare_listptr (const void *a, const void *b, void *arg) ++compare_listptr (const void *a, const void *b) + { +- const char *name = arg; + struct listptr *p1 = (void *) a; + struct listptr *p2 = (void *) b; + +@@ -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"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (p1->dwarf64 != p2->dwarf64) + { + p1->warned = p2->warned = true; + error (0, 0, + gettext ("%s %#" PRIx64 " used with different offset sizes"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (listptr_base (p1) != listptr_base (p2)) + { + p1->warned = p2->warned = true; + error (0, 0, + gettext ("%s %#" PRIx64 " used with different base addresses"), +- name, (uint64_t) p1->offset); ++ listptr_name, (uint64_t) p1->offset); + } + if (p1->attr != p2 ->attr) + { +@@ -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"), +- name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr), ++ listptr_name, (uint64_t) p1->offset, dwarf_attr_name (p2->attr), + dwarf_attr_name (p2->attr)); + } + } +@@ -4942,8 +4943,11 @@ static void + sort_listptr (struct listptr_table *table, const char *name) + { + if (table->n > 0) +- qsort_r (table->table, table->n, sizeof table->table[0], +- &compare_listptr, (void *) name); ++ { ++ listptr_name = name; ++ qsort (table->table, table->n, sizeof table->table[0], ++ &compare_listptr); ++ } + } + + static bool +diff --git a/src/strip.c b/src/strip.c +index 4054c2a..d2d2176 100644 +--- a/src/strip.c ++++ b/src/strip.c +@@ -46,6 +46,13 @@ + #include + #include + ++#if !defined(ACCESSPERMS) ++# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ ++#endif ++#if !defined(FNM_EXTMATCH) ++# define FNM_EXTMATCH (0) ++#endif ++ + typedef uint8_t GElf_Byte; + + /* Name and version of program. */ +diff --git a/src/unstrip.c b/src/unstrip.c +index 9b8c09a..1fb5063 100644 +--- a/src/unstrip.c ++++ b/src/unstrip.c +@@ -56,6 +56,15 @@ + # define _(str) gettext (str) + #endif + ++#ifndef strndupa ++#define strndupa(s, n) \ ++ ({const char *__in = (s); \ ++ size_t __len = strnlen (__in, (n)) + 1; \ ++ char *__out = (char *) alloca (__len); \ ++ __out[__len-1] = '\0'; \ ++ (char *) memcpy (__out, __in, __len-1);}) ++#endif ++ + /* Name and version of program. */ + ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; + +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0004-Disable-the-test-to-convert-euc-jp.patch b/external/poky/meta/recipes-devtools/elfutils/files/0004-Disable-the-test-to-convert-euc-jp.patch index bf3a645b..5dee6121 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0004-Disable-the-test-to-convert-euc-jp.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0004-Disable-the-test-to-convert-euc-jp.patch @@ -1,7 +1,7 @@ -From dbc88349b9eed4268db951df2c3a8387f75a32e7 Mon Sep 17 00:00:00 2001 +From e4ede22e28eaa38d81667ddcb19541ece1a83cf8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 15 Aug 2017 17:24:06 +0800 -Subject: [PATCH 4/7] Disable the test to convert euc-jp +Subject: [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" @@ -15,6 +15,7 @@ Signed-off-by: Roy Li Rebase to 0.170 Signed-off-by: Hongxu Jia + --- m4/iconv.m4 | 2 ++ 1 file changed, 2 insertions(+) @@ -39,6 +40,3 @@ index a503646..299f1eb 100644 return result; }]])], [am_cv_func_iconv_works=yes], --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/external/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch new file mode 100644 index 00000000..1b2f9ed9 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch @@ -0,0 +1,39 @@ +From 7ff8cbecde7455b530fa7894a78d2326799f2556 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Wed, 1 May 2019 22:15:03 +0100 +Subject: [PATCH 4/4] 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'? +| fdnew = open (fnew, O_WRONLY | O_CREAT, st.st_mode & ALLPERMS); +| ^~~~~~~~ +| EPERM +| ../../elfutils-0.176/tests/elfstrmerge.c:370:60: note: each undeclared identifier is reported only once for each function it appears in + +Upstream-Status: Inappropriate [workaround in musl] + +Signed-off-by: Richard Purdie + +--- + 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" + ++/* for musl */ ++#ifndef ALLPERMS ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)/* 07777 */ ++#endif ++ + /* The original ELF file. */ + static int fd = -1; + static Elf *elf = NULL; +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch b/external/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch index 40b8544f..6f7956c5 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/0006-Fix-build-on-aarch64-musl.patch @@ -1,7 +1,7 @@ -From b4ec05953f78af26bcd7de45a5bbc5f138d023da Mon Sep 17 00:00:00 2001 +From 578f370c7e7a9f056aefa062b34590b0aa13bce5 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 15 Aug 2017 17:27:30 +0800 -Subject: [PATCH 6/7] Fix build on aarch64/musl +Subject: [PATCH] Fix build on aarch64/musl Errors @@ -16,6 +16,7 @@ Signed-off-by: Khem Raj Rebase to 0.170 Signed-off-by: Hongxu Jia + --- backends/aarch64_initreg.c | 4 ++-- backends/arm_initreg.c | 2 +- @@ -56,6 +57,3 @@ index efcabaf..062bb9e 100644 # include # include /* Deal with old glibc defining user_pt_regs instead of user_regs_struct. */ --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch b/external/poky/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch deleted file mode 100644 index bba420e3..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/0007-Fix-control-path-where-we-have-str-as-uninitialized-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 8eb100b2e51be5d473b0748a223e2e7f61ec606c Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 29 Jun 2018 15:14:28 +0800 -Subject: [PATCH 7/7] 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 -Upstream-Status: Pending - -Rebase to 0.172 - -Signed-off-by: Hongxu Jia ---- - 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"); - } - } --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/external/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch deleted file mode 100644 index 41981f4a..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/0008-build-Provide-alternatives-for-glibc-assumptions-hel.patch +++ /dev/null @@ -1,226 +0,0 @@ -From 207be05c44da5c4c31179a34660e176145ff8d4b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Jul 2018 09:52:23 +0800 -Subject: [PATCH] build: Provide alternatives for glibc assumptions helps - compiling it on musl - -Upstream-Status: Pending -Signed-off-by: Khem Raj - -Rebase to 0.175 - -Signed-off-by: Hongxu Jia ---- - Makefile.am | 2 +- - lib/fixedsizehash.h | 1 - - lib/system.h | 12 +++++++++++- - libdw/Makefile.am | 3 ++- - libdwfl/dwfl_build_id_find_elf.c | 1 + - libdwfl/dwfl_error.c | 4 +++- - libdwfl/dwfl_module_getdwarf.c | 1 + - libdwfl/libdwfl_crc32_file.c | 9 +++++++++ - libdwfl/linux-kernel-modules.c | 1 + - libelf/elf.h | 8 ++++++-- - libelf/libelf.h | 1 + - libelf/libelfP.h | 1 + - 12 files changed, 37 insertions(+), 7 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 2ff444e..41f77df 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -28,7 +28,7 @@ pkginclude_HEADERS = version.h - - # Add doc back when we have some real content. - SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \ -- backends src po tests -+ backends po tests - - EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \ - COPYING COPYING-GPLV2 COPYING-LGPLV3 -diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h -index dac2a5f..43016fc 100644 ---- a/lib/fixedsizehash.h -+++ b/lib/fixedsizehash.h -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - #include - -diff --git a/lib/system.h b/lib/system.h -index 292082b..308a762 100644 ---- a/lib/system.h -+++ b/lib/system.h -@@ -30,7 +30,7 @@ - #define LIB_SYSTEM_H 1 - - #include --#include -+#include - #include - #include - #include -@@ -51,6 +51,16 @@ - #else - # error "Unknown byte order" - #endif -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ -+#define error(status, errno, ...) err(status, __VA_ARGS__) - - #ifndef MAX - #define MAX(m, n) ((m) < (n) ? (n) : (m)) -diff --git a/libdw/Makefile.am b/libdw/Makefile.am -index 7a3d532..7ac1241 100644 ---- a/libdw/Makefile.am -+++ b/libdw/Makefile.am -@@ -108,7 +108,8 @@ 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 - libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so --libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) -+fts_LDADD = -lfts -+libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(zip_LIBS) $(fts_LDADD) - 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 -diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c -index cc6c3f6..b06ab59 100644 ---- a/libdwfl/dwfl_build_id_find_elf.c -+++ b/libdwfl/dwfl_build_id_find_elf.c -@@ -31,6 +31,7 @@ - #endif - - #include "libdwflP.h" -+#include "system.h" - #include - #include - #include -diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c -index 7bcf61c..c345797 100644 ---- a/libdwfl/dwfl_error.c -+++ b/libdwfl/dwfl_error.c -@@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error) - const char * - dwfl_errmsg (int error) - { -+ static __thread char s[64] = ""; - if (error == 0 || error == -1) - { - int last_error = global_error; -@@ -154,7 +155,8 @@ dwfl_errmsg (int error) - switch (error &~ 0xffff) - { - case OTHER_ERROR (ERRNO): -- return strerror_r (error & 0xffff, "bad", 0); -+ strerror_r (error & 0xffff, s, sizeof(s)); -+ return s; - case OTHER_ERROR (LIBELF): - return elf_errmsg (error & 0xffff); - case OTHER_ERROR (LIBDW): -diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c -index 56e6105..f4a0649 100644 ---- a/libdwfl/dwfl_module_getdwarf.c -+++ b/libdwfl/dwfl_module_getdwarf.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include "system.h" - #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */ - #include "../libelf/libelfP.h" - #include "system.h" -diff --git a/libdwfl/libdwfl_crc32_file.c b/libdwfl/libdwfl_crc32_file.c -index f849128..6f0aca1 100644 ---- a/libdwfl/libdwfl_crc32_file.c -+++ b/libdwfl/libdwfl_crc32_file.c -@@ -29,6 +29,15 @@ - # include - #endif - -+#ifndef TEMP_FAILURE_RETRY -+#define TEMP_FAILURE_RETRY(expression) \ -+ (__extension__ \ -+ ({ long int __result; \ -+ do __result = (long int) (expression); \ -+ while (__result == -1L && errno == EINTR); \ -+ __result; })) -+#endif -+ - #define crc32_file attribute_hidden __libdwfl_crc32_file - #define crc32 __libdwfl_crc32 - #include -diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index 360e4ee..b5aa397 100644 ---- a/libdwfl/linux-kernel-modules.c -+++ b/libdwfl/linux-kernel-modules.c -@@ -41,6 +41,7 @@ - - #include "libelfP.h" - #include "libdwflP.h" -+#include "system.h" - #include - #include - #include -diff --git a/libelf/elf.h b/libelf/elf.h -index 5dc632b..14da1b7 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -21,7 +21,9 @@ - - #include - --__BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - - /* Standard ELF types. */ - -@@ -3937,6 +3939,8 @@ enum - #define R_METAG_TLS_LE_HI16 60 - #define R_METAG_TLS_LE_LO16 61 - --__END_DECLS -+#ifdef __cplusplus -+} -+#endif - - #endif /* elf.h */ -diff --git a/libelf/libelf.h b/libelf/libelf.h -index 1ff11c9..c21e018 100644 ---- a/libelf/libelf.h -+++ b/libelf/libelf.h -@@ -29,6 +29,7 @@ - #ifndef _LIBELF_H - #define _LIBELF_H 1 - -+#include - #include - #include - -diff --git a/libelf/libelfP.h b/libelf/libelfP.h -index 9f3e8e9..10a347a 100644 ---- a/libelf/libelfP.h -+++ b/libelf/libelfP.h -@@ -32,6 +32,7 @@ - - #include - #include -+#include - - #include - #include --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p1.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p1.patch deleted file mode 100644 index b6cd29af..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p1.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 012018907ca05eb0ab51d424a596ef38fc87cae1 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 16 Jan 2019 11:57:35 +0100 -Subject: [PATCH] libebl: Check GNU property note pr_datasz fits inside note - description. - -Before printing the data values, make sure pr_datasz doesn't go beyond -the end of the note description data. - -https://sourceware.org/bugzilla/show_bug.cgi?id=24075 - -Signed-off-by: Mark Wielaard - -Upstream-Status: Backport -CVE: CVE-2019-7146 patch #1 -Signed-off-by: Armin Kuster - ---- - libebl/ChangeLog | 4 ++++ - libebl/eblobjnote.c | 7 +++++++ - 2 files changed, 11 insertions(+) - -Index: elfutils-0.175/libebl/eblobjnote.c -=================================================================== ---- elfutils-0.175.orig/libebl/eblobjnote.c -+++ elfutils-0.175/libebl/eblobjnote.c -@@ -350,6 +350,13 @@ ebl_object_note (Ebl *ebl, uint32_t name - desc += 8; - descsz -= 8; - -+ if (prop.pr_datasz > descsz) -+ { -+ printf ("BAD property datasz: %" PRId32 "\n", -+ prop.pr_datasz); -+ return; -+ } -+ - int elfclass = gelf_getclass (ebl->elf); - char *elfident = elf_getident (ebl->elf, NULL); - GElf_Ehdr ehdr; -Index: elfutils-0.175/libebl/ChangeLog -=================================================================== ---- elfutils-0.175.orig/libebl/ChangeLog -+++ elfutils-0.175/libebl/ChangeLog -@@ -1,3 +1,7 @@ -+2019-01-16 Mark Wielaard -+ -+ * eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large. -+ - 2018-11-15 Mark Wielaard - - * eblobjnotetypename.c (ebl_object_note_type_name): Don't update diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p2.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p2.patch deleted file mode 100644 index 4434b365..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7146_p2.patch +++ /dev/null @@ -1,65 +0,0 @@ -From cd7ded3df43f655af945c869976401a602e46fcd Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 30 Jan 2019 00:04:11 +0100 -Subject: [PATCH] libebl: Check GNU property note data padding fits inside - note. - -The GNU property note data is padded. Make sure the extra padding -still fits in the note description. - -https://sourceware.org/bugzilla/show_bug.cgi?id=24075 - -Signed-off-by: Mark Wielaard - -Upstream-Status: Backport -CVE: CVE-2019-7146 patch #2 -Signed-off-by: Armin Kuster - ---- - libebl/ChangeLog | 5 +++++ - libebl/eblobjnote.c | 17 +++++++++-------- - 2 files changed, 14 insertions(+), 8 deletions(-) - -Index: elfutils-0.175/libebl/ChangeLog -=================================================================== ---- elfutils-0.175.orig/libebl/ChangeLog -+++ elfutils-0.175/libebl/ChangeLog -@@ -1,3 +1,8 @@ -+2019-01-29 Mark Wielaard -+ -+ * eblobjnote.c (ebl_object_note): Check pr_datasz padding doesn't -+ overflow descsz. -+ - 2019-01-16 Mark Wielaard - - * eblobjnte.c (ebl_object_note): Check pr_datasz isn't too large. -Index: elfutils-0.175/libebl/eblobjnote.c -=================================================================== ---- elfutils-0.175.orig/libebl/eblobjnote.c -+++ elfutils-0.175/libebl/eblobjnote.c -@@ -486,16 +486,17 @@ ebl_object_note (Ebl *ebl, uint32_t name - printf ("%02" PRIx8 "\n", (uint8_t) desc[i]); - } - } -+ - if (elfclass == ELFCLASS32) -- { -- desc += NOTE_ALIGN4 (prop.pr_datasz); -- descsz -= NOTE_ALIGN4 (prop.pr_datasz); -- } -+ prop.pr_datasz = NOTE_ALIGN4 (prop.pr_datasz); - else -- { -- desc += NOTE_ALIGN8 (prop.pr_datasz); -- descsz -= NOTE_ALIGN8 (prop.pr_datasz); -- } -+ prop.pr_datasz = NOTE_ALIGN8 (prop.pr_datasz); -+ -+ desc += prop.pr_datasz; -+ if (descsz > prop.pr_datasz) -+ descsz -= prop.pr_datasz; -+ else -+ descsz = 0; - } - } - break; diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7149.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7149.patch deleted file mode 100644 index 215a1715..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7149.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 2562759d6fe5b364fe224852e64e8bda39eb2e35 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Sun, 20 Jan 2019 22:10:18 +0100 -Subject: [PATCH] libdw: Check terminating NUL byte in dwarf_getsrclines for - dir/file table. - -For DWARF version < 5 the .debug_line directory and file tables consist -of a terminating NUL byte after all strings. The code used to just skip -this without checking it actually existed. This could case a spurious -read past the end of data. - -Fix the same issue in readelf. - -https://sourceware.org/bugzilla/show_bug.cgi?id=24102 - -Signed-off-by: Mark Wielaard - -Upstream-Status: Backport -CVE: CVE-2019-7149 -Signed-off-by: Armin Kuster - ---- - libdw/ChangeLog | 5 +++++ - libdw/dwarf_getsrclines.c | 11 ++++++++--- - src/ChangeLog | 5 +++++ - src/readelf.c | 8 ++++++-- - 4 files changed, 24 insertions(+), 5 deletions(-) - -Index: elfutils-0.175/libdw/dwarf_getsrclines.c -=================================================================== ---- elfutils-0.175.orig/libdw/dwarf_getsrclines.c -+++ elfutils-0.175/libdw/dwarf_getsrclines.c -@@ -315,7 +315,7 @@ read_srclines (Dwarf *dbg, - if (version < 5) - { - const unsigned char *dirp = linep; -- while (*dirp != 0) -+ while (dirp < lineendp && *dirp != 0) - { - uint8_t *endp = memchr (dirp, '\0', lineendp - dirp); - if (endp == NULL) -@@ -323,6 +323,8 @@ read_srclines (Dwarf *dbg, - ++ndirs; - dirp = endp + 1; - } -+ if (dirp >= lineendp || *dirp != '\0') -+ goto invalid_data; - ndirs = ndirs + 1; /* There is always the "unknown" dir. */ - } - else -@@ -392,11 +394,12 @@ read_srclines (Dwarf *dbg, - { - dirarray[n].dir = (char *) linep; - uint8_t *endp = memchr (linep, '\0', lineendp - linep); -- assert (endp != NULL); -+ assert (endp != NULL); // Checked above when calculating ndirlist. - dirarray[n].len = endp - linep; - linep = endp + 1; - } - /* Skip the final NUL byte. */ -+ assert (*linep == '\0'); // Checked above when calculating ndirlist. - ++linep; - } - else -@@ -471,7 +474,7 @@ read_srclines (Dwarf *dbg, - { - if (unlikely (linep >= lineendp)) - goto invalid_data; -- while (*linep != 0) -+ while (linep < lineendp && *linep != '\0') - { - struct filelist *new_file = NEW_FILE (); - -@@ -527,6 +530,8 @@ read_srclines (Dwarf *dbg, - goto invalid_data; - get_uleb128 (new_file->info.length, linep, lineendp); - } -+ if (linep >= lineendp || *linep != '\0') -+ goto invalid_data; - /* Skip the final NUL byte. */ - ++linep; - } -Index: elfutils-0.175/src/readelf.c -=================================================================== ---- elfutils-0.175.orig/src/readelf.c -+++ elfutils-0.175/src/readelf.c -@@ -8444,7 +8444,7 @@ print_debug_line_section (Dwfl_Module *d - } - else - { -- while (*linep != 0) -+ while (linep < lineendp && *linep != 0) - { - unsigned char *endp = memchr (linep, '\0', lineendp - linep); - if (unlikely (endp == NULL)) -@@ -8454,6 +8454,8 @@ print_debug_line_section (Dwfl_Module *d - - linep = endp + 1; - } -+ if (linep >= lineendp || *linep != 0) -+ goto invalid_unit; - /* Skip the final NUL byte. */ - ++linep; - } -@@ -8523,7 +8525,7 @@ print_debug_line_section (Dwfl_Module *d - else - { - puts (gettext (" Entry Dir Time Size Name")); -- for (unsigned int cnt = 1; *linep != 0; ++cnt) -+ for (unsigned int cnt = 1; linep < lineendp && *linep != 0; ++cnt) - { - /* First comes the file name. */ - char *fname = (char *) linep; -@@ -8553,6 +8555,8 @@ print_debug_line_section (Dwfl_Module *d - printf (" %-5u %-5u %-9u %-9u %s\n", - cnt, diridx, mtime, fsize, fname); - } -+ if (linep >= lineendp || *linep != '\0') -+ goto invalid_unit; - /* Skip the final NUL byte. */ - ++linep; - } -Index: elfutils-0.175/libdw/ChangeLog -=================================================================== ---- elfutils-0.175.orig/libdw/ChangeLog -+++ elfutils-0.175/libdw/ChangeLog -@@ -1,3 +1,8 @@ -+2019-01-20 Mark Wielaard -+ -+ * dwarf_getsrclines.c (read_srclines): Check terminating NUL byte -+ for dir and file lists. -+ - 2018-10-20 Mark Wielaard - - * libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin. -Index: elfutils-0.175/src/ChangeLog -=================================================================== ---- elfutils-0.175.orig/src/ChangeLog -+++ elfutils-0.175/src/ChangeLog -@@ -1,3 +1,8 @@ -+2019-01-20 Mark Wielaard -+ -+ * readelf.c (print_debug_line_section): Check terminating NUL byte -+ for dir and file tables. -+ - 2018-11-10 Mark Wielaard - - * elflint.c (check_program_header): Allow PT_GNU_EH_FRAME segment diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7150.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7150.patch deleted file mode 100644 index 01a4fb15..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7150.patch +++ /dev/null @@ -1,51 +0,0 @@ -From da5c5336a1eaf519de246f7d9f0f5585e1d4ac59 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Sun, 20 Jan 2019 23:05:56 +0100 -Subject: [PATCH] libdwfl: Sanity check partial core file dyn data read. - -When reading the dyn data from the core file check if we got everything, -or just part of the data. - -https://sourceware.org/bugzilla/show_bug.cgi?id=24103 - -Signed-off-by: Mark Wielaard - -Upstream-Status: Backport -CVE: CVE-2019-7150 -Signed-off-by: Armin Kuster - ---- - libdwfl/ChangeLog | 5 +++++ - libdwfl/dwfl_segment_report_module.c | 6 ++++++ - 2 files changed, 11 insertions(+) - -Index: elfutils-0.175/libdwfl/dwfl_segment_report_module.c -=================================================================== ---- elfutils-0.175.orig/libdwfl/dwfl_segment_report_module.c -+++ elfutils-0.175/libdwfl/dwfl_segment_report_module.c -@@ -783,6 +783,12 @@ dwfl_segment_report_module (Dwfl *dwfl, - if (dyn_filesz != 0 && dyn_filesz % dyn_entsize == 0 - && ! read_portion (&dyn_data, &dyn_data_size, dyn_vaddr, dyn_filesz)) - { -+ /* dyn_data_size will be zero if we got everything from the initial -+ buffer, otherwise it will be the size of the new buffer that -+ could be read. */ -+ if (dyn_data_size != 0) -+ dyn_filesz = dyn_data_size; -+ - void *dyns = malloc (dyn_filesz); - Elf32_Dyn (*d32)[dyn_filesz / sizeof (Elf32_Dyn)] = dyns; - Elf64_Dyn (*d64)[dyn_filesz / sizeof (Elf64_Dyn)] = dyns; -Index: elfutils-0.175/libdwfl/ChangeLog -=================================================================== ---- elfutils-0.175.orig/libdwfl/ChangeLog -+++ elfutils-0.175/libdwfl/ChangeLog -@@ -1,3 +1,8 @@ -+2019-01-20 Mark Wielaard -+ -+ * dwfl_segment_report_module.c (dwfl_segment_report_module): Check -+ dyn_filesz vs dyn_data_size after read_portion call. -+ - 2018-10-20 Mark Wielaard - - * libdwflP.h (__libdw_open_elf): New internal function declaration. diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7664.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7664.patch deleted file mode 100644 index e55dc5a0..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7664.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 3ed05376e7b2c96c1d6eb24d2842cc25b79a4f07 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 16 Jan 2019 12:25:57 +0100 -Subject: [PATCH] CVE: CVE-2019-7664 - -Upstream-Status: Backport -libelf: Correct overflow check in note_xlate. - -We want to make sure the note_len doesn't overflow and becomes shorter -than the note header. But the namesz and descsz checks got the note header -size wrong). Replace the wrong constant (8) with a sizeof cvt_Nhdr (12). - -https://sourceware.org/bugzilla/show_bug.cgi?id=24084 - -Signed-off-by: Mark Wielaard -Signed-off-by: Ubuntu ---- - libelf/ChangeLog | 13 +++++++++++++ - libelf/note_xlate.h | 4 ++-- - 2 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/libelf/ChangeLog b/libelf/ChangeLog -index 68c4fbd..892e6e7 100644 ---- a/libelf/ChangeLog -+++ b/libelf/ChangeLog -@@ -1,3 +1,16 @@ -+<<<<<<< HEAD -+======= -+2019-01-16 Mark Wielaard -+ -+ * note_xlate.h (elf_cvt_note): Check n_namesz and n_descsz don't -+ overflow note_len into note header. -+ -+2018-11-17 Mark Wielaard -+ -+ * elf32_updatefile.c (updatemmap): Make sure to call convert -+ function on a properly aligned destination. -+ -+>>>>>>> e65d91d... libelf: Correct overflow check in note_xlate. - 2018-11-16 Mark Wielaard - - * libebl.h (__elf32_msize): Mark with const attribute. -diff --git a/libelf/note_xlate.h b/libelf/note_xlate.h -index 9bdc3e2..bc9950f 100644 ---- a/libelf/note_xlate.h -+++ b/libelf/note_xlate.h -@@ -46,13 +46,13 @@ elf_cvt_note (void *dest, const void *src, size_t len, int encode, - /* desc needs to be aligned. */ - note_len += n->n_namesz; - note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len); -- if (note_len > len || note_len < 8) -+ if (note_len > len || note_len < sizeof *n) - break; - - /* data as a whole needs to be aligned. */ - note_len += n->n_descsz; - note_len = nhdr8 ? NOTE_ALIGN8 (note_len) : NOTE_ALIGN4 (note_len); -- if (note_len > len || note_len < 8) -+ if (note_len > len || note_len < sizeof *n) - break; - - /* Copy or skip the note data. */ --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7665.patch b/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7665.patch deleted file mode 100644 index a1bb3097..00000000 --- a/external/poky/meta/recipes-devtools/elfutils/files/CVE-2019-7665.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 4323d46c4a369b614aa1f574805860b3434552df Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Wed, 16 Jan 2019 15:41:31 +0100 -Subject: [PATCH] CVE: CVE-2019-7665 - -Upstream-Status: Backport - -Sign off: Shubham Agrawal - -libebl: Check NT_PLATFORM core notes contain a zero terminated string. - -Most strings in core notes are fixed size. But NT_PLATFORM contains just -a variable length string. Check that it is actually zero terminated -before passing to readelf to print. - -https://sourceware.org/bugzilla/show_bug.cgi?id=24089 - -Signed-off-by: Mark Wielaard -Signed-off-by: Ubuntu ---- - libdwfl/linux-core-attach.c | 9 +++++---- - libebl/eblcorenote.c | 39 +++++++++++++++++++-------------------- - libebl/libebl.h | 3 ++- - src/readelf.c | 2 +- - 4 files changed, 27 insertions(+), 26 deletions(-) - -diff --git a/libdwfl/linux-core-attach.c b/libdwfl/linux-core-attach.c -index 6c99b9e..c0f1b0d 100644 ---- a/libdwfl/linux-core-attach.c -+++ b/libdwfl/linux-core-attach.c -@@ -137,7 +137,7 @@ core_next_thread (Dwfl *dwfl __attribute__ ((unused)), void *dwfl_arg, - const Ebl_Register_Location *reglocs; - size_t nitems; - const Ebl_Core_Item *items; -- if (! ebl_core_note (core_arg->ebl, &nhdr, name, -+ if (! ebl_core_note (core_arg->ebl, &nhdr, name, desc, - ®s_offset, &nregloc, ®locs, &nitems, &items)) - { - /* This note may be just not recognized, skip it. */ -@@ -191,8 +191,9 @@ core_set_initial_registers (Dwfl_Thread *thread, void *thread_arg_voidp) - const Ebl_Register_Location *reglocs; - size_t nitems; - const Ebl_Core_Item *items; -- int core_note_err = ebl_core_note (core_arg->ebl, &nhdr, name, ®s_offset, -- &nregloc, ®locs, &nitems, &items); -+ int core_note_err = ebl_core_note (core_arg->ebl, &nhdr, name, desc, -+ ®s_offset, &nregloc, ®locs, -+ &nitems, &items); - /* __libdwfl_attach_state_for_core already verified the note is there. */ - assert (core_note_err != 0); - assert (nhdr.n_type == NT_PRSTATUS); -@@ -383,7 +384,7 @@ dwfl_core_file_attach (Dwfl *dwfl, Elf *core) - const Ebl_Register_Location *reglocs; - size_t nitems; - const Ebl_Core_Item *items; -- if (! ebl_core_note (ebl, &nhdr, name, -+ if (! ebl_core_note (ebl, &nhdr, name, desc, - ®s_offset, &nregloc, ®locs, &nitems, &items)) - { - /* This note may be just not recognized, skip it. */ -diff --git a/libebl/eblcorenote.c b/libebl/eblcorenote.c -index 783f981..7fab397 100644 ---- a/libebl/eblcorenote.c -+++ b/libebl/eblcorenote.c -@@ -36,11 +36,13 @@ - #include - #include - #include -+#include - #include - - - int - ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name, -+ const char *desc, - GElf_Word *regs_offset, size_t *nregloc, - const Ebl_Register_Location **reglocs, size_t *nitems, - const Ebl_Core_Item **items) -@@ -51,28 +53,25 @@ ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name, - { - /* The machine specific function did not know this type. */ - -- *regs_offset = 0; -- *nregloc = 0; -- *reglocs = NULL; -- switch (nhdr->n_type) -+ /* NT_PLATFORM is kind of special since it needs a zero terminated -+ string (other notes often have a fixed size string). */ -+ static const Ebl_Core_Item platform[] = - { --#define ITEMS(type, table) \ -- case type: \ -- *items = table; \ -- *nitems = sizeof table / sizeof table[0]; \ -- result = 1; \ -- break -+ { -+ .name = "Platform", -+ .type = ELF_T_BYTE, .count = 0, .format = 's' -+ } -+ }; - -- static const Ebl_Core_Item platform[] = -- { -- { -- .name = "Platform", -- .type = ELF_T_BYTE, .count = 0, .format = 's' -- } -- }; -- ITEMS (NT_PLATFORM, platform); -- --#undef ITEMS -+ if (nhdr->n_type == NT_PLATFORM -+ && memchr (desc, '\0', nhdr->n_descsz) != NULL) -+ { -+ *regs_offset = 0; -+ *nregloc = 0; -+ *reglocs = NULL; -+ *items = platform; -+ *nitems = 1; -+ result = 1; - } - } - -diff --git a/libebl/libebl.h b/libebl/libebl.h -index ca9b9fe..24922eb 100644 ---- a/libebl/libebl.h -+++ b/libebl/libebl.h -@@ -319,7 +319,8 @@ typedef struct - - /* Describe the format of a core file note with the given header and NAME. - NAME is not guaranteed terminated, it's NHDR->n_namesz raw bytes. */ --extern int ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, const char *name, -+extern int ebl_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, -+ const char *name, const char *desc, - GElf_Word *regs_offset, size_t *nregloc, - const Ebl_Register_Location **reglocs, - size_t *nitems, const Ebl_Core_Item **items) -diff --git a/src/readelf.c b/src/readelf.c -index 3a73710..71651e0 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -12153,7 +12153,7 @@ handle_core_note (Ebl *ebl, const GElf_Nhdr *nhdr, - size_t nitems; - const Ebl_Core_Item *items; - -- if (! ebl_core_note (ebl, nhdr, name, -+ if (! ebl_core_note (ebl, nhdr, name, desc, - ®s_offset, &nregloc, ®locs, &nitems, &items)) - return; - --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch index fa3a3c66..a2983c57 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch @@ -8,6 +8,7 @@ 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 + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia --- diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch new file mode 100644 index 00000000..19a20150 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch @@ -0,0 +1,48 @@ +From 3f3e7b16934ec58ab47d2bdc9982f54a55b07534 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +--- + 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/external/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch index 1ab704e6..aee00cba 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch @@ -4,6 +4,7 @@ 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 + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia --- diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch index b196802b..c949e965 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch @@ -12,6 +12,7 @@ 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 + Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia --- diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff b/external/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff index f7258a8d..ba0ce33b 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff @@ -1,10 +1,27 @@ +From 4e6fededb3d8c90694c44214c862ac216a69ecae Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +--- + 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 -Index: elfutils-0.175/backends/arm_init.c -=================================================================== ---- elfutils-0.175.orig/backends/arm_init.c -+++ elfutils-0.175/backends/arm_init.c +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" @@ -36,9 +53,9 @@ Index: elfutils-0.175/backends/arm_init.c + } + /* We handle it. */ - eh->name = "ARM"; arm_init_reloc (eh); -@@ -60,7 +71,10 @@ arm_init (Elf *elf __attribute__ ((unuse + 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); @@ -50,10 +67,10 @@ Index: elfutils-0.175/backends/arm_init.c HOOK (eh, abi_cfi); HOOK (eh, check_reloc_target_type); HOOK (eh, symbol_type_name); -Index: elfutils-0.175/backends/arm_regs.c -=================================================================== ---- elfutils-0.175.orig/backends/arm_regs.c -+++ elfutils-0.175/backends/arm_regs.c +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 @@ -62,7 +79,7 @@ Index: elfutils-0.175/backends/arm_regs.c #include #define BACKEND arm_ -@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute_ +@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), break; case 16 + 0 ... 16 + 7: @@ -72,7 +89,7 @@ Index: elfutils-0.175/backends/arm_regs.c regno += 96 - 16; FALLTHROUGH; case 96 + 0 ... 96 + 7: -@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute_ +@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), namelen = 2; break; @@ -212,10 +229,10 @@ Index: elfutils-0.175/backends/arm_regs.c *setname = "VFP"; *type = DW_ATE_float; *bits = 64; -Index: elfutils-0.175/backends/arm_retval.c -=================================================================== ---- elfutils-0.175.orig/backends/arm_retval.c -+++ elfutils-0.175/backends/arm_retval.c +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)) @@ -242,7 +259,7 @@ Index: elfutils-0.175/backends/arm_retval.c { /* 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 *fu +@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) else return -1; } @@ -264,7 +281,7 @@ Index: elfutils-0.175/backends/arm_retval.c if (size <= 16) { intreg: -@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *fu +@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) } aggregate: @@ -272,7 +289,7 @@ Index: elfutils-0.175/backends/arm_retval.c *locp = loc_aggregate; return nloc_aggregate; } -@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *fu +@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) DWARF and might be valid. */ return -2; } @@ -291,11 +308,26 @@ Index: elfutils-0.175/backends/arm_retval.c + return arm_return_value_location_ (functypedie, locp, 0); +} + -Index: elfutils-0.175/libelf/elf.h -=================================================================== ---- elfutils-0.175.orig/libelf/elf.h -+++ elfutils-0.175/libelf/elf.h -@@ -2694,6 +2694,9 @@ enum +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 ++ ++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 @@ -305,7 +337,7 @@ Index: elfutils-0.175/libelf/elf.h /* Additional symbol types for Thumb. */ #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -@@ -2711,12 +2714,19 @@ enum +@@ -2707,12 +2710,19 @@ enum /* Processor specific values for the Phdr p_type field. */ #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ @@ -325,7 +357,7 @@ Index: elfutils-0.175/libelf/elf.h /* AArch64 relocs. */ -@@ -3009,6 +3019,7 @@ enum +@@ -3005,6 +3015,7 @@ enum TLS block (LDR, STR). */ #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative to GOT origin (LDR). */ @@ -333,24 +365,121 @@ Index: elfutils-0.175/libelf/elf.h #define R_ARM_ME_TOO 128 /* Obsolete. */ #define R_ARM_THM_TLS_DESCSEQ 129 #define R_ARM_THM_TLS_DESCSEQ16 129 -Index: elfutils-0.175/backends/libebl_arm.h -=================================================================== ---- /dev/null -+++ elfutils-0.175/backends/libebl_arm.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_ARM_H -+#define _LIBEBL_ARM_H 1 -+ -+#include -+ -+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 -Index: elfutils-0.175/tests/run-allregs.sh -=================================================================== ---- elfutils-0.175.orig/tests/run-allregs.sh -+++ elfutils-0.175/tests/run-allregs.sh +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 @@ -468,11 +597,11 @@ Index: elfutils-0.175/tests/run-allregs.sh EOF # See run-readelf-mixed-corenote.sh for instructions to regenerate -Index: elfutils-0.175/tests/run-readelf-mixed-corenote.sh -=================================================================== ---- elfutils-0.175.orig/tests/run-readelf-mixed-corenote.sh -+++ elfutils-0.175/tests/run-readelf-mixed-corenote.sh -@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x27 +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 @@ -490,114 +619,6 @@ Index: elfutils-0.175/tests/run-readelf-mixed-corenote.sh 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 -Index: elfutils-0.175/tests/run-addrcfi.sh -=================================================================== ---- elfutils-0.175.orig/tests/run-addrcfi.sh -+++ elfutils-0.175/tests/run-addrcfi.sh -@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matc - 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 matc - 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 +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch index 75736bff..bd98dae4 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch @@ -6,12 +6,12 @@ Last-Update: 2018-01-01 Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia -Index: elfutils-0.175/config/eu.am +Index: elfutils-0.176/config/eu.am =================================================================== ---- elfutils-0.175.orig/config/eu.am -+++ elfutils-0.175/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 \ + -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff b/external/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff index 105e3f43..53fa2f43 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff @@ -1,10 +1,74 @@ +From ffb811e18d7046d5bbe54ede5b1b7e14eaac0146 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 -Index: elfutils-0.175/backends/parisc_init.c -=================================================================== +--- + backends/Makefile.am | 7 +- + backends/libebl_parisc.h | 9 ++ + backends/parisc_init.c | 73 +++++++++++++ + backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++ + backends/parisc_reloc.def | 128 +++++++++++++++++++++++ + backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++ + backends/parisc_symbol.c | 113 ++++++++++++++++++++ + libelf/elf.h | 11 ++ + 8 files changed, 711 insertions(+), 2 deletions(-) + create mode 100644 backends/libebl_parisc.h + create mode 100644 backends/parisc_init.c + create mode 100644 backends/parisc_regs.c + create mode 100644 backends/parisc_reloc.def + create mode 100644 backends/parisc_retval.c + create mode 100644 backends/parisc_symbol.c + +diff --git a/backends/Makefile.am b/backends/Makefile.am +index f405212..4755f61 100644 +--- a/backends/Makefile.am ++++ b/backends/Makefile.am +@@ -37,7 +37,9 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ + noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a + + modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ +- tilegx m68k bpf riscv csky ++ tilegx m68k bpf riscv csky parisc ++ ++parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c + + i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ + i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ +@@ -102,7 +104,8 @@ libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ + $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ + $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ + $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ +- $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) ++ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ ++ $(parisc_SRCS) + + libebl_backends_pic_a_SOURCES = + am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) +diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h +new file mode 100644 +index 0000000..f473b79 +--- /dev/null ++++ b/backends/libebl_parisc.h +@@ -0,0 +1,9 @@ ++#ifndef _LIBEBL_HPPA_H ++#define _LIBEBL_HPPA_H 1 ++ ++#include ++ ++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 -+++ elfutils-0.175/backends/parisc_init.c ++++ b/backends/parisc_init.c @@ -0,0 +1,73 @@ +/* Initialization of PA-RISC specific backend library. + Copyright (C) 2002, 2005, 2006 Red Hat, Inc. @@ -79,10 +143,11 @@ Index: elfutils-0.175/backends/parisc_init.c + + return MODVERSION; +} -Index: elfutils-0.175/backends/parisc_regs.c -=================================================================== +diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c +new file mode 100644 +index 0000000..3895f8e --- /dev/null -+++ elfutils-0.175/backends/parisc_regs.c ++++ b/backends/parisc_regs.c @@ -0,0 +1,159 @@ +/* Register names and numbers for PA-RISC DWARF. + Copyright (C) 2005, 2006 Red Hat, Inc. @@ -243,10 +308,11 @@ Index: elfutils-0.175/backends/parisc_regs.c + name[namelen++] = '\0'; + return namelen; +} -Index: elfutils-0.175/backends/parisc_reloc.def -=================================================================== +diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def +new file mode 100644 +index 0000000..1f875ba --- /dev/null -+++ elfutils-0.175/backends/parisc_reloc.def ++++ b/backends/parisc_reloc.def @@ -0,0 +1,128 @@ +/* List the relocation types for PA-RISC. -*- C -*- + Copyright (C) 2005 Red Hat, Inc. @@ -376,10 +442,11 @@ Index: elfutils-0.175/backends/parisc_reloc.def +RELOC_TYPE (TLS_DTPMOD64, DYN) + +#define NO_RELATIVE_RELOC 1 -Index: elfutils-0.175/backends/parisc_retval.c -=================================================================== +diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c +new file mode 100644 +index 0000000..df7ec3a --- /dev/null -+++ elfutils-0.175/backends/parisc_retval.c ++++ b/backends/parisc_retval.c @@ -0,0 +1,213 @@ +/* Function return value location for Linux/PA-RISC ABI. + Copyright (C) 2005 Red Hat, Inc. @@ -594,10 +661,11 @@ Index: elfutils-0.175/backends/parisc_retval.c + return parisc_return_value_location_ (functypedie, locp, 1); +} + -Index: elfutils-0.175/backends/parisc_symbol.c -=================================================================== +diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c +new file mode 100644 +index 0000000..5754bd8 --- /dev/null -+++ elfutils-0.175/backends/parisc_symbol.c ++++ b/backends/parisc_symbol.c @@ -0,0 +1,113 @@ +/* PA-RISC specific symbolic name handling. + Copyright (C) 2002, 2005 Red Hat, Inc. @@ -712,55 +780,11 @@ Index: elfutils-0.175/backends/parisc_symbol.c + return ELF_T_NUM; + } +} -Index: elfutils-0.175/backends/libebl_parisc.h -=================================================================== ---- /dev/null -+++ elfutils-0.175/backends/libebl_parisc.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_HPPA_H -+#define _LIBEBL_HPPA_H 1 -+ -+#include -+ -+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 -Index: elfutils-0.175/backends/Makefile.am -=================================================================== ---- elfutils-0.175.orig/backends/Makefile.am -+++ elfutils-0.175/backends/Makefile.am -@@ -33,12 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I - - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv -+ tilegx m68k bpf riscv 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_m68k_pic.a libebl_bpf_pic.a libebl_riscv_pic.a \ -+ libebl_parisc_pic.a - noinst_LIBRARIES = $(libebl_pic) - noinst_DATA = $(libebl_pic:_pic.a=.so) - -@@ -136,6 +137,9 @@ riscv_SRCS = riscv_init.c riscv_symbol.c - libebl_riscv_pic_a_SOURCES = $(riscv_SRCS) - am_libebl_riscv_pic_a_OBJECTS = $(riscv_SRCS:.c=.os) - -+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) - - libebl_%.so libebl_%.map: libebl_%_pic.a $(libelf) $(libdw) $(libeu) - @rm -f $(@:.so=.map) -Index: elfutils-0.175/libelf/elf.h -=================================================================== ---- elfutils-0.175.orig/libelf/elf.h -+++ elfutils-0.175/libelf/elf.h -@@ -2155,16 +2155,24 @@ enum +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. */ @@ -785,7 +809,7 @@ Index: elfutils-0.175/libelf/elf.h #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. */ -@@ -2173,6 +2181,7 @@ enum +@@ -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. */ @@ -793,7 +817,7 @@ Index: elfutils-0.175/libelf/elf.h #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. */ -@@ -2198,6 +2207,8 @@ enum +@@ -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. */ diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch index 8fa35a45..62a960f3 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch @@ -1,5 +1,6 @@ Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia + Index: elfutils-0.165/tests/run-native-test.sh =================================================================== --- elfutils-0.165.orig/tests/run-native-test.sh diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch index fe5159f3..e85a2fed 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch @@ -1,5 +1,6 @@ Upstream-Status: Pending [from debian] Signed-off-by: Hongxu Jia + Index: b/tests/run-native-test.sh =================================================================== --- a/tests/run-native-test.sh diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff index 998fa04d..749faa40 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff @@ -1,9 +1,62 @@ +From 7e0b036d087dfff7f5e306f52fc78745f99454c3 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 -Index: elfutils-0.175/backends/mips_init.c -=================================================================== + +--- + backends/Makefile.am | 6 +- + backends/mips_init.c | 59 ++++++++ + backends/mips_regs.c | 104 +++++++++++++ + backends/mips_reloc.def | 79 ++++++++++ + backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++ + backends/mips_symbol.c | 53 +++++++ + libebl/eblopenbackend.c | 3 + + 7 files changed, 623 insertions(+), 2 deletions(-) + create mode 100644 backends/mips_init.c + create mode 100644 backends/mips_regs.c + create mode 100644 backends/mips_reloc.def + create mode 100644 backends/mips_retval.c + create mode 100644 backends/mips_symbol.c + +diff --git a/backends/Makefile.am b/backends/Makefile.am +index 4755f61..07d45d7 100644 +--- a/backends/Makefile.am ++++ b/backends/Makefile.am +@@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ + noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a + + modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ +- tilegx m68k bpf riscv csky parisc ++ tilegx m68k bpf riscv csky parisc mips + + parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c + +@@ -100,12 +100,14 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ + csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ + csky_regs.c csky_initreg.c csky_corenote.c + ++mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c ++ + libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ + $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ + $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ + $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ + $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ +- $(parisc_SRCS) ++ $(parisc_SRCS) $(mips_SRCS) + + libebl_backends_pic_a_SOURCES = + am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) +diff --git a/backends/mips_init.c b/backends/mips_init.c +new file mode 100644 +index 0000000..975c04e --- /dev/null -+++ elfutils-0.175/backends/mips_init.c ++++ b/backends/mips_init.c @@ -0,0 +1,59 @@ +/* Initialization of mips specific backend library. + Copyright (C) 2006 Red Hat, Inc. @@ -64,10 +117,11 @@ Index: elfutils-0.175/backends/mips_init.c + + return MODVERSION; +} -Index: elfutils-0.175/backends/mips_regs.c -=================================================================== +diff --git a/backends/mips_regs.c b/backends/mips_regs.c +new file mode 100644 +index 0000000..44f86cb --- /dev/null -+++ elfutils-0.175/backends/mips_regs.c ++++ b/backends/mips_regs.c @@ -0,0 +1,104 @@ +/* Register names and numbers for MIPS DWARF. + Copyright (C) 2006 Red Hat, Inc. @@ -173,10 +227,11 @@ Index: elfutils-0.175/backends/mips_regs.c + name[namelen++] = '\0'; + return namelen; +} -Index: elfutils-0.175/backends/mips_reloc.def -=================================================================== +diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def +new file mode 100644 +index 0000000..4579970 --- /dev/null -+++ elfutils-0.175/backends/mips_reloc.def ++++ b/backends/mips_reloc.def @@ -0,0 +1,79 @@ +/* List the relocation types for mips. -*- C -*- + Copyright (C) 2006 Red Hat, Inc. @@ -257,10 +312,11 @@ Index: elfutils-0.175/backends/mips_reloc.def + +#define NO_COPY_RELOC 1 +#define NO_RELATIVE_RELOC 1 -Index: elfutils-0.175/backends/mips_retval.c -=================================================================== +diff --git a/backends/mips_retval.c b/backends/mips_retval.c +new file mode 100644 +index 0000000..656cd1f --- /dev/null -+++ elfutils-0.175/backends/mips_retval.c ++++ b/backends/mips_retval.c @@ -0,0 +1,321 @@ +/* Function return value location for Linux/mips ABI. + Copyright (C) 2005 Red Hat, Inc. @@ -583,10 +639,11 @@ Index: elfutils-0.175/backends/mips_retval.c + DWARF and might be valid. */ + return -2; +} -Index: elfutils-0.175/backends/mips_symbol.c -=================================================================== +diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c +new file mode 100644 +index 0000000..261b05d --- /dev/null -+++ elfutils-0.175/backends/mips_symbol.c ++++ b/backends/mips_symbol.c @@ -0,0 +1,53 @@ +/* MIPS specific symbolic name handling. + Copyright (C) 2002, 2003, 2005 Red Hat, Inc. @@ -641,47 +698,27 @@ Index: elfutils-0.175/backends/mips_symbol.c + return ELF_T_NUM; + } +} -Index: elfutils-0.175/libebl/eblopenbackend.c -=================================================================== ---- elfutils-0.175.orig/libebl/eblopenbackend.c -+++ elfutils-0.175/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 }, -Index: elfutils-0.175/backends/Makefile.am -=================================================================== ---- elfutils-0.175.orig/backends/Makefile.am -+++ elfutils-0.175/backends/Makefile.am -@@ -33,13 +33,13 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I +diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c +index 210b47e..1feac13 100644 +--- a/libebl/eblopenbackend.c ++++ b/libebl/eblopenbackend.c +@@ -57,6 +57,7 @@ const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t); + const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t); + const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t); + const char *csky_init (Elf *, GElf_Half, Ebl *, size_t); ++const char *mips_init (Elf *, GElf_Half, Ebl *, size_t); + /* This table should contain the complete list of architectures as far + as the ELF specification is concerned. */ +@@ -87,6 +88,8 @@ static const struct + { sparc_init, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, + { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, + { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, ++ { mips_init, "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, ++ { mips_init, "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv parisc -+ tilegx m68k bpf riscv 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_parisc_pic.a -+ libebl_parisc_pic.a libebl_mips_pic.a - noinst_LIBRARIES = $(libebl_pic) - noinst_DATA = $(libebl_pic:_pic.a=.so) - -@@ -141,6 +141,10 @@ parisc_SRCS = parisc_init.c parisc_symbo - libebl_parisc_pic_a_SOURCES = $(parisc_SRCS) - am_libebl_parisc_pic_a_OBJECTS = $(parisc_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: *; };' \ + { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, + { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch new file mode 100644 index 00000000..dd8f88a4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch @@ -0,0 +1,129 @@ +From 5bf6117a6eaf9007ce80adbb8b66a95ca98047a4 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Wed, 21 Aug 2019 17:00:30 +0800 +Subject: [PATCH] mips_cfi + +Upstream-Status: Pending [from debian] + +Rebase to 0.177 + +Signed-off-by: Hongxu Jia + +--- + backends/Makefile.am | 2 +- + backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ + backends/mips_init.c | 1 + + 3 files changed, 82 insertions(+), 1 deletion(-) + create mode 100644 backends/mips_cfi.c + +diff --git a/backends/Makefile.am b/backends/Makefile.am +index 07d45d7..dec3080 100644 +--- a/backends/Makefile.am ++++ b/backends/Makefile.am +@@ -100,7 +100,7 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ + csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ + csky_regs.c csky_initreg.c csky_corenote.c + +-mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c ++mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c + + libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ + $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ +diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c +new file mode 100644 +index 0000000..9ffdab5 +--- /dev/null ++++ b/backends/mips_cfi.c +@@ -0,0 +1,80 @@ ++/* MIPS ABI-specified defaults for DWARF CFI. ++ Copyright (C) 2018 Kurt Roeckx, Inc. ++ This file is part of elfutils. ++ ++ This file is free software; you can redistribute it and/or modify ++ it under the terms of either ++ ++ * the GNU Lesser General Public License as published by the Free ++ Software Foundation; either version 3 of the License, or (at ++ your option) any later version ++ ++ or ++ ++ * the GNU General Public License as published by the Free ++ Software Foundation; either version 2 of the License, or (at ++ your option) any later version ++ ++ or both in parallel, as here. ++ ++ elfutils is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ General Public License for more details. ++ ++ You should have received copies of the GNU General Public License and ++ the GNU Lesser General Public License along with this program. If ++ not, see . */ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++ ++#define BACKEND mips_ ++#include "libebl_CPU.h" ++ ++int ++mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) ++{ ++ static const uint8_t abi_cfi[] = ++ { ++ /* Call-saved regs. */ ++ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ ++ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ ++ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ ++ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ ++ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ ++ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ ++ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ ++ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ ++ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ ++ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ ++ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ ++ ++ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ ++ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ ++ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ ++ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ ++ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ ++ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ ++ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ ++ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ ++ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ ++ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ ++ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ ++ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ ++ ++ /* The CFA is the SP. */ ++ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), ++ }; ++ ++ abi_info->initial_instructions = abi_cfi; ++ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; ++ abi_info->data_alignment_factor = 4; ++ ++ abi_info->return_address_register = 31; /* $31 */ ++ ++ return 0; ++} +diff --git a/backends/mips_init.c b/backends/mips_init.c +index 8482e7f..bce5abe 100644 +--- a/backends/mips_init.c ++++ b/backends/mips_init.c +@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), + HOOK (eh, reloc_simple_type); + HOOK (eh, return_value_location); + HOOK (eh, register_info); ++ HOOK (eh, abi_cfi); + + return MODVERSION; + } diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch index d26e72e2..c6d42e16 100644 --- a/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch @@ -1,19 +1,22 @@ -From: Kurt Roeckx -Subject: Make readelf -w output debug information on mips -Bug-Debian: http://bugs.debian.org/662041 -Forwarded: not-needed - -Upstreams wants a change where this is handled by a hook that needs -to be filled in by the backend for the arch. +From 7bdc83296865cf2b2a5615dbdb7ac0d441fb1849 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +--- + src/readelf.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) -Index: elfutils-0.175/src/readelf.c -=================================================================== ---- elfutils-0.175.orig/src/readelf.c -+++ elfutils-0.175/src/readelf.c -@@ -11133,7 +11133,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl * +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); @@ -23,3 +26,6 @@ Index: elfutils-0.175/src/readelf.c { static const struct { +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff b/external/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff new file mode 100644 index 00000000..e6d7948c --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff @@ -0,0 +1,52 @@ +From 6393b0e57872b3ffedf0dbd6784cd29694010878 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +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 +--- + 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/external/poky/meta/recipes-devtools/elfutils/files/ptest.patch b/external/poky/meta/recipes-devtools/elfutils/files/ptest.patch new file mode 100644 index 00000000..35b23f43 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/ptest.patch @@ -0,0 +1,76 @@ +Changes to allow ptest to run standalone on target: + +a) Run the tests serially +b) Use the standalone test mode which allows the tests to be run in their + 'installled' locations on target (but not any of the standalone build pieces) +c) We want to use the binaries from their installed locations so the run-subr + script needs tweaking to run them like that. The rpath conditional isn't + enough since we want the second entry in the case statement. +d) Add an oecheck make target which we can use to build the test binaries we need + +Signed-off-by: Richard Purdie + +Upstream-Status: Inappropriate [oe specific] + +Index: elfutils-0.176/configure.ac +=================================================================== +--- elfutils-0.176.orig/configure.ac ++++ elfutils-0.176/configure.ac +@@ -45,7 +45,7 @@ AC_COPYRIGHT([Copyright (C) 1996-2018 Th + AC_PREREQ(2.63) dnl Minimum Autoconf version required. + + dnl We use GNU make extensions; automake 1.10 defaults to -Wportability. +-AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip parallel-tests]) ++AM_INIT_AUTOMAKE([gnits 1.11 -Wno-portability dist-bzip2 no-dist-gzip serial-tests]) + AM_MAINTAINER_MODE + + AM_SILENT_RULES([yes]) +Index: elfutils-0.176/tests/Makefile.am +=================================================================== +--- elfutils-0.176.orig/tests/Makefile.am ++++ elfutils-0.176/tests/Makefile.am +@@ -445,10 +445,10 @@ installed_TESTS_ENVIRONMENT = libdir=$(D + installed_LOG_COMPILER = $(abs_srcdir)/test-wrapper.sh \ + installed $(tests_rpath) \ + '$(program_transform_name)' +-if STANDALONE ++if !STANDALONE + TESTS_ENVIRONMENT = $(installed_TESTS_ENVIRONMENT) + LOG_COMPILER = $(installed_LOG_COMPILER) +-else !STANDALONE ++else STANDALONE + TESTS_ENVIRONMENT = LC_ALL=C; LANG=C; VALGRIND_CMD=$(valgrind_cmd); \ + abs_srcdir=$(abs_srcdir); abs_builddir=$(abs_builddir); \ + abs_top_builddir=$(abs_top_builddir); \ +@@ -463,7 +463,7 @@ installcheck-local: + $(MAKE) $(AM_MAKEFLAGS) \ + TESTS_ENVIRONMENT="$(installed_TESTS_ENVIRONMENT)" \ + LOG_COMPILER="$(installed_LOG_COMPILER)" check-TESTS +-endif !STANDALONE ++endif STANDALONE + + if STANDALONE + libdw = -ldw +@@ -612,3 +612,5 @@ check: check-am coverage + coverage: + -$(srcdir)/coverage.sh + endif ++oecheck: ++ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) +Index: elfutils-0.176/tests/test-subr.sh +=================================================================== +--- elfutils-0.176.orig/tests/test-subr.sh ++++ elfutils-0.176/tests/test-subr.sh +@@ -91,12 +91,6 @@ installed_testrun() + program="$1" + shift + case "$program" in +- ${abs_builddir}/*) +- if [ "x$elfutils_tests_rpath" != xno ]; then +- echo >&2 installcheck not possible with --enable-tests-rpath +- exit 77 +- fi +- ;; + ${abs_top_builddir}/src/*) + program=${bindir}/`program_transform ${program##*/}` + ;; diff --git a/external/poky/meta/recipes-devtools/elfutils/files/run-ptest b/external/poky/meta/recipes-devtools/elfutils/files/run-ptest new file mode 100644 index 00000000..81b81f2f --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh +# +#This script is used to run elfutils test suites +cd tests + +make -k runtest-TESTS abs_srcdir=$PWD abs_builddir=$PWD srcdir=$PWD top_srcdir=$PWD/../ abs_top_builddir=$PWD/../ elfutils_testrun=installed elfutils_tests_rpath=no program_transform_name=s,^,eu-, diff --git a/external/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch b/external/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch new file mode 100644 index 00000000..37512fb9 --- /dev/null +++ b/external/poky/meta/recipes-devtools/expect/expect/0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch @@ -0,0 +1,55 @@ +From 1407fcad6f1dac0a4efe8041660bf6139c1cd16a Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Tue, 24 Sep 2019 13:40:10 +0800 +Subject: [PATCH] exp_main_sub.c: Use PATH_MAX for path + +If expect was built from a long path whose length > 200, then it couldn't run: +$ expect -c 'puts yes' +*** buffer overflow detected ***: expect terminated +Aborted (core dumped) + +Use PATH_MAX to fix the problem. + +Upstream-Status: Pending [Upstream seems dead] + +Signed-off-by: Robert Yang +--- + exp_main_sub.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/exp_main_sub.c b/exp_main_sub.c +index fcfaa6e..bf6c4be 100644 +--- a/exp_main_sub.c ++++ b/exp_main_sub.c +@@ -48,6 +48,10 @@ char exp_version[] = PACKAGE_VERSION; + #define NEED_TCL_MAJOR 7 + #define NEED_TCL_MINOR 5 + ++#ifndef PATH_MAX ++#define PATH_MAX 4096 ++#endif ++ + char *exp_argv0 = "this program"; /* default program name */ + void (*exp_app_exit)() = 0; + void (*exp_event_exit)() = 0; +@@ -901,7 +905,7 @@ int sys_rc; + int rc; + + if (sys_rc) { +- char file[200]; ++ char file[PATH_MAX]; + int fd; + + sprintf(file,"%s/expect.rc",SCRIPTDIR); +@@ -917,7 +921,7 @@ int sys_rc; + } + } + if (my_rc) { +- char file[200]; ++ char file[PATH_MAX]; + char *home; + int fd; + char *getenv(); +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/expect/expect_5.45.4.bb b/external/poky/meta/recipes-devtools/expect/expect_5.45.4.bb index 96eacd92..39ae6151 100644 --- a/external/poky/meta/recipes-devtools/expect/expect_5.45.4.bb +++ b/external/poky/meta/recipes-devtools/expect/expect_5.45.4.bb @@ -25,6 +25,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/expect/Expect/${PV}/${BPN}${PV}.tar.gz \ file://0001-expect-install-scripts-without-using-the-fixline1-tc.patch \ file://0001-Resolve-string-formatting-issues.patch \ file://0001-expect-Fix-segfaults-if-Tcl-is-built-with-stubs-and-.patch \ + file://0001-exp_main_sub.c-Use-PATH_MAX-for-path.patch \ " SRC_URI[md5sum] = "00fce8de158422f5ccd2666512329bd2" SRC_URI[sha256sum] = "49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34" @@ -44,9 +45,9 @@ do_install_append() { } # Apparently the public Tcl headers are only in /usr/include/tcl8.6 -# when building for the target. -TCL_INCLUDE_PATH = "" -TCL_INCLUDE_PATH_class-target = "--with-tclinclude=${STAGING_INCDIR}/tcl8.6" +# when building for the target and nativesdk. +TCL_INCLUDE_PATH = "--with-tclinclude=${STAGING_INCDIR}/tcl8.6" +TCL_INCLUDE_PATH_class-native = "" EXTRA_OECONF += "--with-tcl=${STAGING_LIBDIR} \ --enable-shared \ diff --git a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8904.patch b/external/poky/meta/recipes-devtools/file/file/CVE-2019-8904.patch deleted file mode 100644 index 5c3d6f73..00000000 --- a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8904.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 94b7501f48e134e77716e7ebefc73d6bbe72ba55 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 18 Feb 2019 17:30:41 +0000 -Subject: [PATCH] PR/62: spinpx: Avoid non-nul-terminated string read. - -Upstream-Status: Backport -CVE: CVE-2019-8904 -Affects < 5.36 -[Fixup for thud context] -Signed-off-by: Armin Kuster - ---- - src/readelf.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -Index: git/src/readelf.c -=================================================================== ---- git.orig/src/readelf.c -+++ git/src/readelf.c -@@ -558,8 +558,8 @@ do_bid_note(struct magic_set *ms, unsign - } - if (namesz == 4 && strcmp((char *)&nbuf[noff], "Go") == 0 && - type == NT_GO_BUILD_ID && descsz < 128) { -- if (file_printf(ms, ", Go BuildID=%s", -- (char *)&nbuf[doff]) == -1) -+ if (file_printf(ms, ", Go BuildID=%.*s", -+ CAST(int, descsz), CAST(char *, &nbuf[doff])) == -1) - return 1; - return 1; - } diff --git a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8905_CVE-2019-8907.patch b/external/poky/meta/recipes-devtools/file/file/CVE-2019-8905_CVE-2019-8907.patch deleted file mode 100644 index a55b94c6..00000000 --- a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8905_CVE-2019-8907.patch +++ /dev/null @@ -1,120 +0,0 @@ -From d65781527c8134a1202b2649695d48d5701ac60b Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Mon, 18 Feb 2019 17:46:56 +0000 -Subject: [PATCH] PR/62: spinpx: limit size of file_printable. - -Upstream-Status: Backport -CVE: CVE-2019-8905 -CVE: CVE-2019-8907 -affects < 5.36 - -Signed-off-by: Armin Kuster - ---- - src/file.h | 4 ++-- - src/funcs.c | 9 +++++---- - src/readelf.c | 7 ++++--- - src/softmagic.c | 14 ++++++++------ - 4 files changed, 19 insertions(+), 15 deletions(-) - -Index: git/src/file.h -=================================================================== ---- git.orig/src/file.h -+++ git/src/file.h -@@ -501,7 +501,7 @@ protected int file_looks_utf8(const unsi - size_t *); - protected size_t file_pstring_length_size(const struct magic *); - protected size_t file_pstring_get_length(const struct magic *, const char *); --protected char * file_printable(char *, size_t, const char *); -+protected char * file_printable(char *, size_t, const char *, size_t); - #ifdef __EMX__ - protected int file_os2_apptype(struct magic_set *, const char *, const void *, - size_t); -Index: git/src/funcs.c -=================================================================== ---- git.orig/src/funcs.c -+++ git/src/funcs.c -@@ -595,12 +595,13 @@ file_pop_buffer(struct magic_set *ms, fi - * convert string to ascii printable format. - */ - protected char * --file_printable(char *buf, size_t bufsiz, const char *str) -+file_printable(char *buf, size_t bufsiz, const char *str, size_t slen) - { -- char *ptr, *eptr; -+ char *ptr, *eptr = buf + bufsiz - 1; - const unsigned char *s = (const unsigned char *)str; -+ const unsigned char *es = s + slen; - -- for (ptr = buf, eptr = ptr + bufsiz - 1; ptr < eptr && *s; s++) { -+ for (ptr = buf; ptr < eptr && s < es && *s; s++) { - if (isprint(*s)) { - *ptr++ = *s; - continue; -Index: git/src/readelf.c -=================================================================== ---- git.orig/src/readelf.c -+++ git/src/readelf.c -@@ -750,7 +750,7 @@ do_core_note(struct magic_set *ms, unsig - if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, " - "gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)", - file_printable(sbuf, sizeof(sbuf), -- CAST(char *, pi.cpi_name)), -+ CAST(char *, pi.cpi_name), sizeof(pi.cpi_name)), - elf_getu32(swap, (uint32_t)pi.cpi_pid), - elf_getu32(swap, pi.cpi_euid), - elf_getu32(swap, pi.cpi_egid), -@@ -1655,7 +1655,8 @@ dophn_exec(struct magic_set *ms, int cla - return -1; - if (interp[0]) - if (file_printf(ms, ", interpreter %s", -- file_printable(ibuf, sizeof(ibuf), interp)) == -1) -+ file_printable(ibuf, sizeof(ibuf), interp, sizeof(interp))) -+ == -1) - return -1; - return 0; - } -Index: git/src/softmagic.c -=================================================================== ---- git.orig/src/softmagic.c -+++ git/src/softmagic.c -@@ -616,8 +616,8 @@ mprint(struct magic_set *ms, struct magi - case FILE_LESTRING16: - if (m->reln == '=' || m->reln == '!') { - if (file_printf(ms, F(ms, desc, "%s"), -- file_printable(sbuf, sizeof(sbuf), m->value.s)) -- == -1) -+ file_printable(sbuf, sizeof(sbuf), m->value.s, -+ sizeof(m->value.s))) == -1) - return -1; - t = ms->offset + m->vallen; - } -@@ -644,7 +644,8 @@ mprint(struct magic_set *ms, struct magi - } - - if (file_printf(ms, F(ms, desc, "%s"), -- file_printable(sbuf, sizeof(sbuf), str)) == -1) -+ file_printable(sbuf, sizeof(sbuf), str, -+ sizeof(p->s) - (str - p->s))) == -1) - return -1; - - if (m->type == FILE_PSTRING) -@@ -750,7 +751,7 @@ mprint(struct magic_set *ms, struct magi - return -1; - } - rval = file_printf(ms, F(ms, desc, "%s"), -- file_printable(sbuf, sizeof(sbuf), cp)); -+ file_printable(sbuf, sizeof(sbuf), cp, ms->search.rm_len)); - free(cp); - - if (rval == -1) -@@ -777,7 +778,8 @@ mprint(struct magic_set *ms, struct magi - break; - case FILE_DER: - if (file_printf(ms, F(ms, desc, "%s"), -- file_printable(sbuf, sizeof(sbuf), ms->ms_value.s)) == -1) -+ file_printable(sbuf, sizeof(sbuf), ms->ms_value.s, -+ sizeof(ms->ms_value.s))) == -1) - return -1; - t = ms->offset; - break; diff --git a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8906.patch b/external/poky/meta/recipes-devtools/file/file/CVE-2019-8906.patch deleted file mode 100644 index 1079ac66..00000000 --- a/external/poky/meta/recipes-devtools/file/file/CVE-2019-8906.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 2858eaf99f6cc5aae129bcbf1e24ad160240185f Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Wed, 2 Jan 2019 19:44:14 +0000 -Subject: [PATCH] Avoid OOB read (found by ASAN reported by F. Alonso) - -Upstream-Status: Backport -CVE: CVE-2019-8906 -Affects < 5.36 -[Fixup for thud context] -Signed-off-by: Armin Kuster ---- - src/readelf.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -Index: git/src/readelf.c -=================================================================== ---- git.orig/src/readelf.c -+++ git/src/readelf.c -@@ -745,7 +745,7 @@ do_core_note(struct magic_set *ms, unsig - char sbuf[512]; - struct NetBSD_elfcore_procinfo pi; - memset(&pi, 0, sizeof(pi)); -- memcpy(&pi, nbuf + doff, descsz); -+ memcpy(&pi, nbuf + doff, MIN(descsz, sizeof(pi))); - - if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, " - "gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)", diff --git a/external/poky/meta/recipes-devtools/file/file/debian-742262.patch b/external/poky/meta/recipes-devtools/file/file/debian-742262.patch deleted file mode 100644 index 319f9dbc..00000000 --- a/external/poky/meta/recipes-devtools/file/file/debian-742262.patch +++ /dev/null @@ -1,27 +0,0 @@ -The awk pattern was checked *before* the Perl pattern, so the -perl script with BEGIN{...} would be reported as awk, this patch fixes it. - -Upstream-Status: Backport [debian] - -Signed-off-by: Christoph Biedl -Signed-off-by: Robert Yang - -Rebase on 5.31 - -Signed-off-by: Fan Xin ---- - magic/Magdir/commands | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/magic/Magdir/commands b/magic/Magdir/commands -index f6ad1c8..f79e7dd 100644 ---- a/magic/Magdir/commands -+++ b/magic/Magdir/commands -@@ -57,6 +57,7 @@ - 0 string/wt #!\ /usr/bin/awk awk script text executable - !:mime text/x-awk - 0 regex/4096 =^[\040\t\f\r\n]{0,100}BEGIN[\040\t\f\r\n]{0,100}[{] awk or perl script text -+!:strength - 12 - - # AT&T Bell Labs' Plan 9 shell - 0 string/wt #!\ /bin/rc Plan 9 rc shell script text executable diff --git a/external/poky/meta/recipes-devtools/file/file_5.34.bb b/external/poky/meta/recipes-devtools/file/file_5.34.bb deleted file mode 100644 index cb19642f..00000000 --- a/external/poky/meta/recipes-devtools/file/file_5.34.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "File classification tool" -DESCRIPTION = "File attempts to classify files depending \ -on their contents and prints a description if a match is found." -HOMEPAGE = "http://www.darwinsys.com/file/" -SECTION = "console/utils" - -# two clause BSD -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188" - -DEPENDS = "zlib file-replacement-native" -DEPENDS_class-native = "zlib-native" - -# Blacklist a bogus tag in upstream check -UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P(?!6_23).+)" - -SRC_URI = "git://github.com/file/file.git \ - file://debian-742262.patch \ - file://CVE-2019-8906.patch \ - file://CVE-2019-8904.patch \ - file://CVE-2019-8905_CVE-2019-8907.patch \ - " - -SRCREV = "315cef2f699da3c31a54bd3c6c6070680fbaf1f5" -S = "${WORKDIR}/git" - -inherit autotools update-alternatives - -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" - -CFLAGS_append = " -std=c99" - -FILES_${PN} += "${datadir}/misc/*.mgc" - -do_install_append_class-native() { - create_cmdline_wrapper ${D}/${bindir}/file \ - --magic-file ${datadir}/misc/magic.mgc -} - -do_install_append_class-nativesdk() { - create_cmdline_wrapper ${D}/${bindir}/file \ - --magic-file ${datadir}/misc/magic.mgc -} - -BBCLASSEXTEND = "native nativesdk" -PROVIDES_append_class-native = " file-replacement-native" -# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who -# depends on file-replacement-native. -bindir_append_class-native = "/file-native" diff --git a/external/poky/meta/recipes-devtools/file/file_5.38.bb b/external/poky/meta/recipes-devtools/file/file_5.38.bb new file mode 100644 index 00000000..2d62ead1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/file/file_5.38.bb @@ -0,0 +1,55 @@ +SUMMARY = "File classification tool" +DESCRIPTION = "File attempts to classify files depending \ +on their contents and prints a description if a match is found." +HOMEPAGE = "http://www.darwinsys.com/file/" +SECTION = "console/utils" + +# two clause BSD +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b" + +DEPENDS = "file-replacement-native" +DEPENDS_class-native = "bzip2-replacement-native" + +SRC_URI = "git://github.com/file/file.git" + +SRCREV = "ec41083645689a787cdd00cb3b5bf578aa79e46c" +S = "${WORKDIR}/git" + +inherit autotools update-alternatives + +PACKAGECONFIG ??= "zlib" +PACKAGECONFIG_class-native ??= "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" + +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 +} + +do_install_append_class-nativesdk() { + create_cmdline_wrapper ${D}/${bindir}/file \ + --magic-file ${datadir}/misc/magic.mgc +} + +BBCLASSEXTEND = "native nativesdk" +PROVIDES_append_class-native = " file-replacement-native" +# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who +# depends on file-replacement-native. +bindir_append_class-native = "/file-native" diff --git a/external/poky/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch b/external/poky/meta/recipes-devtools/flex/flex/0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch new file mode 100644 index 00000000..60bf7ce8 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch b/external/poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch deleted file mode 100644 index 438ca5f5..00000000 --- a/external/poky/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?= -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 ---- - 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/external/poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch b/external/poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch deleted file mode 100644 index 216ac7ae..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch b/external/poky/meta/recipes-devtools/flex/flex/do_not_create_pdf_doc.patch deleted file mode 100644 index 29792efe..00000000 --- a/external/poky/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 - -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/external/poky/meta/recipes-devtools/flex/flex/run-ptest b/external/poky/meta/recipes-devtools/flex/flex/run-ptest index 19db3379..037301c4 100755 --- a/external/poky/meta/recipes-devtools/flex/flex/run-ptest +++ b/external/poky/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/external/poky/meta/recipes-devtools/flex/flex_2.6.0.bb b/external/poky/meta/recipes-devtools/flex/flex_2.6.0.bb deleted file mode 100644 index b89b7515..00000000 --- a/external/poky/meta/recipes-devtools/flex/flex_2.6.0.bb +++ /dev/null @@ -1,70 +0,0 @@ -SUMMARY = "Flex (The Fast Lexical Analyzer)" -DESCRIPTION = "Flex is a fast lexical analyser generator. Flex is a tool for generating programs that recognize \ -lexical patterns in text." -HOMEPAGE = "http://sourceforge.net/projects/flex/" -SECTION = "devel" -LICENSE = "BSD" - -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 \ - 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)} \ - " - -SRC_URI[md5sum] = "266270f13c48ed043d95648075084d59" -SRC_URI[sha256sum] = "24e611ef5a4703a191012f80c1027dc9d12555183ce0ecd46f3636e587e9b8e9" - -# Flex has moved to github from 2.6.1 onwards -UPSTREAM_CHECK_URI = "https://github.com/westes/flex/releases" -UPSTREAM_CHECK_REGEX = "flex-(?P\d+(\.\d+)+)\.tar" - -inherit autotools gettext texinfo ptest - -M4 = "${bindir}/m4" -M4_class-native = "${STAGING_BINDIR_NATIVE}/m4" -EXTRA_OECONF += "ac_cv_path_M4=${M4}" -EXTRA_OEMAKE += "m4=${STAGING_BINDIR_NATIVE}/m4" - -EXTRA_OEMAKE += "${@bb.utils.contains('PTEST_ENABLED', '1', 'FLEX=${STAGING_BINDIR_NATIVE}/flex', '', d)}" - -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/flex M4=${M4} -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/flex M4=${M4} -} - -PACKAGES =+ "${PN}-libfl" - -FILES_${PN}-libfl = "${libdir}/libfl.so.* ${libdir}/libfl_pic.so.*" - -RDEPENDS_${PN} += "m4" -RDEPENDS_${PN}-ptest += "bash gawk" - -do_compile_ptest() { - oe_runmake -C ${B}/tests -f ${B}/tests/Makefile top_builddir=${B} INCLUDES=-I${S}/src buildtests -} - -do_install_ptest() { - mkdir -p ${D}${PTEST_PATH}/build-aux/ - cp ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/ - cp -r ${S}/tests/* ${D}${PTEST_PATH} - cp -r ${B}/tests/* ${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 -} diff --git a/external/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/external/poky/meta/recipes-devtools/flex/flex_2.6.4.bb new file mode 100644 index 00000000..43b2547f --- /dev/null +++ b/external/poky/meta/recipes-devtools/flex/flex_2.6.4.bb @@ -0,0 +1,76 @@ +SUMMARY = "Flex (The Fast Lexical Analyzer)" +DESCRIPTION = "Flex is a fast lexical analyser generator. Flex is a tool for generating programs that recognize \ +lexical patterns in text." +HOMEPAGE = "http://sourceforge.net/projects/flex/" +SECTION = "devel" +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 = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.tar.gz \ + file://run-ptest \ + file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \ + file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \ + " + +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" +UPSTREAM_CHECK_REGEX = "flex-(?P\d+(\.\d+)+)\.tar" + +inherit autotools gettext texinfo ptest + +M4 = "${bindir}/m4" +M4_class-native = "${STAGING_BINDIR_NATIVE}/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)}" + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/flex M4=${M4} +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/flex M4=${M4} +} + +PACKAGES =+ "${PN}-libfl" + +FILES_${PN}-libfl = "${libdir}/libfl.so.* ${libdir}/libfl_pic.so.*" + +RDEPENDS_${PN} += "m4" +RDEPENDS_${PN}-ptest += "bash gawk make" + +do_compile_ptest() { + oe_runmake -C ${B}/tests -f ${B}/tests/Makefile top_builddir=${B} INCLUDES=-I${S}/src buildtests +} + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH}/build-aux/ + cp ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/ + cp -r ${S}/tests/* ${D}${PTEST_PATH} + cp -r ${B}/tests/* ${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 = ./' \ + -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/external/poky/meta/recipes-devtools/gcc/gcc-7.3.inc b/external/poky/meta/recipes-devtools/gcc/gcc-7.3.inc deleted file mode 100644 index c7c88f12..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3.inc +++ /dev/null @@ -1,135 +0,0 @@ -require gcc-common.inc - -# Third digit in PV should be incremented after a minor release - -PV = "7.3.0" - -# BINV should be incremented to a revision after a minor gcc release - -BINV = "7.3.0" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-7.3:${FILE_DIRNAME}/gcc-7.3/backport:" - -DEPENDS =+ "mpfr gmp libmpc zlib flex-native" -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" - -LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" - -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ -" - -#RELEASE = "7-20170504" -BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" -#SRCREV = "f7cf798b73fd1a07098f9a490deec1e2a36e0bed" -#BASEURI ?= "git://github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git" -#BASEURI ?= "http://mirrors.concertpass.com/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.bz2" - -SRC_URI = "\ - ${BASEURI} \ - file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - file://0009-gcc-poison-system-directories.patch \ - file://0010-gcc-poison-dir-extend.patch \ - file://0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ - file://0012-64-bit-multilib-hack.patch \ - file://0013-optional-libstdc.patch \ - file://0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \ - file://0015-COLLECT_GCC_OPTIONS.patch \ - file://0016-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ - file://0017-fortran-cross-compile-hack.patch \ - file://0018-cpp-honor-sysroot.patch \ - file://0019-MIPS64-Default-to-N64-ABI.patch \ - file://0020-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ - file://0021-gcc-Fix-argument-list-too-long-error.patch \ - file://0022-Disable-sdt.patch \ - file://0023-libtool.patch \ - file://0024-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ - file://0025-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ - file://0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ - file://0027-export-CPP.patch \ - file://0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \ - file://0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \ - file://0030-Ensure-target-gcc-headers-can-be-included.patch \ - file://0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ - file://0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ - file://0033-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ - file://0034-aarch64-Add-support-for-musl-ldso.patch \ - file://0035-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ - file://0036-handle-sysroot-support-for-nativesdk-gcc.patch \ - file://0037-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ - file://0038-Fix-various-_FOR_BUILD-and-related-variables.patch \ - file://0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ - file://0040-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ - file://0041-gcc-libcpp-support-ffile-prefix-map-old-new.patch \ - file://0042-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \ - file://0043-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch \ - file://0044-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \ - file://0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ - file://0047-sync-gcc-stddef.h-with-musl.patch \ - file://0048-gcc-Enable-static-PIE.patch \ - file://0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch \ - file://fix-segmentation-fault-precompiled-hdr.patch \ - file://no-sse-fix-test-case-failures.patch \ - ${BACKPORTS} \ -" -BACKPORTS = "\ - file://0001-Fix-internal-compiler-error-in-testcase.patch \ - file://0001-PR-rtl-optimization-83030.patch \ - file://0001-Fix-ppc64le-build-Partial-backport-r256656.patch \ - file://0001-PR-c-80290-memory-hog-with-std-pair.patch \ -" - -SRC_URI[md5sum] = "be2da21680f27624f3a87055c4ba5af2" -SRC_URI[sha256sum] = "832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c" - -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/git" -B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" - -# Language Overrides -FORTRAN = "" -JAVA = "" - -LTO = "--enable-lto" -SSP ?= "--disable-libssp" -SSP_mingw32 = "--enable-libssp" - -EXTRA_OECONF_BASE = "\ - ${LTO} \ - ${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 \ - --with-ppl=no \ - --with-cloog=no \ - --enable-checking=release \ - --enable-cheaders=c_global \ - --without-isl \ -" - -EXTRA_OECONF_INITIAL = "\ - --disable-libmudflap \ - --disable-libgomp \ - --disable-libitm \ - --disable-libquadmath \ - --with-system-zlib \ - --disable-lto \ - --disable-plugin \ - --enable-linker-build-id \ - --enable-decimal-float=no \ - --without-isl \ - --disable-libssp \ -" - -EXTRA_OECONF_PATHS = "\ - --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ - --with-sysroot=/not/exist \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ -" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-internal-compiler-error-in-testcase.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-internal-compiler-error-in-testcase.patch deleted file mode 100644 index 45cc0eee..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-internal-compiler-error-in-testcase.patch +++ /dev/null @@ -1,212 +0,0 @@ -From d3cdd96a300f9003a1cc242541605169aacdc811 Mon Sep 17 00:00:00 2001 -From: willschm -Date: Mon, 25 Sep 2017 14:35:02 +0000 -Subject: [PATCH] [gcc] - -2017-09-25 Will Schmidt - - * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling - for early folding of vector stores (ALTIVEC_BUILTIN_ST_*). - (rs6000_builtin_valid_without_lhs): New helper function. - * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): - Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253152 138bc75d-0d04-0410-961f-82ee72b054a4 - -Fix internal compiler error for testcase gcc.dg/vmx/7d-02.c - -Upstream commit: d3cdd96a300f9003a1cc242541605169aacdc811 - -Backport by Kaushik Phatak - -This patch removes changes to Changelog from the original upstream patch. -This will help us avoid conflicts. - -Upstream-Status: Backport - -Signed-off-by: Mark Hatle ---- - gcc/ChangeLog | 8 +++++ - gcc/config/rs6000/rs6000-c.c | 72 ------------------------------------------- - gcc/config/rs6000/rs6000.c | 73 ++++++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 78 insertions(+), 75 deletions(-) - -diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c -index a49db97..4a363a1 100644 ---- a/gcc/config/rs6000/rs6000-c.c -+++ b/gcc/config/rs6000/rs6000-c.c -@@ -6279,70 +6279,6 @@ altivec_resolve_overloaded_builtin (loca - } - } - -- /* Similarly for stvx. */ -- if (fcode == ALTIVEC_BUILTIN_VEC_ST -- && (BYTES_BIG_ENDIAN || !VECTOR_ELT_ORDER_BIG) -- && nargs == 3) -- { -- tree arg0 = (*arglist)[0]; -- tree arg1 = (*arglist)[1]; -- tree arg2 = (*arglist)[2]; -- -- /* Construct the masked address. Let existing error handling take -- over if we don't have a constant offset. */ -- arg1 = fold (arg1); -- -- if (TREE_CODE (arg1) == INTEGER_CST) -- { -- if (!ptrofftype_p (TREE_TYPE (arg1))) -- arg1 = build1 (NOP_EXPR, sizetype, arg1); -- -- tree arg2_type = TREE_TYPE (arg2); -- if (TREE_CODE (arg2_type) == ARRAY_TYPE && c_dialect_cxx ()) -- { -- /* Force array-to-pointer decay for C++. */ -- arg2 = default_conversion (arg2); -- arg2_type = TREE_TYPE (arg2); -- } -- -- /* Find the built-in to make sure a compatible one exists; if not -- we fall back to default handling to get the error message. */ -- for (desc = altivec_overloaded_builtins; -- desc->code && desc->code != fcode; desc++) -- continue; -- -- for (; desc->code == fcode; desc++) -- if (rs6000_builtin_type_compatible (TREE_TYPE (arg0), desc->op1) -- && rs6000_builtin_type_compatible (TREE_TYPE (arg1), desc->op2) -- && rs6000_builtin_type_compatible (TREE_TYPE (arg2), -- desc->op3)) -- { -- tree addr = fold_build2_loc (loc, POINTER_PLUS_EXPR, arg2_type, -- arg2, arg1); -- tree aligned -- = fold_build2_loc (loc, BIT_AND_EXPR, arg2_type, -- addr, build_int_cst (arg2_type, -16)); -- -- tree arg0_type = TREE_TYPE (arg0); -- if (TYPE_MODE (arg0_type) == V2DImode) -- /* Type-based aliasing analysis thinks vector long -- and vector long long are different and will put them -- in distinct alias classes. Force our address type -- to be a may-alias type to avoid this. */ -- arg0_type -- = build_pointer_type_for_mode (arg0_type, Pmode, -- true/*can_alias_all*/); -- else -- arg0_type = build_pointer_type (arg0_type); -- aligned = build1 (NOP_EXPR, arg0_type, aligned); -- tree stg = build_indirect_ref (loc, aligned, RO_NULL); -- tree retval = build2 (MODIFY_EXPR, TREE_TYPE (stg), stg, -- convert (TREE_TYPE (stg), arg0)); -- return retval; -- } -- } -- } -- - for (n = 0; - !VOID_TYPE_P (TREE_VALUE (fnargs)) && n < nargs; - fnargs = TREE_CHAIN (fnargs), n++) -diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c -index a49db97..4a363a1 100644 ---- a/gcc/config/rs6000/rs6000.c -+++ b/gcc/config/rs6000/rs6000.c -@@ -55,6 +55,7 @@ - #include "reload.h" - #include "sched-int.h" - #include "gimplify.h" -+#include "gimple-fold.h" - #include "gimple-iterator.h" - #include "gimple-ssa.h" - #include "gimple-walk.h" -@@ -17089,6 +17090,25 @@ rs6000_fold_builtin (tree fndecl, int n_ - #endif - } - -+/* Helper function to sort out which built-ins may be valid without having -+ a LHS. */ -+bool -+rs6000_builtin_valid_without_lhs (enum rs6000_builtins fn_code) -+{ -+ switch (fn_code) -+ { -+ case ALTIVEC_BUILTIN_STVX_V16QI: -+ case ALTIVEC_BUILTIN_STVX_V8HI: -+ case ALTIVEC_BUILTIN_STVX_V4SI: -+ case ALTIVEC_BUILTIN_STVX_V4SF: -+ case ALTIVEC_BUILTIN_STVX_V2DI: -+ case ALTIVEC_BUILTIN_STVX_V2DF: -+ return true; -+ default: -+ return false; -+ } -+} -+ - /* Fold a machine-dependent built-in in GIMPLE. (For folding into - a constant, use rs6000_fold_builtin.) */ - -@@ -17102,6 +17122,10 @@ rs6000_gimple_fold_builtin (gimple_stmt_ - = (enum rs6000_builtins) DECL_FUNCTION_CODE (fndecl); - tree arg0, arg1, lhs; - -+ /* Prevent gimple folding for code that does not have a LHS, unless it is -+ allowed per the rs6000_builtin_valid_without_lhs helper function. */ -+ if (!gimple_call_lhs (stmt) && !rs6000_builtin_valid_without_lhs (fn_code)) -+ return false; - switch (fn_code) - { - /* Flavors of vec_add. We deliberately don't expand -@@ -17169,6 +17193,54 @@ rs6000_gimple_fold_builtin (gimple_stmt_ - gsi_replace (gsi, g, true); - return true; - } -+ /* Vector stores. */ -+ case ALTIVEC_BUILTIN_STVX_V16QI: -+ case ALTIVEC_BUILTIN_STVX_V8HI: -+ case ALTIVEC_BUILTIN_STVX_V4SI: -+ case ALTIVEC_BUILTIN_STVX_V4SF: -+ case ALTIVEC_BUILTIN_STVX_V2DI: -+ case ALTIVEC_BUILTIN_STVX_V2DF: -+ { -+ /* Do not fold for -maltivec=be on LE targets. */ -+ if (VECTOR_ELT_ORDER_BIG && !BYTES_BIG_ENDIAN) -+ return false; -+ arg0 = gimple_call_arg (stmt, 0); /* Value to be stored. */ -+ arg1 = gimple_call_arg (stmt, 1); /* Offset. */ -+ tree arg2 = gimple_call_arg (stmt, 2); /* Store-to address. */ -+ location_t loc = gimple_location (stmt); -+ tree arg0_type = TREE_TYPE (arg0); -+ /* Use ptr_type_node (no TBAA) for the arg2_type. -+ FIXME: (Richard) "A proper fix would be to transition this type as -+ seen from the frontend to GIMPLE, for example in a similar way we -+ do for MEM_REFs by piggy-backing that on an extra argument, a -+ constant zero pointer of the alias pointer type to use (which would -+ also serve as a type indicator of the store itself). I'd use a -+ target specific internal function for this (not sure if we can have -+ those target specific, but I guess if it's folded away then that's -+ fine) and get away with the overload set." -+ */ -+ tree arg2_type = ptr_type_node; -+ /* POINTER_PLUS_EXPR wants the offset to be of type 'sizetype'. Create -+ the tree using the value from arg0. The resulting type will match -+ the type of arg2. */ -+ gimple_seq stmts = NULL; -+ tree temp_offset = gimple_convert (&stmts, loc, sizetype, arg1); -+ tree temp_addr = gimple_build (&stmts, loc, POINTER_PLUS_EXPR, -+ arg2_type, arg2, temp_offset); -+ /* Mask off any lower bits from the address. */ -+ tree aligned_addr = gimple_build (&stmts, loc, BIT_AND_EXPR, -+ arg2_type, temp_addr, -+ build_int_cst (arg2_type, -16)); -+ gsi_insert_seq_before (gsi, stmts, GSI_SAME_STMT); -+ /* The desired gimple result should be similar to: -+ MEM[(__vector floatD.1407 *)_1] = vf1D.2697; */ -+ gimple *g; -+ g = gimple_build_assign (build2 (MEM_REF, arg0_type, aligned_addr, -+ build_int_cst (arg2_type, 0)), arg0); -+ gimple_set_location (g, loc); -+ gsi_replace (gsi, g, true); -+ return true; -+ } - - default: - break; diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch deleted file mode 100644 index cfb70e1e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-Fix-ppc64le-build-Partial-backport-r256656.patch +++ /dev/null @@ -1,37 +0,0 @@ -From aa65a43516da1d48011ef621ed5988289711d99b Mon Sep 17 00:00:00 2001 -From: marxin -Date: Fri, 29 Jun 2018 09:31:30 +0000 -Subject: [PATCH] Partial backport r256656 - -2018-06-29 Martin Liska - - Backport from mainline - 2018-01-10 Kelvin Nilsen - - * lex.c (search_line_fast): Remove illegal coercion of an - unaligned pointer value to vector pointer type and replace with - use of __builtin_vec_vsx_ld () built-in function, which operates - on unaligned pointer values. - -Upstream-Status: Backport -Signed-off-by: Joel Stanley ---- - libcpp/lex.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletion(-) - -diff --git a/libcpp/lex.c b/libcpp/lex.c -index 097c78002cbb..e0fb9e822c44 100644 ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -568,7 +568,7 @@ search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED) - { - vc m_nl, m_cr, m_bs, m_qm; - -- data = *((const vc *)s); -+ data = __builtin_vec_vsx_ld (0, s); - s += 16; - - m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl); --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch deleted file mode 100644 index 603a29af..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-c-80290-memory-hog-with-std-pair.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 8c014bceeca6a558519e86b16a8142accc41e94f Mon Sep 17 00:00:00 2001 -From: jason -Date: Thu, 28 Jun 2018 00:25:21 +0000 -Subject: [PATCH] PR c++/80290 - memory-hog with std::pair. - - * pt.c (type_unification_real): Skip non-dependent conversion - check for a nested list argument. - (braced_init_depth): New. - -Upstream-Status: Backport -Signed-off-by: Joel Stanley ---- - gcc/cp/pt.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c -index 79cfd0129226..71077a3b0498 100644 ---- a/gcc/cp/pt.c -+++ b/gcc/cp/pt.c -@@ -19242,6 +19242,24 @@ try_array_deduction (tree tparms, tree targs, tree parm) - /*nondeduced*/false, array_deduction_r); - } - -+/* Returns how many levels of { } INIT contains. */ -+ -+static int -+braced_init_depth (tree init) -+{ -+ if (!init || !BRACE_ENCLOSED_INITIALIZER_P (init)) -+ return 0; -+ unsigned i; tree val; -+ unsigned max = 0; -+ FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (init), i, val) -+ { -+ unsigned elt_d = braced_init_depth (val); -+ if (elt_d > max) -+ max = elt_d; -+ } -+ return max + 1; -+} -+ - /* Most parms like fn_type_unification. - - If SUBR is 1, we're being called recursively (to unify the -@@ -19478,6 +19496,10 @@ type_unification_real (tree tparms, - - if (uses_template_parms (parm)) - continue; -+ /* Workaround for c++/80290: avoid combinatorial explosion on -+ deeply nested braced init-lists. */ -+ if (braced_init_depth (arg) > 2) -+ continue; - if (check_non_deducible_conversion (parm, arg, strict, flags, - explain_p)) - return 1; --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-rtl-optimization-83030.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-rtl-optimization-83030.patch deleted file mode 100644 index 71f7988e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-PR-rtl-optimization-83030.patch +++ /dev/null @@ -1,272 +0,0 @@ -From f5c4a9440f15ccf6775659910a2014a5494ee86e Mon Sep 17 00:00:00 2001 -From: ebotcazou -Date: Wed, 22 Nov 2017 21:43:22 +0000 -Subject: [PATCH] PR rtl-optimization/83030 * doc/rtl.texi (Flags - in an RTL Expression): Alphabetize, add entry for CROSSING_JUMP_P and - mention usage of 'jump' for JUMP_INSNs. (Insns): Delete entry for - REG_CROSSING_JUMP in register notes. * bb-reorder.c - (update_crossing_jump_flags): Do not test whether the CROSSING_JUMP_P flag - is already set before setting it. * cfgrtl.c (fixup_partition_crossing): - Likewise. * reorg.c (relax_delay_slots): Do not consider a - CROSSING_JUMP_P insn as useless. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255083 138bc75d-0d04-0410-961f-82ee72b054a4 - -Upstream-Status: Backport - -This patch removes changes to Changelog from the original upstream patch. -This will help us avoid conflicts. - -Original backport to GCC 7.x by Amruta Pawar - -Signed-off-by: Mark Hatle - ---- - gcc/bb-reorder.c | 5 +-- - gcc/cfgrtl.c | 3 +- - gcc/doc/rtl.texi | 129 ++++++++++++++++++++++++++++--------------------------- - gcc/reorg.c | 7 +-- - 5 files changed, 84 insertions(+), 72 deletions(-) - -diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c -index 55e6dc6..794283c 100644 ---- a/gcc/bb-reorder.c -+++ b/gcc/bb-reorder.c -@@ -2236,10 +2236,7 @@ update_crossing_jump_flags (void) - FOR_EACH_EDGE (e, ei, bb->succs) - if (e->flags & EDGE_CROSSING) - { -- if (JUMP_P (BB_END (bb)) -- /* Some flags were added during fix_up_fall_thru_edges, via -- force_nonfallthru_and_redirect. */ -- && !CROSSING_JUMP_P (BB_END (bb))) -+ if (JUMP_P (BB_END (bb))) - CROSSING_JUMP_P (BB_END (bb)) = 1; - break; - } -diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c -index d6e5ac0..a2ad075 100644 ---- a/gcc/cfgrtl.c -+++ b/gcc/cfgrtl.c -@@ -1334,8 +1334,7 @@ fixup_partition_crossing (edge e) - if (BB_PARTITION (e->src) != BB_PARTITION (e->dest)) - { - e->flags |= EDGE_CROSSING; -- if (JUMP_P (BB_END (e->src)) -- && !CROSSING_JUMP_P (BB_END (e->src))) -+ if (JUMP_P (BB_END (e->src))) - CROSSING_JUMP_P (BB_END (e->src)) = 1; - } - else if (BB_PARTITION (e->src) == BB_PARTITION (e->dest)) -diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi -index 21524f5..a58eedc 100644 ---- a/gcc/doc/rtl.texi -+++ b/gcc/doc/rtl.texi -@@ -565,6 +565,16 @@ that are used in certain types of expression. Most often they - are accessed with the following macros, which expand into lvalues. - - @table @code -+@findex CROSSING_JUMP_P -+@cindex @code{jump_insn} and @samp{/j} -+@item CROSSING_JUMP_P (@var{x}) -+Nonzero in a @code{jump_insn} if it crosses between hot and cold sections, -+which could potentially be very far apart in the executable. The presence -+of this flag indicates to other optimizations that this branching instruction -+should not be ``collapsed'' into a simpler branching construct. It is used -+when the optimization to partition basic blocks into hot and cold sections -+is turned on. -+ - @findex CONSTANT_POOL_ADDRESS_P - @cindex @code{symbol_ref} and @samp{/u} - @cindex @code{unchanging}, in @code{symbol_ref} -@@ -577,37 +587,6 @@ In either case GCC assumes these addresses can be addressed directly, - perhaps with the help of base registers. - Stored in the @code{unchanging} field and printed as @samp{/u}. - --@findex RTL_CONST_CALL_P --@cindex @code{call_insn} and @samp{/u} --@cindex @code{unchanging}, in @code{call_insn} --@item RTL_CONST_CALL_P (@var{x}) --In a @code{call_insn} indicates that the insn represents a call to a --const function. Stored in the @code{unchanging} field and printed as --@samp{/u}. -- --@findex RTL_PURE_CALL_P --@cindex @code{call_insn} and @samp{/i} --@cindex @code{return_val}, in @code{call_insn} --@item RTL_PURE_CALL_P (@var{x}) --In a @code{call_insn} indicates that the insn represents a call to a --pure function. Stored in the @code{return_val} field and printed as --@samp{/i}. -- --@findex RTL_CONST_OR_PURE_CALL_P --@cindex @code{call_insn} and @samp{/u} or @samp{/i} --@item RTL_CONST_OR_PURE_CALL_P (@var{x}) --In a @code{call_insn}, true if @code{RTL_CONST_CALL_P} or --@code{RTL_PURE_CALL_P} is true. -- --@findex RTL_LOOPING_CONST_OR_PURE_CALL_P --@cindex @code{call_insn} and @samp{/c} --@cindex @code{call}, in @code{call_insn} --@item RTL_LOOPING_CONST_OR_PURE_CALL_P (@var{x}) --In a @code{call_insn} indicates that the insn represents a possibly --infinite looping call to a const or pure function. Stored in the --@code{call} field and printed as @samp{/c}. Only true if one of --@code{RTL_CONST_CALL_P} or @code{RTL_PURE_CALL_P} is true. -- - @findex INSN_ANNULLED_BRANCH_P - @cindex @code{jump_insn} and @samp{/u} - @cindex @code{call_insn} and @samp{/u} -@@ -702,6 +681,29 @@ Stored in the @code{call} field and printed as @samp{/c}. - Nonzero in a @code{mem} if the memory reference holds a pointer. - Stored in the @code{frame_related} field and printed as @samp{/f}. - -+@findex MEM_READONLY_P -+@cindex @code{mem} and @samp{/u} -+@cindex @code{unchanging}, in @code{mem} -+@item MEM_READONLY_P (@var{x}) -+Nonzero in a @code{mem}, if the memory is statically allocated and read-only. -+ -+Read-only in this context means never modified during the lifetime of the -+program, not necessarily in ROM or in write-disabled pages. A common -+example of the later is a shared library's global offset table. This -+table is initialized by the runtime loader, so the memory is technically -+writable, but after control is transferred from the runtime loader to the -+application, this memory will never be subsequently modified. -+ -+Stored in the @code{unchanging} field and printed as @samp{/u}. -+ -+@findex PREFETCH_SCHEDULE_BARRIER_P -+@cindex @code{prefetch} and @samp{/v} -+@cindex @code{volatile}, in @code{prefetch} -+@item PREFETCH_SCHEDULE_BARRIER_P (@var{x}) -+In a @code{prefetch}, indicates that the prefetch is a scheduling barrier. -+No other INSNs will be moved over it. -+Stored in the @code{volatil} field and printed as @samp{/v}. -+ - @findex REG_FUNCTION_VALUE_P - @cindex @code{reg} and @samp{/i} - @cindex @code{return_val}, in @code{reg} -@@ -731,6 +733,37 @@ The same hard register may be used also for collecting the values of - functions called by this one, but @code{REG_FUNCTION_VALUE_P} is zero - in this kind of use. - -+@findex RTL_CONST_CALL_P -+@cindex @code{call_insn} and @samp{/u} -+@cindex @code{unchanging}, in @code{call_insn} -+@item RTL_CONST_CALL_P (@var{x}) -+In a @code{call_insn} indicates that the insn represents a call to a -+const function. Stored in the @code{unchanging} field and printed as -+@samp{/u}. -+ -+@findex RTL_PURE_CALL_P -+@cindex @code{call_insn} and @samp{/i} -+@cindex @code{return_val}, in @code{call_insn} -+@item RTL_PURE_CALL_P (@var{x}) -+In a @code{call_insn} indicates that the insn represents a call to a -+pure function. Stored in the @code{return_val} field and printed as -+@samp{/i}. -+ -+@findex RTL_CONST_OR_PURE_CALL_P -+@cindex @code{call_insn} and @samp{/u} or @samp{/i} -+@item RTL_CONST_OR_PURE_CALL_P (@var{x}) -+In a @code{call_insn}, true if @code{RTL_CONST_CALL_P} or -+@code{RTL_PURE_CALL_P} is true. -+ -+@findex RTL_LOOPING_CONST_OR_PURE_CALL_P -+@cindex @code{call_insn} and @samp{/c} -+@cindex @code{call}, in @code{call_insn} -+@item RTL_LOOPING_CONST_OR_PURE_CALL_P (@var{x}) -+In a @code{call_insn} indicates that the insn represents a possibly -+infinite looping call to a const or pure function. Stored in the -+@code{call} field and printed as @samp{/c}. Only true if one of -+@code{RTL_CONST_CALL_P} or @code{RTL_PURE_CALL_P} is true. -+ - @findex RTX_FRAME_RELATED_P - @cindex @code{insn} and @samp{/f} - @cindex @code{call_insn} and @samp{/f} -@@ -765,21 +798,6 @@ computation performed by this instruction, i.e., one that - This flag is required for exception handling support on targets with RTL - prologues. - --@findex MEM_READONLY_P --@cindex @code{mem} and @samp{/u} --@cindex @code{unchanging}, in @code{mem} --@item MEM_READONLY_P (@var{x}) --Nonzero in a @code{mem}, if the memory is statically allocated and read-only. -- --Read-only in this context means never modified during the lifetime of the --program, not necessarily in ROM or in write-disabled pages. A common --example of the later is a shared library's global offset table. This --table is initialized by the runtime loader, so the memory is technically --writable, but after control is transferred from the runtime loader to the --application, this memory will never be subsequently modified. -- --Stored in the @code{unchanging} field and printed as @samp{/u}. -- - @findex SCHED_GROUP_P - @cindex @code{insn} and @samp{/s} - @cindex @code{call_insn} and @samp{/s} -@@ -879,14 +897,6 @@ Stored in the @code{volatil} field and printed as @samp{/v}. - Most uses of @code{SYMBOL_REF_FLAG} are historic and may be subsumed - by @code{SYMBOL_REF_FLAGS}. Certainly use of @code{SYMBOL_REF_FLAGS} - is mandatory if the target requires more than one bit of storage. -- --@findex PREFETCH_SCHEDULE_BARRIER_P --@cindex @code{prefetch} and @samp{/v} --@cindex @code{volatile}, in @code{prefetch} --@item PREFETCH_SCHEDULE_BARRIER_P (@var{x}) --In a @code{prefetch}, indicates that the prefetch is a scheduling barrier. --No other INSNs will be moved over it. --Stored in the @code{volatil} field and printed as @samp{/v}. - @end table - - These are the fields to which the above macros refer: -@@ -974,6 +985,8 @@ In a @code{set}, 1 means it is for a return. - - In a @code{call_insn}, 1 means it is a sibling call. - -+In a @code{jump_insn}, 1 means it is a crossing jump. -+ - In an RTL dump, this flag is represented as @samp{/j}. - - @findex unchanging -@@ -3887,16 +3900,6 @@ multiple targets; the last label in the insn (in the highest numbered - insn-field) goes into the @code{JUMP_LABEL} field and does not have a - @code{REG_LABEL_TARGET} note. @xref{Insns, JUMP_LABEL}. - --@findex REG_CROSSING_JUMP --@item REG_CROSSING_JUMP --This insn is a branching instruction (either an unconditional jump or --an indirect jump) which crosses between hot and cold sections, which --could potentially be very far apart in the executable. The presence --of this note indicates to other optimizations that this branching --instruction should not be ``collapsed'' into a simpler branching --construct. It is used when the optimization to partition basic blocks --into hot and cold sections is turned on. -- - @findex REG_SETJMP - @item REG_SETJMP - Appears attached to each @code{CALL_INSN} to @code{setjmp} or a -diff --git a/gcc/reorg.c b/gcc/reorg.c -index 5914af6..77f3fe7 100644 ---- a/gcc/reorg.c -+++ b/gcc/reorg.c -@@ -3360,10 +3360,11 @@ relax_delay_slots (rtx_insn *first) - } - - /* See if we have a simple (conditional) jump that is useless. */ -- if (! INSN_ANNULLED_BRANCH_P (delay_jump_insn) -- && ! condjump_in_parallel_p (delay_jump_insn) -+ if (!CROSSING_JUMP_P (delay_jump_insn) -+ && !INSN_ANNULLED_BRANCH_P (delay_jump_insn) -+ && !condjump_in_parallel_p (delay_jump_insn) - && prev_active_insn (as_a (target_label)) == insn -- && ! BARRIER_P (prev_nonnote_insn (as_a (target_label))) -+ && !BARRIER_P (prev_nonnote_insn (as_a (target_label))) - /* If the last insn in the delay slot sets CC0 for some insn, - various code assumes that it is in a delay slot. We could - put it back where it belonged and delete the register notes, --- -1.8.5.6 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index 1af1c74e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2fcf1e23ef4b2a5c93526f12212aa892595261f6 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:37:11 +0400 -Subject: [PATCH 01/47] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - configure | 2 +- - configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index 32a38633ad8..b4760952085 100755 ---- a/configure -+++ b/configure -@@ -7472,7 +7472,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in -diff --git a/configure.ac b/configure.ac -index 12377499295..176ebb921ed 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3065,7 +3065,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0009-gcc-poison-system-directories.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0009-gcc-poison-system-directories.patch deleted file mode 100644 index fe13ed6e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0009-gcc-poison-system-directories.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 4791a0a0f4595d0a18974f4e85a759a0789943db Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH 09/47] gcc: poison-system-directories - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [distribution: codesourcery] ---- - gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ - gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 19 +++++++++++++++++++ - 7 files changed, 66 insertions(+) - -diff --git a/gcc/common.opt b/gcc/common.opt -index a5c3aeaa336..f02fe66367e 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -662,6 +662,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. - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - 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 bf2aa7b2e7d..b1203987e15 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -194,6 +194,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - 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 c823ffe6290..4898f04fa6b 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -949,6 +949,7 @@ with_system_zlib - enable_maintainer_mode - enable_link_mutex - enable_version_specific_runtime_libs -+enable_poison_system_directories - enable_plugin - enable_host_shared - enable_libquadmath_support -@@ -1691,6 +1692,8 @@ Optional Features: - --enable-version-specific-runtime-libs - specify that runtime libraries should be installed - in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --enable-host-shared build host code as shared libraries - --disable-libquadmath-support -@@ -29347,6 +29350,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index acfe9797389..9dc1dc7fc96 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6101,6 +6101,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, - [specify that runtime libraries should be - installed in a compiler-specific directory])]) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 68a558e9992..060cd7169c6 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -298,6 +298,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wpacked-bitfield-compat -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wplacement-new -Wplacement-new=@var{n} @gol -+-Wno-poison-system-directories @gol - -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol - -Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol - -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol -@@ -5395,6 +5396,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. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index c48178f..f63d53d 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1029,6 +1029,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:%{!nostartfiles:%S}} \ -+ %{Wno-poison-system-directories:--no-poison-system-directories} \ -+ %{Werror=poison-system-directories:--error-poison-system-directories} \ - %{static|no-pie:} %{L*} %(mfwrap) %(link_libgcc) " \ - VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \ - %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index 98fe5ec9ab3..f90e74dbd73 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -26,6 +26,7 @@ - #include "intl.h" - #include "incpath.h" - #include "cppdefault.h" -+#include "diagnostic-core.h" - - /* Microsoft Windows does not natively support inodes. - VMS has non-numeric inodes. */ -@@ -382,6 +383,24 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0010-gcc-poison-dir-extend.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0010-gcc-poison-dir-extend.patch deleted file mode 100644 index 4e06aa2f..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0010-gcc-poison-dir-extend.patch +++ /dev/null @@ -1,39 +0,0 @@ -From e74ef84ad609b3b6a5c37d207ffc3c6e70d1f025 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:00:34 +0400 -Subject: [PATCH 10/47] gcc-poison-dir-extend - -Add /sw/include and /opt/include based on the original -zecke-no-host-includes.patch patch. The original patch checked for -/usr/include, /sw/include and /opt/include and then triggered a failure and -aborted. - -Instead, we add the two missing items to the current scan. If the user -wants this to be a failure, they can add "-Werror=poison-system-directories". - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/incpath.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/gcc/incpath.c b/gcc/incpath.c -index f90e74dbd73..c583ee5061d 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -393,7 +393,9 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - { - if ((!strncmp (p->name, "/usr/include", 12)) - || (!strncmp (p->name, "/usr/local/include", 18)) -- || (!strncmp (p->name, "/usr/X11R6/include", 18))) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) - warning (OPT_Wpoison_system_directories, - "include location \"%s\" is unsafe for " - "cross-compilation", --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index b39ff1ec..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0011-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,73 +0,0 @@ -From a41d3a53a4e313c20802330d6b5c75358a4ed882 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:08:31 +0400 -Subject: [PATCH 11/47] 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. - -This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. - -Other changes I had to do include: - -- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. - -- passing the right CFLAGS to configure scripts as exported environment variables - -I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. - -Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? - -Signed-off-by: Paolo Bonzini -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - configure | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/configure b/configure -index b4760952085..72a8ba94c4e 100755 ---- a/configure -+++ b/configure -@@ -6736,6 +6736,38 @@ fi - - - -+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -+# We want to ensure that TARGET libraries (which we know are built with -+# gcc) are built with "-O2 -g", so include those options when setting -+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -+if test "x$CFLAGS_FOR_TARGET" = x; then -+ CFLAGS_FOR_TARGET=$CFLAGS -+ case " $CFLAGS " in -+ *" -O2 "*) ;; -+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; -+ esac -+ case " $CFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; -+ esac -+fi -+ -+ -+if test "x$CXXFLAGS_FOR_TARGET" = x; then -+ CXXFLAGS_FOR_TARGET=$CXXFLAGS -+ case " $CXXFLAGS " in -+ *" -O2 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; -+ esac -+ case " $CXXFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; -+ esac -+fi -+ -+ - # 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.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0012-64-bit-multilib-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0012-64-bit-multilib-hack.patch deleted file mode 100644 index f3b39120..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0012-64-bit-multilib-hack.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 3af9fbbd14e83242ac2acb54bbb4bb726845fd34 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:10:06 +0400 -Subject: [PATCH 12/47] 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 -complete customisation of the library directories. - -This patch is a partial solution to allow any custom directories to be passed into gcc -and handled correctly. It forces gcc to use the base_libdir (which is the current -directory, "."). We need to do this for each multilib that is configured as we don't -know which compiler options may be being passed into the compiler. Since we have a compiler -per mulitlib at this point that isn't an issue. - -The one problem is the target compiler is only going to work for the default multlilib at -this point. Ideally we'd figure out which multilibs were being enabled with which paths -and be able to patch these entries with a complete set of correct paths but this we -don't have such code at this point. This is something the target gcc recipe should do -and override these platform defaults in its build config. - -RP 15/8/11 - -Signed-off-by: Khem Raj -Signed-off-by: Elvis Dowson - -Upstream-Status: Pending ---- - gcc/config/i386/t-linux64 | 6 ++---- - gcc/config/mips/t-linux64 | 10 +++------- - gcc/config/rs6000/t-linux64 | 5 ++--- - 3 files changed, 7 insertions(+), 14 deletions(-) - -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 -index e422c442dae..cc885e24457 100644 ---- a/gcc/config/i386/t-linux64 -+++ b/gcc/config/i386/t-linux64 -@@ -32,7 +32,5 @@ - # - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) --MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) --MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) -+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 100f9da5e14..601cdf08d05 100644 ---- a/gcc/config/mips/t-linux64 -+++ b/gcc/config/mips/t-linux64 -@@ -17,10 +17,6 @@ - # . - - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 --MULTILIB_DIRNAMES = n32 32 64 --MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) --MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) --MULTILIB_OSDIRNAMES = \ -- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ -- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ -- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) -+MULTILIB_DIRNAMES = . . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -+ -diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 -index 2830ed0d861..d057facd2fd 100644 ---- a/gcc/config/rs6000/t-linux64 -+++ b/gcc/config/rs6000/t-linux64 -@@ -26,10 +26,9 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS := m64/m32 --MULTILIB_DIRNAMES := 64 32 -+MULTILIB_DIRNAMES := . . - MULTILIB_EXTRA_OPTS := --MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) --MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c - $(COMPILE) $< --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0013-optional-libstdc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0013-optional-libstdc.patch deleted file mode 100644 index 3439bf67..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0013-optional-libstdc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 26a58d05844274915d011edbf9330c6151687b22 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:12:56 +0400 -Subject: [PATCH 13/47] 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++ -which shouldn't exist yet. We need an option to disable -lstdc++ -option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc -driver. This patch adds such an option which only disables the -lstdc++. - -A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to -do this officially, the likely answer is don't build libstdc++ separately. - -RP 29/6/10 - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - gcc/c-family/c.opt | 4 ++++ - gcc/cp/g++spec.c | 1 + - gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- - gcc/gcc.c | 1 + - 4 files changed, 37 insertions(+), 1 deletion(-) - -diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt -index 9ad2f6e1fcc..c4ef7796282 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -1848,6 +1848,10 @@ nostdinc++ - C++ ObjC++ - Do not search standard system include directories for C++. - -+nostdlib++ -+Driver -+Do not link standard C++ runtime library -+ - o - 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 ffcc87c79c9..28d8a9cf530 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, - switch (decoded_options[i].opt_index) - { - case OPT_nostdlib: -+ case OPT_nostdlib__: - case OPT_nodefaultlibs: - library = -1; - break; -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 060cd7169c6..8e2adc25644 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -211,6 +211,9 @@ in the following sections. - -fno-weak -nostdinc++ @gol - -fvisibility-inlines-hidden @gol - -fvisibility-ms-compat @gol -+-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol -+-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 -Wliteral-suffix -Wmultiple-inheritance @gol -@@ -496,7 +499,7 @@ Objective-C and Objective-C++ Dialects}. - -s -static -static-libgcc -static-libstdc++ @gol - -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol - -static-libmpx -static-libmpxwrappers @gol ---shared -shared-libgcc -symbolic @gol -+-shared -shared-libgcc -symbolic -nostdlib++ @gol - -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol - -u @var{symbol} -z @var{keyword}} - -@@ -11606,6 +11609,33 @@ library subroutines. - constructors are called; @pxref{Collect2,,@code{collect2}, gccint, - GNU Compiler Collection (GCC) Internals}.) - -+@item -nostdlib++ -+@opindex nostdlib++ -+Do not use the standard system C++ runtime libraries when linking. -+Only the libraries you specify will be passed to the linker. -+ -+@cindex @option{-lgcc}, use with @option{-nostdlib} -+@cindex @option{-nostdlib} and unresolved references -+@cindex unresolved references and @option{-nostdlib} -+@cindex @option{-lgcc}, use with @option{-nodefaultlibs} -+@cindex @option{-nodefaultlibs} and unresolved references -+@cindex unresolved references and @option{-nodefaultlibs} -+One of the standard libraries bypassed by @option{-nostdlib} and -+@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines -+which GCC uses to overcome shortcomings of particular machines, or special -+needs for some languages. -+(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler -+Collection (GCC) Internals}, -+for more discussion of @file{libgcc.a}.) -+In most cases, you need @file{libgcc.a} even when you want to avoid -+other standard libraries. In other words, when you specify @option{-nostdlib} -+or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. -+This ensures that you have no unresolved references to internal GCC -+library subroutines. -+(An example of such an internal subroutine is @code{__main}, used to ensure C++ -+constructors are called; @pxref{Collect2,,@code{collect2}, gccint, -+GNU Compiler Collection (GCC) Internals}.) -+ - @item -pie - @opindex pie - Produce a position independent executable on targets that support it. -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 6315aa0dd16..a5fafbe5107 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1046,6 +1046,7 @@ proper position among the other output files. */ - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ - %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!nostartfiles:%E}} %{T*} \n%(post_link) }}}}}}" - #endif - --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch deleted file mode 100644 index f92b5fba..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0014-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 716de5db6859fd1ea21078c94a41fac7a885b7e9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:14:20 +0400 -Subject: [PATCH 14/47] gcc: disable MASK_RELAX_PIC_CALLS bit - -The new feature added after 4.3.3 -"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html" -will cause cc1plus eat up all the system memory when build webkit-gtk. -The function mips_get_pic_call_symbol keeps on recursively calling itself. -Disable this feature to walk aside the bug. - -Signed-off-by: Dongxiao Xu -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 7 ------- - gcc/configure.ac | 7 ------- - 2 files changed, 14 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 4898f04fa6b..640e4643805 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -27303,13 +27303,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6; - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5 - $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 9dc1dc7fc96..9a2dae55ba2 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -4641,13 +4641,6 @@ x: - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc) - - AC_CACHE_CHECK([linker for .eh_frame personality relaxation], --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0015-COLLECT_GCC_OPTIONS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0015-COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index 6e62945e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0015-COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 04a7a672301bb07caea6a7cad8378f63f1fe3200 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:16:28 +0400 -Subject: [PATCH 15/47] COLLECT_GCC_OPTIONS - -This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to -invoke collect2. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/gcc.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index a5fafbe5107..05896e19926 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -4654,6 +4654,15 @@ set_collect_gcc_options (void) - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; -+#ifdef HAVE_LD_SYSROOT -+ if (target_system_root_changed && target_system_root) -+ { -+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); -+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); -+ obstack_grow (&collect_obstack, "'", 1); -+ first_time = FALSE; -+ } -+#endif - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0016-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0016-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch deleted file mode 100644 index 1991251c..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0016-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 47071cbd4f13ff5a4974f71f359a04afcfb125da Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:17:25 +0400 -Subject: [PATCH 16/47] 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, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -While compiling gcc-crosssdk-initial-x86_64 on some host, there is -occasionally failure that test the existance of default.h doesn't -work, the reason is tm_include_list='** defaults.h' rather than -tm_include_list='** ./defaults.h' - -So we add the test condition for this situation. -Signed-off-by: Hongxu Jia ---- - gcc/Makefile.in | 2 +- - gcc/configure | 4 ++-- - gcc/configure.ac | 4 ++-- - gcc/mkconfig.sh | 4 ++-- - 4 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 2411671cea3..7b590c9bbd3 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -532,7 +532,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ - TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ - - xmake_file=@xmake_file@ --tmake_file=@tmake_file@ -+tmake_file=@tmake_file@ ./t-oe - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ -diff --git a/gcc/configure b/gcc/configure -index 640e4643805..b5ac1552541 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12150,8 +12150,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 9a2dae55ba2..cb1479d1ef4 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1922,8 +1922,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh -index 9fc7b5ca734..04abecfe648 100644 ---- a/gcc/mkconfig.sh -+++ b/gcc/mkconfig.sh -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then - if [ $# -ge 1 ]; then - echo '#ifdef IN_GCC' >> ${output}T - for file in "$@"; do -- if test x"$file" = x"defaults.h"; then -+ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then - postpone_defaults_h="yes" - else - echo "# include \"$file\"" >> ${output}T -@@ -109,7 +109,7 @@ esac - - # If we postponed including defaults.h, add the #include now. - if test x"$postpone_defaults_h" = x"yes"; then -- echo "# include \"defaults.h\"" >> ${output}T -+ echo "# include \"./defaults.h\"" >> ${output}T - fi - - # Add multiple inclusion protection guard, part two. --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0017-fortran-cross-compile-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0017-fortran-cross-compile-hack.patch deleted file mode 100644 index e2830c59..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0017-fortran-cross-compile-hack.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 4fc35a2bb7666a7de35568eb5d47f0ce6acebe62 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:20:01 +0400 -Subject: [PATCH 17/47] 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 -directory. - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - libgfortran/configure | 2 +- - libgfortran/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libgfortran/configure b/libgfortran/configure -index 81238fcb79c..7ded7abd456 100755 ---- a/libgfortran/configure -+++ b/libgfortran/configure -@@ -12792,7 +12792,7 @@ esac - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - ac_ext=${ac_fc_srcext-f} - 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 37b12d2998f..63a4166ef62 100644 ---- a/libgfortran/configure.ac -+++ b/libgfortran/configure.ac -@@ -243,7 +243,7 @@ AC_SUBST(enable_static) - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - AC_PROG_FC(gfortran) - - # extra LD Flags which are required for targets --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0018-cpp-honor-sysroot.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0018-cpp-honor-sysroot.patch deleted file mode 100644 index 55590741..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0018-cpp-honor-sysroot.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 1c8a332469ca4bfefb10df70720e0dc83ff9a756 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH 18/47] 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 -rather than the --sysroot option specified on the commandline. If access to that directory is -permission denied (unreadable), gcc will error. - -This happens when ccache is in use due to the fact it uses preprocessed source files. - -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, --isystem, -isysroot happen and the correct sysroot is used. - -[YOCTO #2074] - -RP 2012/04/13 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/cp/lang-specs.h | 2 +- - gcc/gcc.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h -index 6b383e1d86d..c7c7d6a56ec 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -64,5 +64,5 @@ along with GCC; see the file COPYING3. If not see - {".ii", "@c++-cpp-output", 0, 0, 0}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -- cc1plus -fpreprocessed %i %(cc1_options) %2\ -+ 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 05896e19926..c73d4023987 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1351,7 +1351,7 @@ static const struct compiler default_compilers[] = - %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, - {".s", "@assembler", 0, 0, 0}, - {"@assembler", - "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0019-MIPS64-Default-to-N64-ABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0019-MIPS64-Default-to-N64-ABI.patch deleted file mode 100644 index 742a4012..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0019-MIPS64-Default-to-N64-ABI.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0a3b3cc45ea7ba83b46df7464b41c377e3966d88 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:23:08 +0400 -Subject: [PATCH 19/47] MIPS64: Default to N64 ABI - -MIPS64 defaults to n32 ABI, this patch makes it -so that it defaults to N64 ABI - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE config specific] ---- - gcc/config.gcc | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index b8bb4d65825..5e45f4b5199 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2084,29 +2084,29 @@ mips*-*-linux*) # Linux MIPS, either endian. - default_mips_arch=mips32 - ;; - mips64el-st-linux-gnu) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_file="${tm_file} mips/st.h" - tmake_file="${tmake_file} mips/t-st" - enable_mips_multilibs="yes" - ;; - mips64octeon*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" - target_cpu_default=MASK_SOFT_FLOAT_ABI - enable_mips_multilibs="yes" - ;; - mipsisa64r6*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r6 - enable_mips_multilibs="yes" - ;; - mipsisa64r2*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r2 - enable_mips_multilibs="yes" - ;; - mips64*-*-linux* | mipsisa64*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - enable_mips_multilibs="yes" - ;; - esac --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0020-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0020-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch deleted file mode 100644 index de7b4df5..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0020-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch +++ /dev/null @@ -1,234 +0,0 @@ -From d6c983b685ee03e9cf21189108d31ed9f760ff3f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:24:50 +0400 -Subject: [PATCH 20/47] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER - relative to SYSTEMLIBS_DIR - -This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER -relative to SYSTEMLIBS_DIR which can be set in generated headers -This breaks the assumption of hardcoded multilib in gcc -Change is only for the supported architectures in OE including -SH, sparc, alpha for possible future support (if any) - -Removes the do_headerfix task in metadata - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE configuration] ---- - gcc/config/alpha/linux-elf.h | 4 ++-- - gcc/config/arm/linux-eabi.h | 4 ++-- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/i386/linux.h | 2 +- - gcc/config/i386/linux64.h | 6 +++--- - gcc/config/linux.h | 8 ++++---- - gcc/config/mips/linux.h | 12 ++++++------ - gcc/config/rs6000/linux64.h | 16 ++++++---------- - gcc/config/sh/linux.h | 2 +- - gcc/config/sparc/linux.h | 2 +- - gcc/config/sparc/linux64.h | 4 ++-- - 11 files changed, 29 insertions(+), 33 deletions(-) - -diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h -index 2c39fbe601c..6d88e21abe2 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 - #define EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" - #if DEFAULT_LIBC == LIBC_UCLIBC - #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 a08cfb34377..fbac9a9d994 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -62,8 +62,8 @@ - GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ - - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" --#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" - #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT - - #define GLIBC_DYNAMIC_LINKER \ -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h -index 3d62367ae68..e8a16191849 100644 ---- a/gcc/config/arm/linux-elf.h -+++ b/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - - #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ - %{static:-Bstatic} \ -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h -index 59132124d6b..336d158629c 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 - . */ - - #define GNU_USER_LINK_EMULATION "elf_i386" --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 e65c404ff91..c34ded98481 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 - #define GNU_USER_LINK_EMULATION64 "elf_x86_64" - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" - - #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 b3a9e85e77f..2e683d0c430 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -81,10 +81,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - GLIBC_DYNAMIC_LINKER must be defined for each target using them, or - GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets - supporting both 32-bit and 64-bit compilation. */ --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" - #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" - #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 44132b8e44d..80505ad9f48 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 - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" - - #define GLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - - #undef UCLIBC_DYNAMIC_LINKER32 - #define UCLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - #undef UCLIBC_DYNAMIC_LINKER64 - #define UCLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" - #define UCLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 71e35b709ad..3b00ec0fcf0 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -412,16 +412,11 @@ extern int dot_symbols; - #undef LINK_OS_DEFAULT_SPEC - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" - --#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" -- -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" - #ifdef LINUX64_DEFAULT_ABI_ELFv2 --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.2}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" - #else --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.1}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" - #endif - - #define MUSL_DYNAMIC_LINKER32 \ -@@ -429,8 +424,9 @@ extern int dot_symbols; - #define MUSL_DYNAMIC_LINKER64 \ - "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+ - #if DEFAULT_LIBC == LIBC_UCLIBC - #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ - "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h -index c30083423f2..196b82725f8 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 - "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ - "%{mfdpic:-fdpic}.so.1" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 ce084656fca..bed6300cb2a 100644 ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 573ce8a9a4c..6749f6b5d9c 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 - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" - - #ifdef SPARC_BI_ARCH - --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0021-gcc-Fix-argument-list-too-long-error.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0021-gcc-Fix-argument-list-too-long-error.patch deleted file mode 100644 index 4e562144..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0021-gcc-Fix-argument-list-too-long-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 80c24247fed52c1269791088090bc0fa85280983 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:26:37 +0400 -Subject: [PATCH 21/47] 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: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang -Signed-off-by: Khem Raj - -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 7b590c9bbd3..23cca7f0d5a 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3459,7 +3459,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))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0022-Disable-sdt.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0022-Disable-sdt.patch deleted file mode 100644 index 871f195c..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0022-Disable-sdt.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 3021fec485f44478a3d5fffb4adac13d831fcdc1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:28:10 +0400 -Subject: [PATCH 22/47] 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 -sdt.h usage always. This avoids build failures if the header is removed after configure -but before libgcc is compiled for example. - -RP 2012/8/7 - -Signed-off-by: Khem Raj - -Disable sdt for libstdc++-v3. - -Signed-off-by: Robert Yang - -Upstream-Status: Inappropriate [hack] ---- - gcc/configure | 12 ++++++------ - gcc/configure.ac | 18 +++++++++--------- - libstdc++-v3/configure | 6 +++--- - libstdc++-v3/configure.ac | 2 +- - 4 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index b5ac1552541..08b2f63c7fa 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -28967,12 +28967,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 --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -- --fi -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+# -+#fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 - $as_echo "$have_sys_sdt_h" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index cb1479d1ef4..0581fe963dc 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5754,15 +5754,15 @@ fi - AC_SUBST([enable_default_ssp]) - - # Test for on the target. --GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) --AC_MSG_CHECKING(sys/sdt.h in the target C library) --have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- AC_DEFINE(HAVE_SYS_SDT_H, 1, -- [Define if your target C library provides sys/sdt.h]) --fi --AC_MSG_RESULT($have_sys_sdt_h) -+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) -+#AC_MSG_CHECKING(sys/sdt.h in the target C library) -+#have_sys_sdt_h=no -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# AC_DEFINE(HAVE_SYS_SDT_H, 1, -+# [Define if your target C library provides sys/sdt.h]) -+#fi -+#AC_MSG_RESULT($have_sys_sdt_h) - - # 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 fb7e126c0b0..a18057feb88 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -21856,11 +21856,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 - -- if test $glibcxx_cv_sys_sdt_h = yes; then -+# if test $glibcxx_cv_sys_sdt_h = yes; then - --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h - -- fi -+# fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 - $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } - -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index 8e973503be0..a46d25e740d 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN - GLIBCXX_CHECK_SC_NPROC_ONLN - GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP - GLIBCXX_CHECK_SYSCTL_HW_NCPU --GLIBCXX_CHECK_SDT_H -+#GLIBCXX_CHECK_SDT_H - - # Check for available headers. - AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0023-libtool.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0023-libtool.patch deleted file mode 100644 index 27dfb1fd..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0023-libtool.patch +++ /dev/null @@ -1,42 +0,0 @@ -From e79a4f8169e836c8deabca5a45884cfe11d07847 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:29:11 +0400 -Subject: [PATCH 23/47] libtool - -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 -when running on am x86_64 build host. - -This patch stops this speading to libdir in the libstdc++.la file within libtool. -Arguably, it shouldn't be passing this into libtool in the first place but -for now this resolves the nastiest problems this causes. - -func_normal_abspath would resolve an empty path to `pwd` so we need -to filter the zero case. - -RP 2012/8/24 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - ltmain.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 9503ec85d70..0121fba707f 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6359,6 +6359,10 @@ func_mode_link () - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" -+ if test -n "$install_libdir"; then -+ func_normal_abspath "$install_libdir" -+ install_libdir=$func_normal_abspath_result -+ fi - - oldlibs= - if test -z "$rpath"; then --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0024-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0024-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch deleted file mode 100644 index aa1e1bb8..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0024-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 74d8dc48cb185e304c60067b4d8b50447ec328ec Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:30:32 +0400 -Subject: [PATCH 24/47] 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 -the option is not passed to linker when chosing march=armv4 -This patch redefines this in linux-eabi.h and reinserts it -for eabi defaulting toolchains. - -We might want to send it upstream. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/config/arm/linux-eabi.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index fbac9a9d994..5a51a8a7095 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -88,10 +88,14 @@ - #define MUSL_DYNAMIC_LINKER \ - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" - -+/* For armv4 we pass --fix-v4bx to linker to support EABI */ -+#undef TARGET_FIX_V4BX_SPEC -+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" -+ - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ - #undef LINK_SPEC --#define LINK_SPEC EABI_LINK_SPEC \ -+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ - LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ - LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) - --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0025-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0025-Use-the-multilib-config-files-from-B-instead-of-usin.patch deleted file mode 100644 index b2341323..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0025-Use-the-multilib-config-files-from-B-instead-of-usin.patch +++ /dev/null @@ -1,102 +0,0 @@ -From ac50dc3010a66220ad483c09efe270bb3f4c9424 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:33:04 +0400 -Subject: [PATCH 25/47] 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, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj -Signed-off-by: Constantin Musca - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 22 ++++++++++++++++++---- - gcc/configure.ac | 22 ++++++++++++++++++---- - 2 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 08b2f63c7fa..6ba391ed068 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12130,10 +12130,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -12144,6 +12154,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 0581fe963dc..8551a412df3 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1902,10 +1902,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -1916,6 +1926,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch deleted file mode 100644 index fe247134..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0026-Avoid-using-libdir-from-.la-which-usually-points-to-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9fab47d8662986ad887d9eddc39fcbe25e576383 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:39:38 +0000 -Subject: [PATCH 26/47] Avoid using libdir from .la which usually points to a - host path - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jonathan Liu -Signed-off-by: Khem Raj ---- - ltmain.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 0121fba707f..52bdbdb5f9c 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -5628,6 +5628,9 @@ func_mode_link () - absdir="$abs_ladir" - libdir="$abs_ladir" - else -+ # Instead of using libdir from .la which usually points to a host path, -+ # use the path the .la is contained in. -+ libdir="$abs_ladir" - dir="$libdir" - absdir="$libdir" - fi --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0027-export-CPP.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0027-export-CPP.patch deleted file mode 100644 index 4f9e1f0b..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0027-export-CPP.patch +++ /dev/null @@ -1,53 +0,0 @@ -From fa6a46fdf73de7eacd289c084bbde6643b23f73b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH 27/47] 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 -in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: - -configure:3641: checking for _FILE_OFFSET_BITS value needed for large files -configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 -configure:3666: $? = 0 -configure:3698: result: no -configure:3786: checking how to run the C preprocessor -configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 -configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c -configure:3876: $? = 0 - -Note this is a *build* target (in build-x86_64-linux) so it should be -using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 -headers are very different, using the wrong cpp is a real problem. It is leaking -into configure through the CPP variable. Ultimately this leads to build -failures related to not being able to include a process.h file for pem-unix.c. - -The fix is to ensure we export a sane CPP value into the build -environment when using build targets. We could define a CPP_FOR_BUILD value which may be -the version which needs to be upstreamed but for now, this fix is good enough to -avoid the problem. - -RP 22/08/2013 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.in b/Makefile.in -index b824e0a0ca1..e34e9555388 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ -+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch deleted file mode 100644 index b903349d..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0028-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 2c05b4072f982df8002d61327837e18a724e934f Mon Sep 17 00:00:00 2001 -From: Alexandru-Cezar Sardan -Date: Wed, 5 Feb 2014 16:52:31 +0200 -Subject: [PATCH 28/47] Enable SPE & AltiVec generation on powepc*linux target - -When is configured with --target=powerpc-linux, the resulting GCC will -not be able to generate code for SPE targets (e500v1/v2). -GCC configured with --target=powerpc-linuxspe will not be able to -generate AltiVec instructions (for e6500). -This patch modifies the configured file such that SPE or AltiVec code -can be generated when gcc is configured with --target=powerpc-linux. -The ABI and speciffic instructions can be selected through the -"-mabi=spe or -mabi=altivec" and the "-mspe or -maltivec" parameters. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Alexandru-Cezar Sardan ---- - gcc/config.gcc | 9 ++++++++- - gcc/config/rs6000/linuxspe.h | 3 --- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 5e45f4b5199..9b381dfd9af 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2415,7 +2415,14 @@ powerpc-*-rtems*) - tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" - ;; - powerpc*-*-linux*) -- tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" -+ case ${target} in -+ powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*) -+ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" -+ ;; -+ *) -+ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h rs6000/linuxaltivec.h rs6000/linuxspe.h rs6000/e500.h" -+ ;; -+ esac - extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" - extra_objs="$extra_objs rs6000-linux.o" -diff --git a/gcc/config/rs6000/linuxspe.h b/gcc/config/rs6000/linuxspe.h -index 92efabfe664..6d486451a7e 100644 ---- a/gcc/config/rs6000/linuxspe.h -+++ b/gcc/config/rs6000/linuxspe.h -@@ -27,6 +27,3 @@ - #undef TARGET_DEFAULT - #define TARGET_DEFAULT MASK_STRICT_ALIGN - #endif -- --#undef ASM_DEFAULT_SPEC --#define ASM_DEFAULT_SPEC "-mppc -mspe -me500" --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch deleted file mode 100644 index 7306a282..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0029-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch +++ /dev/null @@ -1,42 +0,0 @@ -From ec0f843b86c0f76bc5ebb20fafbc4aae1be4db61 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:21:55 +0000 -Subject: [PATCH 29/47] Disable the MULTILIB_OSDIRNAMES and other multilib - options. - -Hard coding the MULTILIB_OSDIRNAMES with ../lib64 is causing problems on -systems where the libdir is NOT set to /lib64. This is allowed by the -ABI, as -long as the dynamic loader is present in /lib. - -We simply want to use the default rules in gcc to find and configure the -normal libdir. - -Upstream-Status: Inappropriate[OE-Specific] - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/t-aarch64-linux | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux -index ab064ab6f22..f4b1f98b216 100644 ---- a/gcc/config/aarch64/t-aarch64-linux -+++ b/gcc/config/aarch64/t-aarch64-linux -@@ -21,8 +21,8 @@ - LIB1ASMSRC = aarch64/lib1funcs.asm - LIB1ASMFUNCS = _aarch64_sync_cache_range - --AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) --MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) --MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) -+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) -+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) -+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) - --MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 -+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0030-Ensure-target-gcc-headers-can-be-included.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0030-Ensure-target-gcc-headers-can-be-included.patch deleted file mode 100644 index 568ba95e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0030-Ensure-target-gcc-headers-can-be-included.patch +++ /dev/null @@ -1,98 +0,0 @@ -From bf5836989e0ffc1c1df1369df06877e96c08df41 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:25:11 +0000 -Subject: [PATCH 30/47] 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 -built for the target architecture, these are within the target -sysroot and not cross/nativesdk; thus they weren't able to be -found by gcc with the existing search paths. Add support for -picking up these headers under the sysroot supplied on the gcc -command line in order to resolve this. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton -Signed-off-by: Khem Raj ---- - gcc/Makefile.in | 2 ++ - gcc/cppdefault.c | 4 ++++ - gcc/defaults.h | 9 +++++++++ - gcc/gcc.c | 7 ------- - 4 files changed, 15 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 23cca7f0d5a..95d21effad3 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -608,6 +608,7 @@ libexecdir = @libexecdir@ - - # Directory in which the compiler finds libraries etc. - libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) -+libsubdir_target = gcc/$(target_noncanonical)/$(version) - # 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 -@@ -2791,6 +2792,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" - - PREPROCESSOR_DEFINES = \ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ -+ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ - -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 10b96eca0a7..c8da0884872 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -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 -+#ifdef GCC_INCLUDE_SUBDIR_TARGET -+ /* This is the dir for gcc's private headers under the specified sysroot. */ -+ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+#endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -diff --git a/gcc/defaults.h b/gcc/defaults.h -index 7ad92d920f8..39848cc9c0e 100644 ---- a/gcc/defaults.h -+++ b/gcc/defaults.h -@@ -1475,4 +1475,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB - #endif - -+/* Default prefixes to attach to command names. */ -+ -+#ifndef STANDARD_STARTFILE_PREFIX_1 -+#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#endif -+#ifndef STANDARD_STARTFILE_PREFIX_2 -+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#endif -+ - #endif /* ! GCC_DEFAULTS_H */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index c73d4023987..b27245dbf77 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1472,13 +1472,6 @@ static const char *gcc_libexec_prefix; - - /* Default prefixes to attach to command names. */ - --#ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" --#endif --#ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" --#endif -- - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ - #undef MD_EXEC_PREFIX - #undef MD_STARTFILE_PREFIX --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch deleted file mode 100644 index 0184010f..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0031-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch +++ /dev/null @@ -1,54 +0,0 @@ -From c7b4d957edda955fbe405fd5295846614529f517 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 11:17:19 +0000 -Subject: [PATCH 31/47] 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 ---- - 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 d731406fdbd..2fafc72d2e7 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 f6eeab312ea..3f06a894058 100644 ---- a/libatomic/Makefile.in -+++ b/libatomic/Makefile.in -@@ -331,7 +331,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.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch deleted file mode 100644 index e8905f52..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0032-Don-t-search-host-directory-during-relink-if-inst_pr.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 3be6b766a5881b0b187c3c3c68250a9e4f7c0fa3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 3 Mar 2015 08:21:19 +0000 -Subject: [PATCH 32/47] Don't search host directory during "relink" if - $inst_prefix is provided - -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj ---- - ltmain.sh | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 52bdbdb5f9c..82bcec39f05 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6004,12 +6004,13 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -+ # Default if $libdir is not relative to the prefix: - add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -+ - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ add_dir="-L$inst_prefix_dir$libdir" - ;; - esac - fi --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0033-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0033-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch deleted file mode 100644 index c0b8df3e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0033-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6edcab9046b862cbb9b46892fc390ce69976539c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:15:27 -0700 -Subject: [PATCH 33/47] Use SYSTEMLIBS_DIR replacement instead of hardcoding - base_libdir - -Signed-off-by: Khem Raj ---- -Upstream-Status: Inappropriate [OE-Specific] - - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index c45fc1d35d1..a7afe197266 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -21,7 +21,7 @@ - #ifndef GCC_AARCH64_LINUX_H - #define GCC_AARCH64_LINUX_H - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0034-aarch64-Add-support-for-musl-ldso.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0034-aarch64-Add-support-for-musl-ldso.patch deleted file mode 100644 index 7d866d90..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0034-aarch64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b140d6839cfba9cac892bc736d984540552d6a56 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:18:39 -0700 -Subject: [PATCH 34/47] aarch64: Add support for musl ldso - -Signed-off-by: Khem Raj ---- -Upstream-Status: Inappropriate [OE-Specific] - - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index a7afe197266..580c2c7ea15 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -24,7 +24,7 @@ - #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef ASAN_CC1_SPEC - #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0035-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0035-libcc1-fix-libcc1-s-install-path-and-rpath.patch deleted file mode 100644 index e2c1956d..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0035-libcc1-fix-libcc1-s-install-path-and-rpath.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 63617f2da153db10fa2fe938cce31bee01d47fe8 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 5 Jul 2015 20:25:18 -0700 -Subject: [PATCH 35/47] libcc1: fix libcc1's install path and rpath - -* Install libcc1.so and libcc1plugin.so into - $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we - had done to lto-plugin. -* Fix bad RPATH iussue: - gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file - /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 - [rpaths] - -Upstream-Status: Inappropriate [OE configuration] - -Signed-off-by: Robert Yang ---- - libcc1/Makefile.am | 4 ++-- - libcc1/Makefile.in | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am -index 5e61a92a26b..e8b627f9cec 100644 ---- a/libcc1/Makefile.am -+++ b/libcc1/Makefile.am -@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) - --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - - if ENABLE_PLUGIN - plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la -diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in -index 54babb02a49..e51d87ffdce 100644 ---- a/libcc1/Makefile.in -+++ b/libcc1/Makefile.in -@@ -303,8 +303,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la - @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la - BUILT_SOURCES = c-compiler-name.h cp-compiler-name.h --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0036-handle-sysroot-support-for-nativesdk-gcc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0036-handle-sysroot-support-for-nativesdk-gcc.patch deleted file mode 100644 index aa0b1082..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0036-handle-sysroot-support-for-nativesdk-gcc.patch +++ /dev/null @@ -1,213 +0,0 @@ -From ca14820ae834a62ef2b80b283e8f900714636272 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:39:54 +0000 -Subject: [PATCH 36/47] 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 -bit compiler is needed). - -Sadly, building nativesdk-gcc is not straight forward. We install -nativesdk-gcc into a relocatable location and this means that its -library locations can change. "Normal" sysroot support doesn't help -in this case since the values of paths like "libdir" change, not just -base root directory of the system. - -In order to handle this we do two things: - -a) Add %r into spec file markup which can be used for injected paths - such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). -b) Add other paths which need relocation into a .gccrelocprefix section - which the relocation code will notice and adjust automatically. - -Upstream-Status: Inappropriate -RP 2015/7/28 - -Signed-off-by: Khem Raj ---- - gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++++------------- - gcc/cppdefault.h | 3 ++- - gcc/gcc.c | 20 ++++++++++++++------ - 3 files changed, 53 insertions(+), 20 deletions(-) - -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index c8da0884872..43dc597a0c3 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -35,6 +35,30 @@ - # undef CROSS_INCLUDE_DIR - #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; -+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; -+#ifdef LOCAL_INCLUDE_DIR -+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; -+#endif -+#ifdef PREFIX_INCLUDE_DIR -+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; -+#endif -+#ifdef FIXED_INCLUDE_DIR -+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; -+#endif -+#ifdef CROSS_INCLUDE_DIR -+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; -+#endif -+#ifdef TOOL_INCLUDE_DIR -+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; -+#endif -+#ifdef NATIVE_SYSTEM_HEADER_DIR -+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; -+#endif -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[] - = { - #ifdef GPLUSPLUS_INCLUDE_DIR - /* Pick up GNU C++ generic include files. */ -- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR - /* Pick up GNU C++ target-dependent include files. */ -- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, - #endif - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR - /* Pick up GNU C++ backward and deprecated include files. */ -- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GCC_INCLUDE_DIR - /* This is the dir for gcc's private headers. */ -- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef GCC_INCLUDE_SUBDIR_TARGET - /* This is the dir for gcc's private headers under the specified sysroot. */ -- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, - #endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, - #endif - #ifdef PREFIX_INCLUDE_DIR -- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, -+ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, - #endif - #ifdef FIXED_INCLUDE_DIR - /* This is the dir for fixincludes. */ -- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, -+ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, - /* 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[] - #endif - #ifdef CROSS_INCLUDE_DIR - /* One place the target system's headers might be. */ -- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef TOOL_INCLUDE_DIR - /* Another place the target system's headers might be. */ -- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, -+ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, - #endif - #ifdef NATIVE_SYSTEM_HEADER_DIR - /* /usr/include comes dead last. */ -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, - #endif - { 0, 0, 0, 0, 0, 0 } - }; -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h -index 17bbb0eaef7..a937ec1d187 100644 ---- a/gcc/cppdefault.h -+++ b/gcc/cppdefault.h -@@ -33,7 +33,8 @@ - - struct default_include - { -- const char *const fname; /* The name of the directory. */ -+ const char *fname; /* The name of the directory. */ -+ - 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++. */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index b27245dbf77..e015c77f15f 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -247,6 +247,8 @@ FILE *report_times_to_file = NULL; - #endif - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; - -+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; -+ - /* Nonzero means pass the updated target_system_root to the compiler. */ - - static int target_system_root_changed; -@@ -518,6 +520,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. -+ %r Output the base path target_relocatable_prefix - %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. -@@ -1495,10 +1498,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. */ --static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; --static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; --static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; --static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; -+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; -+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; -+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; -+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - - /* For native compilers, these are well-known paths containing - components that may be provided by the system. For cross -@@ -1506,9 +1509,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; --static const char *const standard_startfile_prefix_1 -+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_2 -+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_2; - - /* A relative path to be used in finding the location of tools -@@ -5826,6 +5829,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) - } - break; - -+ case 'r': -+ obstack_grow (&obstack, target_relocatable_prefix, -+ strlen (target_relocatable_prefix)); -+ break; -+ - case 'S': - value = do_spec_1 (startfile_spec, 0, NULL); - if (value != 0) --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0037-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0037-Search-target-sysroot-gcc-version-specific-dirs-with.patch deleted file mode 100644 index 6c85a03f..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0037-Search-target-sysroot-gcc-version-specific-dirs-with.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 16a326bcd126b395b29019072905bae7a5d47500 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:41:45 +0000 -Subject: [PATCH 37/47] Search target sysroot gcc version specific dirs with - multilib. - -We install the gcc libraries (such as crtbegin.p) into -//5.2.0/ -which is a default search path for GCC (aka multi_suffix in the -code below). is 'machine' in gcc's terminology. We use -these directories so that multiple gcc versions could in theory -co-exist on target. - -We only want to build one gcc-cross-canadian per arch and have this work -for all multilibs. can be handled by mapping the multilib - to the one used by gcc-cross-canadian, e.g. -mips64-polkmllib32-linux -is symlinked to by mips64-poky-linux. - -The default gcc search path in the target sysroot for a "lib64" mutlilib -is: - -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -which means that the lib32 crtbegin.o will be found and the lib64 ones -will not which leads to compiler failures. - -This patch injects a multilib version of that path first so the lib64 -binaries can be found first. With this change the search path becomes: - -/lib32/../lib64/mips64-poky-linux/5.2.0/ -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -Upstream-Status: Pending -RP 2015/7/31 - -Signed-off-by: Khem Raj ---- - gcc/gcc.c | 29 ++++++++++++++++++++++++++++- - 1 file changed, 28 insertions(+), 1 deletion(-) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index e015c77f15f..84af5d5a2e1 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -2533,7 +2533,7 @@ for_each_path (const struct path_prefix *paths, - if (path == NULL) - { - len = paths->max_len + extra_space + 1; -- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); -+ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); - path = XNEWVEC (char, len); - } - -@@ -2545,6 +2545,33 @@ for_each_path (const struct path_prefix *paths, - /* Look first in MACHINE/VERSION subdirectory. */ - if (!skip_multi_dir) - { -+ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) -+ { -+ const char *this_multi; -+ size_t this_multi_len; -+ -+ if (pl->os_multilib) -+ { -+ this_multi = multi_os_dir; -+ this_multi_len = multi_os_dir_len; -+ } -+ else -+ { -+ this_multi = multi_dir; -+ this_multi_len = multi_dir_len; -+ } -+ -+ /* Look in multilib MACHINE/VERSION subdirectory first */ -+ if (this_multi_len) -+ { -+ memcpy (path + len, this_multi, this_multi_len + 1); -+ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); -+ ret = callback (path, callback_info); -+ if (ret) -+ break; -+ } -+ } -+ - memcpy (path + len, multi_suffix, suffix_len + 1); - ret = callback (path, callback_info); - if (ret) --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0038-Fix-various-_FOR_BUILD-and-related-variables.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0038-Fix-various-_FOR_BUILD-and-related-variables.patch deleted file mode 100644 index a226d10d..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0038-Fix-various-_FOR_BUILD-and-related-variables.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 6e7f526e71a76aac3d49ba8f1742fe1b359c1060 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:42:45 +0000 -Subject: [PATCH 38/47] 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 -CXXFLAGS with CXXFLAGS_FOR_BUILD. -Without this, when building for mingw, you end up trying to use -the mingw headers for a host build. - -The same goes for other variables as well, such as CPPFLAGS, -CPP, and GMPINC. - -Upstream-Status: Pending - -Signed-off-by: Peter Seebach -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - Makefile.in | 6 ++++++ - Makefile.tpl | 5 +++++ - gcc/Makefile.in | 2 +- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - 5 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index e34e9555388..a03740f3f9d 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ - CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -169,6 +170,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -186,6 +190,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -@@ -734,6 +739,7 @@ BASE_FLAGS_TO_PASS = \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ -+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ - "INSTALL=$(INSTALL)" \ -diff --git a/Makefile.tpl b/Makefile.tpl -index d0fa07005be..953376c658d 100644 ---- a/Makefile.tpl -+++ b/Makefile.tpl -@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ - CC="$(CC_FOR_BUILD)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 95d21effad3..dbe2bacde50 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -795,7 +795,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) - BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) -+ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) - - # 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 6ba391ed068..72ca6e5c535 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11789,7 +11789,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}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 8551a412df3..6eefb61dc2b 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1708,7 +1708,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}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch deleted file mode 100644 index a7aeccdf..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0039-nios2-Define-MUSL_DYNAMIC_LINKER.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 6d03ddfb7a092942be6b58b1830f6986d012d5e3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 2 Feb 2016 10:26:10 -0800 -Subject: [PATCH 39/47] nios2: Define MUSL_DYNAMIC_LINKER - -Signed-off-by: Marek Vasut -Signed-off-by: Khem Raj ---- -Upstream-Status: Inappropriate [OE-Specific] - - gcc/config/nios2/linux.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h -index 5177fa641a4..1b8accda6ee 100644 ---- a/gcc/config/nios2/linux.h -+++ b/gcc/config/nios2/linux.h -@@ -30,6 +30,7 @@ - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" - - #undef LINK_SPEC - #define LINK_SPEC LINK_SPEC_ENDIAN \ --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0040-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0040-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch deleted file mode 100644 index 29b7ce72..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0040-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 210f6b3b82084cc756e02b8bc12f909a43b14ee8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 18:10:54 -0700 -Subject: [PATCH 40/49] 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 -the __stack_chk_fail_local() so essentially it provides -libssp but not libssp_nonshared something like -TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED - where-as for glibc the needed symbols -are already present in libc_nonshared library therefore -we do not need any library helper on glibc based systems -but musl needs the libssp_noshared from gcc - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/linux.h | 7 +++++++ - gcc/config/rs6000/linux.h | 10 ++++++++++ - gcc/config/rs6000/linux64.h | 10 ++++++++++ - 3 files changed, 27 insertions(+) - -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index 2e683d0c430..1b4df798671 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -182,6 +182,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ - { 0, 0, 0, 0, 0, 0 } \ - } -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+ - #endif - - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ -diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h -index 684afd6c190..22cfa391b89 100644 ---- a/gcc/config/rs6000/linux.h -+++ b/gcc/config/rs6000/linux.h -@@ -91,6 +91,16 @@ - " -m elf32ppclinux") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #undef LINK_OS_LINUX_SPEC - #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 3b00ec0fcf0..8371f8d7b6b 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -465,6 +465,16 @@ extern int dot_symbols; - " -m elf64ppc") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ --- -2.13.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0041-gcc-libcpp-support-ffile-prefix-map-old-new.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0041-gcc-libcpp-support-ffile-prefix-map-old-new.patch deleted file mode 100644 index 5260e363..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0041-gcc-libcpp-support-ffile-prefix-map-old-new.patch +++ /dev/null @@ -1,284 +0,0 @@ -From 4eadc99bdd0974761bf48f0fd32994dd9a3ffcfe Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 16 Mar 2016 02:27:43 -0400 -Subject: [PATCH 41/47] gcc/libcpp: support -ffile-prefix-map== - -Similar -fdebug-prefix-map, add option -ffile-prefix-map to map one -directory name (old) to another (new) in __FILE__, __BASE_FILE__ and -__builtin_FILE (). - -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70268 - -Upstream-Status: Submitted [gcc-patches@gcc.gnu.org] -Signed-off-by: Hongxu Jia ---- - gcc/c-family/c-opts.c | 13 +++++++ - gcc/c-family/c.opt | 4 +++ - gcc/dwarf2out.c | 1 + - gcc/gimplify.c | 2 ++ - libcpp/Makefile.in | 10 +++--- - libcpp/file-map.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++ - libcpp/include/file-map.h | 30 ++++++++++++++++ - libcpp/macro.c | 2 ++ - 8 files changed, 149 insertions(+), 5 deletions(-) - create mode 100644 libcpp/file-map.c - create mode 100644 libcpp/include/file-map.h - -diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c -index ea0e01b101c..a741c75a78f 100644 ---- a/gcc/c-family/c-opts.c -+++ b/gcc/c-family/c-opts.c -@@ -39,6 +39,14 @@ along with GCC; see the file COPYING3. If not see - #include "opts.h" - #include "plugin.h" /* For PLUGIN_INCLUDE_FILE event. */ - #include "mkdeps.h" -+#include "file-map.h" -+#include "c-target.h" -+#include "tm.h" /* For BYTES_BIG_ENDIAN, -+ DOLLARS_IN_IDENTIFIERS, -+ STDC_0_IN_SYSTEM_HEADERS, -+ TARGET_FLT_EVAL_METHOD_NON_DEFAULT and -+ TARGET_OPTF. */ -+#include "tm_p.h" /* For C_COMMON_OVERRIDE_OPTIONS. */ - #include "dumpfile.h" - - #ifndef DOLLARS_IN_IDENTIFIERS -@@ -517,6 +525,11 @@ c_common_handle_option (size_t scode, const char *arg, int value, - cpp_opts->narrow_charset = arg; - break; - -+ case OPT_ffile_prefix_map_: -+ if (add_file_prefix_map (arg) < 0) -+ error ("invalid argument %qs to -ffile-prefix-map", arg); -+ break; -+ - case OPT_fwide_exec_charset_: - cpp_opts->wide_charset = arg; - break; -diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt -index c4ef7796282..73333dfd57c 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -1372,6 +1372,10 @@ fexec-charset= - C ObjC C++ ObjC++ Joined RejectNegative - -fexec-charset= Convert all strings and character constants to character set . - -+ffile-prefix-map= -+C ObjC C++ ObjC++ Joined RejectNegative -+-ffile-prefix-map= Map one directory name to another in __FILE__, __BASE_FILE__ and __builtin_FILE () -+ - fextended-identifiers - C ObjC C++ ObjC++ - Permit universal character names (\\u and \\U) in identifiers. -diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c -index 98c51576ec2..762f69ae88e 100644 ---- a/gcc/dwarf2out.c -+++ b/gcc/dwarf2out.c -@@ -23421,6 +23421,7 @@ gen_producer_string (void) - case OPT_fltrans_output_list_: - case OPT_fresolution_: - case OPT_fdebug_prefix_map_: -+ case OPT_ffile_prefix_map_: - /* Ignore these. */ - continue; - default: -diff --git a/gcc/gimplify.c b/gcc/gimplify.c -index fd27eb1523f..5542b379f28 100644 ---- a/gcc/gimplify.c -+++ b/gcc/gimplify.c -@@ -58,6 +58,8 @@ along with GCC; see the file COPYING3. If not see - #include "gomp-constants.h" - #include "tree-dump.h" - #include "gimple-walk.h" -+#include "file-map.h" -+ - #include "langhooks-def.h" /* FIXME: for lhd_set_decl_assembler_name */ - #include "builtins.h" - #include "asan.h" -diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in -index 0bd3787c25e..d3b52956b52 100644 ---- a/libcpp/Makefile.in -+++ b/libcpp/Makefile.in -@@ -84,12 +84,12 @@ DEPMODE = $(CXXDEPMODE) - - - libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \ -- expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \ -- mkdeps.o pch.o symtab.o traditional.o -+ expr.o file-map.o files.o identifiers.o init.o lex.o line-map.o \ -+ macro.o mkdeps.o pch.o symtab.o traditional.o - - libcpp_a_SOURCES = charset.c directives.c directives-only.c errors.c \ -- expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \ -- mkdeps.c pch.c symtab.c traditional.c -+ expr.c file-map.c files.c identifiers.c init.c lex.c line-map.c \ -+ macro.c mkdeps.c pch.c symtab.c traditional.c - - all: libcpp.a $(USED_CATALOGS) - -@@ -263,7 +263,7 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES) - - TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \ - include/line-map.h include/symtab.h include/cpp-id-data.h \ -- include/cpplib.h include/mkdeps.h system.h -+ include/cpplib.h include/mkdeps.h system.h include/file-map.h - - TAGS: $(TAGS_SOURCES) - cd $(srcdir) && etags $(TAGS_SOURCES) -diff --git a/libcpp/file-map.c b/libcpp/file-map.c -new file mode 100644 -index 00000000000..18035ef6a72 ---- /dev/null -+++ b/libcpp/file-map.c -@@ -0,0 +1,92 @@ -+/* Map one directory name to another in __FILE__, __BASE_FILE__ -+ and __builtin_FILE (). -+ Copyright (C) 2001-2016 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 3, 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; see the file COPYING3. If not see -+. -+ -+ In other words, you are welcome to use, share and improve this program. -+ You are forbidden to forbid anyone else to use, share and improve -+ what you give them. Help stamp out software-hoarding! */ -+ -+#include "config.h" -+#include "system.h" -+#include "file-map.h" -+ -+/* Structure recording the mapping from source file and directory -+ names at compile time to __FILE__ */ -+typedef struct file_prefix_map -+{ -+ const char *old_prefix; -+ const char *new_prefix; -+ size_t old_len; -+ size_t new_len; -+ struct file_prefix_map *next; -+} file_prefix_map; -+ -+/* Linked list of such structures. */ -+static file_prefix_map *file_prefix_maps; -+ -+/* Record prefix mapping of __FILE__. ARG is the argument to -+ -ffile-prefix-map and must be of the form OLD=NEW. */ -+int -+add_file_prefix_map (const char *arg) -+{ -+ file_prefix_map *map; -+ const char *p; -+ -+ p = strchr (arg, '='); -+ if (!p) -+ { -+ fprintf(stderr, "invalid argument %qs to -ffile-prefix-map", arg); -+ return -1; -+ } -+ map = XNEW (file_prefix_map); -+ map->old_prefix = xstrndup (arg, p - arg); -+ map->old_len = p - arg; -+ p++; -+ map->new_prefix = xstrdup (p); -+ map->new_len = strlen (p); -+ map->next = file_prefix_maps; -+ file_prefix_maps = map; -+ -+ return 0; -+} -+ -+/* Perform user-specified mapping of __FILE__ prefixes. Return -+ the new name corresponding to filename. */ -+ -+const char * -+remap_file_filename (const char *filename) -+{ -+ file_prefix_map *map; -+ char *s; -+ const char *name; -+ size_t name_len; -+ -+ for (map = file_prefix_maps; map; map = map->next) -+ if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0) -+ break; -+ if (!map) -+ return filename; -+ name = filename + map->old_len; -+ name_len = strlen (name) + 1; -+ s = (char *) alloca (name_len + map->new_len); -+ memcpy (s, map->new_prefix, map->new_len); -+ memcpy (s + map->new_len, name, name_len); -+ -+ return xstrdup (s); -+} -+ -+ -diff --git a/libcpp/include/file-map.h b/libcpp/include/file-map.h -new file mode 100644 -index 00000000000..87503152d27 ---- /dev/null -+++ b/libcpp/include/file-map.h -@@ -0,0 +1,30 @@ -+/* Map one directory name to another in __FILE__, __BASE_FILE__ -+ and __builtin_FILE (). -+ Copyright (C) 2001-2016 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 3, 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; see the file COPYING3. If not see -+. -+ -+ In other words, you are welcome to use, share and improve this program. -+ You are forbidden to forbid anyone else to use, share and improve -+ what you give them. Help stamp out software-hoarding! */ -+ -+#ifndef LIBCPP_FILE_MAP_H -+#define LIBCPP_FILE_MAP_H -+ -+const char * remap_file_filename (const char *filename); -+ -+int add_file_prefix_map (const char *arg); -+ -+#endif /* !LIBCPP_FILE_MAP_H */ -diff --git a/libcpp/macro.c b/libcpp/macro.c -index de18c2210cf..2748c70d520 100644 ---- a/libcpp/macro.c -+++ b/libcpp/macro.c -@@ -26,6 +26,7 @@ along with this program; see the file COPYING3. If not see - #include "system.h" - #include "cpplib.h" - #include "internal.h" -+#include "file-map.h" - - typedef struct macro_arg macro_arg; - /* This structure represents the tokens of a macro argument. These -@@ -301,6 +302,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, - if (!name) - abort (); - } -+ name = remap_file_filename (name); - len = strlen (name); - buf = _cpp_unaligned_alloc (pfile, len * 2 + 3); - result = buf; --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0042-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0042-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch deleted file mode 100644 index 52471679..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0042-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch +++ /dev/null @@ -1,43 +0,0 @@ -From ddddc7335539fb8a6d30beba21781762df159186 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 16 Mar 2016 05:39:59 -0400 -Subject: [PATCH 42/47] Reuse -fdebug-prefix-map to replace -ffile-prefix-map - -The oe-core may use external toolchain to compile, -which may not support -ffile-prefix-map. - -Since we use -fdebug-prefix-map to do the same thing, -so we could reuse it to replace -ffile-prefix-map. - -Upstream-Status: Inappropriate[oe-core specific] - -Signed-off-by: Hongxu Jia ---- - gcc/opts-global.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/gcc/opts-global.c b/gcc/opts-global.c -index 50bad77c347..32b1d286721 100644 ---- a/gcc/opts-global.c -+++ b/gcc/opts-global.c -@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see - #include "langhooks.h" - #include "dbgcnt.h" - #include "debug.h" -+#include "file-map.h" - #include "output.h" - #include "plugin.h" - #include "toplev.h" -@@ -357,6 +358,9 @@ handle_common_deferred_options (void) - - case OPT_fdebug_prefix_map_: - add_debug_prefix_map (opt->arg); -+ -+ /* Reuse -fdebug-prefix-map to replace -ffile-prefix-map */ -+ add_file_prefix_map (opt->arg); - break; - - case OPT_fdump_: --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0043-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0043-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch deleted file mode 100644 index 74a5c864..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0043-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 5bc97be388485a5f8dd85db34372a1299bffd263 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Thu, 24 Mar 2016 11:23:14 -0400 -Subject: [PATCH 43/47] gcc/final.c: -fdebug-prefix-map support to remap - sources with relative path - -PR other/70428 -* final.c (remap_debug_filename): Use lrealpath to translate -relative path before remapping - -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70428 -Upstream-Status: Submitted [gcc-patches@gcc.gnu.org] - -Signed-off-by: Hongxu Jia ---- - gcc/final.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/gcc/final.c b/gcc/final.c -index 820162b2d28..d74cb901abd 100644 ---- a/gcc/final.c -+++ b/gcc/final.c -@@ -1559,16 +1559,25 @@ remap_debug_filename (const char *filename) - const char *name; - size_t name_len; - -+ /* Support to remap filename with relative path */ -+ char *realpath = lrealpath (filename); -+ if (realpath == NULL) -+ return filename; -+ - for (map = debug_prefix_maps; map; map = map->next) -- if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0) -+ if (filename_ncmp (realpath, map->old_prefix, map->old_len) == 0) - break; - if (!map) -- return filename; -- name = filename + map->old_len; -+ { -+ free (realpath); -+ return filename; -+ } -+ name = realpath + map->old_len; - name_len = strlen (name) + 1; - s = (char *) alloca (name_len + map->new_len); - memcpy (s, map->new_prefix, map->new_len); - memcpy (s + map->new_len, name, name_len); -+ free (realpath); - return ggc_strdup (s); - } - --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0044-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0044-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch deleted file mode 100644 index e39af9b1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0044-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 847aec764540636ec654fd7a012e271afa8d4e0f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Apr 2016 20:03:28 +0000 -Subject: [PATCH 44/47] libgcc: Add knob to use ldbl-128 on ppc - -musl does not support ldbl 128 so we can not assume -that linux as a whole supports ldbl-128 bits, instead -act upon configure option passed to gcc and assume no -on musl and yes otherwise if no option is passed since -default behaviour is to assume ldbl128 it does not -change the defaults - -Signed-off-by: Khem Raj -Upstream-Status: Pending ---- - libgcc/Makefile.in | 1 + - libgcc/config/rs6000/t-linux | 5 ++++- - libgcc/configure | 18 ++++++++++++++++++ - libgcc/configure.ac | 12 ++++++++++++ - 4 files changed, 35 insertions(+), 1 deletion(-) - mode change 100644 => 100755 libgcc/configure - -diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index a1a392de88d..2fe6889a342 100644 ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -48,6 +48,7 @@ unwind_header = @unwind_header@ - md_unwind_header = @md_unwind_header@ - sfp_machine_header = @sfp_machine_header@ - thread_header = @thread_header@ -+with_ldbl128 = @with_ldbl128@ - - host_noncanonical = @host_noncanonical@ - real_host_noncanonical = @real_host_noncanonical@ -diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux -index 4f6d4c4a4d2..c50dd94a2da 100644 ---- a/libgcc/config/rs6000/t-linux -+++ b/libgcc/config/rs6000/t-linux -@@ -1,3 +1,6 @@ - SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc -+ifeq ($(with_ldbl128),yes) -+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -+endif -+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc -diff --git a/libgcc/configure b/libgcc/configure -old mode 100644 -new mode 100755 -index 45c459788c3..e2d19b144b8 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -618,6 +618,7 @@ build_vendor - build_cpu - build - with_aix_soname -+with_ldbl128 - enable_vtable_verify - enable_shared - libgcc_topdir -@@ -667,6 +668,7 @@ with_cross_host - with_ld - enable_shared - enable_vtable_verify -+with_long_double_128 - with_aix_soname - enable_version_specific_runtime_libs - with_slibdir -@@ -1324,6 +1326,7 @@ Optional Packages: - --with-target-subdir=SUBDIR Configuring in a subdirectory for target - --with-cross-host=HOST Configuring with a cross compiler - --with-ld arrange to use the specified ld (full pathname) -+ --with-long-double-128 use 128-bit long double by default - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX -@@ -2208,6 +2211,21 @@ fi - - - -+# Check whether --with-long-double-128 was given. -+if test "${with_long_double_128+set}" = set; then : -+ withval=$with_long_double_128; with_ldbl128="$with_long_double_128" -+else -+ case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+ -+fi -+ -+ -+ -+ - # Check whether --with-aix-soname was given. - if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case "${host}:${enable_shared}" in -diff --git a/libgcc/configure.ac b/libgcc/configure.ac -index af151473709..dada52416da 100644 ---- a/libgcc/configure.ac -+++ b/libgcc/configure.ac -@@ -77,6 +77,18 @@ AC_ARG_ENABLE(vtable-verify, - [enable_vtable_verify=no]) - AC_SUBST(enable_vtable_verify) - -+AC_ARG_WITH(long-double-128, -+[AS_HELP_STRING([--with-long-double-128], -+ [use 128-bit long double by default])], -+ with_ldbl128="$with_long_double_128", -+[case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+]) -+AC_SUBST(with_ldbl128) -+ - AC_ARG_WITH(aix-soname, - [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], - [shared library versioning (aka "SONAME") variant to provide on AIX])], --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch deleted file mode 100644 index 3aa038c9..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 92beb883ab57a23a35ba76c496bc1f4cabb1690e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 4 May 2016 21:11:34 -0700 -Subject: [PATCH 45/47] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS - -Upstream-Status: Pending - -Signed-off-by: Christopher Larson -Signed-off-by: Khem Raj ---- - libgcc/config/t-slibgcc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc -index 76be7710960..a1ee2ee26ed 100644 ---- a/libgcc/config/t-slibgcc -+++ b/libgcc/config/t-slibgcc -@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ - $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) - - SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -- $(SHLIB_LDFLAGS) \ -+ $(LDFLAGS) $(SHLIB_LDFLAGS) \ - -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ - $(SHLIB_OBJS) $(SHLIB_LC) && \ - rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0047-sync-gcc-stddef.h-with-musl.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0047-sync-gcc-stddef.h-with-musl.patch deleted file mode 100644 index 65d22f16..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0047-sync-gcc-stddef.h-with-musl.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 9b951c8f6b0aaff7c16dc4db72b5e56ec73810bb Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Feb 2017 12:56:00 -0800 -Subject: [PATCH 47/47] 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 - -Signed-off-by: Khem Raj ---- -Upstream-Status: Inappropriate [OE-Specific] - - gcc/ginclude/stddef.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h -index 872f451cac9..7e90938387c 100644 ---- a/gcc/ginclude/stddef.h -+++ b/gcc/ginclude/stddef.h -@@ -134,6 +134,7 @@ _TYPE_wchar_t; - #ifndef ___int_ptrdiff_t_h - #ifndef _GCC_PTRDIFF_T - #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ -+#ifndef __DEFINED_ptrdiff_t /* musl */ - #define _PTRDIFF_T - #define _T_PTRDIFF_ - #define _T_PTRDIFF -@@ -143,10 +144,12 @@ _TYPE_wchar_t; - #define ___int_ptrdiff_t_h - #define _GCC_PTRDIFF_T - #define _PTRDIFF_T_DECLARED -+#define __DEFINED_ptrdiff_t /* musl */ - #ifndef __PTRDIFF_TYPE__ - #define __PTRDIFF_TYPE__ long int - #endif - typedef __PTRDIFF_TYPE__ ptrdiff_t; -+#endif /* __DEFINED_ptrdiff_t */ - #endif /* _PTRDIFF_T_DECLARED */ - #endif /* _GCC_PTRDIFF_T */ - #endif /* ___int_ptrdiff_t_h */ -@@ -184,6 +187,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ - #ifndef __size_t -+#ifndef __DEFINED_size_t /* musl */ - #define __size_t__ /* BeOS */ - #define __SIZE_T__ /* Cray Unicos/Mk */ - #define _SIZE_T -@@ -200,6 +204,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ -+#define __DEFINED_size_t /* musl */ - #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || defined(__DragonFly__) \ - || defined(__FreeBSD_kernel__) -@@ -235,6 +240,7 @@ typedef long ssize_t; - #endif /* _SIZE_T */ - #endif /* __SIZE_T__ */ - #endif /* __size_t__ */ -+#endif /* __DEFINED_size_t */ - #undef __need_size_t - #endif /* _STDDEF_H or __need_size_t. */ - -@@ -264,6 +270,7 @@ typedef long ssize_t; - #ifndef ___int_wchar_t_h - #ifndef __INT_WCHAR_T_H - #ifndef _GCC_WCHAR_T -+#ifndef __DEFINED_wchar_t /* musl */ - #define __wchar_t__ /* BeOS */ - #define __WCHAR_T__ /* Cray Unicos/Mk */ - #define _WCHAR_T -@@ -279,6 +286,7 @@ typedef long ssize_t; - #define __INT_WCHAR_T_H - #define _GCC_WCHAR_T - #define _WCHAR_T_DECLARED -+#define __DEFINED_wchar_t /* musl */ - - /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other -@@ -344,6 +352,7 @@ typedef __WCHAR_TYPE__ wchar_t; - #endif - #endif /* __WCHAR_T__ */ - #endif /* __wchar_t__ */ -+#endif /* __DEFINED_wchar_t musl */ - #undef __need_wchar_t - #endif /* _STDDEF_H or __need_wchar_t. */ - --- -2.12.2 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0048-gcc-Enable-static-PIE.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0048-gcc-Enable-static-PIE.patch deleted file mode 100644 index a96e9133..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0048-gcc-Enable-static-PIE.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 44ef80688b56beea85c0070840dea1e2a4e34aed Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 13 Jun 2017 12:12:52 -0700 -Subject: [PATCH 49/49] gcc: Enable static PIE - -Static PIE support in GCC -see -https://gcc.gnu.org/ml/gcc/2015-06/msg00008.html - -startfiles before patch: - -static -> crt1.o crti.o crtbeginT.o - -static -PIE -> crt1.o crti.o crtbeginT.o - -after patch: - -static -> crt1.o crti.o crtbeginT.o - -static -PIE -> rcrt1.o crti.o crtbeginS.o - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky - ---- - gcc/config/gnu-user.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h -index de605b0..b035bbe 100644 ---- a/gcc/config/gnu-user.h -+++ b/gcc/config/gnu-user.h -@@ -52,11 +52,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define GNU_USER_TARGET_STARTFILE_SPEC \ - "%{shared:; \ - pg|p|profile:gcrt1.o%s; \ -- static:crt1.o%s; \ -+ static: %{" PIE_SPEC ": rcrt1.o%s; :crt1.o%s}; \ - " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - crti.o%s \ -- %{static:crtbeginT.o%s; \ -+ %{static: %{" PIE_SPEC ": crtbeginS.o%s; :crtbeginT.o%s}; \ - shared|" PIE_SPEC ":crtbeginS.o%s; \ - :crtbegin.o%s} \ - %{fvtable-verify=none:%s; \ - -2.13.1 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch deleted file mode 100644 index 7c53c95c..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch +++ /dev/null @@ -1,204 +0,0 @@ -From 9815bd97561c778ee0bc0c17f245e88e66570111 Mon Sep 17 00:00:00 2001 -From: sandra -Date: Wed, 1 Nov 2017 02:14:19 +0000 -Subject: [PATCH] 2017-10-31 Sandra Loosemore - - gcc/ - * configure.ac (--enable-libssp): New. - (gcc_cv_libc_provides_ssp): Check for explicit setting before - trying to determine target-specific default. Adjust indentation. - * configure: Regenerated. - * doc/install.texi (Configuration): Expand --disable-libssp - documentation. - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254288 138bc75d-0d04-0410-961f-82ee72b054a4 ---- -Signed-off-by: Khem Raj -Upstream-Status: Backport [https://patchwork.ozlabs.org/patch/823049/] - - gcc/ChangeLog | 9 +++++++++ - gcc/configure | 26 +++++++++++++++++++++++--- - gcc/configure.ac | 24 ++++++++++++++++++++---- - gcc/doc/install.texi | 3 ++- - 4 files changed, 54 insertions(+), 8 deletions(-) - -Index: gcc-7.3.0/gcc/configure.ac -=================================================================== ---- gcc-7.3.0.orig/gcc/configure.ac -+++ gcc-7.3.0/gcc/configure.ac -@@ -5719,10 +5719,25 @@ if test x$gcc_cv_solaris_crts = xyes; th - [Define if the system-provided CRTs are present on Solaris.]) - fi - -+AC_ARG_ENABLE(libssp, -+[AS_HELP_STRING([--enable-libssp], [enable linking against libssp])], -+[case "${enableval}" in -+ yes|no) -+ ;; -+ *) -+ AC_MSG_ERROR([unknown libssp setting $enableval]) -+ ;; -+esac], []) -+ - # Test for stack protector support in target C library. - AC_CACHE_CHECK(__stack_chk_fail in target C library, -- gcc_cv_libc_provides_ssp, -- [gcc_cv_libc_provides_ssp=no -+ gcc_cv_libc_provides_ssp, -+ [gcc_cv_libc_provides_ssp=no -+ if test "x$enable_libssp" = "xno"; then -+ gcc_cv_libc_provides_ssp=yes -+ elif test "x$enable_libssp" = "xyes"; then -+ gcc_cv_libc_provides_ssp=no -+ else - case "$target" in - *-*-musl*) - # All versions of musl provide stack protector -@@ -5759,8 +5774,9 @@ AC_CACHE_CHECK(__stack_chk_fail in targe - AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes], - [echo "no __stack_chk_fail on this target"]) - ;; -- *) gcc_cv_libc_provides_ssp=no ;; -- esac]) -+ *) gcc_cv_libc_provides_ssp=no ;; -+ esac -+ fi]) - - if test x$gcc_cv_libc_provides_ssp = xyes; then - AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1, -Index: gcc-7.3.0/gcc/doc/install.texi -=================================================================== ---- gcc-7.3.0.orig/gcc/doc/install.texi -+++ gcc-7.3.0/gcc/doc/install.texi -@@ -1658,7 +1658,8 @@ not be built. - - @item --disable-libssp - Specify that the run-time libraries for stack smashing protection --should not be built. -+should not be built or linked against. On many targets library support -+is provided by the C library instead. - - @item --disable-libquadmath - Specify that the GCC quad-precision math library should not be built. -Index: gcc-7.3.0/gcc/configure -=================================================================== ---- gcc-7.3.0.orig/gcc/configure -+++ gcc-7.3.0/gcc/configure -@@ -940,6 +940,7 @@ enable_fix_cortex_a53_843419 - with_glibc_version - enable_gnu_unique_object - enable_linker_build_id -+enable_libssp - enable_default_ssp - with_long_double_128 - with_gc -@@ -1679,6 +1680,7 @@ Optional Features: - extension on glibc systems - --enable-linker-build-id - compiler will always pass --build-id to linker -+ --enable-libssp enable linking against libssp - --enable-default-ssp enable Stack Smashing Protection as default - --enable-maintainer-mode - enable make rules and dependencies not useful (and -@@ -18450,7 +18452,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 18436 "configure" -+#line 18455 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -18556,7 +18558,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 18542 "configure" -+#line 18561 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -25234,6 +25236,7 @@ $as_echo "#define HAVE_AS_SPARC5_VIS4 1" - - fi - -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC6 instructions" >&5 - $as_echo_n "checking assembler for SPARC6 instructions... " >&6; } - if test "${gcc_cv_as_sparc_sparc6+set}" = set; then : -@@ -25270,6 +25273,7 @@ $as_echo "#define HAVE_AS_SPARC6 1" >>co - - fi - -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5 - $as_echo_n "checking assembler for LEON instructions... " >&6; } - if test "${gcc_cv_as_sparc_leon+set}" = set; then : -@@ -28947,6 +28951,18 @@ $as_echo "#define HAVE_SOLARIS_CRTS 1" > - - fi - -+# Check whether --enable-libssp was given. -+if test "${enable_libssp+set}" = set; then : -+ enableval=$enable_libssp; case "${enableval}" in -+ yes|no) -+ ;; -+ *) -+ as_fn_error "unknown libssp setting $enableval" "$LINENO" 5 -+ ;; -+esac -+fi -+ -+ - # Test for stack protector support in target C library. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking __stack_chk_fail in target C library" >&5 - $as_echo_n "checking __stack_chk_fail in target C library... " >&6; } -@@ -28954,6 +28970,11 @@ if test "${gcc_cv_libc_provides_ssp+set} - $as_echo_n "(cached) " >&6 - else - gcc_cv_libc_provides_ssp=no -+ if test "x$enable_libssp" = "xno"; then -+ gcc_cv_libc_provides_ssp=yes -+ elif test "x$enable_libssp" = "xyes"; then -+ gcc_cv_libc_provides_ssp=no -+ else - case "$target" in - *-*-musl*) - # All versions of musl provide stack protector -@@ -29001,8 +29022,9 @@ else - fi - - ;; -- *) gcc_cv_libc_provides_ssp=no ;; -+ *) gcc_cv_libc_provides_ssp=no ;; - esac -+ fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_libc_provides_ssp" >&5 - $as_echo "$gcc_cv_libc_provides_ssp" >&6; } -@@ -29037,18 +29059,15 @@ fi - - - # Test for on the target. -- --{ $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 -+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) -+#AC_MSG_CHECKING(sys/sdt.h in the target C library) -+#have_sys_sdt_h=no - #if test -f $target_header_dir/sys/sdt.h; then - # have_sys_sdt_h=yes --# --#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h --# -+# AC_DEFINE(HAVE_SYS_SDT_H, 1, -+# [Define if your target C library provides sys/sdt.h]) - #fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 --$as_echo "$have_sys_sdt_h" >&6; } -+#AC_MSG_RESULT($have_sys_sdt_h) - - # 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/external/poky/meta/recipes-devtools/gcc/gcc-7.3/fix-segmentation-fault-precompiled-hdr.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/fix-segmentation-fault-precompiled-hdr.patch deleted file mode 100644 index c0adef6f..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/fix-segmentation-fault-precompiled-hdr.patch +++ /dev/null @@ -1,49 +0,0 @@ - -Prevent a segmentation fault which occurs when using incorrect -structure trying to access name of some named operators, such as -CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in -those cases, as is may not be initialized at all. - - -[YOCTO #11738] - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky - -diff --git a/libcpp/lex.c b/libcpp/lex.c ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -3229,11 +3229,27 @@ - spell_ident: - case SPELL_IDENT: - if (forstring) -- { -- memcpy (buffer, NODE_NAME (token->val.node.spelling), -- NODE_LEN (token->val.node.spelling)); -- buffer += NODE_LEN (token->val.node.spelling); -- } -+ { -+ if (token->type == CPP_NAME) -+ { -+ memcpy (buffer, NODE_NAME (token->val.node.spelling), -+ NODE_LEN (token->val.node.spelling)); -+ buffer += NODE_LEN (token->val.node.spelling); -+ break; -+ } -+ /* NAMED_OP, cannot use node.spelling */ -+ if (token->flags & NAMED_OP) -+ { -+ const char *str = cpp_named_operator2name (token->type); -+ if (str) -+ { -+ size_t len = strlen(str); -+ memcpy(buffer, str, len); -+ buffer += len; -+ } -+ break; -+ } -+ } - else - buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); - break; diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/no-sse-fix-test-case-failures.patch b/external/poky/meta/recipes-devtools/gcc/gcc-7.3/no-sse-fix-test-case-failures.patch deleted file mode 100644 index cb87c5ab..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-7.3/no-sse-fix-test-case-failures.patch +++ /dev/null @@ -1,259 +0,0 @@ -From f22830da2ba64577deb6f717d05d86c03dd2e50d Mon Sep 17 00:00:00 2001 -From: RAGHUNATH LOLUR -Date: Wed, 6 Dec 2017 22:52:26 -0800 -Subject: [PATCH] Fix for testsuite failure - -2017-11-16 Raghunath Lolur - - * gcc.dg/pr56275.c: If SSE is disabled, ensure that - "-mfpmath" is not set to use SSE. Set "-mfpmath=387". - * gcc.dg/pr68306.c: Likewise - * gcc.dg/pr68306-2.c: Likewise - * gcc.dg/pr68306-3.c: Likewise - * gcc.dg/pr69634.c: Likewise - * gcc.target/i386/amd64-abi-1.c: Likewise - * gcc.target/i386/funcspec-6.c: Likewise - * gcc.target/i386/interrupt-387-err-1.c: Likewise - * gcc.target/i386/isa-14.c: Likewise - * gcc.target/i386/pr44948-2b.c: Likewise - * gcc.target/i386/pr53425-1.c: Likewise - * gcc.target/i386/pr53425-2.c: Likewise - * gcc.target/i386/pr55247.c: Likewise - * gcc.target/i386/pr59644.c: Likewise - * gcc.target/i386/pr62120.c: Likewise - * gcc.target/i386/pr70467-1.c: Likewise - * gcc.target/i386/warn-vect-op-1.c: Likewise - -If -Wall, -Werror are used during compilation various test cases fail -to compile. - -If SSE is disabled, be sure to -mfpmath=387 to resolve this. - -This patch removes the changes to Changelog from the original patch. -This will help us avoid conflicts. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle ---- - gcc/testsuite/ChangeLog | 21 +++++++++++++++++++++ - gcc/testsuite/gcc.dg/pr56275.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- - gcc/testsuite/gcc.dg/pr68306.c | 2 +- - gcc/testsuite/gcc.dg/pr69634.c | 2 +- - .../gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- - .../gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + - .../testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- - gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- - .../gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- - gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- - gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- - gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- - gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- - .../gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- - 18 files changed, 38 insertions(+), 16 deletions(-) - -diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c -index b901bb2..a4f6c95 100644 ---- a/gcc/testsuite/gcc.dg/pr56275.c -+++ b/gcc/testsuite/gcc.dg/pr56275.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2" } */ --/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ - - typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); - -diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c -index 4672ebe..2a368c4 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-2.c -+++ b/gcc/testsuite/gcc.dg/pr68306-2.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - struct { - int tz_minuteswest; -diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c -index f5a8c10..df3390c 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-3.c -+++ b/gcc/testsuite/gcc.dg/pr68306-3.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ - - extern void fn2(); -diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c -index 54e5b40..0813389 100644 ---- a/gcc/testsuite/gcc.dg/pr68306.c -+++ b/gcc/testsuite/gcc.dg/pr68306.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - enum powerpc_pmc_type { PPC_PMC_IBM }; - struct { -diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c -index 60a5614..bcc23f9 100644 ---- a/gcc/testsuite/gcc.dg/pr69634.c -+++ b/gcc/testsuite/gcc.dg/pr69634.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ --/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-require-effective-target scheduling } */ - - typedef unsigned short u16; -diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -index 69fde57..7f1f1c0 100644 ---- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -+++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ - - double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ -diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c -index ea896b7..bf15569 100644 ---- a/gcc/testsuite/gcc.target/i386/funcspec-6.c -+++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c -@@ -1,6 +1,7 @@ - /* Test whether all of the 64-bit function specific options are accepted - without error. */ - /* { dg-do compile { target { ! ia32 } } } */ -+/* { dg-additional-options "-mfpmath=387" } */ - - #include "funcspec-56.inc" - -diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -index 3fbdc88..6b4d9d1 100644 ---- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -+++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ -+/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ - - typedef unsigned int uword_t __attribute__ ((mode (__word__))); - -diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c -index 5d49e6e..1de2db9 100644 ---- a/gcc/testsuite/gcc.target/i386/isa-14.c -+++ b/gcc/testsuite/gcc.target/i386/isa-14.c -@@ -1,5 +1,5 @@ - /* { dg-do run } */ --/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ -+/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ - - extern void abort (void); - -diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -index fa1769b..f79fb12 100644 ---- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c -+++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ -+/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ - - struct A - { -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c -index 2e89ff7..6339bf6 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef double __v2df __attribute__ ((__vector_size__ (16))); -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c -index 61f6283..2c5a55f 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-2.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef float __v2sf __attribute__ ((__vector_size__ (8))); -diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c -index 23366d0..9810e3a 100644 ---- a/gcc/testsuite/gcc.target/i386/pr55247.c -+++ b/gcc/testsuite/gcc.target/i386/pr55247.c -@@ -1,6 +1,6 @@ - /* { dg-do compile { target { ! ia32 } } } */ - /* { dg-require-effective-target maybe_x32 } */ --/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ -+/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ - - typedef unsigned int uint32_t; - typedef uint32_t Elf32_Word; -diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c -index 96006b3..4287e45 100644 ---- a/gcc/testsuite/gcc.target/i386/pr59644.c -+++ b/gcc/testsuite/gcc.target/i386/pr59644.c -@@ -1,6 +1,6 @@ - /* PR target/59644 */ - /* { dg-do run { target lp64 } } */ --/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ -+/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ - - /* 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 bfb8c47..ed04cf1 100644 ---- a/gcc/testsuite/gcc.target/i386/pr62120.c -+++ b/gcc/testsuite/gcc.target/i386/pr62120.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - - void foo () - { -diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c -index 4e112c8..bcfb396 100644 ---- a/gcc/testsuite/gcc.target/i386/pr70467-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c -@@ -1,6 +1,6 @@ - /* PR rtl-optimization/70467 */ - /* { dg-do compile } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - - void foo (unsigned long long *); - -diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -index 6cda153..26e37f5 100644 ---- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -+++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse -Wvector-operation-performance" } */ -+/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ - #define vector(elcount, type) \ - __attribute__((vector_size((elcount)*sizeof(type)))) type - --- -1.8.5.6 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2.inc b/external/poky/meta/recipes-devtools/gcc/gcc-8.2.inc deleted file mode 100644 index bd95ccda..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2.inc +++ /dev/null @@ -1,128 +0,0 @@ -require gcc-common.inc - -# Third digit in PV should be incremented after a minor release - -PV = "8.2.0" - -# BINV should be incremented to a revision after a minor gcc release - -BINV = "8.2.0" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-8.2:${FILE_DIRNAME}/gcc-8.2/backport:" - -DEPENDS =+ "mpfr gmp libmpc zlib flex-native" -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" - -LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" - -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ - file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ -" - -#RELEASE = "8.0.1-RC-20180427" -BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" -#SRCREV = "f7cf798b73fd1a07098f9a490deec1e2a36e0bed" -#BASEURI ?= "git://github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git" -#BASEURI ?= "http://mirrors.concertpass.com/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz" - -SRC_URI = "\ - ${BASEURI} \ - file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - file://0003-gcc-poison-system-directories.patch \ - file://0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ - file://0006-64-bit-multilib-hack.patch \ - file://0007-optional-libstdc.patch \ - file://0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \ - file://0009-COLLECT_GCC_OPTIONS.patch \ - file://0010-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ - file://0011-fortran-cross-compile-hack.patch \ - file://0012-cpp-honor-sysroot.patch \ - file://0013-MIPS64-Default-to-N64-ABI.patch \ - file://0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ - file://0015-gcc-Fix-argument-list-too-long-error.patch \ - file://0016-Disable-sdt.patch \ - file://0017-libtool.patch \ - file://0018-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ - file://0019-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ - file://0020-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \ - file://0021-export-CPP.patch \ - file://0022-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \ - file://0023-Ensure-target-gcc-headers-can-be-included.patch \ - file://0024-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \ - file://0025-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ - file://0026-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ - file://0027-aarch64-Add-support-for-musl-ldso.patch \ - file://0028-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ - file://0029-handle-sysroot-support-for-nativesdk-gcc.patch \ - file://0030-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ - file://0031-Fix-various-_FOR_BUILD-and-related-variables.patch \ - file://0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ - file://0033-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ - file://0034-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \ - file://0035-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ - file://0036-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ - file://0037-sync-gcc-stddef.h-with-musl.patch \ - file://0038-fix-segmentation-fault-in-precompiled-header-generat.patch \ - file://0039-Fix-for-testsuite-failure.patch \ - file://0040-Re-introduce-spe-commandline-options.patch \ - file://0041-ARC-fix-spec-gen.patch \ - ${BACKPORTS} \ -" -BACKPORTS = "\ - file://CVE-2019-14250.patch \ -" -SRC_URI[md5sum] = "4ab282f414676496483b3e1793d07862" -SRC_URI[sha256sum] = "196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080" - -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/git" -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}" -B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" - -# Language Overrides -FORTRAN = "" -JAVA = "" - -LTO = "--enable-lto" -SSP ?= "--disable-libssp" -SSP_mingw32 = "--enable-libssp" - -EXTRA_OECONF_BASE = "\ - ${LTO} \ - ${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 \ - --with-ppl=no \ - --with-cloog=no \ - --enable-checking=release \ - --enable-cheaders=c_global \ - --without-isl \ -" - -EXTRA_OECONF_INITIAL = "\ - --disable-libmudflap \ - --disable-libgomp \ - --disable-libitm \ - --disable-libquadmath \ - --with-system-zlib \ - --disable-lto \ - --disable-plugin \ - --enable-linker-build-id \ - --enable-decimal-float=no \ - --without-isl \ - --disable-libssp \ -" - -EXTRA_OECONF_PATHS = "\ - --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ - --with-sysroot=/not/exist \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ -" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index 423fe28e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,42 +0,0 @@ -From b752fb2b6d6f6da68da5386b96abf0d74cd4bbe6 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:37:11 +0400 -Subject: [PATCH 01/39] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - configure | 2 +- - configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure b/configure -index 69c99e99cca..517fb70192e 100755 ---- a/configure -+++ b/configure -@@ -7511,7 +7511,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in -diff --git a/configure.ac b/configure.ac -index a1edc369a27..f8c254f1fac 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3100,7 +3100,7 @@ fi - # for target_alias and gcc doesn't manage it consistently. - target_configargs="--cache-file=./config.cache ${target_configargs}" - --FLAGS_FOR_TARGET= -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" - case " $target_configdirs " in - *" newlib "*) - case " $target_configargs " in --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0003-gcc-poison-system-directories.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0003-gcc-poison-system-directories.patch deleted file mode 100644 index 05138976..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0003-gcc-poison-system-directories.patch +++ /dev/null @@ -1,194 +0,0 @@ -From 48c670d2678e0323d88eb72205e039f393cabe05 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH 03/39] gcc: poison-system-directories - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [distribution: codesourcery] ---- - gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ - gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 19 +++++++++++++++++++ - 7 files changed, 66 insertions(+) - -diff --git a/gcc/common.opt b/gcc/common.opt -index d6ef85928f3..7b29efe3882 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -679,6 +679,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. - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - 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 5bccb408016..1c784a8276b 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -194,6 +194,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - 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 5c345ce0fd7..cafd05fd150 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -953,6 +953,7 @@ with_system_zlib - enable_maintainer_mode - enable_link_mutex - enable_version_specific_runtime_libs -+enable_poison_system_directories - enable_plugin - enable_host_shared - enable_libquadmath_support -@@ -1696,6 +1697,8 @@ Optional Features: - --enable-version-specific-runtime-libs - specify that runtime libraries should be installed - in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --enable-host-shared build host code as shared libraries - --disable-libquadmath-support -@@ -29715,6 +29718,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 65dbf1f2f80..dd5b38195ce 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6341,6 +6341,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, - [specify that runtime libraries should be - installed in a compiler-specific directory])]) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 255149fcfb8..cb71b60fe3c 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wplacement-new -Wplacement-new=@var{n} @gol -+-Wno-poison-system-directories @gol - -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol - -Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol - -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol -@@ -5712,6 +5713,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. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index a716f708259..02b3cd39fc2 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1037,6 +1037,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:%{!nostartfiles:%S}} \ -+ %{Wno-poison-system-directories:--no-poison-system-directories} \ -+ %{Werror=poison-system-directories:--error-poison-system-directories} \ - %{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \ - VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \ - %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index b11c6a57939..e3b7a21966f 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -26,6 +26,7 @@ - #include "intl.h" - #include "incpath.h" - #include "cppdefault.h" -+#include "diagnostic-core.h" - - /* Microsoft Windows does not natively support inodes. - VMS has non-numeric inodes. */ -@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[INC_QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index 8b1b9769..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0005-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,73 +0,0 @@ -From ae3fe6e5e50937de6e4223ca90810187372a8cf5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:08:31 +0400 -Subject: [PATCH 05/39] 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. - -This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. - -Other changes I had to do include: - -- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. - -- passing the right CFLAGS to configure scripts as exported environment variables - -I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. - -Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? - -Signed-off-by: Paolo Bonzini -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - configure | 32 ++++++++++++++++++++++++++++++++ - 1 file changed, 32 insertions(+) - -diff --git a/configure b/configure -index 517fb70192e..acd2b97df40 100755 ---- a/configure -+++ b/configure -@@ -6772,6 +6772,38 @@ fi - - - -+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -+# We want to ensure that TARGET libraries (which we know are built with -+# gcc) are built with "-O2 -g", so include those options when setting -+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -+if test "x$CFLAGS_FOR_TARGET" = x; then -+ CFLAGS_FOR_TARGET=$CFLAGS -+ case " $CFLAGS " in -+ *" -O2 "*) ;; -+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; -+ esac -+ case " $CFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; -+ esac -+fi -+ -+ -+if test "x$CXXFLAGS_FOR_TARGET" = x; then -+ CXXFLAGS_FOR_TARGET=$CXXFLAGS -+ case " $CXXFLAGS " in -+ *" -O2 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; -+ esac -+ case " $CXXFLAGS " in -+ *" -g "* | *" -g3 "*) ;; -+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; -+ esac -+fi -+ -+ - # 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.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0006-64-bit-multilib-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0006-64-bit-multilib-hack.patch deleted file mode 100644 index 0dce95c8..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0006-64-bit-multilib-hack.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 89af3b7399313b337f06c19cc2d787aa16d27711 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:10:06 +0400 -Subject: [PATCH 06/39] 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 -complete customisation of the library directories. - -This patch is a partial solution to allow any custom directories to be passed into gcc -and handled correctly. It forces gcc to use the base_libdir (which is the current -directory, "."). We need to do this for each multilib that is configured as we don't -know which compiler options may be being passed into the compiler. Since we have a compiler -per mulitlib at this point that isn't an issue. - -The one problem is the target compiler is only going to work for the default multlilib at -this point. Ideally we'd figure out which multilibs were being enabled with which paths -and be able to patch these entries with a complete set of correct paths but this we -don't have such code at this point. This is something the target gcc recipe should do -and override these platform defaults in its build config. - -RP 15/8/11 - -Signed-off-by: Khem Raj -Signed-off-by: Elvis Dowson - -Upstream-Status: Pending ---- - gcc/config/i386/t-linux64 | 6 ++---- - gcc/config/mips/t-linux64 | 10 +++------- - gcc/config/rs6000/t-linux64 | 5 ++--- - 3 files changed, 7 insertions(+), 14 deletions(-) - -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 -index 8ea0faff369..266c6008004 100644 ---- a/gcc/config/i386/t-linux64 -+++ b/gcc/config/i386/t-linux64 -@@ -32,7 +32,5 @@ - # - comma=, - MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) --MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) --MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) -+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 c017b7d04c5..126892cf40b 100644 ---- a/gcc/config/mips/t-linux64 -+++ b/gcc/config/mips/t-linux64 -@@ -17,10 +17,6 @@ - # . - - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 --MULTILIB_DIRNAMES = n32 32 64 --MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) --MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) --MULTILIB_OSDIRNAMES = \ -- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ -- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ -- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) -+MULTILIB_DIRNAMES = . . . -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) -+ -diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 -index 0faa2a02df4..13fd8ca971e 100644 ---- a/gcc/config/rs6000/t-linux64 -+++ b/gcc/config/rs6000/t-linux64 -@@ -26,10 +26,9 @@ - # MULTILIB_OSDIRNAMES according to what is found on the target. - - MULTILIB_OPTIONS := m64/m32 --MULTILIB_DIRNAMES := 64 32 -+MULTILIB_DIRNAMES := . . - MULTILIB_EXTRA_OPTS := --MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) --MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) - - rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c - $(COMPILE) $< --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0007-optional-libstdc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0007-optional-libstdc.patch deleted file mode 100644 index 721ea03f..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0007-optional-libstdc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From fb7df63e9548c29b70601d642a1850fc455f8565 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:12:56 +0400 -Subject: [PATCH 07/39] 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++ -which shouldn't exist yet. We need an option to disable -lstdc++ -option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc -driver. This patch adds such an option which only disables the -lstdc++. - -A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to -do this officially, the likely answer is don't build libstdc++ separately. - -RP 29/6/10 - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - gcc/c-family/c.opt | 4 ++++ - gcc/cp/g++spec.c | 1 + - gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- - gcc/gcc.c | 1 + - 4 files changed, 37 insertions(+), 1 deletion(-) - -diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt -index 5013501b232..6312f2c8f90 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -1900,6 +1900,10 @@ nostdinc++ - C++ ObjC++ - Do not search standard system include directories for C++. - -+nostdlib++ -+Driver -+Do not link standard C++ runtime library -+ - o - 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 443a1746da3..e9b51be62ef 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, - switch (decoded_options[i].opt_index) - { - case OPT_nostdlib: -+ case OPT_nostdlib__: - case OPT_nodefaultlibs: - library = -1; - break; -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index cb71b60fe3c..b0d481e3a30 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -211,6 +211,9 @@ in the following sections. - -fno-weak -nostdinc++ @gol - -fvisibility-inlines-hidden @gol - -fvisibility-ms-compat @gol -+-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol -+-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 -Wliteral-suffix -Wmultiple-inheritance @gol -@@ -509,7 +512,7 @@ Objective-C and Objective-C++ Dialects}. - -s -static -static-pie -static-libgcc -static-libstdc++ @gol - -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol - -static-libmpx -static-libmpxwrappers @gol ---shared -shared-libgcc -symbolic @gol -+-shared -shared-libgcc -symbolic -nostdlib++ @gol - -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol - -u @var{symbol} -z @var{keyword}} - -@@ -12331,6 +12334,33 @@ library subroutines. - constructors are called; @pxref{Collect2,,@code{collect2}, gccint, - GNU Compiler Collection (GCC) Internals}.) - -+@item -nostdlib++ -+@opindex nostdlib++ -+Do not use the standard system C++ runtime libraries when linking. -+Only the libraries you specify will be passed to the linker. -+ -+@cindex @option{-lgcc}, use with @option{-nostdlib} -+@cindex @option{-nostdlib} and unresolved references -+@cindex unresolved references and @option{-nostdlib} -+@cindex @option{-lgcc}, use with @option{-nodefaultlibs} -+@cindex @option{-nodefaultlibs} and unresolved references -+@cindex unresolved references and @option{-nodefaultlibs} -+One of the standard libraries bypassed by @option{-nostdlib} and -+@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines -+which GCC uses to overcome shortcomings of particular machines, or special -+needs for some languages. -+(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler -+Collection (GCC) Internals}, -+for more discussion of @file{libgcc.a}.) -+In most cases, you need @file{libgcc.a} even when you want to avoid -+other standard libraries. In other words, when you specify @option{-nostdlib} -+or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. -+This ensures that you have no unresolved references to internal GCC -+library subroutines. -+(An example of such an internal subroutine is @code{__main}, used to ensure C++ -+constructors are called; @pxref{Collect2,,@code{collect2}, gccint, -+GNU Compiler Collection (GCC) Internals}.) -+ - @item -pie - @opindex pie - Produce a dynamically linked position independent executable on targets -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 02b3cd39fc2..8cd27a5dad5 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1047,6 +1047,7 @@ proper position among the other output files. */ - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ - %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!nostartfiles:%E}} %{T*} \n%(post_link) }}}}}}" - #endif - --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch deleted file mode 100644 index a76b7f73..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0008-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 11eb97efccb90b830c84ed077a25b1a15ad3335b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:14:20 +0400 -Subject: [PATCH 08/39] gcc: disable MASK_RELAX_PIC_CALLS bit - -The new feature added after 4.3.3 -"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html" -will cause cc1plus eat up all the system memory when build webkit-gtk. -The function mips_get_pic_call_symbol keeps on recursively calling itself. -Disable this feature to walk aside the bug. - -Signed-off-by: Dongxiao Xu -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 7 ------- - gcc/configure.ac | 7 ------- - 2 files changed, 14 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index cafd05fd150..19ba051d673 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -27553,13 +27553,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6; - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5 - $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index dd5b38195ce..066dfe19bb6 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -4798,13 +4798,6 @@ x: - rm -f conftest.* - fi - fi -- if test $gcc_cv_as_ld_jalr_reloc = yes; then -- if test x$target_cpu_default = x; then -- target_cpu_default=MASK_RELAX_PIC_CALLS -- else -- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS" -- fi -- fi - AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc) - - AC_CACHE_CHECK([linker for .eh_frame personality relaxation], --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0009-COLLECT_GCC_OPTIONS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0009-COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index 3abece0d..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0009-COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e19d25847f08eeb5ef26a031fa5eff732bfd0d43 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:16:28 +0400 -Subject: [PATCH 09/39] COLLECT_GCC_OPTIONS - -This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to -invoke collect2. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/gcc.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 8cd27a5dad5..d355d65583a 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -4677,6 +4677,15 @@ set_collect_gcc_options (void) - sizeof ("COLLECT_GCC_OPTIONS=") - 1); - - first_time = TRUE; -+#ifdef HAVE_LD_SYSROOT -+ if (target_system_root_changed && target_system_root) -+ { -+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); -+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); -+ obstack_grow (&collect_obstack, "'", 1); -+ first_time = FALSE; -+ } -+#endif - for (i = 0; (int) i < n_switches; i++) - { - const char *const *args; --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0010-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0010-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch deleted file mode 100644 index 5785b589..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0010-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 265cb883c310f3bb7e49fd13b81362476fbeb6c1 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:17:25 +0400 -Subject: [PATCH 10/39] 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, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending - -While compiling gcc-crosssdk-initial-x86_64 on some host, there is -occasionally failure that test the existance of default.h doesn't -work, the reason is tm_include_list='** defaults.h' rather than -tm_include_list='** ./defaults.h' - -So we add the test condition for this situation. -Signed-off-by: Hongxu Jia ---- - gcc/Makefile.in | 2 +- - gcc/configure | 4 ++-- - gcc/configure.ac | 4 ++-- - gcc/mkconfig.sh | 4 ++-- - 4 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 20bee0494b1..1367136bfac 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -538,7 +538,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ - TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ - - xmake_file=@xmake_file@ --tmake_file=@tmake_file@ -+tmake_file=@tmake_file@ ./t-oe - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ -diff --git a/gcc/configure b/gcc/configure -index 19ba051d673..a575839c1b2 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12158,8 +12158,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 066dfe19bb6..676116a6d96 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1922,8 +1922,8 @@ for f in $tm_file; do - tm_include_list="${tm_include_list} $f" - ;; - defaults.h ) -- tm_file_list="${tm_file_list} \$(srcdir)/$f" -- tm_include_list="${tm_include_list} $f" -+ tm_file_list="${tm_file_list} ./$f" -+ tm_include_list="${tm_include_list} ./$f" - ;; - * ) - tm_file_list="${tm_file_list} \$(srcdir)/config/$f" -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh -index 0f75c863c0b..68d8d6613cf 100644 ---- a/gcc/mkconfig.sh -+++ b/gcc/mkconfig.sh -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then - if [ $# -ge 1 ]; then - echo '#ifdef IN_GCC' >> ${output}T - for file in "$@"; do -- if test x"$file" = x"defaults.h"; then -+ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then - postpone_defaults_h="yes" - else - echo "# include \"$file\"" >> ${output}T -@@ -106,7 +106,7 @@ esac - - # If we postponed including defaults.h, add the #include now. - if test x"$postpone_defaults_h" = x"yes"; then -- echo "# include \"defaults.h\"" >> ${output}T -+ echo "# include \"./defaults.h\"" >> ${output}T - fi - - # Add multiple inclusion protection guard, part two. --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0011-fortran-cross-compile-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0011-fortran-cross-compile-hack.patch deleted file mode 100644 index fe0fb7d5..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0011-fortran-cross-compile-hack.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 71cba188d47b6ae9d9b87261eb4bc9eb68ae355d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:20:01 +0400 -Subject: [PATCH 11/39] 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 -directory. - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [embedded specific] ---- - libgfortran/configure | 2 +- - libgfortran/configure.ac | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libgfortran/configure b/libgfortran/configure -index 91fce8fecd0..6747f86eb98 100755 ---- a/libgfortran/configure -+++ b/libgfortran/configure -@@ -12883,7 +12883,7 @@ esac - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - ac_ext=${ac_fc_srcext-f} - 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 bf6d3634dda..9dbe43cc616 100644 ---- a/libgfortran/configure.ac -+++ b/libgfortran/configure.ac -@@ -250,7 +250,7 @@ AC_SUBST(enable_static) - - # We need gfortran to compile parts of the library - #AC_PROG_FC(gfortran) --FC="$GFORTRAN" -+#FC="$GFORTRAN" - AC_PROG_FC(gfortran) - - # extra LD Flags which are required for targets --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0012-cpp-honor-sysroot.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0012-cpp-honor-sysroot.patch deleted file mode 100644 index 961f96f1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0012-cpp-honor-sysroot.patch +++ /dev/null @@ -1,54 +0,0 @@ -From b3e8e7e8ae106e3207e9edc3d23dcce1464b755f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH 12/39] 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 -rather than the --sysroot option specified on the commandline. If access to that directory is -permission denied (unreadable), gcc will error. - -This happens when ccache is in use due to the fact it uses preprocessed source files. - -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, --isystem, -isysroot happen and the correct sysroot is used. - -[YOCTO #2074] - -RP 2012/04/13 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/cp/lang-specs.h | 2 +- - gcc/gcc.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h -index f0802b8915c..f324d299849 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -64,5 +64,5 @@ along with GCC; see the file COPYING3. If not see - {".ii", "@c++-cpp-output", 0, 0, 0}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -- cc1plus -fpreprocessed %i %(cc1_options) %2\ -+ 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 d355d65583a..570cdc00034 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1343,7 +1343,7 @@ static const struct compiler default_compilers[] = - %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, -+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, - {".s", "@assembler", 0, 0, 0}, - {"@assembler", - "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0013-MIPS64-Default-to-N64-ABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0013-MIPS64-Default-to-N64-ABI.patch deleted file mode 100644 index 8ef8806b..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0013-MIPS64-Default-to-N64-ABI.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0f3629978cd7c98614e87d4fd190b89864221631 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:23:08 +0400 -Subject: [PATCH 13/39] MIPS64: Default to N64 ABI - -MIPS64 defaults to n32 ABI, this patch makes it -so that it defaults to N64 ABI - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE config specific] ---- - gcc/config.gcc | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 8741dd1e3b2..2ffcb39d85f 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2137,29 +2137,29 @@ mips*-*-linux*) # Linux MIPS, either endian. - default_mips_arch=mips32 - ;; - mips64el-st-linux-gnu) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_file="${tm_file} mips/st.h" - tmake_file="${tmake_file} mips/t-st" - enable_mips_multilibs="yes" - ;; - mips64octeon*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" - target_cpu_default=MASK_SOFT_FLOAT_ABI - enable_mips_multilibs="yes" - ;; - mipsisa64r6*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r6 - enable_mips_multilibs="yes" - ;; - mipsisa64r2*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - default_mips_arch=mips64r2 - enable_mips_multilibs="yes" - ;; - mips64*-*-linux* | mipsisa64*-*-linux*) -- default_mips_abi=n32 -+ default_mips_abi=64 - enable_mips_multilibs="yes" - ;; - esac --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch deleted file mode 100644 index 043bb9dd..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0014-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch +++ /dev/null @@ -1,248 +0,0 @@ -From 53f1c382b1366c5621c8edead9c766950c290fd9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:24:50 +0400 -Subject: [PATCH 14/39] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER - relative to SYSTEMLIBS_DIR - -This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER -relative to SYSTEMLIBS_DIR which can be set in generated headers -This breaks the assumption of hardcoded multilib in gcc -Change is only for the supported architectures in OE including -SH, sparc, alpha for possible future support (if any) - -Removes the do_headerfix task in metadata - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [OE configuration] ---- - gcc/config/alpha/linux-elf.h | 4 ++-- - gcc/config/arm/linux-eabi.h | 4 ++-- - gcc/config/arm/linux-elf.h | 2 +- - gcc/config/i386/linux.h | 2 +- - gcc/config/i386/linux64.h | 6 +++--- - gcc/config/linux.h | 8 ++++---- - gcc/config/mips/linux.h | 12 ++++++------ - gcc/config/riscv/linux.h | 2 +- - gcc/config/rs6000/linux64.h | 16 ++++++---------- - gcc/config/sh/linux.h | 2 +- - gcc/config/sparc/linux.h | 2 +- - gcc/config/sparc/linux64.h | 4 ++-- - 12 files changed, 30 insertions(+), 34 deletions(-) - -diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h -index 36b74dc1993..02373578af8 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 - #define EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" - #if DEFAULT_LIBC == LIBC_UCLIBC - #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 8585fde3d41..b3af68cac57 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -62,8 +62,8 @@ - GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ - - #undef GLIBC_DYNAMIC_LINKER --#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" --#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" - #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT - - #define GLIBC_DYNAMIC_LINKER \ -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h -index cfcd9cb1a5c..a798e987ecb 100644 ---- a/gcc/config/arm/linux-elf.h -+++ b/gcc/config/arm/linux-elf.h -@@ -60,7 +60,7 @@ - - #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ - %{static:-Bstatic} \ -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h -index 69f97f15b0d..71bc31d9231 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 - . */ - - #define GNU_USER_LINK_EMULATION "elf_i386" --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 f2d913e30ac..8725f33d8a5 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 - #define GNU_USER_LINK_EMULATION64 "elf_x86_64" - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" -+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" - - #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 2ea4ff92c1d..487b0c0923b 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -81,10 +81,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - GLIBC_DYNAMIC_LINKER must be defined for each target using them, or - GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets - supporting both 32-bit and 64-bit compilation. */ --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" - #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" - #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 2dfd0c18b90..12057c51b5e 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 - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" - - #define GLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - #define GLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" - - #undef UCLIBC_DYNAMIC_LINKER32 - #define UCLIBC_DYNAMIC_LINKER32 \ -- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - #undef UCLIBC_DYNAMIC_LINKER64 - #define UCLIBC_DYNAMIC_LINKER64 \ -- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" - #define UCLIBC_DYNAMIC_LINKERN32 \ -- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" -+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" - - #undef MUSL_DYNAMIC_LINKER32 - #define MUSL_DYNAMIC_LINKER32 \ -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h -index aa8a28d5d..ebf9551c9 100644 ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. - GNU_USER_TARGET_OS_CPP_BUILTINS(); \ - } while (0) - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" - - #define MUSL_ABI_SUFFIX \ - "%{mabi=ilp32:-sf}" \ -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h -index 90fe6566255..55695dadd91 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -420,16 +420,11 @@ extern int dot_symbols; - #undef LINK_OS_DEFAULT_SPEC - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" - --#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" -- -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" - #ifdef LINUX64_DEFAULT_ABI_ELFv2 --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.2}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" - #else --#define GLIBC_DYNAMIC_LINKER64 \ --"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ --":%(dynamic_linker_prefix)/lib64/ld64.so.1}" -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" - #endif - - #define MUSL_DYNAMIC_LINKER32 \ -@@ -437,8 +432,9 @@ extern int dot_symbols; - #define MUSL_DYNAMIC_LINKER64 \ - "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" - --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" -+ - #if DEFAULT_LIBC == LIBC_UCLIBC - #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ - "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h -index 6d2ccd012ba..ec78a89ce15 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 - "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ - "%{mfdpic:-fdpic}.so.1" - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 9fb03af0fe9..401fddbbb22 100644 ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" - - #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 c1fe42165b7..26a79bfa2e3 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 - When the -shared link option is used a final link is not being - done. */ - --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" - - #ifdef SPARC_BI_ARCH - --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0015-gcc-Fix-argument-list-too-long-error.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0015-gcc-Fix-argument-list-too-long-error.patch deleted file mode 100644 index 4bff8428..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0015-gcc-Fix-argument-list-too-long-error.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 2e75a14cd60227e036790184f0eb400abc3c870b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:26:37 +0400 -Subject: [PATCH 15/39] 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: - -headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` - -The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle -it, use the $(sort list) of GNU make which can handle the too long list -would fix the problem, the header would be short enough after sorted. -The "tr ' ' '\012'" was used for translating the space to "\n", the -$(sort list) doesn't need this. - -Signed-off-by: Robert Yang -Signed-off-by: Khem Raj - -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 1367136bfac..71a8275c39f 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3538,7 +3538,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))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0016-Disable-sdt.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0016-Disable-sdt.patch deleted file mode 100644 index 81975462..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0016-Disable-sdt.patch +++ /dev/null @@ -1,113 +0,0 @@ -From 423d87ac47d21e399d759d7ff3b638f0c721a7df Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:28:10 +0400 -Subject: [PATCH 16/39] 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 -sdt.h usage always. This avoids build failures if the header is removed after configure -but before libgcc is compiled for example. - -RP 2012/8/7 - -Signed-off-by: Khem Raj - -Disable sdt for libstdc++-v3. - -Signed-off-by: Robert Yang - -Upstream-Status: Inappropriate [hack] ---- - gcc/configure | 12 ++++++------ - gcc/configure.ac | 18 +++++++++--------- - libstdc++-v3/configure | 6 +++--- - libstdc++-v3/configure.ac | 2 +- - 4 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index a575839c1b2..872338f29b6 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29296,12 +29296,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 --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -- --fi -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+# -+#fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 - $as_echo "$have_sys_sdt_h" >&6; } - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 676116a6d96..55046e68926 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5957,15 +5957,15 @@ fi - AC_SUBST([enable_default_ssp]) - - # Test for on the target. --GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) --AC_MSG_CHECKING(sys/sdt.h in the target C library) --have_sys_sdt_h=no --if test -f $target_header_dir/sys/sdt.h; then -- have_sys_sdt_h=yes -- AC_DEFINE(HAVE_SYS_SDT_H, 1, -- [Define if your target C library provides sys/sdt.h]) --fi --AC_MSG_RESULT($have_sys_sdt_h) -+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) -+#AC_MSG_CHECKING(sys/sdt.h in the target C library) -+#have_sys_sdt_h=no -+#if test -f $target_header_dir/sys/sdt.h; then -+# have_sys_sdt_h=yes -+# AC_DEFINE(HAVE_SYS_SDT_H, 1, -+# [Define if your target C library provides sys/sdt.h]) -+#fi -+#AC_MSG_RESULT($have_sys_sdt_h) - - # 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 c9dbaa139d5..c64a77d152b 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -21786,11 +21786,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 - -- if test $glibcxx_cv_sys_sdt_h = yes; then -+# if test $glibcxx_cv_sys_sdt_h = yes; then - --$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h -+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h - -- fi -+# fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 - $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } - -diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac -index 0ef96270c9c..afe55a1b215 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN - GLIBCXX_CHECK_SC_NPROC_ONLN - GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP - GLIBCXX_CHECK_SYSCTL_HW_NCPU --GLIBCXX_CHECK_SDT_H -+#GLIBCXX_CHECK_SDT_H - - # Check for available headers. - AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0017-libtool.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0017-libtool.patch deleted file mode 100644 index 0caa1ce1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0017-libtool.patch +++ /dev/null @@ -1,42 +0,0 @@ -From c8b11e96b11910b2d4df6ae8104466e3303d933f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:29:11 +0400 -Subject: [PATCH 17/39] libtool - -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 -when running on am x86_64 build host. - -This patch stops this speading to libdir in the libstdc++.la file within libtool. -Arguably, it shouldn't be passing this into libtool in the first place but -for now this resolves the nastiest problems this causes. - -func_normal_abspath would resolve an empty path to `pwd` so we need -to filter the zero case. - -RP 2012/8/24 - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - ltmain.sh | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 9503ec85d70..0121fba707f 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6359,6 +6359,10 @@ func_mode_link () - func_warning "ignoring multiple \`-rpath's for a libtool library" - - install_libdir="$1" -+ if test -n "$install_libdir"; then -+ func_normal_abspath "$install_libdir" -+ install_libdir=$func_normal_abspath_result -+ fi - - oldlibs= - if test -z "$rpath"; then --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0018-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0018-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch deleted file mode 100644 index 643cc671..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0018-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 7dbba844a59bdf6e7d724f8bfa7927246cb7af8f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:30:32 +0400 -Subject: [PATCH 18/39] 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 -the option is not passed to linker when chosing march=armv4 -This patch redefines this in linux-eabi.h and reinserts it -for eabi defaulting toolchains. - -We might want to send it upstream. - -Signed-off-by: Khem Raj - -Upstream-Status: Pending ---- - gcc/config/arm/linux-eabi.h | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index b3af68cac57..330b6e13c5f 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -88,10 +88,14 @@ - #define MUSL_DYNAMIC_LINKER \ - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" - -+/* For armv4 we pass --fix-v4bx to linker to support EABI */ -+#undef TARGET_FIX_V4BX_SPEC -+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" -+ - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ - #undef LINK_SPEC --#define LINK_SPEC EABI_LINK_SPEC \ -+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ - LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ - LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) - --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0019-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0019-Use-the-multilib-config-files-from-B-instead-of-usin.patch deleted file mode 100644 index 08491865..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0019-Use-the-multilib-config-files-from-B-instead-of-usin.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 117140acd3c383f620ff75894276001c7405dcce Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:33:04 +0400 -Subject: [PATCH 19/39] 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, -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. - -Signed-off-by: Khem Raj -Signed-off-by: Constantin Musca - -Upstream-Status: Inappropriate [configuration] ---- - gcc/configure | 22 ++++++++++++++++++---- - gcc/configure.ac | 22 ++++++++++++++++++---- - 2 files changed, 36 insertions(+), 8 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 872338f29b6..cfcadc93a01 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12138,10 +12138,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -12152,6 +12162,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 55046e68926..44b90478f55 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1902,10 +1902,20 @@ done - tmake_file_= - for f in ${tmake_file} - do -- if test -f ${srcdir}/config/$f -- then -- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -- fi -+ case $f in -+ */t-linux64 ) -+ if test -f ./config/$f -+ then -+ tmake_file_="${tmake_file_} ./config/$f" -+ fi -+ ;; -+ * ) -+ if test -f ${srcdir}/config/$f -+ then -+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" -+ fi -+ ;; -+ esac - done - tmake_file="${tmake_file_}" - -@@ -1916,6 +1926,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */linux64.h ) -+ tm_file_list="${tm_file_list} ./config/$f" -+ tm_include_list="${tm_include_list} ./config/$f" -+ ;; - ./* ) - f=`echo $f | sed 's/^..//'` - tm_file_list="${tm_file_list} $f" --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0020-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0020-Avoid-using-libdir-from-.la-which-usually-points-to-.patch deleted file mode 100644 index 911fe852..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0020-Avoid-using-libdir-from-.la-which-usually-points-to-.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a7266111a5ba2d146c979e86ff84f6b807ca5fdc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:39:38 +0000 -Subject: [PATCH 20/39] Avoid using libdir from .la which usually points to a - host path - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Jonathan Liu -Signed-off-by: Khem Raj ---- - ltmain.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/ltmain.sh b/ltmain.sh -index 0121fba707f..52bdbdb5f9c 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -5628,6 +5628,9 @@ func_mode_link () - absdir="$abs_ladir" - libdir="$abs_ladir" - else -+ # Instead of using libdir from .la which usually points to a host path, -+ # use the path the .la is contained in. -+ libdir="$abs_ladir" - dir="$libdir" - absdir="$libdir" - fi --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0021-export-CPP.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0021-export-CPP.patch deleted file mode 100644 index 2e6b4110..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0021-export-CPP.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c8599fc3b5781b319707c9c0f1b0a1ef7cddb027 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH 21/39] 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 -in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: - -configure:3641: checking for _FILE_OFFSET_BITS value needed for large files -configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 -configure:3666: $? = 0 -configure:3698: result: no -configure:3786: checking how to run the C preprocessor -configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 -configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c -configure:3876: $? = 0 - -Note this is a *build* target (in build-x86_64-linux) so it should be -using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 -headers are very different, using the wrong cpp is a real problem. It is leaking -into configure through the CPP variable. Ultimately this leads to build -failures related to not being able to include a process.h file for pem-unix.c. - -The fix is to ensure we export a sane CPP value into the build -environment when using build targets. We could define a CPP_FOR_BUILD value which may be -the version which needs to be upstreamed but for now, this fix is good enough to -avoid the problem. - -RP 22/08/2013 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - Makefile.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile.in b/Makefile.in -index 2bf83b72265..1af45580086 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ -+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0022-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0022-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch deleted file mode 100644 index 17c581f1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0022-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5e2ee46c720b6ce03a18da70dd4e0917c258ab0b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:21:55 +0000 -Subject: [PATCH 22/39] Disable the MULTILIB_OSDIRNAMES and other multilib - options. - -Hard coding the MULTILIB_OSDIRNAMES with ../lib64 is causing problems on -systems where the libdir is NOT set to /lib64. This is allowed by the -ABI, as -long as the dynamic loader is present in /lib. - -We simply want to use the default rules in gcc to find and configure the -normal libdir. - -Upstream-Status: Inappropriate[OE-Specific] - -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - gcc/config/aarch64/t-aarch64-linux | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux -index b9897785a89..7d06f0d0edb 100644 ---- a/gcc/config/aarch64/t-aarch64-linux -+++ b/gcc/config/aarch64/t-aarch64-linux -@@ -21,8 +21,8 @@ - LIB1ASMSRC = aarch64/lib1funcs.asm - LIB1ASMFUNCS = _aarch64_sync_cache_range - --AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) --MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) --MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) -+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) -+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) -+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) - --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) --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0023-Ensure-target-gcc-headers-can-be-included.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0023-Ensure-target-gcc-headers-can-be-included.patch deleted file mode 100644 index 4d4da1a5..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0023-Ensure-target-gcc-headers-can-be-included.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 73766424a2f71b1810fb8afdd863028855d87e5a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:25:11 +0000 -Subject: [PATCH 23/39] 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 -built for the target architecture, these are within the target -sysroot and not cross/nativesdk; thus they weren't able to be -found by gcc with the existing search paths. Add support for -picking up these headers under the sysroot supplied on the gcc -command line in order to resolve this. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton -Signed-off-by: Khem Raj ---- - gcc/Makefile.in | 2 ++ - gcc/cppdefault.c | 4 ++++ - gcc/defaults.h | 9 +++++++++ - gcc/gcc.c | 7 ------- - 4 files changed, 15 insertions(+), 7 deletions(-) - -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 71a8275c39f..5ae693fb06c 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -614,6 +614,7 @@ libexecdir = @libexecdir@ - - # Directory in which the compiler finds libraries etc. - libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) -+libsubdir_target = gcc/$(target_noncanonical)/$(version) - # 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 -@@ -2870,6 +2871,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" - - PREPROCESSOR_DEFINES = \ - -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ -+ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ - -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 b36a979d5ba..e2e187dedaf 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -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 -+#ifdef GCC_INCLUDE_SUBDIR_TARGET -+ /* This is the dir for gcc's private headers under the specified sysroot. */ -+ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+#endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ - { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -diff --git a/gcc/defaults.h b/gcc/defaults.h -index 78a08a33f12..c8851277674 100644 ---- a/gcc/defaults.h -+++ b/gcc/defaults.h -@@ -1451,4 +1451,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB - #endif - -+/* Default prefixes to attach to command names. */ -+ -+#ifndef STANDARD_STARTFILE_PREFIX_1 -+#define STANDARD_STARTFILE_PREFIX_1 "/lib/" -+#endif -+#ifndef STANDARD_STARTFILE_PREFIX_2 -+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" -+#endif -+ - #endif /* ! GCC_DEFAULTS_H */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 570cdc00034..3fb64d453f1 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1464,13 +1464,6 @@ static const char *gcc_libexec_prefix; - - /* Default prefixes to attach to command names. */ - --#ifndef STANDARD_STARTFILE_PREFIX_1 --#define STANDARD_STARTFILE_PREFIX_1 "/lib/" --#endif --#ifndef STANDARD_STARTFILE_PREFIX_2 --#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" --#endif -- - #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ - #undef MD_EXEC_PREFIX - #undef MD_STARTFILE_PREFIX --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0024-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0024-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch deleted file mode 100644 index 67b47f4e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0024-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 57beef69396f6c187014b8e61cdc966218479d07 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 11:17:19 +0000 -Subject: [PATCH 24/39] 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 ---- - 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 803b292cce5..b47842eb590 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 c8f38be5835..4fab7cec3ea 100644 ---- a/libatomic/Makefile.in -+++ b/libatomic/Makefile.in -@@ -335,7 +335,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.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0025-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0025-Don-t-search-host-directory-during-relink-if-inst_pr.patch deleted file mode 100644 index d8b35bbb..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0025-Don-t-search-host-directory-during-relink-if-inst_pr.patch +++ /dev/null @@ -1,38 +0,0 @@ -From fd96c9b35c592f1bdd32bc5ae669157473e44063 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 3 Mar 2015 08:21:19 +0000 -Subject: [PATCH 25/39] Don't search host directory during "relink" if - $inst_prefix is provided - -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj ---- - ltmain.sh | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 52bdbdb5f9c..82bcec39f05 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -6004,12 +6004,13 @@ func_mode_link () - fi - else - # We cannot seem to hardcode it, guess we'll fake it. -+ # Default if $libdir is not relative to the prefix: - add_dir="-L$libdir" -- # Try looking first in the location we're being installed to. -+ - if test -n "$inst_prefix_dir"; then - case $libdir in - [\\/]*) -- add_dir="$add_dir -L$inst_prefix_dir$libdir" -+ add_dir="-L$inst_prefix_dir$libdir" - ;; - esac - fi --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0026-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0026-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch deleted file mode 100644 index d3ab5aa9..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0026-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c2e400afe8c514357859fca88af4d3e1fcbfe2ff Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:15:27 -0700 -Subject: [PATCH 26/39] Use SYSTEMLIBS_DIR replacement instead of hardcoding - base_libdir - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index bf1327e98cc..64436183bc8 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -21,7 +21,7 @@ - #ifndef GCC_AARCH64_LINUX_H - #define GCC_AARCH64_LINUX_H - --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0027-aarch64-Add-support-for-musl-ldso.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0027-aarch64-Add-support-for-musl-ldso.patch deleted file mode 100644 index 9e5ce8a6..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0027-aarch64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a2cc175769fd8255750eaecae64e3d1f9c38d48f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:18:39 -0700 -Subject: [PATCH 27/39] aarch64: Add support for musl ldso - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - gcc/config/aarch64/aarch64-linux.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index 64436183bc8..ba156676026 100644 ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -24,7 +24,7 @@ - #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef MUSL_DYNAMIC_LINKER --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" - - #undef ASAN_CC1_SPEC - #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0028-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0028-libcc1-fix-libcc1-s-install-path-and-rpath.patch deleted file mode 100644 index 2673f4e3..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0028-libcc1-fix-libcc1-s-install-path-and-rpath.patch +++ /dev/null @@ -1,54 +0,0 @@ -From a8a8a02788ff98f253ce0b33adcb0e661d24b1e3 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 5 Jul 2015 20:25:18 -0700 -Subject: [PATCH 28/39] libcc1: fix libcc1's install path and rpath - -* Install libcc1.so and libcc1plugin.so into - $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we - had done to lto-plugin. -* Fix bad RPATH iussue: - gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file - /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 - [rpaths] - -Upstream-Status: Inappropriate [OE configuration] - -Signed-off-by: Robert Yang ---- - libcc1/Makefile.am | 4 ++-- - libcc1/Makefile.in | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am -index 6ecb66b4365..634cce3c2a9 100644 ---- a/libcc1/Makefile.am -+++ b/libcc1/Makefile.am -@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) - --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - - if ENABLE_PLUGIN - plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la -diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in -index 47be10025ad..8d5481d87bd 100644 ---- a/libcc1/Makefile.in -+++ b/libcc1/Makefile.in -@@ -303,8 +303,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ - $(Wc)$(libiberty_normal))) - - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin --cc1libdir = $(libdir)/$(libsuffix) -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) -+plugindir = $(cc1libdir) - @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.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0029-handle-sysroot-support-for-nativesdk-gcc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0029-handle-sysroot-support-for-nativesdk-gcc.patch deleted file mode 100644 index 727bb0da..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0029-handle-sysroot-support-for-nativesdk-gcc.patch +++ /dev/null @@ -1,213 +0,0 @@ -From 3bb74495e45e0e798daae5556497e688b8fc4eef Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:39:54 +0000 -Subject: [PATCH 29/39] 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 -bit compiler is needed). - -Sadly, building nativesdk-gcc is not straight forward. We install -nativesdk-gcc into a relocatable location and this means that its -library locations can change. "Normal" sysroot support doesn't help -in this case since the values of paths like "libdir" change, not just -base root directory of the system. - -In order to handle this we do two things: - -a) Add %r into spec file markup which can be used for injected paths - such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). -b) Add other paths which need relocation into a .gccrelocprefix section - which the relocation code will notice and adjust automatically. - -Upstream-Status: Inappropriate -RP 2015/7/28 - -Signed-off-by: Khem Raj ---- - gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++------------- - gcc/cppdefault.h | 3 ++- - gcc/gcc.c | 20 +++++++++++++------ - 3 files changed, 53 insertions(+), 20 deletions(-) - -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index e2e187dedaf..2faba2b1d63 100644 ---- a/gcc/cppdefault.c -+++ b/gcc/cppdefault.c -@@ -35,6 +35,30 @@ - # undef CROSS_INCLUDE_DIR - #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; -+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; -+#ifdef LOCAL_INCLUDE_DIR -+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; -+#endif -+#ifdef PREFIX_INCLUDE_DIR -+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; -+#endif -+#ifdef FIXED_INCLUDE_DIR -+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; -+#endif -+#ifdef CROSS_INCLUDE_DIR -+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; -+#endif -+#ifdef TOOL_INCLUDE_DIR -+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; -+#endif -+#ifdef NATIVE_SYSTEM_HEADER_DIR -+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; -+#endif -+ - const struct default_include cpp_include_defaults[] - #ifdef INCLUDE_DEFAULTS - = INCLUDE_DEFAULTS; -@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[] - = { - #ifdef GPLUSPLUS_INCLUDE_DIR - /* Pick up GNU C++ generic include files. */ -- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR - /* Pick up GNU C++ target-dependent include files. */ -- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, - #endif - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR - /* Pick up GNU C++ backward and deprecated include files. */ -- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, -+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, - GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, - #endif - #ifdef GCC_INCLUDE_DIR - /* This is the dir for gcc's private headers. */ -- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef GCC_INCLUDE_SUBDIR_TARGET - /* This is the dir for gcc's private headers under the specified sysroot. */ -- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, -+ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, - #endif - #ifdef LOCAL_INCLUDE_DIR - /* /usr/local/include comes before the fixincluded header files. */ -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, -- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, -+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, - #endif - #ifdef PREFIX_INCLUDE_DIR -- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, -+ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, - #endif - #ifdef FIXED_INCLUDE_DIR - /* This is the dir for fixincludes. */ -- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, -+ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, - /* 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[] - #endif - #ifdef CROSS_INCLUDE_DIR - /* One place the target system's headers might be. */ -- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, -+ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, - #endif - #ifdef TOOL_INCLUDE_DIR - /* Another place the target system's headers might be. */ -- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, -+ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, - #endif - #ifdef NATIVE_SYSTEM_HEADER_DIR - /* /usr/include comes dead last. */ -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, -+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, - #endif - { 0, 0, 0, 0, 0, 0 } - }; -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h -index 4a0186d1cf2..29e5d9da0dc 100644 ---- a/gcc/cppdefault.h -+++ b/gcc/cppdefault.h -@@ -33,7 +33,8 @@ - - struct default_include - { -- const char *const fname; /* The name of the directory. */ -+ const char *fname; /* The name of the directory. */ -+ - 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++. */ -diff --git a/gcc/gcc.c b/gcc/gcc.c -index 3fb64d453f1..cd0c7fbe961 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -248,6 +248,8 @@ FILE *report_times_to_file = NULL; - #endif - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; - -+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; -+ - /* Nonzero means pass the updated target_system_root to the compiler. */ - - static int target_system_root_changed; -@@ -519,6 +521,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. -+ %r Output the base path target_relocatable_prefix - %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. -@@ -1487,10 +1490,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. */ --static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; --static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; --static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; --static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; -+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; -+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; -+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; -+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - - /* For native compilers, these are well-known paths containing - components that may be provided by the system. For cross -@@ -1498,9 +1501,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; --static const char *const standard_startfile_prefix_1 -+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_1; --static const char *const standard_startfile_prefix_2 -+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) - = STANDARD_STARTFILE_PREFIX_2; - - /* A relative path to be used in finding the location of tools -@@ -5849,6 +5852,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) - } - break; - -+ case 'r': -+ obstack_grow (&obstack, target_relocatable_prefix, -+ strlen (target_relocatable_prefix)); -+ break; -+ - case 'S': - value = do_spec_1 (startfile_spec, 0, NULL); - if (value != 0) --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0030-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0030-Search-target-sysroot-gcc-version-specific-dirs-with.patch deleted file mode 100644 index 33566dff..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0030-Search-target-sysroot-gcc-version-specific-dirs-with.patch +++ /dev/null @@ -1,102 +0,0 @@ -From f5cc8cd0c44092dc487106ade27e011c1f584ada Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:41:45 +0000 -Subject: [PATCH 30/39] Search target sysroot gcc version specific dirs with - multilib. - -We install the gcc libraries (such as crtbegin.p) into -//5.2.0/ -which is a default search path for GCC (aka multi_suffix in the -code below). is 'machine' in gcc's terminology. We use -these directories so that multiple gcc versions could in theory -co-exist on target. - -We only want to build one gcc-cross-canadian per arch and have this work -for all multilibs. can be handled by mapping the multilib - to the one used by gcc-cross-canadian, e.g. -mips64-polkmllib32-linux -is symlinked to by mips64-poky-linux. - -The default gcc search path in the target sysroot for a "lib64" mutlilib -is: - -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -which means that the lib32 crtbegin.o will be found and the lib64 ones -will not which leads to compiler failures. - -This patch injects a multilib version of that path first so the lib64 -binaries can be found first. With this change the search path becomes: - -/lib32/../lib64/mips64-poky-linux/5.2.0/ -/lib32/mips64-poky-linux/5.2.0/ -/lib32/../lib64/ -/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ -/usr/lib32/mips64-poky-linux/5.2.0/ -/usr/lib32/../lib64/ -/lib32/ -/usr/lib32/ - -Upstream-Status: Pending -RP 2015/7/31 - -Signed-off-by: Khem Raj ---- - gcc/gcc.c | 29 ++++++++++++++++++++++++++++- - 1 file changed, 28 insertions(+), 1 deletion(-) - -diff --git a/gcc/gcc.c b/gcc/gcc.c -index cd0c7fbe961..f6f3aa077c8 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -2527,7 +2527,7 @@ for_each_path (const struct path_prefix *paths, - if (path == NULL) - { - len = paths->max_len + extra_space + 1; -- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); -+ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); - path = XNEWVEC (char, len); - } - -@@ -2539,6 +2539,33 @@ for_each_path (const struct path_prefix *paths, - /* Look first in MACHINE/VERSION subdirectory. */ - if (!skip_multi_dir) - { -+ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) -+ { -+ const char *this_multi; -+ size_t this_multi_len; -+ -+ if (pl->os_multilib) -+ { -+ this_multi = multi_os_dir; -+ this_multi_len = multi_os_dir_len; -+ } -+ else -+ { -+ this_multi = multi_dir; -+ this_multi_len = multi_dir_len; -+ } -+ -+ /* Look in multilib MACHINE/VERSION subdirectory first */ -+ if (this_multi_len) -+ { -+ memcpy (path + len, this_multi, this_multi_len + 1); -+ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); -+ ret = callback (path, callback_info); -+ if (ret) -+ break; -+ } -+ } -+ - memcpy (path + len, multi_suffix, suffix_len + 1); - ret = callback (path, callback_info); - if (ret) --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0031-Fix-various-_FOR_BUILD-and-related-variables.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0031-Fix-various-_FOR_BUILD-and-related-variables.patch deleted file mode 100644 index dabc0059..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0031-Fix-various-_FOR_BUILD-and-related-variables.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 93b4e1d3a0f8417118d1c48fcd1ce51996e1420b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:42:45 +0000 -Subject: [PATCH 31/39] 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 -CXXFLAGS with CXXFLAGS_FOR_BUILD. -Without this, when building for mingw, you end up trying to use -the mingw headers for a host build. - -The same goes for other variables as well, such as CPPFLAGS, -CPP, and GMPINC. - -Upstream-Status: Pending - -Signed-off-by: Peter Seebach -Signed-off-by: Mark Hatle -Signed-off-by: Khem Raj ---- - Makefile.in | 6 ++++++ - Makefile.tpl | 5 +++++ - gcc/Makefile.in | 2 +- - gcc/configure | 2 +- - gcc/configure.ac | 2 +- - 5 files changed, 14 insertions(+), 3 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 1af45580086..8966453c32c 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ - CPP="$(CC_FOR_BUILD) -E"; export CPP; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -169,6 +170,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -186,6 +190,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -@@ -753,6 +758,7 @@ BASE_FLAGS_TO_PASS = \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ -+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ - "INSTALL=$(INSTALL)" \ -diff --git a/Makefile.tpl b/Makefile.tpl -index abd2bc2fb89..5822b260404 100644 ---- a/Makefile.tpl -+++ b/Makefile.tpl -@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ - CC="$(CC_FOR_BUILD)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ -@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ - # built for the build system to override those in BASE_FLAGS_TO_PASS. - EXTRA_BUILD_FLAGS = \ - CFLAGS="$(CFLAGS_FOR_BUILD)" \ -+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ -+ CPP="$(CC_FOR_BUILD) -E" \ -+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)" - - # This is the list of directories to built for the host system. -@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ - HOST_EXPORTS = \ - $(BASE_EXPORTS) \ - CC="$(CC)"; export CC; \ -+ CPP="$(CC) -E"; export CPP; \ - ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ - CFLAGS="$(CFLAGS)"; export CFLAGS; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ -diff --git a/gcc/Makefile.in b/gcc/Makefile.in -index 5ae693fb06c..02ee0aa72f4 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -801,7 +801,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) - BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) -+ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) - - # 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 cfcadc93a01..2f6b4f72ef3 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -11797,7 +11797,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}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 44b90478f55..9f8a51fc9bd 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1708,7 +1708,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}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - --target=$target_alias --host=$build_alias --build=$build_alias --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch deleted file mode 100644 index 6dd9d542..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0032-nios2-Define-MUSL_DYNAMIC_LINKER.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 99f3e3b427996ac579d95e68440a0bd7af7ef0fc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 2 Feb 2016 10:26:10 -0800 -Subject: [PATCH 32/39] nios2: Define MUSL_DYNAMIC_LINKER - -Signed-off-by: Marek Vasut -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - gcc/config/nios2/linux.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h -index 4729105626d..36181eb7b85 100644 ---- a/gcc/config/nios2/linux.h -+++ b/gcc/config/nios2/linux.h -@@ -30,6 +30,7 @@ - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" -+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" - - #undef LINK_SPEC - #define LINK_SPEC LINK_SPEC_ENDIAN \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0033-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0033-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch deleted file mode 100644 index 05a6b0a1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0033-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 84b55ab2f68710a583d4ec810ea8b3b68576f8aa Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 18:10:54 -0700 -Subject: [PATCH 33/39] 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 -the __stack_chk_fail_local() so essentially it provides -libssp but not libssp_nonshared something like -TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED - where-as for glibc the needed symbols -are already present in libc_nonshared library therefore -we do not need any library helper on glibc based systems -but musl needs the libssp_noshared from gcc - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/linux.h | 7 +++++++ - gcc/config/rs6000/linux.h | 10 ++++++++++ - gcc/config/rs6000/linux64.h | 10 ++++++++++ - 3 files changed, 27 insertions(+) - -diff --git a/gcc/config/linux.h b/gcc/config/linux.h -index 487b0c0923b..4769d089538 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -182,6 +182,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ - { 0, 0, 0, 0, 0, 0 } \ - } -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+ - #endif - - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ -diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h -index 01b40c762f6..e7c5e92215c 100644 ---- a/gcc/config/rs6000/linux.h -+++ b/gcc/config/rs6000/linux.h -@@ -92,6 +92,16 @@ - " -m elf32ppclinux") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #undef LINK_OS_LINUX_SPEC - #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 55695dadd91..60f1ee24985 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -473,6 +473,16 @@ extern int dot_symbols; - " -m elf64ppc") - #endif - -+/* link libssp_nonshared.a with musl */ -+#if DEFAULT_LIBC == LIBC_MUSL -+#ifdef TARGET_LIBC_PROVIDES_SSP -+#undef LINK_SSP_SPEC -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -+ "|fstack-protector-strong|fstack-protector-explicit" \ -+ ":-lssp_nonshared}" -+#endif -+#endif -+ - #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ - %{!static-pie: \ - %{rdynamic:-export-dynamic} \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0034-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0034-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch deleted file mode 100644 index 7a69ea28..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0034-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch +++ /dev/null @@ -1,125 +0,0 @@ -From faf35e26740461fe1a1da5433d5a0169a663e3b5 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Apr 2016 20:03:28 +0000 -Subject: [PATCH 34/39] libgcc: Add knob to use ldbl-128 on ppc - -musl does not support ldbl 128 so we can not assume -that linux as a whole supports ldbl-128 bits, instead -act upon configure option passed to gcc and assume no -on musl and yes otherwise if no option is passed since -default behaviour is to assume ldbl128 it does not -change the defaults - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - libgcc/Makefile.in | 1 + - libgcc/config/rs6000/t-linux | 5 ++++- - libgcc/configure | 18 ++++++++++++++++++ - libgcc/configure.ac | 12 ++++++++++++ - 4 files changed, 35 insertions(+), 1 deletion(-) - mode change 100644 => 100755 libgcc/configure - -diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in -index dd8cee99fd3..b5f478af382 100644 ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -48,6 +48,7 @@ unwind_header = @unwind_header@ - md_unwind_header = @md_unwind_header@ - sfp_machine_header = @sfp_machine_header@ - thread_header = @thread_header@ -+with_ldbl128 = @with_ldbl128@ - - host_noncanonical = @host_noncanonical@ - real_host_noncanonical = @real_host_noncanonical@ -diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux -index 4f6d4c4a4d2..c50dd94a2da 100644 ---- a/libgcc/config/rs6000/t-linux -+++ b/libgcc/config/rs6000/t-linux -@@ -1,3 +1,6 @@ - SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc -+ifeq ($(with_ldbl128),yes) -+HOST_LIBGCC2_CFLAGS += -mlong-double-128 -+endif -+HOST_LIBGCC2_CFLAGS += -mno-minimal-toc -diff --git a/libgcc/configure b/libgcc/configure -old mode 100644 -new mode 100755 -index b2f3f870844..ed806587c17 ---- a/libgcc/configure -+++ b/libgcc/configure -@@ -619,6 +619,7 @@ build_vendor - build_cpu - build - with_aix_soname -+with_ldbl128 - enable_vtable_verify - enable_shared - libgcc_topdir -@@ -668,6 +669,7 @@ with_cross_host - with_ld - enable_shared - enable_vtable_verify -+with_long_double_128 - with_aix_soname - enable_version_specific_runtime_libs - with_slibdir -@@ -1329,6 +1331,7 @@ Optional Packages: - --with-target-subdir=SUBDIR Configuring in a subdirectory for target - --with-cross-host=HOST Configuring with a cross compiler - --with-ld arrange to use the specified ld (full pathname) -+ --with-long-double-128 use 128-bit long double by default - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX -@@ -2213,6 +2216,21 @@ fi - - - -+# Check whether --with-long-double-128 was given. -+if test "${with_long_double_128+set}" = set; then : -+ withval=$with_long_double_128; with_ldbl128="$with_long_double_128" -+else -+ case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+ -+fi -+ -+ -+ -+ - # Check whether --with-aix-soname was given. - if test "${with_aix_soname+set}" = set; then : - withval=$with_aix_soname; case "${host}:${enable_shared}" in -diff --git a/libgcc/configure.ac b/libgcc/configure.ac -index b59aa746afc..42220a263c5 100644 ---- a/libgcc/configure.ac -+++ b/libgcc/configure.ac -@@ -78,6 +78,18 @@ AC_ARG_ENABLE(vtable-verify, - [enable_vtable_verify=no]) - AC_SUBST(enable_vtable_verify) - -+AC_ARG_WITH(long-double-128, -+[AS_HELP_STRING([--with-long-double-128], -+ [use 128-bit long double by default])], -+ with_ldbl128="$with_long_double_128", -+[case "${host}" in -+ power*-*-musl*) -+ with_ldbl128="no";; -+ *) with_ldbl128="yes";; -+ esac -+]) -+AC_SUBST(with_ldbl128) -+ - AC_ARG_WITH(aix-soname, - [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], - [shared library versioning (aka "SONAME") variant to provide on AIX])], --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0035-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0035-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch deleted file mode 100644 index 5e416e01..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0035-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 775c7fafcbfebed2d4bd8a6a011f18f70f3b59d3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 4 May 2016 21:11:34 -0700 -Subject: [PATCH 35/39] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS - -Upstream-Status: Pending - -Signed-off-by: Christopher Larson -Signed-off-by: Khem Raj ---- - libgcc/config/t-slibgcc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc -index 7e60b621a2d..ea22ede3361 100644 ---- a/libgcc/config/t-slibgcc -+++ b/libgcc/config/t-slibgcc -@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ - $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) - - SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ -- $(SHLIB_LDFLAGS) \ -+ $(LDFLAGS) $(SHLIB_LDFLAGS) \ - -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ - $(SHLIB_OBJS) $(SHLIB_LC) && \ - rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0036-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0036-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch deleted file mode 100644 index 8def33a1..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0036-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch +++ /dev/null @@ -1,86 +0,0 @@ -From b7faeed60261d7b75f2db3823926de1650ef64bc Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 24 Oct 2015 20:09:53 +0000 -Subject: [PATCH 36/39] libgcc_s: Use alias for __cpu_indicator_init instead of - symver - -Adapter from - -https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html - -This fix was debated but hasnt been applied gcc upstream since -they expect musl to support '@' in symbol versioning which is -a sun/gnu versioning extention. This patch however avoids the -need for the '@' symbols at all - -libgcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. - (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. - - * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. - -gcc/Changelog: - -2015-05-11 Szabolcs Nagy - - * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init - call __cpu_indicator_init_local instead of __cpu_indicator_init. - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - gcc/config/i386/i386.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 6a2141e48db..455fccbdd50 100644 ---- a/gcc/config/i386/i386.c -+++ b/gcc/config/i386/i386.c -@@ -36490,10 +36490,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, - { - case IX86_BUILTIN_CPU_INIT: - { -- /* Make it call __cpu_indicator_init in libgcc. */ -+ /* Make it call __cpu_indicator_init_local in libgcc.a. */ - tree call_expr, fndecl, type; - type = build_function_type_list (integer_type_node, NULL_TREE); -- fndecl = build_fn_decl ("__cpu_indicator_init", type); -+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); - call_expr = build_call_expr (fndecl, 0); - return expand_expr (call_expr, target, mode, EXPAND_NORMAL); - } -diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c -index 86953db2743..e0476272810 100644 ---- a/libgcc/config/i386/cpuinfo.c -+++ b/libgcc/config/i386/cpuinfo.c -@@ -482,7 +482,7 @@ __cpu_indicator_init (void) - return 0; - } - --#if defined SHARED && defined USE_ELF_SYMVER --__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); --__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); -+#ifndef SHARED -+int __cpu_indicator_init_local (void) -+ __attribute__ ((weak, alias ("__cpu_indicator_init"))); - #endif -diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux -index 8506a635790..564296f788e 100644 ---- a/libgcc/config/i386/t-linux -+++ b/libgcc/config/i386/t-linux -@@ -3,5 +3,5 @@ - # t-slibgcc-elf-ver and t-linux - SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver - --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.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0037-sync-gcc-stddef.h-with-musl.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0037-sync-gcc-stddef.h-with-musl.patch deleted file mode 100644 index f8a7f41a..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0037-sync-gcc-stddef.h-with-musl.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 602abaab15ffb60bf1797187a71b485042c56360 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Feb 2017 12:56:00 -0800 -Subject: [PATCH 37/39] 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 - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - gcc/ginclude/stddef.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h -index 31b96a7e5e1..438a3ce7c56 100644 ---- a/gcc/ginclude/stddef.h -+++ b/gcc/ginclude/stddef.h -@@ -134,6 +134,7 @@ _TYPE_wchar_t; - #ifndef ___int_ptrdiff_t_h - #ifndef _GCC_PTRDIFF_T - #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ -+#ifndef __DEFINED_ptrdiff_t /* musl */ - #define _PTRDIFF_T - #define _T_PTRDIFF_ - #define _T_PTRDIFF -@@ -143,10 +144,12 @@ _TYPE_wchar_t; - #define ___int_ptrdiff_t_h - #define _GCC_PTRDIFF_T - #define _PTRDIFF_T_DECLARED -+#define __DEFINED_ptrdiff_t /* musl */ - #ifndef __PTRDIFF_TYPE__ - #define __PTRDIFF_TYPE__ long int - #endif - typedef __PTRDIFF_TYPE__ ptrdiff_t; -+#endif /* __DEFINED_ptrdiff_t */ - #endif /* _PTRDIFF_T_DECLARED */ - #endif /* _GCC_PTRDIFF_T */ - #endif /* ___int_ptrdiff_t_h */ -@@ -184,6 +187,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ - #ifndef __size_t -+#ifndef __DEFINED_size_t /* musl */ - #define __size_t__ /* BeOS */ - #define __SIZE_T__ /* Cray Unicos/Mk */ - #define _SIZE_T -@@ -200,6 +204,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ -+#define __DEFINED_size_t /* musl */ - #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || defined(__DragonFly__) \ - || defined(__FreeBSD_kernel__) -@@ -235,6 +240,7 @@ typedef long ssize_t; - #endif /* _SIZE_T */ - #endif /* __SIZE_T__ */ - #endif /* __size_t__ */ -+#endif /* __DEFINED_size_t */ - #undef __need_size_t - #endif /* _STDDEF_H or __need_size_t. */ - -@@ -264,6 +270,7 @@ typedef long ssize_t; - #ifndef ___int_wchar_t_h - #ifndef __INT_WCHAR_T_H - #ifndef _GCC_WCHAR_T -+#ifndef __DEFINED_wchar_t /* musl */ - #define __wchar_t__ /* BeOS */ - #define __WCHAR_T__ /* Cray Unicos/Mk */ - #define _WCHAR_T -@@ -279,6 +286,7 @@ typedef long ssize_t; - #define __INT_WCHAR_T_H - #define _GCC_WCHAR_T - #define _WCHAR_T_DECLARED -+#define __DEFINED_wchar_t /* musl */ - - /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other -@@ -344,6 +352,7 @@ typedef __WCHAR_TYPE__ wchar_t; - #endif - #endif /* __WCHAR_T__ */ - #endif /* __wchar_t__ */ -+#endif /* __DEFINED_wchar_t musl */ - #undef __need_wchar_t - #endif /* _STDDEF_H or __need_wchar_t. */ - --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0038-fix-segmentation-fault-in-precompiled-header-generat.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0038-fix-segmentation-fault-in-precompiled-header-generat.patch deleted file mode 100644 index 224d2ae6..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0038-fix-segmentation-fault-in-precompiled-header-generat.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 00694849632dee23741925c6104df134f6bff747 Mon Sep 17 00:00:00 2001 -From: Juro Bystricky -Date: Mon, 19 Mar 2018 22:31:20 -0700 -Subject: [PATCH 38/39] 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 -CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in -those cases, as is may not be initialized at all. - -[YOCTO #11738] - -Upstream-Status: Pending - -Signed-off-by: Juro Bystricky -Signed-off-by: Khem Raj ---- - libcpp/lex.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/libcpp/lex.c b/libcpp/lex.c -index 37c365a3560..63480048db6 100644 ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -3279,11 +3279,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token, - spell_ident: - case SPELL_IDENT: - if (forstring) -- { -- memcpy (buffer, NODE_NAME (token->val.node.spelling), -- NODE_LEN (token->val.node.spelling)); -- buffer += NODE_LEN (token->val.node.spelling); -- } -+ { -+ if (token->type == CPP_NAME) -+ { -+ memcpy (buffer, NODE_NAME (token->val.node.spelling), -+ NODE_LEN (token->val.node.spelling)); -+ buffer += NODE_LEN (token->val.node.spelling); -+ break; -+ } -+ /* NAMED_OP, cannot use node.spelling */ -+ if (token->flags & NAMED_OP) -+ { -+ const char *str = cpp_named_operator2name (token->type); -+ if (str) -+ { -+ size_t len = strlen(str); -+ memcpy(buffer, str, len); -+ buffer += len; -+ } -+ break; -+ } -+ } - else - buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); - break; --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0039-Fix-for-testsuite-failure.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0039-Fix-for-testsuite-failure.patch deleted file mode 100644 index f3516309..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0039-Fix-for-testsuite-failure.patch +++ /dev/null @@ -1,258 +0,0 @@ -From d151a62c252749643c850a08d1335321e5b75d42 Mon Sep 17 00:00:00 2001 -From: RAGHUNATH LOLUR -Date: Wed, 6 Dec 2017 22:52:26 -0800 -Subject: [PATCH 39/39] Fix for testsuite failure - -2017-11-16 Raghunath Lolur - - * gcc.dg/pr56275.c: If SSE is disabled, ensure that - "-mfpmath" is not set to use SSE. Set "-mfpmath=387". - * gcc.dg/pr68306.c: Likewise - * gcc.dg/pr68306-2.c: Likewise - * gcc.dg/pr68306-3.c: Likewise - * gcc.dg/pr69634.c: Likewise - * gcc.target/i386/amd64-abi-1.c: Likewise - * gcc.target/i386/funcspec-6.c: Likewise - * gcc.target/i386/interrupt-387-err-1.c: Likewise - * gcc.target/i386/isa-14.c: Likewise - * gcc.target/i386/pr44948-2b.c: Likewise - * gcc.target/i386/pr53425-1.c: Likewise - * gcc.target/i386/pr53425-2.c: Likewise - * gcc.target/i386/pr55247.c: Likewise - * gcc.target/i386/pr59644.c: Likewise - * gcc.target/i386/pr62120.c: Likewise - * gcc.target/i386/pr70467-1.c: Likewise - * gcc.target/i386/warn-vect-op-1.c: Likewise - -If -Wall, -Werror are used during compilation various test cases fail -to compile. - -If SSE is disabled, be sure to -mfpmath=387 to resolve this. - -This patch removes the changes to Changelog from the original patch. -This will help us avoid conflicts. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle ---- - gcc/testsuite/gcc.dg/pr56275.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- - gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- - gcc/testsuite/gcc.dg/pr68306.c | 2 +- - gcc/testsuite/gcc.dg/pr69634.c | 2 +- - gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- - gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + - gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- - gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- - gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- - gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- - gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- - gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- - gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- - gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- - gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- - 17 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c -index b901bb2b199..a4f6c95e1a1 100644 ---- a/gcc/testsuite/gcc.dg/pr56275.c -+++ b/gcc/testsuite/gcc.dg/pr56275.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2" } */ --/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ - - typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); - -diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c -index 4672ebe7987..2a368c484b6 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-2.c -+++ b/gcc/testsuite/gcc.dg/pr68306-2.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - struct { - int tz_minuteswest; -diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c -index f5a8c102cf8..df3390c64c2 100644 ---- a/gcc/testsuite/gcc.dg/pr68306-3.c -+++ b/gcc/testsuite/gcc.dg/pr68306-3.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ - - extern void fn2(); -diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c -index 54e5b40f221..0813389e2c1 100644 ---- a/gcc/testsuite/gcc.dg/pr68306.c -+++ b/gcc/testsuite/gcc.dg/pr68306.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O3" } */ --/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - - enum powerpc_pmc_type { PPC_PMC_IBM }; - struct { -diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c -index 60a56149463..bcc23f9ccd6 100644 ---- a/gcc/testsuite/gcc.dg/pr69634.c -+++ b/gcc/testsuite/gcc.dg/pr69634.c -@@ -1,6 +1,6 @@ - /* { dg-do compile } */ - /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ --/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ -+/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ - /* { dg-require-effective-target scheduling } */ - - typedef unsigned short u16; -diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -index 69fde57bf06..7f1f1c03edf 100644 ---- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -+++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ - - double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ -diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c -index ea896b7ebfd..bf15569b826 100644 ---- a/gcc/testsuite/gcc.target/i386/funcspec-6.c -+++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c -@@ -1,6 +1,7 @@ - /* Test whether all of the 64-bit function specific options are accepted - without error. */ - /* { dg-do compile { target { ! ia32 } } } */ -+/* { dg-additional-options "-mfpmath=387" } */ - - #include "funcspec-56.inc" - -diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -index 3fbdc881dda..6b4d9d1252a 100644 ---- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -+++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ -+/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ - - typedef unsigned int uword_t __attribute__ ((mode (__word__))); - -diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c -index 5d49e6e77fe..1de2db92bdd 100644 ---- a/gcc/testsuite/gcc.target/i386/isa-14.c -+++ b/gcc/testsuite/gcc.target/i386/isa-14.c -@@ -1,5 +1,5 @@ - /* { dg-do run } */ --/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ -+/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ - - extern void abort (void); - -diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -index fa1769b62fb..f79fb12726f 100644 ---- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c -+++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ -+/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ - - struct A - { -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c -index 2e89ff7d81d..6339bf6b736 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef double __v2df __attribute__ ((__vector_size__ (16))); -diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c -index 61f6283dbe9..2c5a55f0ac3 100644 ---- a/gcc/testsuite/gcc.target/i386/pr53425-2.c -+++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c -@@ -1,6 +1,6 @@ - /* PR target/53425 */ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ - - typedef float __v2sf __attribute__ ((__vector_size__ (8))); -diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c -index 23366d0909d..9810e3abb76 100644 ---- a/gcc/testsuite/gcc.target/i386/pr55247.c -+++ b/gcc/testsuite/gcc.target/i386/pr55247.c -@@ -1,6 +1,6 @@ - /* { dg-do compile { target { ! ia32 } } } */ - /* { dg-require-effective-target maybe_x32 } */ --/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ -+/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ - - typedef unsigned int uint32_t; - typedef uint32_t Elf32_Word; -diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c -index 96006b3e338..4287e4538bf 100644 ---- a/gcc/testsuite/gcc.target/i386/pr59644.c -+++ b/gcc/testsuite/gcc.target/i386/pr59644.c -@@ -1,6 +1,6 @@ - /* PR target/59644 */ - /* { dg-do run { target lp64 } } */ --/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ -+/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ - - /* 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 ---- a/gcc/testsuite/gcc.target/i386/pr62120.c -+++ b/gcc/testsuite/gcc.target/i386/pr62120.c -@@ -1,5 +1,5 @@ - /* { dg-do compile } */ --/* { dg-options "-mno-sse" } */ -+/* { dg-options "-mno-sse -mfpmath=387" } */ - - void foo () - { -diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c -index 4e112c88d07..bcfb396a68d 100644 ---- a/gcc/testsuite/gcc.target/i386/pr70467-1.c -+++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c -@@ -1,6 +1,6 @@ - /* PR rtl-optimization/70467 */ - /* { dg-do compile } */ --/* { dg-options "-O2 -mno-sse" } */ -+/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ - - void foo (unsigned long long *); - -diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -index 6cda1534311..26e37f5b8ba 100644 ---- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -+++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c -@@ -1,5 +1,5 @@ - /* { dg-do compile { target { ! ia32 } } } */ --/* { dg-options "-mno-sse -Wvector-operation-performance" } */ -+/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ - #define vector(elcount, type) \ - __attribute__((vector_size((elcount)*sizeof(type)))) type - --- -2.17.0 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0040-Re-introduce-spe-commandline-options.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0040-Re-introduce-spe-commandline-options.patch deleted file mode 100644 index 8afa0102..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0040-Re-introduce-spe-commandline-options.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 8fb8f773e117ee70be00bb0da5f343fe110da5c4 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 6 Jun 2018 12:10:22 -0700 -Subject: [PATCH 40/40] Re-introduce spe commandline options - -This should ensure that we keep accepting -spe options - -Upstream-Status: Inappropriate [SPE port is removed from rs600 port] - -Signed-off-by: Khem Raj ---- - gcc/config/rs6000/rs6000.opt | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt -index ace8a477550..d6a8f825d88 100644 ---- a/gcc/config/rs6000/rs6000.opt -+++ b/gcc/config/rs6000/rs6000.opt -@@ -365,6 +365,18 @@ mdebug= - Target RejectNegative Joined - -mdebug= Enable debug output. - -+mspe -+Target Var(rs6000_spe) Save -+Generate SPE SIMD instructions on E500. -+ -+mabi=spe -+Target RejectNegative Var(rs6000_spe_abi) Save -+Use the SPE ABI extensions. -+ -+mabi=no-spe -+Target RejectNegative Var(rs6000_spe_abi, 0) -+Do not use the SPE ABI extensions. -+ - mabi=altivec - Target RejectNegative Var(rs6000_altivec_abi) Save - Use the AltiVec ABI extensions. --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0041-ARC-fix-spec-gen.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0041-ARC-fix-spec-gen.patch deleted file mode 100644 index cbd5e41a..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/0041-ARC-fix-spec-gen.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 892142379c6b99fe8c3ebdfe0b79e2a435228c1d Mon Sep 17 00:00:00 2001 -From: claziss -Date: Mon, 17 Sep 2018 08:52:10 +0000 -Subject: [PATCH] [ARC] Update LINK_EH_SPEC linker spec. - -With no trailing space in LINK_EH_SPEC linker spec gets generated as: ------------------------->8--------------------- -%{!r:--build-id} --eh-frame-hdr%{h*} ... ------------------------->8--------------------- - -or even worse if hash style is added: ------------------------->8--------------------- -%{!r:--build-id} --eh-frame-hdr--hash-style=sysv %{h*} ... ------------------------->8--------------------- - -Now if that spec is really used by LD then it fails inevitably -saying that it doesn't know option "--eh-frame-hdr--hash-style=sysv". - -2018-09-17 Alexey Brodkin - - * config/arc/linux.h (LINK_EH_SPEC): Add missing space. - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264361 138bc75d-0d04-0410-961f-82ee72b054a4 - -Signed-off-by: Alexey Brodkin - -Upstream-Status: Backport[https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=892142379c6b] ---- - gcc/config/arc/linux.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletion(-) - -diff --git a/gcc/config/arc/linux.h b/gcc/config/arc/linux.h -index 96d548eae341..62ebe4de0fc7 100644 ---- a/gcc/config/arc/linux.h -+++ b/gcc/config/arc/linux.h -@@ -98,7 +98,7 @@ along with GCC; see the file COPYING3. If not see - Signalize that because we have fde-glibc, we don't need all C shared libs - linked against -lgcc_s. */ - #undef LINK_EH_SPEC --#define LINK_EH_SPEC "--eh-frame-hdr" -+#define LINK_EH_SPEC "--eh-frame-hdr " - #endif - - #undef SUBTARGET_CPP_SPEC diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/CVE-2019-14250.patch b/external/poky/meta/recipes-devtools/gcc/gcc-8.2/CVE-2019-14250.patch deleted file mode 100644 index e327684e..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-8.2/CVE-2019-14250.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a4f1b58eb48b349a5f353bc69c30be553506d33b Mon Sep 17 00:00:00 2001 -From: rguenth -Date: Thu, 25 Jul 2019 10:48:26 +0000 -Subject: [PATCH] 2019-07-25 Richard Biener - - PR lto/90924 - Backport from mainline - 2019-07-12 Ren Kimura - - * 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 - ---- - 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/external/poky/meta/recipes-devtools/gcc/gcc-9.3.inc b/external/poky/meta/recipes-devtools/gcc/gcc-9.3.inc new file mode 100644 index 00000000..38dee001 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3.inc @@ -0,0 +1,121 @@ +require gcc-common.inc + +# Third digit in PV should be incremented after a minor release + +PV = "9.3.0" + +# BINV should be incremented to a revision after a minor gcc release + +BINV = "9.3.0" + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.3:${FILE_DIRNAME}/gcc-9.3/backport:" + +DEPENDS =+ "mpfr gmp libmpc zlib flex-native" +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" + +LICENSE = "GPL-3.0-with-GCC-exception & GPLv3" + +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \ + file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \ +" + +CVE_CHECK_WHITELIST += "CVE-2019-15847" + +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" +SRC_URI = "\ + ${BASEURI} \ + file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ + file://0002-gcc-poison-system-directories.patch \ + file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \ + file://0004-64-bit-multilib-hack.patch \ + file://0005-optional-libstdc.patch \ + file://0006-COLLECT_GCC_OPTIONS.patch \ + file://0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \ + file://0008-fortran-cross-compile-hack.patch \ + file://0009-cpp-honor-sysroot.patch \ + file://0010-MIPS64-Default-to-N64-ABI.patch \ + file://0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \ + file://0012-gcc-Fix-argument-list-too-long-error.patch \ + file://0013-Disable-sdt.patch \ + file://0014-libtool.patch \ + file://0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \ + file://0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch \ + 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-ldbl128-config.patch \ + file://0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ + file://0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ + file://0033-sync-gcc-stddef.h-with-musl.patch \ + file://0034-fix-segmentation-fault-in-precompiled-header-generat.patch \ + file://0035-Fix-for-testsuite-failure.patch \ + file://0036-Re-introduce-spe-commandline-options.patch \ + file://0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch \ + file://0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ + file://0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch \ +" +S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" +SRC_URI[sha256sum] = "71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1" +# For dev release snapshotting +#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}" +#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}" + +# Language Overrides +FORTRAN = "" +JAVA = "" + +LTO = "--enable-lto" +SSP ?= "--disable-libssp" +SSP_mingw32 = "--enable-libssp" + +EXTRA_OECONF_BASE = "\ + ${LTO} \ + ${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 \ + --with-ppl=no \ + --with-cloog=no \ + --enable-checking=release \ + --enable-cheaders=c_global \ + --without-isl \ +" + +EXTRA_OECONF_INITIAL = "\ + --disable-libmudflap \ + --disable-libgomp \ + --disable-libitm \ + --disable-libquadmath \ + --with-system-zlib \ + --disable-lto \ + --disable-plugin \ + --enable-linker-build-id \ + --enable-decimal-float=no \ + --without-isl \ + --disable-libssp \ +" + +EXTRA_OECONF_PATHS = "\ + --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \ + --with-sysroot=/not/exist \ + --with-build-sysroot=${STAGING_DIR_TARGET} \ +" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..0d9222df --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch @@ -0,0 +1,42 @@ +From 02b1789dbbb184726782b5038a4dd96515ec790c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:37:11 +0400 +Subject: [PATCH 01/39] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index abd93a990a9..b121088d778 100755 +--- a/configure ++++ b/configure +@@ -7603,7 +7603,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +diff --git a/configure.ac b/configure.ac +index 9db4fd14aa2..aad93c4d183 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3119,7 +3119,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0002-gcc-poison-system-directories.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0002-gcc-poison-system-directories.patch new file mode 100644 index 00000000..f427ee67 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0002-gcc-poison-system-directories.patch @@ -0,0 +1,203 @@ +From 5368cd0293ce50a69ced6e4b25ba6c8d8e014256 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:59:00 +0400 +Subject: [PATCH 02/39] 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 +/usr/include, /sw/include and /opt/include and then triggered a failure and +aborted. + +Instead, we add the two missing items to the current scan. If the user +wants this to be a failure, they can add "-Werror=poison-system-directories". + +Signed-off-by: Mark Hatle +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/common.opt | 4 ++++ + gcc/config.in | 6 ++++++ + gcc/configure | 16 ++++++++++++++++ + gcc/configure.ac | 10 ++++++++++ + gcc/doc/invoke.texi | 9 +++++++++ + gcc/gcc.c | 2 ++ + gcc/incpath.c | 21 +++++++++++++++++++++ + 7 files changed, 68 insertions(+) + +diff --git a/gcc/common.opt b/gcc/common.opt +index d342c4f3749..c64fd4a6c50 100644 +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -684,6 +684,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. + ++Wpoison-system-directories ++Common Var(flag_poison_system_directories) Init(1) Warning ++Warn for -I and -L options using system directories if cross compiling ++ + Wshadow + 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 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -200,6 +200,12 @@ + #endif + + ++/* Define to warn for use of native system header directories */ ++#ifndef USED_FOR_TARGET ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++#endif ++ ++ + /* Define if you want all operations on RTL (the basic data structure of the + 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 a065ba23728..2e26dd33310 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -996,6 +996,7 @@ with_system_zlib + enable_maintainer_mode + enable_link_mutex + enable_version_specific_runtime_libs ++enable_poison_system_directories + enable_plugin + enable_host_shared + enable_libquadmath_support +@@ -1749,6 +1750,8 @@ Optional Features: + --enable-version-specific-runtime-libs + specify that runtime libraries should be installed + in a compiler-specific directory ++ --enable-poison-system-directories ++ warn for use of native system header directories + --enable-plugin enable plugin support + --enable-host-shared build host code as shared libraries + --disable-libquadmath-support +@@ -29753,6 +29756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi ++ + # Substitute configuration variables + + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 3a7251102ef..12d1d04e645 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6380,6 +6380,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, + [specify that runtime libraries should be + installed in a compiler-specific directory])]) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system header directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system header directories]) ++fi ++ + # Substitute configuration variables + AC_SUBST(subdirs) + AC_SUBST(srcdir) +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 0ab6c9c6449..c3d3d51a28f 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -333,6 +333,7 @@ Objective-C and Objective-C++ Dialects}. + -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol + -Wparentheses -Wno-pedantic-ms-format @gol + -Wplacement-new -Wplacement-new=@var{n} @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 +@@ -6290,6 +6291,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. + ++@item -Wno-poison-system-directories ++@opindex Wno-poison-system-directories ++Do not warn for @option{-I} or @option{-L} options using system ++directories such as @file{/usr/include} when cross compiling. This ++option is intended for use in chroot environments when such ++directories contain the correct headers and libraries for the target ++system rather than the host. ++ + @item -Wfloat-equal + @opindex Wfloat-equal + @opindex Wno-float-equal +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 4f57765b012..a2601a6bb06 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1042,6 +1042,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}}} \ ++ %{Wno-poison-system-directories:--no-poison-system-directories} \ ++ %{Werror=poison-system-directories:--error-poison-system-directories} \ + %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \ + 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 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -26,6 +26,7 @@ + #include "intl.h" + #include "incpath.h" + #include "cppdefault.h" ++#include "diagnostic-core.h" + + /* Microsoft Windows does not natively support inodes. + VMS has non-numeric inodes. */ +@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) + } + fprintf (stderr, _("End of search list.\n")); + } ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (flag_poison_system_directories) ++ { ++ struct cpp_dir *p; ++ ++ for (p = heads[INC_QUOTE]; p; p = p->next) ++ { ++ if ((!strncmp (p->name, "/usr/include", 12)) ++ || (!strncmp (p->name, "/usr/local/include", 18)) ++ || (!strncmp (p->name, "/usr/X11R6/include", 18)) ++ || (!strncmp (p->name, "/sw/include", 11)) ++ || (!strncmp (p->name, "/opt/include", 12))) ++ warning (OPT_Wpoison_system_directories, ++ "include location \"%s\" is unsafe for " ++ "cross-compilation", ++ p->name); ++ } ++ } ++#endif + } + + /* Use given -I paths for #include "..." but not #include <...>, and +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..23ec5bce --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch @@ -0,0 +1,73 @@ +From df90dbdba7a85c20bad95de71525f0f400a849d2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:08:31 +0400 +Subject: [PATCH 03/39] 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. + +This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET. + +Other changes I had to do include: + +- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though. + +- passing the right CFLAGS to configure scripts as exported environment variables + +I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do. + +Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3? + +Signed-off-by: Paolo Bonzini +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + configure | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +diff --git a/configure b/configure +index b121088d778..93aae5bb26f 100755 +--- a/configure ++++ b/configure +@@ -6864,6 +6864,38 @@ fi + + + ++# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS ++# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS ++# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). ++# We want to ensure that TARGET libraries (which we know are built with ++# gcc) are built with "-O2 -g", so include those options when setting ++# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. ++if test "x$CFLAGS_FOR_TARGET" = x; then ++ CFLAGS_FOR_TARGET=$CFLAGS ++ case " $CFLAGS " in ++ *" -O2 "*) ;; ++ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;; ++ esac ++ case " $CFLAGS " in ++ *" -g "* | *" -g3 "*) ;; ++ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;; ++ esac ++fi ++ ++ ++if test "x$CXXFLAGS_FOR_TARGET" = x; then ++ CXXFLAGS_FOR_TARGET=$CXXFLAGS ++ case " $CXXFLAGS " in ++ *" -O2 "*) ;; ++ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;; ++ esac ++ case " $CXXFLAGS " in ++ *" -g "* | *" -g3 "*) ;; ++ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;; ++ esac ++fi ++ ++ + # 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.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0004-64-bit-multilib-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0004-64-bit-multilib-hack.patch new file mode 100644 index 00000000..17ec8986 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0004-64-bit-multilib-hack.patch @@ -0,0 +1,119 @@ +From 2e00d0a9a809153f693659e977c1e0550665e65c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:10:06 +0400 +Subject: [PATCH 04/39] 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 +complete customisation of the library directories. + +This patch is a partial solution to allow any custom directories to be passed into gcc +and handled correctly. It forces gcc to use the base_libdir (which is the current +directory, "."). We need to do this for each multilib that is configured as we don't +know which compiler options may be being passed into the compiler. Since we have a compiler +per mulitlib at this point that isn't an issue. + +The one problem is the target compiler is only going to work for the default multlilib at +this point. Ideally we'd figure out which multilibs were being enabled with which paths +and be able to patch these entries with a complete set of correct paths but this we +don't have such code at this point. This is something the target gcc recipe should do +and override these platform defaults in its build config. + +Do same for riscv64 and aarch64 + +RP 15/8/11 + +Upstream-Status: Inappropriate[OE-Specific] + +Signed-off-by: Khem Raj +Signed-off-by: Elvis Dowson +Signed-off-by: Mark Hatle +--- + gcc/config/aarch64/t-aarch64-linux | 8 ++++---- + gcc/config/i386/t-linux64 | 6 ++---- + gcc/config/mips/t-linux64 | 10 +++------- + gcc/config/riscv/t-linux | 6 ++++-- + gcc/config/rs6000/t-linux64 | 5 ++--- + 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 +--- a/gcc/config/aarch64/t-aarch64-linux ++++ b/gcc/config/aarch64/t-aarch64-linux +@@ -21,8 +21,8 @@ + LIB1ASMSRC = aarch64/lib1funcs.asm + LIB1ASMFUNCS = _aarch64_sync_cache_range + +-AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) +-MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) ++#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) ++#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) + +-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 +--- a/gcc/config/i386/t-linux64 ++++ b/gcc/config/i386/t-linux64 +@@ -32,7 +32,5 @@ + # + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) +-MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) +-MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++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 +--- a/gcc/config/mips/t-linux64 ++++ b/gcc/config/mips/t-linux64 +@@ -17,10 +17,6 @@ + # . + + MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 +-MULTILIB_DIRNAMES = n32 32 64 +-MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) +-MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) +-MULTILIB_OSDIRNAMES = \ +- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ +- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ +- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++MULTILIB_DIRNAMES = . . . ++MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ++ +diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux +index 216d2776a18..e4d817621fc 100644 +--- a/gcc/config/riscv/t-linux ++++ b/gcc/config/riscv/t-linux +@@ -1,3 +1,5 @@ + # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/ +-MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) +-MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES)) ++#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES))) ++MULTILIB_DIRNAMES := . . ++#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 +--- a/gcc/config/rs6000/t-linux64 ++++ b/gcc/config/rs6000/t-linux64 +@@ -26,10 +26,9 @@ + # MULTILIB_OSDIRNAMES according to what is found on the target. + + MULTILIB_OPTIONS := m64/m32 +-MULTILIB_DIRNAMES := 64 32 ++MULTILIB_DIRNAMES := . . + MULTILIB_EXTRA_OPTS := +-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) +-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) ++MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) + + rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c + $(COMPILE) $< +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0005-optional-libstdc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0005-optional-libstdc.patch new file mode 100644 index 00000000..3c28aeac --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0005-optional-libstdc.patch @@ -0,0 +1,125 @@ +From 435e45592e944018f33bff32f1202b0872a23141 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:12:56 +0400 +Subject: [PATCH 05/39] 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++ +which shouldn't exist yet. We need an option to disable -lstdc++ +option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc +driver. This patch adds such an option which only disables the -lstdc++. + +A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to +do this officially, the likely answer is don't build libstdc++ separately. + +RP 29/6/10 + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + gcc/c-family/c.opt | 4 ++++ + gcc/cp/g++spec.c | 1 + + gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++- + gcc/gcc.c | 1 + + 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 +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -1952,6 +1952,10 @@ nostdinc++ + C++ ObjC++ + Do not search standard system include directories for C++. + ++nostdlib++ ++Driver ++Do not link standard C++ runtime library ++ + o + 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 +--- 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, + switch (decoded_options[i].opt_index) + { + case OPT_nostdlib: ++ case OPT_nostdlib__: + case OPT_nodefaultlibs: + library = -1; + break; +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index c3d3d51a28f..2f7ffe456c3 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -228,6 +228,9 @@ in the following sections. + -fno-weak -nostdinc++ @gol + -fvisibility-inlines-hidden @gol + -fvisibility-ms-compat @gol ++-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol ++-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 +@@ -539,7 +542,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 +--shared -shared-libgcc -symbolic @gol ++-shared -shared-libgcc -symbolic -nostdlib++ @gol + -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol + -u @var{symbol} -z @var{keyword}} + +@@ -13321,6 +13324,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. + ++@item -nostdlib++ ++@opindex nostdlib++ ++Do not use the standard system C++ runtime libraries when linking. ++Only the libraries you specify will be passed to the linker. ++ ++@cindex @option{-lgcc}, use with @option{-nostdlib} ++@cindex @option{-nostdlib} and unresolved references ++@cindex unresolved references and @option{-nostdlib} ++@cindex @option{-lgcc}, use with @option{-nodefaultlibs} ++@cindex @option{-nodefaultlibs} and unresolved references ++@cindex unresolved references and @option{-nodefaultlibs} ++One of the standard libraries bypassed by @option{-nostdlib} and ++@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines ++which GCC uses to overcome shortcomings of particular machines, or special ++needs for some languages. ++(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler ++Collection (GCC) Internals}, ++for more discussion of @file{libgcc.a}.) ++In most cases, you need @file{libgcc.a} even when you want to avoid ++other standard libraries. In other words, when you specify @option{-nostdlib} ++or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well. ++This ensures that you have no unresolved references to internal GCC ++library subroutines. ++(An example of such an internal subroutine is @code{__main}, used to ensure C++ ++constructors are called; @pxref{Collect2,,@code{collect2}, gccint, ++GNU Compiler Collection (GCC) Internals}.) ++ + @item -pie + @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 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1052,6 +1052,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)}}}\ ++ %{!nostdlib++:}\ + %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}" + #endif + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0006-COLLECT_GCC_OPTIONS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0006-COLLECT_GCC_OPTIONS.patch new file mode 100644 index 00000000..906f3a73 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0006-COLLECT_GCC_OPTIONS.patch @@ -0,0 +1,38 @@ +From c99684477ec66f290ec74efe732acd3c24db7dcc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:16:28 +0400 +Subject: [PATCH 06/39] COLLECT_GCC_OPTIONS + +This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to +invoke collect2. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/gcc.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/gcc.c b/gcc/gcc.c +index cd6c6fc95db..7da9c5d457b 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -4804,6 +4804,15 @@ set_collect_gcc_options (void) + sizeof ("COLLECT_GCC_OPTIONS=") - 1); + + first_time = TRUE; ++#ifdef HAVE_LD_SYSROOT ++ if (target_system_root_changed && target_system_root) ++ { ++ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1); ++ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root)); ++ obstack_grow (&collect_obstack, "'", 1); ++ first_time = FALSE; ++ } ++#endif + for (i = 0; (int) i < n_switches; i++) + { + const char *const *args; +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch new file mode 100644 index 00000000..68a876cb --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch @@ -0,0 +1,96 @@ +From d6f4edaab0ad0e742fb1e3a6f76908a2ac9927d5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:17:25 +0400 +Subject: [PATCH 07/39] 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, +gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending + +While compiling gcc-crosssdk-initial-x86_64 on some host, there is +occasionally failure that test the existance of default.h doesn't +work, the reason is tm_include_list='** defaults.h' rather than +tm_include_list='** ./defaults.h' + +So we add the test condition for this situation. +Signed-off-by: Hongxu Jia +--- + gcc/Makefile.in | 2 +- + gcc/configure | 4 ++-- + gcc/configure.ac | 4 ++-- + gcc/mkconfig.sh | 4 ++-- + 4 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index abae872cd63..fef6c4c61e3 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ + TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ + + xmake_file=@xmake_file@ +-tmake_file=@tmake_file@ ++tmake_file=@tmake_file@ ./t-oe + TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@ + TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ + TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ +diff --git a/gcc/configure b/gcc/configure +index 2e26dd33310..ed7931daed3 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12342,8 +12342,8 @@ for f in $tm_file; do + tm_include_list="${tm_include_list} $f" + ;; + defaults.h ) +- tm_file_list="${tm_file_list} \$(srcdir)/$f" +- tm_include_list="${tm_include_list} $f" ++ tm_file_list="${tm_file_list} ./$f" ++ tm_include_list="${tm_include_list} ./$f" + ;; + * ) + tm_file_list="${tm_file_list} \$(srcdir)/config/$f" +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 12d1d04e645..e0500e30d50 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1968,8 +1968,8 @@ for f in $tm_file; do + tm_include_list="${tm_include_list} $f" + ;; + defaults.h ) +- tm_file_list="${tm_file_list} \$(srcdir)/$f" +- tm_include_list="${tm_include_list} $f" ++ tm_file_list="${tm_file_list} ./$f" ++ tm_include_list="${tm_include_list} ./$f" + ;; + * ) + tm_file_list="${tm_file_list} \$(srcdir)/config/$f" +diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh +index 308b87d0cc1..19068cbc24a 100644 +--- a/gcc/mkconfig.sh ++++ b/gcc/mkconfig.sh +@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then + if [ $# -ge 1 ]; then + echo '#ifdef IN_GCC' >> ${output}T + for file in "$@"; do +- if test x"$file" = x"defaults.h"; then ++ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then + postpone_defaults_h="yes" + else + echo "# include \"$file\"" >> ${output}T +@@ -106,7 +106,7 @@ esac + + # If we postponed including defaults.h, add the #include now. + if test x"$postpone_defaults_h" = x"yes"; then +- echo "# include \"defaults.h\"" >> ${output}T ++ echo "# include \"./defaults.h\"" >> ${output}T + fi + + # Add multiple inclusion protection guard, part two. +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0008-fortran-cross-compile-hack.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0008-fortran-cross-compile-hack.patch new file mode 100644 index 00000000..6acd2b0c --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0008-fortran-cross-compile-hack.patch @@ -0,0 +1,46 @@ +From 2c514ada36ffbf70177909f633e9f68811de61e0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:20:01 +0400 +Subject: [PATCH 08/39] 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 +directory. + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [embedded specific] +--- + libgfortran/configure | 2 +- + libgfortran/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libgfortran/configure b/libgfortran/configure +index 60867b93d0e..3fc9fca5b7b 100755 +--- a/libgfortran/configure ++++ b/libgfortran/configure +@@ -13071,7 +13071,7 @@ esac + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + ac_ext=${ac_fc_srcext-f} + 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 +--- a/libgfortran/configure.ac ++++ b/libgfortran/configure.ac +@@ -250,7 +250,7 @@ AC_SUBST(enable_static) + + # We need gfortran to compile parts of the library + #AC_PROG_FC(gfortran) +-FC="$GFORTRAN" ++#FC="$GFORTRAN" + AC_PROG_FC(gfortran) + + # extra LD Flags which are required for targets +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0009-cpp-honor-sysroot.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0009-cpp-honor-sysroot.patch new file mode 100644 index 00000000..5a9e5276 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0009-cpp-honor-sysroot.patch @@ -0,0 +1,54 @@ +From 0a7c03a9cf925ba09a510a32e684f01ec5a50650 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:22:00 +0400 +Subject: [PATCH 09/39] 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 +rather than the --sysroot option specified on the commandline. If access to that directory is +permission denied (unreadable), gcc will error. + +This happens when ccache is in use due to the fact it uses preprocessed source files. + +The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, +-isystem, -isysroot happen and the correct sysroot is used. + +[YOCTO #2074] + +RP 2012/04/13 + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/cp/lang-specs.h | 2 +- + gcc/gcc.c | 2 +- + 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 +--- 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 + {".ii", "@c++-cpp-output", 0, 0, 0}, + {"@c++-cpp-output", + "%{!E:%{!M:%{!MM:" +- " cc1plus -fpreprocessed %i %(cc1_options) %2" ++ " 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 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1349,7 +1349,7 @@ static const struct compiler default_compilers[] = + %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, + {".i", "@cpp-output", 0, 0, 0}, + {"@cpp-output", +- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, ++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {".s", "@assembler", 0, 0, 0}, + {"@assembler", + "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0010-MIPS64-Default-to-N64-ABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0010-MIPS64-Default-to-N64-ABI.patch new file mode 100644 index 00000000..a8103b95 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0010-MIPS64-Default-to-N64-ABI.patch @@ -0,0 +1,57 @@ +From 374aab6a88200fbd7343467d97f7ee6455bbce61 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:23:08 +0400 +Subject: [PATCH 10/39] MIPS64: Default to N64 ABI + +MIPS64 defaults to n32 ABI, this patch makes it +so that it defaults to N64 ABI + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [OE config specific] +--- + gcc/config.gcc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/gcc/config.gcc b/gcc/config.gcc +index b2282ecdf0b..69c0e4a005b 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2282,29 +2282,29 @@ mips*-*-linux*) # Linux MIPS, either endian. + default_mips_arch=mips32 + ;; + mips64el-st-linux-gnu) +- default_mips_abi=n32 ++ default_mips_abi=64 + tm_file="${tm_file} mips/st.h" + tmake_file="${tmake_file} mips/t-st" + enable_mips_multilibs="yes" + ;; + mips64octeon*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" + target_cpu_default=MASK_SOFT_FLOAT_ABI + enable_mips_multilibs="yes" + ;; + mipsisa64r6*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + default_mips_arch=mips64r6 + enable_mips_multilibs="yes" + ;; + mipsisa64r2*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + default_mips_arch=mips64r2 + enable_mips_multilibs="yes" + ;; + mips64*-*-linux* | mipsisa64*-*-linux*) +- default_mips_abi=n32 ++ default_mips_abi=64 + enable_mips_multilibs="yes" + ;; + esac +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch new file mode 100644 index 00000000..d9d563d0 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch @@ -0,0 +1,246 @@ +From dcd7891d6aea5327969132fea6ca4c199f14e985 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:24:50 +0400 +Subject: [PATCH 11/39] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER + relative to SYSTEMLIBS_DIR + +This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER +relative to SYSTEMLIBS_DIR which can be set in generated headers +This breaks the assumption of hardcoded multilib in gcc +Change is only for the supported architectures in OE including +SH, sparc, alpha for possible future support (if any) + +Removes the do_headerfix task in metadata + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [OE configuration] +--- + gcc/config/alpha/linux-elf.h | 4 ++-- + gcc/config/arm/linux-eabi.h | 4 ++-- + gcc/config/arm/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 6 +++--- + gcc/config/linux.h | 8 ++++---- + gcc/config/mips/linux.h | 12 ++++++------ + gcc/config/riscv/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 15 +++++---------- + gcc/config/sh/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + gcc/config/sparc/linux64.h | 4 ++-- + 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 +--- 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 + #define EXTRA_SPECS \ + { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" +-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" ++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" + #if DEFAULT_LIBC == LIBC_UCLIBC + #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 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -65,8 +65,8 @@ + GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ + + #undef GLIBC_DYNAMIC_LINKER +-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3" +-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3" ++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3" ++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3" + #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT + + #define GLIBC_DYNAMIC_LINKER \ +diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h +index 9a360defd21..98f6e960b64 100644 +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -60,7 +60,7 @@ + + #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #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 +--- 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 + . */ + + #define GNU_USER_LINK_EMULATION "elf_i386" +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #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 +--- 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 + #define GNU_USER_LINK_EMULATION64 "elf_x86_64" + #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" +-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2" + + #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 +--- 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 + GLIBC_DYNAMIC_LINKER must be defined for each target using them, or + GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets + supporting both 32-bit and 64-bit compilation. */ +-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" +-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0" ++#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0" + #define BIONIC_DYNAMIC_LINKER "/system/bin/linker" + #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 +--- 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 + #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32" + + #define GLIBC_DYNAMIC_LINKER32 \ +- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + #define GLIBC_DYNAMIC_LINKER64 \ +- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + #define GLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}" + + #undef UCLIBC_DYNAMIC_LINKER32 + #define UCLIBC_DYNAMIC_LINKER32 \ +- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" + #undef UCLIBC_DYNAMIC_LINKER64 + #define UCLIBC_DYNAMIC_LINKER64 \ +- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}" + #define UCLIBC_DYNAMIC_LINKERN32 \ +- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" ++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}" + + #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 +--- 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 + GNU_USER_TARGET_OS_CPP_BUILTINS(); \ + } while (0) + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1" + + #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 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -423,24 +423,19 @@ extern int dot_symbols; + #undef LINK_OS_DEFAULT_SPEC + #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" + +-#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1" +- ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1" + #ifdef LINUX64_DEFAULT_ABI_ELFv2 +-#define GLIBC_DYNAMIC_LINKER64 \ +-"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \ +-":%(dynamic_linker_prefix)/lib64/ld64.so.2}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}" + #else +-#define GLIBC_DYNAMIC_LINKER64 \ +-"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \ +-":%(dynamic_linker_prefix)/lib64/ld64.so.1}" ++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}" + #endif + + #undef MUSL_DYNAMIC_LINKER32 + #define MUSL_DYNAMIC_LINKER32 \ +- "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" ++ SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" + #undef MUSL_DYNAMIC_LINKER64 + #define MUSL_DYNAMIC_LINKER64 \ +- "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" ++ SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" + + #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 +--- 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 + "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ + "%{mfdpic:-fdpic}.so.1" + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #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 +--- 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); + When the -shared link option is used a final link is not being + done. */ + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2" + + #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 +--- 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 + When the -shared link option is used a final link is not being + done. */ + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2" + + #ifdef SPARC_BI_ARCH + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0012-gcc-Fix-argument-list-too-long-error.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0012-gcc-Fix-argument-list-too-long-error.patch new file mode 100644 index 00000000..9d988780 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0012-gcc-Fix-argument-list-too-long-error.patch @@ -0,0 +1,40 @@ +From faa0f712a67005ef0260f95eebe7c7c57a6f8360 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:26:37 +0400 +Subject: [PATCH 12/39] 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: + +headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` + +The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle +it, use the $(sort list) of GNU make which can handle the too long list +would fix the problem, the header would be short enough after sorted. +The "tr ' ' '\012'" was used for translating the space to "\n", the +$(sort list) doesn't need this. + +Signed-off-by: Robert Yang +Signed-off-by: Khem Raj + +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 fef6c4c61e3..57cf7804f0a 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3538,7 +3538,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))"; \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ + for file in $$headers; do \ + if [ -f $$file ] ; then \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0013-Disable-sdt.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0013-Disable-sdt.patch new file mode 100644 index 00000000..45585835 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0013-Disable-sdt.patch @@ -0,0 +1,113 @@ +From 4df5a747265983092afd6fbc5329dd808cc1da3c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:28:10 +0400 +Subject: [PATCH 13/39] 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 +sdt.h usage always. This avoids build failures if the header is removed after configure +but before libgcc is compiled for example. + +RP 2012/8/7 + +Signed-off-by: Khem Raj + +Disable sdt for libstdc++-v3. + +Signed-off-by: Robert Yang + +Upstream-Status: Inappropriate [hack] +--- + gcc/configure | 12 ++++++------ + gcc/configure.ac | 18 +++++++++--------- + libstdc++-v3/configure | 6 +++--- + libstdc++-v3/configure.ac | 2 +- + 4 files changed, 19 insertions(+), 19 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index ed7931daed3..52f52b0ec86 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29333,12 +29333,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 +-if test -f $target_header_dir/sys/sdt.h; then +- have_sys_sdt_h=yes +- +-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h +- +-fi ++#if test -f $target_header_dir/sys/sdt.h; then ++# have_sys_sdt_h=yes ++# ++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h ++# ++#fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5 + $as_echo "$have_sys_sdt_h" >&6; } + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index e0500e30d50..242ad28ec83 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -5995,15 +5995,15 @@ fi + AC_SUBST([enable_default_ssp]) + + # Test for on the target. +-GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) +-AC_MSG_CHECKING(sys/sdt.h in the target C library) +-have_sys_sdt_h=no +-if test -f $target_header_dir/sys/sdt.h; then +- have_sys_sdt_h=yes +- AC_DEFINE(HAVE_SYS_SDT_H, 1, +- [Define if your target C library provides sys/sdt.h]) +-fi +-AC_MSG_RESULT($have_sys_sdt_h) ++#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) ++#AC_MSG_CHECKING(sys/sdt.h in the target C library) ++#have_sys_sdt_h=no ++#if test -f $target_header_dir/sys/sdt.h; then ++# have_sys_sdt_h=yes ++# AC_DEFINE(HAVE_SYS_SDT_H, 1, ++# [Define if your target C library provides sys/sdt.h]) ++#fi ++#AC_MSG_RESULT($have_sys_sdt_h) + + # 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 1225edc596b..3b89b880fc8 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -22325,11 +22325,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 + +- if test $glibcxx_cv_sys_sdt_h = yes; then ++# if test $glibcxx_cv_sys_sdt_h = yes; then + +-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h ++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h + +- fi ++# fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5 + $as_echo "$glibcxx_cv_sys_sdt_h" >&6; } + +diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac +index d8455e41574..844cf1acbce 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -232,7 +232,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN + GLIBCXX_CHECK_SC_NPROC_ONLN + GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP + GLIBCXX_CHECK_SYSCTL_HW_NCPU +-GLIBCXX_CHECK_SDT_H ++#GLIBCXX_CHECK_SDT_H + + # Check for available headers. + AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0014-libtool.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0014-libtool.patch new file mode 100644 index 00000000..29538592 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0014-libtool.patch @@ -0,0 +1,42 @@ +From 34977d994666a90983c96a9240dfa3540562da35 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:29:11 +0400 +Subject: [PATCH 14/39] libtool + +libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 +when running on am x86_64 build host. + +This patch stops this speading to libdir in the libstdc++.la file within libtool. +Arguably, it shouldn't be passing this into libtool in the first place but +for now this resolves the nastiest problems this causes. + +func_normal_abspath would resolve an empty path to `pwd` so we need +to filter the zero case. + +RP 2012/8/24 + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + ltmain.sh | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ltmain.sh b/ltmain.sh +index 79f9ba89af5..8e222f7c16b 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -6359,6 +6359,10 @@ func_mode_link () + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" ++ if test -n "$install_libdir"; then ++ func_normal_abspath "$install_libdir" ++ install_libdir=$func_normal_abspath_result ++ fi + + oldlibs= + if test -z "$rpath"; then +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch new file mode 100644 index 00000000..d4445244 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch @@ -0,0 +1,43 @@ +From 4558ba7fa020c111f9a204021a418c0ce55d77f9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:30:32 +0400 +Subject: [PATCH 15/39] 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 +the option is not passed to linker when chosing march=armv4 +This patch redefines this in linux-eabi.h and reinserts it +for eabi defaulting toolchains. + +We might want to send it upstream. + +Signed-off-by: Khem Raj + +Upstream-Status: Pending +--- + gcc/config/arm/linux-eabi.h | 6 +++++- + 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 +--- 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" + ++/* For armv4 we pass --fix-v4bx to linker to support EABI */ ++#undef TARGET_FIX_V4BX_SPEC ++#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}" ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC +-#define LINK_SPEC EABI_LINK_SPEC \ ++#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \ + LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ + LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch new file mode 100644 index 00000000..6f0833cc --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch @@ -0,0 +1,102 @@ +From 7effc632d65c2d72bf6fa32a219ec2f82fef9405 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:33:04 +0400 +Subject: [PATCH 16/39] 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, +gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build. + +Signed-off-by: Khem Raj +Signed-off-by: Constantin Musca + +Upstream-Status: Inappropriate [configuration] +--- + gcc/configure | 22 ++++++++++++++++++---- + gcc/configure.ac | 22 ++++++++++++++++++---- + 2 files changed, 36 insertions(+), 8 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index 52f52b0ec86..a5f208af7cf 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12322,10 +12322,20 @@ done + tmake_file_= + for f in ${tmake_file} + do +- if test -f ${srcdir}/config/$f +- then +- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" +- fi ++ case $f in ++ */t-linux64 ) ++ if test -f ./config/$f ++ then ++ tmake_file_="${tmake_file_} ./config/$f" ++ fi ++ ;; ++ * ) ++ if test -f ${srcdir}/config/$f ++ then ++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" ++ fi ++ ;; ++ esac + done + tmake_file="${tmake_file_}" + +@@ -12336,6 +12346,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */linux64.h ) ++ tm_file_list="${tm_file_list} ./config/$f" ++ tm_include_list="${tm_include_list} ./config/$f" ++ ;; + ./* ) + f=`echo $f | sed 's/^..//'` + tm_file_list="${tm_file_list} $f" +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 242ad28ec83..b7a7ead1c02 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1948,10 +1948,20 @@ done + tmake_file_= + for f in ${tmake_file} + do +- if test -f ${srcdir}/config/$f +- then +- tmake_file_="${tmake_file_} \$(srcdir)/config/$f" +- fi ++ case $f in ++ */t-linux64 ) ++ if test -f ./config/$f ++ then ++ tmake_file_="${tmake_file_} ./config/$f" ++ fi ++ ;; ++ * ) ++ if test -f ${srcdir}/config/$f ++ then ++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f" ++ fi ++ ;; ++ esac + done + tmake_file="${tmake_file_}" + +@@ -1962,6 +1972,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */linux64.h ) ++ tm_file_list="${tm_file_list} ./config/$f" ++ tm_include_list="${tm_include_list} ./config/$f" ++ ;; + ./* ) + f=`echo $f | sed 's/^..//'` + tm_file_list="${tm_file_list} $f" +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch new file mode 100644 index 00000000..96da013b --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch @@ -0,0 +1,31 @@ +From a2b2bf77621f344a849e55ab179ece8587d19234 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:39:38 +0000 +Subject: [PATCH 17/39] Avoid using libdir from .la which usually points to a + host path + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Jonathan Liu +Signed-off-by: Khem Raj +--- + ltmain.sh | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/ltmain.sh b/ltmain.sh +index 8e222f7c16b..0a93b4e5c3b 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -5628,6 +5628,9 @@ func_mode_link () + absdir="$abs_ladir" + libdir="$abs_ladir" + else ++ # Instead of using libdir from .la which usually points to a host path, ++ # use the path the .la is contained in. ++ libdir="$abs_ladir" + dir="$libdir" + absdir="$libdir" + fi +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0018-export-CPP.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0018-export-CPP.patch new file mode 100644 index 00000000..2385099c --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0018-export-CPP.patch @@ -0,0 +1,53 @@ +From cafb6a621c05c1f238679d52fc026446f38c8af5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:40:59 +0000 +Subject: [PATCH 18/39] 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 +in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log: + +configure:3641: checking for _FILE_OFFSET_BITS value needed for large files +configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5 +configure:3666: $? = 0 +configure:3698: result: no +configure:3786: checking how to run the C preprocessor +configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 +configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c +configure:3876: $? = 0 + +Note this is a *build* target (in build-x86_64-linux) so it should be +using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 +headers are very different, using the wrong cpp is a real problem. It is leaking +into configure through the CPP variable. Ultimately this leads to build +failures related to not being able to include a process.h file for pem-unix.c. + +The fix is to ensure we export a sane CPP value into the build +environment when using build targets. We could define a CPP_FOR_BUILD value which may be +the version which needs to be upstreamed but for now, this fix is good enough to +avoid the problem. + +RP 22/08/2013 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + Makefile.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.in b/Makefile.in +index 64e091ba71d..255822e3f27 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -149,6 +149,7 @@ BUILD_EXPORTS = \ + AR="$(AR_FOR_BUILD)"; export AR; \ + AS="$(AS_FOR_BUILD)"; export AS; \ + CC="$(CC_FOR_BUILD)"; export CC; \ ++ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0019-Ensure-target-gcc-headers-can-be-included.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0019-Ensure-target-gcc-headers-can-be-included.patch new file mode 100644 index 00000000..e0129d1f --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0019-Ensure-target-gcc-headers-can-be-included.patch @@ -0,0 +1,60 @@ +From 182057b80891edc0e8d46835e2d8bfd28330a55a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 10:25:11 +0000 +Subject: [PATCH 19/39] 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 +built for the target architecture, these are within the target +sysroot and not cross/nativesdk; thus they weren't able to be +found by gcc with the existing search paths. Add support for +picking up these headers under the sysroot supplied on the gcc +command line in order to resolve this. + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton +Signed-off-by: Khem Raj +--- + gcc/Makefile.in | 2 ++ + gcc/cppdefault.c | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 57cf7804f0a..7772342ad5e 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -618,6 +618,7 @@ libexecdir = @libexecdir@ + + # Directory in which the compiler finds libraries etc. + libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libsubdir_target = $(target_noncanonical)/$(version) + # 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 +@@ -2867,6 +2868,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" + + PREPROCESSOR_DEFINES = \ + -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ ++ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \ + -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 c4796385643..980e2bd47a7 100644 +--- a/gcc/cppdefault.c ++++ b/gcc/cppdefault.c +@@ -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 ++#ifdef GCC_INCLUDE_SUBDIR_TARGET ++ /* This is the dir for gcc's private headers under the specified sysroot. */ ++ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, ++#endif + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch new file mode 100644 index 00000000..1d218214 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch @@ -0,0 +1,54 @@ +From a4740f1290e6a602fbbfa27b863be2e3b2675685 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 11:17:19 +0000 +Subject: [PATCH 20/39] 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 +--- + 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.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch new file mode 100644 index 00000000..e363c7d4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch @@ -0,0 +1,38 @@ +From f3edad81d80dde5d64bf77e6abafda54db10b824 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 3 Mar 2015 08:21:19 +0000 +Subject: [PATCH 21/39] Don't search host directory during "relink" if + $inst_prefix is provided + +http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html + +Upstream-Status: Submitted + +Signed-off-by: Khem Raj +--- + ltmain.sh | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/ltmain.sh b/ltmain.sh +index 0a93b4e5c3b..6de6ed2f9a0 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -6004,12 +6004,13 @@ func_mode_link () + fi + else + # We cannot seem to hardcode it, guess we'll fake it. ++ # Default if $libdir is not relative to the prefix: + add_dir="-L$libdir" +- # Try looking first in the location we're being installed to. ++ + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) +- add_dir="$add_dir -L$inst_prefix_dir$libdir" ++ add_dir="-L$inst_prefix_dir$libdir" + ;; + esac + fi +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch new file mode 100644 index 00000000..846c0de5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch @@ -0,0 +1,29 @@ +From b8ea2c2c7d33376f5dd651646c7e822000e47749 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:15:27 -0700 +Subject: [PATCH 22/39] Use SYSTEMLIBS_DIR replacement instead of hardcoding + base_libdir + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/aarch64/aarch64-linux.h | 2 +- + 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 +--- a/gcc/config/aarch64/aarch64-linux.h ++++ b/gcc/config/aarch64/aarch64-linux.h +@@ -21,7 +21,7 @@ + #ifndef GCC_AARCH64_LINUX_H + #define GCC_AARCH64_LINUX_H + +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef MUSL_DYNAMIC_LINKER + #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0023-aarch64-Add-support-for-musl-ldso.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0023-aarch64-Add-support-for-musl-ldso.patch new file mode 100644 index 00000000..102d6fc7 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0023-aarch64-Add-support-for-musl-ldso.patch @@ -0,0 +1,28 @@ +From 8645b57e7c0dfd93afee5caeaa534c714f449ba1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:18:39 -0700 +Subject: [PATCH 23/39] aarch64: Add support for musl ldso + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/aarch64/aarch64-linux.h | 2 +- + 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 +--- a/gcc/config/aarch64/aarch64-linux.h ++++ b/gcc/config/aarch64/aarch64-linux.h +@@ -24,7 +24,7 @@ + #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef MUSL_DYNAMIC_LINKER +-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" ++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" + + #undef ASAN_CC1_SPEC + #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch new file mode 100644 index 00000000..443e0a2c --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch @@ -0,0 +1,54 @@ +From b1666565e4e133ee41f32fa8032165bcb06afe9a Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sun, 5 Jul 2015 20:25:18 -0700 +Subject: [PATCH 24/39] libcc1: fix libcc1's install path and rpath + +* Install libcc1.so and libcc1plugin.so into + $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we + had done to lto-plugin. +* Fix bad RPATH iussue: + gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file + /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0 + [rpaths] + +Upstream-Status: Inappropriate [OE configuration] + +Signed-off-by: Robert Yang +--- + libcc1/Makefile.am | 4 ++-- + libcc1/Makefile.in | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am +index 72c6aead475..42a87740b31 100644 +--- a/libcc1/Makefile.am ++++ b/libcc1/Makefile.am +@@ -37,8 +37,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ + $(Wc)$(libiberty_normal))) + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) + +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin +-cc1libdir = $(libdir)/$(libsuffix) ++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++plugindir = $(cc1libdir) + + if ENABLE_PLUGIN + plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la +diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in +index 7104b649026..2103c477468 100644 +--- a/libcc1/Makefile.in ++++ b/libcc1/Makefile.in +@@ -393,8 +393,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ + $(Wc)$(libiberty_normal))) + + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin +-cc1libdir = $(libdir)/$(libsuffix) ++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++plugindir = $(cc1libdir) + @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.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0025-handle-sysroot-support-for-nativesdk-gcc.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0025-handle-sysroot-support-for-nativesdk-gcc.patch new file mode 100644 index 00000000..59ac97ea --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0025-handle-sysroot-support-for-nativesdk-gcc.patch @@ -0,0 +1,346 @@ +From 7d614a84709d7dc4a2529c3d529e2da8541f9fd4 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:39:54 +0000 +Subject: [PATCH 25/39] 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 +bit compiler is needed). + +Sadly, building nativesdk-gcc is not straight forward. We install +nativesdk-gcc into a relocatable location and this means that its +library locations can change. "Normal" sysroot support doesn't help +in this case since the values of paths like "libdir" change, not just +base root directory of the system. + +In order to handle this we do two things: + +a) Add %r into spec file markup which can be used for injected paths + such as SYSTEMLIBS_DIR (see gcc_multilib_setup()). +b) Add other paths which need relocation into a .gccrelocprefix section + which the relocation code will notice and adjust automatically. + +Upstream-Status: Inappropriate +RP 2015/7/28 + +Signed-off-by: Khem Raj + +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 +--- + c-family/c-opts.c | 4 +-- + cppdefault.c | 63 +++++++++++++++++++++++++++++++++--------------------- + cppdefault.h | 13 ++++------- + gcc.c | 20 ++++++++++++----- + incpath.c | 12 +++++----- + prefix.c | 4 +-- + 6 files changed, 68 insertions(+), 48 deletions(-) + +Index: gcc-9.3.0/gcc/cppdefault.c +=================================================================== +--- gcc-9.3.0.orig/gcc/cppdefault.c ++++ gcc-9.3.0/gcc/cppdefault.c +@@ -35,6 +35,30 @@ + # undef CROSS_INCLUDE_DIR + #endif + ++static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_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; ++#ifdef LOCAL_INCLUDE_DIR ++static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR; ++#endif ++#ifdef PREFIX_INCLUDE_DIR ++static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR; ++#endif ++#ifdef FIXED_INCLUDE_DIR ++static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR; ++#endif ++#ifdef CROSS_INCLUDE_DIR ++static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR; ++#endif ++#ifdef TOOL_INCLUDE_DIR ++static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR; ++#endif ++#ifdef NATIVE_SYSTEM_HEADER_DIR ++static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR; ++#endif ++ + const struct default_include cpp_include_defaults[] + #ifdef INCLUDE_DEFAULTS + = INCLUDE_DEFAULTS; +@@ -42,38 +66,38 @@ const struct default_include cpp_include + = { + #ifdef GPLUSPLUS_INCLUDE_DIR + /* Pick up GNU C++ generic include files. */ +- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, + #endif + #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR + /* Pick up GNU C++ target-dependent include files. */ +- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, + #endif + #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR + /* Pick up GNU C++ backward and deprecated include files. */ +- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, ++ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, + #endif + #ifdef GCC_INCLUDE_DIR + /* This is the dir for gcc's private headers. */ +- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, ++ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, + #endif + #ifdef GCC_INCLUDE_SUBDIR_TARGET + /* This is the dir for gcc's private headers under the specified sysroot. */ +- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 }, ++ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 }, + #endif + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ +- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, +- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, ++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 }, ++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 }, + #endif + #ifdef PREFIX_INCLUDE_DIR +- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, ++ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 }, + #endif + #ifdef FIXED_INCLUDE_DIR + /* This is the dir for fixincludes. */ +- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, ++ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0, + /* A multilib suffix needs adding if different multilibs use + different headers. */ + #ifdef SYSROOT_HEADERS_SUFFIX_SPEC +@@ -85,33 +109,24 @@ const struct default_include cpp_include + #endif + #ifdef CROSS_INCLUDE_DIR + /* One place the target system's headers might be. */ +- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, ++ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 }, + #endif + #ifdef TOOL_INCLUDE_DIR + /* Another place the target system's headers might be. */ +- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, ++ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 }, + #endif + #ifdef NATIVE_SYSTEM_HEADER_DIR + /* /usr/include comes dead last. */ +- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, +- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, ++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, ++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, + #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; +Index: gcc-9.3.0/gcc/cppdefault.h +=================================================================== +--- gcc-9.3.0.orig/gcc/cppdefault.h ++++ gcc-9.3.0/gcc/cppdefault.h +@@ -33,7 +33,8 @@ + + struct default_include + { +- const char *const fname; /* The name of the directory. */ ++ const char *fname; /* The name of the directory. */ ++ + 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; +Index: gcc-9.3.0/gcc/gcc.c +=================================================================== +--- gcc-9.3.0.orig/gcc/gcc.c ++++ gcc-9.3.0/gcc/gcc.c +@@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL; + #endif + static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; + ++static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR; ++ + /* Nonzero means pass the updated target_system_root to the compiler. */ + + static int target_system_root_changed; +@@ -527,6 +529,7 @@ or with constant text in a single argume + %G process LIBGCC_SPEC as a spec. + %R Output the concatenation of target_system_root and + target_sysroot_suffix. ++ %r Output the base path target_relocatable_prefix + %S process STARTFILE_SPEC as a spec. A capital S is actually used here. + %E process ENDFILE_SPEC as a spec. A capital E is actually used here. + %C process CPP_SPEC as a spec. +@@ -1500,10 +1503,10 @@ static const char *gcc_libexec_prefix; + 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. */ +-static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX; +-static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX; +-static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX; +-static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; ++static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; ++static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX; ++static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX; ++static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; + + /* For native compilers, these are well-known paths containing + components that may be provided by the system. For cross +@@ -1511,9 +1514,9 @@ static const char *const standard_startf + 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; +-static const char *const standard_startfile_prefix_1 ++static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix"))) + = STANDARD_STARTFILE_PREFIX_1; +-static const char *const standard_startfile_prefix_2 ++static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix"))) + = STANDARD_STARTFILE_PREFIX_2; + + /* A relative path to be used in finding the location of tools +@@ -5922,6 +5925,11 @@ do_spec_1 (const char *spec, int inswitc + } + break; + ++ case 'r': ++ obstack_grow (&obstack, target_relocatable_prefix, ++ strlen (target_relocatable_prefix)); ++ break; ++ + case 'S': + value = do_spec_1 (startfile_spec, 0, NULL); + if (value != 0) +Index: gcc-9.3.0/gcc/c-family/c-opts.c +=================================================================== +--- gcc-9.3.0.orig/gcc/c-family/c-opts.c ++++ gcc-9.3.0/gcc/c-family/c-opts.c +@@ -1382,8 +1382,8 @@ add_prefixed_path (const char *suffix, i + size_t prefix_len, suffix_len; + + suffix_len = strlen (suffix); +- prefix = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR; +- prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len; ++ prefix = iprefix ? iprefix : GCC_INCLUDE_DIRVAR; ++ prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7; + + path = (char *) xmalloc (prefix_len + suffix_len + 1); + memcpy (path, prefix, prefix_len); +Index: gcc-9.3.0/gcc/incpath.c +=================================================================== +--- gcc-9.3.0.orig/gcc/incpath.c ++++ gcc-9.3.0/gcc/incpath.c +@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot, + 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, + 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, + 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, + 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); +Index: gcc-9.3.0/gcc/prefix.c +=================================================================== +--- gcc-9.3.0.orig/gcc/prefix.c ++++ gcc-9.3.0/gcc/prefix.c +@@ -72,7 +72,9 @@ License along with GCC; see the file COP + #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/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch new file mode 100644 index 00000000..abfa7516 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch @@ -0,0 +1,102 @@ +From 6c39a22c3e85d20dee9e2fc2274e95da980de4d0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:41:45 +0000 +Subject: [PATCH 26/39] Search target sysroot gcc version specific dirs with + multilib. + +We install the gcc libraries (such as crtbegin.p) into +//5.2.0/ +which is a default search path for GCC (aka multi_suffix in the +code below). is 'machine' in gcc's terminology. We use +these directories so that multiple gcc versions could in theory +co-exist on target. + +We only want to build one gcc-cross-canadian per arch and have this work +for all multilibs. can be handled by mapping the multilib + to the one used by gcc-cross-canadian, e.g. +mips64-polkmllib32-linux +is symlinked to by mips64-poky-linux. + +The default gcc search path in the target sysroot for a "lib64" mutlilib +is: + +/lib32/mips64-poky-linux/5.2.0/ +/lib32/../lib64/ +/usr/lib32/mips64-poky-linux/5.2.0/ +/usr/lib32/../lib64/ +/lib32/ +/usr/lib32/ + +which means that the lib32 crtbegin.o will be found and the lib64 ones +will not which leads to compiler failures. + +This patch injects a multilib version of that path first so the lib64 +binaries can be found first. With this change the search path becomes: + +/lib32/../lib64/mips64-poky-linux/5.2.0/ +/lib32/mips64-poky-linux/5.2.0/ +/lib32/../lib64/ +/usr/lib32/../lib64/mips64-poky-linux/5.2.0/ +/usr/lib32/mips64-poky-linux/5.2.0/ +/usr/lib32/../lib64/ +/lib32/ +/usr/lib32/ + +Upstream-Status: Pending +RP 2015/7/31 + +Signed-off-by: Khem Raj +--- + gcc/gcc.c | 29 ++++++++++++++++++++++++++++- + 1 file changed, 28 insertions(+), 1 deletion(-) + +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 59fb64f5fd5..3e79da4238c 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -2617,7 +2617,7 @@ for_each_path (const struct path_prefix *paths, + if (path == NULL) + { + len = paths->max_len + extra_space + 1; +- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len); ++ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len); + path = XNEWVEC (char, len); + } + +@@ -2629,6 +2629,33 @@ for_each_path (const struct path_prefix *paths, + /* Look first in MACHINE/VERSION subdirectory. */ + if (!skip_multi_dir) + { ++ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir)) ++ { ++ const char *this_multi; ++ size_t this_multi_len; ++ ++ if (pl->os_multilib) ++ { ++ this_multi = multi_os_dir; ++ this_multi_len = multi_os_dir_len; ++ } ++ else ++ { ++ this_multi = multi_dir; ++ this_multi_len = multi_dir_len; ++ } ++ ++ /* Look in multilib MACHINE/VERSION subdirectory first */ ++ if (this_multi_len) ++ { ++ memcpy (path + len, this_multi, this_multi_len + 1); ++ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1); ++ ret = callback (path, callback_info); ++ if (ret) ++ break; ++ } ++ } ++ + memcpy (path + len, multi_suffix, suffix_len + 1); + ret = callback (path, callback_info); + if (ret) +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0027-Fix-various-_FOR_BUILD-and-related-variables.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0027-Fix-various-_FOR_BUILD-and-related-variables.patch new file mode 100644 index 00000000..ae8acc7f --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0027-Fix-various-_FOR_BUILD-and-related-variables.patch @@ -0,0 +1,137 @@ +From 07db34b16b6c8e3d948b417f2fc052500ffb77d3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:42:45 +0000 +Subject: [PATCH 27/39] 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 +CXXFLAGS with CXXFLAGS_FOR_BUILD. +Without this, when building for mingw, you end up trying to use +the mingw headers for a host build. + +The same goes for other variables as well, such as CPPFLAGS, +CPP, and GMPINC. + +Upstream-Status: Pending + +Signed-off-by: Peter Seebach +Signed-off-by: Mark Hatle +Signed-off-by: Khem Raj +--- + Makefile.in | 6 ++++++ + Makefile.tpl | 5 +++++ + gcc/Makefile.in | 2 +- + gcc/configure | 2 +- + gcc/configure.ac | 2 +- + 5 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 255822e3f27..9dc0dff0474 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -152,6 +152,7 @@ BUILD_EXPORTS = \ + CPP="$(CC_FOR_BUILD) -E"; export CPP; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ +@@ -171,6 +172,9 @@ BUILD_EXPORTS = \ + # built for the build system to override those in BASE_FLAGS_TO_PASS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ ++ CPP="$(CC_FOR_BUILD) -E" \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. +@@ -188,6 +192,7 @@ HOST_SUBDIR = @host_subdir@ + HOST_EXPORTS = \ + $(BASE_EXPORTS) \ + CC="$(CC)"; export CC; \ ++ CPP="$(CC) -E"; export CPP; \ + 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 = \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ ++ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ + "EXPECT=$(EXPECT)" \ + "FLEX=$(FLEX)" \ + "INSTALL=$(INSTALL)" \ +diff --git a/Makefile.tpl b/Makefile.tpl +index 41cae58a267..d3f6b79acdc 100644 +--- a/Makefile.tpl ++++ b/Makefile.tpl +@@ -154,6 +154,7 @@ BUILD_EXPORTS = \ + CC="$(CC_FOR_BUILD)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ +@@ -173,6 +174,9 @@ BUILD_EXPORTS = \ + # built for the build system to override those in BASE_FLAGS_TO_PASS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ ++ CPP="$(CC_FOR_BUILD) -E" \ ++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. +@@ -190,6 +194,7 @@ HOST_SUBDIR = @host_subdir@ + HOST_EXPORTS = \ + $(BASE_EXPORTS) \ + CC="$(CC)"; export CC; \ ++ CPP="$(CC) -E"; export CPP; \ + ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 7772342ad5e..02fec881b6d 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@ + BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ + BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) + BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ +- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) ++ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD) + + # 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 a5f208af7cf..0788b7bf0b5 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -11966,7 +11966,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}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + --target=$target_alias --host=$build_alias --build=$build_alias +diff --git a/gcc/configure.ac b/gcc/configure.ac +index b7a7ead1c02..5ab50fae0f3 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1743,7 +1743,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}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + --target=$target_alias --host=$build_alias --build=$build_alias +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch new file mode 100644 index 00000000..52a5d97a --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch @@ -0,0 +1,28 @@ +From 59543e897eb35194fb47288f7762e40a18fff611 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 2 Feb 2016 10:26:10 -0800 +Subject: [PATCH 28/39] nios2: Define MUSL_DYNAMIC_LINKER + +Upstream-Status: Pending + +Signed-off-by: Marek Vasut +Signed-off-by: Khem Raj +--- + gcc/config/nios2/linux.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h +index 698734add35..eeee60ecfea 100644 +--- a/gcc/config/nios2/linux.h ++++ b/gcc/config/nios2/linux.h +@@ -30,6 +30,7 @@ + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" + + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1" ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1" + + #undef LINK_SPEC + #define LINK_SPEC LINK_SPEC_ENDIAN \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch new file mode 100644 index 00000000..bfa7e19d --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch @@ -0,0 +1,87 @@ +From 8df99af0a65ef740bcf2b7dc9a109cc57f15c3aa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 18:10:54 -0700 +Subject: [PATCH 29/39] 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 +the __stack_chk_fail_local() so essentially it provides +libssp but not libssp_nonshared something like +TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED + where-as for glibc the needed symbols +are already present in libc_nonshared library therefore +we do not need any library helper on glibc based systems +but musl needs the libssp_noshared from gcc + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/linux.h | 7 +++++++ + gcc/config/rs6000/linux.h | 10 ++++++++++ + gcc/config/rs6000/linux64.h | 10 ++++++++++ + 3 files changed, 27 insertions(+) + +diff --git a/gcc/config/linux.h b/gcc/config/linux.h +index 4b05d8e93d1..0ca117e2ed4 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 + { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ + { 0, 0, 0, 0, 0, 0 } \ + } ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++ + #endif + + #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 +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -94,6 +94,16 @@ + " -m elf32ppclinux") + #endif + ++/* link libssp_nonshared.a with musl */ ++#if DEFAULT_LIBC == LIBC_MUSL ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++#endif ++ + #undef LINK_OS_LINUX_SPEC + #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 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -456,6 +456,16 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + ++/* link libssp_nonshared.a with musl */ ++#if DEFAULT_LIBC == LIBC_MUSL ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#undef LINK_SSP_SPEC ++#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ ++ "|fstack-protector-strong|fstack-protector-explicit" \ ++ ":-lssp_nonshared}" ++#endif ++#endif ++ + #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ + %{!static-pie: \ + %{rdynamic:-export-dynamic} \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0030-ldbl128-config.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0030-ldbl128-config.patch new file mode 100644 index 00000000..f8e8c07f --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0030-ldbl128-config.patch @@ -0,0 +1,79 @@ +From 1bfae624b27ea4a1f5c5a92050d741b511e7b3d5 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Wed, 28 Feb 2018 00:54:05 +0000 +Subject: [PATCH 30/39] ldbl128 config + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/configure | 13 +++++++++++++ + gcc/configure.ac | 16 ++++++++++++++-- + 2 files changed, 27 insertions(+), 2 deletions(-) + +diff --git a/gcc/configure b/gcc/configure +index 0788b7bf0b5..eb1a45bb263 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29370,6 +29370,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 +@@ -29381,6 +29390,10 @@ else + && gcc_cv_target_ldbl128=yes + + fi ++ ++ ;; ++ esac ++ + fi + + ;; +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 5ab50fae0f3..7ffe35ee1c3 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6030,13 +6030,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.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch new file mode 100644 index 00000000..60a29fc9 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch @@ -0,0 +1,29 @@ +From 31d008f5573627c6192ce9fcf729f0be464a7cf5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 4 May 2016 21:11:34 -0700 +Subject: [PATCH 31/39] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS + +Upstream-Status: Pending + +Signed-off-by: Christopher Larson +Signed-off-by: Khem Raj +--- + libgcc/config/t-slibgcc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc +index 099bf23e62f..436b277a79f 100644 +--- a/libgcc/config/t-slibgcc ++++ b/libgcc/config/t-slibgcc +@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) + + SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ +- $(SHLIB_LDFLAGS) \ ++ $(LDFLAGS) $(SHLIB_LDFLAGS) \ + -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \ + $(SHLIB_OBJS) $(SHLIB_LC) && \ + rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \ +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch new file mode 100644 index 00000000..6f048dab --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch @@ -0,0 +1,86 @@ +From 761fa6e3e37608cfd1b288e721a2ff89288cd6aa Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:09:53 +0000 +Subject: [PATCH 32/39] libgcc_s: Use alias for __cpu_indicator_init instead of + symver + +Adapter from + +https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html + +This fix was debated but hasnt been applied gcc upstream since +they expect musl to support '@' in symbol versioning which is +a sun/gnu versioning extention. This patch however avoids the +need for the '@' symbols at all + +libgcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add. + (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove. + + * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER. + +gcc/Changelog: + +2015-05-11 Szabolcs Nagy + + * config/i386/i386.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 +--- + gcc/config/i386/i386.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 1bca5a7eea6..096c4bc8e25 100644 +--- a/gcc/config/i386/i386.c ++++ b/gcc/config/i386/i386.c +@@ -36685,10 +36685,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, + { + case IX86_BUILTIN_CPU_INIT: + { +- /* Make it call __cpu_indicator_init in libgcc. */ ++ /* Make it call __cpu_indicator_init_local in libgcc.a. */ + tree call_expr, fndecl, type; + type = build_function_type_list (integer_type_node, NULL_TREE); +- fndecl = build_fn_decl ("__cpu_indicator_init", type); ++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); + call_expr = build_call_expr (fndecl, 0); + 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 +--- a/libgcc/config/i386/cpuinfo.c ++++ b/libgcc/config/i386/cpuinfo.c +@@ -504,7 +504,7 @@ __cpu_indicator_init (void) + return 0; + } + +-#if defined SHARED && defined USE_ELF_SYMVER +-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); +-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); ++#ifndef SHARED ++int __cpu_indicator_init_local (void) ++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); + #endif +diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux +index 8506a635790..564296f788e 100644 +--- a/libgcc/config/i386/t-linux ++++ b/libgcc/config/i386/t-linux +@@ -3,5 +3,5 @@ + # t-slibgcc-elf-ver and t-linux + SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver + +-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.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0033-sync-gcc-stddef.h-with-musl.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0033-sync-gcc-stddef.h-with-musl.patch new file mode 100644 index 00000000..f080b059 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0033-sync-gcc-stddef.h-with-musl.patch @@ -0,0 +1,91 @@ +From 126e342fb39d7af70c1e5a6df8ffafc8dfc3bf08 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Feb 2017 12:56:00 -0800 +Subject: [PATCH 33/39] 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 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/ginclude/stddef.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h +index da692e1c01a..9a00c261adb 100644 +--- a/gcc/ginclude/stddef.h ++++ b/gcc/ginclude/stddef.h +@@ -128,6 +128,7 @@ _TYPE_wchar_t; + #ifndef ___int_ptrdiff_t_h + #ifndef _GCC_PTRDIFF_T + #ifndef _PTRDIFF_T_DECLARED /* DragonFly */ ++#ifndef __DEFINED_ptrdiff_t /* musl */ + #define _PTRDIFF_T + #define _T_PTRDIFF_ + #define _T_PTRDIFF +@@ -137,10 +138,12 @@ _TYPE_wchar_t; + #define ___int_ptrdiff_t_h + #define _GCC_PTRDIFF_T + #define _PTRDIFF_T_DECLARED ++#define __DEFINED_ptrdiff_t /* musl */ + #ifndef __PTRDIFF_TYPE__ + #define __PTRDIFF_TYPE__ long int + #endif + typedef __PTRDIFF_TYPE__ ptrdiff_t; ++#endif /* __DEFINED_ptrdiff_t */ + #endif /* _PTRDIFF_T_DECLARED */ + #endif /* _GCC_PTRDIFF_T */ + #endif /* ___int_ptrdiff_t_h */ +@@ -178,6 +181,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; + #ifndef _GCC_SIZE_T + #ifndef _SIZET_ + #ifndef __size_t ++#ifndef __DEFINED_size_t /* musl */ + #define __size_t__ /* BeOS */ + #define __SIZE_T__ /* Cray Unicos/Mk */ + #define _SIZE_T +@@ -194,6 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; + #define ___int_size_t_h + #define _GCC_SIZE_T + #define _SIZET_ ++#define __DEFINED_size_t /* musl */ + #if defined (__FreeBSD__) \ + || defined(__DragonFly__) \ + || defined(__FreeBSD_kernel__) \ +@@ -228,6 +233,7 @@ typedef long ssize_t; + #endif /* _SIZE_T */ + #endif /* __SIZE_T__ */ + #endif /* __size_t__ */ ++#endif /* __DEFINED_size_t */ + #undef __need_size_t + #endif /* _STDDEF_H or __need_size_t. */ + +@@ -257,6 +263,7 @@ typedef long ssize_t; + #ifndef ___int_wchar_t_h + #ifndef __INT_WCHAR_T_H + #ifndef _GCC_WCHAR_T ++#ifndef __DEFINED_wchar_t /* musl */ + #define __wchar_t__ /* BeOS */ + #define __WCHAR_T__ /* Cray Unicos/Mk */ + #define _WCHAR_T +@@ -272,6 +279,7 @@ typedef long ssize_t; + #define __INT_WCHAR_T_H + #define _GCC_WCHAR_T + #define _WCHAR_T_DECLARED ++#define __DEFINED_wchar_t /* musl */ + + /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ + instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other +@@ -337,6 +345,7 @@ typedef __WCHAR_TYPE__ wchar_t; + #endif + #endif /* __WCHAR_T__ */ + #endif /* __wchar_t__ */ ++#endif /* __DEFINED_wchar_t musl */ + #undef __need_wchar_t + #endif /* _STDDEF_H or __need_wchar_t. */ + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0034-fix-segmentation-fault-in-precompiled-header-generat.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0034-fix-segmentation-fault-in-precompiled-header-generat.patch new file mode 100644 index 00000000..3b7ccb3e --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0034-fix-segmentation-fault-in-precompiled-header-generat.patch @@ -0,0 +1,60 @@ +From d26fa9ededccc7e1ec47ead7f18afc80971483a3 Mon Sep 17 00:00:00 2001 +From: Juro Bystricky +Date: Mon, 19 Mar 2018 22:31:20 -0700 +Subject: [PATCH 34/39] 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 +CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in +those cases, as is may not be initialized at all. + +[YOCTO #11738] + +Upstream-Status: Pending + +Signed-off-by: Juro Bystricky +Signed-off-by: Khem Raj +--- + libcpp/lex.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/libcpp/lex.c b/libcpp/lex.c +index eedfcbb3146..15040a1b1f0 100644 +--- a/libcpp/lex.c ++++ b/libcpp/lex.c +@@ -3280,11 +3280,27 @@ cpp_spell_token (cpp_reader *pfile, const cpp_token *token, + spell_ident: + case SPELL_IDENT: + if (forstring) +- { +- memcpy (buffer, NODE_NAME (token->val.node.spelling), +- NODE_LEN (token->val.node.spelling)); +- buffer += NODE_LEN (token->val.node.spelling); +- } ++ { ++ if (token->type == CPP_NAME) ++ { ++ memcpy (buffer, NODE_NAME (token->val.node.spelling), ++ NODE_LEN (token->val.node.spelling)); ++ buffer += NODE_LEN (token->val.node.spelling); ++ break; ++ } ++ /* NAMED_OP, cannot use node.spelling */ ++ if (token->flags & NAMED_OP) ++ { ++ const char *str = cpp_named_operator2name (token->type); ++ if (str) ++ { ++ size_t len = strlen(str); ++ memcpy(buffer, str, len); ++ buffer += len; ++ } ++ break; ++ } ++ } + else + buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node); + break; +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0035-Fix-for-testsuite-failure.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0035-Fix-for-testsuite-failure.patch new file mode 100644 index 00000000..5e199fbc --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0035-Fix-for-testsuite-failure.patch @@ -0,0 +1,258 @@ +From fb5bdf8f8527228d587e8af9fc700e5164b3c18c Mon Sep 17 00:00:00 2001 +From: RAGHUNATH LOLUR +Date: Wed, 6 Dec 2017 22:52:26 -0800 +Subject: [PATCH 35/39] Fix for testsuite failure + +2017-11-16 Raghunath Lolur + + * gcc.dg/pr56275.c: If SSE is disabled, ensure that + "-mfpmath" is not set to use SSE. Set "-mfpmath=387". + * gcc.dg/pr68306.c: Likewise + * gcc.dg/pr68306-2.c: Likewise + * gcc.dg/pr68306-3.c: Likewise + * gcc.dg/pr69634.c: Likewise + * gcc.target/i386/amd64-abi-1.c: Likewise + * gcc.target/i386/funcspec-6.c: Likewise + * gcc.target/i386/interrupt-387-err-1.c: Likewise + * gcc.target/i386/isa-14.c: Likewise + * gcc.target/i386/pr44948-2b.c: Likewise + * gcc.target/i386/pr53425-1.c: Likewise + * gcc.target/i386/pr53425-2.c: Likewise + * gcc.target/i386/pr55247.c: Likewise + * gcc.target/i386/pr59644.c: Likewise + * gcc.target/i386/pr62120.c: Likewise + * gcc.target/i386/pr70467-1.c: Likewise + * gcc.target/i386/warn-vect-op-1.c: Likewise + +If -Wall, -Werror are used during compilation various test cases fail +to compile. + +If SSE is disabled, be sure to -mfpmath=387 to resolve this. + +This patch removes the changes to Changelog from the original patch. +This will help us avoid conflicts. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle +--- + gcc/testsuite/gcc.dg/pr56275.c | 2 +- + gcc/testsuite/gcc.dg/pr68306-2.c | 2 +- + gcc/testsuite/gcc.dg/pr68306-3.c | 2 +- + gcc/testsuite/gcc.dg/pr68306.c | 2 +- + gcc/testsuite/gcc.dg/pr69634.c | 2 +- + gcc/testsuite/gcc.target/i386/amd64-abi-1.c | 2 +- + gcc/testsuite/gcc.target/i386/funcspec-6.c | 1 + + gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c | 2 +- + gcc/testsuite/gcc.target/i386/isa-14.c | 2 +- + gcc/testsuite/gcc.target/i386/pr44948-2b.c | 2 +- + gcc/testsuite/gcc.target/i386/pr53425-1.c | 2 +- + gcc/testsuite/gcc.target/i386/pr53425-2.c | 2 +- + gcc/testsuite/gcc.target/i386/pr55247.c | 2 +- + gcc/testsuite/gcc.target/i386/pr59644.c | 2 +- + gcc/testsuite/gcc.target/i386/pr62120.c | 2 +- + gcc/testsuite/gcc.target/i386/pr70467-1.c | 2 +- + gcc/testsuite/gcc.target/i386/warn-vect-op-1.c | 2 +- + 17 files changed, 17 insertions(+), 16 deletions(-) + +diff --git a/gcc/testsuite/gcc.dg/pr56275.c b/gcc/testsuite/gcc.dg/pr56275.c +index b901bb2b199..a4f6c95e1a1 100644 +--- a/gcc/testsuite/gcc.dg/pr56275.c ++++ b/gcc/testsuite/gcc.dg/pr56275.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ +-/* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */ ++/* { dg-additional-options "-mno-sse -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ + + typedef long long v2tw __attribute__ ((vector_size (2 * sizeof (long long)))); + +diff --git a/gcc/testsuite/gcc.dg/pr68306-2.c b/gcc/testsuite/gcc.dg/pr68306-2.c +index 4672ebe7987..2a368c484b6 100644 +--- a/gcc/testsuite/gcc.dg/pr68306-2.c ++++ b/gcc/testsuite/gcc.dg/pr68306-2.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + + struct { + int tz_minuteswest; +diff --git a/gcc/testsuite/gcc.dg/pr68306-3.c b/gcc/testsuite/gcc.dg/pr68306-3.c +index f5a8c102cf8..df3390c64c2 100644 +--- a/gcc/testsuite/gcc.dg/pr68306-3.c ++++ b/gcc/testsuite/gcc.dg/pr68306-3.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + /* { dg-additional-options "-mno-altivec -mno-vsx" { target powerpc*-*-* } } */ + + extern void fn2(); +diff --git a/gcc/testsuite/gcc.dg/pr68306.c b/gcc/testsuite/gcc.dg/pr68306.c +index 54e5b40f221..0813389e2c1 100644 +--- a/gcc/testsuite/gcc.dg/pr68306.c ++++ b/gcc/testsuite/gcc.dg/pr68306.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O3" } */ +-/* { dg-additional-options "-mno-sse -mno-mmx" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mno-mmx -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + + enum powerpc_pmc_type { PPC_PMC_IBM }; + struct { +diff --git a/gcc/testsuite/gcc.dg/pr69634.c b/gcc/testsuite/gcc.dg/pr69634.c +index 60a56149463..bcc23f9ccd6 100644 +--- a/gcc/testsuite/gcc.dg/pr69634.c ++++ b/gcc/testsuite/gcc.dg/pr69634.c +@@ -1,6 +1,6 @@ + /* { dg-do compile } */ + /* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug -Wno-psabi" } */ +-/* { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } } */ ++/* { dg-additional-options "-mno-sse -mfpmath=387" { target i?86-*-* x86_64-*-* } } */ + /* { dg-require-effective-target scheduling } */ + + typedef unsigned short u16; +diff --git a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c +index 69fde57bf06..7f1f1c03edf 100644 +--- a/gcc/testsuite/gcc.target/i386/amd64-abi-1.c ++++ b/gcc/testsuite/gcc.target/i386/amd64-abi-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-mno-sse" } */ ++/* { dg-options "-mno-sse -mfpmath=387" } */ + /* { dg-additional-options "-mabi=sysv" { target *-*-mingw* } } */ + + double foo(void) { return 0; } /* { dg-error "SSE disabled" } */ +diff --git a/gcc/testsuite/gcc.target/i386/funcspec-6.c b/gcc/testsuite/gcc.target/i386/funcspec-6.c +index ea896b7ebfd..bf15569b826 100644 +--- a/gcc/testsuite/gcc.target/i386/funcspec-6.c ++++ b/gcc/testsuite/gcc.target/i386/funcspec-6.c +@@ -1,6 +1,7 @@ + /* Test whether all of the 64-bit function specific options are accepted + without error. */ + /* { dg-do compile { target { ! ia32 } } } */ ++/* { dg-additional-options "-mfpmath=387" } */ + + #include "funcspec-56.inc" + +diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c +index 8561a3c26d6..6377f814645 100644 +--- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c ++++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387" } */ ++/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -mno-iamcu -m80387 -mfpmath=387" } */ + + typedef unsigned int uword_t __attribute__ ((mode (__word__))); + +diff --git a/gcc/testsuite/gcc.target/i386/isa-14.c b/gcc/testsuite/gcc.target/i386/isa-14.c +index 5d49e6e77fe..1de2db92bdd 100644 +--- a/gcc/testsuite/gcc.target/i386/isa-14.c ++++ b/gcc/testsuite/gcc.target/i386/isa-14.c +@@ -1,5 +1,5 @@ + /* { dg-do run } */ +-/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse" } */ ++/* { dg-options "-march=x86-64 -msse4a -mfma4 -mno-sse -mfpmath=387" } */ + + extern void abort (void); + +diff --git a/gcc/testsuite/gcc.target/i386/pr44948-2b.c b/gcc/testsuite/gcc.target/i386/pr44948-2b.c +index fa1769b62fb..f79fb12726f 100644 +--- a/gcc/testsuite/gcc.target/i386/pr44948-2b.c ++++ b/gcc/testsuite/gcc.target/i386/pr44948-2b.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic" } */ ++/* { dg-options "-O -mno-sse -Wno-psabi -mtune=generic -mfpmath=387" } */ + + struct A + { +diff --git a/gcc/testsuite/gcc.target/i386/pr53425-1.c b/gcc/testsuite/gcc.target/i386/pr53425-1.c +index 2e89ff7d81d..6339bf6b736 100644 +--- a/gcc/testsuite/gcc.target/i386/pr53425-1.c ++++ b/gcc/testsuite/gcc.target/i386/pr53425-1.c +@@ -1,6 +1,6 @@ + /* PR target/53425 */ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ + + typedef double __v2df __attribute__ ((__vector_size__ (16))); +diff --git a/gcc/testsuite/gcc.target/i386/pr53425-2.c b/gcc/testsuite/gcc.target/i386/pr53425-2.c +index 61f6283dbe9..2c5a55f0ac3 100644 +--- a/gcc/testsuite/gcc.target/i386/pr53425-2.c ++++ b/gcc/testsuite/gcc.target/i386/pr53425-2.c +@@ -1,6 +1,6 @@ + /* PR target/53425 */ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + /* { dg-skip-if "no SSE vector" { x86_64-*-mingw* } } */ + + typedef float __v2sf __attribute__ ((__vector_size__ (8))); +diff --git a/gcc/testsuite/gcc.target/i386/pr55247.c b/gcc/testsuite/gcc.target/i386/pr55247.c +index 23366d0909d..9810e3abb76 100644 +--- a/gcc/testsuite/gcc.target/i386/pr55247.c ++++ b/gcc/testsuite/gcc.target/i386/pr55247.c +@@ -1,6 +1,6 @@ + /* { dg-do compile { target { ! ia32 } } } */ + /* { dg-require-effective-target maybe_x32 } */ +-/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long" } */ ++/* { dg-options "-O2 -mno-sse -mno-mmx -mx32 -maddress-mode=long -mfpmath=387" } */ + + typedef unsigned int uint32_t; + typedef uint32_t Elf32_Word; +diff --git a/gcc/testsuite/gcc.target/i386/pr59644.c b/gcc/testsuite/gcc.target/i386/pr59644.c +index 96006b3e338..4287e4538bf 100644 +--- a/gcc/testsuite/gcc.target/i386/pr59644.c ++++ b/gcc/testsuite/gcc.target/i386/pr59644.c +@@ -1,6 +1,6 @@ + /* PR target/59644 */ + /* { dg-do run { target lp64 } } */ +-/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone" } */ ++/* { dg-options "-O2 -ffreestanding -mno-sse -mpreferred-stack-boundary=3 -maccumulate-outgoing-args -mno-red-zone -mfpmath=387" } */ + + /* 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 +--- a/gcc/testsuite/gcc.target/i386/pr62120.c ++++ b/gcc/testsuite/gcc.target/i386/pr62120.c +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-mno-sse" } */ ++/* { dg-options "-mno-sse -mfpmath=387" } */ + + void foo () + { +diff --git a/gcc/testsuite/gcc.target/i386/pr70467-1.c b/gcc/testsuite/gcc.target/i386/pr70467-1.c +index 4e112c88d07..bcfb396a68d 100644 +--- a/gcc/testsuite/gcc.target/i386/pr70467-1.c ++++ b/gcc/testsuite/gcc.target/i386/pr70467-1.c +@@ -1,6 +1,6 @@ + /* PR rtl-optimization/70467 */ + /* { dg-do compile } */ +-/* { dg-options "-O2 -mno-sse" } */ ++/* { dg-options "-O2 -mno-sse -mfpmath=387" } */ + + void foo (unsigned long long *); + +diff --git a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c +index 6cda1534311..26e37f5b8ba 100644 +--- a/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c ++++ b/gcc/testsuite/gcc.target/i386/warn-vect-op-1.c +@@ -1,5 +1,5 @@ + /* { dg-do compile { target { ! ia32 } } } */ +-/* { dg-options "-mno-sse -Wvector-operation-performance" } */ ++/* { dg-options "-mno-sse -Wvector-operation-performance -mfpmath=387" } */ + #define vector(elcount, type) \ + __attribute__((vector_size((elcount)*sizeof(type)))) type + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0036-Re-introduce-spe-commandline-options.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0036-Re-introduce-spe-commandline-options.patch new file mode 100644 index 00000000..825e070a --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0036-Re-introduce-spe-commandline-options.patch @@ -0,0 +1,41 @@ +From dc23cabac6a7b2ca85b02d2a58a8916c98f382e0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 6 Jun 2018 12:10:22 -0700 +Subject: [PATCH 36/39] Re-introduce spe commandline options + +This should ensure that we keep accepting +spe options + +Upstream-Status: Inappropriate [SPE port is removed from rs600 port] + +Signed-off-by: Khem Raj +--- + gcc/config/rs6000/rs6000.opt | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt +index f4b5c91e11f..69869350fce 100644 +--- a/gcc/config/rs6000/rs6000.opt ++++ b/gcc/config/rs6000/rs6000.opt +@@ -345,6 +345,18 @@ mdebug= + Target RejectNegative Joined + -mdebug= Enable debug output. + ++mspe ++Target Var(rs6000_spe) Save ++Generate SPE SIMD instructions on E500. ++ ++mabi=spe ++Target RejectNegative Var(rs6000_spe_abi) Save ++Use the SPE ABI extensions. ++ ++mabi=no-spe ++Target RejectNegative Var(rs6000_spe_abi, 0) ++Do not use the SPE ABI extensions. ++ + mabi=altivec + Target RejectNegative Var(rs6000_altivec_abi) Save + Use the AltiVec ABI extensions. +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch new file mode 100644 index 00000000..f268a4eb --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch @@ -0,0 +1,48 @@ +From ac4af583bd59f6631671ad4abf985799ce4a53d9 Mon Sep 17 00:00:00 2001 +From: rguenth +Date: Thu, 25 Jul 2019 10:46:54 +0000 +Subject: [PATCH 37/39] CVE-2019-14250: Check zero value in + simple_object_elf_match + +2019-07-25 Richard Biener + + PR lto/90924 + Backport from mainline + 2019-07-12 Ren Kimura + + * 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 +--- + libiberty/simple-object-elf.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c +index 3d49f339631..c00cebdb6c7 100644 +--- a/libiberty/simple-object-elf.c ++++ b/libiberty/simple-object-elf.c +@@ -557,6 +557,14 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN], + return NULL; + } + ++ if (eor->shstrndx == 0) ++ { ++ *errmsg = "invalid ELF shstrndx == 0"; ++ *err = 0; ++ XDELETE (eor); ++ return NULL; ++ } ++ + return (void *) eor; + } + +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch new file mode 100644 index 00000000..a79fc03d --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch @@ -0,0 +1,185 @@ +From 075e0929e04913538391052c32178b6a14ef0ae3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 12 Mar 2020 14:41:40 -0700 +Subject: [PATCH 38/39] 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 +Signed-off-by: Khem Raj +--- + 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 53317337cf8..bbb26151671 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 +@@ -5186,7 +5186,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 f33eefa2494..07bef9eebe2 100644 +--- a/gcc/genmodes.c ++++ b/gcc/genmodes.c +@@ -429,7 +429,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) +@@ -487,7 +487,7 @@ make_complex_modes (enum mode_class cl, + /* For all modes in class CL, construct vector modes of width + WIDTH, having as many components as necessary. */ + #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W) \ +- make_vector_modes (MODE_##C, #PREFIX, W, __FILE__, __LINE__) ++ make_vector_modes (MODE_##C, #PREFIX, W, __FILE__, 0) + #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W) + static void ATTRIBUTE_UNUSED + make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width, +@@ -538,7 +538,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, +@@ -560,7 +560,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) + +@@ -573,7 +573,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, +@@ -586,16 +586,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. */ +@@ -616,7 +616,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, +@@ -633,7 +633,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, +@@ -648,7 +648,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) +@@ -669,7 +669,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) +@@ -698,7 +698,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, +@@ -725,7 +725,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, +@@ -768,7 +768,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) +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch new file mode 100644 index 00000000..b69114d1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-9.3/0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch @@ -0,0 +1,100 @@ +From e75bcc2ec4f1e7e081ce18713f0a25913ba15340 Mon Sep 17 00:00:00 2001 +From: Vladimir Makarov +Date: Wed, 10 Jul 2019 16:07:10 +0000 +Subject: [PATCH 39/39] process_alt_operands: Don't match user defined regs + only if they are early clobbers + +PR target/91102 (aarch64 ICE on Linux kernel with -Os starting with r270266) + +2019-07-10 Vladimir Makarov + + PR target/91102 + * lra-constraints.c (process_alt_operands): Don't match user + defined regs only if they are early clobbers. + +2019-07-10 Vladimir Makarov + + PR target/91102 + * gcc.target/aarch64/pr91102.c: New test. + +From-SVN: r273357 +Upstream-Status: Backport [https://github.com/gcc-mirror/gcc/commit/613caed2feb9cfc8158308670b59df3d031ec629] +[takondra: dropped conflicting ChangeLog changes] +Signed-off-by: Taras Kondratiuk +--- + gcc/lra-constraints.c | 17 ++++++++++---- + gcc/testsuite/gcc.target/aarch64/pr91102.c | 26 ++++++++++++++++++++++ + 2 files changed, 39 insertions(+), 4 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/pr91102.c + +diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c +index cf33da8013e..6382dbf852b 100644 +--- a/gcc/lra-constraints.c ++++ b/gcc/lra-constraints.c +@@ -2172,8 +2172,9 @@ process_alt_operands (int only_alternative) + else + { + /* Operands don't match. If the operands are +- different user defined explicit hard registers, +- then we cannot make them match. */ ++ different user defined explicit hard ++ registers, then we cannot make them match ++ when one is early clobber operand. */ + if ((REG_P (*curr_id->operand_loc[nop]) + || SUBREG_P (*curr_id->operand_loc[nop])) + && (REG_P (*curr_id->operand_loc[m]) +@@ -2192,9 +2193,17 @@ process_alt_operands (int only_alternative) + && REG_P (m_reg) + && HARD_REGISTER_P (m_reg) + && REG_USERVAR_P (m_reg)) +- break; ++ { ++ int i; ++ ++ for (i = 0; i < early_clobbered_regs_num; i++) ++ if (m == early_clobbered_nops[i]) ++ break; ++ if (i < early_clobbered_regs_num ++ || early_clobber_p) ++ break; ++ } + } +- + /* Both operands must allow a reload register, + otherwise we cannot make them match. */ + if (curr_alt[m] == NO_REGS) +diff --git a/gcc/testsuite/gcc.target/aarch64/pr91102.c b/gcc/testsuite/gcc.target/aarch64/pr91102.c +new file mode 100644 +index 00000000000..70b99045a48 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/pr91102.c +@@ -0,0 +1,26 @@ ++/* PR target/91102 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (long d, long l) ++{ ++ register long e asm ("x1") = d; ++ register long f asm("x2") = l; ++ asm ("" : : "r" (e), "r" (f)); ++ return 3; ++} ++ ++struct T { int i; int j; }; ++union S { long h; struct T t; }; ++ ++void ++bar (union S b) ++{ ++ while (1) ++ { ++ union S c = b; ++ c.t.j++; ++ b.h = foo (b.h, c.h); ++ } ++} +-- +2.25.1 + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-common.inc b/external/poky/meta/recipes-devtools/gcc/gcc-common.inc index 00fec0bb..3dcfdf83 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-common.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-common.inc @@ -10,15 +10,14 @@ CVE_PRODUCT = "gcc" inherit autotools gettext texinfo BPN = "gcc" -COMPILERINITIAL = "" -COMPILERDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}gcc${COMPILERINITIAL}:do_gcc_stash_builddir" -COMPILERDEP_class-nativesdk = "virtual/${TARGET_PREFIX}gcc${COMPILERINITIAL}-crosssdk:do_gcc_stash_builddir" +COMPILERDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}gcc:do_gcc_stash_builddir" +COMPILERDEP_class-nativesdk = "virtual/${TARGET_PREFIX}gcc-crosssdk:do_gcc_stash_builddir" python extract_stashed_builddir () { - src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir${COMPILERINITIAL}-${TARGET_SYS}") + src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}") dest = d.getVar("B") oe.path.copyhardlinktree(src, dest) - staging_processfixme([src + "/fixmepath"], dest, dest, dest, d) + staging_processfixme([src + "/fixmepath"], dest, d.getVar("RECIPE_SYSROOT"), d.getVar("RECIPE_SYSROOT_NATIVE"), d) } def get_gcc_float_setting(bb, d): @@ -38,23 +37,17 @@ def get_gcc_mips_plt_setting(bb, d): return "" def get_gcc_ppc_plt_settings(bb, d): - if d.getVar('TRANSLATED_TARGET_ARCH') in [ 'powerpc' ] and not bb.utils.contains('DISTRO_FEATURES', 'bssplt', True, False, d): + if d.getVar('TRANSLATED_TARGET_ARCH') in [ 'powerpc', 'powerpc64' ] and not bb.utils.contains('DISTRO_FEATURES', 'bssplt', True, False, d): return "--enable-secureplt" return "" -def get_long_double_setting(bb, d): - if d.getVar('TRANSLATED_TARGET_ARCH') in [ 'powerpc', 'powerpc64' ] and d.getVar('TCLIBC') in [ 'glibc' ]: - return "--with-long-double-128" - else: - return "--without-long-double-128 libgcc_cv_powerpc_float128=no" - return "" - def get_gcc_multiarch_setting(bb, d): target_arch = d.getVar('TRANSLATED_TARGET_ARCH') multiarch_options = { "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/external/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/external/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc index e2ce234a..a64c4caf 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -5,25 +5,20 @@ require gcc-shared-source.inc # # These can be overridden by the version specific .inc file. -# Java (gcj doesn't work on all architectures) -JAVA ?= ",java" -JAVA_arm ?= "" -JAVA_armeb ?= "" -JAVA_mipsel ?= "" -JAVA_sh3 ?= "" # gcc 3.x expects 'f77', 4.0 expects 'f95', 4.1 and 4.2 expect 'fortran' FORTRAN ?= ",f77" -LANGUAGES ?= "c,c++${FORTRAN}${JAVA}" +LANGUAGES ?= "c,c++${FORTRAN}" EXTRA_OECONF_BASE ?= "" EXTRA_OECONF_PATHS ?= "" -EXTRA_OECONF_INITIAL ?= "" GCCMULTILIB ?= "--disable-multilib" GCCTHREADS ?= "posix" GCCPIE ??= "" +SYMVERS_CONF ?= "--enable-symvers=gnu" + EXTRA_OECONF = "\ ${@['--enable-clocale=generic', ''][d.getVar('USE_NLS') != 'no']} \ --with-gnu-ld \ @@ -34,19 +29,23 @@ 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} \ ${@get_gcc_mips_plt_setting(bb, d)} \ ${@get_gcc_ppc_plt_settings(bb, d)} \ - ${@get_long_double_setting(bb, d)} \ ${@get_gcc_multiarch_setting(bb, d)} \ " +# glibc version is a minimum controlling whether features are enabled. +# Doesn't need to track glibc exactly +EXTRA_OECONF_append_libc-glibc = " --with-glibc-version=2.28 " + # Set this here since GCC configure won't auto-detect and enable # initfini-arry when cross compiling. EXTRA_OECONF_append = " --enable-initfini-array" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index 2f32d340..553ef7fe 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -3,7 +3,7 @@ inherit cross-canadian SUMMARY = "GNU cc and gcc C compilers (cross-canadian for ${TARGET_ARCH} target)" PN = "gcc-cross-canadian-${TRANSLATED_TARGET_ARCH}" -DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${HOST_PREFIX}gcc-crosssdk virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-${HOST_PREFIX}libc-for-gcc nativesdk-gettext flex-native" +DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${HOST_PREFIX}gcc-crosssdk virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-libc nativesdk-gettext flex-native virtual/libc" GCCMULTILIB = "--enable-multilib" @@ -63,9 +63,6 @@ do_compile () { (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) } -# Having anything auto depending on gcc-cross-sdk is a really bad idea... -EXCLUDE_FROM_SHLIBS = "1" - PACKAGES = "${PN}-dbg ${PN} ${PN}-doc" FILES_${PN} = "\ @@ -111,12 +108,6 @@ do_install () { # We don't care about the gcc- 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 - # Cleanup empty directories which are not shipped # we use rmdir instead of 'rm -f' to ensure the non empty directories are not deleted # ${D}${libdir}/../lib only seems to appear with SDKMACHINE=i686 @@ -159,10 +150,9 @@ SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" EXTRA_OECONF += "--enable-poison-system-directories" - -EXTRA_OECONF_append_libc-baremetal = " --without-headers" -EXTRA_OECONF_remove_libc-baremetal = "--with-sysroot=/not/exist" -EXTRA_OECONF_remove_libc-baremetal = "--with-build-sysroot=${STAGING_DIR_TARGET}" - +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" # gcc 4.7 needs -isystem export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_7.3.bb deleted file mode 100644 index bf53c5cd..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_7.3.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross-canadian.inc - - - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.2.bb deleted file mode 100644 index bf53c5cd..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_8.2.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross-canadian.inc - - - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.3.bb new file mode 100644 index 00000000..bf53c5cd --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.3.bb @@ -0,0 +1,5 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-cross-canadian.inc + + + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc deleted file mode 100644 index 892b1dbf..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc +++ /dev/null @@ -1,89 +0,0 @@ -DEPENDS = "virtual/${TARGET_PREFIX}binutils ${NATIVEDEPS}" -PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial" -PACKAGES = "" - -INHIBIT_AUTOTOOLS_DEPS = "1" -INHIBIT_DEFAULT_DEPS = "1" - -# We still need gnu-config-native -DEPENDS_prepend = "gnu-config-native autoconf-native " - -PN = "gcc-cross-initial-${TARGET_ARCH}" - -CROSS_TARGET_SYS_DIR_append = ".${PN}" - -# This is intended to be a -very- basic config -# sysroot is needed in case we use libc-initial -EXTRA_OECONF = "\ - --with-newlib \ - --without-headers \ - --disable-shared \ - --disable-threads \ - --disable-multilib \ - --disable-__cxa_atexit \ - --enable-languages=c \ - --program-prefix=${TARGET_PREFIX} \ - --with-sysroot=/not/exist \ - --with-build-sysroot=${STAGING_DIR_TARGET} \ - ${EXTRA_OECONF_INITIAL} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \ - ${EXTRA_OECONF_GCC_FLOAT} \ - ${@get_gcc_ppc_plt_settings(bb, d)} \ -" - -EXTRA_OECONF += "--with-native-system-header-dir=${SYSTEMHEADERS}" - -do_compile () { - oe_runmake all-gcc 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) -} - -do_install () { - ( cd ${B}/${TARGET_SYS}/libgcc; oe_runmake 'DESTDIR=${D}' install-unwind_h-forbuild install-unwind_h) - oe_runmake 'DESTDIR=${D}' install-gcc - - # We don't really need this (here shares/ contains man/, info/, locale/). - rm -rf ${D}${datadir}/ - - # 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 - - # Insert symlinks into libexec so when tools without a prefix are searched for, the correct ones are - # found. These need to be relative paths so they work in different locations. - dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/ - install -d $dest - useld=${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '.bfd', '', d)} - ln -sf ${BINRELPATH}/${TARGET_PREFIX}ld${useld} ${dest}ld - for t in ar as nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do - ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t $dest$t - done - # fixed limits.h infact includes the so called real limits.h - # which should come from libc but when we build libc-initial - # then bunch of configure tests include fixed limits.h which in turn - # includes real limits.h but this real limits.h is not staged yet - # so we overwirte the generated include-fixed/limits.h for gcc-cross-initial - # to get rid references to real limits.h - cp gcc/include-fixed/limits.h ${D}${gcclibdir}/${TARGET_SYS}/${BINV}/include/limits.h -} -# -# Override the default sysroot staging copy since this won't look like a target system -# -sysroot_stage_all() { - sysroot_stage_dir ${D} ${SYSROOT_DESTDIR} - install -d ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_base_libdir}/ - install -d ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_libdir}/ - mv ${SYSROOT_DESTDIR}${target_base_libdir}/* ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_base_libdir}/ || true - mv ${SYSROOT_DESTDIR}${target_libdir}/* ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${target_libdir}/ || true -} - -do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_HOST}/" -do_populate_sysroot[sstate-outputdirs] = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/${PN}" - -inherit nopackages - -COMPILERINITIAL = "-initial" - - -# We really only want this built by things that need it, not any recrdeptask -deltask do_build diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_7.3.bb deleted file mode 100644 index 4c73e5ce..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_7.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-cross-initial.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_8.2.bb deleted file mode 100644 index 4c73e5ce..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross-initial_8.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-cross-initial.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross.inc b/external/poky/meta/recipes-devtools/gcc/gcc-cross.inc index 89b19684..6fa8c274 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-cross.inc @@ -2,7 +2,7 @@ inherit cross INHIBIT_DEFAULT_DEPS = "1" EXTRADEPENDS = "" -DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc ${EXTRADEPENDS} ${NATIVEDEPS}" +DEPENDS = "virtual/${TARGET_PREFIX}binutils ${EXTRADEPENDS} ${NATIVEDEPS}" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" python () { if d.getVar("TARGET_OS").startswith("linux"): @@ -31,7 +31,6 @@ EXTRA_OECONF += "\ --with-system-zlib \ " -DEPENDS_remove_libc-baremetal := "virtual/${TARGET_PREFIX}libc-for-gcc" EXTRA_OECONF_append_libc-baremetal = " --without-headers" EXTRA_OECONF_remove_libc-baremetal = "--enable-threads=posix" EXTRA_OECONF_remove_libc-newlib = "--enable-threads=posix" @@ -44,6 +43,12 @@ EXTRA_OECONF_PATHS = "\ ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}" + +do_configure_prepend () { + install -d ${RECIPE_SYSROOT}${target_includedir} + touch ${RECIPE_SYSROOT}${target_includedir}/limits.h +} + do_compile () { export CC="${BUILD_CC}" export AR_FOR_TARGET="${TARGET_SYS}-ar" @@ -56,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" @@ -188,9 +117,7 @@ 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 } do_package[noexec] = "1" @@ -199,18 +126,29 @@ do_package_write_ipk[noexec] = "1" do_package_write_rpm[noexec] = "1" do_package_write_deb[noexec] = "1" -BUILDDIRSTASH = "${WORKDIR}/stashed-builddir" +inherit chrpath + +python gcc_stash_builddir_fixrpaths() { + # rewrite rpaths, breaking hardlinks as required + process_dir("/", d.getVar("BUILDDIRSTASH"), d, break_hardlinks = True) +} + +BUILDDIRSTASH = "${WORKDIR}/stashed-builddir/build" do_gcc_stash_builddir[dirs] = "${B}" do_gcc_stash_builddir[cleandirs] = "${BUILDDIRSTASH}" +do_gcc_stash_builddir[postfuncs] += "gcc_stash_builddir_fixrpaths" do_gcc_stash_builddir () { dest=${BUILDDIRSTASH} hardlinkdir . $dest + # Makefile does move-if-change which can end up with 'timestamp' as file contents so break links to those files + rm $dest/gcc/include/*.h + cp gcc/include/*.h $dest/gcc/include/ } addtask do_gcc_stash_builddir after do_compile before do_install SSTATETASKS += "do_gcc_stash_builddir" do_gcc_stash_builddir[sstate-inputdirs] = "${BUILDDIRSTASH}" -do_gcc_stash_builddir[sstate-outputdirs] = "${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir${COMPILERINITIAL}-${TARGET_SYS}" -do_gcc_stash_builddir[sstate-fixmedir] = "${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir${COMPILERINITIAL}-${TARGET_SYS}" +do_gcc_stash_builddir[sstate-outputdirs] = "${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}" +do_gcc_stash_builddir[sstate-fixmedir] = "${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}" python do_gcc_stash_builddir_setscene () { sstate_setscene(d) diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross_7.3.bb deleted file mode 100644 index b43cca0c..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross_7.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross_8.2.bb deleted file mode 100644 index b43cca0c..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-cross_8.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-cross_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-cross_9.3.bb new file mode 100644 index 00000000..b43cca0c --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-cross_9.3.bb @@ -0,0 +1,3 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-cross.inc + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc deleted file mode 100644 index 08eda5d4..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc +++ /dev/null @@ -1,10 +0,0 @@ -inherit crosssdk - -PN = "gcc-crosssdk-initial-${SDK_SYS}" - -SYSTEMHEADERS = "${SDKPATHNATIVE}${prefix_nativesdk}/include" -SYSTEMLIBS = "${SDKPATHNATIVE}${base_libdir_nativesdk}/" -SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/" - -DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk gettext-native ${NATIVEDEPS}" -PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial-crosssdk" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_7.3.bb deleted file mode 100644 index fd90e114..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_7.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-cross-initial_${PV}.bb -require gcc-crosssdk-initial.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_8.2.bb deleted file mode 100644 index fd90e114..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_8.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-cross-initial_${PV}.bb -require gcc-crosssdk-initial.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc index cda29277..bd2e71d6 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc @@ -8,5 +8,5 @@ SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/" GCCMULTILIB = "--disable-multilib" -DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk virtual/nativesdk-${TARGET_PREFIX}libc-for-gcc gettext-native ${NATIVEDEPS}" +DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk gettext-native ${NATIVEDEPS}" PROVIDES = "virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb deleted file mode 100644 index 40a6c4fe..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_7.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-crosssdk.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.2.bb deleted file mode 100644 index 40a6c4fe..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_8.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-crosssdk.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.3.bb new file mode 100644 index 00000000..40a6c4fe --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.3.bb @@ -0,0 +1,2 @@ +require recipes-devtools/gcc/gcc-cross_${PV}.bb +require gcc-crosssdk.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/external/poky/meta/recipes-devtools/gcc/gcc-runtime.inc index 9e7e7c5b..ace706db 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -15,6 +15,20 @@ 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" RUNTIMELIBITM = "libitm" RUNTIMELIBITM_arc = "" @@ -29,9 +43,8 @@ RUNTIMELIBSSP_mingw32 ?= "libssp" RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \ ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'libquadmath', '', d)} \ " -RUNTIMETARGET_append_x86 = " libmpx" -RUNTIMETARGET_append_x86-64 = " libmpx" -RUNTIMETARGET_remove_libc-musl = "libmpx" +# Only build libstdc++ for newlib +RUNTIMETARGET_libc-newlib = "libstdc++-v3" # libiberty # libmudflap @@ -79,6 +92,11 @@ do_install () { cd ${B}/${TARGET_SYS}/$d/ oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install done + if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then + install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include + mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* ${D}${libdir}/${TARGET_SYS}/${BINV}/include + rmdir --ignore-fail-on-non-empty -p ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include + fi rm -rf ${D}${infodir}/libgomp.info ${D}${infodir}/dir rm -rf ${D}${infodir}/libitm.info ${D}${infodir}/dir rm -rf ${D}${infodir}/libquadmath.info ${D}${infodir}/dir @@ -88,10 +106,6 @@ do_install () { if [ -d ${D}${infodir} ]; then rmdir --ignore-fail-on-non-empty -p ${D}${infodir} fi - if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then - ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS} - fi - } do_install_append_class-target () { @@ -100,20 +114,29 @@ do_install_append_class-target () { fi if [ "${TARGET_OS}" = "linux-gnun32" ]; then - if [ "${MULTILIBS}" != "" ]; then - mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux - ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32 + if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/32 + elif [ "${MULTILIB_VARIANTS}" != "" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32 else ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux fi - fi - if [ "${TARGET_OS}" = "linux-gnux32" ]; then - if [ "${MULTILIBS}" != "" ]; then - mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux - ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32 + elif [ "${TARGET_OS}" = "linux-gnux32" ]; then + if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/x32 + elif [ "${MULTILIB_VARIANTS}" != "" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32 else ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux fi + elif [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS} + ln -s ../${TARGET_SYS}/bits ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/bits + ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext fi if [ "${TCLIBC}" != "glibc" ]; then @@ -128,7 +151,7 @@ do_install_append_class-target () { } INHIBIT_DEFAULT_DEPS = "1" -DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ libgcc" +DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ libgcc virtual/${MLPREFIX}libc" PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs" BBCLASSEXTEND = "nativesdk" @@ -160,24 +183,12 @@ PACKAGES = "\ libitm-dev \ libitm-staticdev \ " -PACKAGES_append_x86 = "\ - libmpx \ - libmpx-dev \ - libmpx-staticdev \ -" - -PACKAGES_append_x86-64 = "\ - libmpx \ - libmpx-dev \ - libmpx-staticdev \ -" - # The base package doesn't exist, so we clear the recommends. RRECOMMENDS_${PN}-dbg = "" # include python debugging scripts FILES_${PN}-dbg += "\ - ${libdir}/libstdc++.so.*-gdb.py \ + ${libdir}/libstdc++.*-gdb.py \ ${datadir}/gcc-${BINV}/python/libstdcxx \ " @@ -214,7 +225,7 @@ FILES_libssp-dev = "\ ${libdir}/libssp*.so \ ${libdir}/libssp*_nonshared.a \ ${libdir}/libssp*.la \ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \ + ${libdir}/${TARGET_SYS}/${BINV}/include/ssp \ " SUMMARY_libssp-dev = "GNU stack smashing protection library - development files" FILES_libssp-staticdev = "${libdir}/libssp*.a" @@ -223,7 +234,7 @@ SUMMARY_libssp-staticdev = "GNU stack smashing protection library - static devel FILES_libquadmath = "${libdir}/libquadmath*.so.*" SUMMARY_libquadmath = "GNU quad-precision math library" FILES_libquadmath-dev = "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \ + ${libdir}/${TARGET_SYS}/${BINV}/include/quadmath* \ ${libdir}/libquadmath*.so \ ${libdir}/libquadmath.la \ " @@ -248,7 +259,8 @@ FILES_libgomp-dev = "\ ${libdir}/libgomp*${SOLIBSDEV} \ ${libdir}/libgomp*.la \ ${libdir}/libgomp.spec \ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " SUMMARY_libgomp-dev = "GNU OpenMP parallel programming library - development files" FILES_libgomp-staticdev = "${libdir}/libgomp*.a" @@ -275,20 +287,40 @@ SUMMARY_libitm-dev = "GNU transactional memory support library - development fil FILES_libitm-staticdev = "${libdir}/libitm.a" SUMMARY_libitm-staticdev = "GNU transactional memory support library - static development files" +require gcc-testsuite.inc + +EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} " + +MAKE_CHECK_TARGETS ??= "check-gcc ${@" ".join("check-target-" + i for i in d.getVar("RUNTIMETARGET").split())}" +# prettyprinters and xmethods require gdb tooling +MAKE_CHECK_IGNORE ??= "prettyprinters.exp xmethods.exp" +MAKE_CHECK_RUNTESTFLAGS ??= "${MAKE_CHECK_BOARDARGS} --ignore '${MAKE_CHECK_IGNORE}'" + +# specific host and target dependencies required for test suite running +do_check[depends] += "dejagnu-native:do_populate_sysroot expect-native:do_populate_sysroot" +do_check[depends] += "virtual/libc:do_populate_sysroot" +# only depend on qemu if targeting linux user execution +do_check[depends] += "${@'qemu-native:do_populate_sysroot' if "user" in d.getVar('TOOLCHAIN_TEST_TARGET') else ''}" +# extend the recipe sysroot to include the built libraries (for qemu usermode) +do_check[prefuncs] += "extend_recipe_sysroot" +do_check[prefuncs] += "check_prepare" +do_check[dirs] = "${WORKDIR}/dejagnu ${B}" +do_check[nostamp] = "1" +do_check() { + export DEJAGNU="${WORKDIR}/dejagnu/site.exp" + + # HACK: this works around the configure setting CXX with -nostd* args + sed -i 's/-nostdinc++ -nostdlib++//g' $(find ${B} -name testsuite_flags | head -1) + + if [ "${TOOLCHAIN_TEST_TARGET}" = "user" ]; then + # qemu user has issues allocating large amounts of memory + export G_SLICE=always-malloc + # no test should need more that 10G of memory, this prevents tests like pthread7-rope from leaking memory + ulimit -m 4194304 + ulimit -v 10485760 + fi + + oe_runmake -i ${MAKE_CHECK_TARGETS} RUNTESTFLAGS="${MAKE_CHECK_RUNTESTFLAGS}" +} +addtask check after do_compile do_populate_sysroot -FILES_libmpx = "${libdir}/libmpx.so.* ${libdir}/libmpxwrappers.so.*" -SUMMARY_libmpx = "Intel Memory Protection Extension library" -FILES_libmpx-dev = "\ - ${libdir}/libmpxwrappers.so \ - ${libdir}/libmpxwrappers.la \ - ${libdir}/libmpx.so \ - ${libdir}/libmpx.la \ - ${libdir}/libmpx.spec \ -" -SUMMARY_libmpx-dev = "Intel Memory Protection Extension library - development files" -FILES_libmpx-staticdev = "${libdir}/libmpx.a ${libdir}/libmpxwrappers.a" -SUMMARY_libmpx-staticdev = "Intel Memory Protection Extension library - static development files" - -do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata" -do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata" -do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-runtime_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-runtime_7.3.bb deleted file mode 100644 index 8f31e779..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-runtime_7.3.bb +++ /dev/null @@ -1,7 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-runtime.inc - -FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ -" - diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb deleted file mode 100644 index a1c7a76d..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb +++ /dev/null @@ -1,12 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-runtime.inc - -# Disable ifuncs for libatomic on arm conflicts -march/-mcpu -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " - -FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ -" - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-runtime_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-runtime_9.3.bb new file mode 100644 index 00000000..dd430b57 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-runtime_9.3.bb @@ -0,0 +1,2 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-runtime.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc index e5e84526..668e14a5 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc @@ -43,7 +43,10 @@ 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" BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_7.3.bb deleted file mode 100644 index 601f6660..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_7.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-sanitizers.inc diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.2.bb deleted file mode 100644 index f3c70581..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_8.2.bb +++ /dev/null @@ -1,7 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-sanitizers.inc - -# Building with thumb enabled on armv4t armv5t fails with -# sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8' -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.3.bb new file mode 100644 index 00000000..f3c70581 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.3.bb @@ -0,0 +1,7 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-sanitizers.inc + +# Building with thumb enabled on armv4t armv5t fails with +# sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8' +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-source_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-source_7.3.bb deleted file mode 100644 index b890fa33..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-source_7.3.bb +++ /dev/null @@ -1,4 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-source.inc - -EXCLUDE_FROM_WORLD = "1" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-source_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc-source_8.2.bb deleted file mode 100644 index b890fa33..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc-source_8.2.bb +++ /dev/null @@ -1,4 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require recipes-devtools/gcc/gcc-source.inc - -EXCLUDE_FROM_WORLD = "1" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-source_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc-source_9.3.bb new file mode 100644 index 00000000..b890fa33 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-source_9.3.bb @@ -0,0 +1,4 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require recipes-devtools/gcc/gcc-source.inc + +EXCLUDE_FROM_WORLD = "1" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc-target.inc b/external/poky/meta/recipes-devtools/gcc/gcc-target.inc index bc2236fe..6263e814 100644 --- a/external/poky/meta/recipes-devtools/gcc/gcc-target.inc +++ b/external/poky/meta/recipes-devtools/gcc/gcc-target.inc @@ -2,9 +2,7 @@ GCCMULTILIB = "--enable-multilib" require gcc-configure-common.inc EXTRA_OECONF_PATHS = "\ - --with-sysroot=/ \ --with-build-sysroot=${STAGING_DIR_TARGET} \ - --with-gxx-include-dir=${includedir}/c++/${BINV} \ " EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" @@ -17,9 +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_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 @@ -138,6 +138,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 } @@ -165,6 +180,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++ @@ -173,10 +192,6 @@ do_install () { # We don't care about the gcc- 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/external/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc b/external/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc new file mode 100644 index 00000000..f68fec58 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc-testsuite.inc @@ -0,0 +1,107 @@ +inherit qemu + +TOOLCHAIN_TEST_TARGET ??= "user" +TOOLCHAIN_TEST_HOST ??= "localhost" +TOOLCHAIN_TEST_HOST_USER ??= "root" +TOOLCHAIN_TEST_HOST_PORT ??= "2222" + +MAKE_CHECK_BOARDFLAGS ??= "" +MAKE_CHECK_BOARDARGS ??= "--target_board=${TOOLCHAIN_TEST_TARGET}${MAKE_CHECK_BOARDFLAGS}" + +python () { + # Provide the targets compiler args via targets options. This allows dejagnu to + # correctly mark incompatible tests as UNSUPPORTED (e.g. needs soft-float + # but running on hard-float target). + # + # These options are called "multilib_flags" within the gcc test suite. Most + # architectures handle these options in a sensible way such that tests that + # are incompatible with the provided multilib are marked as UNSUPPORTED. + # + # Note: multilib flags are added to the compile command after the args + # provided by any test (through dg-options), CFLAGS_FOR_TARGET is always + # added to the compile command before any other args but is not interpted + # as options like multilib flags. + # + # i686, x86-64 and aarch64 are special, since most toolchains built for + # these targets don't do multilib the tests do not get correctly marked as + # UNSUPPORTED. More importantly the test suite itself does not handle + # overriding the multilib flags where it could (like other archs do). As + # such do not pass the target compiler args for these targets. + args = d.getVar("TUNE_CCARGS").split() + if d.getVar("TUNE_ARCH") in ["i686", "x86_64", "aarch64"]: + args = [] + d.setVar("MAKE_CHECK_BOARDFLAGS", ("/" + "/".join(args)) if len(args) != 0 else "") +} + +python check_prepare() { + def generate_qemu_linux_user_config(d): + content = [] + content.append('load_generic_config "sim"') + content.append('load_base_board_description "basic-sim"') + content.append('process_multilib_options ""') + + # qemu args + qemu_binary = qemu_target_binary(d) + if not qemu_binary: + bb.fatal("Missing target qemu linux-user binary") + + args = [] + # QEMU_OPTIONS is not always valid due to -cross recipe + args += ["-r", d.getVar("OLDEST_KERNEL")] + # enable all valid instructions, since the test suite itself does not + # limit itself to the target cpu options. + # - valid for x86*, powerpc, arm, arm64 + if qemu_binary.lstrip("qemu-") in ["x86_64", "i386", "ppc", "arm", "aarch64"]: + args += ["-cpu", "max"] + + sysroot = d.getVar("RECIPE_SYSROOT") + args += ["-L", sysroot] + # lib paths are static here instead of using $libdir since this is used by a -cross recipe + libpaths = [sysroot + "/usr/lib", sysroot + "/lib"] + args += ["-E", "LD_LIBRARY_PATH={0}".format(":".join(libpaths))] + + content.append('set_board_info is_simulator 1') + content.append('set_board_info sim "{0}"'.format(qemu_binary)) + content.append('set_board_info sim,options "{0}"'.format(" ".join(args))) + + # target build/test config + content.append('set_board_info target_install {%s}' % d.getVar("TARGET_SYS")) + content.append('set_board_info ldscript ""') + #content.append('set_board_info needs_status_wrapper 1') # qemu-linux-user return codes work, and abort works fine + content.append('set_board_info gcc,stack_size 16834') + content.append('set_board_info gdb,nosignals 1') + content.append('set_board_info gcc,timeout 60') + + return "\n".join(content) + + def generate_remote_ssh_linux_config(d): + content = [] + content.append('load_generic_config "unix"') + content.append('process_multilib_options ""') + content.append("set_board_info hostname {0}".format(d.getVar("TOOLCHAIN_TEST_HOST"))) + content.append("set_board_info username {0}".format(d.getVar("TOOLCHAIN_TEST_HOST_USER"))) + + port = d.getVar("TOOLCHAIN_TEST_HOST_PORT") + content.append("set_board_info rsh_prog \"/usr/bin/ssh -p {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port)) + content.append("set_board_info rcp_prog \"/usr/bin/scp -P {0} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no\"".format(port)) + + return "\n".join(content) + + dejagnudir = d.expand("${WORKDIR}/dejagnu") + if not os.path.isdir(dejagnudir): + os.makedirs(dejagnudir) + + # write out target qemu board config + with open(os.path.join(dejagnudir, "user.exp"), "w") as f: + f.write(generate_qemu_linux_user_config(d)) + + # write out target ssh board config + with open(os.path.join(dejagnudir, "ssh.exp"), "w") as f: + f.write(generate_remote_ssh_linux_config(d)) + + # generate site.exp to provide boards + with open(os.path.join(dejagnudir, "site.exp"), "w") as f: + f.write("lappend boards_dir {0}\n".format(dejagnudir)) + f.write("set CFLAGS_FOR_TARGET \"{0}\"\n".format(d.getVar("TOOLCHAIN_OPTIONS"))) +} + diff --git a/external/poky/meta/recipes-devtools/gcc/gcc_7.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc_7.3.bb deleted file mode 100644 index ab208e70..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc_7.3.bb +++ /dev/null @@ -1,10 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-target.inc - -# Building with thumb enabled on armv4t armv5t fails with -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc_8.2.bb b/external/poky/meta/recipes-devtools/gcc/gcc_8.2.bb deleted file mode 100644 index 7d935905..00000000 --- a/external/poky/meta/recipes-devtools/gcc/gcc_8.2.bb +++ /dev/null @@ -1,14 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-target.inc - -# Building with thumb enabled on armv4t armv5t fails with -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -ARMFPARCHEXT_armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" - -BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/gcc/gcc_9.3.bb b/external/poky/meta/recipes-devtools/gcc/gcc_9.3.bb new file mode 100644 index 00000000..7d935905 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/gcc_9.3.bb @@ -0,0 +1,14 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-target.inc + +# Building with thumb enabled on armv4t armv5t fails with +# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs +# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +ARMFPARCHEXT_armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" +ARMFPARCHEXT_armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" +ARMFPARCHEXT_armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" + +BBCLASSEXTEND = "nativesdk" diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/external/poky/meta/recipes-devtools/gcc/libgcc-initial.inc index 950ad861..06bf224f 100644 --- a/external/poky/meta/recipes-devtools/gcc/libgcc-initial.inc +++ b/external/poky/meta/recipes-devtools/gcc/libgcc-initial.inc @@ -1,20 +1,58 @@ +# +# Notes on the way the OE cross toolchain now works +# +# We need a libgcc to build glibc. Tranditionally we therefore built +# a non-threaded and non-shared compiler (gcc-cross-initial), then use +# that to build libgcc-initial which is used to build glibc which we can +# then build gcc-cross and libgcc against. +# +# We were able to drop the glibc dependency from gcc-cross, with two tweaks: + +# a) specify the minimum glibc version to support in a configure option +# b) create a dummy limits.h file so that later when glibc creates one, +# the headers structure has support for it. We can do this with a simple +# empty file +# +# Once gcc-cross is libc independent, we can use it to build both +# libgcc-initial and then later libgcc. +# +# libgcc-initial is tricky as we need to imitate the non-threaded and +# non-shared case. We can do that by hacking the threading mode back to +# "single" even if gcc reports "posix" and disable libc presence for the +# libgcc-intial build. We have to create the dummy limits.h to avoid +# compiler errors from a missing header. +# +# glibc will fail to link with libgcc-initial due to a missing "exception +# handler" capable libgcc (libgcc_eh.a). Since we know glibc doesn't need +# any exception handler, we can safely symlink to libgcc.a. +# + require libgcc-common.inc -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial" +DEPENDS = "virtual/${TARGET_PREFIX}gcc" LICENSE = "GPL-3.0-with-GCC-exception" -STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}" -STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}" -PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:" - PACKAGES = "" EXTRA_OECONF += "--disable-shared" -COMPILERINITIAL = "-initial" - inherit nopackages # We really only want this built by things that need it, not any recrdeptask deltask do_build + +do_configure_prepend () { + install -d ${STAGING_INCDIR} + touch ${STAGING_INCDIR}/limits.h + sed -i -e 's#INHIBIT_LIBC_CFLAGS =.*#INHIBIT_LIBC_CFLAGS = -Dinhibit_libc#' ${B}/gcc/libgcc.mvars + sed -i -e 's#inhibit_libc = false#inhibit_libc = true#' ${B}/gcc/Makefile +} + +do_configure_append () { + sed -i -e 's#thread_header = .*#thread_header = gthr-single.h#' ${B}/${BPN}/Makefile +} + +do_install_append () { + ln -s libgcc.a ${D}${libdir}/${TARGET_SYS}/${BINV}/libgcc_eh.a +} diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc-initial_7.3.bb b/external/poky/meta/recipes-devtools/gcc/libgcc-initial_7.3.bb deleted file mode 100644 index 19f253fc..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgcc-initial_7.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc-initial.inc diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc-initial_8.2.bb b/external/poky/meta/recipes-devtools/gcc/libgcc-initial_8.2.bb deleted file mode 100644 index 0c698c26..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgcc-initial_8.2.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc-initial.inc - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc-initial_9.3.bb b/external/poky/meta/recipes-devtools/gcc/libgcc-initial_9.3.bb new file mode 100644 index 00000000..0c698c26 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/libgcc-initial_9.3.bb @@ -0,0 +1,5 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require libgcc-initial.inc + +# Building with thumb enabled on armv6t fails +ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc.inc b/external/poky/meta/recipes-devtools/gcc/libgcc.inc index 5f1dff60..6d48ec98 100644 --- a/external/poky/meta/recipes-devtools/gcc/libgcc.inc +++ b/external/poky/meta/recipes-devtools/gcc/libgcc.inc @@ -1,6 +1,6 @@ require libgcc-common.inc -DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" +DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ virtual/${MLPREFIX}libc" do_install_append_class-target () { if [ "${TCLIBC}" != "glibc" ]; then @@ -9,7 +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 + 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/external/poky/meta/recipes-devtools/gcc/libgcc_7.3.bb b/external/poky/meta/recipes-devtools/gcc/libgcc_7.3.bb deleted file mode 100644 index a5152f28..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgcc_7.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc.inc diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc_8.2.bb b/external/poky/meta/recipes-devtools/gcc/libgcc_8.2.bb deleted file mode 100644 index ea210a11..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgcc_8.2.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgcc.inc - -# Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/libgcc_9.3.bb b/external/poky/meta/recipes-devtools/gcc/libgcc_9.3.bb new file mode 100644 index 00000000..ea210a11 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/libgcc_9.3.bb @@ -0,0 +1,5 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require libgcc.inc + +# Building with thumb enabled on armv6t fails +ARM_INSTRUCTION_SET_armv6 = "arm" diff --git a/external/poky/meta/recipes-devtools/gcc/libgfortran.inc b/external/poky/meta/recipes-devtools/gcc/libgfortran.inc index 05237647..7543585e 100644 --- a/external/poky/meta/recipes-devtools/gcc/libgfortran.inc +++ b/external/poky/meta/recipes-devtools/gcc/libgfortran.inc @@ -53,6 +53,11 @@ PACKAGES = "\ libgfortran-dev \ libgfortran-staticdev \ " + +LICENSE_${PN} = "GPL-3.0-with-GCC-exception" +LICENSE_${PN}-dev = "GPL-3.0-with-GCC-exception" +LICENSE_${PN}-dbg = "GPL-3.0-with-GCC-exception" + FILES_${PN} = "${libdir}/libgfortran.so.*" FILES_${PN}-dev = "\ ${libdir}/libgfortran*.so \ @@ -61,6 +66,7 @@ FILES_${PN}-dev = "\ ${libdir}/gcc/${TARGET_SYS}/${BINV}/libgfortranbegin.* \ ${libdir}/gcc/${TARGET_SYS}/${BINV}/libcaf_single* \ ${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude/ \ + ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ \ " FILES_${PN}-staticdev = "${libdir}/libgfortran.a" diff --git a/external/poky/meta/recipes-devtools/gcc/libgfortran_7.3.bb b/external/poky/meta/recipes-devtools/gcc/libgfortran_7.3.bb deleted file mode 100644 index 71dd8b4b..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgfortran_7.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgfortran.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/libgfortran_8.2.bb b/external/poky/meta/recipes-devtools/gcc/libgfortran_8.2.bb deleted file mode 100644 index 71dd8b4b..00000000 --- a/external/poky/meta/recipes-devtools/gcc/libgfortran_8.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgfortran.inc - diff --git a/external/poky/meta/recipes-devtools/gcc/libgfortran_9.3.bb b/external/poky/meta/recipes-devtools/gcc/libgfortran_9.3.bb new file mode 100644 index 00000000..71dd8b4b --- /dev/null +++ b/external/poky/meta/recipes-devtools/gcc/libgfortran_9.3.bb @@ -0,0 +1,3 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require libgfortran.inc + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-8.2.inc b/external/poky/meta/recipes-devtools/gdb/gdb-8.2.inc deleted file mode 100644 index 7e0809de..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb-8.2.inc +++ /dev/null @@ -1,22 +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 = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \ - 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 \ - file://gdbserver-ctrl-c-handling.patch \ -" -SRC_URI[md5sum] = "b5a49dbff00d9a87fbe114d14b3101c0" -SRC_URI[sha256sum] = "c3a441a29c7c89720b734e5a9c6289c0a06be7e0c76ef538f7bbcef389347c39" - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-9.1.inc b/external/poky/meta/recipes-devtools/gdb/gdb-9.1.inc new file mode 100644 index 00000000..d019e6b3 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb-9.1.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] = "f7e9f6236c425097d9e5f18a6ac40655" +SRC_URI[sha256sum] = "699e0ec832fdd2f21c8266171ea5bf44024bd05164fdf064e4d10cc4cf0d1737" diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-common.inc b/external/poky/meta/recipes-devtools/gdb/gdb-common.inc index fa64939f..08f615ad 100644 --- a/external/poky/meta/recipes-devtools/gdb/gdb-common.inc +++ b/external/poky/meta/recipes-devtools/gdb/gdb-common.inc @@ -4,11 +4,10 @@ SECTION = "devel" DEPENDS = "expat zlib ncurses virtual/libiconv ${LTTNGUST} bison-native" LTTNGUST = "lttng-ust" +LTTNGUST_arc = "" LTTNGUST_aarch64 = "" -LTTNGUST_riscv64 = "" LTTNGUST_mipsarch = "" LTTNGUST_sh4 = "" -LTTNGUST_libc-musl = "" inherit autotools texinfo diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc index 4fc6747d..c9daf25a 100644 --- a/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc +++ b/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc @@ -6,7 +6,7 @@ PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}" BPN = "gdb" DEPENDS = "nativesdk-ncurses nativesdk-expat nativesdk-gettext \ - virtual/${HOST_PREFIX}gcc-crosssdk virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-${HOST_PREFIX}libc-for-gcc" + virtual/${HOST_PREFIX}gcc-crosssdk virtual/${HOST_PREFIX}binutils-crosssdk virtual/nativesdk-libc" GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'" @@ -40,4 +40,3 @@ do_install_append() { rm -rf ${D}${exec_prefix}/lib cross_canadian_bindirlinks } - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.2.bb b/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.2.bb deleted file mode 100644 index 30103594..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_8.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -require gdb-common.inc -require gdb-cross-canadian.inc -require gdb-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb b/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb new file mode 100644 index 00000000..30103594 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb-cross-canadian_9.1.bb @@ -0,0 +1,3 @@ +require gdb-common.inc +require gdb-cross-canadian.inc +require gdb-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-cross_8.2.bb b/external/poky/meta/recipes-devtools/gdb/gdb-cross_8.2.bb deleted file mode 100644 index 50cf159f..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb-cross_8.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -require gdb-cross.inc -require gdb-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/gdb/gdb-cross_9.1.bb b/external/poky/meta/recipes-devtools/gdb/gdb-cross_9.1.bb new file mode 100644 index 00000000..50cf159f --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb-cross_9.1.bb @@ -0,0 +1,2 @@ +require gdb-cross.inc +require gdb-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/gdb/gdb.inc b/external/poky/meta/recipes-devtools/gdb/gdb.inc index 52119a0a..249e24dc 100644 --- a/external/poky/meta/recipes-devtools/gdb/gdb.inc +++ b/external/poky/meta/recipes-devtools/gdb/gdb.inc @@ -8,3 +8,7 @@ inherit gettext # cross-canadian must not see this PACKAGES =+ "gdbserver" FILES_gdbserver = "${bindir}/gdbserver" + +ALLOW_EMPTY_gdbserver_riscv64 = "1" +ALLOW_EMPTY_gdbserver_riscv32 = "1" + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch new file mode 100644 index 00000000..82287ea1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch @@ -0,0 +1,25 @@ +From 036f8e1d387f65e52cb021dbb1bd28e8b75cf017 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 02:27:55 +0000 +Subject: [PATCH] make man install relative to DESTDIR + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + sim/common/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in +index c6de14122c..c4b1214946 100644 +--- a/sim/common/Makefile.in ++++ b/sim/common/Makefile.in +@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias) + datarootdir = @datarootdir@ + datadir = @datadir@ + mandir = @mandir@ +-man1dir = $(mandir)/man1 ++man1dir = $(DESTDIR)$(mandir)/man1 + infodir = @infodir@ + includedir = @includedir@ + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch deleted file mode 100644 index 60479e54..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b0209f282716bed2c230c7b496fbcc7af503d0cc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 02:27:55 +0000 -Subject: [PATCH 02/11] make man install relative to DESTDIR - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - sim/common/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in -index 227e4cfbc2..8c3457e0bd 100644 ---- a/sim/common/Makefile.in -+++ b/sim/common/Makefile.in -@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias) - datarootdir = @datarootdir@ - datadir = @datadir@ - mandir = @mandir@ --man1dir = $(mandir)/man1 -+man1dir = $(DESTDIR)$(mandir)/man1 - infodir = @infodir@ - includedir = @includedir@ - --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch new file mode 100644 index 00000000..6067caf6 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch @@ -0,0 +1,32 @@ +From 6bff2862f9597f324a9385eb2f828e838e51a8a1 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 23 Mar 2016 06:30:09 +0000 +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 +only defined when GCC is using o32 ABI, in that +case gcc emits it as built-in define and hence +it works ok for mips32 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + gdb/mips-linux-nat.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c +index 104c972f24..7f575b3363 100644 +--- a/gdb/mips-linux-nat.c ++++ b/gdb/mips-linux-nat.c +@@ -41,6 +41,10 @@ + #ifndef PTRACE_GET_THREAD_AREA + #define PTRACE_GET_THREAD_AREA 25 + #endif ++/* musl does not define and relies on compiler built-in macros for it */ ++#ifndef _ABIO32 ++#define _ABIO32 1 ++#endif + + class mips_linux_nat_target final : public linux_nat_trad_target + { diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch deleted file mode 100644 index cf54c74c..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b14a57d90e1cdd8144cda4c8882bd1db44d26dab Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 23 Mar 2016 06:30:09 +0000 -Subject: [PATCH 03/11] 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 -only defined when GCC is using o32 ABI, in that -case gcc emits it as built-in define and hence -it works ok for mips32 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - gdb/mips-linux-nat.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c -index 32835c16b2..68a7587af2 100644 ---- a/gdb/mips-linux-nat.c -+++ b/gdb/mips-linux-nat.c -@@ -41,6 +41,10 @@ - #ifndef PTRACE_GET_THREAD_AREA - #define PTRACE_GET_THREAD_AREA 25 - #endif -+/* musl does not define and relies on compiler built-in macros for it */ -+#ifndef _ABIO32 -+#define _ABIO32 1 -+#endif - - class mips_linux_nat_target final : public linux_nat_trad_target - { --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch new file mode 100644 index 00000000..c4bab7bb --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch @@ -0,0 +1,49 @@ +From d5817bcf2f7313699bfa85b41220d862db327664 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Apr 2016 18:32:14 -0700 +Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + 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 5d8d67bec2..ffcf65ab58 100644 +--- a/gdb/gdbserver/linux-ppc-low.c ++++ b/gdb/gdbserver/linux-ppc-low.c +@@ -23,7 +23,13 @@ + #include "elf/common.h" + #include + #include ++#if !defined(__GLIBC__) ++# define pt_regs uapi_pt_regs ++#endif + #include ++#if !defined(__GLIBC__) ++# undef pt_regs ++#endif + + #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 d937a65b69..1fd54b4a0e 100644 +--- a/gdb/nat/ppc-linux.h ++++ b/gdb/nat/ppc-linux.h +@@ -18,7 +18,13 @@ + #ifndef NAT_PPC_LINUX_H + #define NAT_PPC_LINUX_H + ++#if !defined(__GLIBC__) ++# define pt_regs uapi_pt_regs ++#endif + #include ++#if !defined(__GLIBC__) ++# undef pt_regs ++#endif + #include + + /* This sometimes isn't defined. */ diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch new file mode 100644 index 00000000..fd165d4b --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0004-Add-support-for-Renesas-SH-sh4-architecture.patch @@ -0,0 +1,911 @@ +From 505f10a0ea1a8bba0584859d9a348bb779593ec2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 02:31:12 +0000 +Subject: [PATCH] Add support for Renesas SH (sh4) architecture. + +gdb (7.4-1~cvs20111117.2) experimental; urgency=low + . + * Add Renesas SH (sh4) support (Closes: #576242) + - Thanks Nobuhiro Iwamatsu, Takashi Yoshii. +Author: Hector Oron +Bug-Debian: http://bugs.debian.org/576242 + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + gdb/Makefile.in | 2 + + gdb/configure.host | 1 + + gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++ + gdb/sh-tdep.c | 53 ++- + gdb/sh-tdep.h | 49 +++ + gdb/testsuite/gdb.asm/asm-source.exp | 5 + + gdb/testsuite/gdb.asm/sh.inc | 3 +- + gdb/testsuite/gdb.base/annota1.c | 3 + + gdb/testsuite/gdb.base/annota3.c | 4 + + gdb/testsuite/gdb.base/sigall.c | 3 + + gdb/testsuite/gdb.base/signals.c | 4 + + 11 files changed, 617 insertions(+), 29 deletions(-) + +diff --git a/gdb/Makefile.in b/gdb/Makefile.in +index c3e074b21f..42dd7af59c 100644 +--- a/gdb/Makefile.in ++++ b/gdb/Makefile.in +@@ -2317,6 +2317,8 @@ ALLDEPFILES = \ + sh-nbsd-nat.c \ + sh-nbsd-tdep.c \ + sh-tdep.c \ ++ sh-linux-tdep.c \ ++ sh-linux-nat.c \ + sol2-tdep.c \ + solib-aix.c \ + solib-svr4.c \ +diff --git a/gdb/configure.host b/gdb/configure.host +index ce52823729..5b5173a71a 100644 +--- a/gdb/configure.host ++++ b/gdb/configure.host +@@ -148,6 +148,7 @@ riscv*-*-linux*) gdb_host=linux ;; + + s390*-*-linux*) gdb_host=linux ;; + ++sh*-*-linux*) gdb_host=linux ;; + sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu) + gdb_host=nbsd ;; + sh*-*-openbsd*) gdb_host=nbsd ;; +diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c +index 13c10eeeda..1d0d583a64 100644 +--- a/gdb/sh-linux-tdep.c ++++ b/gdb/sh-linux-tdep.c +@@ -18,14 +18,37 @@ + along with this program. If not, see . */ + + #include "defs.h" ++#include "gdbcore.h" ++#include "frame.h" ++#include "frame-base.h" ++#include "frame-unwind.h" ++#include "dwarf2-frame.h" ++#include "value.h" ++#include "regcache.h" ++#include "inferior.h" + #include "osabi.h" + ++#include "reggroups.h" ++#include "arch-utils.h" ++#include "floatformat.h" + #include "solib-svr4.h" + #include "symtab.h" ++#include "gdb_string.h" ++#include "command.h" ++#include "gdb_assert.h" + + #include "trad-frame.h" + #include "tramp-frame.h" + ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "regset.h" + #include "glibc-tdep.h" + #include "sh-tdep.h" + #include "linux-tdep.h" +@@ -181,9 +204,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = { + sh_linux_rt_sigreturn_init + }; + ++/* Recognizing signal handler frames. */ ++ ++/* GNU/Linux has two flavors of signals. Normal signal handlers, and ++ "realtime" (RT) signals. The RT signals can provide additional ++ information to the signal handler if the SA_SIGINFO flag is set ++ when establishing a signal handler using `sigaction'. It is not ++ unlikely that future versions of GNU/Linux will support SA_SIGINFO ++ for normal signals too. */ ++ ++/* When the SH Linux kernel calls a signal handler and the ++ SA_RESTORER flag isn't set, the return address points to a bit of ++ code on the stack. This function returns whether the PC appears to ++ be within this bit of code. ++ ++ The instruction sequence for normal signals is ++ mov.w 1f,r3 ++ trapa #16 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ 1: .word __NR_sigreturn ++ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077. ++ ++ Checking for the code sequence should be somewhat reliable, because ++ the effect is to call the system call sigreturn. This is unlikely ++ to occur anywhere other than a signal trampoline. ++ ++ It kind of sucks that we have to read memory from the process in ++ order to identify a signal trampoline, but there doesn't seem to be ++ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to ++ only call us if no function name could be identified, which should ++ be the case since the code is on the stack. ++ ++ Detection of signal trampolines for handlers that set the ++ SA_RESTORER flag is in general not possible. Unfortunately this is ++ what the GNU C Library has been doing for quite some time now. ++ However, as of version 2.1.2, the GNU C Library uses signal ++ trampolines (named __restore and __restore_rt) that are identical ++ to the ones used by the kernel. Therefore, these trampolines are ++ supported too. */ ++ ++#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */ ++#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */ ++#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */ ++ ++#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */ ++#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */ ++#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */ ++ ++static const unsigned short linux_sigtramp_code[] = ++{ ++ LINUX_SIGTRAMP_INSN0, ++ LINUX_SIGTRAMP_INSN1, ++ LINUX_SIGTRAMP_INSN2, ++ LINUX_SIGTRAMP_INSN2, ++ LINUX_SIGTRAMP_INSN2, ++ LINUX_SIGTRAMP_INSN2, ++ LINUX_SIGTRAMP_INSN2, ++ __NR_sigreturn ++}; ++ ++#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code) ++ ++/* If PC is in a sigtramp routine, return the address of the start of ++ the routine. Otherwise, return 0. */ ++ ++static CORE_ADDR ++sh_linux_sigtramp_start (struct frame_info *next_frame) ++{ ++ CORE_ADDR pc = get_frame_pc (next_frame); ++ gdb_byte buf[LINUX_SIGTRAMP_LEN]; ++ ++ /* We only recognize a signal trampoline if PC is at the start of ++ one of the three instructions. We optimize for finding the PC at ++ the start, as will be the case when the trampoline is not the ++ first frame on the stack. We assume that in the case where the ++ PC is not at the start of the instruction sequence, there will be ++ a few trailing readable bytes on the stack. */ ++ ++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN)) ++ return 0; ++ ++ if (buf[0] != LINUX_SIGTRAMP_INSN0) ++ { ++ if (buf[0] != LINUX_SIGTRAMP_INSN1) ++ return 0; ++ ++ pc -= 2; ++ ++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN)) ++ return 0; ++ } ++ ++ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0) ++ return 0; ++ ++ return pc; ++} ++ ++/* This function does the same for RT signals. Here the instruction ++ sequence is ++ mov.w 1f,r3 ++ trapa #16 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ 1: .word __NR_rt_sigreturn ++ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad. ++ ++ The effect is to call the system call rt_sigreturn. */ ++ ++#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */ ++#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */ ++#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */ ++ ++static const unsigned short linux_rt_sigtramp_code[] = ++{ ++ LINUX_RT_SIGTRAMP_INSN0, ++ LINUX_RT_SIGTRAMP_INSN1, ++ LINUX_RT_SIGTRAMP_INSN2, ++ LINUX_RT_SIGTRAMP_INSN2, ++ LINUX_RT_SIGTRAMP_INSN2, ++ LINUX_RT_SIGTRAMP_INSN2, ++ LINUX_RT_SIGTRAMP_INSN2, ++ __NR_rt_sigreturn ++}; ++ ++#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code) ++ ++/* If PC is in a RT sigtramp routine, return the address of the start ++ of the routine. Otherwise, return 0. */ ++ ++static CORE_ADDR ++sh_linux_rt_sigtramp_start (struct frame_info *next_frame) ++{ ++ CORE_ADDR pc = get_frame_pc (next_frame); ++ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN]; ++ ++ /* We only recognize a signal trampoline if PC is at the start of ++ one of the two instructions. We optimize for finding the PC at ++ the start, as will be the case when the trampoline is not the ++ first frame on the stack. We assume that in the case where the ++ PC is not at the start of the instruction sequence, there will be ++ a few trailing readable bytes on the stack. */ ++ ++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN)) ++ return 0; ++ ++ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0) ++ { ++ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1) ++ return 0; ++ ++ pc -= 2; ++ ++ if (!safe_frame_unwind_memory (next_frame, pc, buf, ++ LINUX_RT_SIGTRAMP_LEN)) ++ return 0; ++ } ++ ++ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0) ++ return 0; ++ ++ return pc; ++} ++ ++/* Return whether PC is in a GNU/Linux sigtramp routine. */ ++ ++static int ++sh_linux_sigtramp_p (struct frame_info *this_frame) ++{ ++ CORE_ADDR pc = get_frame_pc (this_frame); ++ char *name; ++ ++ find_pc_partial_function (pc, &name, NULL, NULL); ++ ++ /* If we have NAME, we can optimize the search. The trampolines are ++ named __restore and __restore_rt. However, they aren't dynamically ++ exported from the shared C library, so the trampoline may appear to ++ be part of the preceding function. This should always be sigaction, ++ __sigaction, or __libc_sigaction (all aliases to the same function). */ ++ if (name == NULL || strstr (name, "sigaction") != NULL) ++ return (sh_linux_sigtramp_start (this_frame) != 0 ++ || sh_linux_rt_sigtramp_start (this_frame) != 0); ++ ++ return (strcmp ("__restore", name) == 0 ++ || strcmp ("__restore_rt", name) == 0); ++} ++ ++/* Offset to struct sigcontext in ucontext, from . */ ++#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12 ++ ++ ++/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp ++ routine, return the address of the associated sigcontext structure. */ ++ ++static CORE_ADDR ++sh_linux_sigcontext_addr (struct frame_info *this_frame) ++{ ++ CORE_ADDR pc; ++ CORE_ADDR sp; ++ ++ sp = get_frame_register_unsigned (this_frame, SP_REGNUM); ++ ++ pc = sh_linux_sigtramp_start (this_frame); ++ if (pc) ++ { ++ return sp; ++ } ++ ++ pc = sh_linux_rt_sigtramp_start (this_frame); ++ if (pc) ++ { ++ CORE_ADDR ucontext_addr; ++ ++ /* The sigcontext structure is part of the user context. A ++ pointer to the user context is passed as the third argument ++ to the signal handler. */ ++ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2); ++ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET; ++ } ++ ++ error ("Couldn't recognize signal trampoline."); ++ return 0; ++} ++ ++/* Signal trampolines. */ ++extern struct sh_frame_cache *sh_alloc_frame_cache (void); ++ ++static struct sh_frame_cache * ++sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache) ++{ ++ struct sh_frame_cache *cache; ++ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ()); ++ CORE_ADDR sigcontext_addr; ++ ++ if (*this_cache) ++ return *this_cache; ++ ++ cache = sh_alloc_frame_cache (); ++ ++ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM); ++ sigcontext_addr = tdep->sigcontext_addr (this_frame); ++ if (tdep->sc_reg_offset) ++ { ++ int i; ++ ++ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS); ++ ++ for (i = 0; i < tdep->sc_num_regs; i++) ++ if (tdep->sc_reg_offset[i] != -1) ++ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i]; ++ } ++ ++ *this_cache = cache; ++ return cache; ++} ++ ++static void ++sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache, ++ struct frame_id *this_id) ++{ ++ struct sh_frame_cache *cache = ++ sh_linux_sigtramp_frame_cache (this_frame, this_cache); ++ ++ (*this_id) = frame_id_build (cache->base + 64, cache->pc); ++} ++ ++extern struct value * sh_frame_prev_register (); ++static struct value * ++sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame, ++ void **this_cache, int regnum) ++{ ++ sh_linux_sigtramp_frame_cache (this_frame, this_cache); ++ ++ return sh_frame_prev_register (this_frame, this_cache, regnum); ++} ++ ++static int ++sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self, ++ struct frame_info *this_frame, ++ void **this_prologue_cache) ++{ ++ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame)); ++ ++ /* We shouldn't even bother if we don't have a sigcontext_addr ++ handler. */ ++ if (tdep->sigcontext_addr == NULL) ++ return 0; ++ ++ if (tdep->sigtramp_p != NULL) ++ { ++ if (tdep->sigtramp_p (this_frame)) ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static const struct frame_unwind sh_linux_sigtramp_frame_unwind = ++{ ++ SIGTRAMP_FRAME, ++ sh_linux_sigtramp_frame_this_id, ++ sh_linux_sigtramp_frame_prev_register, ++ NULL, ++ sh_linux_sigtramp_frame_sniffer ++}; ++ ++/* Supply register REGNUM from the buffer specified by GREGS and LEN ++ in the general-purpose register set REGSET to register cache ++ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */ ++ ++void ++sh_supply_gregset (const struct regset *regset, struct regcache *regcache, ++ int regnum, const void *gregs, size_t len) ++{ ++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); ++ const char *regs = gregs; ++ int i; ++ ++ gdb_assert (len == tdep->sizeof_gregset); ++ ++ for (i = 0; i < tdep->gregset_num_regs; i++) ++ { ++ if ((regnum == i || regnum == -1) ++ && tdep->gregset_reg_offset[i] != -1) ++ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]); ++ } ++} ++ ++/* Collect register REGNUM from the register cache REGCACHE and store ++ it in the buffer specified by GREGS and LEN as described by the ++ general-purpose register set REGSET. If REGNUM is -1, do this for ++ all registers in REGSET. */ ++ ++void ++sh_collect_gregset (const struct regset *regset, ++ const struct regcache *regcache, ++ int regnum, void *gregs, size_t len) ++{ ++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); ++ char *regs = gregs; ++ int i; ++ ++ gdb_assert (len == tdep->sizeof_gregset); ++ ++ for (i = 0; i < tdep->gregset_num_regs; i++) ++ { ++ if ((regnum == i || regnum == -1) ++ && tdep->gregset_reg_offset[i] != -1) ++ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]); ++ } ++} ++ ++/* Supply register REGNUM from the buffer specified by FPREGS and LEN ++ in the floating-point register set REGSET to register cache ++ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */ ++ ++static void ++sh_supply_fpregset (const struct regset *regset, struct regcache *regcache, ++ int regnum, const void *fpregs, size_t len) ++{ ++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); ++ const char *regs = fpregs; ++ int i; ++ ++ gdb_assert (len == tdep->sizeof_fpregset); ++ for (i = 0; i < 16; i++) ++ { ++ if (regnum == i+25 || regnum == -1) ++ regcache_raw_supply (regcache, i+25, regs + i*4); ++ } ++ if (regnum == FPSCR_REGNUM || regnum == -1) ++ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4); ++ if (regnum == FPUL_REGNUM || regnum == -1) ++ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4); ++} ++ ++/* Collect register REGNUM from the register cache REGCACHE and store ++ it in the buffer specified by FPREGS and LEN as described by the ++ floating-point register set REGSET. If REGNUM is -1, do this for ++ all registers in REGSET. */ ++ ++static void ++sh_collect_fpregset (const struct regset *regset, ++ const struct regcache *regcache, ++ int regnum, void *fpregs, size_t len) ++{ ++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); ++ char *regs = fpregs; ++ int i; ++ ++ gdb_assert (len == tdep->sizeof_fpregset); ++ for (i = 0; i < 16; i++) ++ { ++ if (regnum == i+25 || regnum == -1) ++ regcache_raw_collect (regcache, i+25, regs + i*4); ++ } ++ if (regnum == FPSCR_REGNUM || regnum == -1) ++ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4); ++ if (regnum == FPUL_REGNUM || regnum == -1) ++ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4); ++} ++ ++/* Return the appropriate register set for the core section identified ++ by SECT_NAME and SECT_SIZE. */ ++ ++const struct regset * ++sh_linux_regset_from_core_section (struct gdbarch *gdbarch, ++ const char *sect_name, size_t sect_size) ++{ ++ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); ++ ++ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset) ++ { ++ if (tdep->gregset == NULL) ++ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset, ++ sh_collect_gregset); ++ return tdep->gregset; ++ } ++ ++ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset)) ++ { ++ if (tdep->fpregset == NULL) ++ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset, ++ sh_collect_fpregset); ++ return tdep->fpregset; ++ } ++ ++ return NULL; ++} ++ ++/* The register sets used in GNU/Linux ELF core-dumps are identical to ++ the register sets in `struct user' that are used for a.out ++ core-dumps. These are also used by ptrace(2). The corresponding ++ types are `elf_gregset_t' for the general-purpose registers (with ++ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t' ++ for the floating-point registers. ++ ++ Those types used to be available under the names `gregset_t' and ++ `fpregset_t' too, and GDB used those names in the past. But those ++ names are now used for the register sets used in the `mcontext_t' ++ type, which have a different size and layout. */ ++ ++/* Mapping between the general-purpose registers in `struct user' ++ format and GDB's register cache layout. */ ++ ++/* From . */ ++static int sh_linux_gregset_reg_offset[] = ++{ ++ 0, 4, 8, 12, 16, 20, 24, 28, ++ 32, 36, 40, 44, 48, 52, 56, 60, ++ ++ REG_PC*4, REG_PR*4, REG_GBR*4, -1, ++ REG_MACH*4, REG_MACL*4, REG_SR*4, ++}; ++ ++/* Mapping between the general-purpose registers in `struct ++ sigcontext' format and GDB's register cache layout. */ ++ ++/* From . */ ++static int sh_linux_sc_reg_offset[] = ++{ ++ 4, 8, 12, 16, 20, 24, 28, 32, ++ 36, 40, 44, 48, 52, 56, 60, 64, ++ 68, 72, 80, -1, ++ 84, 88, 76 ++}; ++ + static void + sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) + { ++ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); ++ bfd abfd; ++ ++ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset; ++ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset); ++ tdep->sizeof_gregset = 23 * 4; ++ ++ tdep->jb_pc_offset = 32; /* From . */ ++ ++ tdep->sigtramp_p = sh_linux_sigtramp_p; ++ tdep->sigcontext_addr = sh_linux_sigcontext_addr; ++ tdep->sc_reg_offset = sh_linux_sc_reg_offset; ++ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset); ++ ++ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind); ++ ++ /* If we have a register mapping, enable the generic core file ++ support, unless it has already been enabled. */ ++ if (tdep->gregset_reg_offset ++ && !gdbarch_regset_from_core_section_p (gdbarch)) ++ set_gdbarch_regset_from_core_section (gdbarch, ++ sh_linux_regset_from_core_section); ++ + linux_init_abi (info, gdbarch); + + /* GNU/Linux uses SVR4-style shared libraries. */ +diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c +index e3aee0ac28..5958cf3688 100644 +--- a/gdb/sh-tdep.c ++++ b/gdb/sh-tdep.c +@@ -21,6 +21,9 @@ + sac@cygnus.com. */ + + #include "defs.h" ++#include "arch-utils.h" ++#include "command.h" ++#include "dummy-frame.h" + #include "frame.h" + #include "frame-base.h" + #include "frame-unwind.h" +@@ -66,23 +69,6 @@ static const char *const sh_cc_enum[] = { + + static const char *sh_active_calling_convention = sh_cc_gcc; + +-#define SH_NUM_REGS 67 +- +-struct sh_frame_cache +-{ +- /* Base address. */ +- CORE_ADDR base; +- LONGEST sp_offset; +- CORE_ADDR pc; +- +- /* Flag showing that a frame has been created in the prologue code. */ +- int uses_fp; +- +- /* Saved registers. */ +- CORE_ADDR saved_regs[SH_NUM_REGS]; +- CORE_ADDR saved_sp; +-}; +- + static int + sh_is_renesas_calling_convention (struct type *func_type) + { +@@ -1050,7 +1036,7 @@ sh_treat_as_flt_p (struct type *type) + return 0; + /* Otherwise if the type of that member is float, the whole type is + treated as float. */ +- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT) ++ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT) + return 1; + /* Otherwise it's not treated as float. */ + return 0; +@@ -1100,7 +1086,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, + in four registers available. Loop thru args from first to last. */ + for (argnum = 0; argnum < nargs; argnum++) + { +- type = value_type (args[argnum]); ++ type = check_typedef (value_type (args[argnum])); + len = TYPE_LENGTH (type); + val = sh_justify_value_in_reg (gdbarch, args[argnum], len); + +@@ -1835,7 +1821,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum, + reg->how = DWARF2_FRAME_REG_UNDEFINED; + } + +-static struct sh_frame_cache * ++struct sh_frame_cache * + sh_alloc_frame_cache (void) + { + struct sh_frame_cache *cache; +@@ -1862,7 +1848,7 @@ sh_alloc_frame_cache (void) + return cache; + } + +-static struct sh_frame_cache * ++struct sh_frame_cache * + sh_frame_cache (struct frame_info *this_frame, void **this_cache) + { + struct gdbarch *gdbarch = get_frame_arch (this_frame); +@@ -1929,9 +1915,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache) + return cache; + } + +-static struct value * +-sh_frame_prev_register (struct frame_info *this_frame, +- void **this_cache, int regnum) ++struct value * ++sh_frame_prev_register (struct frame_info *this_frame, void **this_cache, ++ int regnum) + { + struct gdbarch *gdbarch = get_frame_arch (this_frame); + struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache); +@@ -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)) +- regnum = PR_REGNUM; ++ regnum = PR_REGNUM; /* XXX: really? */ + + if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1) + return frame_unwind_got_memory (this_frame, regnum, +@@ -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) + { +- struct gdbarch *gdbarch; + struct gdbarch_tdep *tdep; ++ struct gdbarch *gdbarch; + + /* If there is already a candidate, use it. */ + arches = gdbarch_list_lookup_by_info (arches, &info); +@@ -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); + ++ /* General-purpose registers. */ ++ tdep->gregset = NULL; ++ tdep->gregset_reg_offset = NULL; ++ tdep->gregset_num_regs = 23; ++ tdep->sizeof_gregset = 0; ++ ++ /* Floating-point registers. */ ++ tdep->fpregset = NULL; ++ tdep->sizeof_fpregset = 34*4; ++ ++ tdep->jb_pc_offset = -1; ++ + 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); +@@ -2398,10 +2396,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) + break; + } + ++ dwarf2_append_unwinders (gdbarch); ++ + /* Hook in ABI-specific overrides, if they have been registered. */ + gdbarch_init_osabi (info, gdbarch); + +- dwarf2_append_unwinders (gdbarch); + frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind); + frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind); + +diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h +index 76e2e76e39..2710f63010 100644 +--- a/gdb/sh-tdep.h ++++ b/gdb/sh-tdep.h +@@ -21,6 +21,12 @@ + + /* Contributed by Steve Chamberlain sac@cygnus.com. */ + ++struct frame_info; ++struct gdbarch; ++struct reggroup; ++struct regset; ++struct regcache; ++ + /* Registers for all SH variants. Used also by sh3-rom.c. */ + enum + { +@@ -29,6 +35,7 @@ enum + ARG0_REGNUM = 4, + ARGLAST_REGNUM = 7, + FP_REGNUM = 14, ++ SP_REGNUM = 15, + PC_REGNUM = 16, + PR_REGNUM = 17, + GBR_REGNUM = 18, +@@ -81,6 +88,24 @@ enum + FV0_REGNUM = 76, + FV_LAST_REGNUM = 79 + }; ++#define SH_NUM_REGS 67 ++ ++struct sh_frame_cache ++{ ++ /* Base address. */ ++ CORE_ADDR base; ++ LONGEST sp_offset; ++ CORE_ADDR pc; ++ ++ /* Flag showing that a frame has been created in the prologue code. */ ++ int uses_fp; ++ ++ /* Saved registers. */ ++ CORE_ADDR saved_regs[SH_NUM_REGS]; ++ CORE_ADDR saved_sp; ++}; ++ ++extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache); + + /* This structure describes a register in a core-file. */ + struct sh_corefile_regmap +@@ -89,8 +114,32 @@ struct sh_corefile_regmap + unsigned int offset; + }; + ++/* sh architecture specific information. */ + struct gdbarch_tdep + { ++ /* General-purpose registers. */ ++ struct regset *gregset; ++ int *gregset_reg_offset; ++ int gregset_num_regs; ++ size_t sizeof_gregset; ++ ++ /* Floating-point registers. */ ++ struct regset *fpregset; ++ size_t sizeof_fpregset; ++ ++ /* Offset of saved PC in jmp_buf. */ ++ int jb_pc_offset; ++ ++ /* Detect sigtramp. */ ++ int (*sigtramp_p) (struct frame_info *); ++ ++ /* Get address of sigcontext for sigtramp. */ ++ CORE_ADDR (*sigcontext_addr) (struct frame_info *); ++ ++ /* Offset of registers in `struct sigcontext'. */ ++ int *sc_reg_offset; ++ int sc_num_regs; ++ + /* Non-NULL when debugging from a core file. Provides the offset + 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 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] { + append link-flags " -m elf32ppc" + } + } ++ "sh*-linux*" { ++ set asm-arch sh-linux ++ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}" ++ set debug-flags "-gdwarf-2" ++ } + "sh*-*-*" { + set asm-arch sh + set debug-flags "-gdwarf-2" +diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc +index a4a5fc545e..89efed7795 100644 +--- a/gdb/testsuite/gdb.asm/sh.inc ++++ b/gdb/testsuite/gdb.asm/sh.inc +@@ -40,9 +40,8 @@ + mov.l .Lconst\@,r1 + bra .Lafterconst\@ + nop +- nop +-.Lconst\@: + .align 2 ++.Lconst\@: + .long \subr + .align 1 + .Lafterconst\@: +diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c +index 424e1b8327..0de2e7b633 100644 +--- a/gdb/testsuite/gdb.base/annota1.c ++++ b/gdb/testsuite/gdb.base/annota1.c +@@ -1,6 +1,9 @@ + #include + #include + ++#ifdef __sh__ ++#define signal(a,b) /* Signals not supported on this target - make them go away */ ++#endif + + void + handle_USR1 (int sig) +diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c +index 424e1b8327..952aaf218a 100644 +--- a/gdb/testsuite/gdb.base/annota3.c ++++ b/gdb/testsuite/gdb.base/annota3.c +@@ -1,6 +1,10 @@ + #include + #include + ++#ifdef __sh__ ++#define signal(a,b) /* Signals not supported on this target - make them go away */ ++#endif ++ + + void + handle_USR1 (int sig) +diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c +index 81f3b08d6b..1574b2d6cb 100644 +--- a/gdb/testsuite/gdb.base/sigall.c ++++ b/gdb/testsuite/gdb.base/sigall.c +@@ -1,6 +1,9 @@ + #include + #include + ++#ifdef __sh__ ++#define signal(a,b) /* Signals not supported on this target - make them go away */ ++#endif + + /* Signal handlers, we set breakpoints in them to make sure that the + signals really get delivered. */ +diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c +index 756606880f..1205a9bc9c 100644 +--- a/gdb/testsuite/gdb.base/signals.c ++++ b/gdb/testsuite/gdb.base/signals.c +@@ -3,6 +3,10 @@ + #include + #include + ++#ifdef __sh__ ++#define signal(a,b) /* Signals not supported on this target - make them go away */ ++#define alarm(a) /* Ditto for alarm() */ ++#endif + + static int count = 0; + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch deleted file mode 100644 index bbe0020b..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 1dd5c44474b01d84de60faded960fef4a0a87e41 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Apr 2016 18:32:14 -0700 -Subject: [PATCH 04/11] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC - systems - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - 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 47428c1529..841a5e02b9 100644 ---- a/gdb/gdbserver/linux-ppc-low.c -+++ b/gdb/gdbserver/linux-ppc-low.c -@@ -21,7 +21,13 @@ - #include "linux-low.h" - - #include -+#if !defined(__GLIBC__) -+# define pt_regs uapi_pt_regs -+#endif - #include -+#if !defined(__GLIBC__) -+# undef pt_regs -+#endif - - #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 3d4d4fdc56..5b93af8d3a 100644 ---- a/gdb/nat/ppc-linux.h -+++ b/gdb/nat/ppc-linux.h -@@ -18,7 +18,13 @@ - #ifndef PPC_LINUX_H - #define PPC_LINUX_H 1 - -+#if !defined(__GLIBC__) -+# define pt_regs uapi_pt_regs -+#endif - #include -+#if !defined(__GLIBC__) -+# undef pt_regs -+#endif - #include - - /* This sometimes isn't defined. */ --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch deleted file mode 100644 index f840cafe..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch +++ /dev/null @@ -1,914 +0,0 @@ -From 215486b53a7a6dfca064cd2e9196a9de6ed6f0c2 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 02:31:12 +0000 -Subject: [PATCH 05/11] Add support for Renesas SH (sh4) architecture. - -gdb (7.4-1~cvs20111117.2) experimental; urgency=low - . - * Add Renesas SH (sh4) support (Closes: #576242) - - Thanks Nobuhiro Iwamatsu, Takashi Yoshii. -Author: Hector Oron -Bug-Debian: http://bugs.debian.org/576242 - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - gdb/Makefile.in | 2 + - gdb/configure.host | 1 + - gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++ - gdb/sh-tdep.c | 53 ++- - gdb/sh-tdep.h | 49 +++ - gdb/testsuite/gdb.asm/asm-source.exp | 5 + - gdb/testsuite/gdb.asm/sh.inc | 3 +- - gdb/testsuite/gdb.base/annota1.c | 3 + - gdb/testsuite/gdb.base/annota3.c | 4 + - gdb/testsuite/gdb.base/sigall.c | 3 + - gdb/testsuite/gdb.base/signals.c | 4 + - 11 files changed, 617 insertions(+), 29 deletions(-) - -diff --git a/gdb/Makefile.in b/gdb/Makefile.in -index c76a4e4394..921fdadb49 100644 ---- a/gdb/Makefile.in -+++ b/gdb/Makefile.in -@@ -2326,6 +2326,8 @@ ALLDEPFILES = \ - sh-nbsd-nat.c \ - sh-nbsd-tdep.c \ - sh-tdep.c \ -+ sh-linux-tdep.c \ -+ sh-linux-nat.c \ - sol2-tdep.c \ - solib-aix.c \ - solib-spu.c \ -diff --git a/gdb/configure.host b/gdb/configure.host -index 23a2f16399..39a886ec53 100644 ---- a/gdb/configure.host -+++ b/gdb/configure.host -@@ -153,6 +153,7 @@ riscv*-*-linux*) gdb_host=linux ;; - - s390*-*-linux*) gdb_host=linux ;; - -+sh*-*-linux*) gdb_host=linux ;; - sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu) - 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 ---- a/gdb/sh-linux-tdep.c -+++ b/gdb/sh-linux-tdep.c -@@ -18,14 +18,37 @@ - along with this program. If not, see . */ - - #include "defs.h" -+#include "gdbcore.h" -+#include "frame.h" -+#include "frame-base.h" -+#include "frame-unwind.h" -+#include "dwarf2-frame.h" -+#include "value.h" -+#include "regcache.h" -+#include "inferior.h" - #include "osabi.h" - -+#include "reggroups.h" -+#include "arch-utils.h" -+#include "floatformat.h" - #include "solib-svr4.h" - #include "symtab.h" -+#include "gdb_string.h" -+#include "command.h" -+#include "gdb_assert.h" - - #include "trad-frame.h" - #include "tramp-frame.h" - -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include "regset.h" - #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 = { - sh_linux_rt_sigreturn_init - }; - -+/* Recognizing signal handler frames. */ -+ -+/* GNU/Linux has two flavors of signals. Normal signal handlers, and -+ "realtime" (RT) signals. The RT signals can provide additional -+ information to the signal handler if the SA_SIGINFO flag is set -+ when establishing a signal handler using `sigaction'. It is not -+ unlikely that future versions of GNU/Linux will support SA_SIGINFO -+ for normal signals too. */ -+ -+/* When the SH Linux kernel calls a signal handler and the -+ SA_RESTORER flag isn't set, the return address points to a bit of -+ code on the stack. This function returns whether the PC appears to -+ be within this bit of code. -+ -+ The instruction sequence for normal signals is -+ mov.w 1f,r3 -+ trapa #16 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ 1: .word __NR_sigreturn -+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077. -+ -+ Checking for the code sequence should be somewhat reliable, because -+ the effect is to call the system call sigreturn. This is unlikely -+ to occur anywhere other than a signal trampoline. -+ -+ It kind of sucks that we have to read memory from the process in -+ order to identify a signal trampoline, but there doesn't seem to be -+ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to -+ only call us if no function name could be identified, which should -+ be the case since the code is on the stack. -+ -+ Detection of signal trampolines for handlers that set the -+ SA_RESTORER flag is in general not possible. Unfortunately this is -+ what the GNU C Library has been doing for quite some time now. -+ However, as of version 2.1.2, the GNU C Library uses signal -+ trampolines (named __restore and __restore_rt) that are identical -+ to the ones used by the kernel. Therefore, these trampolines are -+ supported too. */ -+ -+#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */ -+#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */ -+#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */ -+ -+#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */ -+#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */ -+#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */ -+ -+static const unsigned short linux_sigtramp_code[] = -+{ -+ LINUX_SIGTRAMP_INSN0, -+ LINUX_SIGTRAMP_INSN1, -+ LINUX_SIGTRAMP_INSN2, -+ LINUX_SIGTRAMP_INSN2, -+ LINUX_SIGTRAMP_INSN2, -+ LINUX_SIGTRAMP_INSN2, -+ LINUX_SIGTRAMP_INSN2, -+ __NR_sigreturn -+}; -+ -+#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code) -+ -+/* If PC is in a sigtramp routine, return the address of the start of -+ the routine. Otherwise, return 0. */ -+ -+static CORE_ADDR -+sh_linux_sigtramp_start (struct frame_info *next_frame) -+{ -+ CORE_ADDR pc = get_frame_pc (next_frame); -+ gdb_byte buf[LINUX_SIGTRAMP_LEN]; -+ -+ /* We only recognize a signal trampoline if PC is at the start of -+ one of the three instructions. We optimize for finding the PC at -+ the start, as will be the case when the trampoline is not the -+ first frame on the stack. We assume that in the case where the -+ PC is not at the start of the instruction sequence, there will be -+ a few trailing readable bytes on the stack. */ -+ -+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN)) -+ return 0; -+ -+ if (buf[0] != LINUX_SIGTRAMP_INSN0) -+ { -+ if (buf[0] != LINUX_SIGTRAMP_INSN1) -+ return 0; -+ -+ pc -= 2; -+ -+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN)) -+ return 0; -+ } -+ -+ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0) -+ return 0; -+ -+ return pc; -+} -+ -+/* This function does the same for RT signals. Here the instruction -+ sequence is -+ mov.w 1f,r3 -+ trapa #16 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ 1: .word __NR_rt_sigreturn -+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad. -+ -+ The effect is to call the system call rt_sigreturn. */ -+ -+#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */ -+#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */ -+#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */ -+ -+static const unsigned short linux_rt_sigtramp_code[] = -+{ -+ LINUX_RT_SIGTRAMP_INSN0, -+ LINUX_RT_SIGTRAMP_INSN1, -+ LINUX_RT_SIGTRAMP_INSN2, -+ LINUX_RT_SIGTRAMP_INSN2, -+ LINUX_RT_SIGTRAMP_INSN2, -+ LINUX_RT_SIGTRAMP_INSN2, -+ LINUX_RT_SIGTRAMP_INSN2, -+ __NR_rt_sigreturn -+}; -+ -+#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code) -+ -+/* If PC is in a RT sigtramp routine, return the address of the start -+ of the routine. Otherwise, return 0. */ -+ -+static CORE_ADDR -+sh_linux_rt_sigtramp_start (struct frame_info *next_frame) -+{ -+ CORE_ADDR pc = get_frame_pc (next_frame); -+ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN]; -+ -+ /* We only recognize a signal trampoline if PC is at the start of -+ one of the two instructions. We optimize for finding the PC at -+ the start, as will be the case when the trampoline is not the -+ first frame on the stack. We assume that in the case where the -+ PC is not at the start of the instruction sequence, there will be -+ a few trailing readable bytes on the stack. */ -+ -+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN)) -+ return 0; -+ -+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0) -+ { -+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1) -+ return 0; -+ -+ pc -= 2; -+ -+ if (!safe_frame_unwind_memory (next_frame, pc, buf, -+ LINUX_RT_SIGTRAMP_LEN)) -+ return 0; -+ } -+ -+ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0) -+ return 0; -+ -+ return pc; -+} -+ -+/* Return whether PC is in a GNU/Linux sigtramp routine. */ -+ -+static int -+sh_linux_sigtramp_p (struct frame_info *this_frame) -+{ -+ CORE_ADDR pc = get_frame_pc (this_frame); -+ char *name; -+ -+ find_pc_partial_function (pc, &name, NULL, NULL); -+ -+ /* If we have NAME, we can optimize the search. The trampolines are -+ named __restore and __restore_rt. However, they aren't dynamically -+ exported from the shared C library, so the trampoline may appear to -+ be part of the preceding function. This should always be sigaction, -+ __sigaction, or __libc_sigaction (all aliases to the same function). */ -+ if (name == NULL || strstr (name, "sigaction") != NULL) -+ return (sh_linux_sigtramp_start (this_frame) != 0 -+ || sh_linux_rt_sigtramp_start (this_frame) != 0); -+ -+ return (strcmp ("__restore", name) == 0 -+ || strcmp ("__restore_rt", name) == 0); -+} -+ -+/* Offset to struct sigcontext in ucontext, from . */ -+#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12 -+ -+ -+/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp -+ routine, return the address of the associated sigcontext structure. */ -+ -+static CORE_ADDR -+sh_linux_sigcontext_addr (struct frame_info *this_frame) -+{ -+ CORE_ADDR pc; -+ CORE_ADDR sp; -+ -+ sp = get_frame_register_unsigned (this_frame, SP_REGNUM); -+ -+ pc = sh_linux_sigtramp_start (this_frame); -+ if (pc) -+ { -+ return sp; -+ } -+ -+ pc = sh_linux_rt_sigtramp_start (this_frame); -+ if (pc) -+ { -+ CORE_ADDR ucontext_addr; -+ -+ /* The sigcontext structure is part of the user context. A -+ pointer to the user context is passed as the third argument -+ to the signal handler. */ -+ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2); -+ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET; -+ } -+ -+ error ("Couldn't recognize signal trampoline."); -+ return 0; -+} -+ -+/* Signal trampolines. */ -+extern struct sh_frame_cache *sh_alloc_frame_cache (void); -+ -+static struct sh_frame_cache * -+sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache) -+{ -+ struct sh_frame_cache *cache; -+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ()); -+ CORE_ADDR sigcontext_addr; -+ -+ if (*this_cache) -+ return *this_cache; -+ -+ cache = sh_alloc_frame_cache (); -+ -+ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM); -+ sigcontext_addr = tdep->sigcontext_addr (this_frame); -+ if (tdep->sc_reg_offset) -+ { -+ int i; -+ -+ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS); -+ -+ for (i = 0; i < tdep->sc_num_regs; i++) -+ if (tdep->sc_reg_offset[i] != -1) -+ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i]; -+ } -+ -+ *this_cache = cache; -+ return cache; -+} -+ -+static void -+sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache, -+ struct frame_id *this_id) -+{ -+ struct sh_frame_cache *cache = -+ sh_linux_sigtramp_frame_cache (this_frame, this_cache); -+ -+ (*this_id) = frame_id_build (cache->base + 64, cache->pc); -+} -+ -+extern struct value * sh_frame_prev_register (); -+static struct value * -+sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame, -+ void **this_cache, int regnum) -+{ -+ sh_linux_sigtramp_frame_cache (this_frame, this_cache); -+ -+ return sh_frame_prev_register (this_frame, this_cache, regnum); -+} -+ -+static int -+sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self, -+ struct frame_info *this_frame, -+ void **this_prologue_cache) -+{ -+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame)); -+ -+ /* We shouldn't even bother if we don't have a sigcontext_addr -+ handler. */ -+ if (tdep->sigcontext_addr == NULL) -+ return 0; -+ -+ if (tdep->sigtramp_p != NULL) -+ { -+ if (tdep->sigtramp_p (this_frame)) -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static const struct frame_unwind sh_linux_sigtramp_frame_unwind = -+{ -+ SIGTRAMP_FRAME, -+ sh_linux_sigtramp_frame_this_id, -+ sh_linux_sigtramp_frame_prev_register, -+ NULL, -+ sh_linux_sigtramp_frame_sniffer -+}; -+ -+/* Supply register REGNUM from the buffer specified by GREGS and LEN -+ in the general-purpose register set REGSET to register cache -+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */ -+ -+void -+sh_supply_gregset (const struct regset *regset, struct regcache *regcache, -+ int regnum, const void *gregs, size_t len) -+{ -+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); -+ const char *regs = gregs; -+ int i; -+ -+ gdb_assert (len == tdep->sizeof_gregset); -+ -+ for (i = 0; i < tdep->gregset_num_regs; i++) -+ { -+ if ((regnum == i || regnum == -1) -+ && tdep->gregset_reg_offset[i] != -1) -+ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]); -+ } -+} -+ -+/* Collect register REGNUM from the register cache REGCACHE and store -+ it in the buffer specified by GREGS and LEN as described by the -+ general-purpose register set REGSET. If REGNUM is -1, do this for -+ all registers in REGSET. */ -+ -+void -+sh_collect_gregset (const struct regset *regset, -+ const struct regcache *regcache, -+ int regnum, void *gregs, size_t len) -+{ -+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); -+ char *regs = gregs; -+ int i; -+ -+ gdb_assert (len == tdep->sizeof_gregset); -+ -+ for (i = 0; i < tdep->gregset_num_regs; i++) -+ { -+ if ((regnum == i || regnum == -1) -+ && tdep->gregset_reg_offset[i] != -1) -+ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]); -+ } -+} -+ -+/* Supply register REGNUM from the buffer specified by FPREGS and LEN -+ in the floating-point register set REGSET to register cache -+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */ -+ -+static void -+sh_supply_fpregset (const struct regset *regset, struct regcache *regcache, -+ int regnum, const void *fpregs, size_t len) -+{ -+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); -+ const char *regs = fpregs; -+ int i; -+ -+ gdb_assert (len == tdep->sizeof_fpregset); -+ for (i = 0; i < 16; i++) -+ { -+ if (regnum == i+25 || regnum == -1) -+ regcache_raw_supply (regcache, i+25, regs + i*4); -+ } -+ if (regnum == FPSCR_REGNUM || regnum == -1) -+ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4); -+ if (regnum == FPUL_REGNUM || regnum == -1) -+ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4); -+} -+ -+/* Collect register REGNUM from the register cache REGCACHE and store -+ it in the buffer specified by FPREGS and LEN as described by the -+ floating-point register set REGSET. If REGNUM is -1, do this for -+ all registers in REGSET. */ -+ -+static void -+sh_collect_fpregset (const struct regset *regset, -+ const struct regcache *regcache, -+ int regnum, void *fpregs, size_t len) -+{ -+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch); -+ char *regs = fpregs; -+ int i; -+ -+ gdb_assert (len == tdep->sizeof_fpregset); -+ for (i = 0; i < 16; i++) -+ { -+ if (regnum == i+25 || regnum == -1) -+ regcache_raw_collect (regcache, i+25, regs + i*4); -+ } -+ if (regnum == FPSCR_REGNUM || regnum == -1) -+ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4); -+ if (regnum == FPUL_REGNUM || regnum == -1) -+ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4); -+} -+ -+/* Return the appropriate register set for the core section identified -+ by SECT_NAME and SECT_SIZE. */ -+ -+const struct regset * -+sh_linux_regset_from_core_section (struct gdbarch *gdbarch, -+ const char *sect_name, size_t sect_size) -+{ -+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); -+ -+ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset) -+ { -+ if (tdep->gregset == NULL) -+ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset, -+ sh_collect_gregset); -+ return tdep->gregset; -+ } -+ -+ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset)) -+ { -+ if (tdep->fpregset == NULL) -+ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset, -+ sh_collect_fpregset); -+ return tdep->fpregset; -+ } -+ -+ return NULL; -+} -+ -+/* The register sets used in GNU/Linux ELF core-dumps are identical to -+ the register sets in `struct user' that are used for a.out -+ core-dumps. These are also used by ptrace(2). The corresponding -+ types are `elf_gregset_t' for the general-purpose registers (with -+ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t' -+ for the floating-point registers. -+ -+ Those types used to be available under the names `gregset_t' and -+ `fpregset_t' too, and GDB used those names in the past. But those -+ names are now used for the register sets used in the `mcontext_t' -+ type, which have a different size and layout. */ -+ -+/* Mapping between the general-purpose registers in `struct user' -+ format and GDB's register cache layout. */ -+ -+/* From . */ -+static int sh_linux_gregset_reg_offset[] = -+{ -+ 0, 4, 8, 12, 16, 20, 24, 28, -+ 32, 36, 40, 44, 48, 52, 56, 60, -+ -+ REG_PC*4, REG_PR*4, REG_GBR*4, -1, -+ REG_MACH*4, REG_MACL*4, REG_SR*4, -+}; -+ -+/* Mapping between the general-purpose registers in `struct -+ sigcontext' format and GDB's register cache layout. */ -+ -+/* From . */ -+static int sh_linux_sc_reg_offset[] = -+{ -+ 4, 8, 12, 16, 20, 24, 28, 32, -+ 36, 40, 44, 48, 52, 56, 60, 64, -+ 68, 72, 80, -1, -+ 84, 88, 76 -+}; -+ - static void - sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) - { -+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); -+ bfd abfd; -+ -+ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset; -+ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset); -+ tdep->sizeof_gregset = 23 * 4; -+ -+ tdep->jb_pc_offset = 32; /* From . */ -+ -+ tdep->sigtramp_p = sh_linux_sigtramp_p; -+ tdep->sigcontext_addr = sh_linux_sigcontext_addr; -+ tdep->sc_reg_offset = sh_linux_sc_reg_offset; -+ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset); -+ -+ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind); -+ -+ /* If we have a register mapping, enable the generic core file -+ support, unless it has already been enabled. */ -+ if (tdep->gregset_reg_offset -+ && !gdbarch_regset_from_core_section_p (gdbarch)) -+ set_gdbarch_regset_from_core_section (gdbarch, -+ sh_linux_regset_from_core_section); -+ - linux_init_abi (info, gdbarch); - - /* GNU/Linux uses SVR4-style shared libraries. */ -diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c -index fe64cf979a..4417114cd0 100644 ---- a/gdb/sh-tdep.c -+++ b/gdb/sh-tdep.c -@@ -21,6 +21,9 @@ - sac@cygnus.com. */ - - #include "defs.h" -+#include "arch-utils.h" -+#include "command.h" -+#include "dummy-frame.h" - #include "frame.h" - #include "frame-base.h" - #include "frame-unwind.h" -@@ -66,23 +69,6 @@ static const char *const sh_cc_enum[] = { - - static const char *sh_active_calling_convention = sh_cc_gcc; - --#define SH_NUM_REGS 67 -- --struct sh_frame_cache --{ -- /* Base address. */ -- CORE_ADDR base; -- LONGEST sp_offset; -- CORE_ADDR pc; -- -- /* Flag showing that a frame has been created in the prologue code. */ -- int uses_fp; -- -- /* Saved registers. */ -- CORE_ADDR saved_regs[SH_NUM_REGS]; -- CORE_ADDR saved_sp; --}; -- - static int - sh_is_renesas_calling_convention (struct type *func_type) - { -@@ -1050,7 +1036,7 @@ sh_treat_as_flt_p (struct type *type) - return 0; - /* Otherwise if the type of that member is float, the whole type is - treated as float. */ -- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT) -+ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT) - return 1; - /* Otherwise it's not treated as float. */ - return 0; -@@ -1100,7 +1086,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch, - in four registers available. Loop thru args from first to last. */ - for (argnum = 0; argnum < nargs; argnum++) - { -- type = value_type (args[argnum]); -+ type = check_typedef (value_type (args[argnum])); - 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, - reg->how = DWARF2_FRAME_REG_UNDEFINED; - } - --static struct sh_frame_cache * -+struct sh_frame_cache * - sh_alloc_frame_cache (void) - { - struct sh_frame_cache *cache; -@@ -1861,7 +1847,7 @@ sh_alloc_frame_cache (void) - return cache; - } - --static struct sh_frame_cache * -+struct sh_frame_cache * - 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) - return cache; - } - --static struct value * --sh_frame_prev_register (struct frame_info *this_frame, -- void **this_cache, int regnum) -+struct value * -+sh_frame_prev_register (struct frame_info *this_frame, void **this_cache, -+ int regnum) - { - 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, - the current frame. Frob regnum so that we pull the value from - the correct place. */ - if (regnum == gdbarch_pc_regnum (gdbarch)) -- regnum = PR_REGNUM; -+ regnum = PR_REGNUM; /* XXX: really? */ - - 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, - static struct gdbarch * - sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) - { -- struct gdbarch *gdbarch; - struct gdbarch_tdep *tdep; -+ struct gdbarch *gdbarch; - - /* 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) - tdep = XCNEW (struct gdbarch_tdep); - gdbarch = gdbarch_alloc (&info, tdep); - -+ /* General-purpose registers. */ -+ tdep->gregset = NULL; -+ tdep->gregset_reg_offset = NULL; -+ tdep->gregset_num_regs = 23; -+ tdep->sizeof_gregset = 0; -+ -+ /* Floating-point registers. */ -+ tdep->fpregset = NULL; -+ tdep->sizeof_fpregset = 34*4; -+ -+ tdep->jb_pc_offset = -1; -+ - 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) - break; - } - -+ dwarf2_append_unwinders (gdbarch); -+ - /* Hook in ABI-specific overrides, if they have been registered. */ - gdbarch_init_osabi (info, gdbarch); - -- dwarf2_append_unwinders (gdbarch); - frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind); - frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind); - -diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h -index 59acd35b88..be3f998d84 100644 ---- a/gdb/sh-tdep.h -+++ b/gdb/sh-tdep.h -@@ -21,6 +21,12 @@ - - /* Contributed by Steve Chamberlain sac@cygnus.com. */ - -+struct frame_info; -+struct gdbarch; -+struct reggroup; -+struct regset; -+struct regcache; -+ - /* Registers for all SH variants. Used also by sh3-rom.c. */ - enum - { -@@ -29,6 +35,7 @@ enum - ARG0_REGNUM = 4, - ARGLAST_REGNUM = 7, - FP_REGNUM = 14, -+ SP_REGNUM = 15, - PC_REGNUM = 16, - PR_REGNUM = 17, - GBR_REGNUM = 18, -@@ -81,6 +88,24 @@ enum - FV0_REGNUM = 76, - FV_LAST_REGNUM = 79 - }; -+#define SH_NUM_REGS 67 -+ -+struct sh_frame_cache -+{ -+ /* Base address. */ -+ CORE_ADDR base; -+ LONGEST sp_offset; -+ CORE_ADDR pc; -+ -+ /* Flag showing that a frame has been created in the prologue code. */ -+ int uses_fp; -+ -+ /* Saved registers. */ -+ CORE_ADDR saved_regs[SH_NUM_REGS]; -+ CORE_ADDR saved_sp; -+}; -+ -+extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache); - - /* This structure describes a register in a core-file. */ - struct sh_corefile_regmap -@@ -89,8 +114,32 @@ struct sh_corefile_regmap - unsigned int offset; - }; - -+/* sh architecture specific information. */ - struct gdbarch_tdep - { -+ /* General-purpose registers. */ -+ struct regset *gregset; -+ int *gregset_reg_offset; -+ int gregset_num_regs; -+ size_t sizeof_gregset; -+ -+ /* Floating-point registers. */ -+ struct regset *fpregset; -+ size_t sizeof_fpregset; -+ -+ /* Offset of saved PC in jmp_buf. */ -+ int jb_pc_offset; -+ -+ /* Detect sigtramp. */ -+ int (*sigtramp_p) (struct frame_info *); -+ -+ /* Get address of sigcontext for sigtramp. */ -+ CORE_ADDR (*sigcontext_addr) (struct frame_info *); -+ -+ /* Offset of registers in `struct sigcontext'. */ -+ int *sc_reg_offset; -+ int sc_num_regs; -+ - /* Non-NULL when debugging from a core file. Provides the offset - 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 ---- a/gdb/testsuite/gdb.asm/asm-source.exp -+++ b/gdb/testsuite/gdb.asm/asm-source.exp -@@ -116,6 +116,11 @@ switch -glob -- [istarget] { - append link-flags " -m elf32ppc" - } - } -+ "sh*-linux*" { -+ set asm-arch sh-linux -+ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}" -+ set debug-flags "-gdwarf-2" -+ } - "sh*-*-*" { - set asm-arch sh - set debug-flags "-gdwarf-2" -diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc -index a4a5fc545e..89efed7795 100644 ---- a/gdb/testsuite/gdb.asm/sh.inc -+++ b/gdb/testsuite/gdb.asm/sh.inc -@@ -40,9 +40,8 @@ - mov.l .Lconst\@,r1 - bra .Lafterconst\@ - nop -- nop --.Lconst\@: - .align 2 -+.Lconst\@: - .long \subr - .align 1 - .Lafterconst\@: -diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c -index 424e1b8327..0de2e7b633 100644 ---- a/gdb/testsuite/gdb.base/annota1.c -+++ b/gdb/testsuite/gdb.base/annota1.c -@@ -1,6 +1,9 @@ - #include - #include - -+#ifdef __sh__ -+#define signal(a,b) /* Signals not supported on this target - make them go away */ -+#endif - - void - handle_USR1 (int sig) -diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c -index 424e1b8327..952aaf218a 100644 ---- a/gdb/testsuite/gdb.base/annota3.c -+++ b/gdb/testsuite/gdb.base/annota3.c -@@ -1,6 +1,10 @@ - #include - #include - -+#ifdef __sh__ -+#define signal(a,b) /* Signals not supported on this target - make them go away */ -+#endif -+ - - void - handle_USR1 (int sig) -diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c -index 81f3b08d6b..1574b2d6cb 100644 ---- a/gdb/testsuite/gdb.base/sigall.c -+++ b/gdb/testsuite/gdb.base/sigall.c -@@ -1,6 +1,9 @@ - #include - #include - -+#ifdef __sh__ -+#define signal(a,b) /* Signals not supported on this target - make them go away */ -+#endif - - /* Signal handlers, we set breakpoints in them to make sure that the - signals really get delivered. */ -diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c -index 756606880f..1205a9bc9c 100644 ---- a/gdb/testsuite/gdb.base/signals.c -+++ b/gdb/testsuite/gdb.base/signals.c -@@ -3,6 +3,10 @@ - #include - #include - -+#ifdef __sh__ -+#define signal(a,b) /* Signals not supported on this target - make them go away */ -+#define alarm(a) /* Ditto for alarm() */ -+#endif - - static int count = 0; - --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch new file mode 100644 index 00000000..d0360da4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0005-Dont-disable-libreadline.a-when-using-disable-static.patch @@ -0,0 +1,47 @@ +From d132f21d89157e980574da7d0c949f6dd17df8c3 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Apr 2016 15:25:03 -0700 +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 +tries to link against that. + +To ensure that readline always builds static libraries, pass --enable-static to +the sub-configure. + +Upstream-Status: Pending +Signed-off-by: Ross Burton +Signed-off-by: Khem Raj +--- + Makefile.def | 3 ++- + Makefile.in | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Makefile.def b/Makefile.def +index 311feb9de3..24c0685d48 100644 +--- a/Makefile.def ++++ b/Makefile.def +@@ -105,7 +105,8 @@ host_modules= { module= libiconv; + missing= install-html; + missing= install-info; }; + host_modules= { module= m4; }; +-host_modules= { module= readline; }; ++host_modules= { module= readline; ++ extra_configure_flags='--enable-static';}; + host_modules= { module= sid; }; + host_modules= { module= sim; }; + host_modules= { module= texinfo; no_install= true; }; +diff --git a/Makefile.in b/Makefile.in +index 1aabf6ede4..d957efde81 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -25510,7 +25510,7 @@ configure-readline: + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ +- --target=${target_alias} \ ++ --target=${target_alias} --enable-static \ + || exit 1 + @endif readline + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch deleted file mode 100644 index 9ae3ee62..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 5fdd42acaa965be7c420a3f2ba12b77ea503c59b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Apr 2016 15:25:03 -0700 -Subject: [PATCH 06/11] 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 -tries to link against that. - -To ensure that readline always builds static libraries, pass --enable-static to -the sub-configure. - -Upstream-Status: Pending -Signed-off-by: Ross Burton -Signed-off-by: Khem Raj ---- - Makefile.def | 3 ++- - Makefile.in | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/Makefile.def b/Makefile.def -index 75063b6d12..c27bbe4d28 100644 ---- a/Makefile.def -+++ b/Makefile.def -@@ -105,7 +105,8 @@ host_modules= { module= libiconv; - missing= install-html; - missing= install-info; }; - host_modules= { module= m4; }; --host_modules= { module= readline; }; -+host_modules= { module= readline; -+ extra_configure_flags='--enable-static';}; - host_modules= { module= sid; }; - host_modules= { module= sim; }; - host_modules= { module= texinfo; no_install= true; }; -diff --git a/Makefile.in b/Makefile.in -index 7814fe745f..3b0dc7cbb0 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -25470,7 +25470,7 @@ configure-readline: - $$s/$$module_srcdir/configure \ - --srcdir=$${topdir}/$$module_srcdir \ - $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \ -- --target=${target_alias} \ -+ --target=${target_alias} --enable-static \ - || exit 1 - @endif readline - --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch new file mode 100644 index 00000000..d222d010 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0006-use-asm-sgidefs.h.patch @@ -0,0 +1,33 @@ +From 329e5bf29e934ba99622372a9660865864bb0298 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Sat, 30 Apr 2016 15:29:06 -0700 +Subject: [PATCH] use + +Build fix for MIPS with musl libc + +The MIPS specific header is provided by glibc and uclibc +but not by musl. Regardless of the libc, the kernel headers provide + which provides the same definitions, so use that +instead. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +Signed-off-by: Khem Raj +--- + gdb/mips-linux-nat.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c +index 7f575b3363..dc93a64a93 100644 +--- a/gdb/mips-linux-nat.c ++++ b/gdb/mips-linux-nat.c +@@ -31,7 +31,7 @@ + #include "gdb_proc_service.h" + #include "gregset.h" + +-#include ++#include + #include "nat/gdb_ptrace.h" + #include + #include "inf-ptrace.h" diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch new file mode 100644 index 00000000..09896611 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0007-Use-exorted-definitions-of-SIGRTMIN.patch @@ -0,0 +1,47 @@ +From 782bb2ab9b104dad4bbaed1d9ac769ce7e5b9f4d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Apr 2016 15:31:40 -0700 +Subject: [PATCH] Use exorted definitions of SIGRTMIN + +Define W_STOPCODE if not defined already + +__SIGRTMIN is internal to glibc and other libcs e.g. musl +may not provide them + +Fixes +https://sourceware.org/bugzilla/show_bug.cgi?id=13012 + +Upstream-Status: Submitted + +Signed-off-by: Khem Raj +--- + 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 4484fa5c87..3bb0ee7a49 100644 +--- a/gdb/linux-nat.c ++++ b/gdb/linux-nat.c +@@ -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. */ +- sigaddset (set, __SIGRTMIN); +- sigaddset (set, __SIGRTMIN + 1); ++ sigaddset (set, SIGRTMIN); ++ sigaddset (set, SIGRTMIN + 1); + } +diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h +index 44dcbb7758..975d7276f6 100644 +--- a/gdb/nat/linux-nat.h ++++ b/gdb/nat/linux-nat.h +@@ -91,4 +91,8 @@ extern void linux_stop_lwp (struct lwp_info *lwp); + + extern int lwp_is_stepping (struct lwp_info *lwp); + ++#ifndef W_STOPCODE ++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) ++#endif ++ + #endif /* NAT_LINUX_NAT_H */ diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch deleted file mode 100644 index 808f4bfa..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch +++ /dev/null @@ -1,36 +0,0 @@ -From d6e12d52f9cef7f5e6315003ceaa236f6cc7723b Mon Sep 17 00:00:00 2001 -From: Andre McCurdy -Date: Sat, 30 Apr 2016 15:29:06 -0700 -Subject: [PATCH 07/11] use - -Build fix for MIPS with musl libc - -The MIPS specific header is provided by glibc and uclibc -but not by musl. Regardless of the libc, the kernel headers provide - which provides the same definitions, so use that -instead. - -Upstream-Status: Pending - -Signed-off-by: Andre McCurdy -Signed-off-by: Khem Raj ---- - gdb/mips-linux-nat.c | 2 +- - 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 ---- a/gdb/mips-linux-nat.c -+++ b/gdb/mips-linux-nat.c -@@ -31,7 +31,7 @@ - #include "gdb_proc_service.h" - #include "gregset.h" - --#include -+#include - #include "nat/gdb_ptrace.h" - #include - #include "inf-ptrace.h" --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch new file mode 100644 index 00000000..18168c6b --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0008-Change-order-of-CFLAGS.patch @@ -0,0 +1,27 @@ +From 40c9c174590ce6fdc873b453285249fe957f376d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 30 Apr 2016 15:35:39 -0700 +Subject: [PATCH] Change order of CFLAGS + +Lets us override Werror if need be + +Upstream-Status: Inappropriate + +Signed-off-by: Khem Raj +--- + gdb/gdbserver/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in +index 16a9f2fd38..b9c8cd9c41 100644 +--- a/gdb/gdbserver/Makefile.in ++++ b/gdb/gdbserver/Makefile.in +@@ -146,7 +146,7 @@ PTHREAD_LIBS = @PTHREAD_LIBS@ + INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \ + ${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. diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch deleted file mode 100644 index d32352b8..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch +++ /dev/null @@ -1,50 +0,0 @@ -From d97878b272bd7c4993f4205983ae8b7ecddbcf82 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Apr 2016 15:31:40 -0700 -Subject: [PATCH 08/11] Use exorted definitions of SIGRTMIN - -Define W_STOPCODE if not defined already - -__SIGRTMIN is internal to glibc and other libcs e.g. musl -may not provide them - -Fixes -https://sourceware.org/bugzilla/show_bug.cgi?id=13012 - -Upstream-Status: Submitted - -Signed-off-by: Khem Raj ---- - 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 64015e7520..acf950c38b 100644 ---- a/gdb/linux-nat.c -+++ b/gdb/linux-nat.c -@@ -4724,6 +4724,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. */ -- sigaddset (set, __SIGRTMIN); -- sigaddset (set, __SIGRTMIN + 1); -+ sigaddset (set, SIGRTMIN); -+ sigaddset (set, SIGRTMIN + 1); - } -diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h -index a90a124d3a..4f3e681962 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); - - extern int lwp_is_stepping (struct lwp_info *lwp); - -+#ifndef W_STOPCODE -+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) -+#endif -+ - #endif /* LINUX_NAT_H */ --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch deleted file mode 100644 index bc4bc268..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ba6ffa461fe781d44d6dcbc0fbd569237b450fdc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 30 Apr 2016 15:35:39 -0700 -Subject: [PATCH 09/11] Change order of CFLAGS - -Lets us override Werror if need be - -Upstream-Status: Inappropriate - -Signed-off-by: Khem Raj ---- - gdb/gdbserver/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in -index f2f8a084bd..9528db1364 100644 ---- a/gdb/gdbserver/Makefile.in -+++ b/gdb/gdbserver/Makefile.in -@@ -143,7 +143,7 @@ CPPFLAGS = @CPPFLAGS@ - INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \ - ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} - 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/external/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch new file mode 100644 index 00000000..8f15c49d --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0009-resolve-restrict-keyword-conflict.patch @@ -0,0 +1,45 @@ +From 5b69a98f6bb7363a1f79f29bac2b25b7df6d2fdd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 10 May 2016 08:47:05 -0700 +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' +therefore we use __restrict to denote the C99 keywork + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gnulib/import/sys_time.in.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +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 + _GL_FUNCDECL_RPL (gettimeofday, int, +- (struct timeval *restrict, void *restrict) ++ (struct timeval *__restrict, void *__restrict) + _GL_ARG_NONNULL ((1))); + _GL_CXXALIAS_RPL (gettimeofday, int, +- (struct timeval *restrict, void *restrict)); ++ (struct timeval *__restrict, void *__restrict)); + # else + # if !@HAVE_GETTIMEOFDAY@ + _GL_FUNCDECL_SYS (gettimeofday, int, +- (struct timeval *restrict, void *restrict) ++ (struct timeval *__restrict, void *__restrict) + _GL_ARG_NONNULL ((1))); + # endif + /* Need to cast, because on glibc systems, by default, the second argument is + struct timezone *. */ + _GL_CXXALIAS_SYS_CAST (gettimeofday, int, +- (struct timeval *restrict, void *restrict)); ++ (struct timeval *__restrict, void *__restrict)); + # endif + _GL_CXXALIASWARN (gettimeofday); + # if defined __cplusplus && defined GNULIB_NAMESPACE diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch new file mode 100644 index 00000000..5209c002 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb/0010-Fix-invalid-sigprocmask-call.patch @@ -0,0 +1,46 @@ +From bc1f01ff5e524f7777083024bce348a9b0017a7a Mon Sep 17 00:00:00 2001 +From: Yousong Zhou +Date: Fri, 24 Mar 2017 10:36:03 +0800 +Subject: [PATCH] Fix invalid sigprocmask call +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The POSIX document says + + The pthread_sigmask() and sigprocmask() functions shall fail if: + + [EINVAL] + The value of the how argument is not equal to one of the defined values. + +and this is how musl-libc is currently doing. Fix the call to be safe +and correct + + [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html + +gdb/ChangeLog: +2017-03-24 Yousong Zhou + + * common/signals-state-save-restore.c (save_original_signals_state): + Fix invalid sigprocmask call. + +Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-project.org/index.php?do=details&task_id=637&openedfrom=-1%2Bweek] +Signed-off-by: André Draszik +Signed-off-by: Khem Raj +--- + gdb/gdbsupport/signals-state-save-restore.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +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 = gdb_sigmask (0, NULL, &original_signal_mask); ++ res = gdb_sigmask (SIG_BLOCK, NULL, &original_signal_mask); + if (res == -1) + perror_with_name (("sigprocmask")); + diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch deleted file mode 100644 index 809d52f2..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 19b581056c1709f7d2872cd76b977542a0fe6142 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 10 May 2016 08:47:05 -0700 -Subject: [PATCH 10/11] resolve restrict keyword conflict - -GCC detects that we call 'restrict' as param name in function -signatures and complains since both params are called 'restrict' -therefore we use __restrict to denote the C99 keywork - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gdb/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 -@@ -93,20 +93,20 @@ struct timeval - # define gettimeofday rpl_gettimeofday - # endif - _GL_FUNCDECL_RPL (gettimeofday, int, -- (struct timeval *restrict, void *restrict) -+ (struct timeval *__restrict, void *__restrict) - _GL_ARG_NONNULL ((1))); - _GL_CXXALIAS_RPL (gettimeofday, int, -- (struct timeval *restrict, void *restrict)); -+ (struct timeval *__restrict, void *__restrict)); - # else - # if !@HAVE_GETTIMEOFDAY@ - _GL_FUNCDECL_SYS (gettimeofday, int, -- (struct timeval *restrict, void *restrict) -+ (struct timeval *__restrict, void *__restrict) - _GL_ARG_NONNULL ((1))); - # endif - /* Need to cast, because on glibc systems, by default, the second argument is - struct timezone *. */ - _GL_CXXALIAS_SYS_CAST (gettimeofday, int, -- (struct timeval *restrict, void *restrict)); -+ (struct timeval *__restrict, void *__restrict)); - # endif - _GL_CXXALIASWARN (gettimeofday); - # if defined __cplusplus && defined GNULIB_NAMESPACE --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch deleted file mode 100644 index bce025c3..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/0011-Fix-invalid-sigprocmask-call.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b1985595e46721bb168ac38f4c841a915cc2f799 Mon Sep 17 00:00:00 2001 -From: Yousong Zhou -Date: Fri, 24 Mar 2017 10:36:03 +0800 -Subject: [PATCH 11/11] Fix invalid sigprocmask call -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The POSIX document says - - The pthread_sigmask() and sigprocmask() functions shall fail if: - - [EINVAL] - The value of the how argument is not equal to one of the defined values. - -and this is how musl-libc is currently doing. Fix the call to be safe -and correct - - [1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html - -gdb/ChangeLog: -2017-03-24 Yousong Zhou - - * common/signals-state-save-restore.c (save_original_signals_state): - Fix invalid sigprocmask call. - -Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-project.org/index.php?do=details&task_id=637&openedfrom=-1%2Bweek] -Signed-off-by: André Draszik -Signed-off-by: Khem Raj ---- - gdb/common/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) - int i; - int res; - -- res = sigprocmask (0, NULL, &original_signal_mask); -+ res = sigprocmask (SIG_BLOCK, NULL, &original_signal_mask); - if (res == -1) - perror_with_name (("sigprocmask")); - --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch b/external/poky/meta/recipes-devtools/gdb/gdb/0011-gdbserver-ctrl-c-handling.patch new file mode 100644 index 00000000..eedd94c4 --- /dev/null +++ b/external/poky/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 +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 +Signed-off-by: Khem Raj +--- + 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/external/poky/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch b/external/poky/meta/recipes-devtools/gdb/gdb/gdbserver-ctrl-c-handling.patch deleted file mode 100644 index 71fe7f83..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb/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 - -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/external/poky/meta/recipes-devtools/gdb/gdb_8.2.bb b/external/poky/meta/recipes-devtools/gdb/gdb_8.2.bb deleted file mode 100644 index c6eac84d..00000000 --- a/external/poky/meta/recipes-devtools/gdb/gdb_8.2.bb +++ /dev/null @@ -1,29 +0,0 @@ -require gdb.inc -require gdb-${PV}.inc - -inherit python3-dir - -EXTRA_OEMAKE_append_libc-musl = "\ - gt_cv_func_gnugettext1_libc=yes \ - gt_cv_func_gnugettext2_libc=yes \ - gl_cv_func_working_strerror=yes \ - gl_cv_func_strerror_0_works=yes \ - gl_cv_func_gettimeofday_clobber=no \ - " - -do_configure_prepend() { - if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then - cat > ${WORKDIR}/python << EOF -#!/bin/sh -case "\$2" in - --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;; - --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;; - --exec-prefix) echo "${exec_prefix}" ;; - *) exit 1 ;; -esac -exit 0 -EOF - chmod +x ${WORKDIR}/python - fi -} -CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat" diff --git a/external/poky/meta/recipes-devtools/gdb/gdb_9.1.bb b/external/poky/meta/recipes-devtools/gdb/gdb_9.1.bb new file mode 100644 index 00000000..d70757a1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/gdb/gdb_9.1.bb @@ -0,0 +1,28 @@ +require gdb.inc +require gdb-${PV}.inc + +inherit python3-dir + +EXTRA_OEMAKE_append_libc-musl = "\ + gt_cv_func_gnugettext1_libc=yes \ + gt_cv_func_gnugettext2_libc=yes \ + gl_cv_func_working_strerror=yes \ + gl_cv_func_strerror_0_works=yes \ + gl_cv_func_gettimeofday_clobber=no \ + " + +do_configure_prepend() { + if [ "${@bb.utils.filter('PACKAGECONFIG', 'python', d)}" ]; then + cat > ${WORKDIR}/python << EOF +#!/bin/sh +case "\$2" in + --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;; + --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;; + --exec-prefix) echo "${exec_prefix}" ;; + *) exit 1 ;; +esac +exit 0 +EOF + chmod +x ${WORKDIR}/python + fi +} diff --git a/external/poky/meta/recipes-devtools/git/git.inc b/external/poky/meta/recipes-devtools/git/git.inc index 26a22ac1..4131c989 100644 --- a/external/poky/meta/recipes-devtools/git/git.inc +++ b/external/poky/meta/recipes-devtools/git/git.inc @@ -13,6 +13,8 @@ S = "${WORKDIR}/git-${PV}" LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1" +CVE_PRODUCT = "git-scm:git" + PACKAGECONFIG ??= "" PACKAGECONFIG[cvsserver] = "" PACKAGECONFIG[svn] = "" @@ -20,6 +22,7 @@ PACKAGECONFIG[svn] = "" EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \ --without-tcltk \ " +EXTRA_OECONF_append_class-nativesdk = " --with-gitconfig=/etc/gitconfig " # Needs brokensep as this doesn't use automake inherit autotools-brokensep perlnative bash-completion @@ -37,12 +40,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 } @@ -92,19 +95,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/external/poky/meta/recipes-devtools/git/git_2.18.1.bb b/external/poky/meta/recipes-devtools/git/git_2.18.1.bb deleted file mode 100644 index b2960c0e..00000000 --- a/external/poky/meta/recipes-devtools/git/git_2.18.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -require git.inc - -EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ - ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ - " -EXTRA_OEMAKE += "NO_GETTEXT=1" - -SRC_URI[tarball.md5sum] = "9b62c267d878f6cb02f8abc59a99525d" -SRC_URI[tarball.sha256sum] = "5c710c866d8c9ba3b3e062755e0e9d0ef4f665752bd64810e3eb9f1b0f0eb076" -SRC_URI[manpages.md5sum] = "ef32a459a4a08a3b8e837a31c925c848" -SRC_URI[manpages.sha256sum] = "d05bfab2dc45de4f6e7d61ca173071d6902905a4963f7ac3cbca608c0d4592c9" diff --git a/external/poky/meta/recipes-devtools/git/git_2.24.3.bb b/external/poky/meta/recipes-devtools/git/git_2.24.3.bb new file mode 100644 index 00000000..ddd875f0 --- /dev/null +++ b/external/poky/meta/recipes-devtools/git/git_2.24.3.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] = "ef6d1d1de1d7921a54d23d07479bd2766f050d6435cea5d3b5322aa4897cb3d7" +SRC_URI[manpages.sha256sum] = "325795ba33c0be02370de79636f32ad3b447665c1f2b5b4de65181fa804bed31" diff --git a/external/poky/meta/recipes-devtools/glide/glide_0.13.2.bb b/external/poky/meta/recipes-devtools/glide/glide_0.13.2.bb deleted file mode 100644 index 3a32fa1a..00000000 --- a/external/poky/meta/recipes-devtools/glide/glide_0.13.2.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Vendor Package Management for Golang" -HOMEPAGE = "https://glide.sh" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc350c35b2" - -GO_IMPORT = "github.com/Masterminds/glide" -SRC_URI = "git://${GO_IMPORT}" -SRCREV = "9ef6ca313b3200079861f2de4e567b1d22081d19" - -inherit go - -RDEPENDS_${PN}-dev += "bash" -RDEPENDS_${PN}-ptest += "bash" - -BBCLASSEXTEND = "native nativesdk" - -# for x86 ends with textrel in ${PN} -# http://errors.yoctoproject.org/Errors/Details/185631/ -# ERROR: QA Issue: ELF binary '/work/i586-oe-linux/glide/0.13.1-r0/packages-split/glide/usr/bin/glide' has relocations in .text [textrel] -INSANE_SKIP_${PN} += "textrel" - -# for aarch64 ends with textrel in ${PN}-ptest -# http://errors.yoctoproject.org/Errors/Details/185633/ -# ERROR: QA Issue: ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/glide.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/dependency/dependency.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/repo/repo.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/mirrors/mirrors.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/cfg/cfg.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/godep/strip/strip.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/path/path.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/tree/tree.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/util/util.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/action/action.test' has relocations in .text -# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/cache/cache.test' has relocations in .text [textrel] -INSANE_SKIP_${PN}-ptest += "textrel" diff --git a/external/poky/meta/recipes-devtools/glide/glide_0.13.3.bb b/external/poky/meta/recipes-devtools/glide/glide_0.13.3.bb new file mode 100644 index 00000000..31295edf --- /dev/null +++ b/external/poky/meta/recipes-devtools/glide/glide_0.13.3.bb @@ -0,0 +1,42 @@ +SUMMARY = "Vendor Package Management for Golang" +HOMEPAGE = "https://glide.sh" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=54905cf894f8cc416a92f4fc350c35b2" + +GO_IMPORT = "github.com/Masterminds/glide" +SRC_URI = "git://${GO_IMPORT}" +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" + +BBCLASSEXTEND = "native nativesdk" + +# for x86 ends with textrel in ${PN} +# http://errors.yoctoproject.org/Errors/Details/185631/ +# ERROR: QA Issue: ELF binary '/work/i586-oe-linux/glide/0.13.1-r0/packages-split/glide/usr/bin/glide' has relocations in .text [textrel] +INSANE_SKIP_${PN} += "textrel" + +# for aarch64 ends with textrel in ${PN}-ptest +# http://errors.yoctoproject.org/Errors/Details/185633/ +# ERROR: QA Issue: ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/glide.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/dependency/dependency.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/repo/repo.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/mirrors/mirrors.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/cfg/cfg.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/godep/strip/strip.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/path/path.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/tree/tree.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/util/util.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/action/action.test' has relocations in .text +# ELF binary '/work/aarch64-oe-linux/glide/0.13.1-r0/packages-split/glide-ptest/usr/lib/glide/ptest/github.com/Masterminds/glide/cache/cache.test' has relocations in .text [textrel] +INSANE_SKIP_${PN}-ptest += "textrel" + +# fails to run task compile_ptest_base on mips +PTEST_ENABLED_mipsarch = "0" diff --git a/external/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/external/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb index 4745f19c..48b7e6d4 100644 --- a/external/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb +++ b/external/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb @@ -8,8 +8,8 @@ DEPENDS_class-native = "hostperl-runtime-native" INHIBIT_DEFAULT_DEPS = "1" -SRCREV = "30d53fc428ea42af9d6f4d355db0022e3918a824" -PV = "20180713+git${SRCPV}" +SRCREV = "5256817ace8493502ec88501a19e4051c2e220b0" +PV = "20200117+git${SRCPV}" SRC_URI = "git://git.savannah.gnu.org/config.git \ file://gnu-configize.in" diff --git a/external/poky/meta/recipes-devtools/go/go-1.11.inc b/external/poky/meta/recipes-devtools/go/go-1.11.inc deleted file mode 100644 index 90d40376..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11.inc +++ /dev/null @@ -1,23 +0,0 @@ -require go-common.inc - -GO_BASEVERSION = "1.11" -GO_MINOR = ".13" -PV .= "${GO_MINOR}" -FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -SRC_URI += "\ - file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \ - file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \ - file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \ - file://0004-ld-add-soname-to-shareable-objects.patch \ - file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \ - file://0006-cmd-dist-separate-host-and-target-builds.patch \ - 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] = "32e71746981695517387a2149eb541ef" -SRC_URI[main.sha256sum] = "5032095fd3f641cafcce164f551e5ae873785ce7b07ca7c143aecd18f7ba4076" diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0001-allow-CC-and-CXX-to-have-multiple-words.patch deleted file mode 100644 index 4442858c..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/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 -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 - ---- - 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/external/poky/meta/recipes-devtools/go/go-1.11/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch deleted file mode 100644 index 66b85618..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch +++ /dev/null @@ -1,218 +0,0 @@ -From 47db69e20ed66fb62b01affd83d829654b829893 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Mon, 19 Feb 2018 08:50:59 -0800 -Subject: [PATCH] cmd/go: make content-based hash generation less pedantic - -Go 1.10's build tool now uses content-based hashes to -determine when something should be built or re-built. -This same mechanism is used to maintain a built-artifact -cache for speeding up builds. - -However, the hashes it generates include information that -doesn't work well with OE, nor with using a shared runtime -library. - -First, it embeds path names to source files, unless -building within GOROOT. This prevents the building -of a package in GOPATH for later staging into GOROOT. - -This patch adds support for the environment variable -GOPATH_OMIT_IN_ACTIONID. If present, path name -embedding is disabled. - -Second, if cgo is enabled, the build ID for cgo-related -packages will include the current value of the environment -variables for invoking the compiler (CC, CXX, FC) and -any CGO_xxFLAGS variables. Only if the settings used -during a compilation exactly match, character for character, -the values used for compiling runtime/cgo or any other -cgo-enabled package being imported, will the tool -decide that the imported package is up-to-date. - -This is done to help ensure correctness, but is overly -simplistic and effectively prevents the reuse of built -artifacts that use cgo (or shared runtime, which includes -runtime/cgo). - -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 - ---- - src/cmd/go/internal/envcmd/env.go | 2 +- - src/cmd/go/internal/work/exec.go | 63 ++++++++++++++++++++++--------- - 2 files changed, 46 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 { - func ExtraEnvVarsCostly() []cfg.EnvVar { - var b work.Builder - b.Init() -- cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}) -+ cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false) - 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() - } - -+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. - // 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) { - 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 { - } - if len(p.CgoFiles)+len(p.SwigFiles) > 0 { - fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo")) -- cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p) -- fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(), cppflags, cflags, ldflags) -+ cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true) -+ fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(true), cppflags, cflags, ldflags) - if len(p.CXXFiles)+len(p.SwigFiles) > 0 { -- fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(), cxxflags) -+ fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(true), cxxflags) - } - if len(p.FFiles) > 0 { -- fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(), fflags) -+ fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(true), fflags) - } - // TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions? - } -@@ -2096,33 +2098,33 @@ 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 { -- return b.compilerCmd(b.ccExe(), incdir, workdir) -+ return b.compilerCmd(b.ccExe(false), incdir, workdir) - } - - // gxxCmd returns a g++ command line prefix - // defaultCXX is defined in zdefaultcc.go, written by cmd/dist. - func (b *Builder) GxxCmd(incdir, workdir string) []string { -- return b.compilerCmd(b.cxxExe(), incdir, workdir) -+ return b.compilerCmd(b.cxxExe(false), incdir, workdir) - } - - // gfortranCmd returns a gfortran command line prefix. - func (b *Builder) gfortranCmd(incdir, workdir string) []string { -- return b.compilerCmd(b.fcExe(), incdir, workdir) -+ return b.compilerCmd(b.fcExe(false), incdir, workdir) - } - - // ccExe returns the CC compiler setting without all the extra flags we add implicitly. --func (b *Builder) ccExe() []string { -- return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch)) -+func (b *Builder) ccExe(filtered bool) []string { -+ return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered) - } - - // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly. --func (b *Builder) cxxExe() []string { -- return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch)) -+func (b *Builder) cxxExe(filtered bool) []string { -+ return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered) - } - - // 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") -+func (b *Builder) fcExe(filtered bool) []string { -+ return b.compilerExe(os.Getenv("FC"), "gfortran", filtered) - } - - // compilerExe returns the compiler to use given an -@@ -2131,11 +2133,14 @@ 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"]. --func (b *Builder) compilerExe(envValue string, def string) []string { -+func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string { - compiler := strings.Fields(envValue) - 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) - } - -+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 { - return - } -+ if filtered { -+ cppflags = filterCompilerFlags(cppflags) -+ cflags = filterCompilerFlags(cflags) -+ cxxflags = filterCompilerFlags(cxxflags) -+ fflags = filterCompilerFlags(fflags) -+ ldflags = filterCompilerFlags(ldflags) -+ } - - return - } -@@ -2319,7 +2346,7 @@ var cgoRe = regexp.MustCompile(`[/\\:]`) - - 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 -- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p) -+ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false) - if err != nil { - return nil, nil, err - } -@@ -2679,7 +2706,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) { - - // 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) { -- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p) -+ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false) - if err != nil { - return "", "", err - } diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch deleted file mode 100644 index b6ca40ed..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/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 -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 - ---- - 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/external/poky/meta/recipes-devtools/go/go-1.11/0004-ld-add-soname-to-shareable-objects.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0004-ld-add-soname-to-shareable-objects.patch deleted file mode 100644 index 004a33a0..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0004-ld-add-soname-to-shareable-objects.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 55eb8c95a89f32aec16b7764e78e8cf75169dc81 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 17 Feb 2018 06:26:10 -0800 -Subject: [PATCH] ld: add soname to shareable objects - -so that OE's shared library dependency handling -can find them. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Matt Madison - ---- - src/cmd/link/internal/ld/lib.go | 4 ++++ - 1 file changed, 4 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() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - 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() { - 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() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - } - } - diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch deleted file mode 100644 index ace8de9e..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 1bf15aa8fb773604b2524cfdab493fa4d8fa9285 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 17 Feb 2018 06:32:45 -0800 -Subject: [PATCH] make.bash: override CC when building dist and go_bootstrap - -for handling OE cross-canadian builds. - -Upstream-Status: Inappropriate [OE specific] - -Signed-off-by: Matt Madison - ---- - 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 - 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 - - # -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 - # 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. --./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" -+CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" - rm -f ./cmd/dist/dist - - # DO NOT ADD ANY NEW CODE HERE. diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0006-cmd-dist-separate-host-and-target-builds.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0006-cmd-dist-separate-host-and-target-builds.patch deleted file mode 100644 index 0c0d5da8..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0006-cmd-dist-separate-host-and-target-builds.patch +++ /dev/null @@ -1,282 +0,0 @@ -From fe0fcaf43ef3aab81541dad2a71b46254dc4cf6a Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 17 Feb 2018 10:03:48 -0800 -Subject: [PATCH] cmd/dist: separate host and target builds - -Change the dist tool to allow for OE-style cross- -and cross-canadian builds: - - - command flags --host-only and --target only are added; - if one is present, the other changes mentioned below - take effect, and arguments may also be specified on - the command line to enumerate the package(s) to be - built. - - - for OE cross builds, go_bootstrap is always built for - the current build host, and is moved, along with the supporting - toolchain (asm, compile, etc.) to a separate 'native_native' - directory under GOROOT/pkg/tool. - - - go_bootstrap is not automatically removed after the build, - so it can be reused later (e.g., building both static and - shared runtime). - -Note that for --host-only builds, it would be nice to specify -just the "cmd" package to build only the go commands/tools, -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 - -more dist cleanup - ---- - src/cmd/dist/build.go | 153 ++++++++++++++++++++++++++++++------------ - 1 file changed, 111 insertions(+), 42 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 ( - goldflags string - workdir string - tooldir string -+ build_tooldir string - oldgoos string - oldgoarch string - exe string -@@ -50,6 +51,7 @@ var ( - - rebuildall bool - defaultclang bool -+ crossBuild bool - - vflag int // verbosity - ) -@@ -231,6 +233,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) -+ - } - - // 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. - if rebuildall { - xremoveall(tooldir) -+ xremoveall(build_tooldir) - } - xmkdirall(tooldir) -+ xmkdirall(build_tooldir) - - // Remove tool binaries from before the tool/gohostos_gohostarch - xremoveall(pathf("%s/bin/tool", goroot)) -@@ -1155,11 +1160,29 @@ func cmdbootstrap() { - - var noBanner bool - var debug bool -+ var hostOnly bool -+ var targetOnly bool -+ var toBuild = []string { "std", "cmd" } -+ - flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all") - flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process") - flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner") -+ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target") -+ flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host") - -- xflagparse(0) -+ xflagparse(-1) -+ -+ if (hostOnly && targetOnly) { -+ fatalf("specify only one of --host-only or --target-only\n") -+ } -+ crossBuild = hostOnly || targetOnly -+ if flag.NArg() > 0 { -+ if crossBuild { -+ toBuild = flag.Args() -+ } else { -+ 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() { - xprintf("\n") - } - -- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now -- goldflags = os.Getenv("GO_LDFLAGS") -+ // 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 { -+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now -+ goldflags = os.Getenv("GO_LDFLAGS") -+ } - goBootstrap := pathf("%s/go_bootstrap", tooldir) - cmdGo := pathf("%s/go", gobin) - if debug { -@@ -1237,7 +1265,11 @@ func cmdbootstrap() { - xprintf("\n") - } - xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n") -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ if crossBuild { -+ os.Setenv("CC", defaultcc[""]) -+ } else { -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ } - goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...) - if debug { - run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") -@@ -1274,50 +1306,84 @@ func cmdbootstrap() { - } - checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) - -- if goos == oldgoos && goarch == oldgoarch { -- // Common case - not setting up for cross-compilation. -- timelog("build", "toolchain") -- if vflag > 0 { -- xprintf("\n") -+ if crossBuild { -+ gogcflags = os.Getenv("GO_GCFLAGS") -+ goldflags = os.Getenv("GO_LDFLAGS") -+ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir)) -+ for _, f := range tool_files { -+ copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec) -+ xremove(f) -+ } -+ os.Setenv("GOTOOLDIR", build_tooldir) -+ goBootstrap = pathf("%s/go_bootstrap", build_tooldir) -+ if hostOnly { -+ timelog("build", "host toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) -+ goInstall(goBootstrap, toBuild...) -+ checkNotStale(goBootstrap, toBuild...) -+ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary -+ -+ timelog("build", "target toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ } else if targetOnly { -+ goos = oldgoos -+ goarch = oldgoarch -+ os.Setenv("GOOS", goos) -+ os.Setenv("GOARCH", goarch) -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) -+ goInstall(goBootstrap, toBuild...) -+ checkNotStale(goBootstrap, toBuild...) -+ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary - } -- xprintf("Building packages and commands for %s/%s.\n", goos, goarch) - } else { -- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. -- // Finish GOHOSTOS/GOHOSTARCH installation and then -- // run GOOS/GOARCH installation. -- timelog("build", "host toolchain") -- if vflag > 0 { -- xprintf("\n") -+ -+ if goos == oldgoos && goarch == oldgoarch { -+ // Common case - not setting up for cross-compilation. -+ timelog("build", "toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building packages and commands for %s/%s.\n", goos, goarch) -+ } else { -+ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. -+ // Finish GOHOSTOS/GOHOSTARCH installation and then -+ // run GOOS/GOARCH installation. -+ timelog("build", "host toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) -+ goInstall(goBootstrap, "std", "cmd") -+ checkNotStale(goBootstrap, "std", "cmd") -+ checkNotStale(cmdGo, "std", "cmd") -+ -+ timelog("build", "target toolchain") -+ if vflag > 0 { -+ xprintf("\n") -+ } -+ goos = oldgoos -+ goarch = oldgoarch -+ os.Setenv("GOOS", goos) -+ os.Setenv("GOARCH", goarch) -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -+ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) - } -- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) - goInstall(goBootstrap, "std", "cmd") - checkNotStale(goBootstrap, "std", "cmd") - checkNotStale(cmdGo, "std", "cmd") - -- timelog("build", "target toolchain") -- if vflag > 0 { -- xprintf("\n") -- } -- goos = oldgoos -- goarch = oldgoarch -- os.Setenv("GOOS", goos) -- os.Setenv("GOARCH", goarch) -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) -- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) -- } -- targets := []string{"std", "cmd"} -- if goos == "js" && goarch == "wasm" { -- // Skip the cmd tools for js/wasm. They're not usable. -- targets = targets[:1] -- } -- goInstall(goBootstrap, targets...) -- checkNotStale(goBootstrap, targets...) -- checkNotStale(cmdGo, targets...) -- if debug { -- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") -- run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) -- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) -- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) -+ if debug { -+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") -+ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) -+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) -+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) -+ } - } - - // Check that there are no new files in $GOROOT/bin other than -@@ -1335,7 +1401,11 @@ func cmdbootstrap() { - } - - // 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 { -+ xremove(pathf("%s/go_bootstrap", tooldir)) -+ } - - // Print trailing banner unless instructed otherwise. - if !noBanner { diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0007-cmd-go-make-GOROOT-precious-by-default.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0007-cmd-go-make-GOROOT-precious-by-default.patch deleted file mode 100644 index 29ef947a..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0007-cmd-go-make-GOROOT-precious-by-default.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 7cc60b3887be2d5674b9f5d422d022976cf205e5 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Fri, 2 Mar 2018 06:00:20 -0800 -Subject: [PATCH] cmd/go: make GOROOT precious by default - -The go build tool normally rebuilds whatever it detects is -stale. This can be a problem when GOROOT is intended to -be read-only and the go runtime has been built as a shared -library, since we don't want every application to be rebuilding -the shared runtime - particularly in cross-build/packaging -setups, since that would lead to 'abi mismatch' runtime errors. - -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 - ---- - src/cmd/go/internal/work/action.go | 3 +++ - src/cmd/go/internal/work/build.go | 5 +++++ - src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++ - 3 files changed, 33 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( - if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] { - continue - } -+ if goRootPrecious && (p1.Standard || p1.Goroot) { -+ continue -+ } - 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. - } - - const concurrentGCBackendCompilationEnabledByDefault = true -+var goRootPrecious bool = true - - func init() { - // break init cycle -@@ -160,6 +161,10 @@ func init() { - - AddBuildFlags(CmdBuild) - AddBuildFlags(CmdInstall) -+ -+ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" { -+ goRootPrecious = false -+ } - } - - // 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) - } - -+ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) { -+ _, err := os.Stat(a.Package.Target) -+ if err == nil { -+ a.built = a.Package.Target -+ a.Target = a.Package.Target -+ a.buildID = b.fileHash(a.Package.Target) -+ a.Package.Stale = false -+ a.Package.StaleReason = "GOROOT-resident package" -+ return nil -+ } -+ a.Package.Stale = true -+ a.Package.StaleReason = "missing or invalid GOROOT-resident package" -+ if b.IsCmdList { -+ return nil -+ } -+ } -+ - if err := b.Mkdir(a.Objdir); err != nil { - return err - } -@@ -1438,6 +1455,14 @@ func BuildInstallFunc(b *Builder, a *Act - return nil - } - -+ if goRootPrecious && a.Package != nil { -+ p := a.Package -+ if p.Standard || p.Goroot { -+ err := fmt.Errorf("attempting to install package %s into read-only GOROOT", p.ImportPath) -+ return err -+ } -+ } -+ - if err := b.Mkdir(a.Objdir); err != nil { - return err - } diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0008-use-GOBUILDMODE-to-set-buildmode.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0008-use-GOBUILDMODE-to-set-buildmode.patch deleted file mode 100644 index 225cf439..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0008-use-GOBUILDMODE-to-set-buildmode.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0e0c247f0caec23528889ff09d98348cba9028f1 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 26 Oct 2018 15:02:32 +0800 -Subject: [PATCH] use GOBUILDMODE to set buildmode - -While building go itself, the go build system does not support -to set `-buildmode=pie' from environment. - -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 ---- - src/cmd/go/internal/work/build.go | 6 +++++- - 1 file changed, 5 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) { - - 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", "", "") diff --git a/external/poky/meta/recipes-devtools/go/go-1.11/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/external/poky/meta/recipes-devtools/go/go-1.11/0009-ld-replace-glibc-dynamic-linker-with-musl.patch deleted file mode 100644 index fd67375c..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.11/0009-ld-replace-glibc-dynamic-linker-with-musl.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 35ea4be34e94912b00837e0f7c7385f2e98fe769 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sun, 18 Feb 2018 08:24:05 -0800 -Subject: [PATCH] ld: replace glibc dynamic linker with musl - -Rework of patch by Khem Raj -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 - ---- - src/cmd/link/internal/amd64/obj.go | 2 +- - src/cmd/link/internal/arm/obj.go | 2 +- - src/cmd/link/internal/arm64/obj.go | 2 +- - src/cmd/link/internal/mips/obj.go | 2 +- - src/cmd/link/internal/mips64/obj.go | 2 +- - src/cmd/link/internal/ppc64/obj.go | 2 +- - src/cmd/link/internal/s390x/obj.go | 2 +- - src/cmd/link/internal/x86/obj.go | 2 +- - 8 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/cmd/link/internal/amd64/obj.go b/src/cmd/link/internal/amd64/obj.go -index 87e8091..f522a63 100644 ---- a/src/cmd/link/internal/amd64/obj.go -+++ b/src/cmd/link/internal/amd64/obj.go -@@ -62,7 +62,7 @@ func Init() (*sys.Arch, ld.Arch) { - PEreloc1: pereloc1, - TLSIEtoLE: tlsIEtoLE, - -- Linuxdynld: "/lib64/ld-linux-x86-64.so.2", -+ Linuxdynld: "/lib64/ld-musl-x86-64.so.1", - Freebsddynld: "/libexec/ld-elf.so.1", - Openbsddynld: "/usr/libexec/ld.so", - Netbsddynld: "/libexec/ld.elf_so", -diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go -index 788be68..1d2b90e 100644 ---- a/src/cmd/link/internal/arm/obj.go -+++ b/src/cmd/link/internal/arm/obj.go -@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) { - Gentext: gentext, - Machoreloc1: machoreloc1, - -- Linuxdynld: "/lib/ld-linux.so.3", // 2 for OABI, 3 for EABI -+ Linuxdynld: "/lib/ld-musl-armhf.so.1", - Freebsddynld: "/usr/libexec/ld-elf.so.1", - Openbsddynld: "/usr/libexec/ld.so", - Netbsddynld: "/libexec/ld.elf_so", -diff --git a/src/cmd/link/internal/arm64/obj.go b/src/cmd/link/internal/arm64/obj.go -index 405d22d..b115659 100644 ---- a/src/cmd/link/internal/arm64/obj.go -+++ b/src/cmd/link/internal/arm64/obj.go -@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) { - Gentext: gentext, - Machoreloc1: machoreloc1, - -- Linuxdynld: "/lib/ld-linux-aarch64.so.1", -+ Linuxdynld: "/lib/ld-musl-aarch64.so.1", - - Freebsddynld: "XXX", - Openbsddynld: "XXX", -diff --git a/src/cmd/link/internal/mips/obj.go b/src/cmd/link/internal/mips/obj.go -index c5d3451..fd85e63 100644 ---- a/src/cmd/link/internal/mips/obj.go -+++ b/src/cmd/link/internal/mips/obj.go -@@ -60,7 +60,7 @@ func Init() (*sys.Arch, ld.Arch) { - Gentext: gentext, - Machoreloc1: machoreloc1, - -- Linuxdynld: "/lib/ld.so.1", -+ Linuxdynld: "/lib/ld-musl-mipsle.so.1", - - Freebsddynld: "XXX", - Openbsddynld: "XXX", -diff --git a/src/cmd/link/internal/mips64/obj.go b/src/cmd/link/internal/mips64/obj.go -index 83974e5..097224f 100644 ---- a/src/cmd/link/internal/mips64/obj.go -+++ b/src/cmd/link/internal/mips64/obj.go -@@ -59,7 +59,7 @@ func Init() (*sys.Arch, ld.Arch) { - Gentext: gentext, - Machoreloc1: machoreloc1, - -- Linuxdynld: "/lib64/ld64.so.1", -+ Linuxdynld: "/lib64/ld-musl-mips64le.so.1", - Freebsddynld: "XXX", - Openbsddynld: "XXX", - Netbsddynld: "XXX", -diff --git a/src/cmd/link/internal/ppc64/obj.go b/src/cmd/link/internal/ppc64/obj.go -index 273d9b4..a503abe 100644 ---- 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", -diff --git a/src/cmd/link/internal/s390x/obj.go b/src/cmd/link/internal/s390x/obj.go -index 9ac7eb8..3825ff7 100644 ---- a/src/cmd/link/internal/s390x/obj.go -+++ b/src/cmd/link/internal/s390x/obj.go -@@ -57,7 +57,7 @@ func Init() (*sys.Arch, ld.Arch) { - Gentext: gentext, - Machoreloc1: machoreloc1, - -- Linuxdynld: "/lib64/ld64.so.1", -+ Linuxdynld: "/lib64/ld-musl-s390x.so.1", - - // not relevant for s390x - Freebsddynld: "XXX", -diff --git a/src/cmd/link/internal/x86/obj.go b/src/cmd/link/internal/x86/obj.go -index 6a744dc..d81f392 100644 ---- a/src/cmd/link/internal/x86/obj.go -+++ b/src/cmd/link/internal/x86/obj.go -@@ -58,7 +58,7 @@ func Init() (*sys.Arch, ld.Arch) { - Machoreloc1: machoreloc1, - PEreloc1: pereloc1, - -- Linuxdynld: "/lib/ld-linux.so.2", -+ Linuxdynld: "/lib/ld-musl-i386.so.1", - Freebsddynld: "/usr/libexec/ld-elf.so.1", - Openbsddynld: "/usr/libexec/ld.so", - Netbsddynld: "/usr/libexec/ld.elf_so", diff --git a/external/poky/meta/recipes-devtools/go/go-1.14.inc b/external/poky/meta/recipes-devtools/go/go-1.14.inc new file mode 100644 index 00000000..8f8ed89d --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14.inc @@ -0,0 +1,21 @@ +require go-common.inc + +GO_BASEVERSION = "1.14" +GO_MINOR = ".7" +PV .= "${GO_MINOR}" +FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +SRC_URI += "\ + file://0001-allow-CC-and-CXX-to-have-multiple-words.patch \ + file://0002-cmd-go-make-content-based-hash-generation-less-pedan.patch \ + file://0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch \ + file://0004-ld-add-soname-to-shareable-objects.patch \ + file://0005-make.bash-override-CC-when-building-dist-and-go_boot.patch \ + file://0006-cmd-dist-separate-host-and-target-builds.patch \ + 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.sha256sum] = "064392433563660c73186991c0a315787688e7c38a561e26647686f89b6c30e3" diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0001-allow-CC-and-CXX-to-have-multiple-words.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0001-allow-CC-and-CXX-to-have-multiple-words.patch new file mode 100644 index 00000000..d47664d8 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/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 +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 . + +Signed-off-by: Alexander J Kube + +--- + 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 +@@ -102,11 +102,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/external/poky/meta/recipes-devtools/go/go-1.14/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch new file mode 100644 index 00000000..9e88567e --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0002-cmd-go-make-content-based-hash-generation-less-pedan.patch @@ -0,0 +1,219 @@ +From a13ae484e41139094505d2834437e9262a5315f7 Mon Sep 17 00:00:00 2001 +From: Alex Kube +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. +This same mechanism is used to maintain a built-artifact +cache for speeding up builds. + +However, the hashes it generates include information that +doesn't work well with OE, nor with using a shared runtime +library. + +First, it embeds path names to source files, unless +building within GOROOT. This prevents the building +of a package in GOPATH for later staging into GOROOT. + +This patch adds support for the environment variable +GOPATH_OMIT_IN_ACTIONID. If present, path name +embedding is disabled. + +Second, if cgo is enabled, the build ID for cgo-related +packages will include the current value of the environment +variables for invoking the compiler (CC, CXX, FC) and +any CGO_xxFLAGS variables. Only if the settings used +during a compilation exactly match, character for character, +the values used for compiling runtime/cgo or any other +cgo-enabled package being imported, will the tool +decide that the imported package is up-to-date. + +This is done to help ensure correctness, but is overly +simplistic and effectively prevents the reuse of built +artifacts that use cgo (or shared runtime, which includes +runtime/cgo). + +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. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/envcmd/env.go | 2 +- + src/cmd/go/internal/work/exec.go | 66 ++++++++++++++++++++++--------- + 2 files changed, 49 insertions(+), 19 deletions(-) + +--- a/src/cmd/go/internal/envcmd/env.go ++++ b/src/cmd/go/internal/envcmd/env.go +@@ -156,7 +156,7 @@ func ExtraEnvVars() []cfg.EnvVar { + func ExtraEnvVarsCostly() []cfg.EnvVar { + var b work.Builder + b.Init() +- cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}) ++ cppflags, cflags, cxxflags, fflags, ldflags, err := b.CFlags(&load.Package{}, false) + if err != nil { + // Should not happen - b.CFlags was given an empty package. + fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err) +--- a/src/cmd/go/internal/work/exec.go ++++ b/src/cmd/go/internal/work/exec.go +@@ -32,6 +32,8 @@ import ( + "time" + ) + ++var omitGopath = os.Getenv("GOPATH_OMIT_IN_ACTIONID") != "" ++ + // 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 { +@@ -208,7 +210,7 @@ func (b *Builder) buildActionID(a *Actio + // Assume b.WorkDir is being trimmed properly. + // When -trimpath is used with a package built from the module cache, + // use the module path and version instead of the directory. +- if !p.Goroot && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) { ++ if !p.Goroot && !omitGopath && !cfg.BuildTrimpath && !strings.HasPrefix(p.Dir, b.WorkDir) { + fmt.Fprintf(h, "dir %s\n", p.Dir) + } else if cfg.BuildTrimpath && p.Module != nil { + fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version) +@@ -224,13 +226,13 @@ func (b *Builder) buildActionID(a *Actio + } + if len(p.CgoFiles)+len(p.SwigFiles) > 0 { + fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo")) +- cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p) +- fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(), cppflags, cflags, ldflags) ++ cppflags, cflags, cxxflags, fflags, ldflags, _ := b.CFlags(p, true) ++ fmt.Fprintf(h, "CC=%q %q %q %q\n", b.ccExe(true), cppflags, cflags, ldflags) + if len(p.CXXFiles)+len(p.SwigFiles) > 0 { +- fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(), cxxflags) ++ fmt.Fprintf(h, "CXX=%q %q\n", b.cxxExe(true), cxxflags) + } + if len(p.FFiles) > 0 { +- fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(), fflags) ++ fmt.Fprintf(h, "FC=%q %q\n", b.fcExe(true), fflags) + } + // TODO(rsc): Should we include the SWIG version or Fortran/GCC/G++/Objective-C compiler versions? + } +@@ -2228,33 +2230,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 { +- return b.compilerCmd(b.ccExe(), incdir, workdir) ++ return b.compilerCmd(b.ccExe(false), incdir, workdir) + } + + // gxxCmd returns a g++ command line prefix + // defaultCXX is defined in zdefaultcc.go, written by cmd/dist. + func (b *Builder) GxxCmd(incdir, workdir string) []string { +- return b.compilerCmd(b.cxxExe(), incdir, workdir) ++ return b.compilerCmd(b.cxxExe(false), incdir, workdir) + } + + // gfortranCmd returns a gfortran command line prefix. + func (b *Builder) gfortranCmd(incdir, workdir string) []string { +- return b.compilerCmd(b.fcExe(), incdir, workdir) ++ return b.compilerCmd(b.fcExe(false), incdir, workdir) + } + + // ccExe returns the CC compiler setting without all the extra flags we add implicitly. +-func (b *Builder) ccExe() []string { +- return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch)) ++func (b *Builder) ccExe(filtered bool) []string { ++ return b.compilerExe(origCC, cfg.DefaultCC(cfg.Goos, cfg.Goarch), filtered) + } + + // cxxExe returns the CXX compiler setting without all the extra flags we add implicitly. +-func (b *Builder) cxxExe() []string { +- return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch)) ++func (b *Builder) cxxExe(filtered bool) []string { ++ return b.compilerExe(origCXX, cfg.DefaultCXX(cfg.Goos, cfg.Goarch), filtered) + } + + // fcExe returns the FC compiler setting without all the extra flags we add implicitly. +-func (b *Builder) fcExe() []string { +- 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 +@@ -2263,11 +2280,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"]. +-func (b *Builder) compilerExe(envValue string, def string) []string { ++func (b *Builder) compilerExe(envValue string, def string, filtered bool) []string { + compiler := strings.Fields(envValue) + if len(compiler) == 0 { + compiler = []string{def} + } ++ ++ if filtered { ++ return append(compiler[0:1], filterCompilerFlags(compiler[1:])...) ++ } ++ + return compiler + } + +@@ -2428,7 +2450,7 @@ func envList(key, def string) []string { + } + + // 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 { +@@ -2447,6 +2469,14 @@ func (b *Builder) CFlags(p *load.Package + return + } + ++ if filtered { ++ cppflags = filterCompilerFlags(cppflags) ++ cflags = filterCompilerFlags(cflags) ++ cxxflags = filterCompilerFlags(cxxflags) ++ fflags = filterCompilerFlags(fflags) ++ ldflags = filterCompilerFlags(ldflags) ++ } ++ + return + } + +@@ -2461,7 +2491,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 +- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p) ++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, cgoFFLAGS, cgoLDFLAGS, err := b.CFlags(p, false) + if err != nil { + return nil, nil, err + } +@@ -2820,7 +2850,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) { +- cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p) ++ cgoCPPFLAGS, cgoCFLAGS, cgoCXXFLAGS, _, _, err := b.CFlags(p, false) + if err != nil { + return "", "", err + } diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0003-allow-GOTOOLDIR-to-be-overridden-in-the-environment.patch new file mode 100644 index 00000000..662c7054 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/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 +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 . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + 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/external/poky/meta/recipes-devtools/go/go-1.14/0004-ld-add-soname-to-shareable-objects.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0004-ld-add-soname-to-shareable-objects.patch new file mode 100644 index 00000000..75c9c752 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0004-ld-add-soname-to-shareable-objects.patch @@ -0,0 +1,45 @@ +From bf5cf5301ae5914498454c87293d1df2e1d8489f Mon Sep 17 00:00:00 2001 +From: Alex Kube +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. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + src/cmd/link/internal/ld/lib.go | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/src/cmd/link/internal/ld/lib.go ++++ b/src/cmd/link/internal/ld/lib.go +@@ -1280,6 +1280,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))) + if ctxt.HeadType != objabi.Hwindows { + // Pass -z nodelete to mark the shared library as + // non-closeable: a dlclose will do nothing. +@@ -1291,6 +1292,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") +@@ -1299,6 +1301,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))) + } + } + diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch new file mode 100644 index 00000000..59c12d95 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0005-make.bash-override-CC-when-building-dist-and-go_boot.patch @@ -0,0 +1,39 @@ +From f05ef3ded52b98537c10efd0b15cd9612471524d Mon Sep 17 00:00:00 2001 +From: Alex Kube +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. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Alexander J Kube +--- + src/make.bash | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/src/make.bash ++++ b/src/make.bash +@@ -178,7 +178,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; + exit 1 + fi + rm -f cmd/dist/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) +@@ -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. +-./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" ++CC="${BUILD_CC:-${CC}}" ./cmd/dist/dist bootstrap $buildall $vflag $GO_DISTFLAGS "$@" + rm -f ./cmd/dist/dist + + # DO NOT ADD ANY NEW CODE HERE. diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0006-cmd-dist-separate-host-and-target-builds.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0006-cmd-dist-separate-host-and-target-builds.patch new file mode 100644 index 00000000..7aee0bac --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0006-cmd-dist-separate-host-and-target-builds.patch @@ -0,0 +1,274 @@ +From 10735bb84df17ba657f76835f483cd8543a879c1 Mon Sep 17 00:00:00 2001 +From: Alex Kube +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: + + - command flags --host-only and --target only are added; + if one is present, the other changes mentioned below + take effect, and arguments may also be specified on + the command line to enumerate the package(s) to be + built. + + - for OE cross builds, go_bootstrap is always built for + the current build host, and is moved, along with the supporting + toolchain (asm, compile, etc.) to a separate 'native_native' + directory under GOROOT/pkg/tool. + + - go_bootstrap is not automatically removed after the build, + so it can be reused later (e.g., building both static and + shared runtime). + +Note that for --host-only builds, it would be nice to specify +just the "cmd" package to build only the go commands/tools, +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. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/dist/build.go | 155 ++++++++++++++++++++++++++++++------------ + 1 file changed, 112 insertions(+), 43 deletions(-) + +--- 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 + oldgoos string + oldgoarch string + exe string +@@ -53,6 +54,7 @@ var ( + + rebuildall bool + defaultclang bool ++ crossBuild bool + + vflag int // verbosity + ) +@@ -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) + } + + // compilerEnv returns a map from "goos/goarch" to the +@@ -480,8 +484,10 @@ func setup() { + p := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch) + if rebuildall { + xremoveall(p) ++ xremoveall(build_tooldir) + } + xmkdirall(p) ++ xmkdirall(build_tooldir) + + 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"} ++ + flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all") + flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process") + flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner") ++ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target") ++ flag.BoolVar(&targetOnly, "target-only", targetOnly, "build only target binaries, not host") + +- xflagparse(0) ++ xflagparse(-1) + ++ if hostOnly && targetOnly { ++ fatalf("specify only one of --host-only or --target-only\n") ++ } ++ crossBuild = hostOnly || targetOnly ++ if flag.NArg() > 0 { ++ if crossBuild { ++ toBuild = flag.Args() ++ } else { ++ fatalf("package names not permitted without --host-only or --target-only\n") ++ } ++ } + // 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") // 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 { ++ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now ++ 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 { +@@ -1333,7 +1361,11 @@ func cmdbootstrap() { + xprintf("\n") + } + xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n") +- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ if crossBuild { ++ os.Setenv("CC", defaultcc[""]) ++ } else { ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ } + goInstall(goBootstrap, append([]string{"-i"}, toolchain...)...) + if debug { + run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") +@@ -1370,50 +1402,84 @@ func cmdbootstrap() { + } + checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) + +- if goos == oldgoos && goarch == oldgoarch { +- // Common case - not setting up for cross-compilation. +- timelog("build", "toolchain") +- if vflag > 0 { +- xprintf("\n") ++ if crossBuild { ++ gogcflags = os.Getenv("GO_GCFLAGS") ++ goldflags = os.Getenv("GO_LDFLAGS") ++ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir)) ++ for _, f := range tool_files { ++ copyfile(pathf("%s/%s", build_tooldir, filepath.Base(f)), f, writeExec) ++ xremove(f) ++ } ++ os.Setenv("GOTOOLDIR", build_tooldir) ++ goBootstrap = pathf("%s/go_bootstrap", build_tooldir) ++ if hostOnly { ++ timelog("build", "host toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) ++ goInstall(goBootstrap, toBuild...) ++ checkNotStale(goBootstrap, toBuild...) ++ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary ++ ++ timelog("build", "target toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ } else if targetOnly { ++ goos = oldgoos ++ goarch = oldgoarch ++ os.Setenv("GOOS", goos) ++ os.Setenv("GOARCH", goarch) ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch) ++ goInstall(goBootstrap, toBuild...) ++ checkNotStale(goBootstrap, toBuild...) ++ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary + } +- xprintf("Building packages and commands for %s/%s.\n", goos, goarch) + } else { +- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. +- // Finish GOHOSTOS/GOHOSTARCH installation and then +- // run GOOS/GOARCH installation. +- timelog("build", "host toolchain") +- if vflag > 0 { +- xprintf("\n") ++ ++ if goos == oldgoos && goarch == oldgoarch { ++ // Common case - not setting up for cross-compilation. ++ timelog("build", "toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building packages and commands for %s/%s.\n", goos, goarch) ++ } else { ++ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH. ++ // Finish GOHOSTOS/GOHOSTARCH installation and then ++ // run GOOS/GOARCH installation. ++ timelog("build", "host toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) ++ goInstall(goBootstrap, "std", "cmd") ++ checkNotStale(goBootstrap, "std", "cmd") ++ checkNotStale(cmdGo, "std", "cmd") ++ ++ timelog("build", "target toolchain") ++ if vflag > 0 { ++ xprintf("\n") ++ } ++ goos = oldgoos ++ goarch = oldgoarch ++ os.Setenv("GOOS", goos) ++ os.Setenv("GOARCH", goarch) ++ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) ++ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) + } +- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch) + goInstall(goBootstrap, "std", "cmd") + checkNotStale(goBootstrap, "std", "cmd") + checkNotStale(cmdGo, "std", "cmd") + +- timelog("build", "target toolchain") +- if vflag > 0 { +- xprintf("\n") +- } +- goos = oldgoos +- goarch = oldgoarch +- os.Setenv("GOOS", goos) +- os.Setenv("GOARCH", goarch) +- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch)) +- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch) +- } +- targets := []string{"std", "cmd"} +- if goos == "js" && goarch == "wasm" { +- // Skip the cmd tools for js/wasm. They're not usable. +- targets = targets[:1] +- } +- goInstall(goBootstrap, targets...) +- checkNotStale(goBootstrap, targets...) +- checkNotStale(cmdGo, targets...) +- if debug { +- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") +- run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) +- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) +- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) ++ if debug { ++ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full") ++ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch)) ++ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...) ++ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec) ++ } + } + + // Check that there are no new files in $GOROOT/bin other than +@@ -1430,8 +1496,11 @@ func cmdbootstrap() { + } + } + +- // 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 { ++ xremove(pathf("%s/go_bootstrap", tooldir)) ++ } + + if goos == "android" { + // Make sure the exec wrapper will sync a fresh $GOROOT to the device. diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0007-cmd-go-make-GOROOT-precious-by-default.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0007-cmd-go-make-GOROOT-precious-by-default.patch new file mode 100644 index 00000000..b93f83de --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0007-cmd-go-make-GOROOT-precious-by-default.patch @@ -0,0 +1,104 @@ +From 9ba507e076c744f4d394418e4a849e68cd426a4a Mon Sep 17 00:00:00 2001 +From: Alex Kube +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 +be read-only and the go runtime has been built as a shared +library, since we don't want every application to be rebuilding +the shared runtime - particularly in cross-build/packaging +setups, since that would lead to 'abi mismatch' runtime errors. + +This patch prevents the install and linkshared actions from +installing to GOROOT unless overridden with the GOROOT_OVERRIDE +environment variable. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/work/action.go | 3 +++ + src/cmd/go/internal/work/build.go | 6 ++++++ + src/cmd/go/internal/work/exec.go | 25 +++++++++++++++++++++++++ + 3 files changed, 34 insertions(+) + +--- 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 + } ++ if goRootPrecious && (p1.Standard || p1.Goroot) { ++ continue ++ } + 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 +--- 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 ++ + func init() { + // break init cycle + CmdBuild.Run = runBuild +@@ -179,6 +181,10 @@ func init() { + + AddBuildFlags(CmdBuild, DefaultBuildFlags) + AddBuildFlags(CmdInstall, DefaultBuildFlags) ++ ++ if x := os.Getenv("GOROOT_OVERRIDE"); x != "" { ++ goRootPrecious = false ++ } + } + + // Note that flags consulted by other parts of the code +--- a/src/cmd/go/internal/work/exec.go ++++ b/src/cmd/go/internal/work/exec.go +@@ -464,6 +464,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) { ++ _, err := os.Stat(a.Package.Target) ++ if err == nil { ++ a.built = a.Package.Target ++ a.Target = a.Package.Target ++ a.buildID = b.fileHash(a.Package.Target) ++ a.Package.Stale = false ++ a.Package.StaleReason = "GOROOT-resident package" ++ return nil ++ } ++ a.Package.Stale = true ++ a.Package.StaleReason = "missing or invalid GOROOT-resident package" ++ if b.IsCmdList { ++ return nil ++ } ++ } ++ + if err := b.Mkdir(a.Objdir); err != nil { + return err + } +@@ -1493,6 +1510,14 @@ func BuildInstallFunc(b *Builder, a *Act + return nil + } + ++ if goRootPrecious && a.Package != nil { ++ p := a.Package ++ if p.Standard || p.Goroot { ++ err := fmt.Errorf("attempting to install package %s into read-only GOROOT", p.ImportPath) ++ return err ++ } ++ } ++ + if err := b.Mkdir(a.Objdir); err != nil { + return err + } diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0008-use-GOBUILDMODE-to-set-buildmode.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0008-use-GOBUILDMODE-to-set-buildmode.patch new file mode 100644 index 00000000..b15d9812 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0008-use-GOBUILDMODE-to-set-buildmode.patch @@ -0,0 +1,42 @@ +From 971b5626339ce0c4d57f9721c9a81af566c5a044 Mon Sep 17 00:00:00 2001 +From: Alex Kube +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. + +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 + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Hongxu Jia + +Signed-off-by: Alexander J Kube +--- + src/cmd/go/internal/work/build.go | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/src/cmd/go/internal/work/build.go ++++ b/src/cmd/go/internal/work/build.go +@@ -251,7 +251,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", "") + if mask&OmitModFlag == 0 { diff --git a/external/poky/meta/recipes-devtools/go/go-1.14/0009-ld-replace-glibc-dynamic-linker-with-musl.patch b/external/poky/meta/recipes-devtools/go/go-1.14/0009-ld-replace-glibc-dynamic-linker-with-musl.patch new file mode 100644 index 00000000..427cfb0d --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-1.14/0009-ld-replace-glibc-dynamic-linker-with-musl.patch @@ -0,0 +1,115 @@ +From 973251ae0c69a35721f6115345d3f57b2847979f Mon Sep 17 00:00:00 2001 +From: Alex Kube +Date: Wed, 23 Oct 2019 21:20:13 +0430 +Subject: [PATCH 9/9] ld: replace glibc dynamic linker with musl + +Rework of patch by Khem Raj +for go 1.10. Should be applied conditionally on +musl being the system C library. + +Adapted to Go 1.13 from patches originally submitted to +the meta/recipes-devtools/go tree by +Matt Madison . + +Upstream-Status: Inappropriate [Real fix should be portable across libcs] + +Signed-off-by: Alexander J Kube +--- + 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 +@@ -59,7 +59,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: "/usr/libexec/ld-elf.so.1", + Openbsddynld: "/usr/libexec/ld.so", +--- 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 +@@ -63,7 +63,7 @@ func Init() (*sys.Arch, ld.Arch) { + Xcoffreloc1: xcoffreloc1, + + // TODO(austin): ABI v1 uses /usr/lib/ld.so.1, +- Linuxdynld: "/lib64/ld64.so.1", ++ Linuxdynld: "/lib64/ld-musl-powerpc64le.so.1", + + Freebsddynld: "XXX", + Openbsddynld: "XXX", +--- 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/external/poky/meta/recipes-devtools/go/go-1.9.inc b/external/poky/meta/recipes-devtools/go/go-1.9.inc deleted file mode 100644 index ba1eaa05..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9.inc +++ /dev/null @@ -1,27 +0,0 @@ -require go-common.inc - -GO_BASEVERSION = "1.9" -GO_MINOR = ".7" -PV .= "${GO_MINOR}" - -FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -SRC_URI += "\ - file://0001-make.bash-quote-CC_FOR_TARGET.patch \ - file://0002-cmd-go-fix-CC-and-CXX-environment-variable-construct.patch \ - file://0003-make.bash-better-separate-host-and-target-builds.patch \ - file://0004-cmd-go-allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch \ - file://0005-cmd-go-make-GOROOT-precious-by-default.patch \ - file://0006-make.bash-add-GOTOOLDIR_BOOTSTRAP-environment-variab.patch \ - file://0007-ld-add-soname-to-shareable-objects.patch \ - file://0008-make.bash-add-GOHOSTxx-indirection-for-cross-canadia.patch \ - file://0009-cmd-go-buildmode-pie-forces-external-linking-mode-on.patch \ - file://0010-make.bash-override-CC-when-building-dist-and-go_boot.patch \ - file://0011-use-GOBUILDMODE-to-set-buildmode.patch \ -" -SRC_URI_append_libc-musl = " file://set-external-linker.patch" - -SRC_URI[main.md5sum] = "3c2cf876ed6612a022574a565206c6ea" -SRC_URI[main.sha256sum] = "582814fa45e8ecb0859a208e517b48aa0ad951e3b36c7fff203d834e0ef27722" diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0001-make.bash-quote-CC_FOR_TARGET.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0001-make.bash-quote-CC_FOR_TARGET.patch deleted file mode 100644 index 7800975e..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0001-make.bash-quote-CC_FOR_TARGET.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d24734ad44006791fd48fc45ea34fe608ff672fb Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:04:23 -0700 -Subject: [PATCH 1/7] make.bash: quote CC_FOR_TARGET - -For OE cross-builds, $CC_FOR_TARGET has more than -one word and needs to be quoted. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Matt Madison ---- - src/make.bash | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/make.bash b/src/make.bash -index 71e7531..dcf3256 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -175,7 +175,7 @@ echo "##### Building packages and commands for $GOOS/$GOARCH." - - old_bin_files=$(cd $GOROOT/bin && echo *) - --CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd -+CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd - - # Check that there are no new files in $GOROOT/bin other than go and gofmt - # and $GOOS_$GOARCH (a directory used when cross-compiling). --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0002-cmd-go-fix-CC-and-CXX-environment-variable-construct.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0002-cmd-go-fix-CC-and-CXX-environment-variable-construct.patch deleted file mode 100644 index a4e42261..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0002-cmd-go-fix-CC-and-CXX-environment-variable-construct.patch +++ /dev/null @@ -1,67 +0,0 @@ -From a7170d32a13aead608abd18996f6dab2e2a631b5 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:06:37 -0700 -Subject: [PATCH 2/7] cmd/go: fix CC and CXX environment variable construction - -For OE cross-builds, CC and CXX have multiple words, and -we need their complete definitions when setting up the -environment during Go builds. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Matt Madison ---- - src/cmd/go/internal/envcmd/env.go | 4 ++-- - src/cmd/go/internal/work/build.go | 12 ++++++++++++ - 2 files changed, 14 insertions(+), 2 deletions(-) - -diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go -index 43d4334..529d21d 100644 ---- a/src/cmd/go/internal/envcmd/env.go -+++ b/src/cmd/go/internal/envcmd/env.go -@@ -74,10 +74,10 @@ func MkEnv() []cfg.EnvVar { - } - - cmd := b.GccCmd(".") -- env = append(env, cfg.EnvVar{Name: "CC", Value: cmd[0]}) -+ env = append(env, cfg.EnvVar{Name: "CC", Value: strings.Join(b.GccCmdForReal(), " ")}) - env = append(env, cfg.EnvVar{Name: "GOGCCFLAGS", Value: strings.Join(cmd[3:], " ")}) - cmd = b.GxxCmd(".") -- env = append(env, cfg.EnvVar{Name: "CXX", Value: cmd[0]}) -+ env = append(env, cfg.EnvVar{Name: "CXX", Value: strings.Join(b.GxxCmdForReal(), " ")}) - - if cfg.BuildContext.CgoEnabled { - env = append(env, cfg.EnvVar{Name: "CGO_ENABLED", Value: "1"}) -diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go -index 7d667ff..85df0b3 100644 ---- a/src/cmd/go/internal/work/build.go -+++ b/src/cmd/go/internal/work/build.go -@@ -3127,12 +3127,24 @@ func (b *Builder) GccCmd(objdir string) []string { - return b.ccompilerCmd("CC", cfg.DefaultCC, objdir) - } - -+// gccCmd returns a gcc command line prefix -+// defaultCC is defined in zdefaultcc.go, written by cmd/dist. -+func (b *Builder) GccCmdForReal() []string { -+ return envList("CC", cfg.DefaultCC) -+} -+ - // gxxCmd returns a g++ command line prefix - // defaultCXX is defined in zdefaultcc.go, written by cmd/dist. - func (b *Builder) GxxCmd(objdir string) []string { - return b.ccompilerCmd("CXX", cfg.DefaultCXX, objdir) - } - -+// gxxCmd returns a g++ command line prefix -+// defaultCXX is defined in zdefaultcc.go, written by cmd/dist. -+func (b *Builder) GxxCmdForReal() []string { -+ return envList("CXX", cfg.DefaultCXX) -+} -+ - // gfortranCmd returns a gfortran command line prefix. - func (b *Builder) gfortranCmd(objdir string) []string { - return b.ccompilerCmd("FC", "gfortran", objdir) --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0003-make.bash-better-separate-host-and-target-builds.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0003-make.bash-better-separate-host-and-target-builds.patch deleted file mode 100644 index ffd9f235..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0003-make.bash-better-separate-host-and-target-builds.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 31e88f06af7ab787d8fe0c1ca625193e1799e167 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:12:04 -0700 -Subject: [PATCH 3/7] make.bash: better separate host and target builds - -Fore OE cross-builds, the simple checks in make.bash are -insufficient for distinguishing host and target build -environments, so add some options for telling the -script which parts are being built. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Matt Madison ---- - src/make.bash | 51 ++++++++++++++++++++++++++++----------------------- - 1 file changed, 28 insertions(+), 23 deletions(-) - -diff --git a/src/make.bash b/src/make.bash -index dcf3256..9553623 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -156,13 +156,22 @@ if [ "$1" = "--no-clean" ]; then - buildall="" - shift - fi --./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap -+do_host_build="yes" -+do_target_build="yes" -+if [ "$1" = "--target-only" ]; then -+ do_host_build="no" -+ shift -+elif [ "$1" = "--host-only" ]; then -+ do_target_build="no" -+ shift -+fi - --# Delay move of dist tool to now, because bootstrap may clear tool directory. --mv cmd/dist/dist "$GOTOOLDIR"/dist --echo -+if [ "$do_host_build" = "yes" ]; then -+ ./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap -+ # Delay move of dist tool to now, because bootstrap may clear tool directory. -+ mv cmd/dist/dist "$GOTOOLDIR"/dist -+ echo - --if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then - echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH." - # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however, - # use the host compiler, CC, from `cmd/dist/dist env` instead. -@@ -171,24 +180,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then - echo - fi - --echo "##### Building packages and commands for $GOOS/$GOARCH." -- --old_bin_files=$(cd $GOROOT/bin && echo *) -- --CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd -- --# Check that there are no new files in $GOROOT/bin other than go and gofmt --# and $GOOS_$GOARCH (a directory used when cross-compiling). --(cd $GOROOT/bin && for f in *; do -- if ! expr " $old_bin_files go gofmt ${GOOS}_${GOARCH} " : ".* $f " >/dev/null 2>/dev/null; then -- echo 1>&2 "ERROR: unexpected new file in $GOROOT/bin: $f" -- exit 1 -- fi --done) -- --echo -- --rm -f "$GOTOOLDIR"/go_bootstrap -+if [ "$do_target_build" = "yes" ]; then -+ GO_INSTALL="${GO_TARGET_INSTALL:-std cmd}" -+ echo "##### Building packages and commands for $GOOS/$GOARCH." -+ if [ "$GOHOSTOS" = "$GOOS" -a "$GOHOSTARCH" = "$GOARCH" -a "$do_host_build" = "yes" ]; then -+ rm -rf ./host-tools -+ mkdir ./host-tools -+ mv "$GOTOOLDIR"/* ./host-tools -+ GOTOOLDIR="$PWD/host-tools" -+ fi -+ GOTOOLDIR="$GOTOOLDIR" CC="$CC_FOR_TARGET" "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v ${GO_INSTALL} -+ echo -+ -+ rm -f "$GOTOOLDIR"/go_bootstrap -+fi - - if [ "$1" != "--no-banner" ]; then - "$GOTOOLDIR"/dist banner --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0004-cmd-go-allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0004-cmd-go-allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch deleted file mode 100644 index 180b06a4..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0004-cmd-go-allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 1369178b497b12088ec4c2794606cc9f14cc327c Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:15:03 -0700 -Subject: [PATCH 4/7] cmd/go: allow GOTOOLDIR to be overridden in the - environment - -For OE cross-builds, host-side tools reside in the native -GOROOT, not the target GOROOT. Allow GOTOOLDIR to be set -in the environment to allow that split, rather than always -computing GOTOOLDIR relative to the GOROOT setting. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Matt Madison ---- - src/cmd/go/internal/cfg/cfg.go | 7 ++++++- - src/cmd/go/internal/work/build.go | 2 +- - src/go/build/build.go | 2 +- - 3 files changed, 8 insertions(+), 3 deletions(-) - -diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go -index b3ad1ce..c1dc974 100644 ---- a/src/cmd/go/internal/cfg/cfg.go -+++ b/src/cmd/go/internal/cfg/cfg.go -@@ -91,7 +91,12 @@ func init() { - // as the tool directory does not move based on environment 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) -+ s := os.Getenv("GOTOOLDIR") -+ if s == "" { -+ build.ToolDir = filepath.Join(GOROOT, "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) -+ } else { -+ build.ToolDir = s -+ } - } - - func findGOROOT() string { -diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go -index 85df0b3..7b9a69e 100644 ---- a/src/cmd/go/internal/work/build.go -+++ b/src/cmd/go/internal/work/build.go -@@ -1337,7 +1337,7 @@ func (b *Builder) build(a *Action) (err error) { - } - - var cgoExe string -- if a.cgo != nil && a.cgo.Target != "" { -+ if a.cgo != nil && a.cgo.Target != "" && os.Getenv("GOTOOLDIR") == "" { - cgoExe = a.cgo.Target - } else { - cgoExe = base.Tool("cgo") -diff --git a/src/go/build/build.go b/src/go/build/build.go -index fd89871..e16145b 100644 ---- a/src/go/build/build.go -+++ b/src/go/build/build.go -@@ -1588,7 +1588,7 @@ func init() { - } - - // ToolDir is the directory containing build tools. --var ToolDir = filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH) -+var ToolDir = envOr("GOTOOLDIR", filepath.Join(runtime.GOROOT(), "pkg/tool/"+runtime.GOOS+"_"+runtime.GOARCH)) - - // IsLocalImport reports whether the import path is - // a local import path, like ".", "..", "./foo", or "../foo". --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0005-cmd-go-make-GOROOT-precious-by-default.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0005-cmd-go-make-GOROOT-precious-by-default.patch deleted file mode 100644 index 6e93bcb6..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0005-cmd-go-make-GOROOT-precious-by-default.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 44f961975dac6cf464a77b5f6dd0c47cc192c4fd Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:19:52 -0700 -Subject: [PATCH 5/7] cmd/go: make GOROOT precious by default - -For OE builds, we never want packages that have -already been installed into the build root to be -modified, so prevent the go build tool from checking -if they should be rebuilt. - -Also add an environment variable to override this -behavior, just for building the Go runtime. - -Upstream-Status: Pending - -Signed-off-by: Matt Madison ---- - src/cmd/go/internal/load/pkg.go | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go -index 60de666..2660d3f 100644 ---- a/src/cmd/go/internal/load/pkg.go -+++ b/src/cmd/go/internal/load/pkg.go -@@ -1530,6 +1530,13 @@ func isStale(p *Package) (bool, string) { - return true, "build ID mismatch" - } - -+ // For OE builds, make anything in GOROOT non-stale, -+ // to prevent a package build from overwriting the -+ // build root. -+ if p.Goroot && os.Getenv("GOROOT_OVERRIDE") != "1" { -+ return false, "GOROOT-resident packages do not get rebuilt" -+ } -+ - // Package is stale if a dependency is. - for _, p1 := range p.Internal.Deps { - if p1.Stale { --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0006-make.bash-add-GOTOOLDIR_BOOTSTRAP-environment-variab.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0006-make.bash-add-GOTOOLDIR_BOOTSTRAP-environment-variab.patch deleted file mode 100644 index f0f56404..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0006-make.bash-add-GOTOOLDIR_BOOTSTRAP-environment-variab.patch +++ /dev/null @@ -1,36 +0,0 @@ -From aae74d1045ca03306ba4159206ee3bac72bcdfbb Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:23:23 -0700 -Subject: [PATCH 6/7] make.bash: add GOTOOLDIR_BOOTSTRAP environment variable - -For cross-canadian builds, we need to use the native -GOTOOLDIR during the bootstrap phase, so provide a way -to pass that setting into the build script. - -Upstream-Status: Pending - -Signed-off-by: Matt Madison ---- - src/make.bash | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/make.bash b/src/make.bash -index 9553623..2e6fb05 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -172,10 +172,11 @@ if [ "$do_host_build" = "yes" ]; then - mv cmd/dist/dist "$GOTOOLDIR"/dist - echo - -+ GOTOOLDIR_BOOTSTRAP="${GOTOOLDIR_BOOTSTRAP:-$GOTOOLDIR}" - echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH." - # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however, - # use the host compiler, CC, from `cmd/dist/dist env` instead. -- CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \ -+ CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH GOTOOLDIR="$GOTOOLDIR_BOOTSTRAP" \ - "$GOTOOLDIR"/go_bootstrap install -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd - echo - fi --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0007-ld-add-soname-to-shareable-objects.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0007-ld-add-soname-to-shareable-objects.patch deleted file mode 100644 index 6459782d..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0007-ld-add-soname-to-shareable-objects.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e957c3458d53e37bf416f51d2f8bf54c195e50f5 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 13 Sep 2017 08:27:02 -0700 -Subject: [PATCH 7/7] ld: add soname to shareable objects - -Shared library handling in OE depends on the inclusion -of an soname header, so update the go linker to add that -header for both internal and external linking. - -Upstream-Status: Pending - -Signed-off-by: Matt Madison ---- - 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 0234105..0b9e2d0 100644 ---- a/src/cmd/link/internal/ld/lib.go -+++ b/src/cmd/link/internal/ld/lib.go -@@ -1124,12 +1124,14 @@ func (l *Link) hostlink() { - // Pass -z nodelete to mark the shared library as - // non-closeable: a dlclose will do nothing. - argv = append(argv, "-shared", "-Wl,-z,nodelete") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - } - case BuildmodeShared: - if UseRelro() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - case BuildmodePlugin: - if Headtype == objabi.Hdarwin { - argv = append(argv, "-dynamiclib") -@@ -1138,6 +1140,7 @@ func (l *Link) hostlink() { - argv = append(argv, "-Wl,-z,relro") - } - argv = append(argv, "-shared") -+ argv = append(argv, fmt.Sprintf("-Wl,-soname,%s", filepath.Base(*flagOutfile))) - } - } - --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0008-make.bash-add-GOHOSTxx-indirection-for-cross-canadia.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0008-make.bash-add-GOHOSTxx-indirection-for-cross-canadia.patch deleted file mode 100644 index 0977c783..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0008-make.bash-add-GOHOSTxx-indirection-for-cross-canadia.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 03e6c339d4fb712fbb8c4ca6ef2fc7100dcdb3d7 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Thu, 14 Sep 2017 05:38:10 -0700 -Subject: [PATCH 8/8] make.bash: add GOHOSTxx indirection for cross-canadian - builds - -Add environment variables for specifying the host OS/arch -that we are building the compiler for, so it can differ from -the build host OS/arch. - -Upstream-Status: Pending - -Signed-off-by: Matt Madison ---- - src/make.bash | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/make.bash b/src/make.bash -index 2e6fb05..0bdadc6 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -173,6 +173,8 @@ if [ "$do_host_build" = "yes" ]; then - echo - - GOTOOLDIR_BOOTSTRAP="${GOTOOLDIR_BOOTSTRAP:-$GOTOOLDIR}" -+ GOHOSTOS="${GOHOSTOS_CROSS:-$GOHOSTOS}" -+ GOHOSTARCH="${GOHOSTARCH_CROSS:-$GOHOSTARCH}" - echo "##### Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH." - # CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however, - # use the host compiler, CC, from `cmd/dist/dist env` instead. --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0009-cmd-go-buildmode-pie-forces-external-linking-mode-on.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0009-cmd-go-buildmode-pie-forces-external-linking-mode-on.patch deleted file mode 100644 index aa5fcfdd..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0009-cmd-go-buildmode-pie-forces-external-linking-mode-on.patch +++ /dev/null @@ -1,47 +0,0 @@ -From aae44527c8065d54f6acaf87c82cba1ac96fae59 Mon Sep 17 00:00:00 2001 -From: Ian Lance Taylor -Date: Fri, 18 Aug 2017 17:46:03 -0700 -Subject: [PATCH] cmd/go: -buildmode=pie forces external linking mode on all - systems - -The go tool assumed that -buildmode=pie implied internal linking on -linux-amd64. However, that was changed by CL 36417 for issue #18968. - -Fixes #21452 - -Change-Id: I8ed13aea52959cc5c53223f4c41ba35329445545 -Reviewed-on: https://go-review.googlesource.com/57231 -Run-TryBot: Ian Lance Taylor -TryBot-Result: Gobot Gobot -Reviewed-by: Avelino -Reviewed-by: Rob Pike ---- -Upstream-Status: Backport -Signed-off-by: Khem Raj - - src/cmd/go/internal/load/pkg.go | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go -index 2660d3f..d40773b 100644 ---- a/src/cmd/go/internal/load/pkg.go -+++ b/src/cmd/go/internal/load/pkg.go -@@ -954,11 +954,12 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) *Package - - if cfg.BuildContext.CgoEnabled && p.Name == "main" && !p.Goroot { - // Currently build modes c-shared, pie (on systems that do not -- // support PIE with internal linking mode), plugin, and -- // -linkshared force external linking mode, as of course does -+ // support PIE with internal linking mode (currently all -+ // systems: issue #18968)), plugin, and -linkshared force -+ // external linking mode, as of course does - // -ldflags=-linkmode=external. External linking mode forces - // an import of runtime/cgo. -- pieCgo := cfg.BuildBuildmode == "pie" && (cfg.BuildContext.GOOS != "linux" || cfg.BuildContext.GOARCH != "amd64") -+ pieCgo := cfg.BuildBuildmode == "pie" - linkmodeExternal := false - for i, a := range cfg.BuildLdflags { - if a == "-linkmode=external" { --- -2.14.1 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0010-make.bash-override-CC-when-building-dist-and-go_boot.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0010-make.bash-override-CC-when-building-dist-and-go_boot.patch deleted file mode 100644 index 83fd78c3..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0010-make.bash-override-CC-when-building-dist-and-go_boot.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 21d83dd9499e5be30eea28dd7034d1ea2a01c838 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 14 Nov 2017 07:38:42 -0800 -Subject: [PATCH 10/10] make.bash: override CC when building dist and - go_bootstrap - -For cross-canadian builds, dist and go_bootstrap -run on the build host, so CC needs to point to the -build host's C compiler. Add a BUILD_CC environment -for this, falling back to $CC if not present. - -Upstream-Status: Pending - -Signed-off-by: Matt Madison ---- - src/make.bash | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/make.bash b/src/make.bash -index 0bdadc6..f199349 100755 ---- a/src/make.bash -+++ b/src/make.bash -@@ -131,7 +131,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then - 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 - - # -e doesn't propagate out of eval, so check success by hand. - eval $(./cmd/dist/dist env -p || echo FAIL=true) -@@ -167,7 +167,7 @@ elif [ "$1" = "--host-only" ]; then - fi - - if [ "$do_host_build" = "yes" ]; then -- ./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap -+ CC=${BUILD_CC:-${CC}} ./cmd/dist/dist bootstrap $buildall $GO_DISTFLAGS -v # builds go_bootstrap - # Delay move of dist tool to now, because bootstrap may clear tool directory. - mv cmd/dist/dist "$GOTOOLDIR"/dist - echo --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/0011-use-GOBUILDMODE-to-set-buildmode.patch b/external/poky/meta/recipes-devtools/go/go-1.9/0011-use-GOBUILDMODE-to-set-buildmode.patch deleted file mode 100644 index da93dc5c..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/0011-use-GOBUILDMODE-to-set-buildmode.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b928fafab1d9425aae9341806bd2f6178ba1da1f Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Fri, 26 Oct 2018 16:32:50 +0800 -Subject: [PATCH] use GOBUILDMODE to set buildmode - -While building go itself, the go build system does not support -to set `-buildmode=pie' from environment. - -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 ---- - src/cmd/go/internal/work/build.go | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go -index b276de5..1683e7e 100644 ---- a/src/cmd/go/internal/work/build.go -+++ b/src/cmd/go/internal/work/build.go -@@ -211,7 +211,11 @@ func AddBuildFlags(cmd *base.Command) { - - cmd.Flag.Var((*base.StringsFlag)(&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((*base.StringsFlag)(&buildGcflags), "gcflags", "") - cmd.Flag.Var((*base.StringsFlag)(&buildGccgoflags), "gccgoflags", "") - cmd.Flag.StringVar(&cfg.BuildContext.InstallSuffix, "installsuffix", "", "") --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/go/go-1.9/set-external-linker.patch b/external/poky/meta/recipes-devtools/go/go-1.9/set-external-linker.patch deleted file mode 100644 index d6bd7fa3..00000000 --- a/external/poky/meta/recipes-devtools/go/go-1.9/set-external-linker.patch +++ /dev/null @@ -1,111 +0,0 @@ -Change the dynamic linker hardcoding to use musl when not using glibc -this should be applied conditional to musl being the system C library - -Upstream-Status: Inappropriate [Real Fix should be portable across libcs] - -Signed-off-by: Khem Raj - -Index: go/src/cmd/link/internal/amd64/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/amd64/obj.go -+++ go/src/cmd/link/internal/amd64/obj.go -@@ -67,7 +67,7 @@ func Init() { - ld.Thearch.Append64 = ld.Append64l - ld.Thearch.TLSIEtoLE = tlsIEtoLE - -- ld.Thearch.Linuxdynld = "/lib64/ld-linux-x86-64.so.2" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-x86_64.so.1" - ld.Thearch.Freebsddynld = "/libexec/ld-elf.so.1" - ld.Thearch.Openbsddynld = "/usr/libexec/ld.so" - ld.Thearch.Netbsddynld = "/libexec/ld.elf_so" -Index: go/src/cmd/link/internal/arm/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/arm/obj.go -+++ go/src/cmd/link/internal/arm/obj.go -@@ -63,7 +63,7 @@ func Init() { - ld.Thearch.Append32 = ld.Append32l - ld.Thearch.Append64 = ld.Append64l - -- ld.Thearch.Linuxdynld = "/lib/ld-linux.so.3" // 2 for OABI, 3 for EABI -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-armhf.so.1" - ld.Thearch.Freebsddynld = "/usr/libexec/ld-elf.so.1" - ld.Thearch.Openbsddynld = "/usr/libexec/ld.so" - ld.Thearch.Netbsddynld = "/libexec/ld.elf_so" -Index: go/src/cmd/link/internal/arm64/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/arm64/obj.go -+++ go/src/cmd/link/internal/arm64/obj.go -@@ -62,7 +62,7 @@ func Init() { - ld.Thearch.Append32 = ld.Append32l - ld.Thearch.Append64 = ld.Append64l - -- ld.Thearch.Linuxdynld = "/lib/ld-linux-aarch64.so.1" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-aarch64.so.1" - - ld.Thearch.Freebsddynld = "XXX" - ld.Thearch.Openbsddynld = "XXX" -Index: go/src/cmd/link/internal/mips/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/mips/obj.go -+++ go/src/cmd/link/internal/mips/obj.go -@@ -77,7 +77,7 @@ func Init() { - ld.Thearch.Append64 = ld.Append64b - } - -- ld.Thearch.Linuxdynld = "/lib/ld.so.1" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-mipsle.so.1" - - ld.Thearch.Freebsddynld = "XXX" - ld.Thearch.Openbsddynld = "XXX" -Index: go/src/cmd/link/internal/mips64/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/mips64/obj.go -+++ go/src/cmd/link/internal/mips64/obj.go -@@ -75,7 +75,7 @@ func Init() { - ld.Thearch.Append64 = ld.Append64b - } - -- ld.Thearch.Linuxdynld = "/lib64/ld64.so.1" -+ ld.Thearch.Linuxdynld = "/lib64/ld-musl-mips64le.so.1" - - ld.Thearch.Freebsddynld = "XXX" - ld.Thearch.Openbsddynld = "XXX" -Index: go/src/cmd/link/internal/ppc64/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/ppc64/obj.go -+++ go/src/cmd/link/internal/ppc64/obj.go -@@ -77,7 +77,7 @@ func Init() { - } - - // TODO(austin): ABI v1 uses /usr/lib/ld.so.1 -- ld.Thearch.Linuxdynld = "/lib64/ld64.so.1" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-powerpc64le.so.1" - - ld.Thearch.Freebsddynld = "XXX" - ld.Thearch.Openbsddynld = "XXX" -Index: go/src/cmd/link/internal/s390x/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/s390x/obj.go -+++ go/src/cmd/link/internal/s390x/obj.go -@@ -62,7 +62,7 @@ func Init() { - ld.Thearch.Append32 = ld.Append32b - ld.Thearch.Append64 = ld.Append64b - -- ld.Thearch.Linuxdynld = "/lib64/ld64.so.1" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-s390x.so.1" - - // not relevant for s390x - ld.Thearch.Freebsddynld = "XXX" -Index: go/src/cmd/link/internal/x86/obj.go -=================================================================== ---- go.orig/src/cmd/link/internal/x86/obj.go -+++ go/src/cmd/link/internal/x86/obj.go -@@ -63,7 +63,7 @@ func Init() { - ld.Thearch.Append32 = ld.Append32l - ld.Thearch.Append64 = ld.Append64l - -- ld.Thearch.Linuxdynld = "/lib/ld-linux.so.2" -+ ld.Thearch.Linuxdynld = "/lib/ld-musl-i386.so.1" - ld.Thearch.Freebsddynld = "/usr/libexec/ld-elf.so.1" - ld.Thearch.Openbsddynld = "/usr/libexec/ld.so" - ld.Thearch.Netbsddynld = "/usr/libexec/ld.elf_so" diff --git a/external/poky/meta/recipes-devtools/go/go-common.inc b/external/poky/meta/recipes-devtools/go/go-common.inc index 11d55c4d..f18d928c 100644 --- a/external/poky/meta/recipes-devtools/go/go-common.inc +++ b/external/poky/meta/recipes-devtools/go/go-common.inc @@ -25,9 +25,18 @@ SSTATE_SCAN_CMD = "true" export GOROOT_OVERRIDE = "1" export GOTMPDIR ?= "${WORKDIR}/go-tmp" GOTMPDIR[vardepvalue] = "" -export GOCACHE = "off" 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/external/poky/meta/recipes-devtools/go/go-cross-canadian.inc b/external/poky/meta/recipes-devtools/go/go-cross-canadian.inc index ea68b887..d49250a8 100644 --- a/external/poky/meta/recipes-devtools/go/go-cross-canadian.inc +++ b/external/poky/meta/recipes-devtools/go/go-cross-canadian.inc @@ -1,15 +1,19 @@ inherit cross-canadian DEPENDS = "go-native virtual/${HOST_PREFIX}go-crosssdk virtual/nativesdk-${HOST_PREFIX}go-runtime \ - virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-${HOST_PREFIX}libc-for-gcc \ + virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-libc \ virtual/nativesdk-${HOST_PREFIX}compilerlibs" PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}" -export GOHOSTOS = "${BUILD_GOOS}" -export GOHOSTARCH = "${BUILD_GOARCH}" -export GOROOT_BOOTSTRAP = "${STAGING_LIBDIR_NATIVE}/go" +# it uses gcc on build machine during go-cross-canadian bootstrap, but +# the gcc version may be old and not support option '-fmacro-prefix-map' +# which is one of default values of DEBUG_PREFIX_MAP +DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ + -fdebug-prefix-map=${STAGING_DIR_HOST}= \ + -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ + " + 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}"' @@ -17,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/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.11.bb b/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.11.bb deleted file mode 100644 index 7ac9449e..00000000 --- a/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross-canadian.inc -require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.14.bb b/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.14.bb new file mode 100644 index 00000000..7ac9449e --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.14.bb @@ -0,0 +1,2 @@ +require go-cross-canadian.inc +require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.9.bb b/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.9.bb deleted file mode 100644 index 367a9670..00000000 --- a/external/poky/meta/recipes-devtools/go/go-cross-canadian_1.9.bb +++ /dev/null @@ -1,12 +0,0 @@ -require go-cross-canadian.inc -require go-${PV}.inc - -export GOHOSTOS_CROSS = "${HOST_GOOS}" -export GOHOSTARCH_CROSS = "${HOST_GOARCH}" -export CC_FOR_TARGET = "${HOST_PREFIX}gcc --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}" -export CXX_FOR_TARGET = "${HOST_PREFIX}g++ --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE} ${SECURITY_NOPIE_CFLAGS}" - -do_compile_prepend() { - export GOBIN="${B}/bin" - export TMPDIR="$GOTMPDIR" -} diff --git a/external/poky/meta/recipes-devtools/go/go-cross.inc b/external/poky/meta/recipes-devtools/go/go-cross.inc index 6d9aa5c2..3d5803bf 100644 --- a/external/poky/meta/recipes-devtools/go/go-cross.inc +++ b/external/poky/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 = "off" +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/external/poky/meta/recipes-devtools/go/go-cross_1.11.bb b/external/poky/meta/recipes-devtools/go/go-cross_1.11.bb deleted file mode 100644 index 80b5a03f..00000000 --- a/external/poky/meta/recipes-devtools/go/go-cross_1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross.inc -require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-cross_1.14.bb b/external/poky/meta/recipes-devtools/go/go-cross_1.14.bb new file mode 100644 index 00000000..80b5a03f --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-cross_1.14.bb @@ -0,0 +1,2 @@ +require go-cross.inc +require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-cross_1.9.bb b/external/poky/meta/recipes-devtools/go/go-cross_1.9.bb deleted file mode 100644 index 4739c7d5..00000000 --- a/external/poky/meta/recipes-devtools/go/go-cross_1.9.bb +++ /dev/null @@ -1,10 +0,0 @@ -require go-cross.inc -require go-${PV}.inc - -export CC_FOR_TARGET = "${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" -export CXX_FOR_TARGET = "${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" - -do_compile_prepend() { - export GOBIN="${B}/bin" - export TMPDIR="$GOTMPDIR" -} diff --git a/external/poky/meta/recipes-devtools/go/go-crosssdk.inc b/external/poky/meta/recipes-devtools/go/go-crosssdk.inc index 94f6fb8e..f0bec797 100644 --- a/external/poky/meta/recipes-devtools/go/go-crosssdk.inc +++ b/external/poky/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/external/poky/meta/recipes-devtools/go/go-crosssdk_1.11.bb b/external/poky/meta/recipes-devtools/go/go-crosssdk_1.11.bb deleted file mode 100644 index 1857c8a5..00000000 --- a/external/poky/meta/recipes-devtools/go/go-crosssdk_1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-crosssdk.inc -require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-crosssdk_1.14.bb b/external/poky/meta/recipes-devtools/go/go-crosssdk_1.14.bb new file mode 100644 index 00000000..1857c8a5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-crosssdk_1.14.bb @@ -0,0 +1,2 @@ +require go-crosssdk.inc +require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-crosssdk_1.9.bb b/external/poky/meta/recipes-devtools/go/go-crosssdk_1.9.bb deleted file mode 100644 index 3ac629bd..00000000 --- a/external/poky/meta/recipes-devtools/go/go-crosssdk_1.9.bb +++ /dev/null @@ -1,11 +0,0 @@ -require go-crosssdk.inc -require go-${PV}.inc - -export CC_FOR_TARGET = "${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" -export CXX_FOR_TARGET = "${TARGET_PREFIX}g++ ${TARGET_CC_ARCH} --sysroot=${STAGING_DIR_TARGET}" -export GO_INSTALL = "cmd" - -do_compile_prepend() { - export GOBIN="${B}/bin" - export TMPDIR="$GOTMPDIR" -} diff --git a/external/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch b/external/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch new file mode 100644 index 00000000..b13bb9e6 --- /dev/null +++ b/external/poky/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 +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 +--- + 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 + #include +@@ -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 \n#include \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 \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:", and "key_or_keyring::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 +-#include +-#include +-#include +-#include +-#include +-#include + #include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include + #include +-#include ++#include + #include +-#include +-#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ + #include + #include +-#include + #include + #include +-#include ++ ++ ++#include ++#include + + 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 + #include ++#include + #include + #include + #include +@@ -38,6 +39,7 @@ package unix + #include + #include + #include ++#include + #include + #include + #include +@@ -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 + #include ++#include + #include + #include + #include +@@ -34,6 +35,7 @@ package unix + #include + #include + #include ++#include + #include + #include + #include +@@ -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 + #include ++#include + #include + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -35,6 +40,7 @@ package unix + #include + #include + #include ++#include + #include + #include + #include +@@ -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 + #include ++#include + #include + #include + #include +@@ -32,10 +33,12 @@ package unix + #include + #include + #include ++#include + #include + #include + #include + #include ++#include + #include + #include + #include +@@ -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 + #include ++#include + #include + #include + #include +@@ -35,7 +36,9 @@ package unix + #include + #include + #include ++#include + #include ++#include + #include + #include + #include +@@ -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 + #include + #include ++#include + #include + #include + #include +@@ -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 ++#include ++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 ++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/external/poky/meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch b/external/poky/meta/recipes-devtools/go/go-dep/0001-bolt_riscv64-Add-support-for-riscv64.patch new file mode 100644 index 00000000..4d97d482 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb b/external/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb deleted file mode 100644 index cfc2186b..00000000 --- a/external/poky/meta/recipes-devtools/go/go-dep_0.5.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Dependency management tool for Golang" -HOMEPAGE = "https://github.com/golang/dep" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f70d42c0d" - -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 \ - " - -# Points to 0.5.0 tag -SRCREV = "224a564abe296670b692fe08bb63a3e4c4ad7978" - -inherit go - -GO_INSTALL = "${GO_IMPORT}/cmd/dep" - -RDEPENDS_${PN}-dev += "bash" - -BBCLASSEXTEND = "native nativesdk" - -# for x86 ends with textrel in ${PN} -# http://errors.yoctoproject.org/Errors/Details/185630/ -# ERROR: QA Issue: ELF binary '/work/i586-oe-linux/go-dep/0.4.1-r0/packages-split/go-dep/usr/bin/dep' has relocations in .text [textrel] -INSANE_SKIP_${PN} += "textrel" - -# for aarch64 ends with textrel in ${PN}-ptest -# http://errors.yoctoproject.org/Errors/Details/185632/ -# ERROR: QA Issue: ELF binary '/work/aarch64-oe-linux/go-dep/0.4.1-r0/packages-split/go-dep-ptest/usr/lib/go-dep/ptest/github.com/golang/dep/cmd/dep/dep.test' has relocations in .text [textrel] -INSANE_SKIP_${PN}-ptest += "textrel" - -# For compiling ptest on mips and mips64, the current go-dep version fails with the go 1.11 toolchain. -# error message: vet config not found -PTEST_ENABLED_mips = "0" -PTEST_ENABLED_mips64 = "0" diff --git a/external/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb b/external/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb new file mode 100644 index 00000000..0da2c660 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb @@ -0,0 +1,30 @@ +SUMMARY = "Dependency management tool for Golang" +HOMEPAGE = "https://github.com/golang/dep" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=1bad315647751fab0007812f70d42c0d" + +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" + +BBCLASSEXTEND = "native nativesdk" + +# For compiling ptest on mips and mips64, the current go-dep version fails with the go 1.11 toolchain. +# error message: vet config not found +PTEST_ENABLED_mips = "0" +PTEST_ENABLED_mips64 = "0" diff --git a/external/poky/meta/recipes-devtools/go/go-native_1.11.bb b/external/poky/meta/recipes-devtools/go/go-native_1.11.bb deleted file mode 100644 index bbf3c0dd..00000000 --- a/external/poky/meta/recipes-devtools/go/go-native_1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require ${PN}.inc -require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-native_1.14.bb b/external/poky/meta/recipes-devtools/go/go-native_1.14.bb new file mode 100644 index 00000000..bbf3c0dd --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-native_1.14.bb @@ -0,0 +1,2 @@ +require ${PN}.inc +require go-${PV}.inc diff --git a/external/poky/meta/recipes-devtools/go/go-native_1.9.bb b/external/poky/meta/recipes-devtools/go/go-native_1.9.bb deleted file mode 100644 index 8621e1df..00000000 --- a/external/poky/meta/recipes-devtools/go/go-native_1.9.bb +++ /dev/null @@ -1,4 +0,0 @@ -require ${PN}.inc -require go-${PV}.inc - -GOMAKEARGS = "--host-only --no-banner" diff --git a/external/poky/meta/recipes-devtools/go/go-runtime.inc b/external/poky/meta/recipes-devtools/go/go-runtime.inc index c219aa37..21179a83 100644 --- a/external/poky/meta/recipes-devtools/go/go-runtime.inc +++ b/external/poky/meta/recipes-devtools/go/go-runtime.inc @@ -2,19 +2,11 @@ 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}" export CGO_LDFLAGS = "${LDFLAGS}" +export GOCACHE = "${B}/.cache" GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${LDFLAGS}" GO_SHLIB_LDFLAGS ?= '-ldflags="--linkmode=external -extldflags '${GO_EXTLDFLAGS}'"' @@ -28,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} @@ -58,6 +50,9 @@ do_install() { done find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; rm -f ${D}${libdir}/go/src/cmd/dist/dist + rm -f ${D}${libdir}/go/src/cmd/cgo/zdefaultcc.go + rm -f ${D}${libdir}/go/src/cmd/go/internal/cfg/zdefaultcc.go + } ALLOW_EMPTY_${PN} = "1" diff --git a/external/poky/meta/recipes-devtools/go/go-runtime_1.11.bb b/external/poky/meta/recipes-devtools/go/go-runtime_1.11.bb deleted file mode 100644 index 43b68b4e..00000000 --- a/external/poky/meta/recipes-devtools/go/go-runtime_1.11.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-${PV}.inc -require go-runtime.inc diff --git a/external/poky/meta/recipes-devtools/go/go-runtime_1.14.bb b/external/poky/meta/recipes-devtools/go/go-runtime_1.14.bb new file mode 100644 index 00000000..4eeee65e --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go-runtime_1.14.bb @@ -0,0 +1,3 @@ +export CGO_ENABLED_riscv64 = "" +require go-${PV}.inc +require go-runtime.inc diff --git a/external/poky/meta/recipes-devtools/go/go-runtime_1.9.bb b/external/poky/meta/recipes-devtools/go/go-runtime_1.9.bb deleted file mode 100644 index d5279ea8..00000000 --- a/external/poky/meta/recipes-devtools/go/go-runtime_1.9.bb +++ /dev/null @@ -1,23 +0,0 @@ -require go-${PV}.inc -require go-runtime.inc - -export GO_TARGET_INSTALL = "std" -export CC_FOR_TARGET = "${CC}" -export CXX_FOR_TARGET = "${CXX}" - -do_compile() { - export GOBIN="${B}/bin" - export TMPDIR="$GOTMPDIR" - export CC=$BUILD_CC - - cd src - CGO_CFLAGS="${BUILD_CFLAGS}" CGO_LDFLAGS="${BUILD_LDFLAGS}" ./make.bash --host-only - cp ${B}/pkg/tool/${BUILD_GOTUPLE}/go_bootstrap ${B} - rm -rf ${B}/pkg/${TARGET_GOTUPLE} - ./make.bash --target-only - if [ -n "${GO_DYNLINK}" ]; then - cp ${B}/go_bootstrap ${B}/pkg/tool/${BUILD_GOTUPLE} - GO_FLAGS="-buildmode=shared" GO_LDFLAGS="-extldflags \"${LDFLAGS}\"" ./make.bash --target-only - fi - cd ${B} -} diff --git a/external/poky/meta/recipes-devtools/go/go-target.inc b/external/poky/meta/recipes-devtools/go/go-target.inc index 379f87b4..8e442470 100644 --- a/external/poky/meta/recipes-devtools/go/go-target.inc +++ b/external/poky/meta/recipes-devtools/go/go-target.inc @@ -1,15 +1,7 @@ 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" export GO_LDFLAGS @@ -42,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/external/poky/meta/recipes-devtools/go/go_1.11.bb b/external/poky/meta/recipes-devtools/go/go_1.11.bb deleted file mode 100644 index 42cdb043..00000000 --- a/external/poky/meta/recipes-devtools/go/go_1.11.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/external/poky/meta/recipes-devtools/go/go_1.14.bb b/external/poky/meta/recipes-devtools/go/go_1.14.bb new file mode 100644 index 00000000..bc90a132 --- /dev/null +++ b/external/poky/meta/recipes-devtools/go/go_1.14.bb @@ -0,0 +1,14 @@ +require go-${PV}.inc +require go-target.inc + +export GOBUILDMODE="" +export CGO_ENABLED_riscv64 = "" +# Add pie to GOBUILDMODE to satisfy "textrel" QA checking, but mips/riscv +# doesn't support -buildmode=pie, so skip the QA checking for mips/riscv and its +# variants. +python() { + if 'mips' in d.getVar('TARGET_ARCH',True) or 'riscv' in d.getVar('TARGET_ARCH',True): + d.appendVar('INSANE_SKIP_%s' % d.getVar('PN',True), " textrel") + else: + d.setVar('GOBUILDMODE', 'pie') +} diff --git a/external/poky/meta/recipes-devtools/go/go_1.9.bb b/external/poky/meta/recipes-devtools/go/go_1.9.bb deleted file mode 100644 index c23ea0c1..00000000 --- a/external/poky/meta/recipes-devtools/go/go_1.9.bb +++ /dev/null @@ -1,28 +0,0 @@ -require go-${PV}.inc -require go-target.inc - -export GO_TARGET_INSTALL = "cmd" -export GO_FLAGS = "-a" -export CC_FOR_TARGET = "${CC}" -export CXX_FOR_TARGET = "${CXX}" -export GOBUILDMODE="" - -do_compile() { - export GOBIN="${B}/bin" - export TMPDIR="$GOTMPDIR" - export CC=$BUILD_CC - - cd src - ./make.bash - cd ${B} -} - -# 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/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb b/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb new file mode 100644 index 00000000..a60e8518 --- /dev/null +++ b/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.11.bb @@ -0,0 +1,24 @@ +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/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.6.bb b/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.6.bb deleted file mode 100644 index 794d308c..00000000 --- a/external/poky/meta/recipes-devtools/help2man/help2man-native_1.47.6.bb +++ /dev/null @@ -1,25 +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] = "7424901e6eca8af372d2ad62be5cf659" -SRC_URI[sha256sum] = "d91b0295b72a638e4a564f643e4e6d1928779131f628c00f356c13bf336de46f" - -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/external/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb b/external/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb index 2b4563d4..c5761170 100644 --- a/external/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb +++ b/external/poky/meta/recipes-devtools/i2c-tools/i2c-tools_4.1.bb @@ -31,11 +31,13 @@ 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" -ALTERNATIVE_${PN} = "i2cdetect i2cdump i2cget i2cset" +ALTERNATIVE_${PN} = "i2cdetect i2cdump i2cget i2cset i2ctransfer" ALTERNATIVE_LINK_NAME[i2cdetect] = "${sbindir}/i2cdetect" ALTERNATIVE_LINK_NAME[i2cdump] = "${sbindir}/i2cdump" ALTERNATIVE_LINK_NAME[i2cget] = "${sbindir}/i2cget" ALTERNATIVE_LINK_NAME[i2cset] = "${sbindir}/i2cset" +ALTERNATIVE_LINK_NAME[i2ctransfer] = "${sbindir}/i2ctransfer" diff --git a/external/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/external/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb index 053945eb..231c1c20 100644 --- a/external/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb +++ b/external/poky/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/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh b/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh index 990d2fb4..0dccc41c 100644 --- a/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh +++ b/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh @@ -38,11 +38,11 @@ if [ -n "$ICECC_PATH" ]; then CXXFLAGS="$CXXFLAGS -fno-diagnostics-show-caret" fi export ICECC_PATH ICECC_CARET_WORKAROUND - export ICECC_VERSION="$OECORE_NATIVE_SYSROOT/usr/share/icecream/@TOOLCHAIN_ENV@" + export ICECC_VERSION="$(echo "$OECORE_NATIVE_SYSROOT/usr/share/${TARGET_PREFIX}icecream/@TOOLCHAIN_ENV@" | sed "s,@TARGET_PREFIX@,$TARGET_PREFIX,g")" export ICECC="$(which ${CROSS_COMPILE}gcc)" export ICECXX="$(which ${CROSS_COMPILE}g++)" export ICEAS="$(which ${CROSS_COMPILE}as)" - export PATH="$OECORE_NATIVE_SYSROOT/usr/share/icecream/bin:$PATH" + export PATH="$OECORE_NATIVE_SYSROOT/usr/share/${TARGET_PREFIX}icecream/bin:$PATH" else echo "Icecc not found. Disabling distributed compiling" fi diff --git a/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh b/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh index 25250b7c..fbd9f038 100644 --- a/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh +++ b/external/poky/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh @@ -32,7 +32,7 @@ mkdir -p "`dirname $ICECC_VERSION`" icecc-create-env $ICECC $ICECXX $ICEAS $ICECC_VERSION || exit $? # Create symbolic links -d="$OECORE_NATIVE_SYSROOT/usr/share/icecream/bin" +d="$OECORE_NATIVE_SYSROOT/usr/share/${TARGET_PREFIX}icecream/bin" mkdir -p "$d" -ln -s "$ICECC_PATH" "$d/${CROSS_COMPILE}gcc" -ln -s "$ICECC_PATH" "$d/${CROSS_COMPILE}g++" +ln -sf "$ICECC_PATH" "$d/${CROSS_COMPILE}gcc" +ln -sf "$ICECC_PATH" "$d/${CROSS_COMPILE}g++" diff --git a/external/poky/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb b/external/poky/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb index 9d2750e4..304ad7fe 100644 --- a/external/poky/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb +++ b/external/poky/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb @@ -13,7 +13,7 @@ SRC_URI = "\ inherit nativesdk -ENV_NAME="${DISTRO}-${TCLIBC}-${SDK_ARCH}-${TUNE_PKGARCH}-${DISTRO_VERSION}.tar.gz" +ENV_NAME="${DISTRO}-${TCLIBC}-${SDK_ARCH}-@TARGET_PREFIX@${DISTRO_VERSION}.tar.gz" do_compile() { } @@ -24,12 +24,12 @@ do_install() { install -d ${D}${SDKPATHNATIVE}/environment-setup.d/ install -m 0644 ${WORKDIR}/icecc-env.sh ${D}${SDKPATHNATIVE}/environment-setup.d/ sed -i ${D}${SDKPATHNATIVE}/environment-setup.d/icecc-env.sh \ - -e "s,@TOOLCHAIN_ENV@,${ENV_NAME},g" + -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g' install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ install -m 0755 ${WORKDIR}/icecc-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/ sed -i ${D}${SDKPATHNATIVE}/post-relocate-setup.d/icecc-setup.sh \ - -e "s,@TOOLCHAIN_ENV@,${ENV_NAME},g" + -e 's,@TOOLCHAIN_ENV@,${ENV_NAME},g' } PACKAGES = "${PN}" diff --git a/external/poky/meta/recipes-devtools/jquery/jquery_3.4.1.bb b/external/poky/meta/recipes-devtools/jquery/jquery_3.4.1.bb new file mode 100644 index 00000000..1bf6ef5c --- /dev/null +++ b/external/poky/meta/recipes-devtools/jquery/jquery_3.4.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library" +HOMEPAGE = "https://jquery.com/" +LICENSE = "MIT" +SECTION = "devel" +LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}.js;startline=8;endline=10;md5=cdb86f5bda90caec023592d2e768357c" + +SRC_URI = "\ + https://code.jquery.com/${BP}.js;name=js \ + https://code.jquery.com/${BP}.min.js;name=min \ + https://code.jquery.com/${BP}.min.map;name=map \ + " + +SRC_URI[js.sha256sum] = "5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd55" +SRC_URI[min.sha256sum] = "0925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a" +SRC_URI[map.sha256sum] = "8da74aec0fcdd7678a2663b3cc9bafbaf009e6d6929b28bb3dd95bced18206f6" + +UPSTREAM_CHECK_REGEX = "jquery-(?P\d+(\.\d+)+)\.js" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/javascript/${BPN}/ + install -m 644 ${WORKDIR}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js + install -m 644 ${WORKDIR}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js + install -m 644 ${WORKDIR}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map +} + +PACKAGES = "${PN}" +FILES_${PN} = "${datadir}" + +BBCLASSEXTEND += "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch b/external/poky/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch new file mode 100644 index 00000000..0c20c845 --- /dev/null +++ b/external/poky/meta/recipes-devtools/json-c/json-c/add-disable-werror-option-to-configure.patch @@ -0,0 +1,45 @@ +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 + +From 21c886534f8927fdc0fb5f8647394f3e0e0874b8 Mon Sep 17 00:00:00 2001 +From: Pierce Lopez +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/external/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb b/external/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb index e6a38995..522879f2 100644 --- a/external/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb +++ b/external/poky/meta/recipes-devtools/json-c/json-c_0.13.1.bb @@ -4,25 +4,19 @@ 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" +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" -UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+).tar" -# json-c releases page is fetching the list of releases in some weird XML format -# from https://s3.amazonaws.com/json-c_releases and processes it with javascript :-/ -#UPSTREAM_CHECK_URI = "https://s3.amazonaws.com/json-c_releases/releases/index.html" -RECIPE_UPSTREAM_VERSION = "0.13.1" -RECIPE_UPSTREAM_DATE = "Mar 04, 2018" -CHECK_DATE = "May 02, 2018" +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+)-\d+" RPROVIDES_${PN} = "libjson" inherit autotools -do_configure_prepend() { - # Clean up autoconf cruft that should not be in the tarball - rm -f ${S}/config.status -} +EXTRA_OECONF = "--disable-werror" BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch new file mode 100644 index 00000000..f4fb6d3b --- /dev/null +++ b/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Add-crc32.c-to-sources-list.patch @@ -0,0 +1,50 @@ +From 72065bb2b5881dc224299f302379391aebdfca3d Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 21 Nov 2018 13:09:05 +0100 +Subject: [PATCH 1/2] Add crc32.c to sources list + +Otherwise, there is a missing symbol runtime error under musl C library. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + libcomps/src/python/src/CMakeLists.txt | 4 ++-- + libcomps/src/python/src/crc32.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libcomps/src/python/src/CMakeLists.txt b/libcomps/src/python/src/CMakeLists.txt +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}) + set (pycomps_SRC pycomps.c pycomps_sequence.c + pycomps_envs.c pycomps_categories.c pycomps_groups.c + pycomps_gids.c pycomps_utils.c pycomps_dict.c pycomps_mdict.c +- pycomps_hash.c pycomps_exc.c pycomps_lbw.c) ++ pycomps_hash.c pycomps_exc.c pycomps_lbw.c crc32.c) + + set (pycomps_HEADERS pycomps_23macros.h pycomps_sequence.h + pycomps_envs.h pycomps_categories.h pycomps_groups.h + pycomps_gids.h pycomps_utils.h pycomps_dict.h pycomps_mdict.h + pycomps_hash.h pycomps_exc.h pycomps_lbw.h +- pycomps_types.h) ++ pycomps_types.h crc32.h) + + #set(TEST_FILES ../__init__.py __test.py test_merge_comps.py test_libcomps.py + # utest.py) +diff --git a/libcomps/src/python/src/crc32.c b/libcomps/src/python/src/crc32.c +index d8f5e34..f266067 100644 +--- a/libcomps/src/python/src/crc32.c ++++ b/libcomps/src/python/src/crc32.c +@@ -41,7 +41,7 @@ + */ + + #include +-#include ++#include + + static uint32_t crc32_tab[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, +-- +2.26.2 + diff --git a/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch deleted file mode 100644 index 26e8b06f..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/0001-Make-__comps_objmrtree_all-static-inline.patch deleted file mode 100644 index 88469fb3..00000000 --- a/external/poky/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 -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 ---- - 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/external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch new file mode 100644 index 00000000..3e910260 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch deleted file mode 100644 index dc3d9763..00000000 --- a/external/poky/meta/recipes-devtools/libcomps/libcomps/0002-Set-library-installation-path-correctly.patch +++ /dev/null @@ -1,27 +0,0 @@ -From b1f61296e2f16c2b9a39c5501e4538628ff01ab4 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:26:00 +0200 -Subject: [PATCH 2/2] Set library installation path correctly - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libcomps/pull/32] -Signed-off-by: Alexander Kanavin ---- - libcomps/src/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libcomps/src/CMakeLists.txt b/libcomps/src/CMakeLists.txt -index e553d77..e2eef9c 100644 ---- a/libcomps/src/CMakeLists.txt -+++ b/libcomps/src/CMakeLists.txt -@@ -52,7 +52,7 @@ add_dependencies(libcomps src-copy) - IF (CMAKE_SIZEOF_VOID_P MATCHES "8") - SET (LIB_SUFFIX "64") - ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") --set (LIB_INST_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) -+set (LIB_INST_DIR ${CMAKE_INSTALL_LIBDIR}) - - - install (FILES ${libcomps_HEADERS} DESTINATION include/libcomps) --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/libcomps/libcomps/CVE-2019-3817.patch b/external/poky/meta/recipes-devtools/libcomps/libcomps/CVE-2019-3817.patch deleted file mode 100644 index b8cfb3c4..00000000 --- a/external/poky/meta/recipes-devtools/libcomps/libcomps/CVE-2019-3817.patch +++ /dev/null @@ -1,97 +0,0 @@ -From cea10cd1f2ef6bb4edaac0c1d46d47bf237c42b8 Mon Sep 17 00:00:00 2001 -From: Riccardo Schirone -Date: Mon, 21 Jan 2019 18:11:42 +0100 -Subject: [PATCH] Fix UAF in comps_objmrtree_unite function - -The added field is not used at all in many places and it is probably the -left-over of some copy-paste. - -Upstream-Status: Backport -[https://github.com/rpm-software-management/libcomps/commit -/e3a5d056633677959ad924a51758876d415e7046] - -CVE: CVE-2019-3817 - -Signed-off-by: Kevin Weng ---- - libcomps/src/comps_mradix.c | 2 -- - libcomps/src/comps_objmradix.c | 2 -- - libcomps/src/comps_objradix.c | 2 -- - libcomps/src/comps_radix.c | 1 - - 4 files changed, 7 deletions(-) - -diff --git a/libcomps/src/comps_mradix.c b/libcomps/src/comps_mradix.c -index 338cb07..6ceb7c9 100644 ---- a/libcomps/src/comps_mradix.c -+++ b/libcomps/src/comps_mradix.c -@@ -177,7 +177,6 @@ void comps_mrtree_unite(COMPS_MRTree *rt1, COMPS_MRTree *rt2) { - struct Pair { - COMPS_HSList * subnodes; - char * key; -- char added; - } *pair, *parent_pair; - - pair = malloc(sizeof(struct Pair)); -@@ -195,7 +194,6 @@ void comps_mrtree_unite(COMPS_MRTree *rt1, COMPS_MRTree *rt2) { - parent_pair = (struct Pair*) it->data; - free(it); - -- pair->added = 0; - for (it = tmp_subnodes->first; it != NULL; it=it->next) { - pair = malloc(sizeof(struct Pair)); - pair->subnodes = ((COMPS_MRTreeData*)it->data)->subnodes; -diff --git a/libcomps/src/comps_objmradix.c b/libcomps/src/comps_objmradix.c -index 9be6648..8771c89 100644 ---- a/libcomps/src/comps_objmradix.c -+++ b/libcomps/src/comps_objmradix.c -@@ -285,7 +285,6 @@ void comps_objmrtree_unite(COMPS_ObjMRTree *rt1, COMPS_ObjMRTree *rt2) { - struct Pair { - COMPS_HSList * subnodes; - char * key; -- char added; - } *pair, *parent_pair; - - pair = malloc(sizeof(struct Pair)); -@@ -303,7 +302,6 @@ void comps_objmrtree_unite(COMPS_ObjMRTree *rt1, COMPS_ObjMRTree *rt2) { - parent_pair = (struct Pair*) it->data; - free(it); - -- pair->added = 0; - for (it = tmp_subnodes->first; it != NULL; it=it->next) { - pair = malloc(sizeof(struct Pair)); - pair->subnodes = ((COMPS_ObjMRTreeData*)it->data)->subnodes; -diff --git a/libcomps/src/comps_objradix.c b/libcomps/src/comps_objradix.c -index a790270..0ebaf22 100644 ---- a/libcomps/src/comps_objradix.c -+++ b/libcomps/src/comps_objradix.c -@@ -692,7 +692,6 @@ void comps_objrtree_unite(COMPS_ObjRTree *rt1, COMPS_ObjRTree *rt2) { - struct Pair { - COMPS_HSList * subnodes; - char * key; -- char added; - } *pair, *parent_pair; - - pair = malloc(sizeof(struct Pair)); -@@ -711,7 +710,6 @@ void comps_objrtree_unite(COMPS_ObjRTree *rt1, COMPS_ObjRTree *rt2) { - //printf("key-part:%s\n", parent_pair->key); - free(it); - -- //pair->added = 0; - for (it = tmp_subnodes->first; it != NULL; it=it->next) { - pair = malloc(sizeof(struct Pair)); - pair->subnodes = ((COMPS_ObjRTreeData*)it->data)->subnodes; -diff --git a/libcomps/src/comps_radix.c b/libcomps/src/comps_radix.c -index ada4fda..05dcaf2 100644 ---- a/libcomps/src/comps_radix.c -+++ b/libcomps/src/comps_radix.c -@@ -529,7 +529,6 @@ void comps_rtree_unite(COMPS_RTree *rt1, COMPS_RTree *rt2) { - struct Pair { - COMPS_HSList * subnodes; - char * key; -- char added; - } *pair, *parent_pair; - - pair = malloc(sizeof(struct Pair)); --- -2.22.0 - diff --git a/external/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb b/external/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb new file mode 100644 index 00000000..98c55dca --- /dev/null +++ b/external/poky/meta/recipes-devtools/libcomps/libcomps_0.1.15.bb @@ -0,0 +1,22 @@ +SUMMARY = "Libcomps is alternative for yum.comps library (which is for managing rpm package groups)." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/libcomps.git \ + file://0001-Add-crc32.c-to-sources-list.patch \ + file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "b213f749405d84e989b25e183bcf28ce701696dd" + +S = "${WORKDIR}/git" + +inherit cmake distutils3-base + +DEPENDS += "libxml2 expat libcheck" + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" +OECMAKE_SOURCEPATH = "${S}/libcomps" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/external/poky/meta/recipes-devtools/libcomps/libcomps_git.bb b/external/poky/meta/recipes-devtools/libcomps/libcomps_git.bb deleted file mode 100644 index b657f337..00000000 --- a/external/poky/meta/recipes-devtools/libcomps/libcomps_git.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "Libcomps is alternative for yum.comps library (which is for managing rpm package groups)." -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://0002-Set-library-installation-path-correctly.patch \ - file://0001-Make-__comps_objmrtree_all-static-inline.patch \ - file://CVE-2019-3817.patch \ - " - -PV = "0.1.8+git${SRCPV}" -SRCREV = "01a4759894cccff64d2561614a58281adf5ce859" - -S = "${WORKDIR}/git" - -inherit cmake distutils3-base - -DEPENDS += "libxml2 expat libcheck" - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" -OECMAKE_SOURCEPATH = "${S}/libcomps" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch new file mode 100644 index 00000000..3c87d4d8 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch @@ -0,0 +1,49 @@ +From e5a50db749b2b02e9e0cff9f7b639020e8ac76da Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 6 Nov 2018 13:54:43 +0100 +Subject: [PATCH] Add WITH_TESTS option + +This makes a dependency on cppunit optional. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin + +--- + CMakeLists.txt | 3 +++ + python/hawkey/CMakeLists.txt | 2 ++ + 2 files changed, 5 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ce88b9e3..7a99320a 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) + 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 tests ++IF (WITH_TESTS) + enable_testing() + add_subdirectory(tests) ++ENDIF() + if(WITH_BINDINGS) + add_subdirectory(python/hawkey) + endif() +diff --git a/python/hawkey/CMakeLists.txt b/python/hawkey/CMakeLists.txt +index d9645346..84d17204 100644 +--- a/python/hawkey/CMakeLists.txt ++++ b/python/hawkey/CMakeLists.txt +@@ -50,4 +50,6 @@ target_link_libraries(_hawkeymodule ${PYTHON_LIBRARY}) + install(FILES __init__.py DESTINATION ${PYTHON_INSTALL_DIR}/hawkey) + install(TARGETS _hawkeymodule LIBRARY DESTINATION ${PYTHON_INSTALL_DIR}/hawkey) + ++IF (WITH_TESTS) + add_subdirectory(tests) ++ENDIF() diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch index cbd0362c..10450def 100644 --- a/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch @@ -1,7 +1,7 @@ -From 2bf0666544293dcfac2f67b678e24353acdcd4e7 Mon Sep 17 00:00:00 2001 +From 9294cd19e5e3121fb8d37b44ee82dd7c4b3ab2c7 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 7 Feb 2017 12:16:03 +0200 -Subject: [PATCH 2/2] Get parameters for both libsolv and libsolvext (libdnf is +Subject: [PATCH] Get parameters for both libsolv and libsolvext (libdnf is using both) @@ -13,18 +13,15 @@ Signed-off-by: Alexander Kanavin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index ca280f3..6ab9827 100644 +index b722d4fb..ce88b9e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -29,7 +29,7 @@ find_package (PkgConfig REQUIRED) - SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) - PKG_CHECK_MODULES(GLIB gio-unix-2.0>=2.46.0 REQUIRED) - FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) +@@ -45,7 +45,7 @@ endif() + + # build dependencies + find_package(Gpgme REQUIRED) -PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) +PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv libsolvext) set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) - if (ENABLE_RHSM_SUPPORT) - pkg_check_modules (RHSM REQUIRED librhsm) --- -2.14.2 - + find_package(OpenSSL REQUIRED) + diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch new file mode 100644 index 00000000..cedf5392 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf/0001-include-stdexcept-for-runtime_error.patch @@ -0,0 +1,65 @@ +From 5f8eee5040d7074710cd542fc50f7a40918321fc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 23 Dec 2019 14:30:22 -0800 +Subject: [PATCH] include for runtime_error + +Fixes + +error: class 'libdnf::ModulePackageContainer::Exception' does not have any field named 'runtime_error' + explicit Exception(const std::string &what) : runtime_error(what) {} + ^~~~~~~~~~~~~ + +Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/867] +Signed-off-by: Khem Raj +--- + libdnf/goal/Goal.hpp | 1 + + libdnf/module/ModulePackageContainer.hpp | 1 + + libdnf/repo/solvable/Dependency.cpp | 3 ++- + 3 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libdnf/goal/Goal.hpp b/libdnf/goal/Goal.hpp +index f33dfa24..7b8d822c 100644 +--- a/libdnf/goal/Goal.hpp ++++ b/libdnf/goal/Goal.hpp +@@ -22,6 +22,7 @@ + #define __GOAL_HPP + + #include ++#include + + #include "../dnf-types.h" + #include "../hy-goal.h" +diff --git a/libdnf/module/ModulePackageContainer.hpp b/libdnf/module/ModulePackageContainer.hpp +index 1f815fda..37a8832d 100644 +--- a/libdnf/module/ModulePackageContainer.hpp ++++ b/libdnf/module/ModulePackageContainer.hpp +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + //class ModulePackageContainer; + //typedef std::shared_ptr ModulePackageContainerPtr; +diff --git a/libdnf/repo/solvable/Dependency.cpp b/libdnf/repo/solvable/Dependency.cpp +index 6682b729..0fc8b5cd 100644 +--- a/libdnf/repo/solvable/Dependency.cpp ++++ b/libdnf/repo/solvable/Dependency.cpp +@@ -18,6 +18,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#include + #include "Dependency.hpp" + #include "libdnf/utils/utils.hpp" + #include "libdnf/repo/DependencySplitter.hpp" +@@ -106,4 +107,4 @@ Dependency::getReldepId(DnfSack *sack, const char * reldepStr) + } + } + +-} +\ No newline at end of file ++} +-- +2.24.1 + diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch deleted file mode 100644 index 7eecc3d0..00000000 --- a/external/poky/meta/recipes-devtools/libdnf/libdnf/0002-Prefix-sysroot-path-to-introspection-tools-path.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c8211ad99ccaa4af4a75e0ba639527267fcfd69e Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:17:19 +0200 -Subject: [PATCH 2/4] Prefix sysroot path to introspection tools path. - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312] -Signed-off-by: Alexander Kanavin ---- - libdnf/CMakeLists.txt | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libdnf/CMakeLists.txt b/libdnf/CMakeLists.txt -index 63f07bf..837792b 100644 ---- a/libdnf/CMakeLists.txt -+++ b/libdnf/CMakeLists.txt -@@ -133,7 +133,7 @@ if (GOBJECT_INTROSPECTION_FOUND) - set(GIR_TYPELIB "${GIR_PREFIX}.typelib") - - add_custom_command(OUTPUT ${GIR_XML} -- COMMAND env CFLAGS=${CMAKE_C_FLAGS} ${GOBJECT_INTROSPECTION_1.0_G_IR_SCANNER} -+ COMMAND env CFLAGS=${CMAKE_C_FLAGS} $ENV{PKG_CONFIG_SYSROOT_DIR}${GOBJECT_INTROSPECTION_1.0_G_IR_SCANNER} - --namespace=Dnf - --nsversion=${DNF_SO_VERSION}.0 - --library-path=${CMAKE_CURRENT_BINARY_DIR} -@@ -153,7 +153,7 @@ if (GOBJECT_INTROSPECTION_FOUND) - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - - add_custom_command(OUTPUT ${GIR_TYPELIB} -- COMMAND ${GOBJECT_INTROSPECTION_1.0_G_IR_COMPILER} -+ COMMAND $ENV{PKG_CONFIG_SYSROOT_DIR}${GOBJECT_INTROSPECTION_1.0_G_IR_COMPILER} - -o ${GIR_TYPELIB} - ${GIR_XML} - DEPENDS ${GIR_XML} --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch deleted file mode 100644 index 81264094..00000000 --- a/external/poky/meta/recipes-devtools/libdnf/libdnf/0003-Set-the-library-installation-directory-correctly.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 8d29879fe3606c78769c1bcdddf0bcfc7191c710 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 30 Dec 2016 18:20:01 +0200 -Subject: [PATCH 3/4] Set the library installation directory correctly. - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/312] -Signed-off-by: Alexander Kanavin ---- - CMakeLists.txt | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d35f0d7..8edb627 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -62,7 +62,9 @@ ADD_DEFINITIONS(-DPACKAGE_VERSION=\\"${LIBDNF_VERSION}\\") - IF (CMAKE_SIZEOF_VOID_P MATCHES "8") - SET (LIB_SUFFIX "64") - ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") --SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -+#SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -+SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") -+ - - ADD_SUBDIRECTORY (libdnf) - ENABLE_TESTING() --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch index 6cf48a49..475c8f12 100644 --- a/external/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf/0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch @@ -1,7 +1,7 @@ -From bcea5c5063a2d5f07dbe6f40aee30370fc4ba656 Mon Sep 17 00:00:00 2001 +From 18c2c06017784cd641cc8a3deee5fc472008f7f4 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 30 Dec 2016 18:24:50 +0200 -Subject: [PATCH 1/2] Set libsolv variables with pkg-config (cmake's own module +Subject: [PATCH] Set libsolv variables with pkg-config (cmake's own module doesn't work properly). @@ -13,19 +13,16 @@ Signed-off-by: Alexander Kanavin 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8875bbf..ca280f3 100644 +index 16b63308..b722d4fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -29,7 +29,8 @@ find_package (PkgConfig REQUIRED) - SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) - PKG_CHECK_MODULES(GLIB gio-unix-2.0>=2.46.0 REQUIRED) - FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) --find_package (LibSolv 0.6.21 REQUIRED COMPONENTS ext) +@@ -45,7 +45,8 @@ endif() + + # build dependencies + find_package(Gpgme REQUIRED) +-find_package(LibSolv 0.6.30 REQUIRED COMPONENTS ext) +PKG_CHECK_MODULES (LIBSOLV REQUIRED libsolv) +set(LIBSOLV_LIBRARY ${LIBSOLV_LIBRARIES}) - if (ENABLE_RHSM_SUPPORT) - pkg_check_modules (RHSM REQUIRED librhsm) - include_directories (${RHSM_INCLUDE_DIRS}) --- -2.14.2 - + find_package(OpenSSL REQUIRED) + + diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf/fix-deprecation-warning.patch b/external/poky/meta/recipes-devtools/libdnf/libdnf/fix-deprecation-warning.patch new file mode 100644 index 00000000..3a3e02f3 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf/fix-deprecation-warning.patch @@ -0,0 +1,71 @@ +From 66d9b2ba3fbc7b04f2b5ad9d0e5371340c037b5f Mon Sep 17 00:00:00 2001 +From: Marek Blaha +Date: Wed, 10 Jul 2019 10:11:01 +0200 +Subject: [oe-core][PATCH 1/1] Fix Python 3.8 deprecation warning + (RhBug:1724244) + +This deprecation warning was introduced in Python 3.8 by +https://bugs.python.org/issue36381: + +/usr/lib/python3.8/site-packages/dnf/package.py:57: DeprecationWarning: PY_SSIZE_T_CLEAN will be required for '#' formats + return super(Package, self).chksum + +https://bugzilla.redhat.com/show_bug.cgi?id=1724244 +--- + python/hawkey/package-py.cpp | 3 ++- + python/hawkey/packagedelta-py.cpp | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) +--- + +Unchanged. Appears in version 0.35.2. + +Upstream-Status: Backport [git://github.com/rpm-software-management/libdnf.git] + +Signed-off-by: Joe Slater + + +diff --git a/python/hawkey/package-py.cpp b/python/hawkey/package-py.cpp +index 5102bba..68e03cb 100644 +--- a/python/hawkey/package-py.cpp ++++ b/python/hawkey/package-py.cpp +@@ -18,6 +18,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#define PY_SSIZE_T_CLEAN + #include + #include + +@@ -251,7 +252,7 @@ get_chksum(_PackageObject *self, void *closure) + #if PY_MAJOR_VERSION < 3 + res = Py_BuildValue("is#", type, cs, checksum_length); + #else +- res = Py_BuildValue("iy#", type, cs, checksum_length); ++ res = Py_BuildValue("iy#", type, cs, (Py_ssize_t)checksum_length); + #endif + + return res; +diff --git a/python/hawkey/packagedelta-py.cpp b/python/hawkey/packagedelta-py.cpp +index ca1cb7d..1a64836 100644 +--- a/python/hawkey/packagedelta-py.cpp ++++ b/python/hawkey/packagedelta-py.cpp +@@ -18,6 +18,7 @@ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + ++#define PY_SSIZE_T_CLEAN + #include + + // hawkey +@@ -92,7 +93,7 @@ get_chksum(_PackageDeltaObject *self, void *closure) + #if PY_MAJOR_VERSION < 3 + res = Py_BuildValue("is#", type, cs, checksum_length); + #else +- res = Py_BuildValue("iy#", type, cs, checksum_length); ++ res = Py_BuildValue("iy#", type, cs, (Py_ssize_t)checksum_length); + #endif + + return res; +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf_0.11.1.bb b/external/poky/meta/recipes-devtools/libdnf/libdnf_0.11.1.bb deleted file mode 100644 index 4fc1d6de..00000000 --- a/external/poky/meta/recipes-devtools/libdnf/libdnf_0.11.1.bb +++ /dev/null @@ -1,28 +0,0 @@ -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 \ - file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \ - file://0002-Prefix-sysroot-path-to-introspection-tools-path.patch \ - file://0003-Set-the-library-installation-directory-correctly.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 \ - " - -SRCREV = "60f979bd8db651229c559c1412f1eb880257127d" - -S = "${WORKDIR}/git" - -DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc" - -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)} \ - " -EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF" -EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/external/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb b/external/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb new file mode 100644 index 00000000..cc2ceb88 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libdnf/libdnf_0.28.1.bb @@ -0,0 +1,32 @@ +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 \ + file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \ + file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \ + file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ + file://0001-Add-WITH_TESTS-option.patch \ + file://0001-include-stdexcept-for-runtime_error.patch \ + file://fix-deprecation-warning.patch \ + " + +SRCREV = "751f89045b80d58c0d05800f74357cf78cdf7e77" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd-v1 json-c swig-native" + +inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF -DPYTHON_DESIRED=3 \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \ + -DWITH_TESTS=OFF \ + " +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/external/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch b/external/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch new file mode 100644 index 00000000..75ef308f --- /dev/null +++ b/external/poky/meta/recipes-devtools/libedit/libedit/stdc-predef.patch @@ -0,0 +1,18 @@ +__STDC_ISO_10646__ is defined in stdc-predef.h +therefore include it to see if its there on a platform + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Index: libedit-20160903-3.1/src/chartype.h +=================================================================== +--- libedit-20160903-3.1.orig/src/chartype.h ++++ libedit-20160903-3.1/src/chartype.h +@@ -29,6 +29,7 @@ + #ifndef _h_chartype_f + #define _h_chartype_f + ++#include + /* Ideally we should also test the value of the define to see if it + * supports non-BMP code points without requiring UTF-16, but nothing + * seems to actually advertise this properly, despite Unicode 3.1 having diff --git a/external/poky/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb b/external/poky/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb new file mode 100644 index 00000000..8d2d57a9 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libedit/libedit_20191231-3.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "BSD replacement for libreadline" +DESCRIPTION = "Command line editor library providing generic line editing, \ +history, and tokenization functions" +HOMEPAGE = "http://www.thrysoee.dk/editline/" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533" + +DEPENDS = "ncurses" + +inherit autotools + +SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \ + file://stdc-predef.patch \ + " +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/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch b/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch new file mode 100644 index 00000000..847b5f70 --- /dev/null +++ b/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1/0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch @@ -0,0 +1,22 @@ +From 4e67f6049b3f822fe6f5af46790a51ace581bf82 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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 + +--- + spec_tmpl.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/spec_tmpl.sh b/spec_tmpl.sh +index 0238087..126853c 100755 +--- a/spec_tmpl.sh ++++ b/spec_tmpl.sh +@@ -1,4 +1,4 @@ +-#!/usr/bin/sh ++#!/bin/sh + + version=$1 + template=$2 diff --git a/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb b/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb new file mode 100644 index 00000000..5409051d --- /dev/null +++ b/external/poky/meta/recipes-devtools/libmodulemd/libmodulemd-v1_git.bb @@ -0,0 +1,25 @@ +SUMMARY = "C Library for manipulating module metadata files" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=25a3927bff3ee4f5b21bcb0ed3fcd6bb" + +SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https;branch=1.x-maint \ + file://0001-spec_tmpl.sh-use-bin-sh-not-usr-bin-sh.patch \ + " + +PV = "1.8.16" +SRCREV = "d0dcf7b373b3cf85cd39eb3bc23d31e06195a75a" +UPSTREAM_CHECK_GITTAGREGEX = "libmodulemd-(?P1.*\d)" + +S = "${WORKDIR}/git" + +inherit meson gobject-introspection + +EXTRA_OEMESON = "-Ddeveloper_build=false -Dwith_docs=false" + +DEPENDS += "glib-2.0 libyaml glib-2.0-native python3" + +BBCLASSEXTEND = "native nativesdk" + +GIR_MESON_OPTION = 'skip_introspection' +GIR_MESON_ENABLE_FLAG = 'false' +GIR_MESON_DISABLE_FLAG = 'true' diff --git a/external/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch b/external/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch index d69deb51..b61f0c93 100644 --- a/external/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch +++ b/external/poky/meta/recipes-devtools/librepo/librepo/0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch @@ -1,8 +1,7 @@ -From 5b6849d9d7e030c3a521b5245d86f853b0271a61 Mon Sep 17 00:00:00 2001 +From b08a3b71e716dd0485ef51036d32e4c304fb4e67 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 30 Dec 2016 18:05:36 +0200 -Subject: [PATCH 1/2] Do not try to obtain PYTHON_INSTALL_DIR by running - python. +Subject: [PATCH] Do not try to obtain PYTHON_INSTALL_DIR by running python. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin @@ -13,12 +12,10 @@ Signed-off-by: Alexander Kanavin 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/librepo/python/python2/CMakeLists.txt b/librepo/python/python2/CMakeLists.txt -index 5ffbd62..90d3c22 100644 +index a0f1f9a..1665079 100644 --- a/librepo/python/python2/CMakeLists.txt +++ b/librepo/python/python2/CMakeLists.txt -@@ -1,11 +1,11 @@ - FIND_PACKAGE (PythonLibs 2 ) - FIND_PACKAGE (PythonInterp 2 REQUIRED) +@@ -1,9 +1,9 @@ -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " -from sys import stdout -from distutils import sysconfig @@ -35,13 +32,10 @@ index 5ffbd62..90d3c22 100644 MESSAGE(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}") diff --git a/librepo/python/python3/CMakeLists.txt b/librepo/python/python3/CMakeLists.txt -index 47559f7..b39adc2 100644 +index 52ba44e..da51e10 100644 --- a/librepo/python/python3/CMakeLists.txt +++ b/librepo/python/python3/CMakeLists.txt -@@ -10,12 +10,12 @@ message("--- ${PYTHON_INCLUDE_DIR}") - - FIND_PACKAGE(PythonLibs 3.0) - FIND_PACKAGE(PythonInterp 3.0 REQUIRED) +@@ -1,9 +1,9 @@ -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c " -from sys import stdout -from distutils import sysconfig @@ -57,6 +51,3 @@ index 47559f7..b39adc2 100644 INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) MESSAGE(STATUS "Python3 install dir is ${PYTHON_INSTALL_DIR}") --- -2.14.1 - diff --git a/external/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch b/external/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch index f7d7ab3a..73902e5f 100644 --- a/external/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch +++ b/external/poky/meta/recipes-devtools/librepo/librepo/0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch @@ -1,29 +1,27 @@ -From a36be8192615e2a1fb5a5856d44565277f15583b Mon Sep 17 00:00:00 2001 +From f5a1dfe4c87c228165bc25e7fe464120d8139a3d Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 30 Dec 2016 18:23:27 +0200 -Subject: [PATCH 4/4] Set gpgme variables with pkg-config, not with cmake - module (which doesn't work properly) +Subject: [PATCH] Set gpgme variables with pkg-config, not with cmake module + (which doesn't work properly) Upstream-Status: Inappropriate [gpgme upstream does not have pkg-config support and is not interested in it] Signed-off-by: Alexander Kanavin + --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index ef07d2d..f1fa09b 100644 +index e949dbe..c954b2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,8 @@ PKG_CHECK_MODULES(GLIB2 glib-2.0 REQUIRED) PKG_SEARCH_MODULE(LIBCRYPTO REQUIRED libcrypto openssl) - FIND_PACKAGE(EXPAT REQUIRED) + PKG_CHECK_MODULES(LIBXML2 libxml-2.0 REQUIRED) FIND_PACKAGE(CURL REQUIRED) -FIND_PACKAGE(Gpgme REQUIRED) +PKG_CHECK_MODULES(GPGME gpgme REQUIRED) +set(GPGME_VANILLA_LIBRARIES ${GPGME_LIBRARIES}) - FIND_PACKAGE(Xattr REQUIRED) - INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS}) --- -2.11.0 - + + IF (WITH_ZCHUNK) diff --git a/external/poky/meta/recipes-devtools/librepo/librepo_1.11.2.bb b/external/poky/meta/recipes-devtools/librepo/librepo_1.11.2.bb new file mode 100644 index 00000000..6a0a59f8 --- /dev/null +++ b/external/poky/meta/recipes-devtools/librepo/librepo_1.11.2.bb @@ -0,0 +1,27 @@ +SUMMARY = "A library providing C and Python (libcURL like) API \ + for downloading linux repository metadata and packages." +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/librepo.git \ + file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ + file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ + " + +SRCREV = "67c2d1f83f1bf87be3f26ba730fce7fbdf0c9fba" + +S = "${WORKDIR}/git" + +DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" + +inherit cmake distutils3-base pkgconfig + +EXTRA_OECMAKE = " \ + -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \ + -DPYTHON_DESIRED=3 \ + -DENABLE_TESTS=OFF \ + -DENABLE_DOCS=OFF \ + -DWITH_ZCHUNK=OFF \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/librepo/librepo_1.8.1.bb b/external/poky/meta/recipes-devtools/librepo/librepo_1.8.1.bb deleted file mode 100644 index 45698855..00000000 --- a/external/poky/meta/recipes-devtools/librepo/librepo_1.8.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = " A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages." -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/librepo.git \ - file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ - file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ - " - -SRCREV = "7b9b7bf388f3f059529c6f50c40b30919fef30f9" - -S = "${WORKDIR}/git" - -DEPENDS = "curl expat glib-2.0 openssl attr gpgme" - -inherit cmake distutils3-base pkgconfig - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/external/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/external/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc index f307a107..8e17b56d 100644 --- a/external/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc +++ b/external/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc @@ -20,6 +20,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://nohardcodepaths.patch \ file://unwind-opt-parsing.patch \ file://0001-libtool-Fix-support-for-NIOS2-processor.patch \ + file://0001-libtool-Check-for-static-libs-for-internal-compiler-.patch \ " SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e" diff --git a/external/poky/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch b/external/poky/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch new file mode 100644 index 00000000..8c7c39fe --- /dev/null +++ b/external/poky/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch @@ -0,0 +1,37 @@ +From 40a2da75e6d95cc7c498ebda95ab19ae0db2ebfb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 26 Jan 2019 12:54:26 -0800 +Subject: [PATCH] libtool: Check for static libs for internal compiler + libraries + +Libtool checks only for libraries linked as -l* when trying to +find internal compiler libraries. Clang, however uses the absolute +path to link its internal libraries e.g. compiler_rt. This patch +handles clang's statically linked libraries when finding internal +compiler libraries. + +https://crbug.com/749263 + +Upstream-Status: Submitted [https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866] + +Signed-off-by: Khem Raj +--- + m4/libtool.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +index d0389a0..9619c57 100644 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -7536,7 +7536,7 @@ if AC_TRY_EVAL(ac_compile); then + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + +- -L* | -R* | -l*) ++ -L* | -R* | -l* | */libclang_rt.*.a) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || +-- +2.20.1 + diff --git a/external/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch b/external/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch new file mode 100755 index 00000000..5add0cca --- /dev/null +++ b/external/poky/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch @@ -0,0 +1,21 @@ +libtool: remove host specific info from header file + +https://sources.debian.org/data/main/libt/libtool/2.4.6-10/debian/patches/ + no_hostname.patch + +Upstream-Status: Inappropriate [not author] +Signed-off-by: Joe Slater + +--- +Index: libtool-2.4.6/m4/libtool.m4 +=================================================================== +--- libtool-2.4.6.orig/m4/libtool.m4 ++++ libtool-2.4.6/m4/libtool.m4 +@@ -728,7 +728,6 @@ _LT_CONFIG_SAVE_COMMANDS([ + cat <<_LT_EOF >> "$cfgfile" + #! $SHELL + # Generated automatically by $as_me ($PACKAGE) $VERSION +-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + + # Provide generalized library-building support services. diff --git a/external/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/external/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb index f5fdd00e..a5715faa 100644 --- a/external/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb +++ b/external/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb @@ -1,6 +1,6 @@ require libtool-${PV}.inc -SRC_URI += "file://multilib.patch" +SRC_URI += "file://multilib.patch file://debian-no_hostname.patch" RDEPENDS_${PN} += "bash" diff --git a/external/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/external/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch deleted file mode 100644 index 209764c8..00000000 --- a/external/poky/meta/recipes-devtools/llvm/llvm/0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 96558c4f25d5132936014f6f2d6252cfdfdf478a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 21 May 2016 00:33:20 +0000 -Subject: [PATCH 1/2] 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 - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - include/llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/include/llvm/Analysis/TargetLibraryInfo.def b/include/llvm/Analysis/TargetLibraryInfo.def -index a461ed813b9..f9fd9faeee0 100644 ---- a/include/llvm/Analysis/TargetLibraryInfo.def -+++ b/include/llvm/Analysis/TargetLibraryInfo.def -@@ -665,6 +665,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") - TLI_DEFINE_ENUM_INTERNAL(fopen) - TLI_DEFINE_STRING_INTERNAL("fopen") - /// FILE *fopen64(const char *filename, const char *opentype) -+#ifdef fopen64 -+#undef fopen64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(fopen64) - TLI_DEFINE_STRING_INTERNAL("fopen64") - /// int fprintf(FILE *stream, const char *format, ...); -@@ -700,6 +703,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") - /// int fseeko(FILE *stream, off_t offset, int whence); - TLI_DEFINE_ENUM_INTERNAL(fseeko) - TLI_DEFINE_STRING_INTERNAL("fseeko") -+#ifdef fseeko64 -+#undef fseeko64 -+#endif - /// int fseeko64(FILE *stream, off64_t offset, int whence) - TLI_DEFINE_ENUM_INTERNAL(fseeko64) - TLI_DEFINE_STRING_INTERNAL("fseeko64") -@@ -710,6 +716,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") - TLI_DEFINE_ENUM_INTERNAL(fstat) - TLI_DEFINE_STRING_INTERNAL("fstat") - /// int fstat64(int filedes, struct stat64 *buf) -+#ifdef fstat64 -+#undef fstat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(fstat64) - TLI_DEFINE_STRING_INTERNAL("fstat64") - /// int fstatvfs(int fildes, struct statvfs *buf); -@@ -725,6 +734,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") - TLI_DEFINE_ENUM_INTERNAL(ftello) - TLI_DEFINE_STRING_INTERNAL("ftello") - /// off64_t ftello64(FILE *stream) -+#ifdef ftello64 -+#undef ftello64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(ftello64) - TLI_DEFINE_STRING_INTERNAL("ftello64") - /// int ftrylockfile(FILE *file); -@@ -845,6 +857,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") - TLI_DEFINE_ENUM_INTERNAL(lstat) - TLI_DEFINE_STRING_INTERNAL("lstat") - /// int lstat64(const char *path, struct stat64 *buf); -+#ifdef lstat64 -+#undef lstat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(lstat64) - TLI_DEFINE_STRING_INTERNAL("lstat64") - /// void *malloc(size_t size); -@@ -1064,6 +1079,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") - TLI_DEFINE_ENUM_INTERNAL(stat) - TLI_DEFINE_STRING_INTERNAL("stat") - /// int stat64(const char *path, struct stat64 *buf); -+#ifdef stat64 -+#undef stat64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(stat64) - TLI_DEFINE_STRING_INTERNAL("stat64") - /// int statvfs(const char *path, struct statvfs *buf); -@@ -1193,6 +1211,9 @@ TLI_DEFINE_STRING_INTERNAL("times") - TLI_DEFINE_ENUM_INTERNAL(tmpfile) - TLI_DEFINE_STRING_INTERNAL("tmpfile") - /// FILE *tmpfile64(void) -+#ifdef tmpfile64 -+#undef tmpfile64 -+#endif - TLI_DEFINE_ENUM_INTERNAL(tmpfile64) - TLI_DEFINE_STRING_INTERNAL("tmpfile64") - /// int toascii(int c); --- -2.16.1 - diff --git a/external/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch b/external/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch deleted file mode 100644 index 6a928332..00000000 --- a/external/poky/meta/recipes-devtools/llvm/llvm/0002-llvm-allow-env-override-of-exe-path.patch +++ /dev/null @@ -1,72 +0,0 @@ -From aeccf16eaccdd80e4d5ecaa51673ce4b2bac1130 Mon Sep 17 00:00:00 2001 -From: Martin Kelly -Date: Fri, 19 May 2017 00:22:57 -0700 -Subject: [PATCH 2/2] 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. - -To let it work in multilib environment, we need to provide a knob to supply -multilib dirname as well - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Martin Kelly -Signed-off-by: Khem Raj ---- - tools/llvm-config/llvm-config.cpp | 17 ++++++++++++++++- - 1 file changed, 16 insertions(+), 1 deletion(-) - -diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 08b096afb05..360cc5abf4e 100644 ---- a/tools/llvm-config/llvm-config.cpp -+++ b/tools/llvm-config/llvm-config.cpp -@@ -225,6 +225,13 @@ Typical components:\n\ - - /// \brief Compute the path to the main executable. - std::string GetExecutablePath(const char *Argv0) { -+ // Hack for Yocto: we need to override the root path when we are using -+ // llvm-config from within a target sysroot. -+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); -+ if (Sysroot != nullptr) { -+ return Sysroot; -+ } -+ - // 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; -@@ -306,12 +313,20 @@ int main(int argc, char **argv) { - std::string ActivePrefix, ActiveBinDir, ActiveIncludeDir, ActiveLibDir, - ActiveCMakeDir; - std::string ActiveIncludeOption; -+ // Hack for Yocto: we need to override the multilib path when we are using -+ // llvm-config from within a target sysroot. -+ std::string Multilibdir = std::getenv("YOCTO_ALTERNATE_MULTILIB_NAME"); -+ if (Multilibdir.empty()) { -+ Multilibdir = "/lib" LLVM_LIBDIR_SUFFIX; -+ } -+ - if (IsInDevelopmentTree) { - ActiveIncludeDir = std::string(LLVM_SRC_ROOT) + "/include"; - ActivePrefix = CurrentExecPrefix; - - // CMake organizes the products differently than a normal prefix style - // layout. -+ - switch (DevelopmentTreeLayout) { - case CMakeStyle: - ActiveBinDir = ActiveObjRoot + "/bin"; -@@ -336,7 +351,7 @@ int main(int argc, char **argv) { - SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR)); - sys::fs::make_absolute(ActivePrefix, path); - ActiveBinDir = path.str(); -- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX; -+ ActiveLibDir = ActivePrefix + Multilibdir; - ActiveCMakeDir = ActiveLibDir + "/cmake/llvm"; - ActiveIncludeOption = "-I" + ActiveIncludeDir; - } --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch b/external/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch new file mode 100644 index 00000000..d02b7ba6 --- /dev/null +++ b/external/poky/meta/recipes-devtools/llvm/llvm/0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch @@ -0,0 +1,90 @@ +Upstream-Status: Pending +Signed-off-by: Khem Raj + +From dbeecdb307be8b783b42cbc89dcb9c5e7f528989 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 21 May 2016 00:33:20 +0000 +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 + +Signed-off-by: Khem Raj +--- + .../llvm/Analysis/TargetLibraryInfo.def | 21 +++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.def b/llvm/include/llvm/Analysis/TargetLibraryInfo.def +index afed404f04c..876888656f2 100644 +--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.def ++++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.def +@@ -782,6 +782,9 @@ TLI_DEFINE_STRING_INTERNAL("fmodl") + TLI_DEFINE_ENUM_INTERNAL(fopen) + TLI_DEFINE_STRING_INTERNAL("fopen") + /// FILE *fopen64(const char *filename, const char *opentype) ++#ifdef fopen64 ++#undef fopen64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fopen64) + TLI_DEFINE_STRING_INTERNAL("fopen64") + /// int fork(); +@@ -829,6 +832,9 @@ TLI_DEFINE_STRING_INTERNAL("fseek") + /// int fseeko(FILE *stream, off_t offset, int whence); + TLI_DEFINE_ENUM_INTERNAL(fseeko) + TLI_DEFINE_STRING_INTERNAL("fseeko") ++#ifdef fseeko64 ++#undef fseeko64 ++#endif + /// int fseeko64(FILE *stream, off64_t offset, int whence) + TLI_DEFINE_ENUM_INTERNAL(fseeko64) + TLI_DEFINE_STRING_INTERNAL("fseeko64") +@@ -839,6 +845,9 @@ TLI_DEFINE_STRING_INTERNAL("fsetpos") + TLI_DEFINE_ENUM_INTERNAL(fstat) + TLI_DEFINE_STRING_INTERNAL("fstat") + /// int fstat64(int filedes, struct stat64 *buf) ++#ifdef fstat64 ++#undef fstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(fstat64) + TLI_DEFINE_STRING_INTERNAL("fstat64") + /// int fstatvfs(int fildes, struct statvfs *buf); +@@ -854,6 +863,9 @@ TLI_DEFINE_STRING_INTERNAL("ftell") + TLI_DEFINE_ENUM_INTERNAL(ftello) + TLI_DEFINE_STRING_INTERNAL("ftello") + /// off64_t ftello64(FILE *stream) ++#ifdef ftello64 ++#undef ftello64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(ftello64) + TLI_DEFINE_STRING_INTERNAL("ftello64") + /// int ftrylockfile(FILE *file); +@@ -980,6 +992,9 @@ TLI_DEFINE_STRING_INTERNAL("logl") + TLI_DEFINE_ENUM_INTERNAL(lstat) + TLI_DEFINE_STRING_INTERNAL("lstat") + /// int lstat64(const char *path, struct stat64 *buf); ++#ifdef lstat64 ++#undef lstat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(lstat64) + TLI_DEFINE_STRING_INTERNAL("lstat64") + /// void *malloc(size_t size); +@@ -1205,6 +1220,9 @@ TLI_DEFINE_STRING_INTERNAL("sscanf") + TLI_DEFINE_ENUM_INTERNAL(stat) + TLI_DEFINE_STRING_INTERNAL("stat") + /// int stat64(const char *path, struct stat64 *buf); ++#ifdef stat64 ++#undef stat64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(stat64) + TLI_DEFINE_STRING_INTERNAL("stat64") + /// int statvfs(const char *path, struct statvfs *buf); +@@ -1340,6 +1358,9 @@ TLI_DEFINE_STRING_INTERNAL("times") + TLI_DEFINE_ENUM_INTERNAL(tmpfile) + TLI_DEFINE_STRING_INTERNAL("tmpfile") + /// FILE *tmpfile64(void) ++#ifdef tmpfile64 ++#undef tmpfile64 ++#endif + TLI_DEFINE_ENUM_INTERNAL(tmpfile64) + TLI_DEFINE_STRING_INTERNAL("tmpfile64") + /// int toascii(int c); diff --git a/external/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/external/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch new file mode 100644 index 00000000..b01b8647 --- /dev/null +++ b/external/poky/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch @@ -0,0 +1,37 @@ +Upstream-Status: Pending +Signed-off-by: Khem Raj + +From 61b00e1e051e367f5483d7b5253b6c85a9e8a90f Mon Sep 17 00:00:00 2001 +From: Martin Kelly +Date: Fri, 19 May 2017 00:22:57 -0700 +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. + +Signed-off-by: Martin Kelly +Signed-off-by: Khem Raj +--- + llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp +index 7ef7c46a262..a4f7ed82c7b 100644 +--- a/llvm/tools/llvm-config/llvm-config.cpp ++++ b/llvm/tools/llvm-config/llvm-config.cpp +@@ -225,6 +225,13 @@ Typical components:\n\ + + /// Compute the path to the main executable. + std::string GetExecutablePath(const char *Argv0) { ++ // Hack for Yocto: we need to override the root path when we are using ++ // llvm-config from within a target sysroot. ++ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH"); ++ if (Sysroot != nullptr) { ++ return Sysroot; ++ } ++ + // 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; diff --git a/external/poky/meta/recipes-devtools/llvm/llvm_git.bb b/external/poky/meta/recipes-devtools/llvm/llvm_git.bb index 72787630..a8607f50 100644 --- a/external/poky/meta/recipes-devtools/llvm/llvm_git.bb +++ b/external/poky/meta/recipes-devtools/llvm/llvm_git.bb @@ -3,44 +3,55 @@ 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=e825e017edc35cfd58e26116e5251771" +LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" -DEPENDS = "libffi libxml2 zlib ninja-native llvm-native" +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 perlnative pythonnative cmake pkgconfig +inherit cmake pkgconfig PROVIDES += "llvm${PV}" +MAJOR_VERSION = "9" +MINOR_VERSION = "0" +PATCH_VERSION = "1" + +PV = "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}" + LLVM_RELEASE = "${PV}" LLVM_DIR = "llvm${LLVM_RELEASE}" -SRCREV = "5136df4d089a086b70d452160ad5451861269498" -PV = "6.0" -BRANCH = "release_60" -PATCH_VERSION = "1" -SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};protocol=http \ - file://0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch \ - file://0002-llvm-allow-env-override-of-exe-path.patch \ +BRANCH = "release/${MAJOR_VERSION}.x" +SRCREV = "c1a0a213378a458fbea1a5c77b315c7dce08fd05" +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_COMMITS = "1" -S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "llvmorg-(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git/llvm" LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" + def get_llvm_arch(bb, d, arch_var): import re a = d.getVar(arch_var) - if re.match('(i.86|athlon|x86.64)$', a): return 'X86' - elif re.match('arm$', a): return 'ARM' - 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('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'Mips' - elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC' + if re.match(r'(i.86|athlon|x86.64)$', a): return 'X86' + elif re.match(r'arm$', a): return 'ARM' + elif re.match(r'armeb$', a): return 'ARM' + 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) @@ -61,9 +72,12 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_BINDINGS_LIST='' \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_ENABLE_FFI=ON \ + -DLLVM_ENABLE_RTTI=ON \ -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ -DLLVM_OPTIMIZED_TABLEGEN=ON \ -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ + -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ + -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \ -G Ninja" EXTRA_OECMAKE_append_class-target = "\ @@ -78,6 +92,8 @@ EXTRA_OECMAKE_append_class-nativesdk = "\ -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ " +CFLAGS += "-fcommon" + do_configure_prepend() { # Fix paths in llvm-config sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp @@ -117,71 +133,54 @@ do_install() { # Remove unnecessary cmake files rm -rf ${D}${libdir}/${LLVM_DIR}/cmake - ln -s ${LLVM_DIR}/libLLVM-${PV}${SOLIBSDEV} ${D}${libdir}/libLLVM-${PV}${SOLIBSDEV} + ln -s ${LLVM_DIR}/libLLVM-${MAJOR_VERSION}${SOLIBSDEV} ${D}${libdir}/libLLVM-${MAJOR_VERSION}${SOLIBSDEV} # We'll have to delete the libLLVM.so due to multiple reasons... rm -rf ${D}${libdir}/${LLVM_DIR}/libLLVM.so rm -rf ${D}${libdir}/${LLVM_DIR}/libLTO.so } + do_install_class-native() { install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV} install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV} - install -D -m 0755 ${B}/lib/libLLVM-${PV}.so ${D}${libdir}/libLLVM-${PV}.so + install -D -m 0755 ${B}/lib/libLLVM-${MAJOR_VERSION}.so ${D}${libdir}/libLLVM-${MAJOR_VERSION}.so } -PACKAGES += "${PN}-bugpointpasses ${PN}-llvmhello" -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-staticdev = "1" -FILES_${PN} = "" -FILES_${PN}-staticdev = "" -FILES_${PN}-dbg = " \ - ${bindir}/${LLVM_DIR}/.debug \ - ${libdir}/${LLVM_DIR}/.debug/BugpointPasses.so \ - ${libdir}/${LLVM_DIR}/.debug/LLVMHello.so \ - ${libdir}/${LLVM_DIR}/.debug/libLTO.so* \ - ${libdir}/${LLVM_DIR}/.debug/llvm-config \ - /usr/src/debug \ -" - -FILES_${PN}-dev = " \ - ${bindir}/${LLVM_DIR} \ - ${includedir}/${LLVM_DIR} \ - ${libdir}/${LLVM_DIR}/llvm-config \ -" +PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto" -RRECOMMENDS_${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello" +RRECOMMENDS_${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" FILES_${PN}-bugpointpasses = "\ ${libdir}/${LLVM_DIR}/BugpointPasses.so \ " -FILES_${PN} += "\ + +FILES_${PN}-libllvm = "\ + ${libdir}/${LLVM_DIR}/libLLVM-${MAJOR_VERSION}.so \ + ${libdir}/libLLVM-${MAJOR_VERSION}.so \ +" + +FILES_${PN}-liblto += "\ ${libdir}/${LLVM_DIR}/libLTO.so.* \ " +FILES_${PN}-liboptremarks += "\ + ${libdir}/${LLVM_DIR}/libRemarks.so.* \ +" + FILES_${PN}-llvmhello = "\ ${libdir}/${LLVM_DIR}/LLVMHello.so \ " -PACKAGES_DYNAMIC = "^libllvm${LLVM_RELEASE}-.*$" -NOAUTOPACKAGEDEBUG = "1" - -INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE}.${PATCH_VERSION} += "dev-so" -INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm-${LLVM_RELEASE} += "dev-so" -INSANE_SKIP_${MLPREFIX}libllvm${LLVM_RELEASE}-llvm += "dev-so" - -python llvm_populate_packages() { - libdir = bb.data.expand('${libdir}', d) - libllvm_libdir = bb.data.expand('${libdir}/${LLVM_DIR}', d) - split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg', 'Split debug package for %s', allow_dirs=True) - split_packages = do_split_packages(d, libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True, allow_links=True, recursive=True) - split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-staticdev', 'Split staticdev package for %s', allow_dirs=True) - if split_packages: - pn = d.getVar('PN') - d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages)) - d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages)) - d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_packages)) -} +FILES_${PN}-dev += " \ + ${libdir}/${LLVM_DIR}/llvm-config \ + ${libdir}/${LLVM_DIR}/libRemarks.so \ + ${libdir}/${LLVM_DIR}/libLLVM-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}.so \ +" + +FILES_${PN}-staticdev += "\ + ${libdir}/${LLVM_DIR}/*.a \ +" -PACKAGESPLITFUNCS_prepend = "llvm_populate_packages " +INSANE_SKIP_${PN}-libllvm += "dev-so" BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/m4/m4-1.4.18.inc b/external/poky/meta/recipes-devtools/m4/m4-1.4.18.inc index a6cef6f3..a9b63c1b 100644 --- a/external/poky/meta/recipes-devtools/m4/m4-1.4.18.inc +++ b/external/poky/meta/recipes-devtools/m4/m4-1.4.18.inc @@ -4,15 +4,17 @@ DESCRIPTION = "GNU m4 is an implementation of the traditional Unix macro process compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). \ GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc." -inherit autotools texinfo +inherit autotools texinfo ptest SRC_URI = "${GNU_MIRROR}/m4/m4-${PV}.tar.gz \ file://ac_config_links.patch \ - file://remove-gets.patch \ file://m4-1.4.18-glibc-change-work-around.patch \ " - -SRC_URI_append_class-target = " file://0001-Unset-need_charset_alias-when-building-for-musl.patch" +SRC_URI_append_class-target = " file://0001-Unset-need_charset_alias-when-building-for-musl.patch \ + file://run-ptest \ + file://serial-tests-config.patch \ + file://0001-test-getopt-posix-fix.patch \ + " SRC_URI[md5sum] = "a077779db287adf4e12a035029002d28" SRC_URI[sha256sum] = "ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab" @@ -28,3 +30,33 @@ acpaths = "-I ./m4" EXTRA_OECONF += "--without-libsigsegv-prefix" EXTRA_OEMAKE += "'infodir=${infodir}'" + +do_compile_ptest() { + cd ${B}/tests + sed -i '/^buildtest-TESTS: /c buildtest-TESTS: $(TESTS) $(check_LIBRARIES) $(check_PROGRAMS)' Makefile + oe_runmake buildtest-TESTS +} + +do_install_ptest() { + cp -r ${B}/tests ${D}${PTEST_PATH} + cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests/ + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e "s;LOCALE_FR='fr_FR';LOCALE_FR='fr_FR.iso88591';g" \ + -e "s;LOCALE_FR_UTF8='none';LOCALE_FR_UTF8='fr_FR.utf8';g" ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + cp ${S}/build-aux/update-copyright ${D}${PTEST_PATH}/tests/ + sed -i 's;update-copyright;./update-copyright;g' ${D}${PTEST_PATH}/tests/test-update-copyright.sh + chmod 0755 ${D}${PTEST_PATH}/tests/test-mbrtowc-w32-1.sh ${D}${PTEST_PATH}/tests/test-spawn-pipe-main \ + ${D}${PTEST_PATH}/tests/test-spawn-pipe-child ${D}${PTEST_PATH}/tests/test-version-etc \ + ${D}${PTEST_PATH}/tests/test-xalloc-die +} + + +RDEPENDS_${PN}-ptest += "make coreutils diffutils" +RDEPENDS_${PN}-ptest_append_libc-glibc = "\ + locale-base-fr-fr.iso-8859-1 \ +" + +INSANE_SKIP_${PN}-ptest += "ldflags" +INSANE_SKIP_${PN}-ptest += "rpaths" + diff --git a/external/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch b/external/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch new file mode 100644 index 00000000..11508ee0 --- /dev/null +++ b/external/poky/meta/recipes-devtools/m4/m4/0001-test-getopt-posix-fix.patch @@ -0,0 +1,41 @@ +From 75bea7c72a919859674f493548653de88f96c798 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Mon, 22 Apr 2019 10:36:13 +0800 +Subject: [PATCH] test-getopt-posix fix + +fix below problem: +test-getopt.h:754: assertion 'strcmp (argv[1], "donald") == 0' failed + +get this patch from +https://github.com/habitat-sh/core-plans/blob/master/m4/fix-test-getopt-posix-with-glibc-2.26.patch + +Upstream-Status: Pending + +have report this bug to m4-discuss@gnu.org + +Signed-off-by: Changqing Li +--- + tests/test-getopt-posix.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/tests/test-getopt-posix.c b/tests/test-getopt-posix.c +index 5532271..2a3d511 100644 +--- a/tests/test-getopt-posix.c ++++ b/tests/test-getopt-posix.c +@@ -22,6 +22,13 @@ + ftell link warning if we are not using the gnulib ftell module. */ + #define _GL_NO_LARGE_FILES + ++/* ++ * Glibc 2.26 does hard include bits/getopt_posix.h which causes the system ++ * to use glibc's getopt but the tests expect gnulib behavior. Until a better ++ * fix is available this avoids that mis-resolution. ++ */ ++#include ++ + /* POSIX and glibc provide the getopt() function in , see + http://pubs.opengroup.org/onlinepubs/9699919799/functions/getopt.html + https://www.gnu.org/software/libc/manual/html_node/Using-Getopt.html +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch b/external/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch index 72e7ae20..c10bcbf6 100644 --- a/external/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch +++ b/external/poky/meta/recipes-devtools/m4/m4/m4-1.4.18-glibc-change-work-around.patch @@ -3,8 +3,9 @@ update for glibc libio.h removal in 2.28+ see https://src.fedoraproject.org/rpms/m4/c/814d592134fad36df757f9a61422d164ea2c6c9b?branch=master -Upstream-Status: Pending +Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a718] Signed-off-by: Khem Raj + Index: m4-1.4.18/lib/fflush.c =================================================================== --- m4-1.4.18.orig/lib/fflush.c diff --git a/external/poky/meta/recipes-devtools/m4/m4/remove-gets.patch b/external/poky/meta/recipes-devtools/m4/m4/remove-gets.patch deleted file mode 100644 index abe82f3b..00000000 --- a/external/poky/meta/recipes-devtools/m4/m4/remove-gets.patch +++ /dev/null @@ -1,24 +0,0 @@ -eglibc has remove gets starting 2.16 -therefore check for its being there before -undefining it. - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- -diff --git a/lib/stdio.in.h b/lib/stdio.in.h -index 5727452..f04a691 100644 ---- a/lib/stdio.in.h -+++ b/lib/stdio.in.h -@@ -742,10 +742,12 @@ _GL_WARN_ON_USE (getline, "getline is unportable - " - /* It is very rare that the developer ever has full control of stdin, - so any use of gets warrants an unconditional warning; besides, C11 - removed it. */ -+#if defined gets - #undef gets - #if HAVE_RAW_DECL_GETS && !defined __cplusplus - _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); - #endif -+#endif - - #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ - struct obstack; diff --git a/external/poky/meta/recipes-devtools/m4/m4/run-ptest b/external/poky/meta/recipes-devtools/m4/m4/run-ptest new file mode 100644 index 00000000..5c0fe933 --- /dev/null +++ b/external/poky/meta/recipes-devtools/m4/m4/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh +# +#This script is used to run m4 test suites +cd tests +make -k runtest-TESTS top_srcdir=.. srcdir=. diff --git a/external/poky/meta/recipes-devtools/m4/m4/serial-tests-config.patch b/external/poky/meta/recipes-devtools/m4/m4/serial-tests-config.patch new file mode 100644 index 00000000..34e6ad80 --- /dev/null +++ b/external/poky/meta/recipes-devtools/m4/m4/serial-tests-config.patch @@ -0,0 +1,30 @@ +From ab8491111b4578db5b735c6466187775e1855f18 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Tue, 23 Apr 2019 15:35:00 +0800 +Subject: [PATCH] add a patch to use serial-tests config needed by ptest + +Add serial-tests support, ptest need it. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Changqing Li +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 78b8788..931fa6f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,7 +22,7 @@ AC_INIT([GNU M4], m4_esyscmd([build-aux/git-version-gen .tarball-version]), + [bug-m4@gnu.org]) + AC_CONFIG_AUX_DIR([build-aux]) + +-AM_INIT_AUTOMAKE([1.11.6 dist-bzip2 dist-xz color-tests parallel-tests ++AM_INIT_AUTOMAKE([1.11.6 dist-bzip2 dist-xz color-tests serial-tests + silent-rules subdir-objects gnu]) + AM_SILENT_RULES([yes]) # make --enable-silent-rules the default. + +-- +2.7.4 + diff --git a/external/poky/meta/recipes-devtools/make/make.inc b/external/poky/meta/recipes-devtools/make/make.inc index b8905bc6..a0a72b62 100644 --- a/external/poky/meta/recipes-devtools/make/make.inc +++ b/external/poky/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/external/poky/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch b/external/poky/meta/recipes-devtools/make/make/0001-glob-Do-not-assume-glibc-glob-internals.patch deleted file mode 100644 index 2b6e4d40..00000000 --- a/external/poky/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 -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 - - 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/external/poky/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch b/external/poky/meta/recipes-devtools/make/make/0001-m4-getloadavg.m4-restrict-AIX-specific-test-on-AIX.patch new file mode 100644 index 00000000..096bcfdf --- /dev/null +++ b/external/poky/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 +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 +--- +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/external/poky/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch b/external/poky/meta/recipes-devtools/make/make/0001-makeinst-Do-not-undef-POSIX-on-clang-arm.patch new file mode 100644 index 00000000..2da7c983 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch b/external/poky/meta/recipes-devtools/make/make/0001-src-dir.c-fix-buffer-overflow-warning.patch new file mode 100644 index 00000000..57970824 --- /dev/null +++ b/external/poky/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 +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 +--- +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/external/poky/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch b/external/poky/meta/recipes-devtools/make/make/0002-glob-Do-not-assume-glibc-glob-internals.patch deleted file mode 100644 index d49acd9f..00000000 --- a/external/poky/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 -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 - #include - --#define GLOB_INTERFACE_VERSION 1 - #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 - # include --# 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/external/poky/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch b/external/poky/meta/recipes-devtools/make/make/0002-modules-fcntl-allow-being-detected-by-importing-proj.patch new file mode 100644 index 00000000..b3d97f9a --- /dev/null +++ b/external/poky/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 +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 +--- +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/external/poky/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch b/external/poky/meta/recipes-devtools/make/make/0002-w32-compat-dirent.c-follow-header.patch new file mode 100644 index 00000000..9ecc4454 --- /dev/null +++ b/external/poky/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 +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 +--- +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 . */ + #include + #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/external/poky/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch b/external/poky/meta/recipes-devtools/make/make/0003-posixfcn-fcntl-gnulib-make-emulated.patch new file mode 100644 index 00000000..70414c51 --- /dev/null +++ b/external/poky/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 +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 +--- +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 . */ + #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/external/poky/meta/recipes-devtools/make/make_4.2.1.bb b/external/poky/meta/recipes-devtools/make/make_4.2.1.bb deleted file mode 100644 index c6e6a0cd..00000000 --- a/external/poky/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/external/poky/meta/recipes-devtools/make/make_4.3.bb b/external/poky/meta/recipes-devtools/make/make_4.3.bb new file mode 100644 index 00000000..3e0eb543 --- /dev/null +++ b/external/poky/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/external/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c b/external/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c index cba76814..32b98729 100644 --- a/external/poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c +++ b/external/poky/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/external/poky/meta/recipes-devtools/meson/meson.inc b/external/poky/meta/recipes-devtools/meson/meson.inc index 61b23914..0a58c971 100644 --- a/external/poky/meta/recipes-devtools/meson/meson.inc +++ b/external/poky/meta/recipes-devtools/meson/meson.inc @@ -1,5 +1,8 @@ HOMEPAGE = "http://mesonbuild.com" SUMMARY = "A high performance build system" +DESCRIPTION = "Meson is a build system designed to increase programmer \ +productivity. It does this by providing a fast, simple and easy to use \ +interface for modern software development tools and practices." LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57" @@ -7,25 +10,26 @@ 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://0001-Linker-rules-move-cross_args-in-front-of-output_args.patch \ file://0003-native_bindir.patch \ - file://gi-flags.patch \ - file://gtkdoc-flags.patch \ file://0001-python-module-do-not-manipulate-the-environment-when.patch \ file://disable-rpath-handling.patch \ + file://cross-prop-default.patch \ + file://0001-mesonbuild-environment.py-check-environment-for-vari.patch \ + file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ " -SRC_URI[sha256sum] = "92d8afd921751261e36151643464efd3394162f69efbe8cd53e0a66b1cf395eb" -SRC_URI[md5sum] = "31bda3519d8c0eb3438267268a78085e" +SRC_URI[sha256sum] = "3e8f830f33184397c2eb0b651ec502adb63decb28978bdc84b3558d71284c21f" +SRC_URI[md5sum] = "80303535995fcae72bdb887df102b421" SRC_URI_append_class-native = " \ - file://0002-Make-CPU-family-warnings-fatal.patch \ - file://0001-Support-building-allarch-recipes-again.patch \ + file://0001-Make-CPU-family-warnings-fatal.patch \ + file://0002-Support-building-allarch-recipes-again.patch \ " UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" +UPSTREAM_CHECK_REGEX = "meson-(?P\d+(\.\d+)+)\.tar" inherit setuptools3 -RDEPENDS_${PN} = "ninja python3-core python3-modules" +RDEPENDS_${PN} = "ninja python3-modules python3-pkg-resources" FILES_${PN} += "${datadir}/polkit-1" diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch deleted file mode 100644 index 97778c32..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson/0001-Linker-rules-move-cross_args-in-front-of-output_args.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4676224dbdff0f7107e8cbdbe0eab19c855f1454 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Fri, 17 Nov 2017 13:18:28 +0200 -Subject: [PATCH] Linker rules: move {cross_args} in front of {output_args} - -The previous order was found to break linking in some cases -(e.g. when -no-pic -fno-PIC was present in {cross_args}. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - mesonbuild/backend/ninjabackend.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py -index bb281e1..969b70e 100644 ---- a/mesonbuild/backend/ninjabackend.py -+++ b/mesonbuild/backend/ninjabackend.py -@@ -1501,7 +1501,7 @@ int dummy; - rspfile_content = $ARGS {output_args} $in $LINK_ARGS {cross_args} $aliasing - ''' - else: -- command_template = ' command = {executable} $ARGS {output_args} $in $LINK_ARGS {cross_args} $aliasing\n' -+ command_template = ' command = {executable} $ARGS {cross_args} {output_args} $in $LINK_ARGS $aliasing\n' - command = command_template.format( - executable=' '.join(compiler.get_linker_exelist()), - cross_args=' '.join(cross_args), --- -2.15.0 - diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch new file mode 100644 index 00000000..9ce31e54 --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch @@ -0,0 +1,41 @@ +From ee638fd4a299bfc53a2238e9f71ae310c8d97460 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 3 Jul 2018 13:59:09 +0100 +Subject: [PATCH] Make CPU family warnings fatal + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: Ross Burton + +--- + mesonbuild/envconfig.py | 2 +- + mesonbuild/environment.py | 4 +--- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py +index 0f277a7..24578ea 100644 +--- a/mesonbuild/envconfig.py ++++ b/mesonbuild/envconfig.py +@@ -192,7 +192,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) + + endian = literal['endian'] + if endian not in ('little', 'big'): +diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py +index dc8b14f..3aab71e 100644 +--- a/mesonbuild/environment.py ++++ b/mesonbuild/environment.py +@@ -354,9 +354,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 ' +- '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) + + return trial + diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch deleted file mode 100644 index 96be104a..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson/0001-Support-building-allarch-recipes-again.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d80d02a3ca6e21fa3d055c88c05234c2eb4db128 Mon Sep 17 00:00:00 2001 -From: Peter Kjellerstedt -Date: Thu, 26 Jul 2018 16:32:49 +0200 -Subject: [PATCH] Support building allarch recipes again - -This registers "allarch" as a known CPU family. - -Upstream-Status: Inappropriate [OE specific] -Signed-off-by: Peter Kjellerstedt ---- - mesonbuild/environment.py | 1 + - 1 file changed, 1 insertion(+) - -Index: meson-0.47.2/mesonbuild/environment.py -=================================================================== ---- meson-0.47.2.orig/mesonbuild/environment.py -+++ meson-0.47.2/mesonbuild/environment.py -@@ -75,6 +75,7 @@ from .compilers import ( - build_filename = 'meson.build' - - known_cpu_families = ( -+ 'allarch', - 'aarch64', - 'arm', - 'e2k', diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch index 7ffd6c54..471f1500 100644 --- a/external/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch +++ b/external/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch @@ -1,4 +1,4 @@ -From 3ac4e58c5494bd7e603a325b5b5c2b8075849fee Mon Sep 17 00:00:00 2001 +From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 4 Aug 2017 16:16:41 +0300 Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling @@ -16,70 +16,21 @@ Upstream-Status: Pending Signed-off-by: Alexander Kanavin --- - mesonbuild/modules/gnome.py | 18 +++++++++++++++--- - mesonbuild/scripts/gtkdochelper.py | 9 +++++++-- - 2 files changed, 22 insertions(+), 5 deletions(-) + mesonbuild/modules/gnome.py | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index cb69641..727eb6a 100644 +index bcf77b9..6a4b472 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -792,6 +792,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.cross_info.config["properties"].get('gtkdoc_exe_wrapper', None) ++ gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None) + if gtkdoc_exe_wrapper is not None: -+ args.append('--gtkdoc-exe-wrapper=' + gtkdoc_exe_wrapper) ++ args.append('--run=' + gtkdoc_exe_wrapper) + args += self._unpack_args('--htmlargs=', 'html_args', kwargs) args += self._unpack_args('--scanargs=', 'scan_args', kwargs) args += self._unpack_args('--scanobjsargs=', 'scanobjs_args', kwargs) -diff --git a/mesonbuild/scripts/gtkdochelper.py b/mesonbuild/scripts/gtkdochelper.py -index 948dc5a..9c5bd19 100644 ---- a/mesonbuild/scripts/gtkdochelper.py -+++ b/mesonbuild/scripts/gtkdochelper.py -@@ -45,6 +45,7 @@ parser.add_argument('--ignore-headers', dest='ignore_headers', default='') - parser.add_argument('--namespace', dest='namespace', default='') - parser.add_argument('--mode', dest='mode', default='') - parser.add_argument('--installdir', dest='install_dir') -+parser.add_argument('--gtkdoc-exe-wrapper', dest='gtkdoc_exe_wrapper') - - def gtkdoc_run_check(cmd, cwd, library_paths=None): - if library_paths is None: -@@ -64,7 +65,7 @@ def gtkdoc_run_check(cmd, cwd, library_paths=None): - # This preserves the order of messages. - p, out = Popen_safe(cmd, cwd=cwd, env=env, stderr=subprocess.STDOUT)[0:2] - if p.returncode != 0: -- err_msg = ["{!r} failed with status {:d}".format(cmd[0], p.returncode)] -+ err_msg = ["{!r} failed with status {:d}".format(cmd, p.returncode)] - if out: - err_msg.append(out) - raise MesonException('\n'.join(err_msg)) -@@ -74,7 +75,7 @@ def gtkdoc_run_check(cmd, cwd, library_paths=None): - def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs, - main_file, module, - html_args, scan_args, fixxref_args, mkdb_args, -- gobject_typesfile, scanobjs_args, ld, cc, ldflags, cflags, -+ gobject_typesfile, scanobjs_args, gtkdoc_exe_wrapper, ld, cc, ldflags, cflags, - html_assets, content_files, ignore_headers, namespace, - expand_content_files, mode): - print("Building documentation for %s" % module) -@@ -135,6 +136,9 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs, - if gobject_typesfile: - scanobjs_cmd = ['gtkdoc-scangobj'] + scanobjs_args + ['--types=' + gobject_typesfile, - '--module=' + module, -+ '--run=' + gtkdoc_exe_wrapper, -+ '--cc=' + cc, -+ '--ld=' + ld, - '--cflags=' + cflags, - '--ldflags=' + ldflags, - '--cc=' + cc, -@@ -238,6 +242,7 @@ def run(args): - mkdbargs, - options.gobject_typesfile, - scanobjsargs, -+ options.gtkdoc_exe_wrapper, - options.ld, - options.cc, - options.ldflags, diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch new file mode 100644 index 00000000..f4456235 --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson/0001-mesonbuild-environment.py-check-environment-for-vari.patch @@ -0,0 +1,26 @@ +From a72dc2b1cddcf180ce782860896deae0b12d5000 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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 + +--- + 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/external/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch new file mode 100644 index 00000000..a25c3922 --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch @@ -0,0 +1,44 @@ +From 1d178fb2928d325e339b15972890ceced863d3ec Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 18 Apr 2019 17:36:11 +0200 +Subject: [PATCH] modules/python.py: do not substitute python's install prefix + with meson's + +Not sure why this is being done, but it +a) relies on Python's internal variable substitution which may break in the future +b) shouldn't be necessary as Python's prefix ought to be correct in the first place + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + 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 +--- a/mesonbuild/modules/python.py ++++ b/mesonbuild/modules/python.py +@@ -254,7 +254,7 @@ import sysconfig + import json + import sys + +-install_paths = sysconfig.get_paths(scheme='posix_prefix', vars={'base': '', 'platbase': '', 'installed_base': ''}) ++install_paths = sysconfig.get_paths(scheme='posix_prefix') + + def links_against_libpython(): + from distutils.core import Distribution, Extension +@@ -279,12 +279,11 @@ class PythonInstallation(ExternalProgramHolder): + ExternalProgramHolder.__init__(self, python) + self.interpreter = interpreter + self.subproject = self.interpreter.subproject +- prefix = self.interpreter.environment.coredata.get_builtin_option('prefix') + self.variables = info['variables'] + self.paths = info['paths'] + install_paths = info['install_paths'] +- self.platlib_install_path = os.path.join(prefix, install_paths['platlib'][1:]) +- self.purelib_install_path = os.path.join(prefix, install_paths['purelib'][1:]) ++ self.platlib_install_path = install_paths['platlib'] ++ self.purelib_install_path = install_paths['purelib'] + self.version = info['version'] + self.platform = info['platform'] + self.is_pypy = info['is_pypy'] diff --git a/external/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/external/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch index 60729854..eb0e90db 100644 --- a/external/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch +++ b/external/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch @@ -1,4 +1,4 @@ -From 45426f06689a520fc47f81ee29b49d509f11ba58 Mon Sep 17 00:00:00 2001 +From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 19 Nov 2018 14:24:26 +0100 Subject: [PATCH] python module: do not manipulate the environment when calling @@ -6,38 +6,38 @@ Subject: [PATCH] python module: do not manipulate the environment when calling Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + --- - mesonbuild/modules/python.py | 14 -------------- - 1 file changed, 14 deletions(-) + mesonbuild/modules/python.py | 12 ------------ + 1 file changed, 12 deletions(-) diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py -index 1195d8a..df81da4 100644 +index 07be318..b770603 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py -@@ -67,26 +67,12 @@ class PythonDependency(ExternalDependency): - if DependencyMethods.PKGCONFIG in self.methods and not python_holder.is_pypy: - pkg_version = self.variables.get('LDVERSION') or self.version - pkg_libdir = self.variables.get('LIBPC') -- old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR') -- old_pkg_path = os.environ.get('PKG_CONFIG_PATH') +@@ -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') + +- os.environ.pop('PKG_CONFIG_PATH', None) - -- os.environ.pop('PKG_CONFIG_PATH', None) +- if pkg_libdir: +- os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir - -- if pkg_libdir: -- os.environ['PKG_CONFIG_LIBDIR'] = pkg_libdir - - try: - self.pkgdep = PkgConfigDependency('python-{}'.format(pkg_version), environment, kwargs) - except Exception: - pass + try: + 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: -- os.environ['PKG_CONFIG_PATH'] = old_pkg_path +- if old_pkg_path is not None: +- os.environ['PKG_CONFIG_PATH'] = old_pkg_path - -- if old_pkg_libdir is not None: -- os.environ['PKG_CONFIG_LIBDIR'] = old_pkg_libdir -- else: -- os.environ.pop('PKG_CONFIG_LIBDIR', None) +- if old_pkg_libdir is not None: +- os.environ['PKG_CONFIG_LIBDIR'] = old_pkg_libdir +- else: +- os.environ.pop('PKG_CONFIG_LIBDIR', None) + else: + mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir)) - if self.pkgdep and self.pkgdep.found(): - self.compile_args = self.pkgdep.get_compile_args() diff --git a/external/poky/meta/recipes-devtools/meson/meson/0002-Make-CPU-family-warnings-fatal.patch b/external/poky/meta/recipes-devtools/meson/meson/0002-Make-CPU-family-warnings-fatal.patch deleted file mode 100644 index ca56a6a8..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson/0002-Make-CPU-family-warnings-fatal.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 2e8553fc01e62ebc4faa240bf20984a8a0ac7387 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Tue, 3 Jul 2018 13:59:09 +0100 -Subject: [PATCH] Make CPU family warnings fatal - -Upstream-Status: Inappropriate [OE specific] -Signed-off-by: Ross Burton - ---- - mesonbuild/environment.py | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index d29a77f..267acf9 100644 ---- a/mesonbuild/environment.py -+++ b/mesonbuild/environment.py -@@ -239,9 +239,7 @@ def detect_cpu_family(compilers): - return 'x86_64' - - 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' -- '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) - - return trial - -@@ -1014,7 +1012,7 @@ class CrossBuildInfo: - raise EnvironmentException('Malformed value in cross file variable %s.' % entry) - - if entry == 'cpu_family' and res not in known_cpu_families: -- mlog.warning('Unknown CPU family %s, please report this at https://github.com/mesonbuild/meson/issues/new' % value) -+ raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % value) - - if self.ok_type(res): - self.config[s][entry] = res diff --git a/external/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/external/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch new file mode 100644 index 00000000..ce186607 --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch @@ -0,0 +1,26 @@ +From 9c221c74bd306dfa6fec22c8f156eb9d4e4f7fcb Mon Sep 17 00:00:00 2001 +From: Peter Kjellerstedt +Date: Thu, 26 Jul 2018 16:32:49 +0200 +Subject: [PATCH] Support building allarch recipes again + +This registers "allarch" as a known CPU family. + +Upstream-Status: Inappropriate [OE specific] +Signed-off-by: Peter Kjellerstedt + +--- + mesonbuild/envconfig.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py +index 24578ea..216e71f 100644 +--- a/mesonbuild/envconfig.py ++++ b/mesonbuild/envconfig.py +@@ -36,6 +36,7 @@ _T = typing.TypeVar('_T') + + + known_cpu_families = ( ++ 'allarch', + 'aarch64', + 'alpha', + 'arc', diff --git a/external/poky/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch b/external/poky/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch index f32267d0..61b26bb8 100644 --- a/external/poky/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch +++ b/external/poky/meta/recipes-devtools/meson/meson/0002-gobject-introspection-determine-g-ir-scanner-and-g-i.patch @@ -1,4 +1,4 @@ -From 0b860cb8a22ae876b6088939dbabca216bc29431 Mon Sep 17 00:00:00 2001 +From 9ccaed380780178c4dab3a681f652ac7cd27452d Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 4 Aug 2017 16:18:47 +0300 Subject: [PATCH] gobject-introspection: determine g-ir-scanner and @@ -12,28 +12,29 @@ Upstream-Status: Pending Signed-off-by: Alexander Kanavin --- - mesonbuild/modules/gnome.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + 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 b29bab9..dc4c401 100644 +index 7c5a363..0002498 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -393,8 +393,6 @@ class GnomeModule(ExtensionModule): - raise MesonException('Gir takes one argument') +@@ -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') - girtarget = args[0] - while hasattr(girtarget, 'held_object'): - girtarget = girtarget.held_object -@@ -405,6 +403,8 @@ class GnomeModule(ExtensionModule): - self.gir_dep = PkgConfigDependency('gobject-introspection-1.0', - state.environment, - {'native': True}) -+ 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', {}) - pkgargs = self.gir_dep.get_compile_args() - except Exception: - raise MesonException('gobject-introspection dependency was not found, gir cannot be generated.') +- + 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/external/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/external/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch index da477454..dc822fb1 100644 --- a/external/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch +++ b/external/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch @@ -1,4 +1,4 @@ -From e762d85c823adfefc27ba6128c7b997aa50166ce Mon Sep 17 00:00:00 2001 +From e76726321067748362b39937bd1e663a1a948ad5 Mon Sep 17 00:00:00 2001 From: Ricardo Ribalda Delgado Date: Wed, 15 Nov 2017 15:05:01 +0100 Subject: [PATCH] native_bindir @@ -22,19 +22,19 @@ Signed-off-by: Ricardo Ribalda Delgado 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py -index 6d3678f..90fdb80 100644 +index 40e304c..4b687df 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py -@@ -146,7 +146,7 @@ class Dependency: - def need_threads(self): - return False +@@ -184,7 +184,7 @@ class Dependency: + def get_exe_args(self, compiler): + return [] - def get_pkgconfig_variable(self, variable_name, kwargs): + def get_pkgconfig_variable(self, variable_name, kwargs, use_native=False): raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name)) def get_configtool_variable(self, variable_name): -@@ -183,7 +183,7 @@ class InternalDependency(Dependency): +@@ -247,7 +247,7 @@ class InternalDependency(Dependency): self.sources = sources self.ext_deps = ext_deps @@ -43,7 +43,7 @@ index 6d3678f..90fdb80 100644 raise DependencyException('Method "get_pkgconfig_variable()" is ' 'invalid for an internal dependency') -@@ -523,15 +523,18 @@ class PkgConfigDependency(ExternalDependency): +@@ -673,15 +673,18 @@ class PkgConfigDependency(ExternalDependency): return s.format(self.__class__.__name__, self.name, self.is_found, self.version_reqs) @@ -51,21 +51,21 @@ index 6d3678f..90fdb80 100644 - cmd = self.pkgbin.get_command() + args + def _call_pkgbin_real(self, args, env, use_native=False): + if use_native: -+ cmd = self.pkgbin.get_command() + "-native" + args ++ 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: - fenv = env - env = os.environ -@@ -540,7 +543,7 @@ class PkgConfigDependency(ExternalDependency): +@@ -701,7 +704,7 @@ class PkgConfigDependency(ExternalDependency): targs = tuple(args) cache = PkgConfigDependency.pkgbin_cache if (self.pkgbin, targs, fenv) not in cache: @@ -73,8 +73,8 @@ index 6d3678f..90fdb80 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): -@@ -718,7 +721,7 @@ class PkgConfigDependency(ExternalDependency): + def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]: +@@ -907,7 +910,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 6d3678f..90fdb80 100644 options = ['--variable=' + variable_name, self.name] if 'define_variable' in kwargs: -@@ -731,7 +734,7 @@ class PkgConfigDependency(ExternalDependency): +@@ -920,7 +923,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 197d22c..c683d21 100644 +index da411ef..856506a 100644 --- a/mesonbuild/dependencies/ui.py +++ b/mesonbuild/dependencies/ui.py -@@ -285,7 +285,7 @@ class QtBaseDependency(ExternalDependency): +@@ -330,7 +330,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 197d22c..c683d21 100644 if prefix: self.bindir = os.path.join(prefix, 'bin') -@@ -427,7 +427,7 @@ class Qt4Dependency(QtBaseDependency): +@@ -508,7 +508,7 @@ class Qt4Dependency(QtBaseDependency): applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease'] for application in applications: try: @@ -114,7 +114,7 @@ index 197d22c..c683d21 100644 except MesonException: pass -@@ -437,7 +437,7 @@ class Qt5Dependency(QtBaseDependency): +@@ -518,7 +518,7 @@ class Qt5Dependency(QtBaseDependency): QtBaseDependency.__init__(self, 'qt5', env, kwargs) def get_pkgconfig_host_bins(self, core): diff --git a/external/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch b/external/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch new file mode 100644 index 00000000..772395e8 --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch @@ -0,0 +1,23 @@ +meson.build files that use cc.run() in native builds can silently fallback to +meson.get_cross_property() in cross builds without an exe-wrapper, but there's +no way to know that this is happening. + +As the defaults may be pessimistic (for example, disabling the support for a +feature that should be enabled) emit a warning when the default is used, so that +the recipe can explicitly set the cross property as relevant. + +Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071] +Signed-off-by: Ross Burton + +diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py +index 3c3cfae0..10e741ae 100644 +--- a/mesonbuild/interpreter.py ++++ b/mesonbuild/interpreter.py +@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject): + return props[propname] + except Exception: + if len(args) == 2: ++ mlog.warning('Cross property %s is using default value %s' % (propname, args[1])) + return args[1] + raise InterpreterException('Unknown cross property: %s.' % propname) + diff --git a/external/poky/meta/recipes-devtools/meson/meson/gi-flags.patch b/external/poky/meta/recipes-devtools/meson/meson/gi-flags.patch deleted file mode 100644 index 9a4c2961..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson/gi-flags.patch +++ /dev/null @@ -1,35 +0,0 @@ -Pass the correct cflags/ldflags to the gobject-introspection tools. - -Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/4261] -Signed-off-by: Ross Burton - -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index cb69641e..bb4449a0 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -579,7 +579,10 @@ class GnomeModule(ExtensionModule): - external_ldflags += list(dep_external_ldflags) - scan_command += ['--cflags-begin'] - scan_command += cflags -- scan_command += state.environment.coredata.get_external_args(lang) -+ if state.environment.is_cross_build(): -+ scan_command += state.environment.cross_info.config["properties"].get(lang + '_args', "") -+ else: -+ scan_command += state.environment.coredata.get_external_args(lang) - scan_command += ['--cflags-end'] - # need to put our output directory first as we need to use the - # generated libraries instead of any possibly installed system/prefix -@@ -614,7 +614,12 @@ class GnomeModule(ExtensionModule): - scan_command.append('-L' + d) - scan_command += ['--library', libname] - -- for link_arg in state.environment.coredata.get_external_link_args(lang): -+ if state.environment.is_cross_build(): -+ link_args = state.environment.cross_info.config["properties"].get(lang + '_link_args', "") -+ else: -+ link_args = state.environment.coredata.get_external_link_args(lang) -+ -+ for link_arg in link_args: - if link_arg.startswith('-L'): - scan_command.append(link_arg) - scan_command += list(external_ldflags) diff --git a/external/poky/meta/recipes-devtools/meson/meson/gtkdoc-flags.patch b/external/poky/meta/recipes-devtools/meson/meson/gtkdoc-flags.patch deleted file mode 100644 index ecf3489b..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson/gtkdoc-flags.patch +++ /dev/null @@ -1,44 +0,0 @@ -Ensure that in a cross compile only the target flags are passed to gtk-doc, and -not the native flags. - -Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/4261] -Signed-off-by: Ross Burton - -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 4af33304..8751f53c 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -851,17 +851,30 @@ This will become a hard error in the future.''') - if not isinstance(incd.held_object, (str, build.IncludeDirs)): - raise MesonException( - 'Gir include dirs should be include_directories().') -+ - cflags.update(get_include_args(inc_dirs)) -- cflags.update(state.environment.coredata.get_external_args('c')) -+ if state.environment.is_cross_build(): -+ cflags.update(state.environment.cross_info.config["properties"].get('c_args', "")) -+ else: -+ cflags.update(state.environment.coredata.get_external_args('c')) -+ - ldflags = OrderedSet() - ldflags.update(internal_ldflags) -- ldflags.update(state.environment.coredata.get_external_link_args('c')) -+ if state.environment.is_cross_build(): -+ ldflags.update(state.environment.cross_info.config["properties"].get('c_link_args', "")) -+ else: -+ ldflags.update(state.environment.coredata.get_external_link_args('c')) - ldflags.update(external_ldflags) -+ - if cflags: - args += ['--cflags=%s' % ' '.join(cflags)] - if ldflags: - args += ['--ldflags=%s' % ' '.join(ldflags)] -- compiler = state.environment.coredata.compilers.get('c') -+ -+ if state.environment.is_cross_build(): -+ compiler = state.environment.coredata.cross_compilers.get('c') -+ else: -+ compiler = state.environment.coredata.compilers.get('c') - if compiler: - args += ['--cc=%s' % ' '.join(compiler.get_exelist())] - args += ['--ld=%s' % ' '.join(compiler.get_linker_exelist())] diff --git a/external/poky/meta/recipes-devtools/meson/meson/meson-setup.py b/external/poky/meta/recipes-devtools/meson/meson/meson-setup.py index a9749eae..808e2a06 100755 --- a/external/poky/meta/recipes-devtools/meson/meson/meson-setup.py +++ b/external/poky/meta/recipes-devtools/meson/meson/meson-setup.py @@ -1,62 +1,31 @@ #!/usr/bin/env python3 import os +import string import sys -def bail(msg): - print(msg, file=sys.stderr) - sys.exit(1) - -_MARKER = '@@' -def transform_line(line): - # Substitute any special markers of this form: - # @@ENV@@ - # with the value of ENV, split into meson array syntax. - start = line.find(_MARKER) - if start == -1: - return line - - end = line.rfind(_MARKER) - if end == start: - return line - - # Lookup value of the env var. - var = line[start+len(_MARKER):end] - try: - val = os.environ[var] - except KeyError: - bail('cannot generate meson.cross; env var %s not set' % var) +class Template(string.Template): + delimiter = "@" - # Transform into meson array. - val = ["'%s'" % x for x in val.split()] - val = ', '.join(val) - val = '[%s]' % val +class Environ(): + def __getitem__(self, name): + val = os.environ[name] + val = ["'%s'" % x for x in val.split()] + val = ', '.join(val) + val = '[%s]' % val + return val - before = line[:start] - after = line[end+len(_MARKER):] - - return '%s%s%s' % (before, val, after) - -# Make sure this is really an SDK extraction environment. try: sysroot = os.environ['OECORE_NATIVE_SYSROOT'] except KeyError: - bail('OECORE_NATIVE_SYSROOT env var must be set') - -cross_file = os.path.join(sysroot, 'usr/share/meson/meson.cross') -tmp_cross_file = '%s.tmp' % cross_file + print("Not in environment setup, bailing") + sys.exit(1) -# Read through and transform the current meson.cross. -lines = [] -with open(cross_file, 'r') as f: - for line in f: - lines.append(transform_line(line)) +template_file = os.path.join(sysroot, 'usr/share/meson/meson.cross.template') +cross_file = os.path.join(sysroot, 'usr/share/meson/%smeson.cross' % os.environ["TARGET_PREFIX"]) -# Write the transformed result to a tmp file and atomically rename it. In case -# we crash during the file write, we don't want an invalid meson.cross file. -with open(tmp_cross_file, 'w') as f: - for line in lines: - f.write(line) - f.flush() - os.fdatasync(f.fileno()) -os.rename(tmp_cross_file, cross_file) +with open(template_file) as in_file: + template = in_file.read() + output = Template(template).substitute(Environ()) + with open(cross_file, "w") as out_file: + out_file.write(output) diff --git a/external/poky/meta/recipes-devtools/meson/meson/meson-wrapper b/external/poky/meta/recipes-devtools/meson/meson/meson-wrapper index b2e00da5..d4ffe60f 100755 --- a/external/poky/meta/recipes-devtools/meson/meson/meson-wrapper +++ b/external/poky/meta/recipes-devtools/meson/meson/meson-wrapper @@ -10,5 +10,5 @@ fi unset CC CXX CPP LD AR NM STRIP exec "$OECORE_NATIVE_SYSROOT/usr/bin/meson.real" \ - --cross-file "$OECORE_NATIVE_SYSROOT/usr/share/meson/meson.cross" \ + --cross-file "${OECORE_NATIVE_SYSROOT}/usr/share/meson/${TARGET_PREFIX}meson.cross" \ "$@" diff --git a/external/poky/meta/recipes-devtools/meson/meson_0.47.2.bb b/external/poky/meta/recipes-devtools/meson/meson_0.47.2.bb deleted file mode 100644 index 897fa148..00000000 --- a/external/poky/meta/recipes-devtools/meson/meson_0.47.2.bb +++ /dev/null @@ -1,3 +0,0 @@ -include meson.inc - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/meson/meson_0.53.2.bb b/external/poky/meta/recipes-devtools/meson/meson_0.53.2.bb new file mode 100644 index 00000000..de9b905c --- /dev/null +++ b/external/poky/meta/recipes-devtools/meson/meson_0.53.2.bb @@ -0,0 +1,4 @@ +include meson.inc + +BBCLASSEXTEND = "native" + diff --git a/external/poky/meta/recipes-devtools/meson/nativesdk-meson_0.47.2.bb b/external/poky/meta/recipes-devtools/meson/nativesdk-meson_0.47.2.bb deleted file mode 100644 index 53503aa9..00000000 --- a/external/poky/meta/recipes-devtools/meson/nativesdk-meson_0.47.2.bb +++ /dev/null @@ -1,74 +0,0 @@ -include meson.inc - -inherit nativesdk - -SRC_URI += "file://meson-setup.py \ - file://meson-wrapper" - -def meson_array(var, d): - return "', '".join(d.getVar(var).split()).join(("'", "'")) - -# both are required but not used by meson -MESON_SDK_ENDIAN = "bogus-endian" -MESON_TARGET_ENDIAN = "bogus-endian" - -MESON_TOOLCHAIN_ARGS = "${BUILDSDK_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_LDFLAGS}" - -# This logic is similar but not identical to that in meson.bbclass, since it's -# generating for an SDK rather than a cross-compile. Important differences are: -# - We can't set vars like CC, CXX, etc. yet because they will be filled in with -# real paths by meson-setup.sh when the SDK is extracted. -# - Some overrides aren't needed, since the SDK injects paths that take care of -# them. -addtask write_config before do_install -do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" -do_write_config() { - # This needs to be Py to split the args into single-element lists - cat >${WORKDIR}/meson.cross <${D}${datadir}/meson/meson.cross.template < -Date: Thu, 29 Mar 2018 01:04:57 -0700 -Subject: [PATCH] lsmmc: replace strncpy with memmove on overlapping memory - copy - -here source and destination addresses are overlapping so using memmove is -going to be more efficient. - -Additionally, the bounded size for copy is overflowing for first copy - -In function 'strncpy', - inlined from 'read_file' at lsmmc.c:356:3: -/mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/mmc-utils/0.1-r0/recipe-sysroot/usr/include/bits/string_fortified.h:106:10: error: '__builtin_strncpy' accessing 4096 bytes at offsets 0 and 1 overlaps 4095 bytes at offset 1 [-Werror=restrict] - return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted [https://patchwork.kernel.org/patch/10314723/] - lsmmc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lsmmc.c b/lsmmc.c -index c4faa00..bcb854d 100644 ---- a/lsmmc.c -+++ b/lsmmc.c -@@ -353,7 +353,7 @@ char *read_file(char *name) - line[strlen(line) - 1] = '\0'; - - while (isspace(line[0])) -- strncpy(&line[0], &line[1], sizeof(line)); -+ memmove(&line[0], &line[1], sizeof(line)-1); - - return strdup(line); - } diff --git a/external/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch b/external/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch new file mode 100644 index 00000000..12707357 --- /dev/null +++ b/external/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch @@ -0,0 +1,32 @@ +From 04fbe6ddb5f1e02efbcae3cdf5beb16757a98948 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 10 May 2019 12:58:01 -0700 +Subject: [PATCH] mmc_cmd.c: Use extra braces when initializing subobjects + +clang warns with -Werror,-Wmissing-braces, as following error +| mmc_cmds.c:1886:36: error: suggest braces around initialization of subobject [-Werror,-W +missing-braces] +| struct rpmb_frame frame_status = {0}; +| ^ +| {} + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + mmc_cmds.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mmc_cmds.c b/mmc_cmds.c +index 19a9da1..838e8c3 100644 +--- a/mmc_cmds.c ++++ b/mmc_cmds.c +@@ -1883,7 +1883,7 @@ static int do_rpmb_op(int fd, + u_int16_t rpmb_type; + struct mmc_ioc_multi_cmd *mioc; + struct mmc_ioc_cmd *ioc; +- struct rpmb_frame frame_status = {0}; ++ struct rpmb_frame frame_status = {{0}}; + + if (!frame_in || !frame_out || !out_cnt) + return -EINVAL; diff --git a/external/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/external/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb index 37a47552..5fd1c5c0 100644 --- a/external/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb +++ b/external/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb @@ -4,12 +4,12 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d" SRCBRANCH ?= "master" -SRCREV = "b4fe0c8c0e57a74c01755fa9362703b60d7ee49d" +SRCREV = "73d6c59af8d1bcedf5de4aa1f5d5b7f765f545f5" -PV = "0.1" +PV = "0.1+git${SRCPV}" SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git;branch=${SRCBRANCH} \ - file://0001-lsmmc-replace-strncpy-with-memmove-on-overlapping-me.patch \ + file://0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch \ " UPSTREAM_CHECK_COMMITS = "1" diff --git a/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch b/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch deleted file mode 100644 index 4ece56b9..00000000 --- a/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 0f833ac73ad631248826386e2918d8571ecf0347 Mon Sep 17 00:00:00 2001 -From: David Oberhollenzer -Date: Sat, 9 Jun 2018 16:45:22 +0200 -Subject: [PATCH] Revert "Return correct error number in ubi_get_vol_info1" - -This reverts commit dede98ffb706676309488d7cc660f569548d5930. - -The original commit tried to fix a descrepancy between the implementation -and the documentation by making the implementation comply. - -When making the change, it was overlooked, that ubinfo and ubirename were -written against the implementation instead of the behaviour specified by -the documentation. So were further internal functions like -ubi_get_vol_info1_nm which further breaks ubirmvol. - -A report with an outline of a resulting problem can be read on -the mailing list: - -http://lists.infradead.org/pipermail/linux-mtd/2018-June/081562.html - -From the report: - -steps to reproduce: have mtd-utils 2.0.1 or 2.0.2 - -0. make a bunch of ubi volumes in sequential order - -ubimkvol /dev/ubi0 -s 64KiB -N test1 -ubimkvol /dev/ubi0 -s 64KiB -N test2 -ubimkvol /dev/ubi0 -s 64KiB -N test3 -ubimkvol /dev/ubi0 -s 64KiB -N test4 -.. - -1. delete the test1 volume, making a hole in the volume table - -ubirmvol /dev/ubi0 -N test1 - -2. try an affected tool (i.e. "ubirmvol /dev/ubi0 -N test4" ) - - |root at mr24:/# ubirmvol /dev/ubi0 -N test4 - |ubirmvol: error!: cannot find UBI volume "test4" - | error 19 (No such device) - -or "ubinfo -a" - - | root at mr24:/# ubinfo -a - | UBI version: 1 - | Count of UBI devices: 1 - | UBI control device major/minor: 10:59 - | Present UBI devices: ubi0 - | - | ubi0 - | Volumes count: 11 - | Logical eraseblock size: 15872 bytes, 15.5 KiB - | Total amount of logical eraseblocks: 1952 (30982144 bytes, 29.5 MiB) - | Amount of available logical eraseblocks: 75 (1190400 bytes, 1.1 MiB) - | Maximum count of volumes 92 - | Count of bad physical eraseblocks: 0 - | Count of reserved physical eraseblocks: 40 - | Current maximum erase counter value: 984 - | Minimum input/output unit size: 512 bytes - | Character device major/minor: 251:0 - | ubinfo: error!: libubi failed to probe volume 5 on ubi0 - | error 19 (No such device) - | Present volumes: 0, 1, 2, 3, 4root at mr24:/# - -Reported-by: Christian Lamparter -Signed-off-by: David Oberhollenzer -Upstream-Status: Accepted [http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347] ---- - lib/libubi.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/lib/libubi.c b/lib/libubi.c -index b50e68a..978b433 100644 ---- a/lib/libubi.c -+++ b/lib/libubi.c -@@ -1240,11 +1240,8 @@ int ubi_get_vol_info1(libubi_t desc, int dev_num, int vol_id, - info->dev_num = dev_num; - info->vol_id = vol_id; - -- if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) { -- if (errno == ENOENT) -- errno = ENODEV; -+ if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) - return -1; -- } - - ret = vol_read_data(lib->vol_type, dev_num, vol_id, buf, 50); - if (ret < 0) --- -2.14.4 - diff --git a/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch b/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch new file mode 100644 index 00000000..d43f7e1a --- /dev/null +++ b/external/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch @@ -0,0 +1,62 @@ +From 4d19bffcfd66e25d3ee74536ae2d2da7ad52e8e2 Mon Sep 17 00:00:00 2001 +From: Barry Grussling +Date: Sun, 12 Jan 2020 12:33:32 -0800 +Subject: [PATCH] mtd-utils: Fix return value of ubiformat +Organization: O.S. Systems Software LTDA. + +This changeset fixes a feature regression in ubiformat. Older versions of +ubiformat, when invoked with a flash-image, would return 0 in the case no error +was encountered. Upon upgrading to latest, it was discovered that ubiformat +returned 255 even without encountering an error condition. + +This changeset corrects the above issue and causes ubiformat, when given an +image file, to return 0 when no errors are detected. + +Tested by running through my loading scripts and verifying ubiformat returned +0. + +Upstream-Status: Backport [2.1.2] + +Signed-off-by: Barry Grussling +Signed-off-by: David Oberhollenzer +Signed-off-by: Otavio Salvador +--- + ubi-utils/ubiformat.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c +index a90627c..5377b12 100644 +--- a/ubi-utils/ubiformat.c ++++ b/ubi-utils/ubiformat.c +@@ -550,6 +550,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, + struct ubi_vtbl_record *vtbl; + int eb1 = -1, eb2 = -1; + long long ec1 = -1, ec2 = -1; ++ int ret = -1; + + write_size = UBI_EC_HDR_SIZE + mtd->subpage_size - 1; + write_size /= mtd->subpage_size; +@@ -643,8 +644,10 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, + if (!args.quiet && !args.verbose) + printf("\n"); + +- if (novtbl) ++ if (novtbl) { ++ ret = 0; + goto out_free; ++ } + + if (eb1 == -1 || eb2 == -1) { + errmsg("no eraseblocks for volume table"); +@@ -669,7 +672,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, + + out_free: + free(hdr); +- return -1; ++ return ret; + } + + int main(int argc, char * const argv[]) +-- +2.27.0 + diff --git a/external/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/external/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb index f53c6c11..d1658a73 100644 --- a/external/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb +++ b/external/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb @@ -7,15 +7,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ inherit autotools pkgconfig update-alternatives -DEPENDS = "zlib lzo e2fsprogs util-linux" +DEPENDS = "zlib e2fsprogs util-linux" RDEPENDS_mtd-utils-tests += "bash" -PV = "2.0.2+${SRCPV}" +PV = "2.1.1" -SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" +SRCREV = "4443221ce9b88440cd9f5bb78e6fe95621d36c8a" SRC_URI = "git://git.infradead.org/mtd-utils.git \ file://add-exclusion-to-mkfs-jffs2-git-2.patch \ - file://0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch \ + file://0001-mtd-utils-Fix-return-value-of-ubiformat.patch \ " S = "${WORKDIR}/git/" @@ -25,8 +25,13 @@ EXTRA_OECONF += "--enable-install-tests" # xattr support creates an additional compile-time dependency on acl because # the sys/acl.h header is needed. libacl is not needed and thus enabling xattr # regardless whether acl is enabled or disabled in the distro should be okay. -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}" -PACKAGECONFIG[xattr] = ",,acl," +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo jffs ubifs" +PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo" +PACKAGECONFIG[xattr] = "--with-xattr,--without-xattr,acl" +PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,openssl" +PACKAGECONFIG[jffs] = "--with-jffs,--without-jffs" +PACKAGECONFIG[ubifs] = "--with-ubifs,--without-ubifs" +PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd" CPPFLAGS_append_riscv64 = " -pthread -D_REENTRANT" @@ -58,7 +63,9 @@ do_install () { oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} } -PACKAGES =+ "mtd-utils-jffs2 mtd-utils-ubifs mtd-utils-misc mtd-utils-tests" +PACKAGES =+ "mtd-utils-misc mtd-utils-tests" +PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "jffs", "mtd-utils-jffs2", "", d)}" +PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "ubifs", "mtd-utils-ubifs", "", d)}" FILES_mtd-utils-jffs2 = "${sbindir}/mkfs.jffs2 ${sbindir}/jffs2dump ${sbindir}/jffs2reader ${sbindir}/sumtool" FILES_mtd-utils-ubifs = "${sbindir}/mkfs.ubifs ${sbindir}/ubi*" diff --git a/external/poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch b/external/poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch deleted file mode 100644 index 1f8f8351..00000000 --- a/external/poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5cc8d1f96ab6d3459e13631d8356f87381562352 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Thu, 2 Jun 2016 09:49:44 +0300 -Subject: [PATCH] Continue even if fs size is not divisible by - sectors-per-track - -Filesystem with a size that is not divisible by sectors-per-track is -not broken or invalid: it might be unoptimized on media where -heads and cylinders actually matter but that should be it. - -Preserve the warning but make mtools continue even if fs size is not -divisible by sectors-per-track. - -Upstream-Status: Submitted [info-mtools@gnu.org] -Signed-off-by: Jussi Kukkonen ---- - init.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/init.c b/init.c -index c9152e0..4e16a01 100644 ---- a/init.c -+++ b/init.c -@@ -338,7 +338,6 @@ Stream_t *fs_init(char drive, int mode, int *isRop) - fprintf(stderr, - "Add mtools_skip_check=1 to your .mtoolsrc file " - "to skip this test\n"); -- exit(1); - } - - /* full cylinder buffering */ --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/mtools/mtools/0001-remove-LOCK_NB-to-use-blocking-request.patch b/external/poky/meta/recipes-devtools/mtools/mtools/0001-remove-LOCK_NB-to-use-blocking-request.patch deleted file mode 100644 index 47385a58..00000000 --- a/external/poky/meta/recipes-devtools/mtools/mtools/0001-remove-LOCK_NB-to-use-blocking-request.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 5bdbfe0a63fed48104b17412854b26ee2275869a Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 22 Aug 2018 16:54:39 +0800 -Subject: [PATCH] remove LOCK_NB to use blocking request - -While invoking mtools frequently, the unblocking request -caused race issue. Here is an example of syslinux -[snip] -dd if=/dev/zero of=floppy.img bs=1024 count=144 -losetup /dev/loop1 floppy.img -mkdosfs /dev/loop1 -syslinux -i /dev/loop1 -|plain floppy: device "/proc/6351/fd/3" busy (Resource temporarily unavailable): -|Cannot initialize 'S:' -|Bad target s:/ldlinux.sys -[snip] - -The idea is from: -https://bugzilla.redhat.com/show_bug.cgi?id=1235016 -https://groups.google.com/a/chromium.org/forum/#!msg/chromium-os-dev/bRPUCFHoBTQ/ZjB8kjjx1vUJ - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia ---- - lockdev.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lockdev.h b/lockdev.h -index 4467bc2..5a135ad 100644 ---- a/lockdev.h -+++ b/lockdev.h -@@ -43,7 +43,7 @@ int lock_dev(int fd, int mode, struct device *dev) - return 0; - - #if (defined(HAVE_FLOCK) && defined (LOCK_EX) && defined(LOCK_NB)) -- if (flock(fd, (mode ? LOCK_EX : LOCK_SH)|LOCK_NB) < 0) -+ if (flock(fd, (mode ? LOCK_EX : LOCK_SH)) < 0) - #else /* FLOCK */ - - #if (defined(HAVE_LOCKF) && defined(F_TLOCK)) --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch b/external/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch index 01455f10..464ccc4c 100644 --- a/external/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch +++ b/external/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch @@ -1,12 +1,21 @@ -Disabled reading host configs. +From 5c24356762bc4274d3ca4930b0bc7754f4ffd19b Mon Sep 17 00:00:00 2001 +From: Ed Bartosh +Date: Tue, 13 Jun 2017 14:55:52 +0300 +Subject: [PATCH] Disabled reading host configs. Upstream-Status: Inappropriate [native] Signed-off-by: Ed Bartosh ---- mtools-4.0.18/config.c.orig 2017-06-13 12:27:38.644000000 +0300 -+++ mtools-4.0.18/config.c 2017-06-13 12:28:47.576000000 +0300 -@@ -701,14 +701,6 @@ +--- + config.c | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/config.c b/config.c +index f086883..1c3f9bd 100644 +--- a/config.c ++++ b/config.c +@@ -701,14 +701,6 @@ void read_config(void) memcpy(devices, const_devices, nr_const_devices*sizeof(struct device)); diff --git a/external/poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb b/external/poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb deleted file mode 100644 index 3c31aca3..00000000 --- a/external/poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb +++ /dev/null @@ -1,53 +0,0 @@ -SUMMARY = "Utilities to access MS-DOS disks without mounting them" -DESCRIPTION = "Mtools is a collection of utilities to access MS-DOS disks from GNU and Unix without mounting them." -HOMEPAGE = "http://www.gnu.org/software/mtools/" -SECTION = "optional" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS += "virtual/libiconv" - -RDEPENDS_${PN}_libc-glibc = "glibc-gconv-ibm850" -RRECOMMENDS_${PN}_libc-glibc = "\ - glibc-gconv-ibm437 \ - glibc-gconv-ibm737 \ - glibc-gconv-ibm775 \ - glibc-gconv-ibm851 \ - glibc-gconv-ibm852 \ - glibc-gconv-ibm855 \ - glibc-gconv-ibm857 \ - glibc-gconv-ibm860 \ - glibc-gconv-ibm861 \ - glibc-gconv-ibm862 \ - glibc-gconv-ibm863 \ - glibc-gconv-ibm865 \ - glibc-gconv-ibm866 \ - glibc-gconv-ibm869 \ - " -SRC_URI[md5sum] = "a23646617546bf6ad56f061d8b283c85" -SRC_URI[sha256sum] = "59e9cf80885399c4f229e5d87e49c0c2bfeec044e1386d59fcd0b0aead6b2f85" - -SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \ - file://mtools-makeinfo.patch \ - file://no-x11.gplv3.patch \ - file://0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch \ - file://0001-remove-LOCK_NB-to-use-blocking-request.patch \ - file://clang_UNUSED.patch \ - " - -SRC_URI_append_class-native = " file://disable-hardcoded-configs.patch" - -inherit autotools texinfo - -EXTRA_OECONF = "--without-x" - -BBCLASSEXTEND = "native nativesdk" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libbsd] = "ac_cv_lib_bsd_main=yes,ac_cv_lib_bsd_main=no,libbsd" - -do_install_prepend () { - # Create bindir to fix parallel installation issues - mkdir -p ${D}/${bindir} - mkdir -p ${D}/${datadir} -} diff --git a/external/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb b/external/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb new file mode 100644 index 00000000..2093d80d --- /dev/null +++ b/external/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb @@ -0,0 +1,51 @@ +SUMMARY = "Utilities to access MS-DOS disks without mounting them" +DESCRIPTION = "Mtools is a collection of utilities to access MS-DOS disks from GNU and Unix without mounting them." +HOMEPAGE = "http://www.gnu.org/software/mtools/" +SECTION = "optional" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS += "virtual/libiconv" + +RDEPENDS_${PN}_libc-glibc = "glibc-gconv-ibm850" +RRECOMMENDS_${PN}_libc-glibc = "\ + glibc-gconv-ibm437 \ + glibc-gconv-ibm737 \ + glibc-gconv-ibm775 \ + glibc-gconv-ibm851 \ + glibc-gconv-ibm852 \ + glibc-gconv-ibm855 \ + glibc-gconv-ibm857 \ + glibc-gconv-ibm860 \ + glibc-gconv-ibm861 \ + glibc-gconv-ibm862 \ + glibc-gconv-ibm863 \ + glibc-gconv-ibm865 \ + glibc-gconv-ibm866 \ + glibc-gconv-ibm869 \ + " +SRC_URI[md5sum] = "1d17b58c53a46b29c7f521d4a55ccef1" +SRC_URI[sha256sum] = "f188db26751aeb5692a79b2380b440ecc05fd1848a52f869d7ca1193f2ef8ee3" + +SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \ + file://mtools-makeinfo.patch \ + file://no-x11.gplv3.patch \ + file://clang_UNUSED.patch \ + " + +SRC_URI_append_class-native = " file://disable-hardcoded-configs.patch" + +inherit autotools texinfo features_check + +EXTRA_OECONF = "--without-x" + +BBCLASSEXTEND = "native nativesdk" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libbsd] = "ac_cv_lib_bsd_main=yes,ac_cv_lib_bsd_main=no,libbsd" + +do_install_prepend () { + # Create bindir to fix parallel installation issues + mkdir -p ${D}/${bindir} + mkdir -p ${D}/${datadir} +} diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch deleted file mode 100644 index a56a08b5..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch +++ /dev/null @@ -1,65 +0,0 @@ -From c5785fdf1d660eaefb9711284414262d0cfe8843 Mon Sep 17 00:00:00 2001 -From: Adam Majer -Date: Fri, 17 Aug 2018 14:48:17 +0800 -Subject: [PATCH] Verify that we are not reading past end of a buffer - -Simple reproducer is just, - - ret &d:ep - -which triggers a buffer overread due to parsing of an invalid -segment override. - -Signed-off-by: Adam Majer - -Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392447] -CVE: CVE-2018-8883 -Signed-off-by: Hongxu Jia ---- - include/opflags.h | 2 +- - include/tables.h | 1 + - x86/regs.pl | 3 ++- - 3 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/include/opflags.h b/include/opflags.h -index ef2838c1..8d4b6b1e 100644 ---- a/include/opflags.h -+++ b/include/opflags.h -@@ -166,7 +166,7 @@ - #define REG_CLASS_BND GEN_REG_CLASS(9) - - #define is_class(class, op) (!((opflags_t)(class) & ~(opflags_t)(op))) --#define is_reg_class(class, reg) is_class((class), nasm_reg_flags[(reg)]) -+#define is_reg_class(class, reg) is_class((class), ((reg) < nasm_reg_flags_size ? nasm_reg_flags[(reg)] : 0)) - - #define IS_SREG(reg) is_reg_class(REG_SREG, (reg)) - #define IS_FSGS(reg) is_reg_class(REG_FSGS, (reg)) -diff --git a/include/tables.h b/include/tables.h -index 24a665e2..458752ce 100644 ---- a/include/tables.h -+++ b/include/tables.h -@@ -64,6 +64,7 @@ extern const char * const nasm_reg_names[]; - typedef uint64_t opflags_t; - typedef uint16_t decoflags_t; - extern const opflags_t nasm_reg_flags[]; -+extern const size_t nasm_reg_flags_size; - /* regvals.c */ - extern const int nasm_regvals[]; - -diff --git a/x86/regs.pl b/x86/regs.pl -index 3a1b56f5..cb5cea68 100755 ---- a/x86/regs.pl -+++ b/x86/regs.pl -@@ -158,7 +158,8 @@ if ( $fmt eq 'h' ) { - printf " %-15s /* %-5s */\n", - $regs{$reg}.',', $reg; - } -- print "};\n"; -+ print "};\n\n"; -+ print "const size_t nasm_reg_flags_size = sizeof(nasm_reg_flags) / sizeof(opflags_t);\n"; - } elsif ( $fmt eq 'vc' ) { - # Output regvals.c - print "/* automatically generated from $file - do not edit */\n\n"; --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch deleted file mode 100644 index 12ae3a94..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 77c3a77210d8ca8b94e999c711156e984a8dc737 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 31 Mar 2018 11:05:33 -0700 -Subject: [PATCH] asmlib: Drop pure function attribute from seg_init - -seg_init returns void, so it is impure function - -Signed-off-by: Khem Raj ---- -Upstream-Status: Submitted - - include/nasmlib.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/nasmlib.h b/include/nasmlib.h -index 79e866b..b80b7e2 100644 ---- a/include/nasmlib.h -+++ b/include/nasmlib.h -@@ -191,7 +191,7 @@ int64_t readstrnum(char *str, int length, bool *warn); - * seg_init: Initialise the segment-number allocator. - * seg_alloc: allocate a hitherto unused segment number. - */ --void pure_func seg_init(void); -+void seg_init(void); - int32_t pure_func seg_alloc(void); - - /* diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch deleted file mode 100644 index 682d4c72..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-assemble-Check-global-line-limit.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 7a46d6b9e3a1d8a0ab0d816ef1bf194ad285e082 Mon Sep 17 00:00:00 2001 -From: "Chang S. Bae" -Date: Fri, 17 Aug 2018 14:26:03 +0800 -Subject: [PATCH] assemble: Check global line limit - -Without the limit, the while loop opens to semi-infinite -that will exhaustively consume the heap space. Also, the -index value gets into the garbage. - -https://bugzilla.nasm.us/show_bug.cgi?id=3392474 - -Reported-by : Dongliang Mu -Signed-off-by: Chang S. Bae -Signed-off-by: Cyrill Gorcunov - -Upstream-Status: Backport from upstream [http://repo.or.cz/nasm.git] -CVE: CVE-2018-10316 -Signed-off-by: Hongxu Jia ---- - asm/nasm.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/asm/nasm.c b/asm/nasm.c -index 8497ec9..81f6cee 100644 ---- a/asm/nasm.c -+++ b/asm/nasm.c -@@ -99,6 +99,8 @@ static char outname[FILENAME_MAX]; - static char listname[FILENAME_MAX]; - static char errname[FILENAME_MAX]; - static int globallineno; /* for forward-reference tracking */ -+#define GLOBALLINENO_MAX INT32_MAX -+ - /* static int pass = 0; */ - const struct ofmt *ofmt = &OF_DEFAULT; - const struct ofmt_alias *ofmt_alias = NULL; -@@ -1360,7 +1362,10 @@ static void assemble_file(char *fname, StrList **depend_ptr) - location.offset = offs = get_curr_offs(); - - while ((line = preproc->getline())) { -- globallineno++; -+ if (globallineno++ == GLOBALLINENO_MAX) -+ nasm_error(ERR_FATAL, -+ "overall line number reaches the maximum %d\n", -+ GLOBALLINENO_MAX); - - /* - * Here we parse our directives; this is not handled by the --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch deleted file mode 100644 index 6c332497..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-eval-Eliminate-division-by-zero.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ceec0d818798aeaa75ed4907e6135b0247ed46b2 Mon Sep 17 00:00:00 2001 -From: Cyrill Gorcunov -Date: Sun, 14 Oct 2018 01:26:19 +0300 -Subject: [PATCH] eval: Eliminate division by zero - -When doing division we should detect if the value we're -divided by is not zero. Instead of is_unknown() helper -we should use is_just_unknown(). - -https://bugzilla.nasm.us/show_bug.cgi?id=3392515 -https://bugzilla.nasm.us/show_bug.cgi?id=3392473 - -Reported-by: Jun -Reported-by: stuartly -Signed-off-by: Cyrill Gorcunov - -Upstream-Status: Backport [https://github.com/netwide-assembler/nasm/commit/ceec0d818798aeaa75ed4907e6135b0247ed46b2.patch] -CVE: CVE-2018-10016 -Signed-off-by: Hongxu Jia - ---- - asm/eval.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/asm/eval.c b/asm/eval.c -index 1a6680f..7e727a4 100644 ---- a/asm/eval.c -+++ b/asm/eval.c -@@ -580,7 +580,7 @@ static expr *expr5(int critical) - " scalar values"); - return NULL; - } -- if (j != '*' && !is_unknown(f) && reloc_value(f) == 0) { -+ if (j != '*' && !is_just_unknown(f) && reloc_value(f) == 0) { - nasm_error(ERR_NONFATAL, "division by zero"); - return NULL; - } --- -2.10.2 - diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch deleted file mode 100644 index bc706c3f..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-fix-CVE-2018-8882.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 33438037e00ec750bff020578b1a5b6f75f60555 Mon Sep 17 00:00:00 2001 -From: Adam Majer -Date: Fri, 17 Aug 2018 14:41:02 +0800 -Subject: [PATCH] fix CVE-2018-8882 - -https://bugzilla.nasm.us/show_bug.cgi?id=3392445 - -Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392445] -CVE: CVE-2018-8882 -Signed-off-by: Hongxu Jia ---- - asm/float.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/asm/float.c b/asm/float.c -index dcf69fea..2965d3db 100644 ---- a/asm/float.c -+++ b/asm/float.c -@@ -608,6 +608,8 @@ static void ieee_shr(fp_limb *mant, int i) - if (offs) - for (j = MANT_LIMBS-1; j >= offs; j--) - mant[j] = mant[j-offs]; -+ } else if (MANT_LIMBS-1-offs < 0) { -+ j = MANT_LIMBS-1; - } else { - n = mant[MANT_LIMBS-1-offs] >> sr; - for (j = MANT_LIMBS-1; j > offs; j--) { --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch deleted file mode 100644 index 2121fd17..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm/0001-preproc-parse_size-Check-for-string-provided.patch +++ /dev/null @@ -1,37 +0,0 @@ -From a2f43331a853b7cc449cae3361ee1fb54c7fad8d Mon Sep 17 00:00:00 2001 -From: Cyrill Gorcunov -Date: Sat, 29 Sep 2018 14:30:14 +0300 -Subject: [PATCH] preproc: parse_size -- Check for string provided - -In case if the string is nil we will have sigsegv. - -https://bugzilla.nasm.us/show_bug.cgi?id=3392507 - -Signed-off-by: Cyrill Gorcunov - -CVE: CVE-2018-1000667 -Upstream-Status: Backport -https://repo.or.cz/nasm/nasm.git/commit/c713b5f994cf7b29164c3b6838b91f0499591434 - -Signed-off-by: Hongxu Jia ---- - asm/preproc.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/asm/preproc.c b/asm/preproc.c -index 475926d..1d770a5 100644 ---- a/asm/preproc.c -+++ b/asm/preproc.c -@@ -2216,8 +2216,7 @@ static int parse_size(const char *str) { - { "byte", "dword", "oword", "qword", "tword", "word", "yword" }; - static const int sizes[] = - { 0, 1, 4, 16, 8, 10, 2, 32 }; -- -- return sizes[bsii(str, size_names, ARRAY_SIZE(size_names))+1]; -+ return str ? sizes[bsii(str, size_names, ARRAY_SIZE(size_names))+1] : 0; - } - - /* --- -2.8.1 - diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch new file mode 100644 index 00000000..d94fd329 --- /dev/null +++ b/external/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch @@ -0,0 +1,117 @@ +From 8a204171004fa0d7d21389530c744d215e99efb0 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Tue, 19 Nov 2019 12:47:30 -0600 +Subject: [PATCH 1/2] 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 +--- + 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 32ef3d91..ff7eb447 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -93,7 +93,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/crc64.$(O) nasmlib/malloc.$(O) nasmlib/errfile.$(O) \ +diff --git a/configure.ac b/configure.ac +index 38b3b596..b4e88778 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -152,6 +152,7 @@ AC_CHECK_FUNCS([vsnprintf _vsnprintf]) + AC_CHECK_FUNCS([snprintf _snprintf]) + AC_CHECK_FUNCS([strlcpy]) + AC_CHECK_FUNCS([strrchrnul]) ++AC_CHECK_FUNCS([strlcat]) + + dnl These types are POSIX-specific, and Windows does it differently... + AC_CHECK_TYPES([struct _stati64]) +@@ -170,6 +171,7 @@ AC_CHECK_DECLS(strsep) + 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 4178c98e..8153d297 100644 +--- a/include/compiler.h ++++ b/include/compiler.h +@@ -159,6 +159,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 +diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c +new file mode 100644 +index 00000000..7084d460 +--- /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 ++ +-- +2.23.0 + diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch b/external/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch new file mode 100644 index 00000000..bbfae2e8 --- /dev/null +++ b/external/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch @@ -0,0 +1,325 @@ +From fa677c1caf6b8192971920cf5c1aa8cb33c74605 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Tue, 19 Nov 2019 13:12:17 -0600 +Subject: [PATCH 2/2] 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 +--- + asm/nasm.c | 28 ++++++++++++++++++++++++++-- + include/nasmlib.h | 9 +++++++++ + nasm.txt | 4 ++++ + nasmlib/filename.c | 20 ++++++++++++++++++++ + output/outas86.c | 4 +++- + output/outcoff.c | 4 ++-- + output/outelf.c | 8 ++++---- + output/outieee.c | 2 +- + output/outobj.c | 2 +- + stdlib/strlcat.c | 2 +- + test/elfdebugprefix.asm | 6 ++++++ + test/performtest.pl | 12 ++++++++++-- + 12 files changed, 87 insertions(+), 14 deletions(-) + create mode 100644 test/elfdebugprefix.asm + +diff --git a/asm/nasm.c b/asm/nasm.c +index 1c5a5fc5..5d45103c 100644 +--- a/asm/nasm.c ++++ b/asm/nasm.c +@@ -841,7 +841,8 @@ enum text_options { + OPT_BEFORE, + OPT_LIMIT, + OPT_KEEP_ALL, +- OPT_NO_LINE ++ OPT_NO_LINE, ++ OPT_DEBUG_PREFIX_MAP + }; + struct textargs { + const char *label; +@@ -866,6 +867,7 @@ static const struct textargs textopts[] = { + {"limit-", OPT_LIMIT, true, 0}, + {"keep-all", OPT_KEEP_ALL, false, 0}, + {"no-line", OPT_NO_LINE, false, 0}, ++ {"debug-prefix-map", OPT_DEBUG_PREFIX_MAP, true, 0}, + {NULL, OPT_BOGUS, false, 0} + }; + +@@ -1217,6 +1219,26 @@ static bool process_arg(char *p, char *q, int pass) + case OPT_NO_LINE: + pp_noline = 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(0); + exit(0); +@@ -2010,7 +2032,9 @@ static void help(const char xopt) + " --lpostfix str append the given string to all other symbols\n" + " --keep-all output files will not be removed even if an error happens\n" + " --no-line ignore %%line directives in input\n" +- " --limit-X val set execution limit X\n"); ++ " --limit-X val set execution limit X\n" ++ " --debug-prefix-map base=dest\n" ++ " remap paths starting with 'base' to 'dest' in output files\n"); + + for (i = 0; i <= LIMIT_MAX; i++) { + printf(" %-15s %s (default ", +diff --git a/include/nasmlib.h b/include/nasmlib.h +index e57d0e6d..cf921547 100644 +--- a/include/nasmlib.h ++++ b/include/nasmlib.h +@@ -195,10 +195,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 a28202f9..443c06b2 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 172ae0bc..fda2be41 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 3f9867b9..d5f4f966 100644 +--- a/output/outas86.c ++++ b/output/outas86.c +@@ -113,6 +113,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; +@@ -134,7 +136,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 a2fd302c..bcf576fb 100644 +--- a/output/outcoff.c ++++ b/output/outcoff.c +@@ -1070,14 +1070,14 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value, + + 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 de99d076..203b5dc0 100644 +--- a/output/outelf.c ++++ b/output/outelf.c +@@ -1,5 +1,5 @@ + /* ----------------------------------------------------------------------- * +- * ++ * + * Copyright 1996-2017 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. +@@ -14,7 +14,7 @@ + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. +- * ++ * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +@@ -315,7 +315,7 @@ elf_directive(enum directive directive, char *value, int pass) + + static void elf_init(void) + { +- strlcpy(elf_module, inname, sizeof(elf_module)); ++ filename_debug_remap(elf_module, inname, sizeof(elf_module)); + sects = NULL; + nsects = sectlen = 0; + syms = saa_init((int32_t)sizeof(struct elf_symbol)); +@@ -868,7 +868,7 @@ static void elf32_out(int32_t segto, const void *data, + " segment base references"); + } else { + if (wrt == NO_SEG) { +- /* ++ /* + * The if() is a hack to deal with compilers which + * don't handle switch() statements with 64-bit + * expressions. +diff --git a/output/outieee.c b/output/outieee.c +index 3a28942d..f61824e4 100644 +--- a/output/outieee.c ++++ b/output/outieee.c +@@ -209,7 +209,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 b4f2c499..55bba4a1 100644 +--- a/output/outobj.c ++++ b/output/outobj.c +@@ -640,7 +640,7 @@ static enum directive_result obj_directive(enum directive, char *, int); + + 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 7084d460..ee93dea3 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 00000000..a67ba29c +--- /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 f7865b39..096f9604 100755 +--- a/test/performtest.pl ++++ b/test/performtest.pl +@@ -42,14 +42,22 @@ sub perform { + TEST: + while() { + #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) { +-- +2.23.0 + diff --git a/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch b/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch new file mode 100644 index 00000000..6e3f909d --- /dev/null +++ b/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch @@ -0,0 +1,116 @@ +From 3079f7966dbed4497e36d5067cbfd896a90358cb Mon Sep 17 00:00:00 2001 +From: Cyrill Gorcunov +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 + +Upstream-Status: Backport +CVE: CVE-2018-19755 +Signed-off-by: Anuj Mittal +--- + 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/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch b/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch new file mode 100644 index 00000000..d45d2cb4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch @@ -0,0 +1,43 @@ +From 93d41d82963b2cfd0b24c906f5a8daf53281b559 Mon Sep 17 00:00:00 2001 +From: "H. Peter Anvin (Intel)" +Date: Fri, 16 Aug 2019 01:12:54 -0700 +Subject: [PATCH] BR 3392576: don't segfault on a bad %pragma limit + +Don't segfault on a bad %pragma limit. Instead treat a NULL pointer as +an empty string. + +Reported-by: Ren Kimura +Signed-off-by: H. Peter Anvin (Intel) + +CVE: CVE-2019-14248 +Upstream-Status: Backport [https://repo.or.cz/nasm.git/commit/93d41d82963b2cfd0b24c906f5a8daf53281b559] +Signed-off-by: Anuj Mittal +--- + asm/nasm.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/asm/nasm.c b/asm/nasm.c +index c84d675..65116ab 100644 +--- a/asm/nasm.c ++++ b/asm/nasm.c +@@ -212,6 +212,11 @@ nasm_set_limit(const char *limit, const char *valstr) + bool rn_error; + int errlevel; + ++ if (!limit) ++ limit = ""; ++ if (!valstr) ++ valstr = ""; ++ + for (i = 0; i <= LIMIT_MAX; i++) { + if (!nasm_stricmp(limit, limit_info[i].name)) + break; +@@ -204,7 +209,7 @@ nasm_set_limit(const char *limit, const char *valstr) + errlevel = ERR_WARNING|ERR_NOFILE|ERR_USAGE; + else + errlevel = ERR_WARNING|ERR_PASS1|WARN_UNKNOWN_PRAGMA; +- nasm_error(errlevel, "unknown limit: `%s'", limit); ++ nasm_error(errlevel, "invalid limit value: `%s'", valstr); + return DIRR_ERROR; + } + diff --git a/external/poky/meta/recipes-devtools/nasm/nasm_2.13.03.bb b/external/poky/meta/recipes-devtools/nasm/nasm_2.13.03.bb deleted file mode 100644 index de4c5544..00000000 --- a/external/poky/meta/recipes-devtools/nasm/nasm_2.13.03.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "General-purpose x86 assembler" -SECTION = "devel" -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://0001-asmlib-Drop-pure-function-attribute-from-seg_init.patch \ - file://0001-assemble-Check-global-line-limit.patch \ - file://0001-fix-CVE-2018-8882.patch \ - file://0001-Verify-that-we-are-not-reading-past-end-of-a-buffer.patch \ - file://0001-eval-Eliminate-division-by-zero.patch \ - file://0001-preproc-parse_size-Check-for-string-provided.patch \ - " - -SRC_URI[md5sum] = "0c581d482f39d5111879ca9601938f74" -SRC_URI[sha256sum] = "63ec86477ad3f0f6292325fd89e1d93aea2e2fd490070863f17d48f7cd387011" - -inherit autotools-brokensep - -do_configure_prepend () { - if [ -f ${S}/aclocal.m4 ] && [ ! -f ${S}/acinclude.m4 ]; then - mv ${S}/aclocal.m4 ${S}/acinclude.m4 - fi -} - -do_install() { - install -d ${D}${bindir} - install -d ${D}${mandir}/man1 - - oe_runmake 'INSTALLROOT=${D}' install -} - -BBCLASSEXTEND = "native" - -DEPENDS = "groff-native" diff --git a/external/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/external/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb new file mode 100644 index 00000000..f8a8d76e --- /dev/null +++ b/external/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb @@ -0,0 +1,25 @@ +SUMMARY = "General-purpose x86 assembler" +SECTION = "devel" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe" + +SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 \ + file://CVE-2018-19755.patch \ + file://CVE-2019-14248.patch \ + file://0001-stdlib-Add-strlcat.patch \ + file://0002-Add-debug-prefix-map-option.patch \ + " + +SRC_URI[md5sum] = "3f489aa48ad2aa1f967dc5e293bbd06f" +SRC_URI[sha256sum] = "34fd26c70a277a9fdd54cb5ecf389badedaf48047b269d1008fbc819b24e80bc" + +# brokensep since this uses autoconf but not automake +inherit autotools-brokensep + +EXTRA_AUTORECONF += "--exclude=aclocal" + +BBCLASSEXTEND = "native" + +DEPENDS = "groff-native" + +CVE_PRODUCT = "netwide_assembler" diff --git a/external/poky/meta/recipes-devtools/ninja/ninja_1.10.0.bb b/external/poky/meta/recipes-devtools/ninja/ninja_1.10.0.bb new file mode 100644 index 00000000..bdc63650 --- /dev/null +++ b/external/poky/meta/recipes-devtools/ninja/ninja_1.10.0.bb @@ -0,0 +1,30 @@ +SUMMARY = "Ninja is a small build system with a focus on speed." +HOMEPAGE = "http://martine.github.com/ninja/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e" + +DEPENDS = "re2c-native ninja-native" + +SRCREV = "ed7f67040b370189d989adbd60ff8ea29957231f" + +SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P.*)" + +S = "${WORKDIR}/git" + +do_configure[noexec] = "1" + +do_compile_class-native() { + python3 ./configure.py --bootstrap +} + +do_compile() { + python3 ./configure.py + ninja +} + +do_install() { + install -D -m 0755 ${S}/ninja ${D}${bindir}/ninja +} + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/ninja/ninja_1.8.2.bb b/external/poky/meta/recipes-devtools/ninja/ninja_1.8.2.bb deleted file mode 100644 index c6fcfef3..00000000 --- a/external/poky/meta/recipes-devtools/ninja/ninja_1.8.2.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "Ninja is a small build system with a focus on speed." -HOMEPAGE = "http://martine.github.com/ninja/" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e" - -DEPENDS = "re2c-native ninja-native" - -SRCREV = "253e94c1fa511704baeb61cf69995bbf09ba435e" - -SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P.*)" - -S = "${WORKDIR}/git" - -do_configure[noexec] = "1" - -do_compile_class-native() { - ./configure.py --bootstrap -} - -do_compile() { - ./configure.py - ninja -} - -do_install() { - install -D -m 0755 ${S}/ninja ${D}${bindir}/ninja -} - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch deleted file mode 100644 index 6b7ca7da..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Only-use-sort-name-on-versions-of-tar-which-support-.patch +++ /dev/null @@ -1,51 +0,0 @@ -From ef5db062b7d25e6070acc6922ea48f50491313b5 Mon Sep 17 00:00:00 2001 -From: Michael Hansen -Date: Mon, 26 Feb 2018 09:42:56 -0800 -Subject: [PATCH 1/2] Only use --sort=name on versions of tar which support it. - This fixes compatibility with bsdtar and old versions of GNU tar (e.g. - RHEL6). - -Signed-off-by: Michael Hansen -Signed-off-by: Alejandro del Castillo -Upstream-Status: Backport - ---- - opkg-build | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -Index: opkg-utils-0.3.6/opkg-build -=================================================================== ---- opkg-utils-0.3.6.orig/opkg-build -+++ opkg-utils-0.3.6/opkg-build -@@ -232,6 +232,11 @@ if [ $compressor = "gzip" ] ; then - compressorargs=$zipargs - fi - -+tsortargs= -+if tar --help 2>&1 | grep -- "--sort=" > /dev/null; then -+ tsortargs="--sort=name" -+fi -+ - shift $(($OPTIND - 1)) - - # continue on to process additional arguments -@@ -280,8 +285,8 @@ mkdir $tmp_dir - build_date="$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" - - echo $CONTROL > $tmp_dir/tarX --( cd $pkg_dir && tar $ogargs --sort=name --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) --( cd $pkg_dir/$CONTROL && tar $ogargs --sort=name --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) -+( cd $pkg_dir && tar $ogargs $tsortargs --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) -+( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) - rm $tmp_dir/tarX - - echo "2.0" > $tmp_dir/debian-binary -@@ -296,7 +301,7 @@ rm -f $pkg_file - if [ "$outer" = "ar" ] ; then - ( cd $tmp_dir && ar -crf $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) - else -- ( cd $tmp_dir && tar -c --sort=name --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) -+ ( cd $tmp_dir && tar -c $tsortargs --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) - fi - - rm $tmp_dir/debian-binary $tmp_dir/data.tar.$cext $tmp_dir/control.tar.gz diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch deleted file mode 100644 index c36ae2ff..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-Switch-all-scripts-to-use-Python-3.x.patch +++ /dev/null @@ -1,112 +0,0 @@ -From d42b23f4fb5d6bd58e92e995fe5befc76efbae0c Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -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 ---- - 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 - from __future__ import absolute_import - from __future__ import print_function - -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 - # Andern Research Labs - # --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch deleted file mode 100644 index 19778acd..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 0cd38bb1bdcdbfc091014a1f39d015a1586a33e6 Mon Sep 17 00:00:00 2001 -From: Stefan Agner -Date: Fri, 19 Oct 2018 17:38:21 +0200 -Subject: [PATCH] opkg-make-index: use ctime instead of mtime - -Upstream-Status: Backport - -When using sstate, two parallel builds can produce two packages -with the same mtime but different checksums. When later one of -those two builds fetches the others ipk, the package index does -not get udpated properly (since mtime matches). This ends up with -messages such as: - Downloading file:/../tmp/work/../image/...ipk. - Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk - -However, in that case, ctime is different. Use ctime instead of -mtime to prevent failures like this. - -Suggested-by: Khem Raj -Signed-off-by: Stefan Agner -Acked-by: Richard Purdie -Acked-by: Khem Raj -Signed-off-by: Alejandro del Castillo -Signed-off-by: Ming Liu ---- - opkg-make-index | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/opkg-make-index b/opkg-make-index -index 3227fc0..db7bf64 100755 ---- a/opkg-make-index -+++ b/opkg-make-index -@@ -115,12 +115,12 @@ for abspath in files: - pkg = None - fnameStat = os.stat(abspath) - if filename in old_pkg_hash: -- if filename in pkgsStamps and int(fnameStat.st_mtime) == pkgsStamps[filename]: -+ if filename in pkgsStamps and int(fnameStat.st_ctime) == pkgsStamps[filename]: - if (verbose): - sys.stderr.write("Found %s in Packages\n" % (filename,)) - pkg = old_pkg_hash[filename] - else: -- sys.stderr.write("Found %s in Packages, but mtime differs - re-reading\n" % (filename,)) -+ sys.stderr.write("Found %s in Packages, but ctime differs - re-reading\n" % (filename,)) - - if not pkg: - if (verbose): -@@ -137,7 +137,7 @@ for abspath in files: - else: - old_filename = "" - s = packages.add_package(pkg, opt_a) -- pkgsStamps[filename] = fnameStat.st_mtime -+ pkgsStamps[filename] = fnameStat.st_ctime - if s == 0: - if old_filename: - # old package was displaced by newer --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-update-alternatives-Fix-link-relocation-support.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-update-alternatives-Fix-link-relocation-support.patch deleted file mode 100644 index 9dc488b7..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-update-alternatives-Fix-link-relocation-support.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 18562ccae6996431d37767653b061d4e9e1b9424 Mon Sep 17 00:00:00 2001 -From: Niko Mauno -Date: Sun, 11 Nov 2018 15:50:22 +0200 -Subject: [opkg-utils PATCH] update-alternatives: Fix link relocation support - -Commit fcb26339000021eb9bb711aa264247aebcfdd4ae which added Debian-style -support for link relocation tries to relocate symbolic link on host OS, -resulting in following-like error when two alternative packages have -symbolic link source located in different directories (/bin/rev -> -/bin/busybox.nosuid and /usr/bin/rev -> /usr/bin/rev.util-linux): - - update-alternatives: renaming rev link from /bin/rev to /usr/bin/rev - mv: cannot stat '/bin/rev': No such file or directory - -Fix the issue by prefixing 'olink' and 'link' variable references with -path to targeted root filesystem's root directory. - -Upstream-Status: Submitted [opkg-utils] - -Signed-off-by: Niko Mauno ---- - update-alternatives | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/update-alternatives b/update-alternatives -index 89a440b..d4fa7eb 100644 ---- a/update-alternatives -+++ b/update-alternatives -@@ -58,7 +58,7 @@ register_alt() { - local link_str=`echo $link | protect_slashes` - sed -e "1s/.*/$link_str/" $ad/$name > $ad/$name.new - mv $ad/$name.new $ad/$name -- mv $olink $link -+ mv $OPKG_OFFLINE_ROOT$olink $OPKG_OFFLINE_ROOT$link - fi - else - echo "$link" > "$ad/$name" --- -2.19.1 - diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch deleted file mode 100644 index e338914b..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 5727826b51cf99feaff3483a9df8af2043e7efc1 Mon Sep 17 00:00:00 2001 -From: Michael Hansen -Date: Mon, 26 Feb 2018 10:17:01 -0800 -Subject: [PATCH 2/2] opkg-build: Use local time for build_date, since opkg - extracts files assuming local time rather than UTC. Also increase resolution - of build date down to the second, rather than clamping to midnight of the - current date. - -Signed-off-by: Michael Hansen -Signed-off-by: Alejandro del Castillo -Upstream-Status: Backport - ---- - opkg-build | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -Index: opkg-utils-0.3.6/opkg-build -=================================================================== ---- opkg-utils-0.3.6.orig/opkg-build -+++ opkg-utils-0.3.6/opkg-build -@@ -282,11 +282,11 @@ fi - tmp_dir=$dest_dir/IPKG_BUILD.$$ - mkdir $tmp_dir - --build_date="$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)" -+build_date="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%Y-%m-%d %H:%M:%S")" - - echo $CONTROL > $tmp_dir/tarX --( cd $pkg_dir && tar $ogargs $tsortargs --mtime=$build_date -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) --( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime=$build_date -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) -+( cd $pkg_dir && tar $ogargs $tsortargs --mtime="$build_date" -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) -+( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime="$build_date" -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) - rm $tmp_dir/tarX - - echo "2.0" > $tmp_dir/debian-binary -@@ -301,7 +301,7 @@ rm -f $pkg_file - if [ "$outer" = "ar" ] ; then - ( cd $tmp_dir && ar -crf $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext ) - else -- ( cd $tmp_dir && tar -c $tsortargs --mtime=$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) -+ ( cd $tmp_dir && tar -c $tsortargs --mtime="$build_date" $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file ) - fi - - rm $tmp_dir/debian-binary $tmp_dir/data.tar.$cext $tmp_dir/control.tar.gz diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch new file mode 100644 index 00000000..945979bc --- /dev/null +++ b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch @@ -0,0 +1,32 @@ +Fix reproducibility issues in opkg-build + +There is a sorting problem with opkg-build where the ipk generated is depending +upon the order of files on disk. The reason is the --sort option to tar only +influences the orders of files tar reads, not those passed by the -T option. + +Add in a sort call to resolve this issue. To ensure consistent sorting we +also need to force to a specific locale (C) else the results are still not +deterministic. + +RP 2020/2/5 + +Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/opkg-devel/YttZ73NLrYQ] +Signed-off-by: Richard Purdie + +Index: opkg-utils-0.4.2/opkg-build +=================================================================== +--- opkg-utils-0.4.2.orig/opkg-build ++++ opkg-utils-0.4.2/opkg-build +@@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then + mtime_args="--mtime=@$build_date --clamp-mtime" + fi + +-( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list ) +-( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list ) ++export LANG=C ++export LC_ALL=C ++( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list ) ++( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list ) + ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) + ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz ) + rm $tmp_dir/file_list diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pigz.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pigz.patch deleted file mode 100644 index dd433e8e..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/pigz.patch +++ /dev/null @@ -1,51 +0,0 @@ -From ab1436927b47badcd219a5f075dfc848020e061d Mon Sep 17 00:00:00 2001 -From: Mike Crowe -Date: Thu, 4 Oct 2018 17:54:19 +0100 -Subject: [opkg-utils PATCH] opkg-build: Add support for explicit use of pigz -To: opkg-devel@googlegroups.com, - yocto@yoctoproject.org - -oe-core has stopped[1] installing pigz as gzip. This means that in -order to persuade opkg-build to use pigz it must be specified -explicitly. Let's teach opkg-build to deal with being passed pigz as a -compressor. - -We can't combine the check for whether -T is required with the one for -gzip because opkg-build needs to call $compressor and gzip separately -to construct the package. - -[1] http://lists.openembedded.org/pipermail/openembedded-commits/2018-February/218767.html - -Upstream-Status: Submitted [opkg-devel@googlegroups.com https://groups.google.com/forum/#!topic/opkg-devel/E0WVOhjK61w] -Signed-off-by: Mike Crowe ---- - opkg-build | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/opkg-build b/opkg-build -index 93a7956..f8403ea 100755 ---- a/opkg-build -+++ b/opkg-build -@@ -170,7 +170,7 @@ fi - - compressor_ext() { - case $1 in -- gzip) -+ gzip|pigz) - echo gz - ;; - bzip2) -@@ -232,6 +232,10 @@ if [ $compressor = "gzip" ] ; then - compressorargs=$zipargs - elif [ $compressor = "xz" ] ; then - compressorargs="--threads 0" -+elif [ $compressor = "pigz" ] ; then -+ if $compressor --help 2>&1 | grep -- "-T" > /dev/null; then -+ compressorargs="-9nT" -+ fi - fi - - tsortargs= --- -2.11.0 - diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch deleted file mode 100644 index d8931b28..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/tar_ignore_error.patch +++ /dev/null @@ -1,48 +0,0 @@ -If a the number of hard links decreases or increases while creating -the tar files used for an ipk package, tar fails with error code 1: - -| DEBUG: Executing python function do_package_ipk -| tar: ./usr/src/debug/gperf/3.0.4-r0/gperf-3.0.4/src/main.cc: file changed as we read it -NOTE: recipe gperf-3.0.4-r0: task do_package_write_ipk: Failed -ERROR: Task 6539 (recipes-extended/gperf/gperf_3.0.4.bb, do_package_write_ipk) failed with exit code '1' - - -We detect if the error code produced by tar is 1 and in this case ignore it. - -This a similar behavior to the one on dpkg: -http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=40731942515ec8d80c727ad561174986d4f05818 - -Upstream-Status: Inappropriate - -Signed-off-by: Alejandro Hernandez - - -Index: git/opkg-build - -=================================================================== ---- git.orig/opkg-build -+++ git/opkg-build -@@ -285,8 +285,21 @@ mkdir $tmp_dir - build_date="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%Y-%m-%d %H:%M:%S")" - - echo $CONTROL > $tmp_dir/tarX --( cd $pkg_dir && tar $ogargs $tsortargs --mtime="$build_date" -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) --( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime="$build_date" -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) -+ -+ -+# Ignore error code 1, caused by modifying the number of hard links while creating the tar file -+rc=0 -+( cd $pkg_dir && tar $ogargs $tsortargs --mtime="$build_date" -X $tmp_dir/tarX -c $tarformat . | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) || rc=$? -+if [ $rc -ne 1 ] && [ $rc -ne 0 ]; then -+ exit $rc -+fi -+ -+rc=0 -+( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --mtime="$build_date" -c $tarformat . | gzip $zipargs > $tmp_dir/control.tar.gz ) || rc=$? -+if [ $rc -ne 1 ] && [ $rc -ne 0 ]; then -+ exit $rc -+fi -+ - rm $tmp_dir/tarX - - echo "2.0" > $tmp_dir/debian-binary diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/threaded-xz.patch b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/threaded-xz.patch deleted file mode 100644 index 13a49f91..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils/threaded-xz.patch +++ /dev/null @@ -1,18 +0,0 @@ -Pass --threads=0 to xz so that it will use as many threads as there are cores to compress the packages. This makes qemu's do_package_ipk run in 34s instead of 275s on my machine. - -Upstream-Status: Inappropriate (ugly but works, discussing with upstream now) -Signed-off-by: Ross Burton - -diff --git a/opkg-build b/opkg-build -index 0050c2b..93a7956 100755 ---- a/opkg-build -+++ b/opkg-build -@@ -230,6 +230,8 @@ if gzip --help 2>&1 | grep -- "-T" > /dev/null; then - fi - if [ $compressor = "gzip" ] ; then - compressorargs=$zipargs -+elif [ $compressor = "xz" ] ; then -+ compressorargs="--threads 0" - fi - - tsortargs= diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb deleted file mode 100644 index 41cf11c2..00000000 --- a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb +++ /dev/null @@ -1,70 +0,0 @@ -SUMMARY = "Additional utilities for the opkg package manager" -SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system" -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" -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-Only-use-sort-name-on-versions-of-tar-which-support-.patch \ - file://0002-opkg-build-Use-local-time-for-build_date-since-opkg-.patch \ - file://threaded-xz.patch \ - file://pigz.patch \ - file://0001-update-alternatives-Fix-link-relocation-support.patch \ - file://0001-opkg-make-index-use-ctime-instead-of-mtime.patch \ -" -SRC_URI_append_class-native = " file://tar_ignore_error.patch" -UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" - - -SRC_URI[md5sum] = "391c1c80aca26961375dd22e1d2d0cbf" -SRC_URI[sha256sum] = "26b3f4dd1c1ef65f519d4cddfb35ebea41ae8af989aea2699a39783598c33769" - -TARGET_CC_ARCH += "${LDFLAGS}" - -# 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 = "" - -PACKAGECONFIG = "python update-alternatives" -PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}" -PACKAGECONFIG[update-alternatives] = ",,," - -do_install() { - oe_runmake PREFIX=${prefix} DESTDIR=${D} 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 [ -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 -} - -# These are empty and will pull python3-dev into images where it wouldn't -# have been otherwise, so don't generate them. -PACKAGES_remove = "${PN}-dev ${PN}-staticdev" - -PACKAGES =+ "update-alternatives-opkg" -FILES_update-alternatives-opkg = "${bindir}/update-alternatives" -RPROVIDES_update-alternatives-opkg = "update-alternatives update-alternatives-cworth" -RREPLACES_update-alternatives-opkg = "update-alternatives-cworth" -RCONFLICTS_update-alternatives-opkg = "update-alternatives-cworth" - -pkg_postrm_update-alternatives-opkg() { - rm -rf $D${nonarch_libdir}/opkg/alternatives - rmdir $D${nonarch_libdir}/opkg || true -} - -BBCLASSEXTEND = "native nativesdk" - -CLEANBROKEN = "1" diff --git a/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb new file mode 100644 index 00000000..93152401 --- /dev/null +++ b/external/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb @@ -0,0 +1,66 @@ +SUMMARY = "Additional utilities for the opkg package manager" +SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system" +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=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://fix-reproducibility.patch \ +" +UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" + +SRC_URI[md5sum] = "cc210650644fcb9bba06ad5ec95a63ec" +SRC_URI[sha256sum] = "5929ad87d541789e0b82d626db01a1201ac48df6f49f2262fcfb86cf815e5d6c" + +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 = "" + +PACKAGECONFIG = "python update-alternatives" +PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}" +PACKAGECONFIG[update-alternatives] = ",,," + +do_install() { + oe_runmake PREFIX=${prefix} DESTDIR=${D} install + if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then + rm -f "${D}${bindir}/update-alternatives" + 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 +} + +# These are empty and will pull python3-dev into images where it wouldn't +# have been otherwise, so don't generate them. +PACKAGES_remove = "${PN}-dev ${PN}-staticdev" + +PACKAGES =+ "update-alternatives-opkg" +FILES_update-alternatives-opkg = "${bindir}/update-alternatives" +RPROVIDES_update-alternatives-opkg = "update-alternatives update-alternatives-cworth" +RREPLACES_update-alternatives-opkg = "update-alternatives-cworth" +RCONFLICTS_update-alternatives-opkg = "update-alternatives-cworth" + +pkg_postrm_update-alternatives-opkg() { + rm -rf $D${nonarch_libdir}/opkg/alternatives + rmdir $D${nonarch_libdir}/opkg || true +} + +BBCLASSEXTEND = "native nativesdk" + +CLEANBROKEN = "1" diff --git a/external/poky/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb b/external/poky/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb index a20e316a..07e24025 100644 --- a/external/poky/meta/recipes-devtools/opkg/opkg-keyrings_1.0.bb +++ b/external/poky/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/external/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch b/external/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch deleted file mode 100644 index 11954e90..00000000 --- a/external/poky/meta/recipes-devtools/opkg/opkg/0001-libopkg-add-add-ignore-recommends-option.patch +++ /dev/null @@ -1,260 +0,0 @@ -From 2eca28b6a37be92e4e835c51872c7df34ec6dedd Mon Sep 17 00:00:00 2001 -From: Quentin Schulz -Date: Fri, 31 May 2019 17:30:40 +0200 -Subject: [PATCH] [PATCH] libopkg: add --add-ignore-recommends option - -Add option to ignore specific recommended packages. On the libsolv -backed, this feature will only work on libsolv version > 0.7.2 [1]. - -[1] https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openSUSE_libsolv_issues_254&d=DwIBaQ&c=I_0YwoKy7z5LMTVdyO6YCiE2uzI1jjZZuIPelcSjixA&r=wNcrL2akRn6jfxhHaKavUrJB_C9JAMXtynjLd8ZzgXQ&m=GObNHzFJpWpf_PripIrf-K2RhsktYdAUEieAJexXOKw&s=3G-meChUqClFggFPqsrAxIZBfLnRKIHm62Uuy1X6nQQ&e= - -Signed-off-by: Alejandro del Castillo -Signed-off-by: Quentin Schulz - -Upstream-Status: Backport ---- - libopkg/opkg_conf.c | 2 + - libopkg/opkg_conf.h | 1 + - .../solvers/internal/pkg_depends_internal.c | 3 +- - libopkg/solvers/libsolv/opkg_solver_libsolv.c | 21 ++++++- - man/opkg.1.in | 3 + - src/opkg.c | 6 ++ - tests/Makefile | 1 + - tests/core/43_add_ignore_recommends.py | 62 +++++++++++++++++++ - 8 files changed, 97 insertions(+), 2 deletions(-) - create mode 100644 tests/core/43_add_ignore_recommends.py - -diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c -index 06880a1..f2330cd 100644 ---- a/libopkg/opkg_conf.c -+++ b/libopkg/opkg_conf.c -@@ -597,6 +597,7 @@ int opkg_conf_init(void) - pkg_dest_list_init(&opkg_config->tmp_dest_list); - nv_pair_list_init(&opkg_config->arch_list); - str_list_init(&opkg_config->exclude_list); -+ str_list_init(&opkg_config->ignore_recommends_list); - - return 0; - } -@@ -938,6 +939,7 @@ void opkg_conf_deinit(void) - pkg_dest_list_deinit(&opkg_config->pkg_dest_list); - nv_pair_list_deinit(&opkg_config->arch_list); - str_list_deinit(&opkg_config->exclude_list); -+ str_list_deinit(&opkg_config->ignore_recommends_list); - - if (opkg_config->verbosity >= DEBUG) { - hash_print_stats(&opkg_config->pkg_hash); -diff --git a/libopkg/opkg_conf.h b/libopkg/opkg_conf.h -index dc11516..fc42de3 100644 ---- a/libopkg/opkg_conf.h -+++ b/libopkg/opkg_conf.h -@@ -61,6 +61,7 @@ typedef struct opkg_conf { - pkg_dest_list_t tmp_dest_list; - nv_pair_list_t arch_list; - str_list_t exclude_list; -+ str_list_t ignore_recommends_list; - - int restrict_to_default_dest; - pkg_dest_t *default_dest; -diff --git a/libopkg/solvers/internal/pkg_depends_internal.c b/libopkg/solvers/internal/pkg_depends_internal.c -index cd56d84..5deee70 100644 ---- a/libopkg/solvers/internal/pkg_depends_internal.c -+++ b/libopkg/solvers/internal/pkg_depends_internal.c -@@ -228,7 +228,8 @@ int pkg_hash_fetch_unsatisfied_dependencies(pkg_t *pkg, - || compound_depend->type == SUGGEST) - && (satisfying_pkg->state_want == SW_DEINSTALL - || satisfying_pkg->state_want == SW_PURGE -- || opkg_config->no_install_recommends); -+ || opkg_config->no_install_recommends -+ || str_list_contains(&opkg_config->ignore_recommends_list, satisfying_pkg->name)); - if (ignore) { - opkg_msg(NOTICE, - "%s: ignoring recommendation for " -diff --git a/libopkg/solvers/libsolv/opkg_solver_libsolv.c b/libopkg/solvers/libsolv/opkg_solver_libsolv.c -index bf0b72c..ea00a37 100644 ---- a/libopkg/solvers/libsolv/opkg_solver_libsolv.c -+++ b/libopkg/solvers/libsolv/opkg_solver_libsolv.c -@@ -484,6 +484,7 @@ static void pkg2solvable(pkg_t *pkg, Solvable *solvable_out) - static void populate_installed_repo(libsolv_solver_t *libsolv_solver) - { - int i; -+ Id what; - - pkg_vec_t *installed_pkgs = pkg_vec_alloc(); - -@@ -507,6 +508,15 @@ static void populate_installed_repo(libsolv_solver_t *libsolv_solver) - /* set solvable attributes */ - pkg2solvable(pkg, solvable); - -+ /* if the package is in ignore-recommends-list, disfavor installation */ -+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) { -+ opkg_message(NOTICE, "Disfavor package: %s\n", -+ pkg->name); -+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1); -+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME -+ | SOLVER_DISFAVOR, what); -+ } -+ - /* if the package is not autoinstalled, mark it as user installed */ - if (!pkg->auto_installed) - queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE -@@ -533,7 +543,7 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver) - { - int i; - Solvable *solvable; -- Id solvable_id; -+ Id solvable_id, what; - - pkg_vec_t *available_pkgs = pkg_vec_alloc(); - -@@ -602,6 +612,15 @@ static void populate_available_repos(libsolv_solver_t *libsolv_solver) - solvable = pool_id2solvable(libsolv_solver->pool, solvable_id); - pkg2solvable(pkg, solvable); - -+ /* if the package is in ignore-recommends-list, disfavor installation */ -+ if (str_list_contains(&opkg_config->ignore_recommends_list, pkg->name)) { -+ opkg_message(NOTICE, "Disfavor package: %s\n", -+ pkg->name); -+ what = pool_str2id(libsolv_solver->pool, pkg->name, 1); -+ queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE_NAME -+ | SOLVER_DISFAVOR, what); -+ } -+ - /* if the --force-depends option is specified make dependencies weak */ - if (opkg_config->force_depends) - queue_push2(&libsolv_solver->solver_jobs, SOLVER_SOLVABLE -diff --git a/man/opkg.1.in b/man/opkg.1.in -index 026fb15..c0d4bf3 100644 ---- a/man/opkg.1.in -+++ b/man/opkg.1.in -@@ -143,6 +143,9 @@ conjunction with \fB\--dest\fP - \fB\--add-arch <\fIarch\fP>:<\fIprio\fP>\fR - Register the package architecture \fIarch\fP with the numeric - priority \fIprio\fP. Lower priorities take precedence. -+.TP -+\fB\--add-ignore-recommends <\fIname\fP>\fR -+Register package to be ignored as a recomendee - .SS FORCE OPTIONS - .TP - \fB\--force-depends \fR -diff --git a/src/opkg.c b/src/opkg.c -index f23467d..5181065 100644 ---- a/src/opkg.c -+++ b/src/opkg.c -@@ -51,6 +51,7 @@ enum { - ARGS_OPT_ADD_DEST, - ARGS_OPT_SIZE, - ARGS_OPT_ADD_EXCLUDE, -+ ARGS_OPT_ADD_IGNORE_RECOMMENDS, - ARGS_OPT_NOACTION, - ARGS_OPT_DOWNLOAD_ONLY, - ARGS_OPT_NODEPS, -@@ -110,6 +111,7 @@ static struct option long_options[] = { - {"add-dest", 1, 0, ARGS_OPT_ADD_DEST}, - {"size", 0, 0, ARGS_OPT_SIZE}, - {"add-exclude", 1, 0, ARGS_OPT_ADD_EXCLUDE}, -+ {"add-ignore-recommends", 1, 0, ARGS_OPT_ADD_IGNORE_RECOMMENDS}, - {"test", 0, 0, ARGS_OPT_NOACTION}, - {"tmp-dir", 1, 0, 't'}, - {"tmp_dir", 1, 0, 't'}, -@@ -235,6 +237,9 @@ static int args_parse(int argc, char *argv[]) - case ARGS_OPT_ADD_EXCLUDE: - str_list_append(&opkg_config->exclude_list, optarg); - break; -+ case ARGS_OPT_ADD_IGNORE_RECOMMENDS: -+ str_list_append(&opkg_config->ignore_recommends_list, optarg); -+ break; - case ARGS_OPT_SIZE: - opkg_config->size = 1; - break; -@@ -335,6 +340,7 @@ static void usage() - printf("\t--add-arch : Register architecture with given priority\n"); - printf("\t--add-dest : Register destination with given path\n"); - printf("\t--add-exclude Register package to be excluded from install\n"); -+ printf("\t--add-ignore-recommends Register package to be ignored as a recomendee\n"); - printf("\t--prefer-arch-to-version Use the architecture priority package rather\n"); - printf("\t than the higher version one if more\n"); - printf("\t than one candidate is found.\n"); -diff --git a/tests/Makefile b/tests/Makefile -index 148c844..ddf027f 100644 ---- a/tests/Makefile -+++ b/tests/Makefile -@@ -38,6 +38,7 @@ REGRESSION_TESTS := core/01_install.py \ - core/37_globs.py \ - core/38_install_constrained_version.py \ - core/39_distupgrade.py \ -+ core/43_add_ignore_recommends.py \ - regress/issue26.py \ - regress/issue31.py \ - regress/issue32.py \ -diff --git a/tests/core/43_add_ignore_recommends.py b/tests/core/43_add_ignore_recommends.py -new file mode 100644 -index 0000000..7da0096 ---- /dev/null -+++ b/tests/core/43_add_ignore_recommends.py -@@ -0,0 +1,62 @@ -+#! /usr/bin/env python3 -+# -+# Create package 'a' (1.0) which Recommends 'c'. -+# Install 'a' with --add-ignore-recommends 'c'. -+# Check that only 'a' (1.0) is installed. -+# Create package 'b' which Depends on 'c'. -+# Install 'a' & 'b', with --add-ignore-recommends 'c'. -+# Verify that 'a','b' & 'c' are installed. -+# Uninstall 'b' & 'c'. -+# Create package 'a' (2.0), which Recommends 'c'. -+# Upgrade 'a' with --add-ignore-recommends 'c' -+# Verify that only 'a' (2.0) is installed -+# -+ -+import os -+import opk, cfg, opkgcl -+ -+opk.regress_init() -+o = opk.OpkGroup() -+ -+o.add(Package='a', Recommends='c', Version='1.0') -+o.add(Package='b', Depends='c') -+o.add(Package='c') -+o.write_opk() -+o.write_list() -+ -+opkgcl.update() -+ -+opkgcl.install('a', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a'): -+ opk.fail("Package 'a' installed but reports as not installed.") -+ -+if opkgcl.is_installed('c'): -+ opk.xfail("[libsolv<0.7.3] Package 'c' should not have been installed since it was in --add-ignore-recommends.") -+ -+opkgcl.remove('a') -+opkgcl.install('a b', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a'): -+ opk.fail("Package 'a' installed but reports as not installed.") -+ -+if not opkgcl.is_installed('b'): -+ opk.fail("Package 'b' installed but reports as not installed.") -+ -+if not opkgcl.is_installed('c'): -+ opk.fail("Package 'c' should have been installed since 'b' depends on it.") -+ -+opkgcl.remove('b c', '--force-depends') -+o.add(Package='a', Recommends='c', Version='2.0') -+o.write_opk() -+o.write_list() -+ -+opkgcl.update() -+ -+opkgcl.upgrade('a', '--add-ignore-recommends c') -+ -+if not opkgcl.is_installed('a', '2.0'): -+ opk.fail("Package 'a (2.0)' installed but reports as not installed.") -+ -+if opkgcl.is_installed('c'): -+ opk.fail("Package 'c' should not have been installed since it was in --add-ignore-recommends.") --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/opkg/opkg/0001-remove_maintainer_scripts-use-strict-matching.patch b/external/poky/meta/recipes-devtools/opkg/opkg/0001-remove_maintainer_scripts-use-strict-matching.patch deleted file mode 100644 index ec160290..00000000 --- a/external/poky/meta/recipes-devtools/opkg/opkg/0001-remove_maintainer_scripts-use-strict-matching.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 55c4ad666e76281bdd0db55fa6f4ab2744fea7e4 Mon Sep 17 00:00:00 2001 -From: Alejandro del Castillo -Date: Tue, 4 Sep 2018 18:06:00 -0500 -Subject: [PATCH] remove_maintainer_scripts: use strict matching - -The function is using a glob to select which metadata files needs to be -deleted during package removal, on the info_dir. However, the glob may -match metadata files from packages with similar names. For example, -during removal of package glibc-binary-localedata-de-at, the current -logic was also removing the metadata for -glibc-binary-localedata-de-at.iso-8859-1. Add check for an exact match -before deletion. - -Fixes bugzilla: 12905 - -Upstream-Status: Submitted [https://groups.google.com/forum/#!topic/opkg-devel/Fr40Yt0NBno] -Signed-off-by: Alejandro del Castillo ---- - libopkg/opkg_remove.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/libopkg/opkg_remove.c b/libopkg/opkg_remove.c -index 82125fa..3936628 100644 ---- a/libopkg/opkg_remove.c -+++ b/libopkg/opkg_remove.c -@@ -137,7 +137,7 @@ void remove_maintainer_scripts(pkg_t * pkg) - { - unsigned int i; - int err; -- char *globpattern; -+ char *globpattern, *filename, *lastdot; - glob_t globbuf; - - if (opkg_config->noaction) -@@ -151,8 +151,16 @@ void remove_maintainer_scripts(pkg_t * pkg) - return; - - for (i = 0; i < globbuf.gl_pathc; i++) { -- opkg_msg(INFO, "Deleting %s.\n", globbuf.gl_pathv[i]); -- unlink(globbuf.gl_pathv[i]); -+ filename = xstrdup(basename(globbuf.gl_pathv[i])); -+ lastdot = strrchr(filename, '.'); -+ *lastdot = '\0'; -+ // Only delete files that match the package name (the glob may match files -+ // with similar names) -+ if (!strcmp(filename, pkg->name)) { -+ opkg_msg(INFO, "Deleting %s.\n", globbuf.gl_pathv[i]); -+ unlink(globbuf.gl_pathv[i]); -+ } -+ free(filename); - } - globfree(&globbuf); - } --- -2.18.0 - diff --git a/external/poky/meta/recipes-devtools/opkg/opkg/run-ptest b/external/poky/meta/recipes-devtools/opkg/opkg/run-ptest new file mode 100644 index 00000000..5fb7077e --- /dev/null +++ b/external/poky/meta/recipes-devtools/opkg/opkg/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh + +OPKG_PATH=$(which opkg) + +make OPKG_PATH=$OPKG_PATH run-tests diff --git a/external/poky/meta/recipes-devtools/opkg/opkg_0.3.6.bb b/external/poky/meta/recipes-devtools/opkg/opkg_0.3.6.bb deleted file mode 100644 index b26d30b5..00000000 --- a/external/poky/meta/recipes-devtools/opkg/opkg_0.3.6.bb +++ /dev/null @@ -1,63 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -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" - -DEPENDS = "libarchive" - -PE = "1" - -SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ - file://opkg.conf \ - file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ - file://0001-remove_maintainer_scripts-use-strict-matching.patch \ - file://0001-libopkg-add-add-ignore-recommends-option.patch \ -" - -SRC_URI[md5sum] = "79e04307f6f54db431c251772d7d987c" -SRC_URI[sha256sum] = "f607f0e61be8cf8a3bbd0d2dccd9ec9e9b6c21dd4307b671c600d6eeaf84d30b" - -inherit autotools pkgconfig systemd - -target_localstatedir := "${localstatedir}" -OPKGLIBDIR = "${target_localstatedir}/lib" - -PACKAGECONFIG ??= "libsolv" - -PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg" -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" -PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" -PACKAGECONFIG[pathfinder] = "--enable-pathfinder,--disable-pathfinder,pathfinder" -PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" - -EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" - -do_install_append () { - install -d ${D}${sysconfdir}/opkg - install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf - - # We need to create the lock directory - install -d ${D}${OPKGLIBDIR}/opkg -} - -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" -RREPLACES_${PN} = "opkg-nogpg opkg-collateral" -RCONFLICTS_${PN} = "opkg-collateral" -RPROVIDES_${PN} = "opkg-collateral" - -PACKAGES =+ "libopkg" - -FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" - -BBCLASSEXTEND = "native nativesdk" - -CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/external/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb b/external/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb new file mode 100644 index 00000000..66a74dc5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb @@ -0,0 +1,74 @@ +SUMMARY = "Open Package Manager" +SUMMARY_libopkg = "Open Package Manager library" +SECTION = "base" +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=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" + +DEPENDS = "libarchive" + +PE = "1" + +SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://opkg.conf \ + file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "bd13e5dfc1c2536f0c7b2e15f795278e" +SRC_URI[sha256sum] = "86887852c43457edfff9d8b6d9520f3f1cdd55f25eb600a6eb31e1c4e151e106" + +# This needs to be before ptest inherit, otherwise all ptest files end packaged +# in libopkg package if OPKGLIBDIR == libdir, because default +# PTEST_PATH ?= "${libdir}/${BPN}/ptest" +PACKAGES =+ "libopkg" + +inherit autotools pkgconfig ptest + +target_localstatedir := "${localstatedir}" +OPKGLIBDIR ??= "${target_localstatedir}/lib" + +PACKAGECONFIG ??= "libsolv" + +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" +PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +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}')}" + +do_install_append () { + install -d ${D}${sysconfdir}/opkg + install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + + # We need to create the lock directory + install -d ${D}${OPKGLIBDIR}/opkg +} + +do_install_ptest () { + sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile +} + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" +RREPLACES_${PN} = "opkg-nogpg opkg-collateral" +RCONFLICTS_${PN} = "opkg-collateral" +RPROVIDES_${PN} = "opkg-collateral" + +FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" + +BBCLASSEXTEND = "native nativesdk" + +CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/external/poky/meta/recipes-devtools/orc/orc_0.4.28.bb b/external/poky/meta/recipes-devtools/orc/orc_0.4.28.bb deleted file mode 100644 index 415de64d..00000000 --- a/external/poky/meta/recipes-devtools/orc/orc_0.4.28.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "Optimised Inner Loop Runtime Compiler" -HOMEPAGE = "http://gstreamer.freedesktop.org/modules/orc.html" -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] = "6b582ec4b3275c5efd51e3ae6406d445" -SRC_URI[sha256sum] = "bfcd7c6563b05672386c4eedfc4c0d4a0a12b4b4775b74ec6deb88fc2bcd83ce" - -inherit autotools pkgconfig gtk-doc - -BBCLASSEXTEND = "native nativesdk" - -PACKAGES =+ "orc-examples" -PACKAGES_DYNAMIC += "^liborc-.*" -FILES_orc-examples = "${libdir}/orc/*" -FILES_${PN} = "${bindir}/*" - -python populate_packages_prepend () { - libdir = d.expand('${libdir}') - do_split_packages(d, libdir, '^lib(.*)\.so\.*', 'lib%s', 'ORC %s library', extra_depends='', allow_links=True) -} - -do_compile_prepend_class-native () { - sed -i -e 's#/tmp#.#g' ${S}/orc/orccodemem.c -} diff --git a/external/poky/meta/recipes-devtools/orc/orc_0.4.31.bb b/external/poky/meta/recipes-devtools/orc/orc_0.4.31.bb new file mode 100644 index 00000000..cd4dc31d --- /dev/null +++ b/external/poky/meta/recipes-devtools/orc/orc_0.4.31.bb @@ -0,0 +1,30 @@ +SUMMARY = "Optimised Inner Loop Runtime Compiler" +HOMEPAGE = "http://gstreamer.freedesktop.org/modules/orc.html" +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] = "b6b95a47eff713e91873e2c2b1a5b3ad" +SRC_URI[sha256sum] = "a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075" + +inherit meson pkgconfig gtk-doc + +GTKDOC_MESON_OPTION = "gtk_doc" +GTKDOC_MESON_ENABLE_FLAG = "enabled" +GTKDOC_MESON_DISABLE_FLAG = "disabled" + +BBCLASSEXTEND = "native nativesdk" + +PACKAGES =+ "orc-examples" +PACKAGES_DYNAMIC += "^liborc-.*" +FILES_orc-examples = "${libdir}/orc/*" +FILES_${PN} = "${bindir}/*" + +python populate_packages_prepend () { + libdir = d.expand('${libdir}') + do_split_packages(d, libdir, r'^lib(.*)\.so\.*', 'lib%s', 'ORC %s library', extra_depends='', allow_links=True) +} + +do_compile_prepend_class-native () { + sed -i -e 's#/tmp#.#g' ${S}/orc/orccodemem.c +} diff --git a/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch b/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch index 9891526e..78345e92 100644 --- a/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch +++ b/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch @@ -17,6 +17,7 @@ https://savannah.gnu.org/bugs/index.php?53820 Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)") +CVE: CVE-2018-1000156 Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=19599883ffb6a450d2884f081f8ecf68edbed7ee] Signed-off-by: Anuj Mittal --- diff --git a/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch b/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch index d6a219a1..8ffffef4 100644 --- a/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch +++ b/external/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch @@ -17,6 +17,7 @@ https://savannah.gnu.org/bugs/index.php?53820 Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)") Fixes: 19599883ffb6 ("Don't leak temporary file on failed ed-style patch") +CVE: CVE-2018-1000156 Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=369dcccdfa6336e5a873d6d63705cfbe04c55727] Signed-off-by: Anuj Mittal --- diff --git a/external/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch b/external/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch index f60dfe87..d13d419f 100644 --- a/external/poky/meta/recipes-devtools/patch/patch/0001-Invoke-ed-directly-instead-of-using-the-shell.patch +++ b/external/poky/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 --- diff --git a/external/poky/meta/recipes-devtools/patch/patch_2.7.6.bb b/external/poky/meta/recipes-devtools/patch/patch_2.7.6.bb index 5d7f55f8..b5897b35 100644 --- a/external/poky/meta/recipes-devtools/patch/patch_2.7.6.bb +++ b/external/poky/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/external/poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch deleted file mode 100644 index 49050a18..00000000 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e3658740ec100e4c8cf83295460b032979e1a99a Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Fri, 9 Sep 2016 18:21:32 -0300 -Subject: [PATCH] Increase maxSize to 64MB -Organization: O.S. Systems Software LTDA. - -Fix error: - -/ -|ERROR: qemu-native-2.5.0-r1 do_populate_sysroot_setscene: '('patchelf-uninative', -|'--set-interpreter', '../build/tmp/sysroots-uninative/x86_64-linux/lib/ -|ld-linux-x86-64.so.2', '../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/ -|sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64')' -|failed with exit code 1 and the following output: -|warning: working around a Linux kernel bug by creating a hole of 36032512 -|bytes in ‘../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/ -|sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64’ -|maximum file size exceeded -\ - -Similar issue is discussed here: -https://github.com/NixOS/patchelf/issues/47 - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Fabio Berton ---- - src/patchelf.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/patchelf.cc b/src/patchelf.cc -index a59c12d..0fd7355 100644 ---- a/src/patchelf.cc -+++ b/src/patchelf.cc -@@ -279,7 +279,7 @@ static void readFile(string fileName) - struct stat st; - if (stat(fileName.c_str(), &st) != 0) error("stat"); - fileSize = st.st_size; -- maxSize = fileSize + 32 * 1024 * 1024; -+ maxSize = fileSize + 64 * 1024 * 1024; - - contents = (unsigned char *) malloc(fileSize + maxSize); - if (!contents) abort(); --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch deleted file mode 100644 index 9ee8a554..00000000 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 73526cb546ae6b00ea6169e40b01fb7b5f0dbb50 Mon Sep 17 00:00:00 2001 -From: Fabio Berton -Date: Thu, 28 Jul 2016 11:05:06 -0300 -Subject: [PATCH] Skip empty section (fixes #66) -Organization: O.S. Systems Software LTDA. - -Upstream-Status: Pending - -Signed-off-by: Fabio Berton ---- - src/patchelf.cc | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/patchelf.cc b/src/patchelf.cc -index 136098f..2677a26 100644 ---- a/src/patchelf.cc -+++ b/src/patchelf.cc -@@ -684,6 +684,9 @@ void ElfFile::rewriteSectionsExecutable() - for (unsigned int i = 1; i <= lastReplaced; ++i) { - Elf_Shdr & shdr(shdrs[i]); - string sectionName = getSectionName(shdr); -+ if (sectionName == "") { -+ continue; -+ } - debug("looking at section `%s'\n", sectionName.c_str()); - /* !!! Why do we stop after a .dynstr section? I can't - remember! */ --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf/avoidholes.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/avoidholes.patch deleted file mode 100644 index 0b45c39b..00000000 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf/avoidholes.patch +++ /dev/null @@ -1,163 +0,0 @@ -Different types of binaries create challenges for patchelf. In order to extend -sections they need to be moved within the binary. The current approach to -handling ET_DYN binaries is to move the INTERP section to the end of the file. -This means changing PT_PHDR to add an extra PT_LOAD section so that the new section -is mmaped into memory by the elf loader in the kernel. In order to extend PHDR, -this means moving it to the end of the file. - -Its documented in patchelf there is a kernel 'bug' which means that if you have holes -in memory between the base load address and the PT_LOAD segment that contains PHDR, -it will pass an incorrect PHDR address to ld.so and fail to load the binary, segfaulting. - -To avoid this, the code currently inserts space into the binary to ensure that when -loaded into memory there are no holes between the PT_LOAD sections. This inflates the -binaries by many MBs in some cases. Whilst we could make them sparse, there is a second -issue which is that strip can fail to process these binaries: - -$ strip fixincl -Not enough room for program headers, try linking with -N -[.note.ABI-tag]: Bad value - -This turns out to be due to libbfd not liking the relocated PHDR section either -(https://github.com/NixOS/patchelf/issues/10). - -Instead this patch implements a different approach, leaving PHDR where it is but extending -it in place to allow addition of a new PT_LOAD section. This overwrites sections in the -binary but those get moved to the end of the file in the new PT_LOAD section. - -This is based on patches linked from the above github issue, however whilst the idea -was good, the implementation wasn't correct and they've been rewritten here. - -RP -2017/3/7 - -Upstream-Status: Accepted - -Index: patchelf-0.9/src/patchelf.cc -=================================================================== ---- patchelf-0.9.orig/src/patchelf.cc -+++ patchelf-0.9/src/patchelf.cc -@@ -146,6 +146,8 @@ private: - string & replaceSection(const SectionName & sectionName, - unsigned int size); - -+ bool haveReplacedSection(const SectionName & sectionName); -+ - void writeReplacedSections(Elf_Off & curOff, - Elf_Addr startAddr, Elf_Off startOffset); - -@@ -497,6 +499,16 @@ unsigned int ElfFile: - return 0; - } - -+template -+bool ElfFile::haveReplacedSection(const SectionName & sectionName) -+{ -+ ReplacedSections::iterator i = replacedSections.find(sectionName); -+ -+ if (i != replacedSections.end()) -+ return true; -+ return false; -+} -+ - - template - string & ElfFile::replaceSection(const SectionName & sectionName, -@@ -595,52 +607,52 @@ void ElfFile::rewrite - - debug("last page is 0x%llx\n", (unsigned long long) startPage); - -+ /* Because we're adding a new section header, we're necessarily increasing -+ the size of the program header table. This can cause the first section -+ to overlap the program header table in memory; we need to shift the first -+ few segments to someplace else. */ -+ /* Some sections may already be replaced so account for that */ -+ unsigned int i = 1; -+ Elf_Addr pht_size = sizeof(Elf_Ehdr) + (phdrs.size() + 1)*sizeof(Elf_Phdr); -+ while( shdrs[i].sh_addr <= pht_size && i < rdi(hdr->e_shnum) ) { -+ if (not haveReplacedSection(getSectionName(shdrs[i]))) -+ replaceSection(getSectionName(shdrs[i]), shdrs[i].sh_size); -+ i++; -+ } - -- /* Compute the total space needed for the replaced sections and -- the program headers. */ -- off_t neededSpace = (phdrs.size() + 1) * sizeof(Elf_Phdr); -+ /* Compute the total space needed for the replaced sections */ -+ off_t neededSpace = 0; - for (ReplacedSections::iterator i = replacedSections.begin(); - i != replacedSections.end(); ++i) - neededSpace += roundUp(i->second.size(), sectionAlignment); - debug("needed space is %d\n", neededSpace); - -- - size_t startOffset = roundUp(fileSize, getPageSize()); - - growFile(startOffset + neededSpace); - -- - /* Even though this file is of type ET_DYN, it could actually be - an executable. For instance, Gold produces executables marked -- ET_DYN. In that case we can still hit the kernel bug that -- necessitated rewriteSectionsExecutable(). However, such -- executables also tend to start at virtual address 0, so -+ ET_DYN as does LD when linking with pie. If we move PT_PHDR, it -+ has to stay in the first PT_LOAD segment or any subsequent ones -+ if they're continuous in memory due to linux kernel constraints -+ (see BUGS). Since the end of the file would be after bss, we can't -+ move PHDR there, we therefore choose to leave PT_PHDR where it is but -+ move enough following sections such that we can add the extra PT_LOAD -+ section to it. This PT_LOAD segment ensures the sections at the end of -+ the file are mapped into memory for ld.so to process. -+ We can't use the approach in rewriteSectionsExecutable() -+ 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. As a -- workaround, make sure that the virtual address of our new -- PT_LOAD segment relative to the first PT_LOAD segment is equal -- to its offset; otherwise we hit the kernel bug. This may -- require creating a hole in the executable. The bigger the size -- of the uninitialised data segment, the bigger the hole. */ -+ 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); -- } else { -- size_t hole = startPage - startOffset; -- /* Print a warning, because the hole could be very big. */ -- fprintf(stderr, "warning: working around a Linux kernel bug by creating a hole of %zu bytes in ‘%s’\n", hole, fileName.c_str()); -- assert(hole % getPageSize() == 0); -- /* !!! We could create an actual hole in the file here, -- but it's probably not worth the effort. */ -- growFile(fileSize + hole); -- startOffset += hole; - } - startPage = startOffset; - } - -- -- /* Add a segment that maps the replaced sections and program -- headers into memory. */ -+ /* Add a segment that maps the replaced sections into memory. */ - phdrs.resize(rdi(hdr->e_phnum) + 1); - wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1); - Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1]; -@@ -653,15 +665,12 @@ void ElfFile::rewrite - - - /* Write out the replaced sections. */ -- Elf_Off curOff = startOffset + phdrs.size() * sizeof(Elf_Phdr); -+ Elf_Off curOff = startOffset; - writeReplacedSections(curOff, startPage, startOffset); - assert(curOff == startOffset + neededSpace); - -- -- /* Move the program header to the start of the new area. */ -- wri(hdr->e_phoff, startOffset); -- -- rewriteHeaders(startPage); -+ /* Write out the updated program and section headers */ -+ rewriteHeaders(hdr->e_phoff); - } - - diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch index f64cbed5..a0988423 100644 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch +++ b/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-adjusting-startPage.patch @@ -1,6 +1,9 @@ +From 1630d3f846c7721b1e7cd3b005bb2b34816e1d0f Mon Sep 17 00:00:00 2001 +From: Ed Bartosh +Date: Fri, 21 Jul 2017 12:33:53 +0300 +Subject: [PATCH] patchelf: fix segfault for binaries linked by gold + commit 1cc234fea5600190d872329aca60e2365cefc39e -Author: Ed Bartosh -Date: Fri Jul 21 12:33:53 2017 +0300 fix adjusting startPage @@ -19,11 +22,15 @@ 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 cbd36c0..e9d7ea5 100644 +index a63e3a11c61f..2483d25d78f1 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc -@@ -720,10 +720,8 @@ void ElfFile::rewriteSectionsLibrary() +@@ -756,10 +756,8 @@ void ElfFile::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. */ diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-phdrs.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-phdrs.patch new file mode 100644 index 00000000..d087bd78 --- /dev/null +++ b/external/poky/meta/recipes-devtools/patchelf/patchelf/fix-phdrs.patch @@ -0,0 +1,37 @@ +When running patchelf on some existing patchelf'd binaries to change to longer +RPATHS, ldd would report the binaries as invalid. The output of objdump -x on +those libraryies should show the top of the .dynamic section is getting trashed, +something like: + +0x600000001 0x0000000000429000 +0x335000 0x0000000000335000 +0xc740 0x000000000000c740 +0x1000 0x0000000000009098 +SONAME libglib-2.0.so.0 + +(which should be RPATH and DT_NEEDED entries) + +This was tracked down to the code which injects the PT_LOAD section. + +The issue is that if the program headers were previously relocated to the end +of the file which was how patchelf operated previously, the relocation code +wouldn't work properly on a second run as it now assumes they're located after +the elf header. This change forces them back to immediately follow the elf +header which is where the code has made space for them. + +Upstream-Status: Submitted [https://github.com/NixOS/patchelf/pull/202] +Signed-off-by: Richard Purdie +RP 2020/6/2 + +Index: git/src/patchelf.cc +=================================================================== +--- git.orig/src/patchelf.cc ++++ git/src/patchelf.cc +@@ -762,6 +762,7 @@ void ElfFile::rewrite + } + + /* Add a segment that maps the replaced sections into memory. */ ++ wri(hdr->e_phoff, sizeof(Elf_Ehdr)); + phdrs.resize(rdi(hdr->e_phnum) + 1); + wri(hdr->e_phnum, rdi(hdr->e_phnum) + 1); + Elf_Phdr & phdr = phdrs[rdi(hdr->e_phnum) - 1]; diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/external/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch index 9fafec4b..03b0d18a 100644 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch +++ b/external/poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch @@ -1,26 +1,26 @@ -From 2a603acb65993698c21f1c6eb7664f93ad830d52 Mon Sep 17 00:00:00 2001 +From 7f1fd10cfebd5ea2f3e1938abe1bd1c4828164a7 Mon Sep 17 00:00:00 2001 From: Fabio Berton Date: Fri, 9 Sep 2016 16:00:42 -0300 Subject: [PATCH] handle read-only files -Organization: O.S. Systems Software LTDA. Patch from: https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509 -Upstream-Status: Pending +Upstream-Status: Denied [https://github.com/NixOS/patchelf/pull/89] Signed-off-by: Fabio Berton + --- src/patchelf.cc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/patchelf.cc b/src/patchelf.cc -index 136098f..aea360e 100644 +index 0b4965adff83..b5db2aef0e8a 100644 --- a/src/patchelf.cc +++ b/src/patchelf.cc -@@ -388,7 +388,17 @@ void ElfFile::sortShdrs() +@@ -497,7 +497,17 @@ void ElfFile::sortShdrs() - static void writeFile(string fileName) + static void writeFile(std::string fileName, FileContents contents) { - int fd = open(fileName.c_str(), O_TRUNC | O_WRONLY); + struct stat st; @@ -37,7 +37,7 @@ index 136098f..aea360e 100644 if (fd == -1) error("open"); -@@ -397,6 +407,10 @@ static void writeFile(string fileName) +@@ -511,6 +521,10 @@ static void writeFile(std::string fileName, FileContents contents) if (close(fd) != 0) error("close"); @@ -48,6 +48,3 @@ index 136098f..aea360e 100644 } --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf_0.10.bb b/external/poky/meta/recipes-devtools/patchelf/patchelf_0.10.bb new file mode 100644 index 00000000..84e64077 --- /dev/null +++ b/external/poky/meta/recipes-devtools/patchelf/patchelf_0.10.bb @@ -0,0 +1,18 @@ +SRC_URI = "git://github.com/NixOS/patchelf;protocol=https \ + file://handle-read-only-files.patch \ + file://fix-adjusting-startPage.patch \ + file://fix-phdrs.patch \ + " + +LICENSE = "GPLv3" +SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries" + +SRCREV = "e1e39f3639e39360ceebb2f7ed533cede4623070" + +S = "${WORKDIR}/git" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +inherit autotools + +BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb b/external/poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb deleted file mode 100644 index d7030396..00000000 --- a/external/poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb +++ /dev/null @@ -1,19 +0,0 @@ -SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \ - file://Skip-empty-section-fixes-66.patch \ - file://handle-read-only-files.patch \ - file://Increase-maxSize-to-64MB.patch \ - file://avoidholes.patch \ - file://fix-adjusting-startPage.patch \ -" - -LICENSE = "GPLv3" -SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries" - -SRC_URI[md5sum] = "d02687629c7e1698a486a93a0d607947" -SRC_URI[sha256sum] = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -inherit autotools - -BBCLASSEXTEND = "native nativesdk" diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch b/external/poky/meta/recipes-devtools/perl/files/0001-CheckLib.pm-do-not-attempt-to-run-a-cross-executable.patch new file mode 100644 index 00000000..c5bbe788 --- /dev/null +++ b/external/poky/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 +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 +--- + 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/external/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch b/external/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch new file mode 100644 index 00000000..7d5c079b --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch @@ -0,0 +1,26 @@ +From 2f74a899474f428a4a5368a94accf801c5f97ae4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 4 Jun 2018 18:33:50 +0300 +Subject: [PATCH] ExtUtils-MakeMaker: add $(LDFLAGS) when linking binary + modules + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin + +--- + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +index fe53be1..249c048 100644 +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +@@ -1050,7 +1050,7 @@ sub xs_make_dynamic_lib { + } + + push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist; +- %s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \ ++ %s$(LD) %s $(LDDLFLAGS) %s %s $(LDFLAGS) $(OTHERLDFLAGS) %s $(MYEXTLIB) \ + $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \ + $(INST_DYNAMIC_FIX) + $(CHMOD) $(PERM_RWX) $@ diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch b/external/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch new file mode 100644 index 00000000..79cae0d6 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch @@ -0,0 +1,30 @@ +From a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5 Mon Sep 17 00:00:00 2001 +From: Richard Leach +Date: Sun, 19 May 2019 20:16:41 +0000 +Subject: [PATCH] PATCH: [perl #134117] Close DATA in loc_tools.pl + +This prevents unexpected text and fixes test lib/warnings.t + +Upstream-Status: Backport [a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5] + +Signed-off-by: Matthew Zeng + +--- + t/loc_tools.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/loc_tools.pl b/t/loc_tools.pl +index c76e29388a..beebd98d88 100644 +--- a/t/loc_tools.pl ++++ b/t/loc_tools.pl +@@ -421,7 +421,7 @@ sub find_locales ($;$) { + } + + # The rest of the locales are in this file. +- push @Data, ; ++ push @Data, ; close DATA; + + foreach my $line (@Data) { + my ($locale_name, $language_codes, $country_codes, $encodings) = +-- +2.25.0 diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch b/external/poky/meta/recipes-devtools/perl/files/0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch new file mode 100644 index 00000000..ed8ec1d4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch @@ -0,0 +1,34 @@ +From e8e095b9c71c58f8197d6315359446b6b084cb2b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 5 Jun 2018 14:58:42 +0300 +Subject: [PATCH] Somehow this module breaks through the perl wrapper and + declares perl binary to be 'perl.real'. This patch forces it back to perl. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +index 948c476..f537526 100644 +--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm ++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +@@ -1110,6 +1110,9 @@ WARNING + } + + foreach my $name (@$names){ ++ # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly ++ $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/); ++ + my ($abs, $use_dir); + if ($self->file_name_is_absolute($name)) { # /foo/bar + $abs = $name; +@@ -2006,6 +2009,7 @@ sub init_PERL { + + $self->{PERL} ||= + $self->find_perl(5.0, \@perls, \@defpath, $Verbose ); ++ + + my $perl = $self->{PERL}; + $perl =~ s/^"//; diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch b/external/poky/meta/recipes-devtools/perl/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch new file mode 100644 index 00000000..3b0fc453 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch @@ -0,0 +1,69 @@ +From 19c1987b455998d2959a5fdf3d1ed911d35e70f2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 2 Jan 2019 17:55:35 +0100 +Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library + path + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin + +--- + cnf/configure_args.sh | 2 +- + cnf/configure_path.sh | 11 ++++++----- + 2 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/cnf/configure_args.sh b/cnf/configure_args.sh +index 29ca4f5..3297fb3 100644 +--- a/cnf/configure_args.sh ++++ b/cnf/configure_args.sh +@@ -155,7 +155,7 @@ while [ $i -le $# -o -n "$n" ]; do + help) mode="help" ;; + regen|regenerate) mode="regen" ;; + keeplog) defuser "$a" 1 ;; +- prefix|html[13]dir|libsdir) defuser $a "$v" ;; ++ prefix|html[13]dir|libsdir|libdir) defuser $a "$v" ;; + man[13]dir|otherlibsdir) defuser $a "$v" ;; + siteprefix|sitehtml[13]dir) defuser $a "$v" ;; + siteman[13]dir|vendorman[13]dir)defuser $a "$v" ;; +diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh +index fe7eac7..bcba8b8 100644 +--- a/cnf/configure_path.sh ++++ b/cnf/configure_path.sh +@@ -30,6 +30,7 @@ definst() { + define "$1" "$installpath$v" + } + ++define libdir "$prefix/lib" + define sharedir "$prefix/share" + define html1dir "$sharedir/doc/$perlname/html" + define html3dir "$sharedir/doc/$perlname/html" +@@ -38,16 +39,16 @@ define man1ext "1" + define man3dir "$sharedir/man/man3" + define man3ext "3" + define bin "$prefix/bin" +-define lib "$prefix/lib" ++define lib "$libdir" + define scriptdir "$prefix/bin" + define libsdirs ' ' +-defrel privlib "$prefix/lib/$package/$version" +-defrel archlib "$prefix/lib/$package/$version/$archname" ++defrel privlib "$libdir/$package/$version" ++defrel archlib "$libdir/$package/$version/$archname" + define perlpath "$prefix/bin/$perlname" + define d_archlib 'define' + + define sitebin "$prefix/bin" +-defrel sitelib_stem "$prefix/lib/$package/site_perl" ++defrel sitelib_stem "$libdir/$package/site_perl" + define sitelib "$sitelib_stem/$version" + define sitearch "$sitelib_stem/$version/$archname" + define siteprefix "$prefix" +@@ -145,7 +146,7 @@ vendortest() { + } + + vendorpath vendorbin "$vendorprefix/bin" +-vendorpath vendorlib_stem "$vendorprefix/lib/$package/vendor_perl" ++vendorpath vendorlib_stem "$libdir/$package/vendor_perl" + vendorpath vendorlib "$vendorlib_stem/$version" + vendorpath vendorarch "$vendorlib_stem/$version/$archname" + vendorpath vendorscript "$vendorprefix/bin" diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/external/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch new file mode 100644 index 00000000..0aaeaa29 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch @@ -0,0 +1,29 @@ +From a66811c487ecf8ba8724879c253bb10dfa82aeb5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 1 Jun 2018 19:57:32 +0300 +Subject: [PATCH] configure_tool.sh: do not quote the argument to 'command' + +As it seems to break things if the argument has spaces and arguments in it. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + cnf/configure_tool.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cnf/configure_tool.sh b/cnf/configure_tool.sh +index 32201c0..461bc68 100644 +--- a/cnf/configure_tool.sh ++++ b/cnf/configure_tool.sh +@@ -2,7 +2,7 @@ + + tryprog() { + log "trying $1=$2" +- if command -v "$2" 1>/dev/null 2>/dev/null; then ++ if command -v $2 1>/dev/null 2>/dev/null; then + define "$1" "$2" + result "$2" + return 0 +-- +2.17.0 + diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch b/external/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch new file mode 100644 index 00000000..3a41820f --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch @@ -0,0 +1,30 @@ +From 31a2c5555f9ef32f35d7d5ce1fd09a010ba5f5c6 Mon Sep 17 00:00:00 2001 +From: Joshua Watt +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 +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/external/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/external/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch new file mode 100644 index 00000000..e7985036 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch @@ -0,0 +1,27 @@ +From f824cbec9ac8f113a4ae35d57bd18625d415a71b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 27 Nov 2018 15:37:40 +0100 +Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 01644cd..be811a7 100644 +--- a/Makefile ++++ b/Makefile +@@ -180,7 +180,7 @@ endif + + ifeq ($(useshrplib),true) + $(LIBPERL): +- $(CC) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) ++ $(CC) $(LDFLAGS) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) + else + $(LIBPERL): + $(AR) cru $@ $(filter %$o,$^) +-- +2.17.1 + diff --git a/external/poky/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch b/external/poky/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch new file mode 100644 index 00000000..0f3a2c63 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0001-tests-adjust-to-correctly-exclude-unbuilt-extensions.patch @@ -0,0 +1,27 @@ +From b0d53cfd785f64002128ac5eecc4aed0663d9c30 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 9 Jan 2020 17:26:55 +0100 +Subject: [PATCH] tests: adjust to correctly exclude unbuilt extensions + +Issue is reported here: +https://github.com/arsv/perl-cross/issues/85 + +Upstream-Status: Inappropriate [issue caused by perl-cross] +Signed-off-by: Alexander Kanavin +--- + t/TEST | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/TEST b/t/TEST +index a9c844f..8d3505f 100755 +--- a/t/TEST ++++ b/t/TEST +@@ -419,7 +419,7 @@ sub _tests_from_manifest { + while () { + if (m!^((?:cpan|dist|ext)/(\S+)/+(?:[^/\s]+\.t|test\.pl)|lib/\S+?(?:\.t|test\.pl))\s!) { + my $t = $1; +- my $extension = $2; ++ my $extension = $1."/".$2; + + # XXX Generates way too many error lines currently. Skip for + # v5.22 diff --git a/external/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch b/external/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch new file mode 100644 index 00000000..686cc716 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/0002-Constant-Fix-up-shebang.patch @@ -0,0 +1,32 @@ +From 260ebd15e16cd86b9b58e5c5f3a496b3853ca46d Mon Sep 17 00:00:00 2001 +From: Joshua Watt +Date: Mon, 17 Jun 2019 10:47:23 -0500 +Subject: [PATCH 2/2] Constant: Fix up shebang + +The instructions indicate that the script should be explicitly passed to +"perl -x", so automatically setting the #! to be ^X is unnecessary and +makes the file non-reproducible when building because ^X could be the +absolute path to miniperl. + +Signed-off-by: Joshua Watt +Upstream-Status: Submitted [https://rt.cpan.org/Public/Bug/Display.html?id=129866] +--- + cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm +index 14eb809714..d4d074e121 100644 +--- a/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm ++++ b/cpan/ExtUtils-Constant/lib/ExtUtils/Constant/XS.pm +@@ -219,7 +219,7 @@ sub dogfood { + Regenerate these constant functions by feeding this entire source file to + perl -x + +-#!$^X -w ++#!/usr/bin/env perl -x -w + use ExtUtils::Constant qw (constant_types C_constant XS_constant); + + EOT +-- +2.21.0 + diff --git a/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10543.patch b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10543.patch new file mode 100644 index 00000000..36dff0aa --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10543.patch @@ -0,0 +1,36 @@ +From 897d1f7fd515b828e4b198d8b8bef76c6faf03ed Mon Sep 17 00:00:00 2001 +From: John Lightsey +Date: Wed, 20 Nov 2019 20:02:45 -0600 +Subject: [PATCH] regcomp.c: Prevent integer overflow from nested regex + quantifiers. + +(CVE-2020-10543) On 32bit systems the size calculations for nested regular +expression quantifiers could overflow causing heap memory corruption. + +Fixes: Perl/perl5-security#125 +(cherry picked from commit bfd31397db5dc1a5c5d3e0a1f753a4f89a736e71) + +Upstream-Status: Backport [https://github.com/perl/perl5/commit/897d1f7fd515b828e4b198d8b8bef76c6faf03ed] +CVE: CVE-2020-10543 +Signed-off-by: Lee Chee Yang +--- + regcomp.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/regcomp.c b/regcomp.c +index 93c8d98fbb0..5f86be8086d 100644 +--- a/regcomp.c ++++ b/regcomp.c +@@ -5489,6 +5489,12 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, + RExC_precomp))); + } + ++ if ( ( minnext > 0 && mincount >= SSize_t_MAX / minnext ) ++ || min >= SSize_t_MAX - minnext * mincount ) ++ { ++ FAIL("Regexp out of space"); ++ } ++ + min += minnext * mincount; + is_inf_internal |= deltanext == SSize_t_MAX + || (maxcount == REG_INFTY && minnext + deltanext > 0); diff --git a/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_1.patch b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_1.patch new file mode 100644 index 00000000..b86085a5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_1.patch @@ -0,0 +1,152 @@ +From 0a320d753fe7fca03df259a4dfd8e641e51edaa8 Mon Sep 17 00:00:00 2001 +From: Hugo van der Sanden +Date: Tue, 18 Feb 2020 13:51:16 +0000 +Subject: [PATCH] study_chunk: extract rck_elide_nothing + +(CVE-2020-10878) + +(cherry picked from commit 93dee06613d4e1428fb10905ce1c3c96f53113dc) + +Upstream-Status: Backport [https://github.com/perl/perl5/commit/0a320d753fe7fca03df259a4dfd8e641e51edaa8] +CVE: CVE-2020-10878 +Signed-off-by: Lee Chee Yang +--- + embed.fnc | 1 + + embed.h | 1 + + proto.h | 3 +++ + regcomp.c | 70 ++++++++++++++++++++++++++++++++++--------------------- + 4 files changed, 48 insertions(+), 27 deletions(-) + +diff --git a/embed.fnc b/embed.fnc +index aedb4baef19..d7cd04d3fc3 100644 +--- a/embed.fnc ++++ b/embed.fnc +@@ -2481,6 +2481,7 @@ Es |SSize_t|study_chunk |NN RExC_state_t *pRExC_state \ + |I32 stopparen|U32 recursed_depth \ + |NULLOK regnode_ssc *and_withp \ + |U32 flags|U32 depth ++Es |void |rck_elide_nothing|NN regnode *node + EsR |SV * |get_ANYOFM_contents|NN const regnode * n + EsRn |U32 |add_data |NN RExC_state_t* const pRExC_state \ + |NN const char* const s|const U32 n +diff --git a/embed.h b/embed.h +index 75c91f77f45..356a8b98d96 100644 +--- a/embed.h ++++ b/embed.h +@@ -1208,6 +1208,7 @@ + #define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a) + #define parse_uniprop_string(a,b,c,d,e,f,g,h,i) Perl_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i) + #define populate_ANYOF_from_invlist(a,b) S_populate_ANYOF_from_invlist(aTHX_ a,b) ++#define rck_elide_nothing(a) S_rck_elide_nothing(aTHX_ a) + #define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d) + #define reg2Lanode(a,b,c,d) S_reg2Lanode(aTHX_ a,b,c,d) + #define reg_node(a,b) S_reg_node(aTHX_ a,b) +diff --git a/proto.h b/proto.h +index 141ddbaee6d..f316fe134e1 100644 +--- a/proto.h ++++ b/proto.h +@@ -5543,6 +5543,9 @@ PERL_CALLCONV SV * Perl_parse_uniprop_string(pTHX_ const char * const name, cons + STATIC void S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr); + #define PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST \ + assert(node); assert(invlist_ptr) ++STATIC void S_rck_elide_nothing(pTHX_ regnode *node); ++#define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING \ ++ assert(node) + PERL_STATIC_NO_RET void S_re_croak2(pTHX_ bool utf8, const char* pat1, const char* pat2, ...) + __attribute__noreturn__; + #define PERL_ARGS_ASSERT_RE_CROAK2 \ +diff --git a/regcomp.c b/regcomp.c +index 5f86be8086d..4ba2980db66 100644 +--- a/regcomp.c ++++ b/regcomp.c +@@ -4450,6 +4450,44 @@ S_unwind_scan_frames(pTHX_ const void *p) + } while (f); + } + ++/* Follow the next-chain of the current node and optimize away ++ all the NOTHINGs from it. ++ */ ++STATIC void ++S_rck_elide_nothing(pTHX_ regnode *node) ++{ ++ dVAR; ++ ++ PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING; ++ ++ if (OP(node) != CURLYX) { ++ const int max = (reg_off_by_arg[OP(node)] ++ ? I32_MAX ++ /* I32 may be smaller than U16 on CRAYs! */ ++ : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX)); ++ int off = (reg_off_by_arg[OP(node)] ? ARG(node) : NEXT_OFF(node)); ++ int noff; ++ regnode *n = node; ++ ++ /* Skip NOTHING and LONGJMP. */ ++ while ( ++ (n = regnext(n)) ++ && ( ++ (PL_regkind[OP(n)] == NOTHING && (noff = NEXT_OFF(n))) ++ || ((OP(n) == LONGJMP) && (noff = ARG(n))) ++ ) ++ && off + noff < max ++ ) { ++ off += noff; ++ } ++ if (reg_off_by_arg[OP(node)]) ++ ARG(node) = off; ++ else ++ NEXT_OFF(node) = off; ++ } ++ return; ++} ++ + /* the return from this sub is the minimum length that could possibly match */ + STATIC SSize_t + S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, +@@ -4550,28 +4588,10 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, + */ + JOIN_EXACT(scan,&min_subtract, &unfolded_multi_char, 0); + +- /* Follow the next-chain of the current node and optimize +- away all the NOTHINGs from it. */ +- if (OP(scan) != CURLYX) { +- const int max = (reg_off_by_arg[OP(scan)] +- ? I32_MAX +- /* I32 may be smaller than U16 on CRAYs! */ +- : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX)); +- int off = (reg_off_by_arg[OP(scan)] ? ARG(scan) : NEXT_OFF(scan)); +- int noff; +- regnode *n = scan; +- +- /* Skip NOTHING and LONGJMP. */ +- while ((n = regnext(n)) +- && ((PL_regkind[OP(n)] == NOTHING && (noff = NEXT_OFF(n))) +- || ((OP(n) == LONGJMP) && (noff = ARG(n)))) +- && off + noff < max) +- off += noff; +- if (reg_off_by_arg[OP(scan)]) +- ARG(scan) = off; +- else +- NEXT_OFF(scan) = off; +- } ++ /* Follow the next-chain of the current node and optimize ++ away all the NOTHINGs from it. ++ */ ++ rck_elide_nothing(scan); + + /* The principal pseudo-switch. Cannot be a switch, since we + look into several different things. */ +@@ -5745,11 +5765,7 @@ Perl_re_printf( aTHX_ "LHS=%" UVuf " RHS=%" UVuf "\n", + if (data && (fl & SF_HAS_EVAL)) + data->flags |= SF_HAS_EVAL; + optimize_curly_tail: +- if (OP(oscan) != CURLYX) { +- while (PL_regkind[OP(next = regnext(oscan))] == NOTHING +- && NEXT_OFF(next)) +- NEXT_OFF(oscan) += NEXT_OFF(next); +- } ++ rck_elide_nothing(oscan); + continue; + + default: diff --git a/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_2.patch b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_2.patch new file mode 100644 index 00000000..0bacd6b1 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/CVE-2020-10878_2.patch @@ -0,0 +1,36 @@ +From 3295b48defa0f8570114877b063fe546dd348b3c Mon Sep 17 00:00:00 2001 +From: Karl Williamson +Date: Thu, 20 Feb 2020 17:49:36 +0000 +Subject: [PATCH] regcomp: use long jumps if there is any possibility of + overflow + +(CVE-2020-10878) Be conservative for backporting, we'll aim to do +something more aggressive for bleadperl. + +(cherry picked from commit 9d7759db46f3b31b1d3f79c44266b6ba42a47fc6) + +Upstream-Status: Backport [https://github.com/perl/perl5/commit/3295b48defa0f8570114877b063fe546dd348b3c] +CVE: CVE-2020-10878 +Signed-off-by: Lee Chee Yang +--- + regcomp.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/regcomp.c b/regcomp.c +index 4ba2980db66..73c35a67020 100644 +--- a/regcomp.c ++++ b/regcomp.c +@@ -7762,6 +7762,13 @@ Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_count, + + /* We have that number in RExC_npar */ + RExC_total_parens = RExC_npar; ++ ++ /* XXX For backporting, use long jumps if there is any possibility of ++ * overflow */ ++ if (RExC_size > U16_MAX && ! RExC_use_BRANCHJ) { ++ RExC_use_BRANCHJ = TRUE; ++ flags |= RESTART_PARSE; ++ } + } + else if (! MUST_RESTART(flags)) { + ReREFCNT_dec(Rx); diff --git a/external/poky/meta/recipes-devtools/perl/files/determinism.patch b/external/poky/meta/recipes-devtools/perl/files/determinism.patch new file mode 100644 index 00000000..ed4d06f5 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/determinism.patch @@ -0,0 +1,81 @@ +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 ' + try_add '#define foo(fmt, ...) printf(fmt, __VA_ARGS__)' +- try_add 'int main(void) { foo("%i\n", 1234); return 0; }' ++ try_add 'int main(void) { foo("%i", 1234); return 0; }' + try_compile + resdef d_c99_variadic_macros 'supported' 'missing' + fi +Index: perl-5.30.1/cnf/configure_mods.sh +=================================================================== +--- perl-5.30.1.orig/cnf/configure_mods.sh ++++ 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/external/poky/meta/recipes-devtools/perl/files/encodefix.patch b/external/poky/meta/recipes-devtools/perl/files/encodefix.patch new file mode 100644 index 00000000..396ed0d5 --- /dev/null +++ b/external/poky/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 + +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/external/poky/meta/recipes-devtools/perl/files/errno_ver.diff b/external/poky/meta/recipes-devtools/perl/files/errno_ver.diff new file mode 100644 index 00000000..a965fbee --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/errno_ver.diff @@ -0,0 +1,37 @@ +From 8e1efba7560d8d55524c7a0f1b0539ddce419b86 Mon Sep 17 00:00:00 2001 +From: Brendan O'Dea +Date: Fri, 16 Dec 2005 01:32:14 +1100 +Subject: [PATCH 6/8] Remove Errno version check due to upgrade problems with + long-running processes. + +Bug-Debian: http://bugs.debian.org/343351 + +Remove version check which can cause problems for long running +processes embedding perl when upgrading to a newer version, +compatible, but built on a different machine. + +Patch-Name: debian/errno_ver.diff +Upstream-Status: Pending +--- + ext/Errno/Errno_pm.PL | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL +index 6251a3c..eeed445 100644 +--- a/ext/Errno/Errno_pm.PL ++++ b/ext/Errno/Errno_pm.PL +@@ -294,11 +294,6 @@ EDQ + # they've already declared perl doesn't need to worry about this risk. + if(!$ENV{'PERL_BUILD_EXPAND_CONFIG_VARS'}) { + print <<"CONFIG_CHECK_END"; +-use Config; +-"\$Config{'archname'}-\$Config{'osvers'}" eq +-"$archname-$Config{'osvers'}" or +- die "Errno architecture ($archname-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'}-\$Config{'osvers'})"; +- + CONFIG_CHECK_END + } + +-- +2.1.4 + diff --git a/external/poky/meta/recipes-devtools/perl/files/native-perlinc.patch b/external/poky/meta/recipes-devtools/perl/files/native-perlinc.patch new file mode 100644 index 00000000..a2e1aefd --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/native-perlinc.patch @@ -0,0 +1,27 @@ +Upstream-Status:Inappropriate [embedded specific] +Signed-off-by: Alexander Kanavin + +Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm +=================================================================== +--- perl-5.12.3.orig/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 ++++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000 +@@ -1597,6 +1597,19 @@ + $self->{PERL_LIB} ||= $Config{privlibexp}; + $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; + $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now ++ # Check for environment override so we'll find the headers in the correct place ++ if (defined $ENV{PERL_LIB}) ++ { ++ $self->{PERL_LIB} = $ENV{PERL_LIB}; ++ } ++ if (defined $ENV{PERL_ARCHLIB}) ++ { ++ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB}; ++ } ++ if (defined $ENV{PERL_INC}) ++ { ++ $self->{PERL_INC} = $ENV{PERL_INC}; ++ } + my $perl_h; + + if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h")) diff --git a/external/poky/meta/recipes-devtools/perl/files/perl-configpm-switch.patch b/external/poky/meta/recipes-devtools/perl/files/perl-configpm-switch.patch new file mode 100644 index 00000000..80ce4a6d --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/perl-configpm-switch.patch @@ -0,0 +1,57 @@ +From 5120acaa2be5787d9657f6b91bc8ee3c2d664fbe Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Sun, 27 May 2007 21:04:11 +0000 +Subject: [PATCH] perl: 5.8.7 -> 5.8.8 (from OE) + +This patch is used for perl-native only. It enables the switching of +configuration files between Config_heavy.pl and +Config_heavy-target.pl by setting the environment variables +PERLCONFIGTARGET - the later containing settings for the target while +the former contains those for the host. This will allow cpan.bbclass +to use the settings appropriate for the native and/or target builds +as required. This also disables the use of the cache since the cached +values would be valid for the host only. + +Upstream-Status: Inappropriate [native] +Signed-off-by: Alexander Kanavin + +--- + configpm | 18 ++++++++++++++++-- + 1 file changed, 16 insertions(+), 2 deletions(-) + +diff --git a/configpm b/configpm +index c8de8bf..204613c 100755 +--- a/configpm ++++ b/configpm +@@ -687,7 +687,7 @@ sub FETCH { + my($self, $key) = @_; + + # check for cached value (which may be undef so we use exists not defined) +- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); ++ return $self->fetch_string($key); + } + + ENDOFEND +@@ -845,7 +845,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fast_config; + sub DESTROY { } + + sub AUTOLOAD { +- require 'Config_heavy.pl'; ++ my $cfgfile = 'Config_heavy.pl'; ++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes") ++ { ++ $cfgfile = 'Config_heavy-target.pl'; ++ } ++ if (defined $ENV{PERL_ARCHLIB}) ++ { ++ push @INC, $ENV{PERL_ARCHLIB}; ++ require $cfgfile; ++ pop @INC; ++ } ++ else ++ { ++ require $cfgfile; ++ } + goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; + die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; + } diff --git a/external/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch b/external/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch new file mode 100644 index 00000000..6bb832a4 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/perl-dynloader.patch @@ -0,0 +1,38 @@ +Upstream-Status:Inappropriate [embedded specific] + +Allow the location that .so files are searched for for dynamic +loading to be changed via an environment variable. This is to allow +us to load .so's from the host system while building for the target +system. + +Update by Nitin A Kamble 2011/04/21 + +Index: perl-5.24.1/dist/XSLoader/XSLoader_pm.PL +=================================================================== +--- perl-5.24.1.orig/dist/XSLoader/XSLoader_pm.PL ++++ perl-5.24.1/dist/XSLoader/XSLoader_pm.PL +@@ -52,6 +52,24 @@ sub load { + my ($caller, $modlibname) = caller(); + my $module = $caller; + ++ # OE: Allow env to form dynamic loader to look in a different place ++ # This is so it finds the host .so files, not the targets ++ if (defined $ENV{PERLHOSTLIB}) ++ { ++ my $hostlib = $ENV{PERLHOSTLIB}; ++ my $hostarchlib = $ENV{PERLHOSTARCHLIB}; ++ print STDERR "*** Module name IN: $modlibname\n"; ++ ($p1, $p2, $p3, $p4, $p5, $p6, $p7) = $modlibname =~ m/(^(.*lib\w*\/)?)((perl5\/[0-9\.]*\/)?)(([^\/]*)\/)?(.*)$/; ++ print STDERR "*** p1: $p1 p3: $p3 p5: $p5 p7: $p7\n"; ++ if ( $p1 ne "" ) { ++ $modlibname = $hostlib.$p7; ++ } ++ if ( $p6 ne "" ) { ++ $modlibname = $hostarchlib.$p7; ++ } ++ print STDERR "*** Module name OUT: $modlibname\n"; ++ } ++ + if (@_) { + $module = $_[0]; + } else { diff --git a/external/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt b/external/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt new file mode 100644 index 00000000..9ecfce00 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt @@ -0,0 +1,4468 @@ +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-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" +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" +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-hash += "perl-module-carp" +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" +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-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" +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-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-encoding" +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-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-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" +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-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-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-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" +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-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-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-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-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-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" +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-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-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" +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-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" +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-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-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-warnings" +RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-base" +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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-warnings" +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-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-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-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-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-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-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-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-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-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-overload" +RDEPENDS_perl-module-test-builder += "perl-module-strict" +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-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-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-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" diff --git a/external/poky/meta/recipes-devtools/perl/files/racefix.patch b/external/poky/meta/recipes-devtools/perl/files/racefix.patch new file mode 100644 index 00000000..bac42d26 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/racefix.patch @@ -0,0 +1,24 @@ +In our builds Config_heavy.pl sometimes has lines: +cwarnflags=XXX +ccstdflags=XXX +and sometimes does not. +The reason is that this information is pulled from cflags by configpm and yet +there is no dependency in the Makefile. Add one to fix this. + +Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/89] +RP 2020/2/19 +Signed-off-by: Richard Purdie + +Index: perl-5.30.1/Makefile +=================================================================== +--- perl-5.30.1.orig/Makefile ++++ perl-5.30.1/Makefile +@@ -204,7 +204,7 @@ configpod: $(CONFIGPOD) + git_version.h lib/Config_git.pl: make_patchnum.pl | miniperl$X + ./miniperl_top make_patchnum.pl + +-lib/Config.pm lib/Config_heavy.pl lib/Config.pod: config.sh \ ++lib/Config.pm lib/Config_heavy.pl lib/Config.pod: config.sh cflags \ + lib/Config_git.pl Porting/Glossary | miniperl$X + ./miniperl_top configpm + diff --git a/external/poky/meta/recipes-devtools/perl/files/run-ptest b/external/poky/meta/recipes-devtools/perl/files/run-ptest new file mode 100644 index 00000000..dad4d429 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/files/run-ptest @@ -0,0 +1,2 @@ +#!/bin/sh +cd t && PERL_BUILD_PACKAGING=1 ./TEST | sed -u -e 's|\(.*\) .* ok$|PASS: \1|' -e 's|\(.*\) .* skipped|SKIP: \1|' -e 's|\(.*\) \.\(.*\)|FAIL: \1|' diff --git a/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17026.bb b/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17026.bb deleted file mode 100644 index 6f42b472..00000000 --- a/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17026.bb +++ /dev/null @@ -1,33 +0,0 @@ -SUMMARY = "Error - Error/exception handling in an OO-ish way" -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." - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100" - -DEPENDS += "perl" - -SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz" - -SRC_URI[md5sum] = "0dcd94640f617df02b6d6c1e4e92018c" -SRC_URI[sha256sum] = "37590a962cd73ae03470e1ff16459a6cbc5273fc57626b8981dab9c2433155d9" - -S = "${WORKDIR}/Error-${PV}" - -inherit cpan ptest-perl - -do_compile() { - export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" - cpan_do_compile -} - -do_install_prepend() { - # test requires "-T" (taint) command line option - rm -rf ${B}/t/pod-coverage.t -} - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb b/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb new file mode 100644 index 00000000..038808f0 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/liberror-perl_0.17029.bb @@ -0,0 +1,47 @@ +SUMMARY = "Error - Error/exception handling in an OO-ish way" +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://github.com/shlomif/perl-error.pm" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=8f3499d09ee74a050c0319391ff9d100" + +DEPENDS += "perl" + +RDEPENDS_${PN} += " \ + perl-module-carp \ + perl-module-exporter \ + perl-module-scalar-util \ + perl-module-overload \ + perl-module-strict \ + perl-module-vars \ + perl-module-warnings \ +" + +RDEPENDS_${PN}-ptest += " \ + perl-module-base \ + perl-module-file-spec \ + perl-module-io-handle \ + perl-module-ipc-open3 \ + perl-module-lib \ + perl-module-test-more \ +" + +SRC_URI = "http://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-${PV}.tar.gz" + +SRC_URI[md5sum] = "6732b1c6207e4a9a3e2987c88368039a" +SRC_URI[sha256sum] = "1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc" + +S = "${WORKDIR}/Error-${PV}" + +inherit cpan ptest-perl + +do_install_prepend() { + # test requires "-T" (taint) command line option + rm -rf ${B}/t/pod-coverage.t +} + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest b/external/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest new file mode 100644 index 00000000..d802781f --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest @@ -0,0 +1,14 @@ +#!/bin/sh + +for case in `find t -type f -name '*.t'`; do + perl -I inc -I blib -Mblib $case >$case.output 2>&1 + ret=$? + cat $case.output + if [ $ret -ne 0 ]; then + echo "FAIL: ${case%.t}" + else + echo "PASS: ${case%.t}" + fi + + rm -f $case.output +done diff --git a/external/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb b/external/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb new file mode 100644 index 00000000..a6fd7b1c --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4231.bb @@ -0,0 +1,123 @@ +SUMMARY = "Module::Build - Build and install Perl modules" +DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \ +Makefile.PL file to drive distribution configuration, build, test and \ +installation. Traditionally, Build.PL uses Module::Build as the underlying \ +build system. This module provides a simple, lightweight, drop-in replacement. \ +Whereas Module::Build has over 6,700 lines of code; this module has less than \ +120, yet supports the features needed by most distributions." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/release/Module-Build" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=949;endline=954;md5=624c06db56a2af4d70cf9edc29fcae1b" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \ + file://run-ptest \ + " +SRC_URI[md5sum] = "066b193e461d7dfe1eca17a139353001" +SRC_URI[sha256sum] = "7e0f4c692c1740c1ac84ea14d7ea3d8bc798b2fb26c09877229e04f430b2b717" + +S = "${WORKDIR}/Module-Build-${PV}" + +inherit cpan_build ptest-perl + +# From: +# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb +# +do_patch_module_build () { + cd ${S} + sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm +} + +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} += " \ + perl-module-carp \ + perl-module-cpan \ + perl-module-config \ + perl-module-cwd \ + perl-module-data-dumper \ + perl-module-encode \ + perl-module-extutils-cbuilder \ + perl-module-extutils-command \ + perl-module-extutils-install \ + perl-module-extutils-installed \ + perl-module-extutils-mkbootstrap \ + perl-module-extutils-packlist \ + perl-module-extutils-parsexs \ + perl-module-file-basename \ + perl-module-file-compare \ + perl-module-file-copy \ + perl-module-file-find \ + perl-module-file-glob \ + perl-module-file-path \ + perl-module-file-spec \ + perl-module-file-spec-functions \ + perl-module-getopt-long \ + perl-module-metadata \ + perl-module-perl-ostype \ + perl-module-pod-man \ + perl-module-tap-harness \ + perl-module-text-abbrev \ + perl-module-text-parsewords \ + perl-module-utf8 \ +" + +RDEPENDS_${PN}-ptest += " \ + packagegroup-core-buildessential \ + perl-dev \ + perl-module-blib \ + perl-module-extutils-command-mm \ + perl-module-file-temp \ + perl-module-lib \ + perl-module-perlio \ + perl-module-perlio-encoding \ + perl-module-pod-text \ + perl-module-tap-harness-env \ + perl-module-tap-parser \ + perl-module-tap-parser-scheduler \ + perl-module-test-harness \ + perl-module-test-more \ +" + +RPROVIDES_${PN} += "\ + libmodule-build-base-perl \ + libmodule-build-compat-perl \ + libmodule-build-config-perl \ + libmodule-build-cookbook-perl \ + libmodule-build-dumper-perl \ + libmodule-build-notes-perl \ + libmodule-build-ppmaker-perl \ + libmodule-build-platform-default-perl \ + libmodule-build-platform-unix-perl \ + 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/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002005.bb b/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002005.bb deleted file mode 100644 index e5ab7a33..00000000 --- a/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002005.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Skip tests when modules not available" -DESCRIPTION = "Skip test scripts if modules are not available. \ -The requested modules will be loaded, and optionally have their versions \ -checked. If the module is missing, the test script will be skipped. Modules \ -that are found but fail to compile will exit with an error rather than skip." - -HOMEPAGE = "https://metacpan.org/release/Test-Needs" -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" - -CPAN_NAME = "Test-Needs" -CPAN_AUTHOR = "HAARG" - -LIC_FILES_CHKSUM = "file://README;md5=3f3ccd21a0a48aa313db212cc3b1bc09;beginline=81;endline=82" - -DEPENDS += "perl" - -SRC_URI = "http://www.cpan.org/authors/id/H/HA/${CPAN_AUTHOR}/${CPAN_NAME}-${PV}.tar.gz" - -SRC_URI[md5sum] = "356634a56c99282e8059f290f5d534c8" -SRC_URI[sha256sum] = "5a4f33983586edacdbe00a3b429a9834190140190dab28d0f873c394eb7df399" - -S = "${WORKDIR}/${CPAN_NAME}-${PV}" - -inherit cpan ptest-perl - -RDEPENDS_${PN}-ptest += "perl-module-test-more" - -BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb b/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb new file mode 100644 index 00000000..c44ee634 --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb @@ -0,0 +1,29 @@ +SUMMARY = "Skip tests when modules not available" +DESCRIPTION = "Skip test scripts if modules are not available. \ +The requested modules will be loaded, and optionally have their versions \ +checked. If the module is missing, the test script will be skipped. Modules \ +that are found but fail to compile will exit with an error rather than skip." + +HOMEPAGE = "https://metacpan.org/release/Test-Needs" +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" + +CPAN_NAME = "Test-Needs" +CPAN_AUTHOR = "HAARG" + +LIC_FILES_CHKSUM = "file://README;md5=3f3ccd21a0a48aa313db212cc3b1bc09;beginline=88;endline=89" + +DEPENDS += "perl" + +SRC_URI = "https://cpan.metacpan.org/authors/id/H/HA/${CPAN_AUTHOR}/${CPAN_NAME}-${PV}.tar.gz" + +SRC_URI[md5sum] = "d5c96d51d8d5510f7c0b7f354c49af1c" +SRC_URI[sha256sum] = "77f9fff0c96c5e09f34d0416b3533c3319f7cd0bb1f7fe8f8072ad59f433f0e5" + +S = "${WORKDIR}/${CPAN_NAME}-${PV}" + +inherit cpan ptest-perl + +RDEPENDS_${PN}-ptest += "perl-module-test-more perl-module-ipc-open3 perl-module-lib perl-module-version" + +BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/perl/liburi-perl_1.74.bb b/external/poky/meta/recipes-devtools/perl/liburi-perl_1.74.bb index a7cfa0fb..c27765bc 100644 --- a/external/poky/meta/recipes-devtools/perl/liburi-perl_1.74.bb +++ b/external/poky/meta/recipes-devtools/perl/liburi-perl_1.74.bb @@ -33,6 +33,18 @@ do_install_prepend() { rm -rf ${B}/t/file.t } -RDEPENDS_${PN}-ptest += "libtest-needs-perl" +RDEPENDS_${PN} += "perl-module-integer perl-module-mime-base64" +RDEPENDS_${PN}-ptest += " \ + libtest-needs-perl \ + perl-module-test-more \ + perl-module-test \ + perl-module-utf8 \ + perl-module-extutils-makemaker \ + perl-module-net-domain \ + perl-module-encode \ + perl-module-extutils-mm-unix \ + perl-module-file-spec-functions \ + perl-module-perlio \ +" BBCLASSEXTEND = "native" diff --git a/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb b/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb deleted file mode 100644 index 95af4d1d..00000000 --- a/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb +++ /dev/null @@ -1,53 +0,0 @@ -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" - -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" - -S = "${WORKDIR}/XML-Parser-${PV}" - -EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC='${CC}' LD='${CCLD}' FULL_AR='${AR}'" - -inherit cpan ptest-perl - -# fix up sub MakeMaker project as arguments don't get propagated though -# see https://rt.cpan.org/Public/Bug/Display.html?id=28632 -do_configure_append_class-target() { - sed -E \ - -e 's:-L${STAGING_LIBDIR}::g' -e 's:-I${STAGING_INCDIR}::g' \ - -i Makefile Expat/Makefile -} - -do_configure_append() { - sed -e 's:--sysroot=.*\(\s\|$\):--sysroot=${STAGING_DIR_TARGET} :g' \ - -i Makefile Expat/Makefile - sed 's:^FULL_AR = .*:FULL_AR = ${AR}:g' -i Expat/Makefile - # make sure these two do not build in parallel - sed 's!^$(INST_DYNAMIC):!$(INST_DYNAMIC): $(BOOTSTRAP)!' -i Expat/Makefile -} - -do_compile() { - export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" - cpan_do_compile -} - -do_compile_class-native() { - cpan_do_compile -} - -do_install_ptest() { - sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlstats - sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlfilter - sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlcomments - sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/canonical - cp -r ${B}/samples ${D}${PTEST_PATH} - chown -R root:root ${D}${PTEST_PATH}/samples -} - -BBCLASSEXTEND="native nativesdk" diff --git a/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb b/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb new file mode 100644 index 00000000..bc154bbd --- /dev/null +++ b/external/poky/meta/recipes-devtools/perl/libxml-parser-perl_2.46.bb @@ -0,0 +1,58 @@ +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://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 \ + 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}" + +EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR} CC='${CC}' LD='${CCLD}' FULL_AR='${AR}'" + +inherit cpan ptest-perl + +# fix up sub MakeMaker project as arguments don't get propagated though +# see https://rt.cpan.org/Public/Bug/Display.html?id=28632 +do_configure_append_class-target() { + sed -E \ + -e 's:-L${STAGING_LIBDIR}::g' -e 's:-I${STAGING_INCDIR}::g' \ + -i Makefile Expat/Makefile +} + +do_configure_append() { + sed -e 's:--sysroot=.*\(\s\|$\):--sysroot=${STAGING_DIR_TARGET} :g' \ + -i Makefile Expat/Makefile + sed 's:^FULL_AR = .*:FULL_AR = ${AR}:g' -i Expat/Makefile + # make sure these two do not build in parallel + sed 's!^$(INST_DYNAMIC):!$(INST_DYNAMIC): $(BOOTSTRAP)!' -i Expat/Makefile +} + +do_compile() { + export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')" + cpan_do_compile +} + +do_compile_class-native() { + cpan_do_compile +} + +do_install_ptest() { + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlstats + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlfilter + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/xmlcomments + sed -i -e "s:/usr/local/bin/perl:/usr/bin/perl:g" ${B}/samples/canonical + cp -r ${B}/samples ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH}/samples +} + +RDEPENDS_${PN}-ptest += "perl-module-filehandle perl-module-if perl-module-test perl-module-test-more" + +BBCLASSEXTEND="native nativesdk" diff --git a/external/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb b/external/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb index 0f609986..818ae3d5 100644 --- a/external/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb +++ b/external/poky/meta/recipes-devtools/perl/libxml-perl_0.08.bb @@ -26,3 +26,5 @@ do_compile() { cpan_do_compile } +RDEPENDS_${PN} += "perl-module-carp perl-module-overload perl-module-universal perl-module-io-handle" +RDEPENDS_${PN}-ptest += "libxml-parser-perl perl-module-file-glob" diff --git a/external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb b/external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb deleted file mode 100644 index 81d3fd48..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl-native_5.24.4.bb +++ /dev/null @@ -1,140 +0,0 @@ -require perl.inc - -# We need gnugrep (for -I) -DEPENDS = "db-native grep-native gdbm-native zlib-native" - -EXTRA_OEMAKE = "-e MAKEFLAGS=" - -SRC_URI += "\ - file://Configure-multilib.patch \ - file://perl-configpm-switch.patch \ - file://native-nopacklist.patch \ - file://native-perlinc.patch \ - file://MM_Unix.pm.patch \ - file://debian/errno_ver.diff \ - file://dynaloaderhack.patch \ - file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \ - file://0001-Configure-Remove-fstack-protector-strong-for-native-.patch \ - file://perl-5.26.1-guard_old_libcrypt_fix.patch \ - file://0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch \ - " - -SRC_URI[md5sum] = "04622bc4d3941dc7eb571c52b7c02993" -SRC_URI[sha256sum] = "7f080287ff64750270689843ae945f02159a33cb8f2fc910248c15befba5db84" - -inherit native - -NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" - -export LD="${CCLD}" - -do_configure () { - ./Configure \ - -Dcc="${CC}" \ - -Dcflags="${CFLAGS}" \ - -Dldflags="${LDFLAGS}" \ - -Dlddlflags="${LDFLAGS} -shared" \ - -Dcf_by="Open Embedded" \ - -Dprefix=${prefix} \ - -Dvendorprefix=${prefix} \ - -Dsiteprefix=${prefix} \ - \ - -Dbin=${STAGING_BINDIR}/${PN} \ - -Dprivlib=${STAGING_LIBDIR}/perl/${PV} \ - -Darchlib=${STAGING_LIBDIR}/perl/${PV} \ - -Dvendorlib=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \ - -Dvendorarch=${STAGING_LIBDIR}/perl/vendor_perl/${PV} \ - -Dsitelib=${STAGING_LIBDIR}/perl/site_perl/${PV} \ - -Dsitearch=${STAGING_LIBDIR}/perl/site_perl/${PV} \ - \ - -Duseshrplib \ - -Dusethreads \ - -Duseithreads \ - -Duselargefiles \ - -Dnoextensions=ODBM_File \ - -Ud_dosuid \ - -Ui_db \ - -Ui_ndbm \ - -Ui_gdbm \ - -Ui_gdbm_ndbm \ - -Ui_gdbmndbm \ - -Di_shadow \ - -Di_syslog \ - -Duseperlio \ - -Dman3ext=3pm \ - -Dsed=/bin/sed \ - -Uafs \ - -Ud_csh \ - -Uusesfio \ - -Uusenm -des -} - -do_install () { - oe_runmake 'DESTDIR=${D}' install - - # We need a hostperl link for building perl - ln -sf perl${PV} ${D}${bindir}/hostperl - - ln -sf perl ${D}${libdir}/perl5 - - install -d ${D}${libdir}/perl/${PV}/CORE \ - ${D}${datadir}/perl/${PV}/ExtUtils - - # Save native config - install config.sh ${D}${libdir}/perl - install lib/Config.pm ${D}${libdir}/perl/${PV}/ - install lib/ExtUtils/typemap ${D}${libdir}/perl/${PV}/ExtUtils/ - - # perl shared library headers - # reference perl 5.20.0-1 in debian: - # https://packages.debian.org/experimental/i386/perl/filelist - for i in av.h bitcount.h charclass_invlists.h config.h cop.h cv.h dosish.h \ - embed.h embedvar.h EXTERN.h fakesdio.h feature.h form.h git_version.h \ - gv.h handy.h hv_func.h hv.h inline.h INTERN.h intrpvar.h iperlsys.h \ - keywords.h l1_char_class_tab.h malloc_ctl.h metaconfig.h mg_data.h \ - mg.h mg_raw.h mg_vtable.h mydtrace.h nostdio.h opcode.h op.h \ - opnames.h op_reg_common.h overload.h pad.h parser.h patchlevel.h \ - perlapi.h perl.h perlio.h perliol.h perlsdio.h perlvars.h perly.h \ - pp.h pp_proto.h proto.h reentr.h regcharclass.h regcomp.h regexp.h \ - regnodes.h scope.h sv.h thread.h time64_config.h time64.h uconfig.h \ - unicode_constants.h unixish.h utf8.h utfebcdic.h util.h uudmap.h \ - vutil.h warnings.h XSUB.h - do - install $i ${D}${libdir}/perl/${PV}/CORE - done - - # Those wrappers mean that perl installed from sstate (which may change - # path location) works and that in the nativesdk case, the SDK can be - # installed to a different location from the one it was built for. - create_wrapper ${D}${bindir}/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}' - create_wrapper ${D}${bindir}/perl${PV} PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl/site_perl/${PV}:${STAGING_LIBDIR}/perl/vendor_perl/${PV}:${STAGING_LIBDIR}/perl/${PV}' - - # Use /usr/bin/env nativeperl for the perl script. - for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do - sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f - done - - # The packlist is large with hardcoded paths meaning it needs relocating - # so just remove it. - rm ${D}${libdir}/perl/${PV}/.packlist -} - -SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" - -perl_sysroot_create_wrapper () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - # Create a wrapper that /usr/bin/env perl will use to get perl-native. - # This MUST live in the normal bindir. - cat > ${SYSROOT_DESTDIR}${bindir}/../nativeperl << EOF -#!/bin/sh -realpath=\`readlink -fn \$0\` -exec \`dirname \$realpath\`/perl-native/perl "\$@" -EOF - chmod 0755 ${SYSROOT_DESTDIR}${bindir}/../nativeperl - cat ${SYSROOT_DESTDIR}${bindir}/../nativeperl -} - -# Fix the path in sstate -SSTATE_SCAN_FILES += "*.pm *.pod *.h *.pl *.sh" - -PACKAGES_DYNAMIC_class-native = "^perl-module-.*native$" diff --git a/external/poky/meta/recipes-devtools/perl/perl-ptest.inc b/external/poky/meta/recipes-devtools/perl/perl-ptest.inc index 8d464485..98e3361f 100644 --- a/external/poky/meta/recipes-devtools/perl/perl-ptest.inc +++ b/external/poky/meta/recipes-devtools/perl/perl-ptest.inc @@ -2,18 +2,21 @@ inherit ptest SRC_URI += "file://run-ptest \ " + +DEBUG_PREFIX_MAP_REGEX = "${@'\\|'.join(d.getVar('DEBUG_PREFIX_MAP').split())}" + do_install_ptest () { mkdir -p ${D}${PTEST_PATH} sed -e "s:\/usr\/local:${bindir}:g" -i cpan/version/t/* sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh - tar -c --exclude='*.o' --exclude=libperl.so --exclude=Makefile --exclude=makefile --exclude=hostperl \ + tar -c --exclude=try --exclude=a.out --exclude='*.o' --exclude=libperl.so* --exclude=Makefile --exclude=makefile --exclude=hostperl \ --exclude=cygwin --exclude=os2 --exclude=djgpp --exclude=qnx --exclude=symbian --exclude=haiku \ --exclude=vms --exclude=vos --exclude=NetWare --exclude=amigaos4 --exclude=buildcustomize.pl \ --exclude='win32/config.*' --exclude=plan9 --exclude=README.plan9 --exclude=perlplan9.pod --exclude=Configure \ --exclude=veryclean.sh --exclude=realclean.sh --exclude=getioctlsizes \ --exclude=dl_aix.xs --exclude=sdbm.3 --exclude='cflags.SH' --exclude=makefile.old \ - --exclude=miniperl --exclude=generate_uudmap --exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x ) + --exclude=miniperl --exclude=generate_uudmap --exclude=patches --exclude='config.log' * | ( cd ${D}${PTEST_PATH} && tar -x ) ln -sf ${bindir}/perl ${D}${PTEST_PATH}/t/perl @@ -21,12 +24,12 @@ do_install_ptest () { find "${D}${PTEST_PATH}" \ \( -name '*.PL' -o -name 'myconfig' -o -name 'cflags' -o -name '*.pl' -o -name '*.sh' -o -name '*.pm' \ -o -name 'h2xs' -o -name 'h2ph' \ - -o -name '*.h' -o -name 'config.sh-*' -o -name 'pod2man' -o -name 'pod2text' \) \ + -o -name '*.h' -o -name 'config.sh-*' -o -name 'pod2man' -o -name 'pod2text' -o -name 'Makefile.config' \) \ -type f -exec sed -i \ -e "s,${D},,g" \ -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ -e "s,-isystem${STAGING_INCDIR} ,,g" \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's^${DEBUG_PREFIX_MAP_REGEX}^^g' \ -e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \ -e "s,${STAGING_LIBDIR},${libdir},g" \ -e "s,${STAGING_BINDIR},${bindir},g" \ @@ -39,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() { @@ -46,11 +52,11 @@ python populate_packages_prepend() { # do_split_packages requires a pair of () in the regex, but we have nothing # to match, so use an empty pair. if bb.utils.contains('DISTRO_FEATURES', 'ptest', True, False, d): - do_split_packages(d, d.expand('${libdir}/perl/${PV}'), '.*\.t()', + do_split_packages(d, d.expand('${libdir}/perl/${PV}'), r'.*\.t()', '${PN}-ptest%s', '%s', recursive=True, match_path=True) } -RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed" +RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc sed" # The perl-ptest package contains Perl internal modules and generating file # dependencies for it causes problems. diff --git a/external/poky/meta/recipes-devtools/perl/perl-rdepends_5.24.4.inc b/external/poky/meta/recipes-devtools/perl/perl-rdepends_5.24.4.inc deleted file mode 100644 index 10e3c042..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl-rdepends_5.24.4.inc +++ /dev/null @@ -1,2575 +0,0 @@ -# To create/update the perl-rdepends_${PV}.inc use this piece of ugly script (modified for your arch/paths etc): - -#jiahongxu:5.20.0-r1$ pwd -#/home/jiahongxu/yocto/build-20140618-perl/tmp/work/i586-poky-linux/perl/5.20.0-r1 - -#1 cp -r packages-split packages-split.new && cd packages-split.new -#2 find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d' -#3 egrep -r "^\s*(\ */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] -#| awk '{if ($3 != "\x22"$1"\x22"){ print $0}}' -#| grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix -#| sort -u -#| sed 's/^/RDEPENDS_/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' -#| egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-text-unidecode|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' > /tmp/perl-rdepends - -RDEPENDS_perl-misc += "perl perl-modules" -RDEPENDS_${PN}-pod += "perl" - -# Some additional dependencies that the above doesn't manage to figure out -RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" -RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" - -# Depends list -# copy contents of /tmp/perl-rdepends in this file -RDEPENDS_${PN}-module-anydbm-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-anydbm-file += "${PN}-module-warnings" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-carp" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-config" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-constant" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-cpan" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-cwd" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-file-find" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-getopt-std" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-if" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-net-ping" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-strict" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-user-pwent" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-vars" -RDEPENDS_${PN}-module-app-cpan += "${PN}-module-warnings" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-app-prove-state" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-base" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-carp" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-constant" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-getopt-long" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-strict" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-tap-harness" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-tap-harness-env" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-app-prove += "${PN}-module-warnings" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-app-prove-state-result" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-base" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-carp" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-constant" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-file-find" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-strict" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-tap-parser-yamlish-reader" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-tap-parser-yamlish-writer" -RDEPENDS_${PN}-module-app-prove-state += "${PN}-module-warnings" -RDEPENDS_${PN}-module-app-prove-state-result += "${PN}-module-app-prove-state-result-test" -RDEPENDS_${PN}-module-app-prove-state-result += "${PN}-module-carp" -RDEPENDS_${PN}-module-app-prove-state-result += "${PN}-module-constant" -RDEPENDS_${PN}-module-app-prove-state-result += "${PN}-module-strict" -RDEPENDS_${PN}-module-app-prove-state-result += "${PN}-module-warnings" -RDEPENDS_${PN}-module-app-prove-state-result-test += "${PN}-module-strict" -RDEPENDS_${PN}-module-app-prove-state-result-test += "${PN}-module-warnings" -RDEPENDS_${PN}-module-archive-tar-constant += "${PN}-module-constant" -RDEPENDS_${PN}-module-archive-tar-constant += "${PN}-module-exporter" -RDEPENDS_${PN}-module-archive-tar-constant += "${PN}-module-io-compress-bzip2" -RDEPENDS_${PN}-module-archive-tar-constant += "${PN}-module-time-local" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-archive-tar" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-archive-tar-constant" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-carp" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-io-file" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-archive-tar-file += "${PN}-module-vars" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-archive-tar-constant" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-archive-tar-file" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-carp" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-config" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-cwd" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-exporter" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-file-path" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-io-file" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-io-zlib" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-strict" -RDEPENDS_${PN}-module-archive-tar += "${PN}-module-vars" -RDEPENDS_${PN}-module-arybase += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-attribute-handlers += "${PN}-module-carp" -RDEPENDS_${PN}-module-attribute-handlers += "${PN}-module-strict" -RDEPENDS_${PN}-module-attribute-handlers += "${PN}-module-vars" -RDEPENDS_${PN}-module-attribute-handlers += "${PN}-module-warnings" -RDEPENDS_${PN}-module-attributes += "${PN}-module-carp" -RDEPENDS_${PN}-module-attributes += "${PN}-module-exporter" -RDEPENDS_${PN}-module-attributes += "${PN}-module-strict" -RDEPENDS_${PN}-module-attributes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-attributes += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-carp" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-constant" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-fatal" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-overload" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-exception += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-exception-system += "${PN}-module-carp" -RDEPENDS_${PN}-module-autodie-exception-system += "${PN}-module-parent" -RDEPENDS_${PN}-module-autodie-exception-system += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-exception-system += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-hints += "${PN}-module-b" -RDEPENDS_${PN}-module-autodie-hints += "${PN}-module-carp" -RDEPENDS_${PN}-module-autodie-hints += "${PN}-module-constant" -RDEPENDS_${PN}-module-autodie-hints += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-hints += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie += "${PN}-module-carp" -RDEPENDS_${PN}-module-autodie += "${PN}-module-constant" -RDEPENDS_${PN}-module-autodie += "${PN}-module-lib" -RDEPENDS_${PN}-module-autodie += "${PN}-module-parent" -RDEPENDS_${PN}-module-autodie += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-scope-guard += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-scope-guard += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-scope-guardstack += "${PN}-module-autodie-scope-guard" -RDEPENDS_${PN}-module-autodie-scope-guardstack += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-scope-guardstack += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-skip += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-skip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autodie-util += "${PN}-module-autodie-scope-guardstack" -RDEPENDS_${PN}-module-autodie-util += "${PN}-module-exporter" -RDEPENDS_${PN}-module-autodie-util += "${PN}-module-strict" -RDEPENDS_${PN}-module-autodie-util += "${PN}-module-warnings" -RDEPENDS_${PN}-module-autoloader += "${PN}-module-carp" -RDEPENDS_${PN}-module-autoloader += "${PN}-module-strict" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-carp" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-config" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-exporter" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-file-path" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-autosplit += "${PN}-module-strict" -RDEPENDS_${PN}-module-autouse += "${PN}-module-carp" -RDEPENDS_${PN}-module-base += "${PN}-module-carp" -RDEPENDS_${PN}-module-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-base += "${PN}-module-vars" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-b" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-b-op-private" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-config" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-exporter" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-strict" -RDEPENDS_${PN}-module-b-concise += "${PN}-module-warnings" -RDEPENDS_${PN}-module-b-debug += "${PN}-module-b" -RDEPENDS_${PN}-module-b-debug += "${PN}-module-config" -RDEPENDS_${PN}-module-b-debug += "${PN}-module-strict" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-b" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-carp" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-feature" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-overloading" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-re" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-strict" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-vars" -RDEPENDS_${PN}-module-b-deparse += "${PN}-module-warnings" -RDEPENDS_${PN}-module-benchmark += "${PN}-module-carp" -RDEPENDS_${PN}-module-benchmark += "${PN}-module-exporter" -RDEPENDS_${PN}-module-benchmark += "${PN}-module-strict" -RDEPENDS_${PN}-module-bigint += "${PN}-module-carp" -RDEPENDS_${PN}-module-bigint += "${PN}-module-constant" -RDEPENDS_${PN}-module-bigint += "${PN}-module-exporter" -RDEPENDS_${PN}-module-bigint += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-bigint += "${PN}-module-math-bigint-trace" -RDEPENDS_${PN}-module-bigint += "${PN}-module-overload" -RDEPENDS_${PN}-module-bigint += "${PN}-module-strict" -RDEPENDS_${PN}-module-bigint += "${PN}-module-warnings" -RDEPENDS_${PN}-module-bignum += "${PN}-module-bigint" -RDEPENDS_${PN}-module-bignum += "${PN}-module-carp" -RDEPENDS_${PN}-module-bignum += "${PN}-module-exporter" -RDEPENDS_${PN}-module-bignum += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-bignum += "${PN}-module-math-bigfloat-trace" -RDEPENDS_${PN}-module-bignum += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-bignum += "${PN}-module-math-bigint-trace" -RDEPENDS_${PN}-module-bignum += "${PN}-module-overload" -RDEPENDS_${PN}-module-bignum += "${PN}-module-strict" -RDEPENDS_${PN}-module-bignum += "${PN}-module-warnings" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-bigint" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-carp" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-exporter" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-math-bigint-trace" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-math-bigrat" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-overload" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-strict" -RDEPENDS_${PN}-module-bigrat += "${PN}-module-warnings" -RDEPENDS_${PN}-module-blib += "${PN}-module-cwd" -RDEPENDS_${PN}-module-blib += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-blib += "${PN}-module-vars" -RDEPENDS_${PN}-module-b += "${PN}-module-exporter" -RDEPENDS_${PN}-module-b += "${PN}-module-strict" -RDEPENDS_${PN}-module-b += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-b-showlex += "${PN}-module-b" -RDEPENDS_${PN}-module-b-showlex += "${PN}-module-b-concise" -RDEPENDS_${PN}-module-b-showlex += "${PN}-module-b-terse" -RDEPENDS_${PN}-module-b-showlex += "${PN}-module-strict" -RDEPENDS_${PN}-module-b-terse += "${PN}-module-b" -RDEPENDS_${PN}-module-b-terse += "${PN}-module-b-concise" -RDEPENDS_${PN}-module-b-terse += "${PN}-module-carp" -RDEPENDS_${PN}-module-b-terse += "${PN}-module-strict" -RDEPENDS_${PN}-module-b-xref += "${PN}-module-b" -RDEPENDS_${PN}-module-b-xref += "${PN}-module-config" -RDEPENDS_${PN}-module-b-xref += "${PN}-module-strict" -RDEPENDS_${PN}-module-bytes += "${PN}-module-bytes-heavy" -RDEPENDS_${PN}-module-bytes += "${PN}-module-carp" -RDEPENDS_${PN}-module-carp-heavy += "${PN}-module-carp" -RDEPENDS_${PN}-module-carp += "${PN}-module-exporter" -RDEPENDS_${PN}-module-carp += "${PN}-module-strict" -RDEPENDS_${PN}-module-carp += "${PN}-module-warnings" -RDEPENDS_${PN}-module--charnames += "${PN}-module-bytes" -RDEPENDS_${PN}-module-charnames += "${PN}-module-bytes" -RDEPENDS_${PN}-module--charnames += "${PN}-module-carp" -RDEPENDS_${PN}-module-charnames += "${PN}-module--charnames" -RDEPENDS_${PN}-module--charnames += "${PN}-module-file-spec" -RDEPENDS_${PN}-module--charnames += "${PN}-module-re" -RDEPENDS_${PN}-module-charnames += "${PN}-module-re" -RDEPENDS_${PN}-module--charnames += "${PN}-module-strict" -RDEPENDS_${PN}-module-charnames += "${PN}-module-strict" -RDEPENDS_${PN}-module--charnames += "${PN}-module-warnings" -RDEPENDS_${PN}-module-charnames += "${PN}-module-warnings" -RDEPENDS_${PN}-module-class-struct += "${PN}-module-carp" -RDEPENDS_${PN}-module-class-struct += "${PN}-module-exporter" -RDEPENDS_${PN}-module-class-struct += "${PN}-module-strict" -RDEPENDS_${PN}-module-class-struct += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-bytes " -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-carp " -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-constant" -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-exporter" -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-strict " -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-warnings " -RDEPENDS_${PN}-module-compress-raw-bzip2 += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-bytes " -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-carp " -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-constant" -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-exporter" -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-strict " -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-warnings " -RDEPENDS_${PN}-module-compress-raw-zlib += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-bytes " -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-carp " -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-constant" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-exporter" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-io-compress-gzip" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-io-compress-gzip-constants" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-io-handle " -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-io-uncompress-gunzip" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-strict " -RDEPENDS_${PN}-module-compress-zlib += "${PN}-module-warnings " -RDEPENDS_${PN}-module-config-extensions += "${PN}-module-config" -RDEPENDS_${PN}-module-config-extensions += "${PN}-module-exporter" -RDEPENDS_${PN}-module-config-extensions += "${PN}-module-strict" -RDEPENDS_${PN}-module-config-extensions += "${PN}-module-vars" -RDEPENDS_${PN}-module-config-perl-v += "${PN}-module-config" -RDEPENDS_${PN}-module-config-perl-v += "${PN}-module-exporter" -RDEPENDS_${PN}-module-config-perl-v += "${PN}-module-strict" -RDEPENDS_${PN}-module-config-perl-v += "${PN}-module-vars" -RDEPENDS_${PN}-module-config-perl-v += "${PN}-module-warnings" -RDEPENDS_${PN}-module-constant += "${PN}-module-carp" -RDEPENDS_${PN}-module-constant += "${PN}-module-strict" -RDEPENDS_${PN}-module-constant += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-corelist += "${PN}-module-list-util" -RDEPENDS_${PN}-module-corelist += "${PN}-module-corelist" -RDEPENDS_${PN}-module-corelist += "${PN}-module-strict" -RDEPENDS_${PN}-module-corelist += "${PN}-module-vars" -RDEPENDS_${PN}-module-corelist += "${PN}-module-version" -RDEPENDS_${PN}-module-corelist += "${PN}-module-warnings" -RDEPENDS_${PN}-module-cpan += "${PN}-module-b" -RDEPENDS_${PN}-module-cpan += "${PN}-module-carp" -RDEPENDS_${PN}-module-cpan += "${PN}-module-config" -RDEPENDS_${PN}-module-cpan += "${PN}-module-cwd" -RDEPENDS_${PN}-module-cpan += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-cpan += "${PN}-module-dirhandle" -RDEPENDS_${PN}-module-cpan += "${PN}-module-exporter" -RDEPENDS_${PN}-module-cpan += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-cpan += "${PN}-module-extutils-manifest" -RDEPENDS_${PN}-module-cpan += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-cpan += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-cpan += "${PN}-module-file-copy" -RDEPENDS_${PN}-module-cpan += "${PN}-module-file-find" -RDEPENDS_${PN}-module-cpan += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-cpan += "${PN}-module-file-path" -RDEPENDS_${PN}-module-cpan += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-cpan += "${PN}-module-lib" -RDEPENDS_${PN}-module-cpan += "${PN}-module-net-ping" -RDEPENDS_${PN}-module-cpan += "${PN}-module-overload" -RDEPENDS_${PN}-module-cpan += "${PN}-module-posix" -RDEPENDS_${PN}-module-cpan += "${PN}-module-safe" -RDEPENDS_${PN}-module-cpan += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-cpan += "${PN}-module-strict" -RDEPENDS_${PN}-module-cpan += "${PN}-module-sys-hostname" -RDEPENDS_${PN}-module-cpan += "${PN}-module-term-readline" -RDEPENDS_${PN}-module-cpan += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-cpan += "${PN}-module-text-wrap" -RDEPENDS_${PN}-module-cpan += "${PN}-module-time-local" -RDEPENDS_${PN}-module-cpan += "${PN}-module-vars" -RDEPENDS_${PN}-module-cpan += "${PN}-module-warnings" -RDEPENDS_${PN}-module-cwd += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-cwd += "${PN}-module-exporter" -RDEPENDS_${PN}-module-cwd += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-cwd += "${PN}-module-strict" -RDEPENDS_${PN}-module-cwd += "${PN}-module-vars" -RDEPENDS_${PN}-module-cwd += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-b-deparse" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-carp" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-config" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-constant" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-exporter" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-overload" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-data-dumper += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-dbm-filter-compress += "${PN}-module-carp" -RDEPENDS_${PN}-module-dbm-filter-compress += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter-compress += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dbm-filter-encode += "${PN}-module-carp" -RDEPENDS_${PN}-module-dbm-filter-encode += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter-encode += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dbm-filter-int32 += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter-int32 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dbm-filter-null += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter-null += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dbm-filter += "${PN}-module-carp" -RDEPENDS_${PN}-module-dbm-filter += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dbm-filter-utf8 += "${PN}-module-carp" -RDEPENDS_${PN}-module-dbm-filter-utf8 += "${PN}-module-strict" -RDEPENDS_${PN}-module-dbm-filter-utf8 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-db += "${PN}-module-strict" -RDEPENDS_${PN}-module-deprecate += "${PN}-module-carp" -RDEPENDS_${PN}-module-deprecate += "${PN}-module-strict" -RDEPENDS_${PN}-module-deprecate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-devel-peek += "${PN}-module-exporter" -RDEPENDS_${PN}-module-devel-peek += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-devel-ppport += "${PN}-module-file-find" -RDEPENDS_${PN}-module-devel-ppport += "${PN}-module-getopt-long" -RDEPENDS_${PN}-module-devel-ppport += "${PN}-module-strict" -RDEPENDS_${PN}-module-devel-ppport += "${PN}-module-vars" -RDEPENDS_${PN}-module-devel-selfstubber += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-devel-selfstubber += "${PN}-module-selfloader" -RDEPENDS_${PN}-module-diagnostics += "${PN}-module-carp" -RDEPENDS_${PN}-module-diagnostics += "${PN}-module-config" -RDEPENDS_${PN}-module-diagnostics += "${PN}-module-getopt-std" -RDEPENDS_${PN}-module-diagnostics += "${PN}-module-strict" -RDEPENDS_${PN}-module-diagnostics += "${PN}-module-text-tabs" -RDEPENDS_${PN}-module-digest-base += "${PN}-module-carp" -RDEPENDS_${PN}-module-digest-base += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-digest-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-digest-base += "${PN}-module-vars" -RDEPENDS_${PN}-module-digest-file += "${PN}-module-carp" -RDEPENDS_${PN}-module-digest-file += "${PN}-module-digest" -RDEPENDS_${PN}-module-digest-file += "${PN}-module-exporter" -RDEPENDS_${PN}-module-digest-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-digest-file += "${PN}-module-vars" -RDEPENDS_${PN}-module-digest-md5 += "${PN}-module-digest-base" -RDEPENDS_${PN}-module-digest-md5 += "${PN}-module-exporter" -RDEPENDS_${PN}-module-digest-md5 += "${PN}-module-strict" -RDEPENDS_${PN}-module-digest-md5 += "${PN}-module-vars" -RDEPENDS_${PN}-module-digest-md5 += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-digest += "${PN}-module-strict" -RDEPENDS_${PN}-module-digest += "${PN}-module-vars" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-carp" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-digest-base" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-exporter" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-integer" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-strict" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-vars" -RDEPENDS_${PN}-module-digest-sha += "${PN}-module-warnings" -RDEPENDS_${PN}-module-dirhandle += "${PN}-module-carp" -RDEPENDS_${PN}-module-dirhandle += "${PN}-module-symbol" -RDEPENDS_${PN}-module-dynaloader += "${PN}-module-carp" -RDEPENDS_${PN}-module-dynaloader += "${PN}-module-config" -RDEPENDS_${PN}-module-encode-alias += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode-alias += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-alias += "${PN}-module-exporter" -RDEPENDS_${PN}-module-encode-alias += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-alias += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-byte += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-byte += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-byte += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-byte += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-cjkconstants += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-cjkconstants += "${PN}-module-exporter" -RDEPENDS_${PN}-module-encode-cjkconstants += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-cjkconstants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-utf8" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-vars" -RDEPENDS_${PN}-module-encode-cn-hz += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-cn += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-cn += "${PN}-module-encode-cn-hz" -RDEPENDS_${PN}-module-encode-cn += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-cn += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-cn += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-config += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-config += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-ebcdic += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-ebcdic += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-ebcdic += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-ebcdic += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-exporter" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-overload" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-encoder += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-encoding += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-encoding += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-encoding += "${PN}-module-encode-mime-name" -RDEPENDS_${PN}-module-encode-encoding += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-encoding += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-utf8" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-vars" -RDEPENDS_${PN}-module-encode-gsm0338 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-bytes" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-encode-unicode" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-guess += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-jp-h2z += "${PN}-module-encode-cjkconstants" -RDEPENDS_${PN}-module-encode-jp-h2z += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-jp-h2z += "${PN}-module-vars" -RDEPENDS_${PN}-module-encode-jp-h2z += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-bytes" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-encode-cjkconstants" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-encode-jp-h2z" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-jp-jis7 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-jp += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-jp += "${PN}-module-encode-jp-jis7" -RDEPENDS_${PN}-module-encode-jp += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-jp += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-jp += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-kr-2022-kr += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-kr-2022-kr += "${PN}-module-encode-cjkconstants" -RDEPENDS_${PN}-module-encode-kr-2022-kr += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-kr-2022-kr += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-kr-2022-kr += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-kr += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-kr += "${PN}-module-encode-kr-2022-kr" -RDEPENDS_${PN}-module-encode-kr += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-kr += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-kr += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-mime-header-iso-2022-jp += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode-mime-header-iso-2022-jp += "${PN}-module-encode-cjkconstants" -RDEPENDS_${PN}-module-encode-mime-header-iso-2022-jp += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-mime-header-iso-2022-jp += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-mime-header-iso-2022-jp += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-bytes" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-utf8" -RDEPENDS_${PN}-module-encode-mime-header += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-mime-name += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-mime-name += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode += "${PN}-module-bytes" -RDEPENDS_${PN}-module-encode += "${PN}-module-carp" -RDEPENDS_${PN}-module-encode += "${PN}-module-constant" -RDEPENDS_${PN}-module-encode += "${PN}-module-encode-alias" -RDEPENDS_${PN}-module-encode += "${PN}-module-encode-config" -RDEPENDS_${PN}-module-encode += "${PN}-module-encode-configlocal-pm" -RDEPENDS_${PN}-module-encode += "${PN}-module-encode-encoding" -RDEPENDS_${PN}-module-encode += "${PN}-module-exporter" -RDEPENDS_${PN}-module-encode += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-symbol += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-symbol += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-symbol += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-symbol += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-tw += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-tw += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-tw += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-tw += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-unicode += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-unicode += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-unicode += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-unicode += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encode-unicode += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-encode" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-parent" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-re" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-strict" -RDEPENDS_${PN}-module-encode-unicode-utf7 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encoding += "${PN}-module-carp" -RDEPENDS_${PN}-module-encoding += "${PN}-module-config" -RDEPENDS_${PN}-module-encoding += "${PN}-module-constant" -RDEPENDS_${PN}-module-encoding += "${PN}-module-encode" -RDEPENDS_${PN}-module-encoding += "${PN}-module-filter-util-call" -RDEPENDS_${PN}-module-encoding += "${PN}-module-i18n-langinfo" -RDEPENDS_${PN}-module-encoding += "${PN}-module-posix" -RDEPENDS_${PN}-module-encoding += "${PN}-module-strict" -RDEPENDS_${PN}-module-encoding += "${PN}-module-utf8" -RDEPENDS_${PN}-module-encoding += "${PN}-module-warnings" -RDEPENDS_${PN}-module-encoding-warnings += "${PN}-module-carp" -RDEPENDS_${PN}-module-encoding-warnings += "${PN}-module-strict" -RDEPENDS_${PN}-module-encoding-warnings += "${PN}-module-warnings" -RDEPENDS_${PN}-module-english += "${PN}-module-carp " -RDEPENDS_${PN}-module-english += "${PN}-module-exporter" -RDEPENDS_${PN}-module-env += "${PN}-module-config" -RDEPENDS_${PN}-module-env += "${PN}-module-tie-array" -RDEPENDS_${PN}-module-errno += "${PN}-module-carp" -RDEPENDS_${PN}-module-errno += "${PN}-module-exporter" -RDEPENDS_${PN}-module-errno += "${PN}-module-strict" -RDEPENDS_${PN}-module-experimental += "${PN}-module-carp" -RDEPENDS_${PN}-module-experimental += "${PN}-module-feature" -RDEPENDS_${PN}-module-experimental += "${PN}-module-strict" -RDEPENDS_${PN}-module-experimental += "${PN}-module-version" -RDEPENDS_${PN}-module-experimental += "${PN}-module-warnings" -RDEPENDS_${PN}-module-exporter-heavy += "${PN}-module-carp" -RDEPENDS_${PN}-module-exporter-heavy += "${PN}-module-exporter" -RDEPENDS_${PN}-module-exporter-heavy += "${PN}-module-strict" -RDEPENDS_${PN}-module-exporter += "${PN}-module-exporter-heavy" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-extutils-mksymlists" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-file-temp" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-ipc-cmd" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-extutils-cbuilder-base += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-file-path" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-aix += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-aix += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-aix += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-aix += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-aix += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-android += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-cygwin += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-cygwin += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-cygwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-cygwin += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-cygwin += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-darwin += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-darwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-darwin += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-darwin += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-dec-osf += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-dec-osf += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-dec-osf += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-dec-osf += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-dec-osf += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-os2 += "${PN}-module-extutils-cbuilder-platform-unix" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-os2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-os2 += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-os2 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-unix += "${PN}-module-extutils-cbuilder-base" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-unix += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-unix += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-unix += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-extutils-cbuilder-base" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-vms += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-bcc += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-bcc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-gcc += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-gcc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-msvc += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows-msvc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-extutils-cbuilder-base" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-io-file" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-cbuilder-platform-windows += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-extutils-command" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-extutils-install" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-getopt-long" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-test-harness" -RDEPENDS_${PN}-module-extutils-command-mm += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-file-copy" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-file-path" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-command += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-constant" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-extutils-constant-utils" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-text-wrap" -RDEPENDS_${PN}-module-extutils-constant-base += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-extutils-constant-proxysubs" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-extutils-constant-utils" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-extutils-constant-xs" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-constant += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-constant-proxysubs += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-constant-proxysubs += "${PN}-module-extutils-constant-utils" -RDEPENDS_${PN}-module-extutils-constant-proxysubs += "${PN}-module-extutils-constant-xs" -RDEPENDS_${PN}-module-extutils-constant-proxysubs += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-constant-proxysubs += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-constant-utils += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-constant-utils += "${PN}-module-constant" -RDEPENDS_${PN}-module-extutils-constant-utils += "${PN}-module-posix" -RDEPENDS_${PN}-module-extutils-constant-utils += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-constant-utils += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-extutils-constant" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-extutils-constant-base" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-extutils-constant-utils" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-constant-xs += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-extutils-liblist" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-getopt-std" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-embed += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-extutils-packlist" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-installed += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-autosplit" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-extutils-packlist" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-compare" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-copy" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-path" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-install += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-extutils-liblist-kid += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-liblist += "${PN}-module-extutils-liblist-kid" -RDEPENDS_${PN}-module-extutils-liblist += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-liblist += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-makemaker-config += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-makemaker-config += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-makemaker-locale += "${PN}-module-base" -RDEPENDS_${PN}-module-extutils-makemaker-locale += "${PN}-module-encode" -RDEPENDS_${PN}-module-extutils-makemaker-locale += "${PN}-module-encode-alias" -RDEPENDS_${PN}-module-extutils-makemaker-locale += "${PN}-module-i18n-langinfo" -RDEPENDS_${PN}-module-extutils-makemaker-locale += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-b" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-extutils-makemaker-version" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-extutils-manifest" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-extutils-mm" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-extutils-my" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-file-path" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-makemaker += "${PN}-module-version" -RDEPENDS_${PN}-module-extutils-makemaker-version += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-makemaker-version += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-file-copy" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-file-path" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-manifest += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-miniperl += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-miniperl += "${PN}-module-extutils-embed" -RDEPENDS_${PN}-module-extutils-miniperl += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-miniperl += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-mkbootstrap += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-mkbootstrap += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-extutils-mkbootstrap += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-mkbootstrap += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mksymlists += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-mksymlists += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-mksymlists += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-mksymlists += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-aix += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-aix += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-aix += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-autosplit" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-cpan" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-data-dumper" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-any += "${PN}-module-version" -RDEPENDS_${PN}-module-extutils-mm-beos += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-beos += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-beos += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-beos += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-mm-beos += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-cygwin += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-cygwin += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-cygwin += "${PN}-module-extutils-mm-win32" -RDEPENDS_${PN}-module-extutils-mm-cygwin += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-mm-cygwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-darwin += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-darwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-dos += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-dos += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-dos += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-macos += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-nw5 += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-nw5 += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-nw5 += "${PN}-module-extutils-mm-win32" -RDEPENDS_${PN}-module-extutils-mm-nw5 += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-mm-nw5 += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-os2 += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-os2 += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-os2 += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-os2 += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-mm-os2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm += "${PN}-module-extutils-liblist" -RDEPENDS_${PN}-module-extutils-mm += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-qnx += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-qnx += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-dirhandle" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-encode" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-extutils-liblist" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-mm-unix += "${PN}-module-version" -RDEPENDS_${PN}-module-extutils-mm-uwin += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-uwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-extutils-liblist-kid" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-file-find" -RDEPENDS_${PN}-module-extutils-mm-vms += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-vos += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-vos += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-extutils-mm-any" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-extutils-mm-unix" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-mm-win32 += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-mm-win95 += "${PN}-module-extutils-makemaker-config" -RDEPENDS_${PN}-module-extutils-mm-win95 += "${PN}-module-extutils-mm-win32" -RDEPENDS_${PN}-module-extutils-mm-win95 += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-my += "${PN}-module-extutils-mm" -RDEPENDS_${PN}-module-extutils-my += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-carp" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-packlist += "${PN}-module-vars" -RDEPENDS_${PN}-module-extutils-parsexs-constants += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-parsexs-constants += "${PN}-module-symbol" -RDEPENDS_${PN}-module-extutils-parsexs-constants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-parsexs-countlines += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-parsexs-eval += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-parsexs-eval += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-config" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-extutils-parsexs-constants" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-extutils-parsexs-countlines" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-extutils-parsexs-eval" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-extutils-parsexs-utilities" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-re" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-parsexs += "${PN}-module-symbol" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-extutils-parsexs-constants" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-extutils-typemaps" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-parsexs-utilities += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-testlib += "${PN}-module-cwd" -RDEPENDS_${PN}-module-extutils-testlib += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-extutils-testlib += "${PN}-module-lib" -RDEPENDS_${PN}-module-extutils-testlib += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-testlib += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-typemaps-cmd += "${PN}-module-exporter" -RDEPENDS_${PN}-module-extutils-typemaps-cmd += "${PN}-module-extutils-typemaps" -RDEPENDS_${PN}-module-extutils-typemaps-cmd += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-typemaps-cmd += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-typemaps-inputmap += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-typemaps-inputmap += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-typemaps-outputmap += "${PN}-module-re" -RDEPENDS_${PN}-module-extutils-typemaps-outputmap += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-typemaps-outputmap += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-extutils-parsexs" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-extutils-parsexs-constants" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-extutils-typemaps-inputmap" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-extutils-typemaps-outputmap" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-extutils-typemaps-type" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-typemaps += "${PN}-module-warnings" -RDEPENDS_${PN}-module-extutils-typemaps-type += "${PN}-module-extutils-typemaps" -RDEPENDS_${PN}-module-extutils-typemaps-type += "${PN}-module-strict" -RDEPENDS_${PN}-module-extutils-typemaps-type += "${PN}-module-warnings" -RDEPENDS_${PN}-module-fatal += "${PN}-module-autodie" -RDEPENDS_${PN}-module-fatal += "${PN}-module-autodie-exception-system" -RDEPENDS_${PN}-module-fatal += "${PN}-module-autodie-hints" -RDEPENDS_${PN}-module-fatal += "${PN}-module-autodie-util" -RDEPENDS_${PN}-module-fatal += "${PN}-module-carp" -RDEPENDS_${PN}-module-fatal += "${PN}-module-config" -RDEPENDS_${PN}-module-fatal += "${PN}-module-constant" -RDEPENDS_${PN}-module-fatal += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-fatal += "${PN}-module-posix" -RDEPENDS_${PN}-module-fatal += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-fatal += "${PN}-module-strict" -RDEPENDS_${PN}-module-fatal += "${PN}-module-tie-refhash" -RDEPENDS_${PN}-module-fatal += "${PN}-module-warnings" -RDEPENDS_${PN}-module-fcntl += "${PN}-module-exporter" -RDEPENDS_${PN}-module-fcntl += "${PN}-module-strict" -RDEPENDS_${PN}-module-fcntl += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-feature += "${PN}-module-carp" -RDEPENDS_${PN}-module-fields += "${PN}-module-base" -RDEPENDS_${PN}-module-fields += "${PN}-module-carp" -RDEPENDS_${PN}-module-fields += "${PN}-module-hash-util" -RDEPENDS_${PN}-module-fields += "${PN}-module-strict" -RDEPENDS_${PN}-module-fields += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-basename += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-basename += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-basename += "${PN}-module-re" -RDEPENDS_${PN}-module-file-basename += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-basename += "${PN}-module-warnings" -RDEPENDS_${PN}-module-filecache += "${PN}-module-carp" -RDEPENDS_${PN}-module-filecache += "${PN}-module-parent" -RDEPENDS_${PN}-module-filecache += "${PN}-module-strict" -RDEPENDS_${PN}-module-filecache += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-compare += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-compare += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-compare += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-compare += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-config" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-copy += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-dosglob += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-dosglob += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-file-dosglob += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-dosglob += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-constant" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-cwd" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-copy" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-path" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-file-temp" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-ipc-cmd" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-locale-maketext-simple" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-load" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-params-check" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-fetch += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-find += "${PN}-module-config" -RDEPENDS_${PN}-module-file-find += "${PN}-module-cwd" -RDEPENDS_${PN}-module-file-find += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-find += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-file-find += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-find += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-find += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-find += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-file-globmapper += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-globmapper += "${PN}-module-file-glob" -RDEPENDS_${PN}-module-file-globmapper += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-globmapper += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-glob += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-glob += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-glob += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-filehandle += "${PN}-module-exporter" -RDEPENDS_${PN}-module-filehandle += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-filehandle += "${PN}-module-io-file" -RDEPENDS_${PN}-module-filehandle += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-path += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-path += "${PN}-module-cwd" -RDEPENDS_${PN}-module-file-path += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-path += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-file-path += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-path += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-path += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-amigaos += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-amigaos += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-amigaos += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-cygwin += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-cygwin += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-cygwin += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-epoc += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-epoc += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-epoc += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-functions += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-spec-functions += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-spec-functions += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-functions += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-functions += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-mac += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-mac += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-mac += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-os2 += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-os2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-os2 += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-constant" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-cwd" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-unix += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-file-spec-vms += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-file-spec-vms += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-vms += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-vms += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-spec-win32 += "${PN}-module-cwd " -RDEPENDS_${PN}-module-file-spec-win32 += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-file-spec-win32 += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-spec-win32 += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-constant" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-overload " -RDEPENDS_${PN}-module-file-stat += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-symbol" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-vars" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-warnings" -RDEPENDS_${PN}-module-file-stat += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-carp" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-constant" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-cwd" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-errno" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-exporter" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-file-path" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-io-seekable" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-overload" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-parent" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-posix" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-strict" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-symbol" -RDEPENDS_${PN}-module-file-temp += "${PN}-module-vars" -RDEPENDS_${PN}-module-filter-simple += "${PN}-module-carp" -RDEPENDS_${PN}-module-filter-simple += "${PN}-module-filter-util-call" -RDEPENDS_${PN}-module-filter-simple += "${PN}-module-text-balanced" -RDEPENDS_${PN}-module-filter-simple += "${PN}-module-vars" -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-carp " -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-exporter" -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-strict" -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-vars" -RDEPENDS_${PN}-module-filter-util-call += "${PN}-module-warnings" -RDEPENDS_${PN}-module-findbin += "${PN}-module-carp" -RDEPENDS_${PN}-module-findbin += "${PN}-module-cwd" -RDEPENDS_${PN}-module-findbin += "${PN}-module-exporter" -RDEPENDS_${PN}-module-findbin += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-findbin += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-constant" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-exporter" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-overload" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-pod-usage" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-strict" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-getopt-long += "${PN}-module-vars" -RDEPENDS_${PN}-module-getopt-std += "${PN}-module-exporter" -RDEPENDS_${PN}-module-hash-util-fieldhash += "${PN}-module-exporter" -RDEPENDS_${PN}-module-hash-util-fieldhash += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-hash-util-fieldhash += "${PN}-module-strict" -RDEPENDS_${PN}-module-hash-util-fieldhash += "${PN}-module-warnings" -RDEPENDS_${PN}-module-hash-util-fieldhash += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-carp" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-exporter" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-hash-util-fieldhash" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-strict" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-warnings" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-hash-util += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-i18n-collate += "${PN}-module-exporter" -RDEPENDS_${PN}-module-i18n-collate += "${PN}-module-overload" -RDEPENDS_${PN}-module-i18n-collate += "${PN}-module-posix" -RDEPENDS_${PN}-module-i18n-collate += "${PN}-module-strict" -RDEPENDS_${PN}-module-i18n-collate += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-i18n-langinfo += "${PN}-module-carp" -RDEPENDS_${PN}-module-i18n-langinfo += "${PN}-module-exporter" -RDEPENDS_${PN}-module-i18n-langinfo += "${PN}-module-strict" -RDEPENDS_${PN}-module-i18n-langinfo += "${PN}-module-warnings" -RDEPENDS_${PN}-module-i18n-langinfo += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-i18n-langtags-detect += "${PN}-module-i18n-langtags" -RDEPENDS_${PN}-module-i18n-langtags-detect += "${PN}-module-strict" -RDEPENDS_${PN}-module-i18n-langtags-detect += "${PN}-module-vars" -RDEPENDS_${PN}-module-i18n-langtags-list += "${PN}-module-strict" -RDEPENDS_${PN}-module-i18n-langtags-list += "${PN}-module-vars" -RDEPENDS_${PN}-module-i18n-langtags += "${PN}-module-exporter" -RDEPENDS_${PN}-module-i18n-langtags += "${PN}-module-strict" -RDEPENDS_${PN}-module-i18n-langtags += "${PN}-module-vars" -RDEPENDS_${PN}-module-io-compress-adapter-bzip2 += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-adapter-bzip2 += "${PN}-module-compress-raw-bzip2" -RDEPENDS_${PN}-module-io-compress-adapter-bzip2 += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-adapter-bzip2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-compress-adapter-bzip2 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-compress-adapter-deflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-adapter-identity += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-adapter-identity += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-adapter-identity += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-compress-adapter-identity += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-encode" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-file-globmapper" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-utf8" -RDEPENDS_${PN}-module-io-compress-base-common += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-io-file" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-io-handle " -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-compress-base += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-io-compress-adapter-bzip2" -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-io-compress-base" -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-bzip2 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-io-compress-adapter-deflate" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-io-compress-rawdeflate" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-io-compress-zlib-constants" -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-deflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-gzip-constants += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-gzip-constants += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-compress-gzip-constants += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-compress-gzip-constants += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-gzip-constants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-io-compress-adapter-deflate" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-io-compress-gzip-constants" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-io-compress-rawdeflate" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-io-compress-zlib-extra" -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-gzip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-io-compress-adapter-deflate" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-io-compress-base" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-rawdeflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-zip-constants += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-compress-zip-constants += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-compress-zip-constants += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-zip-constants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-config" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-adapter-deflate" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-adapter-identity" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-bzip2" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-rawdeflate" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-zip-constants" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-io-compress-zlib-extra" -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-zip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-zlib-constants += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-zlib-constants += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-compress-zlib-constants += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-compress-zlib-constants += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-zlib-constants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-compress-zlib-extra += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-compress-zlib-extra += "${PN}-module-io-compress-gzip-constants" -RDEPENDS_${PN}-module-io-compress-zlib-extra += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-compress-zlib-extra += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-file-stat" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-io-file" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-dir += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-io-file += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-file += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-file += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-file += "${PN}-module-io-seekable" -RDEPENDS_${PN}-module-io-file += "${PN}-module-selectsaver" -RDEPENDS_${PN}-module-io-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-file += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-io" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-io-file" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-selectsaver" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-handle += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io += "${PN}-module-carp" -RDEPENDS_${PN}-module-io += "${PN}-module-strict" -RDEPENDS_${PN}-module-io += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-io-pipe += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-pipe += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-pipe += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-io-pipe += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-pipe += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-poll += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-poll += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-io-poll += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-seekable += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-seekable += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-seekable += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-seekable += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-io-seekable += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-select += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-select += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-select += "${PN}-module-vars" -RDEPENDS_${PN}-module-io-select += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-errno" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-socket" -RDEPENDS_${PN}-module-io-socket-inet += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-base" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-errno" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-posix" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-socket" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-socket-ip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-errno" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-exporter" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-io-select" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-io-socket-inet" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-io-socket-unix" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-socket" -RDEPENDS_${PN}-module-io-socket += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-socket-unix += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-socket-unix += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-io-socket-unix += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-adapter-bunzip2 += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-adapter-bunzip2 += "${PN}-module-compress-raw-bzip2" -RDEPENDS_${PN}-module-io-uncompress-adapter-bunzip2 += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-adapter-bunzip2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-adapter-bunzip2 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-io-compress-zip-constants " -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-adapter-identity += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-adapter-inflate += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-uncompress-adapter-inflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-adapter-inflate += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-adapter-inflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-adapter-inflate" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-base" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-gunzip" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-inflate" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-rawinflate" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-io-uncompress-unzip" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-anyinflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-io-uncompress-base" -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-uncompress-anyuncompress += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-carp " -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-io-file " -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-list-util" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-uncompress-base += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-io-uncompress-adapter-bunzip2" -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-io-uncompress-base" -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-bunzip2 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-io-compress-gzip-constants" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-io-compress-zlib-extra" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-io-uncompress-rawinflate" -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-gunzip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-bytes" -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-io-compress-zlib-constants" -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-io-uncompress-rawinflate" -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-inflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-io-uncompress-adapter-inflate" -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-io-uncompress-base" -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-rawinflate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-compress-raw-zlib" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-constant" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-exporter " -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-compress-base-common" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-compress-zip-constants" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-compress-zlib-extra" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-file" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-uncompress-adapter-identity" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-uncompress-adapter-inflate" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-io-uncompress-rawinflate" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-posix" -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-strict " -RDEPENDS_${PN}-module-io-uncompress-unzip += "${PN}-module-warnings" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-carp" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-strict" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-symbol" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-tie-handle" -RDEPENDS_${PN}-module-io-zlib += "${PN}-module-vars" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-constant" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-exporter" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-extutils-makemaker" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-io-select" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-ipc-open3" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-locale-maketext-simple" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-load" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-params-check" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-posix" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-socket" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-symbol" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-time-hires" -RDEPENDS_${PN}-module-ipc-cmd += "${PN}-module-vars" -RDEPENDS_${PN}-module-ipc-msg += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-msg += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-ipc-msg += "${PN}-module-ipc-sysv" -RDEPENDS_${PN}-module-ipc-msg += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-msg += "${PN}-module-vars" -RDEPENDS_${PN}-module-ipc-open2 += "${PN}-module-exporter" -RDEPENDS_${PN}-module-ipc-open2 += "${PN}-module-ipc-open3" -RDEPENDS_${PN}-module-ipc-open2 += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-constant" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-exporter" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-io-pipe" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-posix" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-open3 += "${PN}-module-symbol" -RDEPENDS_${PN}-module-ipc-semaphore += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-semaphore += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-ipc-semaphore += "${PN}-module-ipc-sysv" -RDEPENDS_${PN}-module-ipc-semaphore += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-semaphore += "${PN}-module-vars" -RDEPENDS_${PN}-module-ipc-sharedmem += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-sharedmem += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-ipc-sharedmem += "${PN}-module-ipc-sysv" -RDEPENDS_${PN}-module-ipc-sharedmem += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-sharedmem += "${PN}-module-vars" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-carp" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-config" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-exporter" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-strict" -RDEPENDS_${PN}-module-ipc-sysv += "${PN}-module-vars" -RDEPENDS_${PN}-module-json-pp-boolean += "${PN}-module-json-pp" -RDEPENDS_${PN}-module-json-pp-boolean += "${PN}-module-strict" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-b" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-base" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-bytes" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-carp" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-constant" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-encode" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-overload" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-strict" -RDEPENDS_${PN}-module-json-pp += "${PN}-module-subs" -RDEPENDS_${PN}-module-less += "${PN}-module-strict" -RDEPENDS_${PN}-module-less += "${PN}-module-warnings" -RDEPENDS_${PN}-module-lib += "${PN}-module-carp" -RDEPENDS_${PN}-module-lib += "${PN}-module-config" -RDEPENDS_${PN}-module-lib += "${PN}-module-strict" -RDEPENDS_${PN}-module-list-util += "${PN}-module-exporter" -RDEPENDS_${PN}-module-list-util += "${PN}-module-strict" -RDEPENDS_${PN}-module-list-util += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-list-util-xs += "${PN}-module-list-util" -RDEPENDS_${PN}-module-list-util-xs += "${PN}-module-strict" -RDEPENDS_${PN}-module-loaded += "${PN}-module-carp" -RDEPENDS_${PN}-module-loaded += "${PN}-module-strict" -RDEPENDS_${PN}-module-loaded += "${PN}-module-vars" -RDEPENDS_${PN}-module-load += "${PN}-module-carp" -RDEPENDS_${PN}-module-load += "${PN}-module-config" -RDEPENDS_${PN}-module-load += "${PN}-module-constant" -RDEPENDS_${PN}-module-load += "${PN}-module-exporter" -RDEPENDS_${PN}-module-load += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-load += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-load += "${PN}-module-locale-maketext-simple" -RDEPENDS_${PN}-module-load += "${PN}-module-corelist" -RDEPENDS_${PN}-module-load += "${PN}-module-load" -RDEPENDS_${PN}-module-load += "${PN}-module-params-check" -RDEPENDS_${PN}-module-load += "${PN}-module-strict" -RDEPENDS_${PN}-module-load += "${PN}-module-vars" -RDEPENDS_${PN}-module-load += "${PN}-module-version" -RDEPENDS_${PN}-module-load += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-constants += "${PN}-module-constant" -RDEPENDS_${PN}-module-locale-codes-constants += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-constants += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-constants += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-country-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-country-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-country-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-locale-codes-country-codes" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-locale-codes-country-retired" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-country += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-country-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-country-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-country-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-currency-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-currency-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-currency-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-locale-codes-currency-codes" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-locale-codes-currency-retired" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-currency += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-currency-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-currency-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-currency-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langext-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langext-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-langext-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-locale-codes-langext-codes" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-locale-codes-langext-retired" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langext += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langext-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langext-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-langext-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langfam-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langfam-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-langfam-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-locale-codes-langfam-codes" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-locale-codes-langfam-retired" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langfam += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langfam-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langfam-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-language-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-language-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-language-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-locale-codes-language-codes" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-locale-codes-language-retired" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-language += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-language-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-language-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-language-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langvar-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langvar-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-langvar-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-locale-codes-langvar-codes" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-locale-codes-langvar-retired" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langvar += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-langvar-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-langvar-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-langvar-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-script-codes += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-script-codes += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-script-codes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-locale-codes" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-locale-codes-constants" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-locale-codes-script-codes" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-locale-codes-script-retired" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-script += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-codes-script-retired += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-codes-script-retired += "${PN}-module-utf8" -RDEPENDS_${PN}-module-locale-codes-script-retired += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-country += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-country += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-country += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-currency += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-currency += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-currency += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-language += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-language += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-language += "${PN}-module-warnings" -RDEPENDS_${PN}-module-locale-maketext-gutsloader += "${PN}-module-locale-maketext" -RDEPENDS_${PN}-module-locale-maketext-guts += "${PN}-module-locale-maketext" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-i18n-langtags" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-i18n-langtags-detect" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-integer" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-maketext += "${PN}-module-vars" -RDEPENDS_${PN}-module-locale-maketext-simple += "${PN}-module-base" -RDEPENDS_${PN}-module-locale-maketext-simple += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale += "${PN}-module-carp" -RDEPENDS_${PN}-module-locale += "${PN}-module-config" -RDEPENDS_${PN}-module-locale-script += "${PN}-module-exporter" -RDEPENDS_${PN}-module-locale-script += "${PN}-module-strict" -RDEPENDS_${PN}-module-locale-script += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-carp" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-math-complex" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigfloat += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigfloat-trace += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-bigfloat-trace += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-math-bigfloat-trace += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-bigfloat-trace += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigfloat-trace += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigint-calcemu += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigint-calcemu += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigint-calc += "${PN}-module-carp" -RDEPENDS_${PN}-module-math-bigint-calc += "${PN}-module-constant" -RDEPENDS_${PN}-module-math-bigint-calc += "${PN}-module-integer" -RDEPENDS_${PN}-module-math-bigint-calc += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigint-calc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigint-fastcalc += "${PN}-module-math-bigint-calc" -RDEPENDS_${PN}-module-math-bigint-fastcalc += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigint-fastcalc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigint-fastcalc += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-carp" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-complex" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigint-trace += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-bigint-trace += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-math-bigint-trace += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-bigint-trace += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigint-trace += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-carp" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-math-bigfloat" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-math-bigint" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-bigrat += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-config" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-overload" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-strict" -RDEPENDS_${PN}-module-math-complex += "${PN}-module-warnings" -RDEPENDS_${PN}-module-math-trig += "${PN}-module-exporter" -RDEPENDS_${PN}-module-math-trig += "${PN}-module-math-complex" -RDEPENDS_${PN}-module-math-trig += "${PN}-module-strict" -RDEPENDS_${PN}-module-memoize-anydbm-file += "${PN}-module-vars" -RDEPENDS_${PN}-module-memoize-expirefile += "${PN}-module-carp" -RDEPENDS_${PN}-module-memoize-expire += "${PN}-module-carp" -RDEPENDS_${PN}-module-memoize += "${PN}-module-carp" -RDEPENDS_${PN}-module-memoize += "${PN}-module-config" -RDEPENDS_${PN}-module-memoize += "${PN}-module-exporter" -RDEPENDS_${PN}-module-memoize += "${PN}-module-strict" -RDEPENDS_${PN}-module-memoize += "${PN}-module-vars" -RDEPENDS_${PN}-module-memoize-sdbm-file += "${PN}-module-sdbm-file" -RDEPENDS_${PN}-module-memoize-storable += "${PN}-module-carp" -RDEPENDS_${PN}-module-memoize-storable += "${PN}-module-storable" -RDEPENDS_${PN}-module-meta-notation += "${PN}-module-strict" -RDEPENDS_${PN}-module-meta-notation += "${PN}-module-warnings" -RDEPENDS_${PN}-module-mime-base64 += "${PN}-module-exporter" -RDEPENDS_${PN}-module-mime-base64 += "${PN}-module-strict" -RDEPENDS_${PN}-module-mime-base64 += "${PN}-module-vars" -RDEPENDS_${PN}-module-mime-base64 += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-mime-quotedprint += "${PN}-module-exporter" -RDEPENDS_${PN}-module-mime-quotedprint += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-mime-quotedprint += "${PN}-module-strict" -RDEPENDS_${PN}-module-mime-quotedprint += "${PN}-module-vars" -RDEPENDS_${PN}-module-mro += "${PN}-module-strict" -RDEPENDS_${PN}-module-mro += "${PN}-module-warnings" -RDEPENDS_${PN}-module-mro += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-constant" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-errno" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-symbol" -RDEPENDS_${PN}-module-net-cmd += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-config += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-config += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-config += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-config += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-posix" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-domain += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp-a += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-ftp-a += "${PN}-module-net-ftp-dataconn" -RDEPENDS_${PN}-module-net-ftp-a += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp-a += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp-dataconn += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-ftp-dataconn += "${PN}-module-errno" -RDEPENDS_${PN}-module-net-ftp-dataconn += "${PN}-module-net-cmd" -RDEPENDS_${PN}-module-net-ftp-dataconn += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp-dataconn += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp-e += "${PN}-module-net-ftp-i" -RDEPENDS_${PN}-module-net-ftp-e += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp-e += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp-i += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-ftp-i += "${PN}-module-net-ftp-dataconn" -RDEPENDS_${PN}-module-net-ftp-i += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp-i += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp-l += "${PN}-module-net-ftp-i" -RDEPENDS_${PN}-module-net-ftp-l += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp-l += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-constant" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-io-socket-ip" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-net-cmd" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-net-ftp-a" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-net-netrc" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-time-local" -RDEPENDS_${PN}-module-net-ftp += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-hostent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-net-hostent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-hostent += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-hostent += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-hostent += "${PN}-module-vars" -RDEPENDS_${PN}-module-net-netent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-net-netent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-netent += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-netent += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-netent += "${PN}-module-vars" -RDEPENDS_${PN}-module-net-netrc += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-netrc += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-net-netrc += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-netrc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-io-socket-ip" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-net-cmd" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-time-local" -RDEPENDS_${PN}-module-net-nntp += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-constant" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-filehandle" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-posix" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-time-hires" -RDEPENDS_${PN}-module-net-ping += "${PN}-module-vars" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-io-socket-ip" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-net-cmd" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-net-netrc" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-pop3 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-protoent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-net-protoent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-protoent += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-protoent += "${PN}-module-vars" -RDEPENDS_${PN}-module-net-servent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-net-servent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-servent += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-servent += "${PN}-module-vars" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-io-socket-ip" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-mime-base64" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-net-cmd" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-socket" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-smtp += "${PN}-module-warnings" -RDEPENDS_${PN}-module-net-time += "${PN}-module-carp" -RDEPENDS_${PN}-module-net-time += "${PN}-module-exporter" -RDEPENDS_${PN}-module-net-time += "${PN}-module-io-select" -RDEPENDS_${PN}-module-net-time += "${PN}-module-io-socket" -RDEPENDS_${PN}-module-net-time += "${PN}-module-net-config" -RDEPENDS_${PN}-module-net-time += "${PN}-module-strict" -RDEPENDS_${PN}-module-net-time += "${PN}-module-warnings" -RDEPENDS_${PN}-module-next += "${PN}-module-carp" -RDEPENDS_${PN}-module-next += "${PN}-module-overload" -RDEPENDS_${PN}-module-next += "${PN}-module-strict" -RDEPENDS_${PN}-module-odbm-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-odbm-file += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-odbm-file += "${PN}-module-warnings" -RDEPENDS_${PN}-module-odbm-file += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-ok += "${PN}-module-strict" -RDEPENDS_${PN}-module-ok += "${PN}-module-test-more" -RDEPENDS_${PN}-module-opcode += "${PN}-module-carp" -RDEPENDS_${PN}-module-opcode += "${PN}-module-exporter" -RDEPENDS_${PN}-module-opcode += "${PN}-module-strict" -RDEPENDS_${PN}-module-opcode += "${PN}-module-subs" -RDEPENDS_${PN}-module-opcode += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-open += "${PN}-module-carp" -RDEPENDS_${PN}-module-open += "${PN}-module-encode" -RDEPENDS_${PN}-module-open += "${PN}-module-encoding" -RDEPENDS_${PN}-module-open += "${PN}-module-warnings" -RDEPENDS_${PN}-module-o += "${PN}-module-b" -RDEPENDS_${PN}-module-o += "${PN}-module-carp" -RDEPENDS_${PN}-module-ops += "${PN}-module-opcode" -RDEPENDS_${PN}-module-overloading += "${PN}-module-overload-numbers" -RDEPENDS_${PN}-module-overloading += "${PN}-module-warnings" -RDEPENDS_${PN}-module-overload += "${PN}-module-mro" -RDEPENDS_${PN}-module-overload += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-overload += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-params-check += "${PN}-module-carp" -RDEPENDS_${PN}-module-params-check += "${PN}-module-exporter" -RDEPENDS_${PN}-module-params-check += "${PN}-module-locale-maketext-simple" -RDEPENDS_${PN}-module-params-check += "${PN}-module-strict" -RDEPENDS_${PN}-module-params-check += "${PN}-module-vars" -RDEPENDS_${PN}-module-parent += "${PN}-module-strict" -RDEPENDS_${PN}-module-parent += "${PN}-module-vars" -RDEPENDS_${PN}-module-perlfaq += "${PN}-module-strict" -RDEPENDS_${PN}-module-perlfaq += "${PN}-module-warnings" -RDEPENDS_${PN}-module-perlio-encoding += "${PN}-module-strict" -RDEPENDS_${PN}-module-perlio-encoding += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-perlio-mmap += "${PN}-module-strict" -RDEPENDS_${PN}-module-perlio-mmap += "${PN}-module-warnings" -RDEPENDS_${PN}-module-perlio-mmap += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-perlio-scalar += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-perlio-via += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-perlio-via-quotedprint += "${PN}-module-mime-quotedprint" -RDEPENDS_${PN}-module-perlio-via-quotedprint += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-pod-parser" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-pod-parseutils" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-checker += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-escapes += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-escapes += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-escapes += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-escapes += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-config" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-cwd" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-file-find" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-find += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-functions += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-functions += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-inputobjects += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-inputobjects += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-subs" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-man += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-parselink += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-parselink += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-parselink += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-parselink += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-pod-inputobjects" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-parser += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-parseutils += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-parseutils += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-parseutils += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-config" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-baseto += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-getoptsoo += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-getoptsoo += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-config" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-encode" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-file-temp" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-pod-perldoc-getoptsoo" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-toansi += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-toansi += "${PN}-module-pod-text-color" -RDEPENDS_${PN}-module-pod-perldoc-toansi += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-toansi += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-toansi += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-tochecker += "${PN}-module-pod-checker" -RDEPENDS_${PN}-module-pod-perldoc-tochecker += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-tochecker += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-tochecker += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-encode" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-file-spec-functions" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-io-select" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-ipc-open3" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-pod-man" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-pod-perldoc-topod" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-toman += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-tonroff += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-tonroff += "${PN}-module-pod-man" -RDEPENDS_${PN}-module-pod-perldoc-tonroff += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-tonroff += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-tonroff += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-topod += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-topod += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-topod += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-topod += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-tortf += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-tortf += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-tortf += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-tortf += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-toterm += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-toterm += "${PN}-module-pod-text-termcap" -RDEPENDS_${PN}-module-pod-perldoc-toterm += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-toterm += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-toterm += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-totext += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-totext += "${PN}-module-pod-text" -RDEPENDS_${PN}-module-pod-perldoc-totext += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-totext += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-totext += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-perldoc-toxml += "${PN}-module-parent" -RDEPENDS_${PN}-module-pod-perldoc-toxml += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-perldoc-toxml += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-perldoc-toxml += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-plaintext += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-plaintext += "${PN}-module-pod-select" -RDEPENDS_${PN}-module-pod-plaintext += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-plaintext += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-plaintext += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-select += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-select += "${PN}-module-pod-parser" -RDEPENDS_${PN}-module-pod-select += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-select += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-integer" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-pod-simple-transcode" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-blackbox += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-pod-simple-methody" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-text-wrap" -RDEPENDS_${PN}-module-pod-simple-checker += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-debug += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-debug += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-debug += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-debug += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-dumpastext += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-dumpastext += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-dumpastext += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-dumpasxml += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-dumpasxml += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-dumpasxml += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-dumpasxml += "${PN}-module-text-wrap" -RDEPENDS_${PN}-module-pod-simple-linksection += "${PN}-module-overload" -RDEPENDS_${PN}-module-pod-simple-linksection += "${PN}-module-pod-simple-blackbox" -RDEPENDS_${PN}-module-pod-simple-linksection += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-linksection += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-methody += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-methody += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-methody += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-integer" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-pod-escapes" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-pod-simple-blackbox" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-pod-simple-linksection" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-pod-simple-tiedoutfh" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-simple += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-progress += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-pullparserendtoken += "${PN}-module-pod-simple-pullparsertoken" -RDEPENDS_${PN}-module-pod-simple-pullparserendtoken += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-pullparserendtoken += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-pod-simple-pullparserendtoken" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-pod-simple-pullparserstarttoken" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-pod-simple-pullparsertexttoken" -RDEPENDS_${PN}-module-pod-simple-pullparser += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-pullparserstarttoken += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-pullparserstarttoken += "${PN}-module-pod-simple-pullparsertoken" -RDEPENDS_${PN}-module-pod-simple-pullparserstarttoken += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-pullparserstarttoken += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-pullparsertexttoken += "${PN}-module-pod-simple-pullparsertoken" -RDEPENDS_${PN}-module-pod-simple-pullparsertexttoken += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-pullparsertexttoken += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-pullparsertoken += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-rtf += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-rtf += "${PN}-module-integer" -RDEPENDS_${PN}-module-pod-simple-rtf += "${PN}-module-pod-simple-pullparser" -RDEPENDS_${PN}-module-pod-simple-rtf += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-rtf += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-config" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-cwd" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-search += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-simpletree += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-simpletree += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-simpletree += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-simpletree += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-textcontent += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-textcontent += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-textcontent += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-textcontent += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-pod-simple-methody" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-text-wrap" -RDEPENDS_${PN}-module-pod-simple-text += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-tiedoutfh += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-tiedoutfh += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-tiedoutfh += "${PN}-module-symbol" -RDEPENDS_${PN}-module-pod-simple-tiedoutfh += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-transcodedumb += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-transcodedumb += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-transcode += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-transcode += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-transcodesmart += "${PN}-module-encode" -RDEPENDS_${PN}-module-pod-simple-transcodesmart += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-transcodesmart += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-transcodesmart += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-simple-xmloutstream += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-simple-xmloutstream += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-simple-xmloutstream += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-simple-xmloutstream += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-text-color += "${PN}-module-pod-text" -RDEPENDS_${PN}-module-pod-text-color += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-text-color += "${PN}-module-term-ansicolor" -RDEPENDS_${PN}-module-pod-text-color += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-text-color += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-text-overstrike += "${PN}-module-pod-text" -RDEPENDS_${PN}-module-pod-text-overstrike += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-text-overstrike += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-text-overstrike += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-encode" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-pod-simple" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-text += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-pod-text" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-posix" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-term-cap" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-vars" -RDEPENDS_${PN}-module-pod-text-termcap += "${PN}-module-warnings" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-carp" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-config" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-exporter" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-strict" -RDEPENDS_${PN}-module-pod-usage += "${PN}-module-vars" -RDEPENDS_${PN}-module-posix += "${PN}-module-exporter" -RDEPENDS_${PN}-module-posix += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-posix += "${PN}-module-strict" -RDEPENDS_${PN}-module-posix += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-posix += "${PN}-module-warnings" -RDEPENDS_${PN}-module-posix += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-re += "${PN}-module-carp" -RDEPENDS_${PN}-module-re += "${PN}-module-exporter" -RDEPENDS_${PN}-module-re += "${PN}-module-strict" -RDEPENDS_${PN}-module-re += "${PN}-module-term-cap" -RDEPENDS_${PN}-module-re += "${PN}-module-warnings" -RDEPENDS_${PN}-module-re += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-safe += "${PN}-module-b" -RDEPENDS_${PN}-module-safe += "${PN}-module-carp" -RDEPENDS_${PN}-module-safe += "${PN}-module-carp-heavy" -RDEPENDS_${PN}-module-safe += "${PN}-module-opcode" -RDEPENDS_${PN}-module-safe += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-safe += "${PN}-module-strict" -RDEPENDS_${PN}-module-safe += "${PN}-module-utf8" -RDEPENDS_${PN}-module-scalar-util += "${PN}-module-carp" -RDEPENDS_${PN}-module-scalar-util += "${PN}-module-exporter" -RDEPENDS_${PN}-module-scalar-util += "${PN}-module-list-util" -RDEPENDS_${PN}-module-scalar-util += "${PN}-module-strict" -RDEPENDS_${PN}-module-sdbm-file += "${PN}-module-exporter" -RDEPENDS_${PN}-module-sdbm-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-sdbm-file += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-sdbm-file += "${PN}-module-warnings" -RDEPENDS_${PN}-module-sdbm-file += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-search-dict += "${PN}-module-exporter" -RDEPENDS_${PN}-module-search-dict += "${PN}-module-feature" -RDEPENDS_${PN}-module-search-dict += "${PN}-module-strict" -RDEPENDS_${PN}-module-selectsaver += "${PN}-module-carp" -RDEPENDS_${PN}-module-selectsaver += "${PN}-module-symbol" -RDEPENDS_${PN}-module-selfloader += "${PN}-module-exporter" -RDEPENDS_${PN}-module-selfloader += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-selfloader += "${PN}-module-strict" -RDEPENDS_${PN}-module-selfloader += "${PN}-module-vars" -RDEPENDS_${PN}-module-sigtrap += "${PN}-module-carp" -RDEPENDS_${PN}-module-sigtrap += "${PN}-module-symbol" -RDEPENDS_${PN}-module-socket += "${PN}-module-carp" -RDEPENDS_${PN}-module-socket += "${PN}-module-exporter" -RDEPENDS_${PN}-module-socket += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-socket += "${PN}-module-strict" -RDEPENDS_${PN}-module-socket += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-socket += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-sort += "${PN}-module-carp" -RDEPENDS_${PN}-module-sort += "${PN}-module-strict" -RDEPENDS_${PN}-module-storable += "${PN}-module-carp" -RDEPENDS_${PN}-module-storable += "${PN}-module-config" -RDEPENDS_${PN}-module-storable += "${PN}-module-exporter" -RDEPENDS_${PN}-module-storable += "${PN}-module-io-file" -RDEPENDS_${PN}-module-storable += "${PN}-module-vars" -RDEPENDS_${PN}-module-storable += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-sub-util += "${PN}-module-exporter" -RDEPENDS_${PN}-module-sub-util += "${PN}-module-list-util" -RDEPENDS_${PN}-module-sub-util += "${PN}-module-strict" -RDEPENDS_${PN}-module-sub-util += "${PN}-module-warnings" -RDEPENDS_${PN}-module-symbol += "${PN}-module-exporter" -RDEPENDS_${PN}-module-sys-hostname += "${PN}-module-carp" -RDEPENDS_${PN}-module-sys-hostname += "${PN}-module-exporter" -RDEPENDS_${PN}-module-sys-hostname += "${PN}-module-posix" -RDEPENDS_${PN}-module-sys-hostname += "${PN}-module-strict" -RDEPENDS_${PN}-module-sys-hostname += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-carp" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-exporter" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-posix" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-socket" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-strict" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-sys-hostname" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-vars" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-warnings" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-sys-syslog += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-tap-base += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-base += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-base += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-base += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-base += "${PN}-module-posix" -RDEPENDS_${PN}-module-tap-formatter-base += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-base += "${PN}-module-tap-formatter-color" -RDEPENDS_${PN}-module-tap-formatter-base += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-color += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-color += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-formatter-color += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-color += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-file-path" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-console-parallelsession += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-console += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-console += "${PN}-module-posix" -RDEPENDS_${PN}-module-tap-formatter-console += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-console += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-console-session += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-console-session += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-console-session += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-file += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-file += "${PN}-module-posix" -RDEPENDS_${PN}-module-tap-formatter-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-file += "${PN}-module-tap-formatter-file-session" -RDEPENDS_${PN}-module-tap-formatter-file += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-file-session += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-file-session += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-file-session += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-formatter-session += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-formatter-session += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-formatter-session += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-harness-env += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-harness-env += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-harness-env += "${PN}-module-tap-object" -RDEPENDS_${PN}-module-tap-harness-env += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-tap-harness-env += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-file-path" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-harness += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-object += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-object += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-object += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-aggregator += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-aggregator += "${PN}-module-benchmark" -RDEPENDS_${PN}-module-tap-parser-aggregator += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-aggregator += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-aggregator += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-tap-parser-resultfactory" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-tap-parser-yamlish-reader" -RDEPENDS_${PN}-module-tap-parser-grammar += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-iterator-array += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-iterator-array += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-iterator-array += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-iteratorfactory += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-iterator += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-iterator += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-iterator += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-iterator += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-iterator-process += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-iterator-process += "${PN}-module-config" -RDEPENDS_${PN}-module-tap-parser-iterator-process += "${PN}-module-io-handle" -RDEPENDS_${PN}-module-tap-parser-iterator-process += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-iterator-process += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-iterator-stream += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-iterator-stream += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-iterator-stream += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-multiplexer += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-multiplexer += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-multiplexer += "${PN}-module-io-select" -RDEPENDS_${PN}-module-tap-parser-multiplexer += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-multiplexer += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-grammar" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-iterator" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-result" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-resultfactory" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-source" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-sourcehandler-executable" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-sourcehandler-file" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-sourcehandler-handle" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-sourcehandler-perl" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-tap-parser-sourcehandler-rawtap" -RDEPENDS_${PN}-module-tap-parser += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-bailout += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-bailout += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-bailout += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-comment += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-comment += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-comment += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-bailout" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-comment" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-plan" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-pragma" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-test" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-unknown" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-version" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-tap-parser-result-yaml" -RDEPENDS_${PN}-module-tap-parser-resultfactory += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-plan += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-plan += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-plan += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-pragma += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-pragma += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-pragma += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-test += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-test += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-test += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-unknown += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-unknown += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-unknown += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-version += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-version += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-version += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-result-yaml += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-result-yaml += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-result-yaml += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-scheduler-job += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-scheduler-job += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-scheduler-job += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-scheduler += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-scheduler += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-scheduler += "${PN}-module-tap-parser-scheduler-job" -RDEPENDS_${PN}-module-tap-parser-scheduler += "${PN}-module-tap-parser-scheduler-spinner" -RDEPENDS_${PN}-module-tap-parser-scheduler += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-scheduler-spinner += "${PN}-module-carp" -RDEPENDS_${PN}-module-tap-parser-scheduler-spinner += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-scheduler-spinner += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-tap-parser-iterator-process" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-executable += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-tap-parser-iterator-stream" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-file += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-tap-parser-iterator-stream" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-handle += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler += "${PN}-module-tap-parser-iterator" -RDEPENDS_${PN}-module-tap-parser-sourcehandler += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-config" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-tap-parser-iterator-process" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-perl += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-rawtap += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-rawtap += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-rawtap += "${PN}-module-tap-parser-iterator-array" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-rawtap += "${PN}-module-tap-parser-iteratorfactory" -RDEPENDS_${PN}-module-tap-parser-sourcehandler-rawtap += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-source += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-source += "${PN}-module-constant" -RDEPENDS_${PN}-module-tap-parser-source += "${PN}-module-file-basename" -RDEPENDS_${PN}-module-tap-parser-source += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-source += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-yamlish-reader += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-yamlish-reader += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-yamlish-reader += "${PN}-module-warnings" -RDEPENDS_${PN}-module-tap-parser-yamlish-writer += "${PN}-module-base" -RDEPENDS_${PN}-module-tap-parser-yamlish-writer += "${PN}-module-strict" -RDEPENDS_${PN}-module-tap-parser-yamlish-writer += "${PN}-module-warnings" -RDEPENDS_${PN}-module-term-ansicolor += "${PN}-module-carp" -RDEPENDS_${PN}-module-term-ansicolor += "${PN}-module-exporter" -RDEPENDS_${PN}-module-term-ansicolor += "${PN}-module-strict" -RDEPENDS_${PN}-module-term-ansicolor += "${PN}-module-warnings" -RDEPENDS_${PN}-module-term-cap += "${PN}-module-carp" -RDEPENDS_${PN}-module-term-cap += "${PN}-module-strict" -RDEPENDS_${PN}-module-term-cap += "${PN}-module-vars" -RDEPENDS_${PN}-module-term-complete += "${PN}-module-exporter" -RDEPENDS_${PN}-module-term-complete += "${PN}-module-strict" -RDEPENDS_${PN}-module-term-readline += "${PN}-module-strict" -RDEPENDS_${PN}-module-term-readline += "${PN}-module-term-cap" -RDEPENDS_${PN}-module-test-builder-module += "${PN}-module-exporter" -RDEPENDS_${PN}-module-test-builder-module += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-builder-module += "${PN}-module-test-builder" -RDEPENDS_${PN}-module-test-builder += "${PN}-module-config" -RDEPENDS_${PN}-module-test-builder += "${PN}-module-perlio" -RDEPENDS_${PN}-module-test-builder += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-builder += "${PN}-module-threads-shared" -RDEPENDS_${PN}-module-test-builder += "${PN}-module-warnings" -RDEPENDS_${PN}-module-test-builder-tester-color += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-builder-tester-color += "${PN}-module-test-builder-tester" -RDEPENDS_${PN}-module-test-builder-tester += "${PN}-module-carp" -RDEPENDS_${PN}-module-test-builder-tester += "${PN}-module-exporter" -RDEPENDS_${PN}-module-test-builder-tester += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-builder-tester += "${PN}-module-symbol" -RDEPENDS_${PN}-module-test-builder-tester += "${PN}-module-test-builder" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-base" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-config" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-constant" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-tap-harness" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-tap-parser-aggregator" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-tap-parser-source" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-tap-parser-sourcehandler-perl" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-text-parsewords" -RDEPENDS_${PN}-module-test-harness += "${PN}-module-warnings" -RDEPENDS_${PN}-module-test-more += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-test-more += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-more += "${PN}-module-test-builder-module" -RDEPENDS_${PN}-module-test-more += "${PN}-module-warnings" -RDEPENDS_${PN}-module-test += "${PN}-module-carp" -RDEPENDS_${PN}-module-test += "${PN}-module-exporter" -RDEPENDS_${PN}-module-test += "${PN}-module-file-temp" -RDEPENDS_${PN}-module-test += "${PN}-module-strict" -RDEPENDS_${PN}-module-test += "${PN}-module-vars" -RDEPENDS_${PN}-module-test-simple += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-simple += "${PN}-module-test-builder-module" -RDEPENDS_${PN}-module-test-tester-capture += "${PN}-module-config" -RDEPENDS_${PN}-module-test-tester-capture += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-tester-capture += "${PN}-module-test-builder" -RDEPENDS_${PN}-module-test-tester-capture += "${PN}-module-threads-shared" -RDEPENDS_${PN}-module-test-tester-capture += "${PN}-module-vars" -RDEPENDS_${PN}-module-test-tester-capturerunner += "${PN}-module-exporter" -RDEPENDS_${PN}-module-test-tester-capturerunner += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-tester-capturerunner += "${PN}-module-test-tester-capture" -RDEPENDS_${PN}-module-test-tester-delegate += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-tester-delegate += "${PN}-module-vars" -RDEPENDS_${PN}-module-test-tester-delegate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-exporter" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-strict" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-test-builder" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-test-tester-capturerunner" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-test-tester-delegate" -RDEPENDS_${PN}-module-test-tester += "${PN}-module-vars" -RDEPENDS_${PN}-module-text-abbrev += "${PN}-module-exporter" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-carp" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-exporter" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-overload" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-selfloader" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-strict" -RDEPENDS_${PN}-module-text-balanced += "${PN}-module-vars" -RDEPENDS_${PN}-module-text-parsewords += "${PN}-module-carp" -RDEPENDS_${PN}-module-text-parsewords += "${PN}-module-exporter" -RDEPENDS_${PN}-module-text-parsewords += "${PN}-module-strict" -RDEPENDS_${PN}-module-text-tabs += "${PN}-module-exporter" -RDEPENDS_${PN}-module-text-tabs += "${PN}-module-strict" -RDEPENDS_${PN}-module-text-tabs += "${PN}-module-vars" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-exporter" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-re" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-strict" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-text-tabs" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-vars" -RDEPENDS_${PN}-module-text-wrap += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-thread += "${PN}-module-config" -RDEPENDS_${PN}-module-thread += "${PN}-module-exporter" -RDEPENDS_${PN}-module-thread += "${PN}-module-strict" -RDEPENDS_${PN}-module-thread += "${PN}-module-threads" -RDEPENDS_${PN}-module-thread += "${PN}-module-threads-shared" -RDEPENDS_${PN}-module-thread += "${PN}-module-warnings" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-carp" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-strict" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-threads-shared" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-warnings" -RDEPENDS_${PN}-module-thread-semaphore += "${PN}-module-carp" -RDEPENDS_${PN}-module-thread-semaphore += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-thread-semaphore += "${PN}-module-strict" -RDEPENDS_${PN}-module-thread-semaphore += "${PN}-module-threads-shared" -RDEPENDS_${PN}-module-thread-semaphore += "${PN}-module-warnings" -RDEPENDS_${PN}-module-threads += "${PN}-module-carp" -RDEPENDS_${PN}-module-threads += "${PN}-module-config" -RDEPENDS_${PN}-module-threads += "${PN}-module-overload" -RDEPENDS_${PN}-module-threads += "${PN}-module-strict" -RDEPENDS_${PN}-module-threads += "${PN}-module-warnings" -RDEPENDS_${PN}-module-threads += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-threads-shared += "${PN}-module-carp" -RDEPENDS_${PN}-module-threads-shared += "${PN}-module-scalar-util" -RDEPENDS_${PN}-module-threads-shared += "${PN}-module-strict" -RDEPENDS_${PN}-module-threads-shared += "${PN}-module-warnings" -RDEPENDS_${PN}-module-threads-shared += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-tie-array += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-array += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-array += "${PN}-module-vars" -RDEPENDS_${PN}-module-tie-file += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-file += "${PN}-module-fcntl" -RDEPENDS_${PN}-module-tie-file += "${PN}-module-posix" -RDEPENDS_${PN}-module-tie-file += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-file += "${PN}-module-symbol" -RDEPENDS_${PN}-module-tie-handle += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-handle += "${PN}-module-tie-stdhandle" -RDEPENDS_${PN}-module-tie-handle += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-tie-hash-namedcapture += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-hash-namedcapture += "${PN}-module-xsloader" -RDEPENDS_${PN}-module-tie-hash += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-hash += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-tie-memoize += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-memoize += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-config" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-overload" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-tie-hash" -RDEPENDS_${PN}-module-tie-refhash += "${PN}-module-vars" -RDEPENDS_${PN}-module-tie-scalar += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-scalar += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-tie-stdhandle += "${PN}-module-strict" -RDEPENDS_${PN}-module-tie-stdhandle += "${PN}-module-tie-handle" -RDEPENDS_${PN}-module-tie-stdhandle += "${PN}-module-vars" -RDEPENDS_${PN}-module-tie-substrhash += "${PN}-module-carp" -RDEPENDS_${PN}-module-tie-substrhash += "${PN}-module-integer" -RDEPENDS_${PN}-module-time-gmtime += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-gmtime += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-gmtime += "${PN}-module-time-tm" -RDEPENDS_${PN}-module-time-gmtime += "${PN}-module-vars" -RDEPENDS_${PN}-module-time-hires += "${PN}-module-carp" -RDEPENDS_${PN}-module-time-hires += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-time-hires += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-hires += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-local += "${PN}-module-carp" -RDEPENDS_${PN}-module-time-local += "${PN}-module-config" -RDEPENDS_${PN}-module-time-local += "${PN}-module-constant" -RDEPENDS_${PN}-module-time-local += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-local += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-local += "${PN}-module-vars" -RDEPENDS_${PN}-module-time-localtime += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-localtime += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-localtime += "${PN}-module-time-tm" -RDEPENDS_${PN}-module-time-localtime += "${PN}-module-vars" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-carp" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-constant" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-integer" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-overload" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-time-local" -RDEPENDS_${PN}-module-time-piece += "${PN}-module-time-seconds" -RDEPENDS_${PN}-module-time-seconds += "${PN}-module-constant" -RDEPENDS_${PN}-module-time-seconds += "${PN}-module-exporter" -RDEPENDS_${PN}-module-time-seconds += "${PN}-module-overload" -RDEPENDS_${PN}-module-time-seconds += "${PN}-module-strict" -RDEPENDS_${PN}-module-time-tm += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-time-tm += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-big5 += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-big5 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-gb2312 += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-gb2312 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-jisx0208 += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-jisx0208 += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-korean += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-korean += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-pinyin += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-pinyin += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-stroke += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-stroke += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-cjk-zhuyin += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-cjk-zhuyin += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate-locale += "${PN}-module-base" -RDEPENDS_${PN}-module-unicode-collate-locale += "${PN}-module-carp" -RDEPENDS_${PN}-module-unicode-collate-locale += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate-locale += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-carp" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-constant" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-collate += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-normalize += "${PN}-module-carp" -RDEPENDS_${PN}-module-unicode-normalize += "${PN}-module-dynaloader" -RDEPENDS_${PN}-module-unicode-normalize += "${PN}-module-exporter" -RDEPENDS_${PN}-module-unicode-normalize += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-normalize += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-carp" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-charnames" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-exporter" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-feature" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-file-spec" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-if" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-integer" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-strict" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-unicode-normalize" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-unicore" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-utf8-heavy" -RDEPENDS_${PN}-module-unicode-ucd += "${PN}-module-warnings" -RDEPENDS_${PN}-module-unicore += "${PN}-module-integer" -RDEPENDS_${PN}-module-universal += "${PN}-module-carp" -RDEPENDS_${PN}-module-user-grent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-user-grent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-user-grent += "${PN}-module-strict" -RDEPENDS_${PN}-module-user-grent += "${PN}-module-vars" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-carp" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-class-struct" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-config" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-exporter" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-strict" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-vars" -RDEPENDS_${PN}-module-user-pwent += "${PN}-module-warnings" -RDEPENDS_${PN}-module-utf8 += "${PN}-module-carp" -RDEPENDS_${PN}-module-utf8 += "${PN}-module-utf8-heavy" -RDEPENDS_${PN}-module-version += "${PN}-module-strict" -RDEPENDS_${PN}-module-version += "${PN}-module-vars" -RDEPENDS_${PN}-module-version += "${PN}-module-version-regex" -RDEPENDS_${PN}-module-version += "${PN}-module-warnings-register" -RDEPENDS_${PN}-module-version-regex += "${PN}-module-strict" -RDEPENDS_${PN}-module-version-regex += "${PN}-module-vars" -RDEPENDS_${PN}-module-xsloader += "${PN}-module-carp" -RDEPENDS_${PN}-module-xsloader += "${PN}-module-dynaloader" diff --git a/external/poky/meta/recipes-devtools/perl/perl.inc b/external/poky/meta/recipes-devtools/perl/perl.inc deleted file mode 100644 index 3313a943..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl.inc +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "Perl scripting language" -HOMEPAGE = "http://www.perl.org/" -SECTION = "devel" -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ - file://Artistic;md5=2e6fd2475335af892494fe1f7327baf3" - -SRC_URI = "http://www.cpan.org/src/5.0/${BP}.tar.xz" - -inherit upstream-version-is-even diff --git a/external/poky/meta/recipes-devtools/perl/perl/0001-Configure-Remove-fstack-protector-strong-for-native-.patch b/external/poky/meta/recipes-devtools/perl/perl/0001-Configure-Remove-fstack-protector-strong-for-native-.patch deleted file mode 100644 index 14a05d29..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/0001-Configure-Remove-fstack-protector-strong-for-native-.patch +++ /dev/null @@ -1,103 +0,0 @@ -Some distributions (like opensuse421) supported by the project -comes with older gcc releases, -fstack-protector=strong is supported -by GCC>=4.9. - -This causes a build failure when install perl-native from a sstate that -comes from a machine supporting -fstack-protector=strong [1]. - -So disable usage of this flag in perl-native builds, this patch could -be removed when all supported distros comes with GCC>=4.9. - -[YOCTO #10338] - -Upstream-Status: Inappropriate [configuration] - -[1] http://errors.yoctoproject.org/Errors/Details/109589/ - -Signed-off-by: Aníbal Limón ---- - Configure | 54 ------------------------------------------------------ - 1 file changed, 54 deletions(-) - -diff --git a/Configure b/Configure -index efbdcfd..d5bd98c 100755 ---- a/Configure -+++ b/Configure -@@ -5468,30 +5468,6 @@ default|recommended) - eval $checkccflag - ;; - esac -- -- # on x86_64 (at least) we require an extra library (libssp) in the -- # link command line. This library is not named, so I infer that it is -- # an implementation detail that may change. Hence the safest approach -- # is to add the flag to the flags passed to the compiler at link time, -- # as that way the compiler can do the right implementation dependant -- # thing. (NWC) -- case "$osname" in -- amigaos) ;; # -fstack-protector builds but doesn't work -- *) case "$gccversion" in -- ?*) set stack-protector-strong -fstack-protector-strong -- eval $checkccflag -- case "$dflt" in -- *-fstack-protector-strong*) ;; # It got added. -- *) # Try the plain/older -fstack-protector. -- set stack-protector -fstack-protector -- eval $checkccflag -- ;; -- esac -- ;; -- esac -- ;; -- esac -- ;; - esac - - case "$mips_type" in -@@ -5634,21 +5610,6 @@ case "$ldflags" in - ;; - *) dflt="$ldflags";; - esac --# See note above about -fstack-protector --case "$ccflags" in --*-fstack-protector-strong*) -- case "$dflt" in -- *-fstack-protector-strong*) ;; # Don't add it again -- *) dflt="$dflt -fstack-protector-strong" ;; -- esac -- ;; --*-fstack-protector*) -- case "$dflt" in -- *-fstack-protector*) ;; # Don't add it again -- *) dflt="$dflt -fstack-protector" ;; -- esac -- ;; --esac - - : Try to guess additional flags to pick up local libraries. - for thislibdir in $libpth; do -@@ -8571,21 +8532,6 @@ EOM - ''|' ') dflt='none' ;; - esac - -- case "$ldflags" in -- *-fstack-protector-strong*) -- case "$dflt" in -- *-fstack-protector-strong*) ;; # Don't add it again -- *) dflt="$dflt -fstack-protector-strong" ;; -- esac -- ;; -- *-fstack-protector*) -- case "$dflt" in -- *-fstack-protector*) ;; # Don't add it again -- *) dflt="$dflt -fstack-protector" ;; -- esac -- ;; -- esac -- - rp="Any special flags to pass to $ld to create a dynamically loaded library?" - . ./myread - case "$ans" in --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch b/external/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch deleted file mode 100644 index a43fbba0..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/0001-ExtUtils-MM_Unix.pm-fix-race-issues.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 40702abf3156fa92ef70ee5d445fe52dd6cfbc7d Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Thu, 20 Sep 2018 18:48:48 +0800 -Subject: [PATCH] ExtUtils/MM_Unix.pm: fix race issues - -Fixed a race issue when compile libhtml-parser-perl and others who use MakeMaker: -[snip] -chmod 755 blib/arch/auto/HTML/Parser/Parser.so -chmod 644 "Parser.bs" -[snip] - -The rule INST_DYNAMIC removes '.bs' file which are generated by BOOTSTRAP, but -the have no dependencies, so there is a race issue: - -BOOTSTRAP: - touch foo.bs - chmod 755 foo.bs - -INST_DYNAMIC: - rm -fr foo.bs - -The error would happen when INST_DYNAMIC removes foo.bs after BOOTSTRAP touched -it but before chmod on it. - -Upstream-Status: Backport [https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/44e95e717372abe2b0a6ee55de4b686760b65360] - -Note, This is not a real backport, upstream has totally refactored it in one -patch, please see the link above, it's not a good idea to backport such a big -patch, I just referred it to fix the problem in a simple way. I mark it as -backport is because we can drop the patch after upgrade perl to 5.26 or 5.28. - -Signed-off-by: Robert Yang ---- - cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -index 95d9761..9cabe2d 100644 ---- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -@@ -933,7 +933,7 @@ OTHERLDFLAGS = '.$ld_opt.$otherldflags.' - INST_DYNAMIC_DEP = '.$inst_dynamic_dep.' - INST_DYNAMIC_FIX = '.$ld_fix.' - --$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) -+$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) $(BOOTSTRAP) - '); - if ($armaybe ne ':'){ - $ldfrom = 'tmp$(LIB_EXT)'; --- -2.7.4 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/0001-Skip-various-tests-if-PERL_BUILD_PACKAGING-is-set.patch b/external/poky/meta/recipes-devtools/perl/perl/0001-Skip-various-tests-if-PERL_BUILD_PACKAGING-is-set.patch deleted file mode 100644 index c5db1b70..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/0001-Skip-various-tests-if-PERL_BUILD_PACKAGING-is-set.patch +++ /dev/null @@ -1,126 +0,0 @@ -From ba6733216202523a95b0b7ee2e534b8e30b6d7df Mon Sep 17 00:00:00 2001 -From: Dominic Hargreaves -Date: Sat, 14 Oct 2017 16:27:53 +0200 -Subject: [PATCH] Skip various tests if PERL_BUILD_PACKAGING is set - -These are tests which tend not to be useful for downstream packagers - -t/porting/customized.t change originally from Todd Rinaldo - -Upstream-Status: Backport[https://perl5.git.perl.org/perl.git/ba6733216202523a95b0b7ee2e534b8e30b6d7df] - -Signed-off-by: Anuj Mittal ---- - INSTALL | 3 ++- - MANIFEST | 1 + - PACKAGING | 30 ++++++++++++++++++++++++++++++ - regen/lib_cleanup.pl | 5 +++++ - t/porting/customized.t | 1 + - t/test.pl | 3 +++ - 6 files changed, 42 insertions(+), 1 deletion(-) - create mode 100644 PACKAGING - -diff --git a/INSTALL b/INSTALL -index 636f4bd52f..1285fc69a2 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -2714,4 +2714,5 @@ This document is part of the Perl package and may be distributed under - the same terms as perl itself, with the following additional request: - If you are distributing a modified version of perl (perhaps as part of - a larger package) please B modify these installation instructions --and the contact information to match your distribution. -+and the contact information to match your distribution. Additional -+information for packagers is in F. -diff --git a/MANIFEST b/MANIFEST -index b3207030a9..32de824ca1 100644 ---- a/MANIFEST -+++ b/MANIFEST -@@ -4932,6 +4932,7 @@ os2/perlrexx.c Support perl interpreter embedded in REXX - os2/perlrexx.cmd Test perl interpreter embedded in REXX - overload.h generated overload enum (public) - overload.inc generated overload name table (implementation) -+PACKAGING notes and best practice for packaging perl 5 - packsizetables.inc The generated packprops array used in pp_pack.c - pad.c Scratchpad functions - pad.h Scratchpad headers -diff --git a/PACKAGING b/PACKAGING -new file mode 100644 -index 0000000000..0c69b87ba6 ---- /dev/null -+++ b/PACKAGING -@@ -0,0 +1,30 @@ -+If you read this file _as_is_, just ignore the funny characters you -+see. It is written in the POD format (see pod/perlpod.pod) which is -+specifically designed to be readable as is. -+ -+=head1 NAME -+ -+PACKAGING - notes and best practice for packaging perl 5 -+ -+=head1 SYNOPSIS -+ -+This document is aimed at anyone who is producing their own version of -+perl for distribution to other users. It is intended as a collection -+of useful tips, advice and best practice, rather than being a complete -+packaging manual. The starting point for installing perl remains -+F. -+ -+=head1 Customizing test running -+ -+A small number of porting tests (those in t/porting) are not well suited -+to typical distribution packaging scenarios. For example, they assume -+they are working in a git clone of the upstream Perl repository, or -+enforce rules which are not relevant to downstream packagers. These can -+be skipped by setting the environment variable PERL_BUILD_PACKAGING. -+A complete list of tests which this applied to can be found by searching -+the codebase for this string. -+ -+An alternative strategy would be to skip all porting tests, but many of -+them are useful if additional patches might be applied. -+ -+=cut -diff --git a/regen/lib_cleanup.pl b/regen/lib_cleanup.pl -index 5e40b405a4..6caf74a563 100644 ---- a/regen/lib_cleanup.pl -+++ b/regen/lib_cleanup.pl -@@ -164,6 +164,11 @@ if ($TAP && !-d '.git' && !-f 'lib/.gitignore') { - exit 0; - } - -+if ($ENV{'PERL_BUILD_PACKAGING'}) { -+ print "ok # skip explicitly disabled git tests by PERL_BUILD_PACKAGING\n"; -+ exit 0; -+} -+ - $fh = open_new('lib/.gitignore', '>', - { by => $0, - from => 'MANIFEST and parsing files in cpan/ dist/ and ext/'}); -diff --git a/t/porting/customized.t b/t/porting/customized.t -index 45fcafb100..5c3739198c 100644 ---- a/t/porting/customized.t -+++ b/t/porting/customized.t -@@ -13,6 +13,7 @@ BEGIN { - @INC = qw(lib Porting t); - require 'test.pl'; - skip_all("pre-computed SHA1 won't match under EBCDIC") if $::IS_EBCDIC; -+ skip_all("This distro may have modified some files in cpan/. Skipping validation.") if $ENV{'PERL_BUILD_PACKAGING'}; - } - - use strict; -diff --git a/t/test.pl b/t/test.pl -index 79e6e25e95..1782dcf73c 100644 ---- a/t/test.pl -+++ b/t/test.pl -@@ -212,6 +212,9 @@ sub find_git_or_skip { - } else { - $reason = 'not being run from a git checkout'; - } -+ if ($ENV{'PERL_BUILD_PACKAGING'}) { -+ $reason = 'PERL_BUILD_PACKAGING is set'; -+ } - skip_all($reason) if $_[0] && $_[0] eq 'all'; - skip($reason, @_); - } --- -2.17.1 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-12015.patch b/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-12015.patch deleted file mode 100644 index a33deaff..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-12015.patch +++ /dev/null @@ -1,48 +0,0 @@ -From ae65651eab053fc6dc4590dbb863a268215c1fc5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= -Date: Fri, 8 Jun 2018 11:45:40 +0100 -Subject: [PATCH] [PATCH] Remove existing files before overwriting them - -Archive should extract only the latest same-named entry. -Extracted regular file should not be writtent into existing block -device (or any other one). - -https://rt.cpan.org/Ticket/Display.html?id=125523 - -CVE: CVE-2018-12015 -Upstream-Status: Backport [https://github.com/jib/archive-tar-new/commit/ae65651eab053fc6dc4590dbb863a268215c1fc5] - -Signed-off-by: Chris 'BinGOs' Williams -Signed-off-by: Jagadeesh Krishnanjanappa ---- - lib/Archive/Tar.pm | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/cpan/Archive-Tar/lib/Archive/Tar.pm b/cpan/Archive-Tar/lib/Archive/Tar.pm -index 6244369..a83975f 100644 ---- a/cpan/Archive-Tar/lib/Archive/Tar.pm -+++ b/cpan/Archive-Tar/lib/Archive/Tar.pm -@@ -845,6 +845,20 @@ sub _extract_file { - return; - } - -+ ### If a file system already contains a block device with the same name as -+ ### the being extracted regular file, we would write the file's content -+ ### to the block device. So remove the existing file (block device) now. -+ ### If an archive contains multiple same-named entries, the last one -+ ### should replace the previous ones. So remove the old file now. -+ ### If the old entry is a symlink to a file outside of the CWD, the new -+ ### entry would create a file there. This is CVE-2018-12015 -+ ### . -+ if (-l $full || -e _) { -+ if (!unlink $full) { -+ $self->_error( qq[Could not remove old file '$full': $!] ); -+ return; -+ } -+ } - if( length $entry->type && $entry->is_file ) { - my $fh = IO::File->new; - $fh->open( '>' . $full ) or ( --- -2.13.3 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18311.patch b/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18311.patch deleted file mode 100644 index ba8cf151..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18311.patch +++ /dev/null @@ -1,183 +0,0 @@ -From 4706b65d7c835c0bb219db160fbcdbcd98efab2d Mon Sep 17 00:00:00 2001 -From: David Mitchell -Date: Fri, 29 Jun 2018 13:37:03 +0100 -Subject: [PATCH] Perl_my_setenv(); handle integer wrap - -RT #133204 - -Wean this function off int/I32 and onto UV/Size_t. -Also, replace all malloc-ish calls with a wrapper that does -overflow checks, - -In particular, it was doing (nlen + vlen + 2) which could wrap when -the combined length of the environment variable name and value -exceeded around 0x7fffffff. - -The wrapper check function is probably overkill, but belt and braces... - -NB this function has several variant parts, #ifdef'ed by platform -type; I have blindly changed the parts that aren't compiled under linux. - -(cherry picked from commit 34716e2a6ee2af96078d62b065b7785c001194be) - -CVE: CVE-2018-18311 -Upstream-Status: Backport -[https://perl5.git.perl.org/perl.git/commit/5737d31aac51360cc1eb412ef059e36147c9d6d6] - -Signed-off-by: Dan Tran ---- - util.c | 76 ++++++++++++++++++++++++++++++++++++++++------------------ - 1 file changed, 53 insertions(+), 23 deletions(-) - -diff --git a/util.c b/util.c -index 7c3d271f51..27f4eddf3b 100644 ---- a/util.c -+++ b/util.c -@@ -2160,8 +2160,40 @@ Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, - *(s+(nlen+1+vlen)) = '\0' - - #ifdef USE_ENVIRON_ARRAY -- /* VMS' my_setenv() is in vms.c */ -+ -+/* small wrapper for use by Perl_my_setenv that mallocs, or reallocs if -+ * 'current' is non-null, with up to three sizes that are added together. -+ * It handles integer overflow. -+ */ -+static char * -+S_env_alloc(void *current, Size_t l1, Size_t l2, Size_t l3, Size_t size) -+{ -+ void *p; -+ Size_t sl, l = l1 + l2; -+ -+ if (l < l2) -+ goto panic; -+ l += l3; -+ if (l < l3) -+ goto panic; -+ sl = l * size; -+ if (sl < l) -+ goto panic; -+ -+ p = current -+ ? safesysrealloc(current, sl) -+ : safesysmalloc(sl); -+ if (p) -+ return (char*)p; -+ -+ panic: -+ croak_memory_wrap(); -+} -+ -+ -+/* VMS' my_setenv() is in vms.c */ - #if !defined(WIN32) && !defined(NETWARE) -+ - void - Perl_my_setenv(pTHX_ const char *nam, const char *val) - { -@@ -2177,28 +2209,27 @@ Perl_my_setenv(pTHX_ const char *nam, const char *val) - #ifndef PERL_USE_SAFE_PUTENV - if (!PL_use_safe_putenv) { - /* most putenv()s leak, so we manipulate environ directly */ -- I32 i; -- const I32 len = strlen(nam); -- int nlen, vlen; -+ UV i; -+ Size_t vlen, nlen = strlen(nam); - - /* where does it go? */ - for (i = 0; environ[i]; i++) { -- if (strnEQ(environ[i],nam,len) && environ[i][len] == '=') -+ if (strnEQ(environ[i], nam, nlen) && environ[i][nlen] == '=') - break; - } - - if (environ == PL_origenviron) { /* need we copy environment? */ -- I32 j; -- I32 max; -+ UV j, max; - char **tmpenv; - - max = i; - while (environ[max]) - max++; -- tmpenv = (char**)safesysmalloc((max+2) * sizeof(char*)); -+ /* XXX shouldn't that be max+1 rather than max+2 ??? - DAPM */ -+ tmpenv = (char**)S_env_alloc(NULL, max, 2, 0, sizeof(char*)); - for (j=0; j -Date: Sat, 25 Mar 2017 15:00:22 -0600 -Subject: [PATCH 2/3] regcomp.c: Convert some strchr to memchr - -This allows things to work properly in the face of embedded NULs. -See the branch merge message for more information. - -(cherry picked from commit 43b2f4ef399e2fd7240b4eeb0658686ad95f8e62) - -CVE: CVE-2018-18313 -Upstream-Status: Backport -[https://perl5.git.perl.org/perl.git/commit/c1c28ce6ba90ee05aa96b11ad551a6063680f3b9] - -Signed-off-by: Dan Tran ---- - regcomp.c | 13 ++++++++----- - 1 file changed, 8 insertions(+), 5 deletions(-) - -diff --git a/regcomp.c b/regcomp.c -index 00d26d9290..2688979882 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -11783,8 +11783,9 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, - - RExC_parse++; /* Skip past the '{' */ - -- if (! (endbrace = strchr(RExC_parse, '}')) /* no trailing brace */ -- || ! (endbrace == RExC_parse /* nothing between the {} */ -+ endbrace = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse); -+ if ((! endbrace) /* no trailing brace */ -+ || ! (endbrace == RExC_parse /* nothing between the {} */ - || (endbrace - RExC_parse >= 2 /* U+ (bad hex is checked... */ - && strnEQ(RExC_parse, "U+", 2)))) /* ... below for a better - error msg) */ -@@ -12483,9 +12484,11 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth) - else { - STRLEN length; - char name = *RExC_parse; -- char * endbrace; -+ char * endbrace = NULL; - RExC_parse += 2; -- endbrace = strchr(RExC_parse, '}'); -+ if (RExC_parse < RExC_end) { -+ endbrace = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse); -+ } - - if (! endbrace) { - vFAIL2("Missing right brace on \\%c{}", name); -@@ -15939,7 +15942,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 depth, - vFAIL2("Empty \\%c", (U8)value); - if (*RExC_parse == '{') { - const U8 c = (U8)value; -- e = strchr(RExC_parse, '}'); -+ e = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse); - if (!e) { - RExC_parse++; - vFAIL2("Missing right brace on \\%c{}", c); --- -2.22.0.vfs.1.1.57.gbaf16c8 diff --git a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18314.patch b/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18314.patch deleted file mode 100644 index e84e7bc4..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/CVE-2018-18314.patch +++ /dev/null @@ -1,271 +0,0 @@ -From 6a2d07f43ae7cfcb2eb30cf39751f2f7fed7ecc1 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Mon, 26 Jun 2017 13:19:55 +0200 -Subject: [PATCH 3/3] fix #131649 - extended charclass can trigger assert - -The extended charclass parser makes some assumptions during the -first pass which are only true on well structured input, and it -does not properly catch various errors. later on the code assumes -that things the first pass will let through are valid, when in -fact they should trigger errors. - -(cherry picked from commit 19a498a461d7c81ae3507c450953d1148efecf4f) - -CVE: CVE-2018-18314 -Upstream-Status: Backport -[https://perl5.git.perl.org/perl.git/commit/dabe076af345ab4512ea80245b4e4cd7ec0996cd] - -Signed-off-by: Dan Tran ---- - pod/perldiag.pod | 27 ++++++++++++++++++++++++++- - pod/perlrecharclass.pod | 4 ++-- - regcomp.c | 23 +++++++++++++---------- - t/lib/warnings/regcomp | 6 +++--- - t/re/reg_mesg.t | 29 ++++++++++++++++------------- - t/re/regex_sets.t | 6 +++--- - 6 files changed, 63 insertions(+), 32 deletions(-) - -diff --git a/pod/perldiag.pod b/pod/perldiag.pod -index 737d3633f6..644b814008 100644 ---- a/pod/perldiag.pod -+++ b/pod/perldiag.pod -@@ -5777,7 +5777,7 @@ yourself. - a perl4 interpreter, especially if the next 2 tokens are "use strict" - or "my $var" or "our $var". - --=item Syntax error in (?[...]) in regex m/%s/ -+=item Syntax error in (?[...]) in regex; marked by <-- HERE in m/%s/ - - (F) Perl could not figure out what you meant inside this construct; this - notifies you that it is giving up trying. -@@ -6153,6 +6153,31 @@ for example, - (F) The unexec() routine failed for some reason. See your local FSF - representative, who probably put it there in the first place. - -+=item Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/%s/ -+ -+(F) While parsing an extended character class a ']' character was encountered -+at a point in the definition where the only legal use of ']' is to close the -+character class definition as part of a '])', you may have forgotten the close -+paren, or otherwise confused the parser. -+ -+=item Expecting close paren for nested extended charclass in regex; marked by <-- HERE in m/%s/ -+ -+(F) While parsing a nested extended character class like: -+ -+ (?[ ... (?flags:(?[ ... ])) ... ]) -+ ^ -+ -+we expected to see a close paren ')' (marked by ^) but did not. -+ -+=item Expecting close paren for wrapper for nested extended charclass in regex; marked by <-- HERE in m/%s/ -+ -+(F) While parsing a nested extended character class like: -+ -+ (?[ ... (?flags:(?[ ... ])) ... ]) -+ ^ -+ -+we expected to see a close paren ')' (marked by ^) but did not. -+ - =item Unexpected binary operator '%c' with no preceding operand in regex; - marked by S<<-- HERE> in m/%s/ - -diff --git a/pod/perlrecharclass.pod b/pod/perlrecharclass.pod -index 89f4a7ef3f..a557cc0384 100644 ---- a/pod/perlrecharclass.pod -+++ b/pod/perlrecharclass.pod -@@ -1101,8 +1101,8 @@ hence both of the following work: - Any contained POSIX character classes, including things like C<\w> and C<\D> - respect the Ca> (and Caa>) modifiers. - --C<< (?[ ]) >> is a regex-compile-time construct. Any attempt to use --something which isn't knowable at the time the containing regular -+Note that C<< (?[ ]) >> is a regex-compile-time construct. Any attempt -+to use something which isn't knowable at the time the containing regular - expression is compiled is a fatal error. In practice, this means - just three limitations: - -diff --git a/regcomp.c b/regcomp.c -index 2688979882..cb8409ed27 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -14609,8 +14609,9 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist, - TRUE /* Force /x */ ); - - switch (*RExC_parse) { -- case '?': -- if (RExC_parse[1] == '[') depth++, RExC_parse++; -+ case '(': -+ if (RExC_parse[1] == '?' && RExC_parse[2] == '[') -+ depth++, RExC_parse+=2; - /* FALLTHROUGH */ - default: - break; -@@ -14667,9 +14668,9 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist, - } - - case ']': -- if (depth--) break; -- RExC_parse++; -- if (*RExC_parse == ')') { -+ if (RExC_parse[1] == ')') { -+ RExC_parse++; -+ if (depth--) break; - node = reganode(pRExC_state, ANYOF, 0); - RExC_size += ANYOF_SKIP; - nextchar(pRExC_state); -@@ -14681,20 +14682,20 @@ S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV** return_invlist, - - return node; - } -- goto no_close; -+ RExC_parse++; -+ vFAIL("Unexpected ']' with no following ')' in (?[..."); - } - - RExC_parse += UTF ? UTF8SKIP(RExC_parse) : 1; - } - -- no_close: - /* We output the messages even if warnings are off, because we'll fail - * the very next thing, and these give a likely diagnosis for that */ - if (posix_warnings && av_tindex_nomg(posix_warnings) >= 0) { - output_or_return_posix_warnings(pRExC_state, posix_warnings, NULL); - } - -- FAIL("Syntax error in (?[...])"); -+ vFAIL("Syntax error in (?[...])"); - } - - /* Pass 2 only after this. */ -@@ -14868,12 +14869,14 @@ redo_curchar: - * inversion list, and RExC_parse points to the trailing - * ']'; the next character should be the ')' */ - RExC_parse++; -- assert(UCHARAT(RExC_parse) == ')'); -+ if (UCHARAT(RExC_parse) != ')') -+ vFAIL("Expecting close paren for nested extended charclass"); - - /* Then the ')' matching the original '(' handled by this - * case: statement */ - RExC_parse++; -- assert(UCHARAT(RExC_parse) == ')'); -+ if (UCHARAT(RExC_parse) != ')') -+ vFAIL("Expecting close paren for wrapper for nested extended charclass"); - - RExC_flags = save_flags; - goto handle_operand; -diff --git a/t/lib/warnings/regcomp b/t/lib/warnings/regcomp -index 08cb27b00f..367276d0fc 100644 ---- a/t/lib/warnings/regcomp -+++ b/t/lib/warnings/regcomp -@@ -59,21 +59,21 @@ Unmatched [ in regex; marked by <-- HERE in m/abc[ <-- HERE ï¬[.00./ at - line - qr/(?[[[:word]]])/; - EXPECT - Assuming NOT a POSIX class since there is no terminating ':' in regex; marked by <-- HERE in m/(?[[[:word <-- HERE ]]])/ at - line 2. --syntax error in (?[...]) in regex m/(?[[[:word]]])/ at - line 2. -+Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/(?[[[:word]] <-- HERE ])/ at - line 2. - ######## - # NAME qr/(?[ [[:digit: ])/ - # OPTION fatal - qr/(?[[[:digit: ])/; - EXPECT - Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[[:digit: ] <-- HERE )/ at - line 2. --syntax error in (?[...]) in regex m/(?[[[:digit: ])/ at - line 2. -+syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[[:digit: ]) <-- HERE / at - line 2. - ######## - # NAME qr/(?[ [:digit: ])/ - # OPTION fatal - qr/(?[[:digit: ])/ - EXPECT - Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[:digit: ] <-- HERE )/ at - line 2. --syntax error in (?[...]) in regex m/(?[[:digit: ])/ at - line 2. -+syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[:digit: ]) <-- HERE / at - line 2. - ######## - # NAME [perl #126141] - # OPTION fatal -diff --git a/t/re/reg_mesg.t b/t/re/reg_mesg.t -index 658397ac27..08a3688e1d 100644 ---- a/t/re/reg_mesg.t -+++ b/t/re/reg_mesg.t -@@ -202,8 +202,9 @@ my @death = - '/\b{gc}/' => "'gc' is an unknown bound type {#} m/\\b{gc{#}}/", - '/\B{gc}/' => "'gc' is an unknown bound type {#} m/\\B{gc{#}}/", - -- '/(?[[[::]]])/' => "Syntax error in (?[...]) in regex m/(?[[[::]]])/", -- '/(?[[[:w:]]])/' => "Syntax error in (?[...]) in regex m/(?[[[:w:]]])/", -+ -+ '/(?[[[::]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[::]]{#}])/", -+ '/(?[[[:w:]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[:w:]]{#}])/", - '/(?[[:w:]])/' => "", - '/[][[:alpha:]]' => "", # [perl #127581] - '/([.].*)[.]/' => "", # [perl #127582] -@@ -227,11 +228,12 @@ my @death = - '/(?[ \p{foo} ])/' => 'Can\'t find Unicode property definition "foo" {#} m/(?[ \p{foo}{#} ])/', - '/(?[ \p{ foo = bar } ])/' => 'Can\'t find Unicode property definition "foo = bar" {#} m/(?[ \p{ foo = bar }{#} ])/', - '/(?[ \8 ])/' => 'Unrecognized escape \8 in character class {#} m/(?[ \8{#} ])/', -- '/(?[ \t ]/' => 'Syntax error in (?[...]) in regex m/(?[ \t ]/', -- '/(?[ [ \t ]/' => 'Syntax error in (?[...]) in regex m/(?[ [ \t ]/', -- '/(?[ \t ] ]/' => 'Syntax error in (?[...]) in regex m/(?[ \t ] ]/', -- '/(?[ [ ] ]/' => 'Syntax error in (?[...]) in regex m/(?[ [ ] ]/', -- '/(?[ \t + \e # This was supposed to be a comment ])/' => 'Syntax error in (?[...]) in regex m/(?[ \t + \e # This was supposed to be a comment ])/', -+ '/(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#}/", -+ '/(?[ [ \t ]/' => "Syntax error in (?[...]) {#} m/(?[ [ \\t ]{#}/", -+ '/(?[ \t ] ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#} ]/", -+ '/(?[ [ ] ]/' => "Syntax error in (?[...]) {#} m/(?[ [ ] ]{#}/", -+ '/(?[ \t + \e # This was supposed to be a comment ])/' => -+ "Syntax error in (?[...]) {#} m/(?[ \\t + \\e # This was supposed to be a comment ]){#}/", - '/(?[ ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ {#}])/', - 'm/(?[[a-\d]])/' => 'False [] range "a-\d" {#} m/(?[[a-\d{#}]])/', - 'm/(?[[\w-x]])/' => 'False [] range "\w-" {#} m/(?[[\w-{#}x]])/', -@@ -410,10 +412,10 @@ my @death_utf8 = mark_as_utf8( - - '/ãƒ\p{}ãƒ/' => 'Empty \p{} {#} m/ãƒ\p{{#}}ãƒ/', - -- '/ãƒ(?[[[:ãƒ]]])ãƒ/' => "Syntax error in (?[...]) in regex m/ãƒ(?[[[:ãƒ]]])ãƒ/", -- '/ãƒ(?[[[:ãƒ: ])ãƒ/' => "Syntax error in (?[...]) in regex m/ãƒ(?[[[:ãƒ: ])ãƒ/", -- '/ãƒ(?[[[::]]])ãƒ/' => "Syntax error in (?[...]) in regex m/ãƒ(?[[[::]]])ãƒ/", -- '/ãƒ(?[[[:ãƒ:]]])ãƒ/' => "Syntax error in (?[...]) in regex m/ãƒ(?[[[:ãƒ:]]])ãƒ/", -+ '/ãƒ(?[[[:ãƒ]]])ãƒ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ãƒ(?[[[:ãƒ]]{#}])ãƒ/", -+ '/ãƒ(?[[[:ãƒ: ])ãƒ/' => "Syntax error in (?[...]) {#} m/ãƒ(?[[[:ãƒ: ])ãƒ{#}/", -+ '/ãƒ(?[[[::]]])ãƒ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ãƒ(?[[[::]]{#}])ãƒ/", -+ '/ãƒ(?[[[:ãƒ:]]])ãƒ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ãƒ(?[[[:ãƒ:]]{#}])ãƒ/", - '/ãƒ(?[[:ãƒ:]])ãƒ/' => "", - '/ãƒ(?[ãƒ])ãƒ/' => 'Unexpected character {#} m/ãƒ(?[ãƒ{#}])ãƒ/', - '/ãƒ(?[ + [ãƒ] ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/ãƒ(?[ +{#} [ãƒ] ])/', -@@ -426,8 +428,9 @@ my @death_utf8 = mark_as_utf8( - '/(?[ \x{ãƒ} ])ãƒ/' => 'Non-hex character {#} m/(?[ \x{ãƒ{#}} ])ãƒ/', - '/(?[ \p{ãƒ} ])/' => 'Can\'t find Unicode property definition "ãƒ" {#} m/(?[ \p{ãƒ}{#} ])/', - '/(?[ \p{ ム= bar } ])/' => 'Can\'t find Unicode property definition "ム= bar" {#} m/(?[ \p{ ム= bar }{#} ])/', -- '/ãƒ(?[ \t ]/' => 'Syntax error in (?[...]) in regex m/ãƒ(?[ \t ]/', -- '/(?[ \t + \e # ムThis was supposed to be a comment ])/' => 'Syntax error in (?[...]) in regex m/(?[ \t + \e # ムThis was supposed to be a comment ])/', -+ '/ãƒ(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/ãƒ(?[ \\t ]{#}/", -+ '/(?[ \t + \e # ムThis was supposed to be a comment ])/' => -+ "Syntax error in (?[...]) {#} m/(?[ \\t + \\e # ムThis was supposed to be a comment ]){#}/", - 'm/(*ãƒ)ãƒ/' => q, - '/\cãƒ/' => "Character following \"\\c\" must be printable ASCII", - '/\b{ãƒ}/' => "'ãƒ' is an unknown bound type {#} m/\\b{ãƒ{#}}/", -diff --git a/t/re/regex_sets.t b/t/re/regex_sets.t -index 92875677be..60a126ba3c 100644 ---- a/t/re/regex_sets.t -+++ b/t/re/regex_sets.t -@@ -157,13 +157,13 @@ for my $char ("Ù ", "Ù¥", "Ù©") { - eval { $_ = '/(?[(\c]) /'; qr/$_/ }; - like($@, qr/^Syntax error/, '/(?[(\c]) / should not panic'); - eval { $_ = '(?[\c#]' . "\n])"; qr/$_/ }; -- like($@, qr/^Syntax error/, '/(?[(\c]) / should not panic'); -+ like($@, qr/^Unexpected/, '/(?[(\c]) / should not panic'); - eval { $_ = '(?[(\c])'; qr/$_/ }; - like($@, qr/^Syntax error/, '/(?[(\c])/ should be a syntax error'); - eval { $_ = '(?[(\c]) ]\b'; qr/$_/ }; -- like($@, qr/^Syntax error/, '/(?[(\c]) ]\b/ should be a syntax error'); -+ like($@, qr/^Unexpected/, '/(?[(\c]) ]\b/ should be a syntax error'); - eval { $_ = '(?[\c[]](])'; qr/$_/ }; -- like($@, qr/^Syntax error/, '/(?[\c[]](])/ should be a syntax error'); -+ like($@, qr/^Unexpected/, '/(?[\c[]](])/ should be a syntax error'); - like("\c#", qr/(?[\c#])/, '\c# should match itself'); - like("\c[", qr/(?[\c[])/, '\c[ should match itself'); - like("\c\ ", qr/(?[\c\])/, '\c\ should match itself'); --- -2.22.0.vfs.1.1.57.gbaf16c8 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/Configure-multilib.patch b/external/poky/meta/recipes-devtools/perl/perl/Configure-multilib.patch deleted file mode 100644 index 9625b0b8..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/Configure-multilib.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status:Pending - -Index: perl-5.12.3/Configure -=================================================================== ---- perl-5.12.3.orig/Configure -+++ perl-5.12.3/Configure -@@ -1316,8 +1316,9 @@ loclibpth="/usr/local/lib /opt/local/lib - loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" - - : general looking path for locating libraries --glibpth="/lib /usr/lib $xlibpth" -+glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth" - glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib" -+test -f /usr/lib/*-linux-gnu/libc.so && glibpth="/usr/lib/*-linux-gnu $glibpth" - test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth" - test -f /shlib/libc.so && glibpth="/shlib $glibpth" - test -d /usr/lib64 && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64" diff --git a/external/poky/meta/recipes-devtools/perl/perl/MM_Unix.pm.patch b/external/poky/meta/recipes-devtools/perl/perl/MM_Unix.pm.patch deleted file mode 100644 index eb92ccb6..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/MM_Unix.pm.patch +++ /dev/null @@ -1,22 +0,0 @@ -Upstream-Status:Pending - -The perl-native should be relocatable while re-use sstate-cache from -another build, especially the original build was renamed/removed. - -To get the MakeMaker.pm works in this case, we need perl wrapper here -instead of real perl binary. - -Signed-off-by: Wenzong Fan -=================================================================== ---- perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm.orig 2011-08-12 16:07:30.000000000 +0800 -+++ perl-5.12.3/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 2011-08-12 16:08:56.000000000 +0800 -@@ -1019,6 +1019,9 @@ - } - - foreach my $name (@$names){ -+ # Getting MakeMaker.pm use perl wrapper instead of 'perl.real' directly -+ $name =~ s/perl\.real/perl/ if ($name =~ /perl\.real/); -+ - foreach my $dir (@$dirs){ - next unless defined $dir; # $self->{PERL_SRC} may be undefined - my ($abs, $val); diff --git a/external/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch b/external/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch deleted file mode 100644 index e4c3426b..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/Makefile.SH.patch +++ /dev/null @@ -1,383 +0,0 @@ -From 4dd9f3f81d8c81c96ff1ea0890ea55685f28b7e9 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Tue, 1 Jul 2014 15:51:53 +0800 -Subject: [PATCH 28/49] perl, perl-native, perl-ptest: upgrade from 5.14.3 to - 5.20.0 - -Upstream-Status:Inappropriate [embedded specific] - -Signed-off-by: Hongxu Jia - ---- - Makefile.SH | 147 ++++++++++++++++++++++++++++-------------------------------- - 1 file changed, 68 insertions(+), 79 deletions(-) - -Index: perl-5.24.4/Makefile.SH -=================================================================== ---- perl-5.24.4.orig/Makefile.SH -+++ perl-5.24.4/Makefile.SH -@@ -48,10 +48,10 @@ case "$useshrplib" in - true) - # Prefix all runs of 'miniperl' and 'perl' with - # $ldlibpth so that ./perl finds *this* shared libperl. -- case "$LD_LIBRARY_PATH" in -- '') ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `" ;; -- *) ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `:` quote "$LD_LIBRARY_PATH" `" ;; -- esac -+ #case "$LD_LIBRARY_PATH" in -+ #'') ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `" ;; -+ #*) ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `:` quote "$LD_LIBRARY_PATH" `" ;; -+ #esac - - pldlflags="$cccdlflags" - static_ldflags='' -@@ -131,10 +131,11 @@ true) - *) - eval "ldlibpthval=\"\$$ldlibpthname\"" - -- case "$ldlibpthval" in -- '') ldlibpth="$ldlibpthname=` quote "$pwd" `" ;; -- *) ldlibpth="$ldlibpthname=` quote "$pwd" `:` quote "$ldlibpthval" `" ;; -- esac -+# We compile in the library path in OE from cross-compile, so lets not do this -+# case "$ldlibpthval" in -+# '') ldlibpth="$ldlibpthname=` quote "$pwd" `" ;; -+# *) ldlibpth="$ldlibpthname=` quote "$pwd" `:` quote "$ldlibpthval" `" ;; -+# esac - - ;; - esac -@@ -150,18 +151,7 @@ true) - # INSTALL file, under "Building a shared perl library". - # If there is no pre-existing $libperl, we don't need - # to do anything further. -- if test -f $archlib/CORE/$libperl; then -- rm -f preload -- cat <<'EOT' > preload --#! /bin/sh --lib=$1 --shift --test -r $lib && export LD_PRELOAD="$lib $LD_PRELOAD" --exec "$@" --EOT -- chmod 755 preload -- ldlibpth="$ldlibpth `pwd`/preload `pwd`/$libperl" -- fi -+ echo linux libraries overwritten by cross-compile patches - ;; - os390) test -f /bin/env && ldlibpth="/bin/env $ldlibpth" - ;; -@@ -596,13 +586,23 @@ splintfiles = $(c1) - @echo `$(CCCMDSRC)` -S $*.c - @`$(CCCMDSRC)` -S $*.c - --all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make $(MANIFEST_SRT) -- @echo " "; -- @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." -- --$(MANIFEST_SRT): MANIFEST $(PERL_EXE) -- @$(RUN_PERL) Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \ -- $(RUN_PERL) Porting/manisort -q -o MANIFEST; sh -c true) -+#all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make $(MANIFEST_SRT) -+# @echo " "; -+# @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." -+ -+all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) miniperl $(unidatafiles) -+ -+more: $(generated_pods) $(private) $(public) -+ -+more2: $(dynamic_ext) -+ -+more3: $(nonxs_ext) -+ -+more4: extras.make $(MANIFEST_SRT) -+ -+$(MANIFEST_SRT): MANIFEST -+ @$(MINIPERL) Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \ -+ $(MINIPERL) Porting/manisort -q -o MANIFEST; sh -c true) - @touch $(MANIFEST_SRT) - - .PHONY: all utilities -@@ -611,7 +611,7 @@ $(MANIFEST_SRT): MANIFEST $(PERL_EXE) - # by make_patchnum.pl. - git_version.h: lib/Config_git.pl - --lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl -+lib/Config_git.pl: make_patchnum.pl - $(MINIPERL) make_patchnum.pl - - # make sure that we recompile perl.c if the git version changes -@@ -624,7 +624,7 @@ perl$(OBJ_EXT): git_version.h - # loading, we need to build perl first. - case "$usedl$static_cwd" in - defineundef) -- util_deps='$(MINIPERL_EXE) $(CONFIGPM) lib/auto/Cwd/Cwd$(DLSUFFIX) FORCE' -+ util_deps='$(CONFIGPM) lib/auto/Cwd/Cwd$(DLSUFFIX) FORCE' - ;; - definedefine) - util_deps='$(PERL_EXE) $(CONFIGPM) FORCE' -@@ -634,7 +634,7 @@ definedefine) - esac - - $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' --perlmain.c: $(MINIPERL_EXE) ext/ExtUtils-Miniperl/pm_to_blib -+perlmain.c: ext/ExtUtils-Miniperl/lib/ExtUtils/Miniperl.pm - $(MINIPERL) -Ilib -MExtUtils::Miniperl -e 'writemain(\"perlmain.c", @ARGV)' DynaLoader $(static_ext) - - # The file ext.libs is a list of libraries that must be linked in -@@ -806,7 +806,7 @@ PERLEXPORT = perl.exp - ;; - esac - $spitshell >>$Makefile <<'!NO!SUBS!' --perl.exp: $(MINIPERLEXP) makedef.pl $(CONFIGPM) $(SYM) $(SYMH) -+perl.exp: makedef.pl $(CONFIGPM) $(SYM) $(SYMH) - ./$(MINIPERLEXP) makedef.pl --sort-fold PLATFORM=aix CC_FLAGS="$(OPTIMIZE)" > perl.exp - - !NO!SUBS! -@@ -815,7 +815,7 @@ os2) - $spitshell >>$Makefile <<'!NO!SUBS!' - MINIPERLEXP = miniperl - --perl5.def: $(MINIPERLEXP) makedef.pl $(CONFIGPM) $(SYM) $(SYMH) miniperl.map -+perl5.def: makedef.pl $(CONFIGPM) $(SYM) $(SYMH) miniperl.map - ./$(MINIPERLEXP) makedef.pl PLATFORM=os2 -DPERL_DLL=$(PERL_DLL) CC_FLAGS="$(OPTIMIZE)" > perl5.def - - !NO!SUBS! -@@ -878,7 +878,7 @@ $(LIBPERL): $& $(perllib_objs) $(DYNALOA - true) - $spitshell >>$Makefile <<'!NO!SUBS!' - rm -f $@ -- $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs) -+ $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs) -Wl,-soname,libperl.so.5 - !NO!SUBS! - case "$osname" in - aix) -@@ -936,15 +936,19 @@ lib/buildcustomize.pl: $& $(miniperl_obj - $spitshell >>$Makefile <<'!NO!SUBS!' - lib/buildcustomize.pl: $& $(miniperl_objs) - $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) $(miniperl_objs) $(libs) -- $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' -+ mv -f miniperl miniperl-target -+ ln -s hostperl miniperl -+ #$(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' - $(MINIPERL) -f write_buildcustomize.pl - !NO!SUBS! - ;; - next4*) - $spitshell >>$Makefile <<'!NO!SUBS!' - lib/buildcustomize.pl: $& $(miniperl_objs) write ldcustomize.pl -- $(CC) -o $(MINIPERL_EXE) $(miniperl_objs libs) -- $(LDLIBPTH) ./miniperl$(HOST _EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' -+ $(CC) -o $(MINIPERL_EXE) $(miniperl_objs libs) -+ mv -f miniperl miniperl-target -+ ln -s hostperl miniperl -+ #$(LDLIBPTH) ./miniperl$(HOST _EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' - $(MINIPERL) -f write_buildcustomize.pl - !NO!SUBS! - ;; -@@ -966,7 +970,9 @@ lib/buildcustomize.pl: $& $(miniperl_obj - -@rm -f miniperl.xok - $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \ - $(miniperl_objs) $(libs) -- $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' -+ mv -f miniperl miniperl-target -+ ln -s hostperl miniperl -+ #$(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' - $(MINIPERL) -f write_buildcustomize.pl - !NO!SUBS! - ;; -@@ -977,7 +983,9 @@ lib/buildcustomize.pl: \$& \$(miniperl_o - -@rm -f miniperl.xok - -@rm \$(MINIPERL_EXE) - \$(LNS) \$(HOST_PERL) \$(MINIPERL_EXE) -- \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' -+ mv -f miniperl miniperl-target -+ ln -s hostperl miniperl -+ #\$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' - \$(MINIPERL) -f write_buildcustomize.pl 'osname' "$osname" - !GROK!THIS! - else -@@ -986,7 +994,9 @@ lib/buildcustomize.pl: $& $(miniperl_obj - -@rm -f miniperl.xok - $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \ - $(miniperl_objs) $(libs) -- $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' -+ mv -f miniperl miniperl-target -+ ln -s hostperl miniperl -+ #$(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '' || sh -c 'echo >&2 Failed to build miniperl. Please run make minitest; exit 1' - $(MINIPERL) -f write_buildcustomize.pl - !NO!SUBS! - fi -@@ -1036,7 +1046,7 @@ case "${osname}" in - catamount) - $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' - .PHONY: makeppport --makeppport: $(MINIPERL_EXE) $(CONFIGPM) $(nonxs_ext) -+makeppport: $(CONFIGPM) $(nonxs_ext) - $(MINIPERL) mkppport - - !NO!SUBS! -@@ -1056,16 +1066,16 @@ esac - $spitshell >>$Makefile <<'!NO!SUBS!' - - .PHONY: preplibrary --preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL) -+preplibrary: $(CONFIGPM) $(PREPLIBRARY_LIBPERL) - - $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD) - --$(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl -+$(CONFIGPOD): config.sh configpm Porting/Glossary lib/Config_git.pl - $(MINIPERL) configpm - - unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data - --uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) -+uni.data: $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) - $(MINIPERL) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p - # Commented out so always runs, mktables looks at far more files than we - # can in this makefile to decide if needs to run or not -@@ -1074,12 +1084,12 @@ uni.data: $(MINIPERL_EXE) $(CONFIGPM) li - # $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5 - # But also this ensures that all extensions are built before we try to scan - # them, which picks up Devel::PPPort's documentation. --pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc -- $(RUN_PERL) -f pod/buildtoc -q -+pod/perltoc.pod: $(perltoc_pod_prereqs) $(ext) pod/buildtoc -+ $(MINIPERL) -f pod/buildtoc -q - - pod/perlapi.pod: pod/perlintern.pod - --pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc -+pod/perlintern.pod: autodoc.pl embed.fnc - $(MINIPERL) autodoc.pl - - pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST -@@ -1089,7 +1099,7 @@ pod/perl5244delta.pod: pod/perldelta.pod - $(RMS) pod/perl5244delta.pod - $(LNS) perldelta.pod pod/perl5244delta.pod - --extra.pods: $(MINIPERL_EXE) -+extra.pods: - -@test ! -f extra.pods || rm -f `cat extra.pods` - -@rm -f extra.pods - -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ -@@ -1133,8 +1143,7 @@ EOT - $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(HOST_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -- -@test ! -s extras.lst || $(MAKE) extras.install -- --install.man: all installman -- $(HOST_PERL) installman --destdir=$(DESTDIR) $(INSTALLFLAGS) -+ ./hostperl -Ifake_config_library -Ilib -MConfig installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - - # XXX Experimental. Hardwired values, but useful for testing. - # Eventually Configure could ask for some of these values. -@@ -1166,24 +1171,8 @@ install.html: all installhtml - else - $spitshell >>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -- -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` -- --install.man: all installman -- $(RUN_PERL) installman --destdir=$(DESTDIR) $(INSTALLFLAGS) -+ ./hostperl -Ifake_config_library -Ilib -MConfig installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - --# XXX Experimental. Hardwired values, but useful for testing. --# Eventually Configure could ask for some of these values. --install.html: all installhtml -- -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd .. -- $(RUN_PERL) installhtml \ -- --podroot=. --podpath=. --recurse \ -- --htmldir=$(privlib)/html \ -- --htmlroot=$(privlib)/html \ -- --splithead=pod/perlipc \ -- --splititem=pod/perlfunc \ -- --ignore=Porting/Maintainers.pm,Porting/pumpkin.pod,Porting/repository.pod \ -- --verbose - !NO!SUBS! - fi - -@@ -1275,13 +1264,13 @@ manicheck: FORCE - # - # DynaLoader may be needed for extensions that use Makefile.PL. - --$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) -+$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) - $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - --d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) $(LIBPERL) -+d_dummy $(dynamic_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) $(LIBPERL) - $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic - --s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE -+s_dummy $(static_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE - $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - - n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE -@@ -1479,14 +1468,14 @@ test_prep_pre: preplibrary utilities $(n - - case "$targethost" in - '') $spitshell >>$Makefile <<'!NO!SUBS!' --test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \ -+test_prep test-prep: test_prep_pre $(unidatafiles) $(PERL_EXE) \ - $(dynamic_ext) $(TEST_PERL_DLL) runtests $(generated_pods) - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) - - !NO!SUBS! - ;; - *) $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' --test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL) -+test_prep_reonly: $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL) - $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) - !NO!SUBS! -@@ -1600,7 +1589,7 @@ minitest_prep: - - MINITEST_TESTS = base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t - --minitest: $(MINIPERL_EXE) minitest_prep -+minitest: minitest_prep - - cd t && $(RUN_PERL) TEST $(MINITEST_TESTS) <$(devtty) - - minitest-notty minitest_notty: $(MINIPERL_EXE) minitest_prep diff --git a/external/poky/meta/recipes-devtools/perl/perl/Makefile.patch b/external/poky/meta/recipes-devtools/perl/perl/Makefile.patch deleted file mode 100644 index 858e2e10..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/Makefile.patch +++ /dev/null @@ -1,58 +0,0 @@ -Upstream-Status:Inappropriate [embedded specific] - -Index: perl-5.14.2/Cross/Makefile -=================================================================== ---- perl-5.14.2.orig/Cross/Makefile -+++ perl-5.14.2/Cross/Makefile -@@ -1,6 +1,7 @@ - ## Toplevel Makefile for cross-compilation of perl - --export TOPDIR=${shell pwd} -+override TOPDIR=${shell pwd} -+export TOPDIR - include $(TOPDIR)/config - export CFLAGS - export SYS=$(ARCH)-$(OS) -@@ -10,7 +11,7 @@ export OPTIMIZATION = -O2 - - export CC = $(CROSS)gcc - export CXX = $(CROSS)g++ --export LD = $(CROSS)ld -+export LD = $(CC) - export STRIP = $(CROSS)strip - export AR = $(CROSS)ar - export RANLIB = $(CROSS)ranlib -@@ -32,17 +33,6 @@ CFLAGS+=$(FULL_OPTIMIZATION) - all: - @echo Please read the README file before doing anything else. - --gen_patch: -- diff -Bbur ../Makefile.SH Makefile.SH > Makefile.SH.patch -- diff -Bbur ../installperl installperl > installperl.patch -- --patch: -- cd .. ; if [ ! -e ./CROSS_PATCHED ] ; then \ -- patch -p1 < Cross/Makefile.SH.patch; \ -- patch -p1 < Cross/installperl.patch ; mv installperl installperl-patched; \ -- sed -e 's/XXSTRIPXX/$(SYS)/' installperl-patched > installperl; \ -- touch CROSS_PATCHED ; fi -- - perl: - @echo Perl cross-build directory is $(TOPDIR) - @echo Target arch is $(SYS) -@@ -52,11 +42,11 @@ perl: - $(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh - cd $(TOPDIR)/.. ; ./Configure -S ; make depend ; make ; make more - cd $(TOPDIR)/.. ; mkdir -p fake_config_library ; cp lib/Config.pm lib/Config_heavy.pl fake_config_library -- cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" -- cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" -- cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig" -+ cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig" -+ cd $(TOPDIR)/.. ; $(MAKE) more3 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig" -+ cd $(TOPDIR)/.. ; $(MAKE) more4 "PERLRUN=hostperl -I$(TOPDIR)/../fake_config_library -MConfig" - cd $(TOPDIR)/.. ; rm -rf install_me_here -- cd $(TOPDIR)/.. ; make install-strip -+# cd $(TOPDIR)/.. ; make install-strip - cd $(TOPDIR)/.. ; sh -x Cross/warp - - diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh b/external/poky/meta/recipes-devtools/perl/perl/config.sh deleted file mode 100644 index b1b5834c..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh +++ /dev/null @@ -1,1249 +0,0 @@ -#!/bin/sh -# -# This file was produced by running the Configure script. It holds all the -# definitions figured out by Configure. Should you modify one of these values, -# do not forget to propagate your changes by running "Configure -der". You may -# instead choose to run each of the .SH files by yourself, or "Configure -S". -# - -# Package name : perl5 -# Source directory : . -# Configuration time: Fri May 6 20:13:46 PDT 2016 -# Configured by : Open Embedded -# Target system : linux qemux86-64 3.19.5-yocto-standard #1 smp preempt tue jun 16 00:28:17 pdt 2015 x86_64 gnulinux - -: Configure command line arguments. -config_arg0='Configure' -config_args='-des -Doptimize=-O2 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Open Embedded -Dinstallprefix=@EXECPREFIX@ -Dprefix=@EXECPREFIX@ -Dvendorprefix=@EXECPREFIX@ -Dsiteprefix=@EXECPREFIX@ -Dotherlibdirs=@LIBDIR@/perl/5.24.4 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Ud_dosuid -Dd_semctl_semun -Ui_db -Ui_ndbm -Ui_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=@USRBIN@/less -isr' -config_argc=28 -config_arg1='-des' -config_arg2='-Doptimize=-O2' -config_arg3='-Dmyhostname=localhost' -config_arg4='-Dperladmin=root@localhost' -config_arg5='-Dcc=gcc' -config_arg6='-Dcf_by=Open Embedded' -config_arg7='-Dinstallprefix=@EXECPREFIX@' -config_arg8='-Dprefix=@EXECPREFIX@' -config_arg9='-Dvendorprefix=@EXECPREFIX@' -config_arg10='-Dsiteprefix=@EXECPREFIX@' -config_arg11='-Dotherlibdirs=@LIBDIR@/perl/5.24.4' -config_arg12='-Duseshrplib' -config_arg13='-Dusethreads' -config_arg14='-Duseithreads' -config_arg15='-Duselargefiles' -config_arg16='-Ud_dosuid' -config_arg17='-Dd_semctl_semun' -config_arg18='-Ui_db' -config_arg19='-Ui_ndbm' -config_arg20='-Ui_gdbm' -config_arg21='-Di_shadow' -config_arg22='-Di_syslog' -config_arg23='-Dman3ext=3pm' -config_arg24='-Duseperlio' -config_arg25='-Dinstallusrbinperl' -config_arg26='-Ubincompat5005' -config_arg27='-Uversiononly' -config_arg28='-Dpager=@USRBIN@/less -isr' - -Author='' -Date='' -Header='' -Id='' -Locker='' -Log='' -RCSfile='' -Revision='' -Source='' -State='' -_a='.a' -_exe='' -_o='.o' -afs='false' -afsroot='/afs' -alignbytes='8' -ansi2knr='' -aphostname='' -api_revision='5' -api_subversion='4' -api_version='24' -api_versionstring='5.24.4' -ar='ar' -archlib='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi' -archlibexp='@STAGINGDIR@@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi' -archlib_exp='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi' -archname64='' -archname='@ARCH@-thread-multi' -archobjs='' -asctime_r_proto='REENTRANT_PROTO_B_SB' -awk='awk' -baserev='5.0' -bash='' -bin='@USRBIN@' -bin_ELF='define' -binexp='@USRBIN@' -bison='bison' -byacc='byacc' -c='' -castflags='0' -cat='cat' -cc='gcc' -cccdlflags='-fPIC' -ccdlflags='-Wl,-E -Wl,-rpath,@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi/CORE' -ccflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2' -ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' -ccname='gcc' -ccsymbols='' -ccversion='' -cf_by='Open Embedded' -cf_email='Open Embedded@localhost.localdomain' -cf_time='Fri May 6 20:13:46 PDT 2016' -charbits='8' -charsize='1' -chgrp='' -chmod='chmod' -chown='' -clocktype='clock_t' -comm='comm' -compress='' -contains='grep' -cp='cp' -cpio='' -cpp='cpp' -cpp_stuff='42' -cppccsymbols='' -cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe' -cpplast='-' -cppminus='-' -cpprun='gcc -E' -cppstdin='gcc -E' -crypt_r_proto='REENTRANT_PROTO_B_CCS' -cryptlib='' -csh='csh' -ctermid_r_proto='0' -ctime_r_proto='REENTRANT_PROTO_B_SB' -d_Gconvert='gcvt((x),(n),(b))' -d_PRIEUldbl='define' -d_PRIFUldbl='define' -d_PRIGUldbl='define' -d_PRIXU64='define' -d_PRId64='define' -d_PRIeldbl='define' -d_PRIfldbl='define' -d_PRIgldbl='define' -d_PRIi64='define' -d_PRIo64='define' -d_PRIu64='define' -d_PRIx64='define' -d_SCNfldbl='define' -d__fwalk='undef' -d_access='define' -d_accessx='undef' -d_acosh='define' -d_aintl='undef' -d_alarm='define' -d_archlib='define' -d_asctime64='undef' -d_asctime_r='define' -d_asinh='define' -d_atanh='define' -d_atolf='undef' -d_atoll='define' -d_attribute_deprecated='define' -d_attribute_format='define' -d_attribute_malloc='define' -d_attribute_nonnull='define' -d_attribute_noreturn='define' -d_attribute_pure='define' -d_attribute_unused='define' -d_attribute_warn_unused_result='define' -d_backtrace='define' -d_bcmp='define' -d_bcopy='define' -d_bsd='undef' -d_bsdgetpgrp='undef' -d_bsdsetpgrp='undef' -d_builtin_choose_expr='define' -d_builtin_expect='define' -d_bzero='define' -d_c99_variadic_macros='define' -d_casti32='define' -d_castneg='define' -d_cbrt='define' -d_charvspr='undef' -d_chown='define' -d_chroot='define' -d_chsize='undef' -d_class='undef' -d_clearenv='define' -d_closedir='define' -d_cmsghdr_s='define' -d_const='define' -d_copysign='define' -d_copysignl='define' -d_cplusplus='undef' -d_crypt='define' -d_crypt_r='define' -d_csh='undef' -d_ctermid='define' -d_ctermid_r='undef' -d_ctime64='undef' -d_ctime_r='define' -d_cuserid='define' -d_dbl_dig='define' -d_dbminitproto='define' -d_difftime64='undef' -d_difftime='define' -d_dir_dd_fd='undef' -d_dirfd='define' -d_dirnamlen='undef' -d_dladdr='define' -d_dlerror='define' -d_dlopen='define' -d_dlsymun='undef' -d_dosuid='undef' -d_drand48_r='define' -d_drand48proto='define' -d_dup2='define' -d_eaccess='define' -d_endgrent='define' -d_endgrent_r='undef' -d_endhent='define' -d_endhostent_r='undef' -d_endnent='define' -d_endnetent_r='undef' -d_endpent='define' -d_endprotoent_r='undef' -d_endpwent='define' -d_endpwent_r='undef' -d_endsent='define' -d_endservent_r='undef' -d_eofnblk='define' -d_erf='define' -d_erfc='define' -d_eunice='undef' -d_exp2='define' -d_expm1='define' -d_faststdio='undef' -d_fchdir='define' -d_fchmod='define' -d_fchown='define' -d_fcntl='define' -d_fcntl_can_lock='define' -d_fd_macros='define' -d_fd_set='define' -d_fdim='define' -d_fds_bits='define' -d_fegetround='define' -d_fgetpos='define' -d_finite='define' -d_finitel='define' -d_flexfnam='define' -d_flock='define' -d_flockproto='define' -d_fma='define' -d_fmax='define' -d_fmin='define' -d_fork='define' -d_fp_class='undef' -d_fp_classify='undef' -d_fp_classl='undef' -d_fpathconf='define' -d_fpclass='undef' -d_fpclassify='define' -d_fpclassl='undef' -d_fpgetround='undef' -d_fpos64_t='undef' -d_frexpl='define' -d_fs_data_s='undef' -d_fseeko='define' -d_fsetpos='define' -d_fstatfs='define' -d_fstatvfs='define' -d_fsync='define' -d_ftello='define' -d_ftime='undef' -d_futimes='define' -d_gdbm_ndbm_h_uses_prototypes='undef' -d_gdbmndbm_h_uses_prototypes='define' -d_getaddrinfo='define' -d_getcwd='define' -d_getespwnam='undef' -d_getfsstat='undef' -d_getgrent='define' -d_getgrent_r='define' -d_getgrgid_r='define' -d_getgrnam_r='define' -d_getgrps='define' -d_gethbyaddr='define' -d_gethbyname='define' -d_gethent='define' -d_gethname='define' -d_gethostbyaddr_r='define' -d_gethostbyname_r='define' -d_gethostent_r='define' -d_gethostprotos='define' -d_getitimer='define' -d_getlogin='define' -d_getlogin_r='define' -d_getmnt='undef' -d_getmntent='define' -d_getnameinfo='define' -d_getnbyaddr='define' -d_getnbyname='define' -d_getnent='define' -d_getnetbyaddr_r='define' -d_getnetbyname_r='define' -d_getnetent_r='define' -d_getnetprotos='define' -d_getpagsz='define' -d_getpbyname='define' -d_getpbynumber='define' -d_getpent='define' -d_getpgid='define' -d_getpgrp2='undef' -d_getpgrp='define' -d_getppid='define' -d_getprior='define' -d_getprotobyname_r='define' -d_getprotobynumber_r='define' -d_getprotoent_r='define' -d_getprotoprotos='define' -d_getprpwnam='undef' -d_getpwent='define' -d_getpwent_r='define' -d_getpwnam_r='define' -d_getpwuid_r='define' -d_getsbyname='define' -d_getsbyport='define' -d_getsent='define' -d_getservbyname_r='define' -d_getservbyport_r='define' -d_getservent_r='define' -d_getservprotos='define' -d_getspnam='define' -d_getspnam_r='define' -d_gettimeod='define' -d_gmtime64='undef' -d_gmtime_r='define' -d_gnulibc='define' -d_grpasswd='define' -d_hasmntopt='define' -d_htonl='define' -d_hypot='define' -d_ilogb='define' -d_ilogbl='define' -d_inc_version_list='undef' -d_index='undef' -d_inetaton='define' -d_inetntop='define' -d_inetpton='define' -d_int64_t='define' -d_ip_mreq='define' -d_ip_mreq_source='define' -d_ipv6_mreq='define' -d_ipv6_mreq_source='undef' -d_isascii='define' -d_isblank='define' -d_isfinite='define' -d_isfinitel='undef' -d_isinf='define' -d_isinfl='define' -d_isless='undef' -d_isnan='define' -d_isnanl='define' -d_isnormal='define' -d_j0='define' -d_j0l='define' -d_killpg='define' -d_lc_monetary_2008='define' -d_lchown='define' -d_ldbl_dig='define' -d_ldexpl='define' -d_lgamma='define' -d_lgamma_r='define' -d_libm_lib_version='undef' -d_libname_unique='undef' -d_link='define' -d_llrint='define' -d_llrintl='define' -d_llround='define' -d_llroundl='define' -d_localtime64='undef' -d_localtime_r='define' -d_localtime_r_needs_tzset='define' -d_locconv='define' -d_lockf='define' -d_log1p='define' -d_log2='define' -d_logb='define' -d_longdbl='define' -d_longlong='define' -d_lrint='define' -d_lrintl='define' -d_lround='define' -d_lroundl='define' -d_lseekproto='define' -d_lstat='define' -d_madvise='define' -d_malloc_good_size='undef' -d_malloc_size='undef' -d_mblen='define' -d_mbstowcs='define' -d_mbtowc='define' -d_memchr='define' -d_memcmp='define' -d_memcpy='define' -d_memmove='define' -d_memset='define' -d_mkdir='define' -d_mkdtemp='define' -d_mkfifo='define' -d_mkstemp='define' -d_mkstemps='define' -d_mktime64='undef' -d_mktime='define' -d_mmap='define' -d_modfl='define' -d_modfl_pow32_bug='undef' -d_modflproto='define' -d_mprotect='define' -d_msg='define' -d_msg_ctrunc='define' -d_msg_dontroute='define' -d_msg_oob='define' -d_msg_peek='define' -d_msg_proxy='define' -d_msgctl='define' -d_msgget='define' -d_msghdr_s='define' -d_msgrcv='define' -d_msgsnd='define' -d_msync='define' -d_munmap='define' -d_mymalloc='undef' -d_nan='define' -d_ndbm='define' -d_ndbm_h_uses_prototypes='undef' -d_nearbyint='define' -d_nextafter='define' -d_nexttoward='define' -d_nice='define' -d_nl_langinfo='define' -d_nv_preserves_uv='undef' -d_nv_zero_is_allbits_zero='define' -d_off64_t='define' -d_old_pthread_create_joinable='undef' -d_oldpthreads='undef' -d_oldsock='undef' -d_open3='define' -d_pathconf='define' -d_pause='define' -d_perl_otherlibdirs='define' -d_phostname='undef' -d_pipe='define' -d_poll='define' -d_portable='define' -d_prctl='define' -d_prctl_set_name='define' -d_printf_format_null='undef' -d_procselfexe='define' -d_pseudofork='undef' -d_pthread_atfork='define' -d_pthread_attr_setscope='define' -d_pthread_yield='define' -d_ptrdiff_t='define' -d_pwage='undef' -d_pwchange='undef' -d_pwclass='undef' -d_pwcomment='undef' -d_pwexpire='undef' -d_pwgecos='define' -d_pwpasswd='define' -d_pwquota='undef' -d_qgcvt='define' -d_quad='define' -d_random_r='define' -d_re_comp='undef' -d_readdir64_r='define' -d_readdir='define' -d_readdir_r='define' -d_readlink='define' -d_readv='define' -d_recvmsg='define' -d_regcmp='undef' -d_regcomp='define' -d_remainder='define' -d_remquo='define' -d_rename='define' -d_rewinddir='define' -d_rint='define' -d_rmdir='define' -d_round='define' -d_safebcpy='undef' -d_safemcpy='undef' -d_sanemcmp='define' -d_sbrkproto='define' -d_scalbn='define' -d_scalbnl='define' -d_sched_yield='define' -d_scm_rights='define' -d_seekdir='define' -d_select='define' -d_sem='define' -d_semctl='define' -d_semctl_semid_ds='define' -d_semctl_semun='define' -d_semget='define' -d_semop='define' -d_sendmsg='define' -d_setegid='define' -d_seteuid='define' -d_setgrent='define' -d_setgrent_r='undef' -d_setgrps='define' -d_sethent='define' -d_sethostent_r='undef' -d_setitimer='define' -d_setlinebuf='define' -d_setlocale='define' -d_setlocale_r='undef' -d_setnent='define' -d_setnetent_r='undef' -d_setpent='define' -d_setpgid='define' -d_setpgrp2='undef' -d_setpgrp='define' -d_setprior='define' -d_setproctitle='undef' -d_setprotoent_r='undef' -d_setpwent='define' -d_setpwent_r='undef' -d_setregid='define' -d_setresgid='define' -d_setresuid='define' -d_setreuid='define' -d_setrgid='undef' -d_setruid='undef' -d_setsent='define' -d_setservent_r='undef' -d_setsid='define' -d_setvbuf='define' -d_shm='define' -d_shmat='define' -d_shmatprototype='define' -d_shmctl='define' -d_shmdt='define' -d_shmget='define' -d_sigaction='define' -d_signbit='define' -d_sigprocmask='define' -d_sigsetjmp='define' -d_sin6_scope_id='define' -d_sitearch='define' -d_snprintf='define' -d_sockaddr_in6='define' -d_sockaddr_sa_len='undef' -d_sockatmark='define' -d_sockatmarkproto='define' -d_socket='define' -d_socklen_t='define' -d_sockpair='define' -d_socks5_init='undef' -d_sprintf_returns_strlen='define' -d_sqrtl='define' -d_srand48_r='define' -d_srandom_r='define' -d_sresgproto='define' -d_sresuproto='define' -d_stat='define' -d_statblks='define' -d_statfs_f_flags='define' -d_statfs_s='define' -d_static_inline='define' -d_statvfs='define' -d_stdio_cnt_lval='undef' -d_stdio_ptr_lval='undef' -d_stdio_ptr_lval_nochange_cnt='undef' -d_stdio_ptr_lval_sets_cnt='undef' -d_stdio_stream_array='undef' -d_stdiobase='undef' -d_stdstdio='undef' -d_strchr='define' -d_strcoll='define' -d_strctcpy='define' -d_strerrm='strerror(e)' -d_strerror='define' -d_strerror_r='define' -d_strftime='define' -d_strlcat='undef' -d_strlcpy='undef' -d_strtod='define' -d_strtol='define' -d_strtold='define' -d_strtoll='define' -d_strtoq='define' -d_strtoul='define' -d_strtoull='define' -d_strtouq='define' -d_strxfrm='define' -d_suidsafe='undef' -d_symlink='define' -d_syscall='define' -d_syscallproto='define' -d_sysconf='define' -d_sysernlst='' -d_syserrlst='define' -d_system='define' -d_tcgetpgrp='define' -d_tcsetpgrp='define' -d_telldir='define' -d_telldirproto='define' -d_tgamma='define' -d_time='define' -d_timegm='define' -d_times='define' -d_tm_tm_gmtoff='define' -d_tm_tm_zone='define' -d_tmpnam_r='define' -d_trunc='define' -d_truncate='define' -d_truncl='define' -d_ttyname_r='define' -d_tzname='define' -d_u32align='define' -d_ualarm='define' -d_umask='define' -d_uname='define' -d_union_semun='undef' -d_unordered='undef' -d_unsetenv='define' -d_usleep='define' -d_usleepproto='define' -d_ustat='define' -d_vendorarch='define' -d_vendorbin='define' -d_vendorlib='define' -d_vendorscript='define' -d_vfork='undef' -d_void_closedir='undef' -d_voidsig='define' -d_voidtty='' -d_volatile='define' -d_vprintf='define' -d_vsnprintf='define' -d_wait4='define' -d_waitpid='define' -d_wcscmp='define' -d_wcstombs='define' -d_wcsxfrm='define' -d_wctomb='define' -d_writev='define' -d_xenix='undef' -date='date' -db_hashtype='u_int32_t' -db_prefixtype='size_t' -db_version_major='' -db_version_minor='' -db_version_patch='' -direntrytype='struct dirent' -dlext='so' -dlsrc='dl_dlopen.xs' -doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' -doublekind='3' -doublemantbits='52' -doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff' -doublesize='8' -drand01='Perl_drand48()' -drand48_r_proto='REENTRANT_PROTO_I_ST' -dtrace='' -dtraceobject='' -dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared' -eagain='EAGAIN' -ebcdic='undef' -echo='echo' -egrep='egrep' -emacs='' -endgrent_r_proto='0' -endhostent_r_proto='0' -endnetent_r_proto='0' -endprotoent_r_proto='0' -endpwent_r_proto='0' -endservent_r_proto='0' -eunicefix=':' -exe_ext='' -expr='expr' -extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Normalize XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' -extern_C='extern' -extras='' -fflushNULL='define' -fflushall='undef' -find='' -firstmakefile='makefile' -flex='' -fpossize='16' -fpostype='fpos_t' -freetype='void' -from=':' -full_ar='ar' -full_csh='csh' -full_sed='sed' -gccansipedantic='' -gccosandvers='' -gccversion='4.9.2' -getgrent_r_proto='REENTRANT_PROTO_I_SBWR' -getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR' -getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR' -gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE' -gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' -gethostent_r_proto='REENTRANT_PROTO_I_SBWRE' -getlogin_r_proto='REENTRANT_PROTO_I_BW' -getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE' -getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' -getnetent_r_proto='REENTRANT_PROTO_I_SBWRE' -getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR' -getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR' -getprotoent_r_proto='REENTRANT_PROTO_I_SBWR' -getpwent_r_proto='REENTRANT_PROTO_I_SBWR' -getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR' -getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR' -getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR' -getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR' -getservent_r_proto='REENTRANT_PROTO_I_SBWR' -getspnam_r_proto='REENTRANT_PROTO_I_CSBWR' -gidformat='"u"' -gidsign='1' -gidsize='4' -gidtype='gid_t' -glibpth='@EXECPREFIX@/shlib @BASELIBDIR@ @LIBDIR@ @LIBDIR@/386 @BASELIBDIR@386 @EXECPREFIX@/ccs@BASELIBDIR@ @EXECPREFIX@/ucblib @EXECPREFIX@/local@BASELIBDIR@ @BASELIBDIR@ @LIBDIR@ @EXECPREFIX@/local@BASELIBDIR@ ' -gmake='gmake' -gmtime_r_proto='REENTRANT_PROTO_S_TS' -gnulibc_version='2.21' -grep='grep' -groupcat='cat /etc/group' -groupstype='gid_t' -gzip='gzip' -h_fcntl='false' -h_sysfile='true' -hint='recommended' -hostcat='cat /etc/hosts' -hostgenerate='' -hostosname='' -hostperl='' -html1dir=' ' -html1direxp='' -html3dir=' ' -html3direxp='' -i16size='2' -i16type='short' -i32size='4' -i32type='int' -i64size='8' -i64type='long' -i8size='1' -i8type='signed char' -i_arpainet='define' -i_assert='define' -i_bfd='define' -i_bsdioctl='' -i_crypt='define' -i_db='undef' -i_dbm='define' -i_dirent='define' -i_dlfcn='define' -i_execinfo='define' -i_fcntl='undef' -i_fenv='define' -i_float='define' -i_fp='undef' -i_fp_class='undef' -i_gdbm='undef' -i_gdbm_ndbm='undef' -i_gdbmndbm='define' -i_grp='define' -i_ieeefp='undef' -i_inttypes='define' -i_langinfo='define' -i_libutil='undef' -i_limits='define' -i_locale='define' -i_machcthr='undef' -i_malloc='define' -i_mallocmalloc='undef' -i_math='define' -i_memory='undef' -i_mntent='define' -i_ndbm='undef' -i_netdb='define' -i_neterrno='undef' -i_netinettcp='define' -i_niin='define' -i_poll='define' -i_prot='undef' -i_pthread='define' -i_pwd='define' -i_quadmath='undef' -i_rpcsvcdbm='undef' -i_sgtty='undef' -i_shadow='define' -i_socks='undef' -i_stdarg='define' -i_stdbool='define' -i_stddef='define' -i_stdint='define' -i_stdlib='define' -i_string='define' -i_sunmath='undef' -i_sysaccess='undef' -i_sysdir='define' -i_sysfile='define' -i_sysfilio='undef' -i_sysin='undef' -i_sysioctl='define' -i_syslog='define' -i_sysmman='define' -i_sysmode='undef' -i_sysmount='define' -i_sysndir='undef' -i_sysparam='define' -i_syspoll='define' -i_sysresrc='define' -i_syssecrt='undef' -i_sysselct='define' -i_syssockio='undef' -i_sysstat='define' -i_sysstatfs='define' -i_sysstatvfs='define' -i_systime='define' -i_systimek='undef' -i_systimes='define' -i_systypes='define' -i_sysuio='define' -i_sysun='define' -i_sysutsname='define' -i_sysvfs='define' -i_syswait='define' -i_termio='undef' -i_termios='define' -i_time='define' -i_unistd='define' -i_ustat='define' -i_utime='define' -i_values='define' -i_varargs='undef' -i_varhdr='stdarg.h' -i_vfork='undef' -ignore_versioned_solibs='y' -inc_version_list=' ' -inc_version_list_init='0' -incpath='' -inews='' -initialinstalllocation='@USRBIN@' -installarchlib='@LIBDIR@/perl/5.24.4/@ARCH@-thread-multi' -installbin='@USRBIN@' -installhtml1dir='' -installhtml3dir='' -installman1dir='' -installman3dir='' -installprefix='@EXECPREFIX@' -installprefixexp='@EXECPREFIX@' -installprivlib='@LIBDIR@/perl/5.24.4' -installscript='@USRBIN@' -installsitearch='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi' -installsitebin='@USRBIN@' -installsitehtml1dir='' -installsitehtml3dir='' -installsitelib='@LIBDIR@/perl/site_perl/5.24.4' -installsiteman1dir='' -installsiteman3dir='' -installsitescript='@USRBIN@' -installstyle='lib/perl' -installusrbinperl='define' -installvendorarch='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi' -installvendorbin='@USRBIN@' -installvendorhtml1dir='' -installvendorhtml3dir='' -installvendorlib='@LIBDIR@/perl/vendor_perl/5.24.4' -installvendorman1dir='' -installvendorman3dir='' -installvendorscript='@USRBIN@' -intsize='4' -issymlink='test -h' -ivdformat='"ld"' -ivsize='8' -ivtype='long' -known_extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version ' -ksh='' -ld='gcc' -ld_can_script='define' -lddlflags='-shared -O2' -ldflags='' -ldflags_uselargefiles='' -ldlibpthname='LD_LIBRARY_PATH' -less='less' -lib_ext='.a' -libc='libc-2.21.so' -libperl='libperl.so' -libpth='@LIBDIR@ @BASELIBDIR@' -libs='-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat' -libsdirs=' @LIBDIR@' -libsfiles=' libpthread.so libnsl.so libgdbm.so libdb.so libdl.so libm.so libcrypt.so libutil.so libc.so libgdbm_compat.so' -libsfound=' @LIBDIR@/libpthread.so @LIBDIR@/libnsl.so @LIBDIR@/libgdbm.so @LIBDIR@/libdb.so @LIBDIR@/libdl.so @LIBDIR@/libm.so @LIBDIR@/libcrypt.so @LIBDIR@/libutil.so @LIBDIR@/libc.so @LIBDIR@/libgdbm_compat.so' -libspath=' @LIBDIR@ @BASELIBDIR@' -libswanted='cl pthread socket inet nsl nm gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat' -libswanted_uselargefiles='' -line='' -lint='' -lkflags='' -ln='ln' -lns='/bin/ln -s' -localtime_r_proto='REENTRANT_PROTO_S_TS' -locincpth='@EXECPREFIX@/local/include /opt/local/include @EXECPREFIX@/gnu/include /opt/gnu/include @EXECPREFIX@/GNU/include /opt/GNU/include' -loclibpth='@EXECPREFIX@/local@BASELIBDIR@ /opt/local@BASELIBDIR@ @EXECPREFIX@/gnu@BASELIBDIR@ /opt/gnu@BASELIBDIR@ @EXECPREFIX@/GNU@BASELIBDIR@ /opt/GNU@BASELIBDIR@' -longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00' -longdblkind='3' -longdblmantbits='64' -longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x32, 0xf7' -longdblsize='16' -longlongsize='8' -longsize='8' -lp='' -lpr='' -ls='ls' -lseeksize='8' -lseektype='off_t' -mail='' -mailx='' -make='make' -make_set_make='#' -mallocobj='' -mallocsrc='' -malloctype='void *' -man1dir=' ' -man1direxp='' -man1ext='0' -man3dir=' ' -man3direxp='' -man3ext='0' -mips_type='' -mistrustnm='' -mkdir='mkdir' -mmaptype='void *' -modetype='mode_t' -more='more' -multiarch='undef' -mv='' -myarchname='@ARCH@' -mydomain='.localdomain' -myhostname='localhost' -myuname='linux qemux86-64 3.19.5-yocto-standard #1 smp preempt tue jun 16 00:28:17 pdt 2015 x86_64 gnulinux ' -n='-n' -need_va_copy='define' -netdb_hlen_type='size_t' -netdb_host_type='char *' -netdb_name_type='const char *' -netdb_net_type='in_addr_t' -nm='nm' -nm_opt='' -nm_so_opt='--dynamic' -nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local Unicode/Normalize XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' -nroff='nroff' -nvEUformat='"E"' -nvFUformat='"F"' -nvGUformat='"G"' -nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' -nv_preserves_uv_bits='53' -nveformat='"e"' -nvfformat='"f"' -nvgformat='"g"' -nvmantbits='52' -nvsize='8' -nvtype='double' -o_nonblock='O_NONBLOCK' -obj_ext='.o' -old_pthread_create_joinable='' -optimize='-O2' -orderlib='false' -osname='linux' -osvers='3.19.5-yocto-standard' -otherlibdirs='@LIBDIR@/perl/5.24.4' -package='perl' -pager='/usr/bin/less -isr' -passcat='cat /etc/passwd' -patchlevel='24' -path_sep=':' -perl5='@USRBIN@/perl' -perl='perl' -perl_patchlevel='' -perl_static_inline='static __inline__' -perladmin='root@localhost' -perllibs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc' -perlpath='@USRBIN@/perl' -pg='pg' -phostname='' -pidtype='pid_t' -plibpth='@LIBDIR@ @BASELIBDIR@' -pmake='' -pr='' -prefix='@EXECPREFIX@' -prefixexp='@EXECPREFIX@' -privlib='@LIBDIR@/perl/5.24.4' -privlibexp='@LIBDIR@/perl/5.24.4' -procselfexe='"/proc/self/exe"' -prototype='define' -ptrsize='8' -quadkind='2' -quadtype='long' -randbits='48' -randfunc='Perl_drand48' -random_r_proto='REENTRANT_PROTO_I_St' -randseedtype='U32' -ranlib=':' -rd_nodata='-1' -readdir64_r_proto='REENTRANT_PROTO_I_TSR' -readdir_r_proto='REENTRANT_PROTO_I_TSR' -revision='5' -rm='rm' -rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' -rmail='' -run='' -runnm='false' -sGMTIME_max='67768036191676799' -sGMTIME_min='-62167219200' -sLOCALTIME_max='67768036191676799' -sLOCALTIME_min='-62167219200' -sPRIEUldbl='"LE"' -sPRIFUldbl='"LF"' -sPRIGUldbl='"LG"' -sPRIXU64='"lX"' -sPRId64='"ld"' -sPRIeldbl='"Le"' -sPRIfldbl='"Lf"' -sPRIgldbl='"Lg"' -sPRIi64='"li"' -sPRIo64='"lo"' -sPRIu64='"lu"' -sPRIx64='"lx"' -sSCNfldbl='"Lf"' -sched_yield='sched_yield()' -scriptdir='@USRBIN@' -scriptdirexp='@USRBIN@' -sed='sed' -seedfunc='Perl_drand48_init' -selectminbits='64' -selecttype='fd_set *' -sendmail='' -setgrent_r_proto='0' -sethostent_r_proto='0' -setlocale_r_proto='0' -setnetent_r_proto='0' -setprotoent_r_proto='0' -setpwent_r_proto='0' -setservent_r_proto='0' -sh='/bin/sh' -shar='' -sharpbang='#!' -shmattype='void *' -shortsize='2' -shrpenv='' -shsharp='true' -sig_count='65' -sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED ' -sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0' -sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 ' -sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' -sig_size='69' -signal_t='void' -sitearch='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi' -sitearchexp='@LIBDIR@/perl/site_perl/5.24.4/@ARCH@-thread-multi' -sitebin='@USRBIN@' -sitebinexp='@USRBIN@' -sitehtml1dir='' -sitehtml1direxp='' -sitehtml3dir='' -sitehtml3direxp='' -sitelib='@LIBDIR@/perl/site_perl/5.24.4' -sitelib_stem='@LIBDIR@/perl/site_perl' -sitelibexp='@LIBDIR@/perl/site_perl/5.24.4' -siteman1dir='' -siteman1direxp='' -siteman3dir='' -siteman3direxp='' -siteprefix='@EXECPREFIX@' -siteprefixexp='@EXECPREFIX@' -sitescript='@USRBIN@' -sitescriptexp='@USRBIN@' -sizesize='8' -sizetype='size_t' -sleep='' -smail='' -so='so' -sockethdr='' -socketlib='' -socksizetype='socklen_t' -sort='sort' -spackage='Perl5' -spitshell='cat' -srand48_r_proto='REENTRANT_PROTO_I_LS' -srandom_r_proto='REENTRANT_PROTO_I_TS' -src='.' -ssizetype='ssize_t' -st_ino_sign='1' -st_ino_size='8' -startperl='#!@USRBIN@/perl' -startsh='#!/bin/sh' -static_ext=' ' -stdchar='char' -stdio_base='((fp)->_IO_read_base)' -stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)' -stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)' -stdio_filbuf='' -stdio_ptr='((fp)->_IO_read_ptr)' -stdio_stream_array='' -strerror_r_proto='REENTRANT_PROTO_B_IBW' -strings='@INCLUDEDIR@/string.h' -submit='' -subversion='4' -sysman='@EXECPREFIX@/share/man/man1' -sysroot='' -tail='' -tar='' -targetarch='' -targetdir='' -targetenv='' -targethost='' -targetmkdir='' -targetport='' -targetsh='/bin/sh' -tbl='' -tee='' -test='test' -timeincl='@INCLUDEDIR@/sys/time.h @INCLUDEDIR@/time.h ' -timetype='time_t' -tmpnam_r_proto='REENTRANT_PROTO_B_B' -to=':' -touch='touch' -tr='tr' -trnl='\n' -troff='' -ttyname_r_proto='REENTRANT_PROTO_I_IBW' -u16size='2' -u16type='unsigned short' -u32size='4' -u32type='unsigned int' -u64size='8' -u64type='unsigned long' -u8size='1' -u8type='unsigned char' -uidformat='"u"' -uidsign='1' -uidsize='4' -uidtype='uid_t' -uname='uname' -uniq='uniq' -uquadtype='unsigned long' -use5005threads='undef' -use64bitall='undef' -use64bitint='undef' -usecbacktrace='undef' -usecrosscompile='define' -usedevel='undef' -usedl='define' -usedtrace='undef' -usefaststdio='undef' -useithreads='define' -usekernprocpathname='undef' -uselargefiles='define' -uselongdouble='undef' -usemallocwrap='define' -usemorebits='undef' -usemultiplicity='define' -usemymalloc='n' -usenm='false' -usensgetexecutablepath='undef' -useopcode='true' -useperlio='define' -useposix='true' -usequadmath='undef' -usereentrant='undef' -userelocatableinc='undef' -useshrplib='true' -usesitecustomize='undef' -usesocks='undef' -usethreads='define' -usevendorprefix='define' -useversionedarchname='undef' -usevfork='false' -usrinc='@INCLUDEDIR@' -uuname='' -uvXUformat='"lX"' -uvoformat='"lo"' -uvsize='8' -uvtype='unsigned long' -uvuformat='"lu"' -uvxformat='"lx"' -vaproto='define' -vendorarch='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi' -vendorarchexp='@LIBDIR@/perl/vendor_perl/5.24.4/@ARCH@-thread-multi' -vendorbin='@USRBIN@' -vendorbinexp='@USRBIN@' -vendorhtml1dir=' ' -vendorhtml1direxp='' -vendorhtml3dir=' ' -vendorhtml3direxp='' -vendorlib='@LIBDIR@/perl/vendor_perl/5.24.4' -vendorlib_stem='@LIBDIR@/perl/vendor_perl' -vendorlibexp='@LIBDIR@/perl/vendor_perl/5.24.4' -vendorman1dir=' ' -vendorman1direxp='' -vendorman3dir=' ' -vendorman3direxp='' -vendorprefix='@EXECPREFIX@' -vendorprefixexp='@EXECPREFIX@' -vendorscript='@USRBIN@' -vendorscriptexp='@USRBIN@' -version='5.24.4' -version_patchlevel_string='version 24 subversion 4' -versiononly='undef' -vi='' -xlibpth='@LIBDIR@/386 @BASELIBDIR@386' -yacc='yacc' -yaccflags='' -zcat='' -zip='zip' -PERL_REVISION=5 -PERL_VERSION=24 -PERL_SUBVERSION=4 -PERL_API_REVISION=5 -PERL_API_VERSION=24 -PERL_API_SUBVERSION=4 -PERL_PATCHLEVEL='' -PERL_CONFIG_SH=true -: Variables propagated from previous config.sh file. -libdb_needs_pthread='N' - -# for Time-HiRes -d_clock_nanosleep='define' -d_clock_gettime='define' -d_clock_getres='define' -d_clock='define' -d_nanosleep='define' - -# for Signinfo -d_siginfo_si_errno='define' -d_siginfo_si_pid='define' -d_siginfo_si_uid='define' -d_siginfo_si_addr='define' -d_siginfo_si_status='define' -d_siginfo_si_band='define' -d_siginfo_si_value='define' - -# don't support fdclose -d_fdclose='undef' - -# support memmem -d_memmem='define' - -# for locale -d_newlocale='define' -d_freelocale='define' -d_uselocale='define' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32 b/external/poky/meta/recipes-devtools/perl/perl/config.sh-32 deleted file mode 100644 index 7259a0c6..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32 +++ /dev/null @@ -1,38 +0,0 @@ -alignbytes='4' -cf_time='Thu Dec 23 03:57:51 UTC 2010' -cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=((double)4.94065645841246544177e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308085e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=((double)1.79769313486231570815e+308L) __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=((double)2.22507385850720138309e-308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846432481707092e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000e-7F __FLT_EVAL_METHOD__=2 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282346638528859812e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435082228750797e-38F __FLT_RADIX__=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GLIBC_MINOR__=12 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=5 __GNUC_PATCHLEVEL__=1 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INT16_C(c)=c __INT16_MAX__=32767 __INT16_TYPE__=short\ int __INT32_C(c)=c __INT32_MAX__=2147483647 __INT32_TYPE__=int __INT64_C(c)=cLL __INT64_MAX__=9223372036854775807LL __INT64_TYPE__=long\ long\ int __INT8_C(c)=c __INT8_MAX__=127 __INT8_TYPE__=signed\ char __INTMAX_C(c)=cLL __INTMAX_MAX__=9223372036854775807LL __INTMAX_TYPE__=long\ long\ int __INTPTR_MAX__=2147483647 __INTPTR_TYPE__=int __INT_FAST16_MAX__=2147483647 __INT_FAST16_TYPE__=int __INT_FAST32_MAX__=2147483647 __INT_FAST32_TYPE__=int __INT_FAST64_MAX__=9223372036854775807LL __INT_FAST64_TYPE__=long\ long\ int __INT_FAST8_MAX__=127 __INT_FAST8_TYPE__=signed\ char __INT_LEAST16_MAX__=32767 __INT_LEAST16_TYPE__=short\ int __INT_LEAST32_MAX__=2147483647 __INT_LEAST32_TYPE__=int __INT_LEAST64_MAX__=9223372036854775807LL __INT_LEAST64_TYPE__=long\ long\ int __INT_LEAST8_MAX__=127 __INT_LEAST8_TYPE__=signed\ char __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=2147483647L __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=2147483647 __PTRDIFF_TYPE__=int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIG_ATOMIC_MAX__=2147483647 __SIG_ATOMIC_MIN__=(-2147483647\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=12 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=4 __SIZEOF_POINTER__=4 __SIZEOF_PTRDIFF_T__=4 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=4 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_MAX__=4294967295U __SIZE_TYPE__=unsigned\ int __STDC_HOSTED__=1 __STDC__=1 __UINT16_C(c)=c __UINT16_MAX__=65535 __UINT16_TYPE__=short\ unsigned\ int __UINT32_C(c)=cU __UINT32_MAX__=4294967295U __UINT32_TYPE__=unsigned\ int __UINT64_C(c)=cULL __UINT64_MAX__=18446744073709551615ULL __UINT64_TYPE__=long\ long\ unsigned\ int __UINT8_C(c)=c __UINT8_MAX__=255 __UINT8_TYPE__=unsigned\ char __UINTMAX_C(c)=cULL __UINTMAX_MAX__=18446744073709551615ULL __UINTMAX_TYPE__=long\ long\ unsigned\ int __UINTPTR_MAX__=4294967295U __UINTPTR_TYPE__=unsigned\ int __UINT_FAST16_MAX__=4294967295U __UINT_FAST16_TYPE__=unsigned\ int __UINT_FAST32_MAX__=4294967295U __UINT_FAST32_TYPE__=unsigned\ int __UINT_FAST64_MAX__=18446744073709551615ULL __UINT_FAST64_TYPE__=long\ long\ unsigned\ int __UINT_FAST8_MAX__=255 __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=65535 __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=4294967295U __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615ULL __UINT_LEAST64_TYPE__=long\ long\ unsigned\ int __UINT_LEAST8_MAX__=255 __UINT_LEAST8_TYPE__=unsigned\ char __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.5.1" __WCHAR_MAX__=2147483647L __WCHAR_MIN__=(-2147483647L\ -\ 1) __WCHAR_TYPE__=long\ int __WINT_MAX__=4294967295U __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __gnu_linux__=1 __i386=1 __i386__=1 __i586=1 __i586__=1 __linux=1 __linux__=1 __pentium=1 __pentium__=1 __tune_i586__=1 __tune_pentium__=1 __unix=1 __unix__=1 i386=1 linux=1 unix=1' -d_nv_preserves_uv='define' -d_printf_format_null='define' -d_u32align='undef' -gidformat='"lu"' -i32type='long' -i64type='long long' -ivsize='4' -longdblsize='12' -longsize='4' -myuname='linux qemux86 2.6.37-rc5-yocto-standard+ #1 preempt mon dec 20 14:21:27 pst 2010 i686 gnulinux ' -need_va_copy='undef' -netdb_host_type='const void *' -nv_preserves_uv_bits='32' -ptrsize='4' -quadkind='3' -quadtype='long long' -sGMTIME_max='2147483647' -sGMTIME_min='-2147483648' -sLOCALTIME_max='2147483647' -sLOCALTIME_min='-2147483648' -sPRIXU64='"LX"' -sPRId64='"Ld"' -sPRIi64='"Li"' -sPRIo64='"Lo"' -sPRIu64='"Lu"' -sPRIx64='"Lx"' -selectminbits='32' -sizesize='4' -u32type='unsigned long' -u64type='unsigned long long' -uidformat='"lu"' -uquadtype='unsigned long long' -use64bitall='undef' -use64bitint='undef' -uvsize='4' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-be b/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-be deleted file mode 100644 index a59a9abb..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-be +++ /dev/null @@ -1 +0,0 @@ -byteorder='4321' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-le b/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-le deleted file mode 100644 index 10e42265..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-32-le +++ /dev/null @@ -1 +0,0 @@ -byteorder='1234' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64 b/external/poky/meta/recipes-devtools/perl/perl/config.sh-64 deleted file mode 100644 index 6929d3a0..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64 +++ /dev/null @@ -1,38 +0,0 @@ -alignbytes='8' -cf_time='Thu Dec 23 02:06:42 UTC 2010' -cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _LP64=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=((double)4.94065645841246544177e-324L) __DBL_DIG__=15 __DBL_EPSILON__=((double)2.22044604925031308085e-16L) __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=((double)1.79769313486231570815e+308L) __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=((double)2.22507385850720138309e-308L) __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846432481707092e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209289550781250000e-7F __FLT_EVAL_METHOD__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282346638528859812e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435082228750797e-38F __FLT_RADIX__=2 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GLIBC_MINOR__=12 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=5 __GNUC_PATCHLEVEL__=1 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INT16_C(c)=c __INT16_MAX__=32767 __INT16_TYPE__=short\ int __INT32_C(c)=c __INT32_MAX__=2147483647 __INT32_TYPE__=int __INT64_C(c)=cL __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INT8_C(c)=c __INT8_MAX__=127 __INT8_TYPE__=signed\ char __INTMAX_C(c)=cL __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_FAST8_MAX__=127 __INT_FAST8_TYPE__=signed\ char __INT_LEAST16_MAX__=32767 __INT_LEAST16_TYPE__=short\ int __INT_LEAST32_MAX__=2147483647 __INT_LEAST32_TYPE__=int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __INT_LEAST8_MAX__=127 __INT_LEAST8_TYPE__=signed\ char __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIG_ATOMIC_MAX__=2147483647 __SIG_ATOMIC_MIN__=(-2147483647\ -\ 1) __SIG_ATOMIC_TYPE__=int __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __STDC_HOSTED__=1 __STDC__=1 __UINT16_C(c)=c __UINT16_MAX__=65535 __UINT16_TYPE__=short\ unsigned\ int __UINT32_C(c)=cU __UINT32_MAX__=4294967295U __UINT32_TYPE__=unsigned\ int __UINT64_C(c)=cUL __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINT8_C(c)=c __UINT8_MAX__=255 __UINT8_TYPE__=unsigned\ char __UINTMAX_C(c)=cUL __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=255 __UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=65535 __UINT_LEAST16_TYPE__=short\ unsigned\ int __UINT_LEAST32_MAX__=4294967295U __UINT_LEAST32_TYPE__=unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __UINT_LEAST8_MAX__=255 __UINT_LEAST8_TYPE__=unsigned\ char __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.5.1" __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __WINT_MAX__=4294967295U __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int __amd64=1 __amd64__=1 __gnu_linux__=1 __k8=1 __k8__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 __x86_64=1 __x86_64__=1 linux=1 unix=1' -d_nv_preserves_uv='undef' -d_printf_format_null='undef' -d_u32align='define' -gidformat='"u"' -i32type='int' -i64type='long' -ivsize='8' -longdblsize='16' -longsize='8' -myuname='linux qemux86-64 2.6.37-rc5-yocto-standard+ #1 smp preempt mon dec 20 17:19:50 pst 2010 x86_64 gnulinux ' -need_va_copy='define' -netdb_host_type='char *' -nv_preserves_uv_bits='53' -ptrsize='8' -quadkind='2' -quadtype='long' -sGMTIME_max='67768036191676799' -sGMTIME_min='-62167219200' -sLOCALTIME_max='67768036191676799' -sLOCALTIME_min='-62167219200' -sPRIXU64='"lX"' -sPRId64='"ld"' -sPRIi64='"li"' -sPRIo64='"lo"' -sPRIu64='"lu"' -sPRIx64='"lx"' -selectminbits='64' -sizesize='8' -u32type='unsigned int' -u64type='unsigned long' -uidformat='"u"' -uquadtype='unsigned long' -use64bitall='define' -use64bitint='define' -uvsize='8' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-be b/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-be deleted file mode 100644 index c08ce3c4..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-be +++ /dev/null @@ -1 +0,0 @@ -byteorder='87654321' diff --git a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-le b/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-le deleted file mode 100644 index 277d2a9b..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/config.sh-64-le +++ /dev/null @@ -1 +0,0 @@ -byteorder='12345678' diff --git a/external/poky/meta/recipes-devtools/perl/perl/cross-generate_uudmap.patch b/external/poky/meta/recipes-devtools/perl/perl/cross-generate_uudmap.patch deleted file mode 100644 index 33e22225..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/cross-generate_uudmap.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status:Inappropriate [embedded specific] - -Index: perl-5.24.1/Makefile.SH -=================================================================== ---- perl-5.24.1.orig/Makefile.SH -+++ perl-5.24.1/Makefile.SH -@@ -710,7 +710,7 @@ bitcount.h: generate_uudmap\$(HOST_EXE_E - - $spitshell >>$Makefile <<'!NO!SUBS!' - generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT) -- $(CC) -o generate_uudmap$(EXE_EXT) $(LDFLAGS) generate_uudmap$(OBJ_EXT) $(libs) -+ $(BUILD_CC) -o generate_uudmap$(EXE_EXT) generate_uudmap.c - - !NO!SUBS! - ;; diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/cpan-missing-site-dirs.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/cpan-missing-site-dirs.diff deleted file mode 100644 index c597701c..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/cpan-missing-site-dirs.diff +++ /dev/null @@ -1,63 +0,0 @@ -From d33d46963035ef726144dc66be2ae9c00aec0333 Mon Sep 17 00:00:00 2001 -From: Niko Tyni -Date: Tue, 16 Oct 2012 23:07:56 +0300 -Subject: Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent - is writable - -The site directories do not exist on a typical Debian system. The build -systems will create them when necessary, so there's no need for a prompt -suggesting local::lib if the first existing parent directory is writable. - -Also, writability of the core directories is not interesting as we -explicitly tell CPAN not to touch those with INSTALLDIRS=site. - -Bug-Debian: http://bugs.debian.org/688842 -Patch-Name: debian/cpan-missing-site-dirs.diff -Upstream-Status: Pending ---- - cpan/CPAN/lib/CPAN/FirstTime.pm | 31 +++++++++++++++++++++++++++---- - 1 file changed, 27 insertions(+), 4 deletions(-) - -diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm -index 33054cd..7b0becf 100644 ---- a/cpan/CPAN/lib/CPAN/FirstTime.pm -+++ b/cpan/CPAN/lib/CPAN/FirstTime.pm -@@ -2057,11 +2057,34 @@ sub _print_urllist { - }; - } - -+# Debian modification: return true if this directory -+# or the first existing one upwards is writable -+sub _can_write_to_this_or_parent { -+ my ($dir) = @_; -+ my @parts = File::Spec->splitdir($dir); -+ while (@parts) { -+ my $cur = File::Spec->catdir(@parts); -+ return 1 if -w $cur; -+ return 0 if -e _; -+ pop @parts; -+ } -+ return 0; -+} -+ -+# Debian specific modification: the site directories don't necessarily -+# exist on the system, but the build systems create them when necessary, -+# so return true if the first existing directory upwards is writable -+# -+# Furthermore, on Debian, only test the site directories -+# (installsite*, expanded to /usr/local/{share,lib}/perl), -+# not the core ones -+# (install*lib, expanded to /usr/{share,lib}/perl). -+# We pass INSTALLDIRS=site by default to keep CPAN from touching -+# the core directories. -+ - sub _can_write_to_libdirs { -- return -w $Config{installprivlib} -- && -w $Config{installarchlib} -- && -w $Config{installsitelib} -- && -w $Config{installsitearch} -+ return _can_write_to_this_or_parent($Config{installsitelib}) -+ && _can_write_to_this_or_parent($Config{installsitearch}) - } - - sub _using_installbase { diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/cpan_definstalldirs.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/cpan_definstalldirs.diff deleted file mode 100644 index 572f1495..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/cpan_definstalldirs.diff +++ /dev/null @@ -1,38 +0,0 @@ -From 5ff1f21484aab68efe321ff4ba5d35928f72af96 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Tue, 8 Mar 2005 19:30:38 +1100 -Subject: Provide a sensible INSTALLDIRS default for modules installed from - CPAN. - -Some modules which are included in core set INSTALLDIRS => 'perl' -explicitly in Makefile.PL or Build.PL. This makes sense for the normal @INC -ordering, but not ours. - -Patch-Name: debian/cpan_definstalldirs.diff -Upstream-Status: Pending ---- - cpan/CPAN/lib/CPAN/FirstTime.pm | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/cpan/CPAN/lib/CPAN/FirstTime.pm b/cpan/CPAN/lib/CPAN/FirstTime.pm -index 918e009..33054cd 100644 ---- a/cpan/CPAN/lib/CPAN/FirstTime.pm -+++ b/cpan/CPAN/lib/CPAN/FirstTime.pm -@@ -1024,7 +1024,7 @@ sub init { - my_prompt_loop(prefer_installer => 'MB', $matcher, 'MB|EUMM|RAND'); - - if (!$matcher or 'makepl_arg make_arg' =~ /$matcher/) { -- my_dflt_prompt(makepl_arg => "", $matcher); -+ my_dflt_prompt(makepl_arg => "INSTALLDIRS=site", $matcher); - my_dflt_prompt(make_arg => "", $matcher); - if ( $CPAN::Config->{makepl_arg} =~ /LIBS=|INC=/ ) { - $CPAN::Frontend->mywarn( -@@ -1056,7 +1056,7 @@ sub init { - my_dflt_prompt(make_install_arg => $CPAN::Config->{make_arg} || "", - $matcher); - -- my_dflt_prompt(mbuildpl_arg => "", $matcher); -+ my_dflt_prompt(mbuildpl_arg => "--installdirs site", $matcher); - my_dflt_prompt(mbuild_arg => "", $matcher); - - if (exists $CPAN::HandleConfig::keys{mbuild_install_build_command} diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/db_file_ver.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/db_file_ver.diff deleted file mode 100644 index 0861650e..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/db_file_ver.diff +++ /dev/null @@ -1,35 +0,0 @@ -From 01421f8a80d5c623959695ba2b8167f30112d333 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Fri, 16 Dec 2005 01:32:14 +1100 -Subject: Remove overly restrictive DB_File version check. - -Bug-Debian: http://bugs.debian.org/340047 - -Package dependencies ensure the correct library is linked at run-time. - -Patch-Name: debian/db_file_ver.diff -Upstream-Status: Pending ---- - cpan/DB_File/version.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/cpan/DB_File/version.c b/cpan/DB_File/version.c -index e01f6f6..544e6ee 100644 ---- a/cpan/DB_File/version.c -+++ b/cpan/DB_File/version.c -@@ -48,6 +48,7 @@ __getBerkeleyDBInfo() - - (void)db_version(&Major, &Minor, &Patch) ; - -+#ifndef DEBIAN - /* Check that the versions of db.h and libdb.a are the same */ - if (Major != DB_VERSION_MAJOR || Minor != DB_VERSION_MINOR ) - /* || Patch != DB_VERSION_PATCH) */ -@@ -55,6 +56,7 @@ __getBerkeleyDBInfo() - croak("\nDB_File was build with libdb version %d.%d.%d,\nbut you are attempting to run it with libdb version %d.%d.%d\n", - DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH, - Major, Minor, Patch) ; -+#endif /* DEBIAN */ - - /* check that libdb is recent enough -- we need 2.3.4 or greater */ - if (Major == 2 && (Minor < 3 || (Minor == 3 && Patch < 4))) diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/deprecate-with-apt.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/deprecate-with-apt.diff deleted file mode 100644 index c2ac4a3b..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/deprecate-with-apt.diff +++ /dev/null @@ -1,57 +0,0 @@ -From def4aa3817f98aae625e601b791ef068276f05d5 Mon Sep 17 00:00:00 2001 -From: Dominic Hargreaves -Date: Mon, 17 May 2010 13:23:07 +0300 -Subject: Point users to Debian packages of deprecated core modules - -Bug-Debian: http://bugs.debian.org/747628 - -Several modules are being deprecated with perl 5.20. -To get a clean transition, perl/perl-modules is going to recommend the -separate Debian packages of these for one release cycle so that they will be -pulled in by default on upgrades. This is taking place for perl 5.20/jessie. - -However, on systems configured to ignore recommendations the deprecation -warnings will still be useful, so modify them slightly to point to the -separate packages instead. - -Patch-Name: debian/deprecate-with-apt.diff -Upstream-Status: Pending ---- - lib/deprecate.pm | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/lib/deprecate.pm b/lib/deprecate.pm -index 47bc112..b0c61df 100644 ---- a/lib/deprecate.pm -+++ b/lib/deprecate.pm -@@ -7,6 +7,13 @@ our $VERSION = 0.03; - our %Config; - unless (%Config) { require Config; *Config = \%Config::Config; } - -+# Debian-specific change: recommend the separate Debian packages of -+# deprecated modules where available -+ -+our %DEBIAN_PACKAGES = ( -+ # None for the perl 5.22 cycle -+); -+ - # This isn't a public API. It's internal to code maintained by the perl-porters - # If you would like it to be a public API, please send a patch with - # documentation and tests. Until then, it may change without warning. -@@ -58,9 +65,15 @@ EOM - if (defined $callers_bitmask - && (vec($callers_bitmask, $warnings::Offsets{deprecated}, 1) - || vec($callers_bitmask, $warnings::Offsets{all}, 1))) { -- warn <<"EOM"; -+ if (my $deb = $DEBIAN_PACKAGES{$package}) { -+ warn <<"EOM"; -+$package will be removed from the Perl core distribution in the next major release. Please install the separate $deb package. It is being used at $call_file, line $call_line. -+EOM -+ } else { -+ warn <<"EOM"; - $package will be removed from the Perl core distribution in the next major release. Please install it from CPAN. It is being used at $call_file, line $call_line. - EOM -+ } - } - } - } diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/doc_info.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/doc_info.diff deleted file mode 100644 index 4662ecda..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/doc_info.diff +++ /dev/null @@ -1,36 +0,0 @@ -From e18f81e69c55d698abd293e71063d6b6b275cc07 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Fri, 18 Mar 2005 22:22:25 +1100 -Subject: Replace generic man(1) instructions with Debian-specific information. - -Indicate that the user needs to install the perl-doc package. - -Patch-Name: debian/doc_info.diff -Upstream-Status: Pending ---- - pod/perl.pod | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/pod/perl.pod b/pod/perl.pod -index 364e957..f97e103 100644 ---- a/pod/perl.pod -+++ b/pod/perl.pod -@@ -291,8 +291,16 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp - - =for buildtoc __END__ - --On a Unix-like system, these documentation files will usually also be --available as manpages for use with the F program. -+On Debian systems, you need to install the B package which -+contains the majority of the standard Perl documentation and the -+F program. -+ -+Extensive additional documentation for Perl modules is available, both -+those distributed with Perl and third-party modules which are packaged -+or locally installed. -+ -+You should be able to view Perl's documentation with your man(1) -+program or perldoc(1). - - Some documentation is not available as man pages, so if a - cross-reference is not found by man, try it with L. Perldoc can diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/enc2xs_inc.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/enc2xs_inc.diff deleted file mode 100644 index b3bd58c1..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/enc2xs_inc.diff +++ /dev/null @@ -1,71 +0,0 @@ -From 7fe59a3d0601c6d8634eae4f99dae3024cd02a92 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Tue, 8 Mar 2005 19:30:38 +1100 -Subject: Tweak enc2xs to follow symlinks and ignore missing @INC directories. - -Bug-Debian: http://bugs.debian.org/290336 - -- ignore missing directories, -- follow symlinks (/usr/share/perl/5.8 -> 5.8.4). -- filter "." out when running "enc2xs -C", it's unnecessary and causes - issues with follow => 1 (see #603686 and [rt.cpan.org #64585]) - -Patch-Name: debian/enc2xs_inc.diff -Upstream-Status: Pending ---- - cpan/Encode/bin/enc2xs | 8 ++++---- - t/porting/customized.t | 3 +++ - 2 files changed, 7 insertions(+), 4 deletions(-) - -diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs -index 19f2b2b..4d64e38 100644 ---- a/cpan/Encode/bin/enc2xs -+++ b/cpan/Encode/bin/enc2xs -@@ -944,11 +944,11 @@ use vars qw( - sub find_e2x{ - eval { require File::Find; }; - my (@inc, %e2x_dir); -- for my $inc (@INC){ -+ for my $inc (grep -d, @INC){ - push @inc, $inc unless $inc eq '.'; #skip current dir - } - File::Find::find( -- sub { -+ { wanted => sub { - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, - $atime,$mtime,$ctime,$blksize,$blocks) - = lstat($_) or return; -@@ -958,7 +958,7 @@ sub find_e2x{ - $e2x_dir{$File::Find::dir} ||= $mtime; - } - return; -- }, @inc); -+ }, follow => 1}, @inc); - warn join("\n", keys %e2x_dir), "\n"; - for my $d (sort {$e2x_dir{$a} <=> $e2x_dir{$b}} keys %e2x_dir){ - $_E2X = $d; -@@ -1025,7 +1025,7 @@ sub make_configlocal_pm { - $LocalMod{$enc} ||= $mod; - } - }; -- File::Find::find({wanted => $wanted}, @INC); -+ File::Find::find({wanted => $wanted, follow => 1}, grep -d && !/^\./, @INC); - $_ModLines = ""; - for my $enc ( sort keys %LocalMod ) { - $_ModLines .= -diff --git a/t/porting/customized.t b/t/porting/customized.t -index 45fcafb..3bd6adb 100644 ---- a/t/porting/customized.t -+++ b/t/porting/customized.t -@@ -101,8 +101,11 @@ foreach my $module ( sort keys %Modules ) { - print $data_fh join(' ', $module, $file, $id), "\n"; - next; - } -+SKIP: { -+ skip("$file modified for Debian", 1) if $file eq 'cpan/Encode/bin/enc2xs'; - my $should_be = $customised{ $module }->{ $file }; - is( $id, $should_be, "SHA for $file matches stashed SHA" ); -+} - } - } - diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/errno_ver.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/errno_ver.diff deleted file mode 100644 index a965fbee..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/errno_ver.diff +++ /dev/null @@ -1,37 +0,0 @@ -From 8e1efba7560d8d55524c7a0f1b0539ddce419b86 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Fri, 16 Dec 2005 01:32:14 +1100 -Subject: [PATCH 6/8] Remove Errno version check due to upgrade problems with - long-running processes. - -Bug-Debian: http://bugs.debian.org/343351 - -Remove version check which can cause problems for long running -processes embedding perl when upgrading to a newer version, -compatible, but built on a different machine. - -Patch-Name: debian/errno_ver.diff -Upstream-Status: Pending ---- - ext/Errno/Errno_pm.PL | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL -index 6251a3c..eeed445 100644 ---- a/ext/Errno/Errno_pm.PL -+++ b/ext/Errno/Errno_pm.PL -@@ -294,11 +294,6 @@ EDQ - # they've already declared perl doesn't need to worry about this risk. - if(!$ENV{'PERL_BUILD_EXPAND_CONFIG_VARS'}) { - print <<"CONFIG_CHECK_END"; --use Config; --"\$Config{'archname'}-\$Config{'osvers'}" eq --"$archname-$Config{'osvers'}" or -- die "Errno architecture ($archname-$Config{'osvers'}) does not match executable architecture (\$Config{'archname'}-\$Config{'osvers'})"; -- - CONFIG_CHECK_END - } - --- -2.1.4 - diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/extutils_set_libperl_path.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/extutils_set_libperl_path.diff deleted file mode 100644 index e023038f..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/extutils_set_libperl_path.diff +++ /dev/null @@ -1,38 +0,0 @@ -From 431275078b0490d2e092442d9582be06bb95b354 Mon Sep 17 00:00:00 2001 -From: Niko Tyni -Date: Sat, 10 May 2014 23:34:14 +0300 -Subject: EU:MM: set location of libperl.a under /usr/lib - -The Debian packaging moves libperl.a a couple of levels up from the -CORE directory to match other static libraries. - -Patch-Name: debian/extutils_set_libperl_path.diff -Upstream-Status: Pending ---- - cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 2 +- - pp.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -index 5f1b87f..570a631 100644 ---- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm -@@ -2505,7 +2505,7 @@ MAP_PRELIBS = $Config{perllibs} $Config{cryptlib} - ($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/; - } - unless ($libperl && -f $lperl) { # Ilya's code... -- my $dir = $self->{PERL_SRC} || "$self->{PERL_ARCHLIB}/CORE"; -+ my $dir = $self->{PERL_SRC} || "$self->{PERL_ARCHLIB}/../.."; - $dir = "$self->{PERL_ARCHLIB}/.." if $self->{UNINSTALLED_PERL}; - $libperl ||= "libperl$self->{LIB_EXT}"; - $libperl = "$dir/$libperl"; -diff --git a/pp.c b/pp.c -index 42f156a..77c1279 100644 ---- a/pp.c -+++ b/pp.c -@@ -1,4 +1,4 @@ --/* pp.c -+ /* pp.c - * - * Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - * 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Larry Wall and others diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fakeroot.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fakeroot.diff deleted file mode 100644 index bdf34d18..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fakeroot.diff +++ /dev/null @@ -1,43 +0,0 @@ -From 27ae7b18078d801a2c943aa6de2f7e9808177251 Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Fri, 18 Mar 2005 22:22:25 +1100 -Subject: Postpone LD_LIBRARY_PATH evaluation to the binary targets. - -Modify the setting of LD_LIBRARY_PATH to append pre-existing values at the -time the rule is evaluated rather than when the Makefile is created. - -This is required when building packages with dpkg-buildpackage and fakeroot, -since fakeroot (which now sets LD_LIBRARY_PATH) is not used for the "build" -rule where the Makefile is created, but is for the clean/binary* targets. - -Patch-Name: debian/fakeroot.diff -Upstream-Status: Pending ---- - Makefile.SH | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/Makefile.SH b/Makefile.SH -index 034d812..04dd7d5 100755 ---- a/Makefile.SH -+++ b/Makefile.SH -@@ -39,10 +39,7 @@ case "$useshrplib" in - true) - # Prefix all runs of 'miniperl' and 'perl' with - # $ldlibpth so that ./perl finds *this* shared libperl. -- case "$LD_LIBRARY_PATH" in -- '') ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `" ;; -- *) ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `:` quote "$LD_LIBRARY_PATH" `" ;; -- esac -+ ldlibpth="LD_LIBRARY_PATH=` quote "$pwd" `"'$${LD_LIBRARY_PATH:+:}$$LD_LIBRARY_PATH' - - pldlflags="$cccdlflags" - static_ldflags='' -@@ -113,7 +110,7 @@ true) - ;; - esac - case "$ldlibpthname" in -- '') ;; -+ ''|LD_LIBRARY_PATH) ;; - *) - case "$osname" in - os2) diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/find_html2text.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/find_html2text.diff deleted file mode 100644 index 08270914..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/find_html2text.diff +++ /dev/null @@ -1,36 +0,0 @@ -From c81dbdedff9e9b4fb75ac028aa718838c0292d2f Mon Sep 17 00:00:00 2001 -From: Andreas Marschke -Date: Sat, 17 Sep 2011 11:38:42 +0100 -Subject: Configure CPAN::Distribution with correct name of html2text - -Bug-Debian: http://bugs.debian.org/640479 -Patch-Name: debian/find_html2text.diff - -If you use cpan from Debian you usually wind up trying to read online -documentation through it. Unfortunately cpan can't find the -html2text.pl script even though it is installed using the Debian -package 'html2text'. - -Please see the attached patch for a quick fix of this issue. - -[Maintainer's note: html2text in Debian is not the same implementation -as the html2text.pl which is expected, but should provide similar -functionality]. -Upstream-Status: Pending ---- - cpan/CPAN/lib/CPAN/Distribution.pm | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cpan/CPAN/lib/CPAN/Distribution.pm b/cpan/CPAN/lib/CPAN/Distribution.pm -index 092b781..5c2bae1 100644 ---- a/cpan/CPAN/lib/CPAN/Distribution.pm -+++ b/cpan/CPAN/lib/CPAN/Distribution.pm -@@ -4099,7 +4099,7 @@ sub _display_url { - if $CPAN::DEBUG; - - # should we define it in the config instead? -- my $html_converter = "html2text.pl"; -+ my $html_converter = "html2text"; - - my $web_browser = $CPAN::Config->{'lynx'} || undef; - my $web_browser_out = $web_browser diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff deleted file mode 100644 index f3d92583..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/document_makemaker_ccflags.diff +++ /dev/null @@ -1,32 +0,0 @@ -From 9faf6dcc3a5c4154484d812eb3cc3dd78b35563b Mon Sep 17 00:00:00 2001 -From: Niko Tyni -Date: Mon, 30 May 2011 22:54:24 +0300 -Subject: Document that CCFLAGS should include $Config{ccflags} - -Bug: https://rt.cpan.org/Public/Bug/Display.html?id=68613 -Bug-Debian: http://bugs.debian.org/628522 - -Compiling XS extensions without $Config{ccflags} can break the -binary interface on some platforms. - -Patch-Name: fixes/document_makemaker_ccflags.diff -Upstream-Status: Pending ---- - cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm -index fe95b27..90403e8 100644 ---- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm -+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm -@@ -1774,6 +1774,10 @@ currently used by MakeMaker but may be handy in Makefile.PLs. - String that will be included in the compiler call command line between - the arguments INC and OPTIMIZE. - -+The default value is taken from $Config{ccflags}. When overriding -+CCFLAGS, make sure to include the $Config{ccflags} settings to avoid -+binary incompatibilities. -+ - =item CONFIG - - Arrayref. E.g. [qw(archname manext)] defines ARCHNAME & MANEXT from diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff deleted file mode 100644 index d9b36f6d..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/memoize_storable_nstore.diff +++ /dev/null @@ -1,111 +0,0 @@ -From 55d430eb02fc116581847304ca20321687978269 Mon Sep 17 00:00:00 2001 -From: Jonathan Nieder -Date: Fri, 27 Jul 2012 10:35:07 -0500 -Subject: Memoize::Storable: respect 'nstore' option not respected -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Memoize(3perl) says: - - tie my %cache => 'Memoize::Storable', $filename, 'nstore'; - memoize 'function', SCALAR_CACHE => [HASH => \%cache]; - - Include the ‘nstore’ option to have the "Storable" database - written in ‘network order’. (See Storable for more details - about this.) - -In fact the "nstore" option does no such thing. Option parsing looks -like this: - - @options{@_} = (); - -$self->{OPTIONS}{'nstore'} is accordingly set to undef. Later -Memoize::Storable checks if the option is true, and since undef is -not true, the "else" branch is always taken. - - if ($self->{OPTIONS}{'nstore'}) { - Storable::nstore($self->{H}, $self->{FILENAME}); - } else { - Storable::store($self->{H}, $self->{FILENAME}); - } - -Correcting the condition to (exists $self->{OPTIONS}{'nstore'}) fixes -it. - -Noticed because git-svn, which uses the 'nstore' option for its -on-disk caches, was producing - - Byte order is not compatible at ../../lib/Storable.pm - -when run using a perl with a different integer size (and hence -byteorder). - -Reported by Tim Retout (RT#77790) - -Bug-Debian: http://bugs.debian.org/587650 -Bug: https://rt.cpan.org/Public/Bug/Display.html?id=77790 -Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=77790 -Patch-Name: fixes/memoize_storable_nstore.diff -Upstream-Status: Pending ---- - cpan/Memoize/Memoize/Storable.pm | 2 +- - cpan/Memoize/t/tie_storable.t | 24 ++++++++++++++++++++---- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/cpan/Memoize/Memoize/Storable.pm b/cpan/Memoize/Memoize/Storable.pm -index 1314797..87876f2 100644 ---- a/cpan/Memoize/Memoize/Storable.pm -+++ b/cpan/Memoize/Memoize/Storable.pm -@@ -55,7 +55,7 @@ sub DESTROY { - require Carp if $Verbose; - my $self= shift; - print STDERR "Memoize::Storable::DESTROY(@_)\n" if $Verbose; -- if ($self->{OPTIONS}{'nstore'}) { -+ if (exists $self->{OPTIONS}{'nstore'}) { - Storable::nstore($self->{H}, $self->{FILENAME}); - } else { - Storable::store($self->{H}, $self->{FILENAME}); -diff --git a/cpan/Memoize/t/tie_storable.t b/cpan/Memoize/t/tie_storable.t -index de3b8dc..a624238 100644 ---- a/cpan/Memoize/t/tie_storable.t -+++ b/cpan/Memoize/t/tie_storable.t -@@ -31,18 +31,34 @@ if ($@) { - exit 0; - } - --print "1..4\n"; -+print "1..9\n"; - - $file = "storable$$"; - 1 while unlink $file; - tryout('Memoize::Storable', $file, 1); # Test 1..4 - 1 while unlink $file; -+tryout('Memoize::Storable', $file, 5, 'nstore'); # Test 5..8 -+assert_netorder($file, 9); # Test 9 -+1 while unlink $file; -+ -+ -+sub assert_netorder { -+ my ($file, $testno) = @_; -+ -+ my $netorder = Storable::file_magic($file)->{'netorder'}; -+ print ($netorder ? "ok $testno\n" : "not ok $testno\n"); -+} - - sub tryout { -- my ($tiepack, $file, $testno) = @_; -+ my ($tiepack, $file, $testno, $option) = @_; - -- tie my %cache => $tiepack, $file -- or die $!; -+ if (defined $option) { -+ tie my %cache => $tiepack, $file, $option -+ or die $!; -+ } else { -+ tie my %cache => $tiepack, $file -+ or die $!; -+ } - - memoize 'c5', - SCALAR_CACHE => [HASH => \%cache], diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff deleted file mode 100644 index afcf7fb0..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/net_smtp_docs.diff +++ /dev/null @@ -1,26 +0,0 @@ -From fa085fedd9c406edcd4a1a256c025d5ff7f6c6de Mon Sep 17 00:00:00 2001 -From: Brendan O'Dea -Date: Thu, 20 Sep 2007 19:47:14 +1000 -Subject: Document the Net::SMTP 'Port' option - -Bug-Debian: http://bugs.debian.org/100195 -Bug: http://rt.cpan.org/Public/Bug/Display.html?id=36038 - -Patch-Name: fixes/net_smtp_docs.diff -Upstream-Status: Pending ---- - cpan/libnet/lib/Net/SMTP.pm | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/cpan/libnet/lib/Net/SMTP.pm b/cpan/libnet/lib/Net/SMTP.pm -index afd017a..6ae7d9e 100644 ---- a/cpan/libnet/lib/Net/SMTP.pm -+++ b/cpan/libnet/lib/Net/SMTP.pm -@@ -738,6 +738,7 @@ Net::SMTP will attempt to extract the address from the value passed. - - B - Enable debugging information - -+B - Select a port on the remote host to connect to (default is 25) - - Example: - diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff deleted file mode 100644 index 9bdf41b4..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/perl-Cnn.diff +++ /dev/null @@ -1,74 +0,0 @@ -From 0ecf83f259db09cb38cb37c9b22e72be185afa8f Mon Sep 17 00:00:00 2001 -From: Hugo van der Sanden -Date: Thu, 11 Jun 2015 12:25:40 +0100 -Subject: fix -Cnn parsing - -Commit 22ff313068 for [perl #123814] inadvertently changed the logic when -parsing a numeric parameter to the -C option, such that the successfully -parsed number was not saved as the option value if it parsed to the end -of the argument. - -Bug: https://rt.perl.org/Ticket/Display.html?id=125381 -Bug-Debian: https://bugs.debian.org/788636 -Origin: upstream, http://perl5.git.perl.org/perl.git/commit/89d84ff965 -Patch-Name: fixes/perl-Cnn.diff -Upstream-Status: Pending ---- - t/run/switchC.t | 7 ++++++- - util.c | 17 ++++++++--------- - 2 files changed, 14 insertions(+), 10 deletions(-) - -diff --git a/t/run/switchC.t b/t/run/switchC.t -index f6aa868..4f63c3b 100644 ---- a/t/run/switchC.t -+++ b/t/run/switchC.t -@@ -11,7 +11,7 @@ BEGIN { - skip_all_if_miniperl('-C and $ENV{PERL_UNICODE} are disabled on miniperl'); - } - --plan(tests => 13); -+plan(tests => 14); - - my $r; - -@@ -25,6 +25,11 @@ $r = runperl( switches => [ '-CO', '-w' ], - stderr => 1 ); - like( $r, qr/^$b(?:\r?\n)?$/s, '-CO: no warning on UTF-8 output' ); - -+$r = runperl( switches => [ '-C2', '-w' ], -+ prog => 'print chr(256)', -+ stderr => 1 ); -+like( $r, qr/^$b(?:\r?\n)?$/s, '-C2: no warning on UTF-8 output' ); -+ - SKIP: { - if (exists $ENV{PERL_UNICODE} && - ($ENV{PERL_UNICODE} eq "" || $ENV{PERL_UNICODE} =~ /[SO]/)) { -diff --git a/util.c b/util.c -index 8cf62f5..ee23314 100644 ---- a/util.c -+++ b/util.c -@@ -4420,16 +4420,15 @@ Perl_parse_unicode_opts(pTHX_ const char **popt) - if (isDIGIT(*p)) { - const char* endptr; - UV uv; -- if (grok_atoUV(p, &uv, &endptr) -- && uv <= U32_MAX -- && (p = endptr) -- && *p && *p != '\n' && *p != '\r' -- ) { -+ if (grok_atoUV(p, &uv, &endptr) && uv <= U32_MAX) { - opt = (U32)uv; -- if (isSPACE(*p)) -- goto the_end_of_the_opts_parser; -- else -- Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); -+ p = endptr; -+ if (p && *p && *p != '\n' && *p != '\r') { -+ if (isSPACE(*p)) -+ goto the_end_of_the_opts_parser; -+ else -+ Perl_croak(aTHX_ "Unknown Unicode option letter '%c'", *p); -+ } - } - } - else { diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff deleted file mode 100644 index d23573f1..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/pod_man_reproducible_date.diff +++ /dev/null @@ -1,171 +0,0 @@ -From 9057adc106d6bbef53c9e706523cd94f1a7a08d4 Mon Sep 17 00:00:00 2001 -From: Russ Allbery -Date: Sat, 30 Aug 2014 15:10:41 -0700 -Subject: Support POD_MAN_DATE in Pod::Man for the left-hand footer - -Honor the environment variable POD_MAN_DATE and use its contents, if -set, as the value of the left-hand footer if the date option is not -set, overriding the timestamp of the input file. This is primarily -useful to ensure reproducible builds of the same output file given the -same souce and Pod::Man version, even when file timestamps may not be -consistent. Thanks, Niko Tyni. - -Bug-Debian: http://bugs.debian.org/759405 -Origin: upstream -Patch-Name: fixes/pod_man_reproducible_date.diff -Upstream-Status: Pending ---- - cpan/podlators/lib/Pod/Man.pm | 69 +++++++++++++++++++++++++++++++----------- - cpan/podlators/t/devise-date.t | 29 +++++++++++++----- - 2 files changed, 72 insertions(+), 26 deletions(-) - -diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm -index 72ca9ff..0536662 100644 ---- a/cpan/podlators/lib/Pod/Man.pm -+++ b/cpan/podlators/lib/Pod/Man.pm -@@ -876,25 +876,42 @@ sub devise_title { - } - - # Determine the modification date and return that, properly formatted in ISO --# format. If we can't get the modification date of the input, instead use the --# current time. Pod::Simple returns a completely unuseful stringified file --# handle as the source_filename for input from a file handle, so we have to --# deal with that as well. -+# format. -+# -+# If POD_MAN_DATE is set, that overrides anything else. This can be used for -+# reproducible generation of the same file even if the input file timestamps -+# are unpredictable or the POD coms from standard input. -+# -+# Otherwise, use the modification date of the input if we can stat it. Be -+# aware that Pod::Simple returns the stringification of the file handle as -+# source_filename for input from a file handle, so we'll stat some random ref -+# string in that case. If that fails, instead use the current time. -+# -+# $self - Pod::Man object, used to get the source file -+# -+# Returns: YYYY-MM-DD date suitable for the left-hand footer - sub devise_date { - my ($self) = @_; -+ -+ # If POD_MAN_DATE is set, always use it. -+ if ($ENV{POD_MAN_DATE}) { -+ return $ENV{POD_MAN_DATE}; -+ } -+ -+ # Otherwise, get the input filename and try to stat it. If that fails, -+ # use the current time. - my $input = $self->source_filename; - my $time; - if ($input) { -- $time = (stat $input)[9] || time; -+ $time = (stat($input))[9] || time(); - } else { -- $time = time; -+ $time = time(); - } - -- # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker -- # uses this and it has to work in the core which can't load dynamic -- # libraries. -- my ($year, $month, $day) = (localtime $time)[5,4,3]; -- return sprintf ("%04d-%02d-%02d", $year + 1900, $month + 1, $day); -+ # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses -+ # this and it has to work in the core which can't load dynamic libraries. -+ my ($year, $month, $day) = (localtime($time))[5,4,3]; -+ return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); - } - - # Print out the preamble and the title. The meaning of the arguments to .TH -@@ -1632,6 +1649,15 @@ argument. - Sets the centered page header to use instead of "User Contributed Perl - Documentation". - -+=item date -+ -+Sets the left-hand footer. If this option is not set, the contents of the -+environment variable POD_MAN_DATE, if set, will be used. Failing that, -+the modification date of the input file will be used, or the current time -+if stat() can't find that file (which will be the case if the input is -+from C). If obtained from the file modification date or the -+current time, he date will be formatted as C. -+ - =item errors - - How to report errors. C says to throw an exception on any POD -@@ -1642,13 +1668,6 @@ POD errors entirely, as much as possible. - - The default is C. - --=item date -- --Sets the left-hand footer. By default, the modification date of the input --file will be used, or the current date if stat() can't find that file (the --case if the input is from C), and the date will be formatted as --C. -- - =item fixed - - The fixed-width font to use for verbatim text and code. Defaults to -@@ -1810,6 +1829,20 @@ option was set to C. - - =back - -+=head1 ENVIRONMENT -+ -+=over 4 -+ -+=item POD_MAN_DATE -+ -+If set, this will be used as the value of the left-hand footer unless the -+C option is explicitly set, overriding the timestamp of the input -+file or the current time. This is primarily useful to ensure reproducible -+builds of the same output file given the same souce and Pod::Man version, -+even when file timestamps may not be consistent. -+ -+=back -+ - =head1 BUGS - - Encoding handling assumes that PerlIO is available and does not work -diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t -index 3cce9f5..c610dd9 100644 ---- a/cpan/podlators/t/devise-date.t -+++ b/cpan/podlators/t/devise-date.t -@@ -1,15 +1,28 @@ --#!/usr/bin/perl -w -- --# In order for MakeMaker to build in the core, nothing can use --# Fcntl which includes POSIX. devise_date()'s use of strftime() --# was replaced. This tests that it's identical. -+#!/usr/bin/perl -+# -+# In order for MakeMaker to build in the core, nothing can use Fcntl which -+# includes POSIX. devise_date()'s use of strftime() was replaced. This tests -+# that it's identical. It also tests special handling of the POD_MAN_DATE -+# environment variable. - -+use 5.006; - use strict; -- --use Test::More tests => 1; -+use warnings; - - use Pod::Man; - use POSIX qw(strftime); - -+use Test::More tests => 2; -+ -+# Check that the results of device_date matches strftime. There is no input -+# file name, so this will use the current time. - my $parser = Pod::Man->new; --is $parser->devise_date, strftime("%Y-%m-%d", localtime); -+is( -+ $parser->devise_date, -+ strftime('%Y-%m-%d', localtime()), -+ 'devise_date matches strftime' -+); -+ -+# Set the override environment variable and ensure that it's honored. -+local $ENV{POD_MAN_DATE} = '2014-01-01'; -+is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE'); diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff deleted file mode 100644 index 9de29b86..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-empty-date.diff +++ /dev/null @@ -1,52 +0,0 @@ -From 183bb4af7ad862a2cf31d0dcb3dd45c100f76776 Mon Sep 17 00:00:00 2001 -From: Russ Allbery -Date: Wed, 15 Apr 2015 22:21:25 -0700 -Subject: Support an empty POD_MAN_DATE environment variable - -One may want to set this to an empty string. Handle that correctly. - -(backported to Perl 5.20.2 by Niko Tyni ) - -Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=e0e9fcb53e8fc954b2b1955385eea18c27f869af -Bug-Debian: https://bugs.debian.org/780259 -Patch-Name: fixes/podman-empty-date.diff -Upstream-Status: Pending ---- - cpan/podlators/lib/Pod/Man.pm | 2 +- - cpan/podlators/t/devise-date.t | 6 +++++- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm -index 365892e..8997a15 100644 ---- a/cpan/podlators/lib/Pod/Man.pm -+++ b/cpan/podlators/lib/Pod/Man.pm -@@ -894,7 +894,7 @@ sub devise_date { - my ($self) = @_; - - # If POD_MAN_DATE is set, always use it. -- if ($ENV{POD_MAN_DATE}) { -+ if (defined($ENV{POD_MAN_DATE})) { - return $ENV{POD_MAN_DATE}; - } - -diff --git a/cpan/podlators/t/devise-date.t b/cpan/podlators/t/devise-date.t -index 9da9d1b..27271d9 100644 ---- a/cpan/podlators/t/devise-date.t -+++ b/cpan/podlators/t/devise-date.t -@@ -12,7 +12,7 @@ use warnings; - use Pod::Man; - use POSIX qw(strftime); - --use Test::More tests => 2; -+use Test::More tests => 3; - - # Check that the results of device_date matches strftime. There is no input - # file name, so this will use the current time. -@@ -26,3 +26,7 @@ is( - # Set the override environment variable and ensure that it's honored. - local $ENV{POD_MAN_DATE} = '2014-01-01'; - is($parser->devise_date, '2014-01-01', 'devise_date honors POD_MAN_DATE'); -+ -+# Check that an empty environment variable is honored. -+local $ENV{POD_MAN_DATE} = q{}; -+is($parser->devise_date, q{}, 'devise_date honors empty POD_MAN_DATE'); diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff deleted file mode 100644 index d8858d8a..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-pipe.diff +++ /dev/null @@ -1,110 +0,0 @@ -From 7671d101baa75d7a79bfbd8c75c1595fbb3f53ba Mon Sep 17 00:00:00 2001 -From: Russ Allbery -Date: Sat, 7 Feb 2015 19:03:34 -0800 -Subject: Better errors for man pages from standard input - -[Pod::Man] Attempt to detect if the input came from a pipe and -therefore has a completely unhelpful (and nonreproducible) source file -name, and diagnose this as an error. Document that the name option -(--name to pod2man) is required when processing POD source from -standard input. (Debian Bug#777405) - -(backported to Perl 5.20.2 by Niko Tyni ) - -Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=d98872e46c93861b7aba14949e1258712087dc55 -Bug-Debian: https://bugs.debian.org/777405 -Patch-Name: fixes/podman-pipe.diff -Upstream-Status: Pending ---- - cpan/podlators/lib/Pod/Man.pm | 15 +++++++++++++++ - cpan/podlators/scripts/pod2man.PL | 4 ++++ - cpan/podlators/t/devise-title.t | 32 ++++++++++++++++++++++++++++++++ - 3 files changed, 51 insertions(+) - create mode 100755 cpan/podlators/t/devise-title.t - -diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm -index 8997a15..969eaff 100644 ---- a/cpan/podlators/lib/Pod/Man.pm -+++ b/cpan/podlators/lib/Pod/Man.pm -@@ -828,6 +828,17 @@ sub devise_title { - $section = 3 if (!$$self{section} && $name =~ /\.pm\z/i); - $name =~ s/\.p(od|[lm])\z//i; - -+ # If Pod::Parser gave us an IO::File reference as the source file name, -+ # convert that to the empty string as well. Then, if we don't have a -+ # valid name, emit a warning and convert it to STDIN. -+ if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) { -+ $name = ''; -+ } -+ if ($name eq '') { -+ $self->whine (1, 'No name given for document'); -+ $name = 'STDIN'; -+ } -+ - # If the section isn't 3, then the name defaults to just the basename of - # the file. Otherwise, assume we're dealing with a module. We want to - # figure out the full module name from the path to the file, but we don't -@@ -1705,6 +1716,10 @@ module path. If it is, a path like C<.../lib/Pod/Man.pm> is converted into - a name like C. This option, if given, overrides any automatic - determination of the name. - -+If generating a manual page from standard input, this option is required, -+since there's otherwise no way for Pod::Man to know what to use for the -+manual page name. -+ - =item nourls - - Normally, LZ<><> formatting codes with a URL but anchor text are formatted -diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/scripts/pod2man.PL -index 38695f8..43e35df 100644 ---- a/cpan/podlators/scripts/pod2man.PL -+++ b/cpan/podlators/scripts/pod2man.PL -@@ -236,6 +236,10 @@ Note that this option is probably not useful when converting multiple POD - files at once. The convention for Unix man pages for commands is for the - man page title to be in all-uppercase even if the command isn't. - -+When converting POD source from standard input, this option is required, -+since there's otherwise no way to know what to use as the name of the -+manual page. -+ - =item B<--nourls> - - Normally, LZ<><> formatting codes with a URL but anchor text are formatted -diff --git a/cpan/podlators/t/devise-title.t b/cpan/podlators/t/devise-title.t -new file mode 100755 -index 0000000..8639441 ---- /dev/null -+++ b/cpan/podlators/t/devise-title.t -@@ -0,0 +1,32 @@ -+#!/usr/bin/perl -+# -+# Tests for the automatic determination of the manual page title if not -+# specified via options to pod2man or the Pod::Man constructor. -+ -+use 5.006; -+use strict; -+use warnings; -+ -+use File::Spec; -+use IO::File; -+use Test::More tests => 3; -+ -+BEGIN { -+ use_ok('Pod::Man'); -+} -+ -+# Create a parser and set it up with an input source. There isn't a way to do -+# this in Pod::Simple without actually parsing the document, so send the -+# output to a string that we'll ignore. -+my $path = File::Spec->catdir('t', 'data', 'basic.pod'); -+my $handle = IO::File->new($path, 'r'); -+my $parser = Pod::Man->new(errors => 'pod'); -+my $output; -+$parser->output_string(\$output); -+$parser->parse_file($handle); -+ -+# Check the results of devise_title for this. We should get back STDIN, and -+# we should have reported an error. -+my ($name, $section) = $parser->devise_title; -+is($name, 'STDIN', 'devise_title uses STDIN for file handle input'); -+ok($parser->errors_seen, '...and errors were seen'); diff --git a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff b/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff deleted file mode 100644 index b6ae409a..00000000 --- a/external/poky/meta/recipes-devtools/perl/perl/debian/fixes/podman-utc-docs.diff +++ /dev/null @@ -1,87 +0,0 @@ -From 6198856b5323d6204094293f01b890472618f182 Mon Sep 17 00:00:00 2001 -From: Russ Allbery -Date: Wed, 15 Apr 2015 20:49:07 -0700 -Subject: Documentation and test suite updates for UTC fix - -Update the Pod::Man and pod2man documentation and the test suite -for the new UTC-based default page footer, and add a Changes -entry. - -(backported to Perl 5.20.2 by Niko Tyni ) - -Origin: upstream, http://git.eyrie.org/?p=perl/podlators.git;a=commitdiff;h=52db93bf80e4a06f8497e4ebade0506b6ee0e70d -Bug-Debian: https://bugs.debian.org/780259 -Patch-Name: fixes/podman-utc-docs.diff -Upstream-Status: Pending ---- - cpan/podlators/lib/Pod/Man.pm | 6 +++++- - cpan/podlators/scripts/pod2man.PL | 11 ++++++----- - cpan/podlators/t/devise-date.t | 2 +- - 3 files changed, 12 insertions(+), 7 deletions(-) - -diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm -index c3ba201..365892e 100644 ---- a/cpan/podlators/lib/Pod/Man.pm -+++ b/cpan/podlators/lib/Pod/Man.pm -@@ -910,6 +910,8 @@ sub devise_date { - - # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses - # this and it has to work in the core which can't load dynamic libraries. -+ # Use gmtime instead of localtime so that the generated man page does not -+ # depend on the local time zone setting and is more reproducible - my ($year, $month, $day) = (gmtime($time))[5,4,3]; - return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); - } -@@ -1656,7 +1658,9 @@ environment variable POD_MAN_DATE, if set, will be used. Failing that, - the modification date of the input file will be used, or the current time - if stat() can't find that file (which will be the case if the input is - from C). If obtained from the file modification date or the --current time, he date will be formatted as C. -+current time, the date will be formatted as C and will be based -+on UTC (so that the output will be reproducible regardless of local time -+zone). - - =item errors - -diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/scripts/pod2man.PL -index 6af3474..38695f8 100644 ---- a/cpan/podlators/scripts/pod2man.PL -+++ b/cpan/podlators/scripts/pod2man.PL -@@ -174,9 +174,10 @@ Contributed Perl Documentation", but also see B<--official> below. - - =item B<-d> I, B<--date>=I - --Set the left-hand footer string to this value. By default, the modification --date of the input file will be used, or the current date if input comes from --C. -+Set the left-hand footer string to this value. By default, the -+modification date of the input file will be used, or the current date if -+input comes from C, and will be based on UTC (so that the output -+will be reproducible regardless of local time zone). - - =item B<-errors>=I