From 4ed12e16f882008388c007c6e86be3ce038d8751 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 5 Jun 2020 18:00:41 -0500 Subject: poky: subtree update:a35bf0e5d3..b66b9f7548 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit backport: meson 0.54.2: backport upstream patch for boost libs Adrian Bunk (1): libubootenv: Remove the DEPENDS on mtd-utils Alex Kiernan (2): openssh: Upgrade 8.2p1 -> 8.3p1 systemd: upgrade v245.5 -> v245.6 Alexander Kanavin (68): btrfs-tools: upgrade 5.4.1 -> 5.6.1 build-compare: upgrade to latest revision ccache: upgrade 3.7.7 -> 3.7.9 createrepo-c: upgrade 0.15.7 -> 0.15.10 dpkg: upgrade 1.19.7 -> 1.20.0 librepo: upgrade 1.11.2 -> 1.11.3 python3-numpy: upgrade 1.18.3 -> 1.18.4 python3-cython: upgrade 0.29.16 -> 0.29.19 python3-gitdb: upgrade 4.0.4 -> 4.0.5 python3-mako: upgrade 1.1.1 -> 1.1.3 python3-pygments: upgrade 2.5.2 -> 2.6.1 python3-smmap: upgrade 2.0.5 -> 3.0.4 python3-subunit: upgrade 1.3.0 -> 1.4.0 python3-testtools: upgrade 2.3.0 -> 2.4.0 python3: upgrade 3.8.2 -> 3.8.3 strace: upgrade 5.5 -> 5.6 vala: upgrade 0.46.6 -> 0.48.6 cups: upgrade 2.3.1 -> 2.3.3 gawk: upgrade 5.0.1 -> 5.1.0 libsolv: upgrade 0.7.10 -> 0.7.14 man-pages: upgrade 5.05 -> 5.06 msmtp: upgrade 1.8.8 -> 1.8.10 stress-ng: upgrade 0.11.01 -> 0.11.12 stress-ng: mark as incompatible with musl sudo: upgrade 1.8.31 -> 1.9.0 adwaita-icon-theme: upgrade 3.34.3 -> 3.36.1 gtk+3: upgrade 3.24.14 -> 3.24.20 cogl-1.0: upgrade 1.22.4 -> 1.22.6 mesa: upgrade 20.0.2 -> 20.0.7 mesa: merge the .bb content into .inc piglit: upgrade to latest revision waffle: upgrade 1.6.0 -> 1.6.1 pixman: upgrade 0.38.4 -> 0.40.0 kmod: upgrade 26 -> 27 powertop: upgrade 2.10 -> 2.12 alsa-plugins: upgrade 1.2.1 -> 1.2.2 alsa-tools: upgrade 1.1.7 -> 1.2.2 alsa-utils: split the content into .inc alsa-topology/ucm-conf: update to 1.2.2 x264: upgrade to latest revision puzzles: upgrade to latest revision libcap: upgrade 2.33 -> 2.34 libical: upgrade 3.0.7 -> 3.0.8 libunwind: upgrade 1.3.1 -> 1.4.0 rng-tools: upgrade 6.9 -> 6.10 babeltrace: correct the git SRC_URI libexif: update to 0.6.22 ppp: update 2.4.7 -> 2.4.8 gettext: update 0.20.1 -> 0.20.2 ptest-runner: fix upstream version check automake: 1.16.1 -> 1.16.2 bison: 3.5.4 -> 3.6.2 cmake: update 3.16.5 -> 3.17.3 gnu-config: update to latest revision jquery: update to 3.5.1 json-c: update 0.13.1 - > 0.14 libmodulemd: update 2.9.2 -> 2.9.4 meson: upgrade 0.53.2 -> 0.54.2 shared-mime-info: fix upstream version check mpg123: fix upstream version check ethtool: upgrade 5.4 -> 5.6 libcpre2: update 10.34 -> 10.35 help2man-native: update to 1.47.15 apt: update to 1.8.2.1 asciidoc: bump PV to 8.6.10 pulseaudio: exclude pre-releases from version checks xinetd: switch to a maintained opensuse fork lz4: disable static library Andreas Müller (1): vte: Pack ${libexecdir}/vte-urlencode-cwd to vte-prompt Anuj Mittal (1): linux-yocto: bump genericx86 kernel version to v5.4.40 Bruce Ashfield (5): linux-yocto/5.4: update to v5.4.42 linux-yocto-rt/5.4: update to rt24 linux-yocto/5.4: temporarily revert IKHEADERS in standard kernels linux-yocto: gather reproducibility configs into a fragment linux-yocto/5.4: update to v5.4.43 Christian Eggers (2): librsvg: Extend for nativesdk tiff: Extend for nativesdk Hongxu Jia (1): rpm: fix rpm -Kv xxx.rpm failed if signature header is larger than 64KB Jacob Kroon (1): bitbake: doc: More explanation to tasks that recursively depend on themselves Jan Luebbe (1): classes/buildhistory: capture package config Jens Rehsack (2): initscripts/init-system-helpers: fix mountnfs.sh dependency init-system-helpers: avoid superfluous update-rc.d Joshua Watt (2): layer.conf: Bump OE-Core layer version wic: Add --offset argument for partitions Junling Zheng (3): buildstats.bbclass: Remove useless variables buildstats.bbclass: Do not recalculate build start time security_flags: Remove stack protector flag from LDFLAGS Kai Kang (1): bitbake: bitbake-user-manual-metadata.xml: fix a minor error Khem Raj (4): make-mod-scripts: Fix a rare build race condition go-1.14: Update to 1.14.3 minor release armv8/tunes: Set TUNE_PKGARCH_64 based on ARMPKGARCH ltp: Disable sigwaitinfo tests relying on undefined behavior Konrad Weihmann (8): qemurunner: fix ip fallback detection sysfsutils: rem leftover settings for libsysfs-dev debianutils: whitespace fixes libjpeg-turbo: whitespace fixes cairo: remove trailing whitespace gtk-doc: remove trailing whitespace libxt: fix whitespaces cogl: point to correct HOMEPAGE Lee Chee Yang (4): re2c: fix CVE-2020-11958 bind: fix CVE-2020-8616/7 glib-2.0: 2.64.2 -> 2.64.3 glib-networking: 2.64.2 -> 2.64.3 Marco Felsch (1): util-linux: alternatify rtcwake Mark Hatle (1): sstate.bbclass: When siginfo or sig files are missing, stop fetcher errors Martin Jansa (6): devtool: use -f and don't use --exclude-standard when adding files to workspace meta-selftest: add test of .gitignore in tarball lib/oe/patch: prevent applying patches without any subject lib/oe/patch: GitApplyTree: save 1 echo in commit-msg hook Revert "lib/oe/patch: fix handling of patches with no header" meta-selftest: add test for .patch file with long filename and without subject Mauro Queirós (3): bitbake: git.py: skip smudging if lfs=0 is set bitbake: git.py: LFS bitbake note should not be printed if need_lfs is not set. bitbake: git.py: Use the correct branch to check if the repository has LFS objects. Ming Liu (2): u-boot.inc: fix some inconsistent coding style u-boot: introduce UBOOT_INITIAL_ENV Paul Barker (5): archiver: Fix test case for srpm archiver mode oe-selftest: Allow overriding the build directory used for tests oe-selftest: Support verbose log output oe-selftest: Recursively patch test case paths bitbake: fetch2: Add the ability to list expanded URL data Peter Kjellerstedt (1): cairo: Do not try to remove nonexistent directories Pierre-Jean Texier (1): diffoscope: upgrade 144 -> 146 Ralph Siemsen (1): cve-check: include epoch in product version output Richard Purdie (7): lib/classextend: Drop unneeded comment poky.ent: Update UBUNTU_HOST_PACKAGES_ESSENTIAL to match recent changes maintainers: Update Ross' email address logrotate: Drop obsolete setting/comment oeqa/targetcontrol: Rework exception handling to avoid warnings patchelf: Add patch to address corrupt shared library issue poky.ent: Update XXX_HOST_PACKAGES_ESSENTIAL to include mesa for other distros Robert P. J. Day (1): bitbake.conf: Remove unused DEPLOY_DIR_TOOLS variable Tim Orling (1): bitbake: toaster-requirements.txt: require Django 2.2 Trevor Gamblin (1): qemuarm: check serial consoles vs /proc/consoles Wang Mingyu (13): less: upgrade 551 -> 562 liburcu: upgrade 0.12.0 -> 0.12.1 alsa-lib: upgrade 1.2.1.2 -> 1.2.2 alsa-utils: upgrade 1.2.1 -> 1.2.2 python3-six: upgrade 1.14.0 -> 1.15.0 util-linux: upgrade 2.35.1 -> 2.35.2 xf86-input-libinput: upgrade 0.29.0 -> 0.30.0 ca-certificates: upgrade 20190110 -> 20200601 dbus: upgrade 1.12.16 -> 1.12.18 libyaml: upgrade 0.2.4 -> 0.2.5 sqlite: upgrade 3.31.1 -> 3.32.1 valgrind: upgrade 3.15.0 -> 3.16.0 dbus-test: upgrade 1.12.16 -> 1.12.18 akuster (2): poky.ent: Update OPENSUSE_HOST_PACKAGES_ESSENTIAL to include mesa-dri-devel yocto-docs: Add SPDX headers in scripts and Makefile hongxu (1): core-image-minimal-initramfs: keep restriction with initramfs-module-install zangrc (3): python3-pycairo:upgrade 1.19.0 -> 1.19.1 python3-pygobject:upgrade 3.34.0 -> 3.36.1 python3-setuptools:upgrade 45.2.0 -> 47.1.1 zhengruoqin (2): gdb: upgrade 9.1 -> 9.2 libyaml: upgrade 0.2.2 -> 0.2.4 Signed-off-by: Andrew Geissler Signed-off-by: Patrick Williams Change-Id: I60e616be0c30904f8cfc947089ed2e4f5e84bc60 --- .../python3/0001-Don-t-search-system-for-headers-libraries.patch | 8 +++----- ...001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch | 2 +- .../python3/12-distutils-prefix-is-inside-staging-area.patch | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) (limited to 'poky/meta/recipes-devtools/python/python3') diff --git a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch index acf8e1e9b..3e471b9a4 100644 --- a/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch +++ b/poky/meta/recipes-devtools/python/python3/0001-Don-t-search-system-for-headers-libraries.patch @@ -1,16 +1,17 @@ -From 85e8f86ad2b7dec0848cd55b8e810a5e2722b20a Mon Sep 17 00:00:00 2001 +From b880e78bf4a1852e260188e6df3ec6034403d2fc Mon Sep 17 00:00:00 2001 From: Jeremy Puhlman Date: Wed, 4 Mar 2020 00:06:42 +0000 Subject: [PATCH] Don't search system for headers/libraries Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Jeremy Puhlman + --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py -index 9da1b3a..59782c0 100644 +index 7208cd0..c0bd0ad 100644 --- a/setup.py +++ b/setup.py @@ -674,8 +674,8 @@ class PyBuildExt(build_ext): @@ -24,6 +25,3 @@ index 9da1b3a..59782c0 100644 # lib_dirs and inc_dirs are used to search for files; # if a file is found in one of those directories, it can # be assumed that no additional -I,-L directives are needed. --- -2.24.1 - diff --git a/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch b/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch index e7af3c6f5..2b68c0acc 100644 --- a/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch +++ b/poky/meta/recipes-devtools/python/python3/0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch @@ -1,4 +1,4 @@ -From 7ada9c749f6beb51c13a3debc850755e911548a6 Mon Sep 17 00:00:00 2001 +From bc59d49efff41051034d7fbf5d0c8505e4c3134b Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 31 Jan 2019 16:46:30 +0100 Subject: [PATCH] distutils/sysconfig: append diff --git a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch index 61ac3e71d..820fb98ed 100644 --- a/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch +++ b/poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch @@ -1,4 +1,4 @@ -From 251347fc970a397a9cd63ed3f87c5e6c52e15187 Mon Sep 17 00:00:00 2001 +From 064187668fcbefdd39a8cde372bf651124c3e578 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 14 May 2013 15:00:26 -0700 Subject: [PATCH] python3: Add target and native recipes -- cgit v1.2.3 From b7d2861976669d4f6decc55762ba83fe0371d6d5 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 24 Jul 2020 16:15:54 -0500 Subject: poky: subtree update:968fcf4989..23deb29c1b Arthur She (1): igt-gpu-tools: Add PACKAGECONFIG for Chamelium support Bruce Ashfield (4): linux-yocto/5.4: update to v5.4.51 linux-yocto-rt/5.4: fix mmdrop stress test issues kernel-yocto: account for extracted defconfig in elements check kernel-devsrc: fix on-target module build for v5.8+ Changqing Li (2): dpkg: change SRC_URI to take dpkg from git gtk-immodules-cache.bbclass: fix post install scriptlet error Charlie Davies (1): u-boot: fix condition to allow use of *.cfg Chen Qi (1): rpm: fix nativesdk's default var location Christian Eggers (2): avahi: Fix typo in recipe util-linux: Set license for library sub packages Daniel Ammann (1): image.bbclass: improve wording when image size exceeds the specified limit Dmitry Baryshkov (1): gcc-10.1: add fix for PR 96130 Douglas (2): nativesdk: clear MACHINE_FEATURES nativesdk: Set the CXXFLAGS to the BUILDSDK_CXXFLAGS He Zhe (1): cryptodev-module: Backport a patch to fix build failure with kernel v5.8 Hongxu Jia (1): e2fsprogs: fix up check for hardlinks always false if inode > 0xFFFFFFFF Jens Rehsack (3): subversion: extend for nativesdk serf: extend for nativesdk kmod: add packageconfig for xz and ssl Joshua Watt (8): virtual/libgbm is the provider of gbm.pc diffoscope: upgrade 150 -> 151 python3-pycryptodomex: upgrade 3.9.7 -> 3.9.8 python3-pycryptodome: upgrade 3.9.7 -> 3.9.8 classes/reproducible: Move to library code lib/oe/reproducible: Fix error when no git HEAD classes/cmake: Fix host detection classes/package: Use HOST_OS for runtime dependencies Kamil Dziezyk (1): qemu: fix for virtfs configuration error in qemu 5.0.0 Kevin Hao (3): wic/filemap: Drop the unused block_is_unmapped() wic/filemap: Drop the unused get_unmapped_ranges() wic/filemap: Fall back to standard copy when no way to get the block map Khem Raj (4): go: Disbale CGO for riscv64 go-dep: Fix build on riscv64 musl: Update to latest tip site: Make sys_siglist default to no Konrad Weihmann (2): bitbake: pyshyacc: allow double COMMA statements ptest: append to FILES Kurt Kiefer (1): linux-firmware: add ibt-20 package Lee Chee Yang (1): bison: fix Argument list too long error Mingli Yu (1): python3: define a profile directory path Naveen Saini (3): libva: upgrade 2.7.1 -> 2.8.0 libva-initial: upgrade 2.7.1 -> 2.8.0 libva-utils: upgrade 2.7.1 -> 2.8.0 Oleksandr (1): expat: Added ptest Pierre-Jean Texier (1): u-boot: upgrade 2020.04 -> 2020.07 Rasmus Villemoes (1): cml1: Move find_cfgs() helper to cml1.bbclass Ricardo Salveti (1): sudo: set with-rundir to /run/sudo Richard Purdie (34): bitbake: fetch2: Change git fetcher not to destroy old references oeqa/selftest/sstatetests: Avoid polluting DL_DIR bitbake: server/process: Fix a rare lockfile race qemurunner: Ensure pid location is deterministic qemurunner: Add extra debug info when qemu fails to start bitbake: server/process: Ensure UI-less servers don't sit in infinite loops oeqa/utils/qemurunner: Fix missing pid file tracebacks mpfr: upgrade 4.0.2 -> 4.1.0 libuv: upgrade 1.38.0 -> 1.38.1 btrfs-tools: upgrade 5.6.1 -> 5.7 init-system-helpers: upgrade 1.57 -> 1.58 createrepo-c: upgrade 0.15.11 -> 0.16.0 mtd-utils: upgrade 2.1.1 -> 2.1.2 dpkg: upgrade 1.20.0 -> 1.20.5 python3-cython: upgrade 0.29.20 -> 0.29.21 python3-git: upgrade 3.1.3 -> 3.1.7 asciidoc: upgrade 9.0.0 -> 9.0.1 libnsl2: upgrade 1.2.0 -> 1.3.0 rpcsvc-proto: upgrade 1.4.1 -> 1.4.2 stress-ng: upgrade 0.11.14 -> 0.11.15 epiphany: upgrade 3.36.2 -> 3.36.3 ffmpeg: upgrade 4.3 -> 4.3.1 gnupg: upgrade 2.2.20 -> 2.2.21 mpg123: upgrade 1.26.1 -> 1.26.2 libevent: upgrade 2.1.11 -> 2.1.12 webkitgtk: upgrade 2.28.2 -> 2.28.3 libgcrypt: upgrade 1.8.5 -> 1.8.6 bitbake: server/process: Fix note reference -> info bitbake: cooker: Fix unmatched files handling leading to misleading warnings bitbake: build: Allow deltask to take multiple tasknames pseudo: Update to add OFC fcntl lock updates oeqa/qemurunner: Add priority/nice information for running processes bitbake: cooker: Improve multiconfig configuration error reporting bitbake: cooker: Handle multiconfig name mappings correctly Robert Yang (1): openssl: openssl-bin requires openssl-conf to run Ross Burton (9): insane: consolidate skipping of temporary do_package files perf: add PACKAGECONFIG for CoreSight support autotools: don't special-case help2man-native for dependencies flex: fix build with autoconf 2.70 nasm: fix build with autoconf 2.70 init-ifupdown: always make machine-specific insane: improve arch test messages startup-notification: add time_t type mismatch patch from upstream gcc: mitigate the Straight-line Speculation attack Sakib Sajal (5): qemu: fix CVE-2020-13362 qemu: fix CVE-2020-13659 qemu: fix CVE-2020-13800 qemu: fix CVE-2020-13791 busybox: make hwclock compatible with glibc 2.31 Tanu Kaskinen (2): alsa-lib: upgrade 1.2.3.1 -> 1.2.3.2 pulseaudio: improve the Thumb frame pointer fix Taras Kondratiuk (1): nfs-utils: use rpcgen tool from HOSTTOOLS_DIR Tim Orling (2): lib/oe/recipeutils.py: add AUTHOR; BBCLASSEXTEND scripts/lib/recipetool/create.py: fix regex strings Wang Mingyu (4): dbus: upgrade 1.12.18 -> 1.12.20 fribidi: upgrade 1.0.9 -> 1.0.10 glib-2.0: upgrade 2.64.3 -> 2.64.4 libvorbis: upgrade 1.3.6 -> 1.3.7 Yi Zhao (1): bind: upgrade 9.11.19 -> 9.11.21 Yongxin Liu (2): linux-firmware: fix the wrong file path for ibt-misc linux-firmware: move ibt-misc to the end of ibt packages akuster (3): cve-check.bbclass: always save cve report ref-system-requirements: update supported hosts lists glibc: whitelist CVE-2010-10029 zhengruoqin (1): gnutls: Fix krb5 code license to GPLv2.1+ to match the LICENSE file. Signed-off-by: Andrew Geissler Change-Id: Iae9b13b7fe09bb3c0ab953a063793c95e8b17468 --- poky/bitbake/lib/bb/command.py | 2 +- poky/bitbake/lib/bb/cooker.py | 89 +- poky/bitbake/lib/bb/fetch2/git.py | 2 +- poky/bitbake/lib/bb/parse/ast.py | 10 +- poky/bitbake/lib/bb/parse/parse_py/BBHandler.py | 5 +- poky/bitbake/lib/bb/pysh/pyshyacc.py | 1 + poky/bitbake/lib/bb/server/process.py | 23 +- poky/bitbake/lib/bb/tests/cooker.py | 2 +- poky/bitbake/lib/bb/tests/parse.py | 6 +- .../dev-manual/dev-manual-common-tasks.xml | 2 +- .../ref-manual/ref-system-requirements.xml | 7 +- poky/meta/classes/autotools.bbclass | 2 +- poky/meta/classes/cmake.bbclass | 19 +- poky/meta/classes/cml1.bbclass | 10 + poky/meta/classes/cve-check.bbclass | 32 + poky/meta/classes/gtk-immodules-cache.bbclass | 1 + poky/meta/classes/image.bbclass | 4 +- poky/meta/classes/insane.bbclass | 25 +- poky/meta/classes/kernel-yocto.bbclass | 2 +- poky/meta/classes/nativesdk.bbclass | 3 +- poky/meta/classes/package.bbclass | 10 +- poky/meta/classes/ptest.bbclass | 2 +- poky/meta/classes/reproducible_build.bbclass | 90 +- poky/meta/lib/oe/recipeutils.py | 2 +- poky/meta/lib/oe/reproducible.py | 104 + poky/meta/lib/oeqa/selftest/cases/sstatetests.py | 5 +- poky/meta/lib/oeqa/utils/qemurunner.py | 17 +- poky/meta/lib/oeqa/utils/qemutinyrunner.py | 2 +- poky/meta/recipes-bsp/u-boot/u-boot-common.inc | 2 +- .../recipes-bsp/u-boot/u-boot-tools_2020.04.bb | 2 - .../recipes-bsp/u-boot/u-boot-tools_2020.07.bb | 2 + poky/meta/recipes-bsp/u-boot/u-boot.inc | 12 +- poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb | 4 - poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb | 4 + poky/meta/recipes-connectivity/avahi/avahi_0.8.bb | 2 +- .../meta/recipes-connectivity/bind/bind_9.11.19.bb | 140 - .../meta/recipes-connectivity/bind/bind_9.11.21.bb | 140 + .../recipes-connectivity/libuv/libuv_1.38.0.bb | 19 - .../recipes-connectivity/libuv/libuv_1.38.1.bb | 19 + .../nfs-utils/nfs-utils_2.5.1.bb | 1 + .../recipes-connectivity/openssl/openssl_1.1.1g.bb | 2 + poky/meta/recipes-core/busybox/busybox.inc | 10 - .../0001-hwclock-make-glibc-2.31-compatible.patch | 83 + poky/meta/recipes-core/busybox/busybox_1.32.0.bb | 1 + poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb | 64 - poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb | 64 + poky/meta/recipes-core/dbus/dbus.inc | 4 +- poky/meta/recipes-core/dbus/dbus_1.12.18.bb | 147 - poky/meta/recipes-core/dbus/dbus_1.12.20.bb | 147 + .../expat/0001-Add-output-of-tests-result.patch | 83 + poky/meta/recipes-core/expat/expat/run-ptest | 23 + poky/meta/recipes-core/expat/expat_2.2.9.bb | 14 +- poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb | 50 - poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb | 50 + poky/meta/recipes-core/glibc/glibc_2.31.bb | 2 + .../init-ifupdown/init-ifupdown_1.0.bb | 2 +- .../initscripts/init-system-helpers_1.57.bb | 41 - .../initscripts/init-system-helpers_1.58.bb | 41 + poky/meta/recipes-core/musl/musl.inc | 2 +- poky/meta/recipes-core/musl/musl_git.bb | 2 +- poky/meta/recipes-core/util-linux/util-linux.inc | 10 +- poky/meta/recipes-devtools/bison/bison_3.6.4.bb | 2 +- .../btrfs-tools/btrfs-tools_5.6.1.bb | 52 - .../btrfs-tools/btrfs-tools_5.7.bb | 52 + .../recipes-devtools/cmake/cmake-native_3.17.3.bb | 3 +- .../createrepo-c/createrepo-c_0.15.11.bb | 34 - .../createrepo-c/createrepo-c_0.16.0.bb | 34 + poky/meta/recipes-devtools/dpkg/dpkg.inc | 14 +- ...01-build.c-ignore-return-of-1-from-tar-cf.patch | 9 +- poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb | 22 - poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb | 23 + ...k-for-hardlinks-always-false-if-inode-0xF.patch | 55 + .../recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb | 1 + .../recipes-devtools/flex/flex/check-funcs.patch | 79 + poky/meta/recipes-devtools/flex/flex_2.6.4.bb | 1 + poky/meta/recipes-devtools/gcc/gcc-10.1.inc | 4 + ...-Straight-Line-Speculation-SLS-mitigation.patch | 202 + ...roduce-SLS-mitigation-for-RET-and-BR-inst.patch | 607 + ...-aarch64-Mitigate-SLS-for-BLR-instruction.patch | 658 + .../recipes-devtools/gcc/gcc-10.1/pr96130.patch | 106 + .../go-dep/0001-Update-sys-module-to-latest.patch | 145574 ++++++++++++++++++ poky/meta/recipes-devtools/go/go-dep_0.5.4.bb | 1 + poky/meta/recipes-devtools/go/go-runtime_1.14.bb | 1 + poky/meta/recipes-devtools/go/go_1.14.bb | 2 +- ...1-mtd-utils-Fix-return-value-of-ubiformat.patch | 62 - poky/meta/recipes-devtools/mtd/mtd-utils_git.bb | 7 +- ...headers.m4-for-development-versions-of-au.patch | 28 + poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb | 1 + poky/meta/recipes-devtools/pseudo/pseudo_git.bb | 2 +- .../meta/recipes-devtools/python/python-cython.inc | 2 +- .../python/python3-cython_0.29.20.bb | 18 - .../python/python3-cython_0.29.21.bb | 18 + .../recipes-devtools/python/python3-git_3.1.3.bb | 32 - .../recipes-devtools/python/python3-git_3.1.7.bb | 32 + .../python/python3-pycryptodome_3.9.7.bb | 5 - .../python/python3-pycryptodome_3.9.8.bb | 5 + .../python/python3-pycryptodomex_3.9.7.bb | 9 - .../python/python3-pycryptodomex_3.9.8.bb | 9 + ...nfigure.ac-define-a-path-for-profile-data.patch | 42 + poky/meta/recipes-devtools/python/python3_3.8.3.bb | 1 + poky/meta/recipes-devtools/qemu/qemu.inc | 6 +- .../qemu/qemu/CVE-2020-13362.patch | 55 + .../qemu/qemu/CVE-2020-13659.patch | 58 + .../qemu/qemu/CVE-2020-13791.patch | 53 + .../qemu/qemu/CVE-2020-13800.patch | 63 + poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb | 2 +- .../subversion/subversion_1.14.0.bb | 2 +- .../recipes-extended/asciidoc/asciidoc_9.0.0.bb | 31 - .../recipes-extended/asciidoc/asciidoc_9.0.1.bb | 31 + poky/meta/recipes-extended/libnsl/libnsl2_git.bb | 4 +- .../recipes-extended/rpcsvc-proto/rpcsvc-proto.bb | 4 +- .../stress-ng/stress-ng_0.11.14.bb | 26 - .../stress-ng/stress-ng_0.11.15.bb | 26 + poky/meta/recipes-extended/sudo/sudo_1.9.1.bb | 3 +- .../meta/recipes-gnome/epiphany/epiphany_3.36.2.bb | 20 - .../meta/recipes-gnome/epiphany/epiphany_3.36.3.bb | 20 + .../igt-gpu-tools/igt-gpu-tools_git.bb | 2 + .../recipes-graphics/libva/libva-initial_2.7.1.bb | 8 - .../recipes-graphics/libva/libva-initial_2.8.0.bb | 8 + .../recipes-graphics/libva/libva-utils_2.7.1.bb | 32 - .../recipes-graphics/libva/libva-utils_2.8.0.bb | 32 + poky/meta/recipes-graphics/libva/libva_2.7.1.bb | 23 - poky/meta/recipes-graphics/libva/libva_2.8.0.bb | 23 + .../startup-notification-0.12/time_t.patch | 108 + .../startup-notification_0.12.bb | 1 + .../cryptodev/cryptodev-module_1.10.bb | 1 + .../files/0001-Fix-build-for-Linux-5.8-rc1.patch | 49 + poky/meta/recipes-kernel/kmod/kmod.inc | 2 + .../linux-firmware/linux-firmware_20200619.bb | 9 +- poky/meta/recipes-kernel/linux/kernel-devsrc.bb | 16 + .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 6 +- .../recipes-kernel/linux/linux-yocto-tiny_5.4.bb | 8 +- poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb | 22 +- poky/meta/recipes-kernel/perf/perf.bb | 2 + .../recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb | 42 - .../recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb | 42 + .../meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb | 160 + poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb | 160 - .../libvorbis/libvorbis/CVE-2017-14160.patch | 34 - .../libvorbis/libvorbis/CVE-2018-10392.patch | 34 - .../libvorbis/libvorbis_1.3.6.bb | 21 - .../libvorbis/libvorbis_1.3.7.bb | 19 + .../recipes-multimedia/mpg123/mpg123_1.26.1.bb | 51 - .../recipes-multimedia/mpg123/mpg123_1.26.2.bb | 51 + .../recipes-multimedia/pulseaudio/pulseaudio.inc | 8 - ...remap_neon-use-register-r12-instead-of-r7.patch | 48 + .../pulseaudio/pulseaudio_13.0.bb | 1 + poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb | 132 - poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb | 131 + .../recipes-support/diffoscope/diffoscope_150.bb | 17 - .../recipes-support/diffoscope/diffoscope_151.bb | 17 + .../meta/recipes-support/fribidi/fribidi_1.0.10.bb | 17 + poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb | 17 - ...c-use-a-custom-value-for-the-location-of-.patch | 6 +- .../recipes-support/gnupg/gnupg/relocate.patch | 20 +- poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb | 81 - poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb | 80 + ...license-to-GPLv2.1-to-keep-with-LICENSE-f.patch | 90 + poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb | 1 + .../recipes-support/libevent/libevent_2.1.11.bb | 57 - .../recipes-support/libevent/libevent_2.1.12.bb | 56 + .../recipes-support/libgcrypt/libgcrypt_1.8.5.bb | 58 - .../recipes-support/libgcrypt/libgcrypt_1.8.6.bb | 57 + poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb | 19 - poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb | 18 + poky/meta/recipes-support/serf/serf_1.3.9.bb | 2 +- poky/meta/site/common | 7 + poky/meta/site/common-glibc | 3 - poky/meta/site/common-musl | 5 - poky/scripts/lib/recipetool/create.py | 10 +- poky/scripts/lib/wic/filemap.py | 75 +- 171 files changed, 149980 insertions(+), 1900 deletions(-) create mode 100644 poky/meta/lib/oe/reproducible.py delete mode 100644 poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb create mode 100644 poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb delete mode 100644 poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb create mode 100644 poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb delete mode 100644 poky/meta/recipes-connectivity/bind/bind_9.11.19.bb create mode 100644 poky/meta/recipes-connectivity/bind/bind_9.11.21.bb delete mode 100644 poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb create mode 100644 poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb create mode 100644 poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch delete mode 100644 poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb create mode 100644 poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb delete mode 100644 poky/meta/recipes-core/dbus/dbus_1.12.18.bb create mode 100644 poky/meta/recipes-core/dbus/dbus_1.12.20.bb create mode 100644 poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch create mode 100644 poky/meta/recipes-core/expat/expat/run-ptest delete mode 100644 poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb create mode 100644 poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb delete mode 100644 poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb create mode 100644 poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb delete mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb create mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb delete mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb create mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb delete mode 100644 poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb create mode 100644 poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb create mode 100644 poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch create mode 100644 poky/meta/recipes-devtools/flex/flex/check-funcs.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch create mode 100644 poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch delete mode 100644 poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch create mode 100644 poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch delete mode 100644 poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb create mode 100644 poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-git_3.1.3.bb create mode 100644 poky/meta/recipes-devtools/python/python3-git_3.1.7.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb create mode 100644 poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb create mode 100644 poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb create mode 100644 poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch create mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch delete mode 100644 poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb create mode 100644 poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb delete mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb create mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb delete mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb create mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb delete mode 100644 poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb create mode 100644 poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb delete mode 100644 poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb create mode 100644 poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb delete mode 100644 poky/meta/recipes-graphics/libva/libva_2.7.1.bb create mode 100644 poky/meta/recipes-graphics/libva/libva_2.8.0.bb create mode 100644 poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch create mode 100644 poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb create mode 100644 poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb delete mode 100644 poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb delete mode 100644 poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch delete mode 100644 poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch delete mode 100644 poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb create mode 100644 poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb delete mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb create mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb create mode 100644 poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch delete mode 100644 poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb create mode 100644 poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb delete mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_150.bb create mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_151.bb create mode 100644 poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb delete mode 100644 poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb delete mode 100644 poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb create mode 100644 poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb create mode 100644 poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch delete mode 100644 poky/meta/recipes-support/libevent/libevent_2.1.11.bb create mode 100644 poky/meta/recipes-support/libevent/libevent_2.1.12.bb delete mode 100644 poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb create mode 100644 poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb delete mode 100644 poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb create mode 100644 poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb (limited to 'poky/meta/recipes-devtools/python/python3') diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py index 3902ccca7..805ed9216 100644 --- a/poky/bitbake/lib/bb/command.py +++ b/poky/bitbake/lib/bb/command.py @@ -396,7 +396,7 @@ class CommandsSync: def sortkey(x): vfn, _ = x realfn, _, mc = bb.cache.virtualfn2realfn(vfn) - return (-command.cooker.collections[mc].calc_bbfile_priority(realfn), vfn) + return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn) skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey)) return list(skipdict.items()) diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index effd02442..f6abc6348 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -626,6 +626,7 @@ class BBCooker: current = 0 runlist = [] for k in fulltargetlist: + origk = k mc = "" if k.startswith("mc:"): mc = k.split(":")[1] @@ -635,6 +636,10 @@ class BBCooker: k2 = k.split(":do_") k = k2[0] ktask = k2[1] + + if mc not in self.multiconfigs: + bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named %s" % (origk, mc)) + taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k) current += 1 if not ktask.startswith("do_"): @@ -670,7 +675,7 @@ class BBCooker: l = k.split(':') depmc = l[2] if depmc not in self.multiconfigs: - bb.fatal("Multiconfig dependency %s depends on nonexistent mc configuration %s" % (k,depmc)) + bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named configuration %s" % (k,depmc)) else: logger.debug(1, "Adding providers for multiconfig dependency %s" % l[3]) taskdata[depmc].add_provider(localdata[depmc], self.recipecaches[depmc], l[3]) @@ -1588,7 +1593,7 @@ class BBCooker: self.show_appends_with_no_recipes() self.handlePrefProviders() for mc in self.multiconfigs: - self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.data) + self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.parser.mcfilelist[mc], self.data) self.state = state.running # Send an event listing all stamps reachable after parsing @@ -1609,7 +1614,7 @@ class BBCooker: raise NothingToBuild ignore = (self.data.getVar("ASSUME_PROVIDED") or "").split() - for pkg in pkgs_to_build: + for pkg in pkgs_to_build.copy(): if pkg in ignore: parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg) if pkg.startswith("multiconfig:"): @@ -1704,14 +1709,11 @@ class CookerCollectFiles(object): # the shortest. This allows nested layers to be properly evaluated. self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True) - def calc_bbfile_priority( self, filename, matched = None ): + def calc_bbfile_priority(self, filename): for _, _, regex, pri in self.bbfile_config_priorities: if regex.match(filename): - if matched is not None: - if not regex in matched: - matched.add(regex) - return pri - return 0 + return pri, regex + return 0, None def get_bbfiles(self): """Get list of default .bb files by reading out the current directory""" @@ -1744,7 +1746,7 @@ class CookerCollectFiles(object): config.setVar("BBFILES", " ".join(files)) # Sort files by priority - files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) ) + files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] ) if not len(files): files = self.get_bbfiles() @@ -1866,39 +1868,62 @@ class CookerCollectFiles(object): filelist.append(filename) return tuple(filelist) - def collection_priorities(self, pkgfns, d): + def collection_priorities(self, pkgfns, fns, d): + # Return the priorities of the entries in pkgfns + # Also check that all the regexes in self.bbfile_config_priorities are used + # (but to do that we need to ensure skipped recipes aren't counted, nor + # collections in BBFILE_PATTERN_IGNORE_EMPTY) priorities = {} + seen = set() + matched = set() + + matched_regex = set() + unmatched_regex = set() + for _, _, regex, _ in self.bbfile_config_priorities: + unmatched_regex.add(regex) # Calculate priorities for each file - matched = set() for p in pkgfns: realfn, cls, mc = bb.cache.virtualfn2realfn(p) - priorities[p] = self.calc_bbfile_priority(realfn, matched) - - unmatched = set() - for _, _, regex, pri in self.bbfile_config_priorities: - if not regex in matched: - unmatched.add(regex) - - # Don't show the warning if the BBFILE_PATTERN did match .bbappend files - def find_bbappend_match(regex): + priorities[p], regex = self.calc_bbfile_priority(realfn) + if regex in unmatched_regex: + matched_regex.add(regex) + unmatched_regex.remove(regex) + seen.add(realfn) + if regex: + matched.add(realfn) + + if unmatched_regex: + # Account for bbappend files for b in self.bbappends: (bbfile, append) = b - if regex.match(append): - # If the bbappend is matched by already "matched set", return False - for matched_regex in matched: - if matched_regex.match(append): - return False - return True - return False + seen.add(append) + + # Account for skipped recipes + seen.update(fns) + + seen.difference_update(matched) - for unmatch in unmatched.copy(): - if find_bbappend_match(unmatch): - unmatched.remove(unmatch) + def already_matched(fn): + for regex in matched_regex: + if regex.match(fn): + return True + return False + + for unmatch in unmatched_regex.copy(): + for fn in seen: + if unmatch.match(fn): + # If the bbappend or file was already matched by another regex, skip it + # e.g. for a layer within a layer, the outer regex could match, the inner + # regex may match nothing and we should warn about that + if already_matched(fn): + continue + unmatched_regex.remove(unmatch) + break for collection, pattern, regex, _ in self.bbfile_config_priorities: - if regex in unmatched: + if regex in unmatched_regex: if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection) != '1': collectlog.warning("No bb files in %s matched BBFILE_PATTERN_%s '%s'" % (self.mc if self.mc else 'default', collection, pattern)) diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py index dbf871567..644ba9238 100644 --- a/poky/bitbake/lib/bb/fetch2/git.py +++ b/poky/bitbake/lib/bb/fetch2/git.py @@ -355,7 +355,7 @@ class Git(FetchMethod): runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir) - fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl) + fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, repourl) if ud.proto.lower() != 'file': bb.fetch2.check_network_access(d, fetch_cmd, ud.url) progresshandler = GitProgressHandler(d) diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py index 785aa974e..0714296af 100644 --- a/poky/bitbake/lib/bb/parse/ast.py +++ b/poky/bitbake/lib/bb/parse/ast.py @@ -244,12 +244,14 @@ class AddTaskNode(AstNode): bb.build.addtask(self.func, self.before, self.after, data) class DelTaskNode(AstNode): - def __init__(self, filename, lineno, func): + def __init__(self, filename, lineno, tasks): AstNode.__init__(self, filename, lineno) - self.func = func + self.tasks = tasks def eval(self, data): - bb.build.deltask(self.func, data) + tasks = data.expand(self.tasks).split() + for task in tasks: + bb.build.deltask(task, data) class BBHandlerNode(AstNode): def __init__(self, filename, lineno, fns): @@ -305,7 +307,7 @@ def handleAddTask(statements, filename, lineno, m): statements.append(AddTaskNode(filename, lineno, func, before, after)) def handleDelTask(statements, filename, lineno, m): - func = m.group("func") + func = m.group(1) if func is None: return diff --git a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py index 6e216effb..215f940b6 100644 --- a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py @@ -26,7 +26,7 @@ __func_start_regexp__ = re.compile(r"(((?Ppython)|(?Pfakeroot))\s*)*( __inherit_regexp__ = re.compile(r"inherit\s+(.+)" ) __export_func_regexp__ = re.compile(r"EXPORT_FUNCTIONS\s+(.+)" ) __addtask_regexp__ = re.compile(r"addtask\s+(?P\w+)\s*((before\s*(?P((.*(?=after))|(.*))))|(after\s*(?P((.*(?=before))|(.*)))))*") -__deltask_regexp__ = re.compile(r"deltask\s+(?P\w+)(?P.*)") +__deltask_regexp__ = re.compile(r"deltask\s+(.+)") __addhandler_regexp__ = re.compile(r"addhandler\s+(.+)" ) __def_regexp__ = re.compile(r"def\s+(\w+).*:" ) __python_func_regexp__ = re.compile(r"(\s+.*)|(^$)|(^#)" ) @@ -238,9 +238,6 @@ def feeder(lineno, s, fn, root, statements, eof=False): m = __deltask_regexp__.match(s) if m: - # Check and warn "for deltask task1 task2" - if m.group('ignores'): - logger.warning('deltask ignored: "%s"' % m.group('ignores')) ast.handleDelTask(statements, fn, lineno, m) return diff --git a/poky/bitbake/lib/bb/pysh/pyshyacc.py b/poky/bitbake/lib/bb/pysh/pyshyacc.py index de565dc9a..924860a6f 100644 --- a/poky/bitbake/lib/bb/pysh/pyshyacc.py +++ b/poky/bitbake/lib/bb/pysh/pyshyacc.py @@ -570,6 +570,7 @@ def p_linebreak(p): def p_separator_op(p): """separator_op : COMMA + | COMMA COMMA | AMP""" p[0] = p[1] diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py index 83385baf6..9ec79f5b6 100644 --- a/poky/bitbake/lib/bb/server/process.py +++ b/poky/bitbake/lib/bb/server/process.py @@ -48,7 +48,7 @@ class ProcessServer(multiprocessing.Process): self.event_handle = None self.haveui = False - self.lastui = False + self.maxuiwait = 30 self.xmlrpc = False self._idlefuns = {} @@ -155,6 +155,7 @@ class ProcessServer(multiprocessing.Process): print("No timeout, exiting.") self.quit = True + self.lastui = time.time() while not self.quit: if self.sock in ready: while select.select([self.sock],[],[],0)[0]: @@ -191,11 +192,18 @@ class ProcessServer(multiprocessing.Process): except (EOFError, OSError): disconnect_client(self, fds) - if not self.timeout == -1.0 and not self.haveui and self.lastui and self.timeout and \ + if not self.timeout == -1.0 and not self.haveui and self.timeout and \ (self.lastui + self.timeout) < time.time(): print("Server timeout, exiting.") self.quit = True + # If we don't see a UI connection within maxuiwait, its unlikely we're going to see + # one. We have had issue with processes hanging indefinitely so timing out UI-less + # servers is useful. + if not self.haveui and not self.timeout and (self.lastui + self.maxuiwait) < time.time(): + print("No UI connection within max timeout, exiting to avoid infinite loop.") + self.quit = True + if self.command_channel in ready: try: command = self.command_channel.get() @@ -220,10 +228,13 @@ class ProcessServer(multiprocessing.Process): print("Exiting") # Remove the socket file so we don't get any more connections to avoid races - os.unlink(self.sockname) + try: + os.unlink(self.sockname) + except: + pass self.sock.close() - try: + try: self.cooker.shutdown(True) self.cooker.notifier.stop() self.cooker.confignotifier.stop() @@ -243,7 +254,7 @@ class ProcessServer(multiprocessing.Process): lock = bb.utils.lockfile(lockfile, shared=False, retry=False, block=True) if lock: # We hold the lock so we can remove the file (hide stale pid data) - bb.utils.remove(lockfile) + # via unlockfile. bb.utils.unlockfile(lock) return @@ -331,7 +342,7 @@ class ServerCommunicator(): def runCommand(self, command): self.connection.send(command) if not self.recv.poll(30): - logger.note("No reply from server in 30s") + logger.info("No reply from server in 30s") if not self.recv.poll(30): raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s)") return self.recv.get() diff --git a/poky/bitbake/lib/bb/tests/cooker.py b/poky/bitbake/lib/bb/tests/cooker.py index 74c903f01..c82d4b7b8 100644 --- a/poky/bitbake/lib/bb/tests/cooker.py +++ b/poky/bitbake/lib/bb/tests/cooker.py @@ -60,7 +60,7 @@ class CookerTest(unittest.TestCase): log_handler = LogHandler() logger.addHandler(log_handler) collection = bb.cooker.CookerCollectFiles(bbfile_config_priorities) - collection.collection_priorities(pkgfns, self.d) + collection.collection_priorities(pkgfns, pkgfns, self.d) logger.removeHandler(log_handler) # Should be empty (no generated messages) diff --git a/poky/bitbake/lib/bb/tests/parse.py b/poky/bitbake/lib/bb/tests/parse.py index 9afd1b208..9e21e1842 100644 --- a/poky/bitbake/lib/bb/tests/parse.py +++ b/poky/bitbake/lib/bb/tests/parse.py @@ -178,7 +178,10 @@ python () { addtask do_patch after do_foo after do_unpack before do_configure before do_compile addtask do_fetch do_patch -deltask do_fetch do_patch +MYVAR = "do_patch" +EMPTYVAR = "" +deltask do_fetch ${MYVAR} ${EMPTYVAR} +deltask ${EMPTYVAR} """ def test_parse_addtask_deltask(self): import sys @@ -189,6 +192,5 @@ deltask do_fetch do_patch self.assertTrue("addtask contained multiple 'before' keywords" in stdout) self.assertTrue("addtask contained multiple 'after' keywords" in stdout) self.assertTrue('addtask ignored: " do_patch"' in stdout) - self.assertTrue('deltask ignored: " do_patch"' in stdout) #self.assertTrue('dependent task do_foo for do_patch does not exist' in stdout) diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml index d29fe6262..1f24c7343 100644 --- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml @@ -3190,7 +3190,7 @@ building an image. - virtual/mesa: + virtual/libgbm: Provides gbm.pc. diff --git a/poky/documentation/ref-manual/ref-system-requirements.xml b/poky/documentation/ref-manual/ref-system-requirements.xml index 43e217c6d..ac8b0032d 100644 --- a/poky/documentation/ref-manual/ref-system-requirements.xml +++ b/poky/documentation/ref-manual/ref-system-requirements.xml @@ -94,11 +94,12 @@ Ubuntu 16.04 (LTS) Ubuntu 18.04 (LTS) - Ubuntu 19.04 - Fedora 28 - Fedora 29 + Ubuntu 20.04 Fedora 30 + Fedora 31 + Fedora 32 CentOS 7.x + CentOS 8.x Debian GNU/Linux 8.x (Jessie) Debian GNU/Linux 9.x (Stretch) Debian GNU/Linux 10.x (Buster) diff --git a/poky/meta/classes/autotools.bbclass b/poky/meta/classes/autotools.bbclass index 6c2a33ac7..1f3c771c6 100644 --- a/poky/meta/classes/autotools.bbclass +++ b/poky/meta/classes/autotools.bbclass @@ -5,7 +5,7 @@ def autotools_dep_prepend(d): pn = d.getVar('PN') deps = '' - if pn in ['autoconf-native', 'automake-native', 'help2man-native']: + if pn in ['autoconf-native', 'automake-native']: return deps deps += 'autoconf-native automake-native ' diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass index 94ed8061b..8243f7ce8 100644 --- a/poky/meta/classes/cmake.bbclass +++ b/poky/meta/classes/cmake.bbclass @@ -70,15 +70,22 @@ CMAKE_BUILD_PARALLEL_LEVEL_task-install = "${@oe.utils.parallel_make(d, True)}" OECMAKE_TARGET_COMPILE ?= "all" OECMAKE_TARGET_INSTALL ?= "install" +def map_host_os_to_system_name(host_os): + if host_os.startswith('mingw'): + return 'Windows' + if host_os.startswith('linux'): + return 'Linux' + return host_os + # CMake expects target architectures in the format of uname(2), # which do not always match TARGET_ARCH, so all the necessary # conversions should happen here. -def map_target_arch_to_uname_arch(target_arch): - if target_arch == "powerpc": +def map_host_arch_to_uname_arch(host_arch): + if host_arch == "powerpc": return "ppc" - if target_arch == "powerpc64": + if host_arch == "powerpc64": return "ppc64" - return target_arch + return host_arch cmake_do_generate_toolchain_file() { if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then @@ -88,8 +95,8 @@ cmake_do_generate_toolchain_file() { # CMake system name must be something like "Linux". # This is important for cross-compiling. $cmake_crosscompiling -set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` ) -set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH'))} ) +set( CMAKE_SYSTEM_NAME ${@map_host_os_to_system_name(d.getVar('HOST_OS'))} ) +set( CMAKE_SYSTEM_PROCESSOR ${@map_host_arch_to_uname_arch(d.getVar('HOST_ARCH'))} ) set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} ) set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} ) set( CMAKE_C_COMPILER_LAUNCHER ${OECMAKE_C_COMPILER_LAUNCHER} ) diff --git a/poky/meta/classes/cml1.bbclass b/poky/meta/classes/cml1.bbclass index c7f6723cb..8ab240589 100644 --- a/poky/meta/classes/cml1.bbclass +++ b/poky/meta/classes/cml1.bbclass @@ -1,3 +1,13 @@ +# returns all the elements from the src uri that are .cfg files +def find_cfgs(d): + sources=src_patches(d, True) + sources_list=[] + for s in sources: + if s.endswith('.cfg'): + sources_list.append(s) + + return sources_list + cml1_do_configure() { set -e unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass index 514897e8b..0889e7544 100644 --- a/poky/meta/classes/cve-check.bbclass +++ b/poky/meta/classes/cve-check.bbclass @@ -30,6 +30,9 @@ 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" +CVE_CHECK_SUMMARY_DIR ?= "${LOG_DIR}/cve" +CVE_CHECK_SUMMARY_FILE_NAME ?= "cve-summary" +CVE_CHECK_SUMMARY_FILE ?= "${CVE_CHECK_SUMMARY_DIR}/${CVE_CHECK_SUMMARY_FILE_NAME}" CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve" CVE_CHECK_MANIFEST ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve" @@ -46,6 +49,32 @@ CVE_CHECK_PN_WHITELIST ?= "" # CVE_CHECK_WHITELIST ?= "" +python cve_save_summary_handler () { + import shutil + import datetime + + cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE") + + cve_summary_name = d.getVar("CVE_CHECK_SUMMARY_FILE_NAME") + cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR") + bb.utils.mkdirhier(cvelogpath) + + timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + cve_summary_file = os.path.join(cvelogpath, "%s-%s.txt" % (cve_summary_name, timestamp)) + + shutil.copyfile(cve_tmp_file, cve_summary_file) + + if cve_summary_file and os.path.exists(cve_summary_file): + cvefile_link = os.path.join(cvelogpath, cve_summary_name) + + if os.path.exists(os.path.realpath(cvefile_link)): + os.remove(cvefile_link) + os.symlink(os.path.basename(cve_summary_file), cvefile_link) +} + +addhandler cve_save_summary_handler +cve_save_summary_handler[eventmask] = "bb.event.BuildCompleted" + python do_cve_check () { """ Check recipe for patched and unpatched CVEs @@ -331,5 +360,8 @@ def cve_write_data(d, patched, unpatched, whitelisted, cve_data): f.write(write_string) if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1": + cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR") + bb.utils.mkdirhier(cvelogpath) + with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f: f.write("%s" % write_string) diff --git a/poky/meta/classes/gtk-immodules-cache.bbclass b/poky/meta/classes/gtk-immodules-cache.bbclass index 9bb0af8b2..8e783fb49 100644 --- a/poky/meta/classes/gtk-immodules-cache.bbclass +++ b/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/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass index 694b58fc9..3b5600e55 100644 --- a/poky/meta/classes/image.bbclass +++ b/poky/meta/classes/image.bbclass @@ -548,14 +548,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") diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass index 649aea1da..ee19ef673 100644 --- a/poky/meta/classes/insane.bbclass +++ b/poky/meta/classes/insane.bbclass @@ -364,14 +364,14 @@ def package_qa_check_arch(path,name,d, elf, messages): target_os == "linux-gnu_ilp32" or re.match(r'mips64.*32', d.getVar('DEFAULTTUNE'))) is_bpf = (oe.qa.elf_machine_to_string(elf.machine()) == "BPF") if not ((machine == elf.machine()) or is_32 or is_bpf): - package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \ - (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d))) + package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) in %s" % \ + (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path, d, name))) elif not ((bits == elf.abiSize()) or is_32 or is_bpf): - package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \ - (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d))) + package_qa_add_message(messages, "arch", "Bit size did not match (%d, expected %d) in %s" % \ + (elf.abiSize(), bits, package_qa_clean_path(path, d, name))) elif not ((littleendian == elf.isLittleEndian()) or is_bpf): - package_qa_add_message(messages, "arch", "Endiannes did not match (%d to %d) on %s" % \ - (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d))) + package_qa_add_message(messages, "arch", "Endiannes did not match (%d, expected %d) in %s" % \ + (elf.isLittleEndian(), littleendian, package_qa_clean_path(path,d, name))) QAPATHTEST[desktop] = "package_qa_check_desktop" def package_qa_check_desktop(path, name, d, elf, messages): @@ -459,10 +459,6 @@ def package_qa_check_buildpaths(path, name, d, elf, messages): if os.path.islink(path): return - # Ignore ipk and deb's CONTROL dir - if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1: - return - tmpdir = bytes(d.getVar('TMPDIR'), encoding="utf-8") with open(path, 'rb') as f: file_content = f.read() @@ -1034,7 +1030,14 @@ python do_package_qa () { pkgfiles = {} for pkg in packages: pkgfiles[pkg] = [] - for walkroot, dirs, files in os.walk(os.path.join(pkgdest, pkg)): + pkgdir = os.path.join(pkgdest, pkg) + for walkroot, dirs, files in os.walk(pkgdir): + # Don't walk into top-level CONTROL or DEBIAN directories as these + # are temporary directories created by do_package. + if walkroot == pkgdir: + for control in ("CONTROL", "DEBIAN"): + if control in dirs: + dirs.remove(control) for file in files: pkgfiles[pkg].append(os.path.join(walkroot, file)) diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index 54a1a1627..3311f6e84 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -213,7 +213,7 @@ do_kernel_metadata() { 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} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} diff --git a/poky/meta/classes/nativesdk.bbclass b/poky/meta/classes/nativesdk.bbclass index 7b7571072..7f2692c51 100644 --- a/poky/meta/classes/nativesdk.bbclass +++ b/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 diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass index 0af5f6673..f8dc1bb46 100644 --- a/poky/meta/classes/package.bbclass +++ b/poky/meta/classes/package.bbclass @@ -1039,7 +1039,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) @@ -1194,7 +1194,7 @@ python split_and_strip_files () { if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'): results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d)) - if debugsrcdir and not targetos.startswith("mingw"): + if debugsrcdir and not hostos.startswith("mingw"): if (d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'): results = oe.utils.multiprocess_launch(splitstaticdebuginfo, staticlibs, d, extraargs=(dvar, debugstaticdir, debugstaticlibdir, debugstaticappend, debugsrcdir, d)) else: @@ -1761,7 +1761,7 @@ python package_do_shlibs() { else: shlib_pkgs = packages.split() - targetos = d.getVar('TARGET_OS') + hostos = d.getVar('HOST_OS') workdir = d.getVar('WORKDIR') @@ -1912,9 +1912,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) diff --git a/poky/meta/classes/ptest.bbclass b/poky/meta/classes/ptest.bbclass index fa4c36ec7..47611edea 100644 --- a/poky/meta/classes/ptest.bbclass +++ b/poky/meta/classes/ptest.bbclass @@ -6,7 +6,7 @@ PTEST_PATH ?= "${libdir}/${BPN}/ptest" PTEST_BUILD_HOST_FILES ?= "Makefile" PTEST_BUILD_HOST_PATTERN ?= "" -FILES_${PN}-ptest = "${PTEST_PATH}" +FILES_${PN}-ptest += "${PTEST_PATH}" SECTION_${PN}-ptest = "devel" ALLOW_EMPTY_${PN}-ptest = "1" PTEST_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}" diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass index 8da40f656..2f3bd90b0 100644 --- a/poky/meta/classes/reproducible_build.bbclass +++ b/poky/meta/classes/reproducible_build.bbclass @@ -70,100 +70,16 @@ do_deploy_source_date_epoch[sstate-plaindirs] = "${SDE_DEPLOYDIR}" addtask do_deploy_source_date_epoch_setscene addtask do_deploy_source_date_epoch before do_configure after do_patch -def get_source_date_epoch_from_known_files(d, sourcedir): - source_date_epoch = None - newest_file = None - known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"]) - for file in known_files: - filepath = os.path.join(sourcedir, file) - if os.path.isfile(filepath): - mtime = int(os.lstat(filepath).st_mtime) - # There may be more than one "known_file" present, if so, use the youngest one - if not source_date_epoch or mtime > source_date_epoch: - source_date_epoch = mtime - newest_file = filepath - if newest_file: - bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file) - return source_date_epoch - -def find_git_folder(d, sourcedir): - # First guess: WORKDIR/git - # This is the default git fetcher unpack path - workdir = d.getVar('WORKDIR') - gitpath = os.path.join(workdir, "git/.git") - if os.path.isdir(gitpath): - return gitpath - - # Second guess: ${S} - gitpath = os.path.join(sourcedir, ".git") - if os.path.isdir(gitpath): - return gitpath - - # Perhaps there was a subpath or destsuffix specified. - # Go looking in the WORKDIR - exclude = set(["build", "image", "license-destdir", "patches", "pseudo", - "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"]) - for root, dirs, files in os.walk(workdir, topdown=True): - dirs[:] = [d for d in dirs if d not in exclude] - if '.git' in dirs: - return root - - bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir) - return None - -def get_source_date_epoch_from_git(d, sourcedir): - source_date_epoch = None - if "git://" in d.getVar('SRC_URI'): - gitpath = find_git_folder(d, sourcedir) - if gitpath: - import subprocess - source_date_epoch = int(subprocess.check_output(['git','log','-1','--pretty=%ct'], cwd=gitpath)) - bb.debug(1, "git repository: %s" % gitpath) - return source_date_epoch - -def get_source_date_epoch_from_youngest_file(d, sourcedir): - if sourcedir == d.getVar('WORKDIR'): - # These sources are almost certainly not from a tarball - return None - - # Do it the hard way: check all files and find the youngest one... - source_date_epoch = None - newest_file = None - for root, dirs, files in os.walk(sourcedir, topdown=True): - files = [f for f in files if not f[0] == '.'] - - for fname in files: - filename = os.path.join(root, fname) - try: - mtime = int(os.lstat(filename).st_mtime) - except ValueError: - mtime = 0 - if not source_date_epoch or mtime > source_date_epoch: - source_date_epoch = mtime - newest_file = filename - - if newest_file: - bb.debug(1, "Newest file found: %s" % newest_file) - return source_date_epoch - -def fixed_source_date_epoch(): - bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH") - return 0 - python create_source_date_epoch_stamp() { + import oe.reproducible + 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, "Deleting existing SOURCE_DATE_EPOCH from: %s" % epochfile) os.remove(epochfile) - sourcedir = d.getVar('S') - source_date_epoch = ( - get_source_date_epoch_from_git(d, sourcedir) or - get_source_date_epoch_from_known_files(d, sourcedir) or - get_source_date_epoch_from_youngest_file(d, sourcedir) or - fixed_source_date_epoch() # Last resort - ) + source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S')) bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch) bb.utils.mkdirhier(d.getVar('SDE_DIR')) diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py index 29473a988..36427eec9 100644 --- a/poky/meta/lib/oe/recipeutils.py +++ b/poky/meta/lib/oe/recipeutils.py @@ -24,7 +24,7 @@ from collections import OrderedDict, defaultdict from bb.utils import vercmp_string # Help us to find places to insert values -recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()'] +recipe_progression = ['SUMMARY', 'DESCRIPTION', 'AUTHOR', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()', 'BBCLASSEXTEND'] # Variables that sometimes are a bit long but shouldn't be wrapped nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', r'SRC_URI\[(.+\.)?md5sum\]', r'SRC_URI\[(.+\.)?sha256sum\]'] list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM'] diff --git a/poky/meta/lib/oe/reproducible.py b/poky/meta/lib/oe/reproducible.py new file mode 100644 index 000000000..f4f58dd95 --- /dev/null +++ b/poky/meta/lib/oe/reproducible.py @@ -0,0 +1,104 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# +import os +import subprocess +import bb + +def get_source_date_epoch_from_known_files(d, sourcedir): + source_date_epoch = None + newest_file = None + known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"]) + for file in known_files: + filepath = os.path.join(sourcedir, file) + if os.path.isfile(filepath): + mtime = int(os.lstat(filepath).st_mtime) + # There may be more than one "known_file" present, if so, use the youngest one + if not source_date_epoch or mtime > source_date_epoch: + source_date_epoch = mtime + newest_file = filepath + if newest_file: + bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file) + return source_date_epoch + +def find_git_folder(d, sourcedir): + # First guess: WORKDIR/git + # This is the default git fetcher unpack path + workdir = d.getVar('WORKDIR') + gitpath = os.path.join(workdir, "git/.git") + if os.path.isdir(gitpath): + return gitpath + + # Second guess: ${S} + gitpath = os.path.join(sourcedir, ".git") + if os.path.isdir(gitpath): + return gitpath + + # Perhaps there was a subpath or destsuffix specified. + # Go looking in the WORKDIR + exclude = set(["build", "image", "license-destdir", "patches", "pseudo", + "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"]) + for root, dirs, files in os.walk(workdir, topdown=True): + dirs[:] = [d for d in dirs if d not in exclude] + if '.git' in dirs: + return root + + bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir) + return None + +def get_source_date_epoch_from_git(d, sourcedir): + if not "git://" in d.getVar('SRC_URI'): + return None + + gitpath = find_git_folder(d, sourcedir) + if not gitpath: + return None + + # Check that the repository has a valid HEAD; it may not if subdir is used + # in SRC_URI + p = subprocess.run(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=gitpath) + if p.returncode != 0: + bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8'))) + return None + + bb.debug(1, "git repository: %s" % gitpath) + p = subprocess.run(['git','log','-1','--pretty=%ct'], check=True, stdout=subprocess.PIPE, cwd=gitpath) + return int(p.stdout.decode('utf-8')) + +def get_source_date_epoch_from_youngest_file(d, sourcedir): + if sourcedir == d.getVar('WORKDIR'): + # These sources are almost certainly not from a tarball + return None + + # Do it the hard way: check all files and find the youngest one... + source_date_epoch = None + newest_file = None + for root, dirs, files in os.walk(sourcedir, topdown=True): + files = [f for f in files if not f[0] == '.'] + + for fname in files: + filename = os.path.join(root, fname) + try: + mtime = int(os.lstat(filename).st_mtime) + except ValueError: + mtime = 0 + if not source_date_epoch or mtime > source_date_epoch: + source_date_epoch = mtime + newest_file = filename + + if newest_file: + bb.debug(1, "Newest file found: %s" % newest_file) + return source_date_epoch + +def fixed_source_date_epoch(): + bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH") + return 0 + +def get_source_date_epoch(d, sourcedir): + return ( + get_source_date_epoch_from_git(d, sourcedir) or + get_source_date_epoch_from_known_files(d, sourcedir) or + get_source_date_epoch_from_youngest_file(d, sourcedir) or + fixed_source_date_epoch() # Last resort + ) + diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py index 9adb51196..c46e8ba48 100644 --- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -19,10 +19,13 @@ class SStateTests(SStateBase): # Test that a git repository which changes is correctly handled by SRCREV = ${AUTOREV} # when PV does not contain SRCPV - tempdir = tempfile.mkdtemp(prefix='oeqa') + tempdir = tempfile.mkdtemp(prefix='sstate_autorev') + tempdldir = tempfile.mkdtemp(prefix='sstate_autorev_dldir') self.track_for_cleanup(tempdir) + self.track_for_cleanup(tempdldir) create_temp_layer(tempdir, 'selftestrecipetool') self.add_command_to_tearDown('bitbake-layers remove-layer %s' % tempdir) + self.append_config("DL_DIR = \"%s\"" % tempdldir) runCmd('bitbake-layers add-layer %s' % tempdir) # Use dbus-wait as a local git repo we can add a commit between two builds in diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py index 992fff937..519aa9aa1 100644 --- a/poky/meta/lib/oeqa/utils/qemurunner.py +++ b/poky/meta/lib/oeqa/utils/qemurunner.py @@ -32,7 +32,7 @@ re_control_char = re.compile('[%s]' % re.escape("".join(control_chars))) class QemuRunner: def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds, - use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False): + use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None): # Popen object for runqemu self.runqemu = None @@ -63,7 +63,9 @@ class QemuRunner: 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 @@ -252,8 +254,17 @@ class QemuRunner: 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() diff --git a/poky/meta/lib/oeqa/utils/qemutinyrunner.py b/poky/meta/lib/oeqa/utils/qemutinyrunner.py index 364005bd2..5c92941c0 100644 --- a/poky/meta/lib/oeqa/utils/qemutinyrunner.py +++ b/poky/meta/lib/oeqa/utils/qemutinyrunner.py @@ -138,7 +138,7 @@ class QemuTinyRunner(QemuRunner): # # Walk the process tree from the process specified looking for a qemu-system. Return its [pid'cmd] # - ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0] + ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command'], stdout=subprocess.PIPE).communicate()[0] processes = ps.decode("utf-8").split('\n') nfields = len(processes[0].split()) - 1 pids = {} diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc index f4790532b..9199bbfe0 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc +++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc @@ -12,7 +12,7 @@ PE = "1" # We use the revision in order to avoid having to fetch it from the # repo during parse -SRCREV = "1079ec0a77c3fda510f07860b2549c47f3a46c21" +SRCREV = "2f5fbb5b39f7b67044dda5c35e4a4b31685a3109" SRC_URI = "git://git.denx.de/u-boot.git \ " diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb deleted file mode 100644 index 7eaf721ca..000000000 --- a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb +++ /dev/null @@ -1,2 +0,0 @@ -require u-boot-common.inc -require u-boot-tools.inc diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb new file mode 100644 index 000000000..7eaf721ca --- /dev/null +++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb @@ -0,0 +1,2 @@ +require u-boot-common.inc +require u-boot-tools.inc diff --git a/poky/meta/recipes-bsp/u-boot/u-boot.inc b/poky/meta/recipes-bsp/u-boot/u-boot.inc index c91da0295..251178db3 100644 --- a/poky/meta/recipes-bsp/u-boot/u-boot.inc +++ b/poky/meta/recipes-bsp/u-boot/u-boot.inc @@ -70,16 +70,6 @@ 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 @@ -89,7 +79,7 @@ do_configure () { j=$(expr $j + 1); if [ $j -eq $i ]; then oe_runmake -C ${S} O=${B}/${config} ${config} - if [ test -n "${@' '.join(find_cfgs(d))}" ]; then + 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 diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb deleted file mode 100644 index 02d67c0db..000000000 --- a/poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb +++ /dev/null @@ -1,4 +0,0 @@ -require u-boot-common.inc -require u-boot.inc - -DEPENDS += "bc-native dtc-native" diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb new file mode 100644 index 000000000..02d67c0db --- /dev/null +++ b/poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb @@ -0,0 +1,4 @@ +require u-boot-common.inc +require u-boot.inc + +DEPENDS += "bc-native dtc-native" diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb index 35d0c3ea7..c8a3f876a 100644 --- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb +++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb @@ -108,7 +108,7 @@ LICENSE_libavahi-gobject = "LGPLv2.1+" LICENSE_avahi-daemon = "LGPLv2.1+" LICENSE_libavahi-common = "LGPLv2.1+" LICENSE_libavahi-core = "LGPLv2.1+" -LICENSE_avahi-client = "LGPLv2.1+" +LICENSE_libavahi-client = "LGPLv2.1+" LICENSE_avahi-dnsconfd = "LGPLv2.1+" LICENSE_libavahi-glib = "LGPLv2.1+" LICENSE_avahi-autoipd = "LGPLv2.1+" diff --git a/poky/meta/recipes-connectivity/bind/bind_9.11.19.bb b/poky/meta/recipes-connectivity/bind/bind_9.11.19.bb deleted file mode 100644 index 276173e09..000000000 --- a/poky/meta/recipes-connectivity/bind/bind_9.11.19.bb +++ /dev/null @@ -1,140 +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=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] = "0dee554a4caa368948b32da9a0c97b516c19103bc13ff5b3762c5d8552f52329" - -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/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb b/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb new file mode 100644 index 000000000..ee546a0a2 --- /dev/null +++ b/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/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb deleted file mode 100644 index afc9b2f2e..000000000 --- a/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" -HOMEPAGE = "https://github.com/libuv/libuv" -BUGTRACKER = "https://github.com/libuv/libuv/issues" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" - -SRCREV = "1ab9ea3790378f9f25c4e78e9e2b511c75f9c9ed" -SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" - -S = "${WORKDIR}/git" - -inherit autotools - -do_configure() { - ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" - oe_runconf -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb new file mode 100644 index 000000000..874546373 --- /dev/null +++ b/poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb @@ -0,0 +1,19 @@ +SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" +HOMEPAGE = "https://github.com/libuv/libuv" +BUGTRACKER = "https://github.com/libuv/libuv/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" + +SRCREV = "e8b989ea1f7f9d4083511a2caec7791e9abd1871" +SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" + +S = "${WORKDIR}/git" + +inherit autotools + +do_configure() { + ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" + oe_runconf +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb index 188a8893b..b8ad23a0d 100644 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb +++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb @@ -56,6 +56,7 @@ EXTRA_OECONF = "--with-statduser=rpcuser \ --disable-gss \ --disable-nfsdcltrack \ --with-statdpath=/var/lib/nfs/statd \ + --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \ " PACKAGECONFIG ??= "tcp-wrappers \ diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb index 47ed6b764..815955837 100644 --- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb +++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb @@ -204,6 +204,8 @@ CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" RRECOMMENDS_libcrypto += "openssl-conf" RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash" +RDEPENDS_${PN}-bin += "openssl-conf" + BBCLASSEXTEND = "native nativesdk" CVE_PRODUCT = "openssl:openssl" diff --git a/poky/meta/recipes-core/busybox/busybox.inc b/poky/meta/recipes-core/busybox/busybox.inc index 6cfdcd734..45aaa2b41 100644 --- a/poky/meta/recipes-core/busybox/busybox.inc +++ b/poky/meta/recipes-core/busybox/busybox.inc @@ -133,16 +133,6 @@ do_prepare_config () { fi } -# returns all the elements from the src uri that are .cfg files -def find_cfgs(d): - sources=src_patches(d, True) - sources_list=[] - for s in sources: - if s.endswith('.cfg'): - sources_list.append(s) - - return sources_list - do_configure () { set -x do_prepare_config diff --git a/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch b/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch new file mode 100644 index 000000000..8d1f27212 --- /dev/null +++ b/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch @@ -0,0 +1,83 @@ +From 5b2fc5746c352eb2b27bfc9fb224580d9852d0fa Mon Sep 17 00:00:00 2001 +From: Sakib Sajal +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 dc97d8f..cf346e8 100644 +--- a/util-linux/hwclock.c ++++ b/util-linux/hwclock.c +@@ -131,8 +131,10 @@ static void to_sys_clock(const char **pp_rtcname, int utc) + + tv.tv_sec = read_rtc(pp_rtcname, NULL, utc); + tv.tv_usec = 0; +- if (settimeofday(&tv, &tz)) +- bb_simple_perror_msg_and_die("settimeofday"); ++ if (settimeofday(NULL, &tz)) ++ bb_simple_perror_msg_and_die("settimeofday: timezone"); ++ if (settimeofday(&tv, NULL)) ++ bb_simple_perror_msg_and_die("settimeofday: timeval"); + } + + static void from_sys_clock(const char **pp_rtcname, int utc) +@@ -283,8 +285,10 @@ static void set_system_clock_timezone(int utc) + gettimeofday(&tv, NULL); + if (!utc) + tv.tv_sec += tz.tz_minuteswest * 60; +- if (settimeofday(&tv, &tz)) +- bb_simple_perror_msg_and_die("settimeofday"); ++ if (settimeofday(NULL, &tz)) ++ bb_simple_perror_msg_and_die("settimeofday: timezone"); ++ if (settimeofday(&tv, NULL)) ++ bb_simple_perror_msg_and_die("settimeofday: timeval"); + } + + //usage:#define hwclock_trivial_usage +-- +2.24.1 + diff --git a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb index 0dfdfdb54..aeea40fbc 100644 --- a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb +++ b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb @@ -43,6 +43,7 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ + file://0001-hwclock-make-glibc-2.31-compatible.patch \ " SRC_URI_append_libc-musl = " file://musl.cfg " diff --git a/poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb b/poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb deleted file mode 100644 index 755c841ba..000000000 --- a/poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "D-Bus test package (for D-bus functionality testing only)" -HOMEPAGE = "http://dbus.freedesktop.org" -SECTION = "base" - -require dbus.inc - -SRC_URI += "file://run-ptest \ - file://python-config.patch \ - " - -DEPENDS = "dbus glib-2.0" - -RDEPENDS_${PN}-dev = "" - -S="${WORKDIR}/dbus-${PV}" -FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:" - -inherit ptest - -EXTRA_OECONF += "--enable-tests \ - --enable-modular-tests \ - --enable-installed-tests \ - --enable-checks \ - --enable-asserts \ - --with-dbus-test-dir=${PTEST_PATH} \ - --enable-embedded-tests \ - " - -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/poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb b/poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb new file mode 100644 index 000000000..755c841ba --- /dev/null +++ b/poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb @@ -0,0 +1,64 @@ +SUMMARY = "D-Bus test package (for D-bus functionality testing only)" +HOMEPAGE = "http://dbus.freedesktop.org" +SECTION = "base" + +require dbus.inc + +SRC_URI += "file://run-ptest \ + file://python-config.patch \ + " + +DEPENDS = "dbus glib-2.0" + +RDEPENDS_${PN}-dev = "" + +S="${WORKDIR}/dbus-${PV}" +FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:" + +inherit ptest + +EXTRA_OECONF += "--enable-tests \ + --enable-modular-tests \ + --enable-installed-tests \ + --enable-checks \ + --enable-asserts \ + --with-dbus-test-dir=${PTEST_PATH} \ + --enable-embedded-tests \ + " + +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/poky/meta/recipes-core/dbus/dbus.inc b/poky/meta/recipes-core/dbus/dbus.inc index 3bdb7ea4f..dcbcc0a9d 100644 --- a/poky/meta/recipes-core/dbus/dbus.inc +++ b/poky/meta/recipes-core/dbus/dbus.inc @@ -10,8 +10,8 @@ SRC_URI = "https://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ file://clear-guid_from_server-if-send_negotiate_unix_f.patch \ " -SRC_URI[md5sum] = "4ca570c281be35d0b30ab83436712242" -SRC_URI[sha256sum] = "64cf4d70840230e5e9bc784d153880775ab3db19d656ead8a0cb9c0ab5a95306" +SRC_URI[md5sum] = "dfe8a71f412e0b53be26ed4fbfdc91c4" +SRC_URI[sha256sum] = "f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe" EXTRA_OECONF = "--disable-xml-docs \ --disable-doxygen-docs \ diff --git a/poky/meta/recipes-core/dbus/dbus_1.12.18.bb b/poky/meta/recipes-core/dbus/dbus_1.12.18.bb deleted file mode 100644 index cf6f7dc0e..000000000 --- a/poky/meta/recipes-core/dbus/dbus_1.12.18.bb +++ /dev/null @@ -1,147 +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 = "https://dbus.freedesktop.org" -SECTION = "base" - -require dbus.inc - -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" - -inherit useradd update-rc.d - -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" - -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/poky/meta/recipes-core/dbus/dbus_1.12.20.bb b/poky/meta/recipes-core/dbus/dbus_1.12.20.bb new file mode 100644 index 000000000..cf6f7dc0e --- /dev/null +++ b/poky/meta/recipes-core/dbus/dbus_1.12.20.bb @@ -0,0 +1,147 @@ +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" + +require dbus.inc + +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" + +inherit useradd update-rc.d + +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" + +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/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch b/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch new file mode 100644 index 000000000..c5c18ead7 --- /dev/null +++ b/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch @@ -0,0 +1,83 @@ +From aa84835a00bfd65e784d58411e76f60658e939dc Mon Sep 17 00:00:00 2001 +From: Oleksandr Popovych +Date: Tue, 18 Feb 2020 19:04:55 +0200 +Subject: [PATCH] Add output of tests result + +Added console output of testing results in form 'RESULT: TEST_NAME'. + +Changed verbose mode of test application set by '-v' ('--verbose') +argument to CK_NORMAL. +Added new supported argument '-vv' ('--extra-verbose') that changes +verbose mode of test application to CK_VERBOSE. Results of each test +are shown in output only if this mode is set. + +Upstream-Status: Denied + +This patch changes potentially deprecated feature that shoud be changed +in upstream. [https://github.com/libexpat/libexpat/issues/382] + +Signed-off-by: Oleksandr Popovych +--- + tests/minicheck.c | 10 +++++++++- + tests/runtests.c | 4 +++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/expat/tests/minicheck.c b/expat/tests/minicheck.c +index a5a1efb..94fa412 100644 +--- a/tests/minicheck.c ++++ b/tests/minicheck.c +@@ -164,6 +164,8 @@ srunner_run_all(SRunner *runner, int verbosity) { + if (tc->setup != NULL) { + /* setup */ + if (setjmp(env)) { ++ if (verbosity >= CK_VERBOSE) ++ printf("SKIP: %s\n", _check_current_function); + add_failure(runner, verbosity); + continue; + } +@@ -171,6 +173,8 @@ srunner_run_all(SRunner *runner, int verbosity) { + } + /* test */ + if (setjmp(env)) { ++ if (verbosity >= CK_VERBOSE) ++ printf("FAIL: %s\n", _check_current_function); + add_failure(runner, verbosity); + continue; + } +@@ -178,12 +182,16 @@ srunner_run_all(SRunner *runner, int verbosity) { + + /* teardown */ + if (tc->teardown != NULL) { +- if (setjmp(env)) { ++ if (setjmp(env)) { ++ if (verbosity >= CK_VERBOSE) ++ printf("PASS: %s\n", _check_current_function); + add_failure(runner, verbosity); + continue; + } + tc->teardown(); + } ++ if (verbosity >= CK_VERBOSE) ++ printf("PASS: %s\n", _check_current_function); + } + tc = tc->next_tcase; + } +diff --git a/tests/runtests.c b/expat/tests/runtests.c +index 7791fe0..75724e5 100644 +--- a/tests/runtests.c ++++ b/tests/runtests.c +@@ -11619,9 +11619,11 @@ main(int argc, char *argv[]) { + for (i = 1; i < argc; ++i) { + char *opt = argv[i]; + if (strcmp(opt, "-v") == 0 || strcmp(opt, "--verbose") == 0) +- verbosity = CK_VERBOSE; ++ verbosity = CK_NORMAL; + else if (strcmp(opt, "-q") == 0 || strcmp(opt, "--quiet") == 0) + verbosity = CK_SILENT; ++ else if (strcmp(opt, "-vv") == 0 || strcmp(opt, "--extra-verbose") == 0) ++ verbosity = CK_VERBOSE; + else { + fprintf(stderr, "runtests: unknown option '%s'\n", opt); + return 2; +-- +2.17.1 diff --git a/poky/meta/recipes-core/expat/expat/run-ptest b/poky/meta/recipes-core/expat/expat/run-ptest new file mode 100644 index 000000000..1b39cec8e --- /dev/null +++ b/poky/meta/recipes-core/expat/expat/run-ptest @@ -0,0 +1,23 @@ +#!/bin/bash + +output=${1:-"expat_tests.log"} # default log file + +# logging function +function testCheck() { + testExec="$1" + shift + echo && echo ${testExec} && ./${testExec} "$@" + error=$? + result=$([[ ${error} -eq 0 ]] && echo "PASS" || echo "FAIL") + echo "${result}: ${testExec}" && echo "============================" +} + +export output +export -f testCheck +TIME=$(which time) + +echo "Architecture: $(uname -m)" > ${output} +echo "Image: $(uname -sr)" >> ${output} +${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -vv" |& tee -a ${output} +${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -vv" |& tee -a ${output} +echo diff --git a/poky/meta/recipes-core/expat/expat_2.2.9.bb b/poky/meta/recipes-core/expat/expat_2.2.9.bb index 8f3db4135..f477f99ba 100644 --- a/poky/meta/recipes-core/expat/expat_2.2.9.bb +++ b/poky/meta/recipes-core/expat/expat_2.2.9.bb @@ -8,15 +8,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5b8620d98e49772d95fc1d291c26aa79" SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \ file://libtool-tag.patch \ + file://run-ptest \ + file://0001-Add-output-of-tests-result.patch \ " SRC_URI[md5sum] = "875a2c2ff3e8eb9e5a5cd62db2033ab5" SRC_URI[sha256sum] = "f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237" -inherit autotools lib_package +EXTRA_OECMAKE_class-native += "-DEXPAT_BUILD_DOCS=OFF" -do_configure_prepend () { - rm -f ${S}/conftools/libtool.m4 +RDEPENDS_${PN}-ptest += "bash" + +inherit cmake lib_package ptest + +do_install_ptest_class-target() { + install -m 755 ${B}/tests/* ${D}${PTEST_PATH} } -BBCLASSEXTEND = "native nativesdk" +BBCLASSEXTEND += "native nativesdk" diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb deleted file mode 100644 index 2e5f7a0e2..000000000 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb +++ /dev/null @@ -1,50 +0,0 @@ -require glib.inc - -PE = "1" - -SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ - file://run-ptest \ - file://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] = "ccc48e58545cac45f5b3df3b8aeaff13" -SRC_URI[sha256sum] = "fe9cbc97925d14c804935f067a3ad77ef55c0bbe9befe68962318f5a767ceb22" - -# 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/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb new file mode 100644 index 000000000..e4c834caf --- /dev/null +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.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] = "0a4f67e9a9d729976e2f797e36fc1a57" +SRC_URI[sha256sum] = "f7e0b325b272281f0462e0f7fff25a833820cac19911ff677251daf6d87bce50" + +# 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/poky/meta/recipes-core/glibc/glibc_2.31.bb b/poky/meta/recipes-core/glibc/glibc_2.31.bb index 61679e2c1..9b2cf1bde 100644 --- a/poky/meta/recipes-core/glibc/glibc_2.31.bb +++ b/poky/meta/recipes-core/glibc/glibc_2.31.bb @@ -1,6 +1,8 @@ require glibc.inc require glibc-version.inc +CVE_CHECK_WHITELIST += "CVE-2020-10029" + DEPENDS += "gperf-native bison-native make-native" NATIVESDKFIXES ?= "" diff --git a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb index 733ae41f2..b6fc8a4d4 100644 --- a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb +++ b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb @@ -34,7 +34,7 @@ do_install_append_qemuall () { touch ${D}${sysconfdir}/network/nm-disabled-eth0 } -PACKAGE_ARCH_qemuall = "${MACHINE_ARCH}" +PACKAGE_ARCH = "${MACHINE_ARCH}" RDEPENDS_${PN} = "netbase" RCONFLICTS_${PN} = "netbase (< 1:5.0)" diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb deleted file mode 100644 index e41ac21a2..000000000 --- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "helper tools for all init systems" -DESCRIPTION = "This package contains helper tools that are necessary for switching between \ -the various init systems that Debian contains (e. g. sysvinit or \ -systemd). An example is deb-systemd-helper, a script that enables systemd unit \ -files without depending on a running systemd. \ -\ -It also includes the \"service\", \"invoke-rc.d\", and \"update-rc.d\" scripts which \ -provide an abstraction for enabling, disabling, starting, and stopping \ -services for all supported Debian init systems as specified by the policy. \ -\ -While this package is maintained by pkg-systemd-maintainers, it is NOT \ -specific to systemd at all. Maintainers of other init systems are welcome to \ -include their helpers in this package." -HOMEPAGE = "https://salsa.debian.org/debian/init-system-helpers" -SECTION = "base" -LICENSE = "BSD-3-Clause & GPLv2" -LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072" - -SRCREV = "760c625ec0e1ffebec2e391d891d389da0f65726" -SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https" - -S = "${WORKDIR}/git" - -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -do_install() { - install -d -m 0755 ${D}${sbindir} - install -m 0755 ${S}/script/invoke-rc.d ${D}${sbindir} - install -m 0755 ${S}/script/service ${D}${sbindir} -} - -PACKAGES += "${PN}-invoke-rc.d ${PN}-service" - -FILES_${PN} = "" -FILES_${PN}-invoke-rc.d = "${sbindir}/invoke-rc.d" -FILES_${PN}-service = "${sbindir}/service" - -ALLOW_EMPTY_${PN} = "1" - -RRECOMMENDS_${PN} += "${PN}-invoke-rc.d ${PN}-service" diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb new file mode 100644 index 000000000..b591f412c --- /dev/null +++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb @@ -0,0 +1,41 @@ +SUMMARY = "helper tools for all init systems" +DESCRIPTION = "This package contains helper tools that are necessary for switching between \ +the various init systems that Debian contains (e. g. sysvinit or \ +systemd). An example is deb-systemd-helper, a script that enables systemd unit \ +files without depending on a running systemd. \ +\ +It also includes the \"service\", \"invoke-rc.d\", and \"update-rc.d\" scripts which \ +provide an abstraction for enabling, disabling, starting, and stopping \ +services for all supported Debian init systems as specified by the policy. \ +\ +While this package is maintained by pkg-systemd-maintainers, it is NOT \ +specific to systemd at all. Maintainers of other init systems are welcome to \ +include their helpers in this package." +HOMEPAGE = "https://salsa.debian.org/debian/init-system-helpers" +SECTION = "base" +LICENSE = "BSD-3-Clause & GPLv2" +LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072" + +SRCREV = "6a1860c6f5ad295af605ddf588933544e7c24ce1" +SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https" + +S = "${WORKDIR}/git" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -d -m 0755 ${D}${sbindir} + install -m 0755 ${S}/script/invoke-rc.d ${D}${sbindir} + install -m 0755 ${S}/script/service ${D}${sbindir} +} + +PACKAGES += "${PN}-invoke-rc.d ${PN}-service" + +FILES_${PN} = "" +FILES_${PN}-invoke-rc.d = "${sbindir}/invoke-rc.d" +FILES_${PN}-service = "${sbindir}/service" + +ALLOW_EMPTY_${PN} = "1" + +RRECOMMENDS_${PN} += "${PN}-invoke-rc.d ${PN}-service" diff --git a/poky/meta/recipes-core/musl/musl.inc b/poky/meta/recipes-core/musl/musl.inc index bdce41216..54edfc88e 100644 --- a/poky/meta/recipes-core/musl/musl.inc +++ b/poky/meta/recipes-core/musl/musl.inc @@ -9,7 +9,7 @@ standards-conformance and safety." HOMEPAGE = "http://www.musl-libc.org/" LICENSE = "MIT" SECTION = "libs" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b03f1cc25363d094011f8f4fd8bcfb68" INHIBIT_DEFAULT_DEPS = "1" diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb index 0913b09aa..ed2178b5a 100644 --- a/poky/meta/recipes-core/musl/musl_git.bb +++ b/poky/meta/recipes-core/musl/musl_git.bb @@ -4,7 +4,7 @@ require musl.inc inherit linuxloader -SRCREV = "fca7428c096066482d8c3f52450810288e27515c" +SRCREV = "0a005f499cf39822166dd4db3d2d31f0639f1b1b" BASEVER = "1.2.0" diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc index 532cceb93..06fbf7a22 100644 --- a/poky/meta/recipes-core/util-linux/util-linux.inc +++ b/poky/meta/recipes-core/util-linux/util-linux.inc @@ -7,6 +7,11 @@ disk partitioning, kernel message management, filesystem creation, and system lo SECTION = "base" LICENSE = "GPLv2+ & LGPLv2.1+ & BSD-3-Clause & BSD-4-Clause" +LICENSE_${PN}-libblkid = "LGPLv2.1+" +LICENSE_${PN}-libfdisk = "LGPLv2.1+" +LICENSE_${PN}-libmount = "LGPLv2.1+" +LICENSE_${PN}-libsmartcols = "LGPLv2.1+" +LICENSE_${PN}-libuuid = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da \ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ @@ -16,7 +21,10 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \ file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c \ file://libmount/COPYING;md5=7c7e39fb7d70ffe5d693a643e29987c2 \ - file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04" + file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \ + file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \ + file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \ +" #gtk-doc is not enabled as it requires xmlto which requires util-linux inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest diff --git a/poky/meta/recipes-devtools/bison/bison_3.6.4.bb b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb index 0c877c3c5..f3d4d4244 100644 --- a/poky/meta/recipes-devtools/bison/bison_3.6.4.bb +++ b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb @@ -27,7 +27,7 @@ EXTRA_OEMAKE_append = " -l" inherit autotools gettext texinfo # The automatic m4 path detection gets confused, so force the right value -acpaths = "-I ${S}/m4" +acpaths = "-I ./m4" do_compile_prepend() { for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb deleted file mode 100644 index 29f14d907..000000000 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb +++ /dev/null @@ -1,52 +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" -DEPENDS_append_class-target = " udev" -RDEPENDS_${PN} = "libgcc" - -SRCREV = "2a74d408f4b65d603e42f6e7b6b905ac81825fc9" -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 nativesdk" diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb new file mode 100644 index 000000000..e61ea9bf8 --- /dev/null +++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.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 = "11acf45eea6dd81e891564967051e2bb10bd25f7" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ + file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ + " + +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 nativesdk" diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb index b2952ee5f..d91e42ef9 100644 --- a/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb +++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb @@ -1,7 +1,7 @@ require cmake.inc inherit native -DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native ncurses-native" +DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native" SRC_URI += "file://OEToolchainConfig.cmake \ file://environment.d-cmake.sh \ @@ -21,6 +21,7 @@ CMAKE_EXTRACONF = "\ -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \ -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \ -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \ + -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \ -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ -DHAVE_SYS_ACL_H=0 \ " diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb deleted file mode 100644 index 969894e44..000000000 --- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb +++ /dev/null @@ -1,34 +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 \ - " - -SRCREV = "ea3bcf302c1a071040e1a8b6ad77861c12a2ae99" - -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/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb new file mode 100644 index 000000000..c6d896307 --- /dev/null +++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.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 = "bac48ace91c51abe37792415e75452bbabd44d93" + +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/poky/meta/recipes-devtools/dpkg/dpkg.inc b/poky/meta/recipes-devtools/dpkg/dpkg.inc index 1c3c585d7..04fe85c4a 100644 --- a/poky/meta/recipes-devtools/dpkg/dpkg.inc +++ b/poky/meta/recipes-devtools/dpkg/dpkg.inc @@ -7,7 +7,7 @@ DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alte RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} perl" RDEPENDS_${PN}_class-native = "" -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/" +UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" inherit autotools gettext perlnative pkgconfig perl-version update-alternatives @@ -30,6 +30,18 @@ EXTRA_OECONF_append_class-target = " --disable-update-alternatives DEB_HOST_ARCH PACKAGECONFIG = "liblzma" PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" + +#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux +AUTOTOOLS_AUXDIR = "${S}/build-aux" + +do_configure_prepend () { + mkdir -p ${AUTOTOOLS_AUXDIR} + # autotools_do_configure updates po/Makefile.in.in, we also need + # update dselect/po and scripts/po + cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/dselect/po/ + cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/scripts/po/ +} + do_install_append () { if [ "${PN}" = "dpkg-native" ]; then # update-alternatives doesn't have an offline mode diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch index 7c3540736..ffe520c51 100644 --- a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch +++ b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch @@ -1,4 +1,4 @@ -From 450fece894fce750502be8accabfd88c585bda4c Mon Sep 17 00:00:00 2001 +From 15b081cc8bead80c493ab83369ecb3345a24a3dc Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 16 Jun 2020 03:57:25 +0000 Subject: [PATCH] build.c: ignore return of 1 from tar -cf @@ -23,15 +23,16 @@ Upstream-Status: Inappropriate [OE specific] Original patch by RP 2015/3/27, rebased by Paul Eggleton Signed-off-by: Paul Eggleton + --- dpkg-deb/build.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c -index a3d1912..1de7f9c 100644 +index 8436839cd..6b44a36f7 100644 --- a/dpkg-deb/build.c +++ b/dpkg-deb/build.c -@@ -427,6 +427,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, +@@ -434,6 +434,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, { int pipe_filenames[2], pipe_tarball[2]; pid_t pid_tar, pid_comp; @@ -39,7 +40,7 @@ index a3d1912..1de7f9c 100644 /* Fork off a tar. We will feed it a list of filenames on stdin later. */ m_pipe(pipe_filenames); -@@ -477,7 +478,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, +@@ -486,7 +487,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, /* All done, clean up wait for tar and to finish their job. */ close(pipe_filenames[1]); subproc_reap(pid_comp, _(" from tar -cf"), 0); diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb deleted file mode 100644 index c98a9e58e..000000000 --- a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -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 \ - file://0001-Add-support-for-riscv32-CPU.patch \ - " - -SRC_URI_append_class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch" - -SRC_URI[md5sum] = "f88f077236a3ff3decae3b25c989893d" -SRC_URI[sha256sum] = "b633cc2b0e030efb61e11029d8a3fb1123f719864c9992da2e52b471c96d0900" diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb new file mode 100644 index 000000000..d97b69c0b --- /dev/null +++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb @@ -0,0 +1,23 @@ +require dpkg.inc +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https \ + file://noman.patch \ + file://remove-tar-no-timestamp.patch \ + file://arch_pm.patch \ + 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 \ + file://0001-Add-support-for-riscv32-CPU.patch \ + " + +SRC_URI_append_class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch" + +SRCREV = "823a67d67538b1b403a32d1fef40e6e228265566" + +S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch new file mode 100644 index 000000000..0e8cbad25 --- /dev/null +++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch @@ -0,0 +1,55 @@ +From dcb36fd007ddb32d8c5cfcf5e9ddb3d713d65396 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 21 Jul 2020 09:43:03 +0800 +Subject: [PATCH] fix up check for hardlinks always false if inode > 0xFFFFFFFF + +Since commit [382ed4a1 e2fsck: use proper types for variables][1] +applied, it used ext2_ino_t instead of ino_t for referencing inode +numbers, but the type of is_hardlink's `ino' should not be instead, +The ext2_ino_t is 32bit, if inode > 0xFFFFFFFF, its value will be +truncated. + +Add a debug printf to show the value of inode, when it check for hardlink +files, it will always return false if inode > 0xFFFFFFFF +|--- a/misc/create_inode.c +|+++ b/misc/create_inode.c +|@@ -605,6 +605,7 @@ static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino) +| { +| int i; +| +|+ printf("%s %d, %lX, %lX\n", __FUNCTION__, __LINE__, hdlinks->hdl[i].src_ino, ino); +| for (i = 0; i < hdlinks->count; i++) { +| if (hdlinks->hdl[i].src_dev == dev && +| hdlinks->hdl[i].src_ino == ino) + +Here is debug message: +is_hardlink 608, 2913DB886, 913DB886 + +The length of ext2_ino_t is 32bit (typedef __u32 __bitwise ext2_ino_t;), +and ino_t is 64bit on 64bit system (such as x86-64), recover `ino' to ino_t. + +[1] https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=382ed4a1c2b60acb9db7631e86dda207bde6076e + +Upstream-Status: Submitted [https://github.com/tytso/e2fsprogs/pull/48] + +Signed-off-by: Hongxu Jia +--- + misc/create_inode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/misc/create_inode.c b/misc/create_inode.c +index e8d1df6b..837f3875 100644 +--- a/misc/create_inode.c ++++ b/misc/create_inode.c +@@ -601,7 +601,7 @@ out: + return err; + } + +-static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino) ++static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ino_t ino) + { + int i; + +-- +2.18.2 + diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb index 4ad5b03ca..15054768d 100644 --- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb +++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb @@ -6,6 +6,7 @@ SRC_URI += "file://remove.ldconfig.call.patch \ file://mkdir_p.patch \ file://0001-configure.ac-correct-AM_GNU_GETTEXT.patch \ file://0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch \ + file://0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch \ " SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \ diff --git a/poky/meta/recipes-devtools/flex/flex/check-funcs.patch b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch new file mode 100644 index 000000000..037ca81fd --- /dev/null +++ b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch @@ -0,0 +1,79 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From c42de062bbdc7c31d7181c10a74202d493280ada Mon Sep 17 00:00:00 2001 +From: Explorer09 +Date: Tue, 27 Feb 2018 09:10:12 +0800 +Subject: [PATCH] build: Move dnl comments out of AC_CHECK_FUNCS + +Due to a bug, autoheader (2.69) will treat M4 dnl comments in a quoted +argument of AC_CHECK_FUNCS as function tokens and generate a lot of +redundant and useless HAVE_* macros in config.h.in. +(Examples: HAVE_DNL, HAVE_AVAILABLE_, HAVE_BY) + +It seems to be this commit dbb4e94dc7bacbcfd4acef4f085ef752fe1aa03f of +mine that revealed this autoheader bug, and the affected config.h.in +had been shipped within flex-2.6.4 release tarball. + +I have reported the autoheader bug here: + + +As a workaround, let's move comments out of AC_CHECK_FUNCS. + +Signed-off-by: Kang-Che Sung +--- + configure.ac | 29 +++++++++++++---------------- + 1 file changed, 13 insertions(+), 16 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 55e774b0..d0f3b7da 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -166,6 +166,7 @@ strtol dnl + AC_CHECK_FUNCS([dnl + pow dnl Used only by "examples/manual/expr" + setlocale dnl Needed only if NLS is enabled ++reallocarr dnl NetBSD function. Use reallocarray if not available. + reallocarray dnl OpenBSD function. We have replacement if not available. + ]) + +diff --git a/configure.ac b/configure.ac +index 3c977a4e..9c53590f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -158,22 +158,19 @@ AC_FUNC_REALLOC + AS_IF([test "$cross_compiling" = yes], + AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation])) + +-AC_CHECK_FUNCS([dup2 dnl +-memset dnl +-regcomp dnl +-strcasecmp dnl +-strchr dnl +-strdup dnl +-strtol dnl +-], [], [AC_MSG_ERROR(required library function not found on your system)]) +- +-# Optional library functions +-AC_CHECK_FUNCS([dnl +-pow dnl Used only by "examples/manual/expr" +-setlocale dnl Needed only if NLS is enabled +-reallocarr dnl NetBSD function. Use reallocarray if not available. +-reallocarray dnl OpenBSD function. We have replacement if not available. +-]) ++dnl Autoheader (<= 2.69) bug: "dnl" comments in a quoted argument of ++dnl AC_CHECK_FUNCS will expand wierdly in config.h.in. ++dnl (https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html) ++ ++AC_CHECK_FUNCS([dup2 memset regcomp strcasecmp strchr strdup strtol], [], ++ [AC_MSG_ERROR(required library function not found on your system)]) ++ ++# Optional library functions: ++# pow - Used only by "examples/manual/expr". ++# setlocale - Needed only if NLS is enabled. ++# reallocarr - NetBSD function. Use reallocarray if not available. ++# reallocarray - OpenBSD function. We have replacement if not available. ++AC_CHECK_FUNCS([pow setlocale reallocarr reallocarray]) + + AC_CONFIG_FILES( + Makefile diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb index 43b2547fc..3d5757286 100644 --- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb +++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb @@ -15,6 +15,7 @@ SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.ta file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \ ${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \ file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \ + file://check-funcs.patch \ " SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d" diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc index a3de91a2c..5f310301b 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc @@ -66,6 +66,10 @@ SRC_URI = "\ file://0036-Enable-CET-in-cross-compiler-if-possible.patch \ file://0037-mingw32-Enable-operation_not_supported.patch \ file://0038-libatomic-Do-not-enforce-march-on-aarch64.patch \ + file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \ + file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \ + file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \ + file://pr96130.patch \ " SRC_URI[sha256sum] = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2" diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch new file mode 100644 index 000000000..73de4c759 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch @@ -0,0 +1,202 @@ +CVE: CVE-2020-13844 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:58 +0100 +Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation + flags + +Here we introduce the flags that will be used for straight line speculation. + +The new flag introduced is `-mharden-sls=`. +This flag can take arguments of `none`, `all`, or a comma seperated list of one +or more of `retbr` or `blr`. +`none` indicates no special mitigation of the straight line speculation +vulnerability. +`all` requests all mitigations currently implemented. +`retbr` requests that the RET and BR instructions have a speculation barrier +inserted after them. +`blr` requests that BLR instructions are replaced by a BL to a function stub +using a BR with a speculation barrier after it. + +Setting this on a per-function basis using attributes or the like is not +enabled, but may be in the future. + +gcc/ChangeLog: + +2020-06-02 Matthew Malcomson + + * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): + New. + (aarch64_harden_sls_blr_p): New. + * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): + New. + (aarch64_harden_sls_retbr_p): New. + (aarch64_harden_sls_blr_p): New. + (aarch64_validate_sls_mitigation): New. + (aarch64_override_options): Parse options for SLS mitigation. + * config/aarch64/aarch64.opt (-mharden-sls): New option. + * doc/invoke.texi: Document new option. +--- + gcc/config/aarch64/aarch64-protos.h | 3 ++ + gcc/config/aarch64/aarch64.c | 76 +++++++++++++++++++++++++++++++++++++ + gcc/config/aarch64/aarch64.opt | 4 ++ + gcc/doc/invoke.texi | 12 ++++++ + 4 files changed, 95 insertions(+) + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index 723d9ba..eb5f4b4 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + ++extern bool aarch64_harden_sls_retbr_p (void); ++extern bool aarch64_harden_sls_blr_p (void); ++ + #endif /* GCC_AARCH64_PROTOS_H */ +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index b86434a..437a9cf 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res, + return false; + } + ++/* Straight line speculation indicators. */ ++enum aarch64_sls_hardening_type ++{ ++ SLS_NONE = 0, ++ SLS_RETBR = 1, ++ SLS_BLR = 2, ++ SLS_ALL = 3, ++}; ++static enum aarch64_sls_hardening_type aarch64_sls_hardening; ++ ++/* Return whether we should mitigatate Straight Line Speculation for the RET ++ and BR instructions. */ ++bool ++aarch64_harden_sls_retbr_p (void) ++{ ++ return aarch64_sls_hardening & SLS_RETBR; ++} ++ ++/* Return whether we should mitigatate Straight Line Speculation for the BLR ++ instruction. */ ++bool ++aarch64_harden_sls_blr_p (void) ++{ ++ return aarch64_sls_hardening & SLS_BLR; ++} ++ ++/* As of yet we only allow setting these options globally, in the future we may ++ allow setting them per function. */ ++static void ++aarch64_validate_sls_mitigation (const char *const_str) ++{ ++ char *token_save = NULL; ++ char *str = NULL; ++ ++ if (strcmp (const_str, "none") == 0) ++ { ++ aarch64_sls_hardening = SLS_NONE; ++ return; ++ } ++ if (strcmp (const_str, "all") == 0) ++ { ++ aarch64_sls_hardening = SLS_ALL; ++ return; ++ } ++ ++ char *str_root = xstrdup (const_str); ++ str = strtok_r (str_root, ",", &token_save); ++ if (!str) ++ error ("invalid argument given to %<-mharden-sls=%>"); ++ ++ int temp = SLS_NONE; ++ while (str) ++ { ++ if (strcmp (str, "blr") == 0) ++ temp |= SLS_BLR; ++ else if (strcmp (str, "retbr") == 0) ++ temp |= SLS_RETBR; ++ else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0) ++ { ++ error ("%<%s%> must be by itself for %<-mharden-sls=%>", str); ++ break; ++ } ++ else ++ { ++ error ("invalid argument %<%s%> for %<-mharden-sls=%>", str); ++ break; ++ } ++ str = strtok_r (NULL, ",", &token_save); ++ } ++ aarch64_sls_hardening = (aarch64_sls_hardening_type) temp; ++ free (str_root); ++} ++ + /* Parses CONST_STR for branch protection features specified in + aarch64_branch_protect_types, and set any global variables required. Returns + the parsing result and assigns LAST_STR to the last processed token from +@@ -14738,6 +14811,9 @@ aarch64_override_options (void) + selected_arch = NULL; + selected_tune = NULL; + ++ if (aarch64_harden_sls_string) ++ aarch64_validate_sls_mitigation (aarch64_harden_sls_string); ++ + if (aarch64_branch_protection_string) + aarch64_validate_mbranch_protection (aarch64_branch_protection_string); + +diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt +index d99d14c..5170361 100644 +--- a/gcc/config/aarch64/aarch64.opt ++++ b/gcc/config/aarch64/aarch64.opt +@@ -71,6 +71,10 @@ mgeneral-regs-only + Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save + Generate code which uses only the general registers. + ++mharden-sls= ++Target RejectNegative Joined Var(aarch64_harden_sls_string) ++Generate code to mitigate against straight line speculation. ++ + mfix-cortex-a53-835769 + Target Report Var(aarch64_fix_a53_err835769) Init(2) Save + Workaround for ARM Cortex-A53 Erratum number 835769. +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index a2794a6..bd5b77a 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}. + -msign-return-address=@var{scope} @gol + -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf} + +@var{b-key}]|@var{bti} @gol ++-mharden-sls=@var{opts} @gol + -march=@var{name} -mcpu=@var{name} -mtune=@var{name} @gol + -moverride=@var{string} -mverbose-cost-dump @gol + -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol +@@ -17065,6 +17066,17 @@ functions. The optional argument @samp{b-key} can be used to sign the functions + with the B-key instead of the A-key. + @samp{bti} turns on branch target identification mechanism. + ++@item -mharden-sls=@var{opts} ++@opindex mharden-sls ++Enable compiler hardening against straight line speculation (SLS). ++@var{opts} is a comma-separated list of the following options: ++@table @samp ++@item retbr ++@item blr ++@end table ++In addition, @samp{-mharden-sls=all} enables all SLS hardening while ++@samp{-mharden-sls=none} disables all SLS hardening. ++ + @item -msve-vector-bits=@var{bits} + @opindex msve-vector-bits + Specify the number of bits in an SVE vector register. This option only has +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch new file mode 100644 index 000000000..823cc8b66 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch @@ -0,0 +1,607 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:59 +0100 +Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR + instructions + +Instructions following RET or BR are not necessarily executed. In order +to avoid speculation past RET and BR we can simply append a speculation +barrier. + +Since these speculation barriers will not be architecturally executed, +they are not expected to add a high performance penalty. + +The speculation barrier is to be SB when targeting architectures which +have this enabled, and DSB SY + ISB otherwise. + +We add tests for each of the cases where such an instruction was seen. + +This is implemented by modifying each machine description pattern that +emits either a RET or a BR instruction. We choose not to use something +like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the +`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn` +patterns and we find it preferable to implement the functionality in the +same way for every pattern. + +There is one particular case which is slightly tricky. The +implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs +to be mitigated against. The trampoline template is used *once* per +compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the +builtin macro __LIBGCC_TRAMPOLINE_SIZE__. +In the future we may implement function specific attributes to turn on +and off hardening on a per-function basis. +The fixed nature of the trampoline described above implies it will be +safer to ensure this speculation barrier is always used. + +Testing: + Bootstrap and regtest done on aarch64-none-linux + Used a temporary hack(1) to use these options on every test in the + testsuite and a script to check that the output never emitted an + unmitigated RET or BR. + +1) Temporary hack was a change to the testsuite to always use +`-save-temps` and run a script on the assembly output of those +compilations which produced one to ensure every RET or BR is immediately +followed by a speculation barrier. + +gcc/ChangeLog: + + * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. + * config/aarch64/aarch64.c (aarch64_output_casesi): Emit + speculation barrier after BR instruction if needs be. + (aarch64_trampoline_init): Handle ptr_mode value & adjust size + of code copied. + (aarch64_sls_barrier): New. + (aarch64_asm_trampoline_template): Add needed barriers. + * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. + (TARGET_SB): New. + (TRAMPOLINE_SIZE): Account for barrier. + * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, + simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): + Emit barrier if needs be, also account for possible barrier using + "sls_length" attribute. + (sls_length): New attribute. + (length): Determine default using any non-default sls_length + value. + +gcc/testsuite/ChangeLog: + + * gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test. + * gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c: + New test. + * gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file. + * lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok): + New proc. +--- + gcc/config/aarch64/aarch64-protos.h | 1 + + gcc/config/aarch64/aarch64.c | 41 ++++++- + gcc/config/aarch64/aarch64.h | 10 +- + gcc/config/aarch64/aarch64.md | 76 +++++++++---- + .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c | 21 ++++ + .../aarch64/sls-mitigation/sls-miti-retbr.c | 119 +++++++++++++++++++++ + .../aarch64/sls-mitigation/sls-mitigation.exp | 73 +++++++++++++ + gcc/testsuite/lib/target-supports.exp | 2 +- + 8 files changed, 318 insertions(+), 25 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index eb5f4b4..ee0ffde 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + ++const char *aarch64_sls_barrier (int); + extern bool aarch64_harden_sls_retbr_p (void); + extern bool aarch64_harden_sls_blr_p (void); + +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index 437a9cf..44e3d1f 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) + static void + aarch64_asm_trampoline_template (FILE *f) + { +- int offset1 = 16; +- int offset2 = 20; ++ int offset1 = 24; ++ int offset2 = 28; + + if (aarch64_bti_enabled ()) + { +@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f) + } + asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]); + ++ /* We always emit a speculation barrier. ++ This is because the same trampoline template is used for every nested ++ function. Since nested functions are not particularly common or ++ performant we don't worry too much about the extra instructions to copy ++ around. ++ This is not yet a problem, since we have not yet implemented function ++ specific attributes to choose between hardening against straight line ++ speculation or not, but such function specific attributes are likely to ++ happen in the future. */ ++ asm_fprintf (f, "\tdsb\tsy\n\tisb\n"); ++ + /* The trampoline needs an extra padding instruction. In case if BTI is + enabled the padding instruction is replaced by the BTI instruction at + the beginning. */ +@@ -10890,10 +10901,14 @@ static void + aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) + { + rtx fnaddr, mem, a_tramp; +- const int tramp_code_sz = 16; ++ const int tramp_code_sz = 24; + + /* Don't need to copy the trailing D-words, we fill those in below. */ +- emit_block_move (m_tramp, assemble_trampoline_template (), ++ /* We create our own memory address in Pmode so that `emit_block_move` can ++ use parts of the backend which expect Pmode addresses. */ ++ rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0)); ++ emit_block_move (gen_rtx_MEM (BLKmode, temp), ++ assemble_trampoline_template (), + GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL); + mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz); + fnaddr = XEXP (DECL_RTL (fndecl), 0); +@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands) + output_asm_insn (buf, operands); + output_asm_insn (patterns[index][1], operands); + output_asm_insn ("br\t%3", operands); ++ output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()), ++ operands); + assemble_label (asm_out_file, label); + return ""; + } +@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack () + #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI + #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND + ++/* Helper function for straight line speculation. ++ Return what barrier should be emitted for straight line speculation ++ mitigation. ++ When not mitigating against straight line speculation this function returns ++ an empty string. ++ When mitigating against straight line speculation, use: ++ * SB when the v8.5-A SB extension is enabled. ++ * DSB+ISB otherwise. */ ++const char * ++aarch64_sls_barrier (int mitigation_required) ++{ ++ return mitigation_required ++ ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb") ++ : ""; ++} ++ + /* Target-specific selftests. */ + + #if CHECKING_P +diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h +index 1ce23c6..c21015f 100644 +--- a/gcc/config/aarch64/aarch64.h ++++ b/gcc/config/aarch64/aarch64.h +@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version; + #define AARCH64_ISA_F32MM (aarch64_isa_flags & AARCH64_FL_F32MM) + #define AARCH64_ISA_F64MM (aarch64_isa_flags & AARCH64_FL_F64MM) + #define AARCH64_ISA_BF16 (aarch64_isa_flags & AARCH64_FL_BF16) ++#define AARCH64_ISA_SB (aarch64_isa_flags & AARCH64_FL_SB) + + /* Crypto is an optional extension to AdvSIMD. */ + #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) +@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version; + #define TARGET_FIX_ERR_A53_835769_DEFAULT 1 + #endif + ++/* SB instruction is enabled through +sb. */ ++#define TARGET_SB (AARCH64_ISA_SB) ++ + /* Apply the workaround for Cortex-A53 erratum 835769. */ + #define TARGET_FIX_ERR_A53_835769 \ + ((aarch64_fix_a53_err835769 == 2) \ +@@ -1058,8 +1062,10 @@ typedef struct + + #define RETURN_ADDR_RTX aarch64_return_addr + +-/* BTI c + 3 insns + 2 pointer-sized entries. */ +-#define TRAMPOLINE_SIZE (TARGET_ILP32 ? 24 : 32) ++/* BTI c + 3 insns ++ + sls barrier of DSB + ISB. ++ + 2 pointer-sized entries. */ ++#define TRAMPOLINE_SIZE (24 + (TARGET_ILP32 ? 8 : 16)) + + /* Trampolines contain dwords, so must be dword aligned. */ + #define TRAMPOLINE_ALIGNMENT 64 +diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md +index 8c8be3c..dda04ee 100644 +--- a/gcc/config/aarch64/aarch64.md ++++ b/gcc/config/aarch64/aarch64.md +@@ -407,10 +407,25 @@ + ;; Attribute that specifies whether the alternative uses MOVPRFX. + (define_attr "movprfx" "no,yes" (const_string "no")) + ++;; Attribute to specify that an alternative has the length of a single ++;; instruction plus a speculation barrier. ++(define_attr "sls_length" "none,retbr,casesi" (const_string "none")) ++ + (define_attr "length" "" + (cond [(eq_attr "movprfx" "yes") + (const_int 8) +- ] (const_int 4))) ++ ++ (eq_attr "sls_length" "retbr") ++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4) ++ (match_test "TARGET_SB") (const_int 8)] ++ (const_int 12)) ++ ++ (eq_attr "sls_length" "casesi") ++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16) ++ (match_test "TARGET_SB") (const_int 20)] ++ (const_int 24)) ++ ] ++ (const_int 4))) + + ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has + ;; no predicated insns. +@@ -447,8 +462,12 @@ + (define_insn "indirect_jump" + [(set (pc) (match_operand:DI 0 "register_operand" "r"))] + "" +- "br\\t%0" +- [(set_attr "type" "branch")] ++ { ++ output_asm_insn ("br\\t%0", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_insn "jump" +@@ -765,7 +784,7 @@ + "* + return aarch64_output_casesi (operands); + " +- [(set_attr "length" "16") ++ [(set_attr "sls_length" "casesi") + (set_attr "type" "branch")] + ) + +@@ -844,18 +863,23 @@ + [(return)] + "" + { ++ const char *ret = NULL; + if (aarch64_return_address_signing_enabled () + && TARGET_ARMV8_3 + && !crtl->calls_eh_return) + { + if (aarch64_ra_sign_key == AARCH64_KEY_B) +- return "retab"; ++ ret = "retab"; + else +- return "retaa"; ++ ret = "retaa"; + } +- return "ret"; ++ else ++ ret = "ret"; ++ output_asm_insn (ret, operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); + } +- [(set_attr "type" "branch")] ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_expand "return" +@@ -867,8 +891,12 @@ + (define_insn "simple_return" + [(simple_return)] + "" +- "ret" +- [(set_attr "type" "branch")] ++ { ++ output_asm_insn ("ret", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_insn "*cb1" +@@ -1066,10 +1094,16 @@ + (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) + (return)] + "SIBLING_CALL_P (insn)" +- "@ +- br\\t%0 +- b\\t%c0" +- [(set_attr "type" "branch, branch")] ++ { ++ if (which_alternative == 0) ++ { ++ output_asm_insn ("br\\t%0", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ return "b\\t%c0"; ++ } ++ [(set_attr "type" "branch, branch") ++ (set_attr "sls_length" "retbr,none")] + ) + + (define_insn "*sibcall_value_insn" +@@ -1080,10 +1114,16 @@ + (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) + (return)] + "SIBLING_CALL_P (insn)" +- "@ +- br\\t%1 +- b\\t%c1" +- [(set_attr "type" "branch, branch")] ++ { ++ if (which_alternative == 0) ++ { ++ output_asm_insn ("br\\t%1", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ return "b\\t%c1"; ++ } ++ [(set_attr "type" "branch, branch") ++ (set_attr "sls_length" "retbr,none")] + ) + + ;; Call subroutine returning any type. +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c +new file mode 100644 +index 0000000..fa1887a +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c +@@ -0,0 +1,21 @@ ++/* Avoid ILP32 since pacret is only available for LP64 */ ++/* { dg-do compile { target { ! ilp32 } } } */ ++/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */ ++ ++/* Testing the do_return pattern for retaa and retab. */ ++long retbr_subcall(void); ++long retbr_do_return_retaa(void) ++{ ++ return retbr_subcall()+1; ++} ++ ++__attribute__((target("branch-protection=pac-ret+b-key"))) ++long retbr_do_return_retab(void) ++{ ++ return retbr_subcall()+1; ++} ++ ++/* Ensure there are no BR or RET instructions which are not directly followed ++ by a speculation barrier. */ ++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */ ++/* { dg-final { scan-assembler-not {ret\t} } } */ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c +new file mode 100644 +index 0000000..76b8d03 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c +@@ -0,0 +1,119 @@ ++/* We ensure that -Wpedantic is off since it complains about the trampolines ++ we explicitly want to test. */ ++/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */ ++/* ++ Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR ++ instructions. ++ */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++int ++retbr_sibcall_value_insn (struct sls_testclass x) ++{ ++ return x.x(x.left, x.right); ++} ++ ++void ++retbr_sibcall_insn (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++} ++ ++/* Aim to test two different returns. ++ One that introduces a tail call in the middle of the function, and one that ++ has a normal return. */ ++int ++retbr_multiple_returns (struct sls_testclass x) ++{ ++ int temp; ++ if (x.left % 10) ++ return x.x(x.left, 100); ++ else if (x.right % 20) ++ { ++ return x.x(x.left * x.right, 100); ++ } ++ temp = x.left % x.right; ++ temp *= 100; ++ temp /= 2; ++ return temp % 3; ++} ++ ++void ++retbr_multiple_returns_void (struct sls_testclass x) ++{ ++ if (x.left % 10) ++ { ++ x.y(x.left, 100); ++ } ++ else if (x.right % 20) ++ { ++ x.y(x.left * x.right, 100); ++ } ++ return; ++} ++ ++/* Testing the casesi jump via register. */ ++__attribute__ ((optimize ("Os"))) ++int ++retbr_casesi_dispatch (struct sls_testclass x) ++{ ++ switch (x.left) ++ { ++ case -5: ++ return -2; ++ case -3: ++ return -1; ++ case 0: ++ return 0; ++ case 3: ++ return 1; ++ case 5: ++ break; ++ default: ++ __builtin_unreachable (); ++ } ++ return x.right; ++} ++ ++/* Testing the BR in trampolines is mitigated against. */ ++void f1 (void *); ++void f3 (void *, void (*)(void *)); ++void f2 (void *); ++ ++int ++retbr_trampolines (void *a, int b) ++{ ++ if (!b) ++ { ++ f1 (a); ++ return 1; ++ } ++ if (b) ++ { ++ void retbr_tramp_internal (void *c) ++ { ++ if (c == a) ++ f2 (c); ++ } ++ f3 (a, retbr_tramp_internal); ++ } ++ return 0; ++} ++ ++/* Testing the indirect_jump pattern. */ ++void ++retbr_indirect_jump (int *buf) ++{ ++ __builtin_longjmp(buf, 1); ++} ++ ++/* Ensure there are no BR or RET instructions which are not directly followed ++ by a speculation barrier. */ ++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp +new file mode 100644 +index 0000000..8122503 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp +@@ -0,0 +1,73 @@ ++# Regression driver for SLS mitigation on AArch64. ++# Copyright (C) 2020 Free Software Foundation, Inc. ++# Contributed by ARM Ltd. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . */ ++ ++# Exit immediately if this isn't an AArch64 target. ++if {![istarget aarch64*-*-*] } then { ++ return ++} ++ ++# Load support procs. ++load_lib gcc-dg.exp ++load_lib torture-options.exp ++ ++# If a testcase doesn't have special options, use these. ++global DEFAULT_CFLAGS ++if ![info exists DEFAULT_CFLAGS] then { ++ set DEFAULT_CFLAGS " " ++} ++ ++# Initialize `dg'. ++dg-init ++torture-init ++ ++# Use different architectures as well as the normal optimisation options. ++# (i.e. use both SB and DSB+ISB barriers). ++ ++set save-dg-do-what-default ${dg-do-what-default} ++# Main loop. ++# Run with torture tests (i.e. a bunch of different optimisation levels) just ++# to increase test coverage. ++set dg-do-what-default assemble ++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ ++ "-save-temps" $DEFAULT_CFLAGS ++ ++# Run the same tests but this time with SB extension. ++# Since not all supported assemblers will support that extension we decide ++# whether to assemble or just compile based on whether the extension is ++# supported for the available assembler. ++ ++set templist {} ++foreach x $DG_TORTURE_OPTIONS { ++ lappend templist "$x -march=armv8.3-a+sb " ++ lappend templist "$x -march=armv8-a+sb " ++} ++set-torture-options $templist ++if { [check_effective_target_aarch64_asm_sb_ok] } { ++ set dg-do-what-default assemble ++} else { ++ set dg-do-what-default compile ++} ++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ ++ "-save-temps" $DEFAULT_CFLAGS ++set dg-do-what-default ${save-dg-do-what-default} ++ ++# All done. ++torture-finish ++dg-finish +diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp +index 8a186dd..9d2e093 100644 +--- a/gcc/testsuite/lib/target-supports.exp ++++ b/gcc/testsuite/lib/target-supports.exp +@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } { + # various architecture extensions via the .arch_extension pseudo-op. + + foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve" +- "i8mm" "f32mm" "f64mm" "bf16" } { ++ "i8mm" "f32mm" "f64mm" "bf16" "sb" } { + eval [string map [list FUNC $aarch64_ext] { + proc check_effective_target_aarch64_asm_FUNC_ok { } { + if { [istarget aarch64*-*-*] } { +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch new file mode 100644 index 000000000..716a36717 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch @@ -0,0 +1,658 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:59 +0100 +Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction + +This patch introduces the mitigation for Straight Line Speculation past +the BLR instruction. + +This mitigation replaces BLR instructions with a BL to a stub which uses +a BR to jump to the original value. These function stubs are then +appended with a speculation barrier to ensure no straight line +speculation happens after these jumps. + +When optimising for speed we use a set of stubs for each function since +this should help the branch predictor make more accurate predictions +about where a stub should branch. + +When optimising for size we use one set of stubs for all functions. +This set of stubs can have human readable names, and we are using +`__call_indirect_x` for register x. + +When BTI branch protection is enabled the BLR instruction can jump to a +`BTI c` instruction using any register, while the BR instruction can +only jump to a `BTI c` instruction using the x16 or x17 registers. +Hence, in order to ensure this transformation is safe we mov the value +of the original register into x16 and use x16 for the BR. + +As an example when optimising for size: +a + BLR x0 +instruction would get transformed to something like + BL __call_indirect_x0 +where __call_indirect_x0 labels a thunk that contains +__call_indirect_x0: + MOV X16, X0 + BR X16 + + +The first version of this patch used local symbols specific to a +compilation unit to try and avoid relocations. +This was mistaken since functions coming from the same compilation unit +can still be in different sections, and the assembler will insert +relocations at jumps between sections. + +On any relocation the linker is permitted to emit a veneer to handle +jumps between symbols that are very far apart. The registers x16 and +x17 may be clobbered by these veneers. +Hence the function stubs cannot rely on the values of x16 and x17 being +the same as just before the function stub is called. + +Similar can be said for the hot/cold partitioning of single functions, +so function-local stubs have the same restriction. + +This updated version of the patch never emits function stubs for x16 and +x17, and instead forces other registers to be used. + +Given the above, there is now no benefit to local symbols (since they +are not enough to avoid dealing with linker intricacies). This patch +now uses global symbols with hidden visibility each stored in their own +COMDAT section. This means stubs can be shared between compilation +units while still avoiding the PLT indirection. + +This patch also removes the `__call_indirect_x30` stub (and +function-local equivalent) which would simply jump back to the original +location. + +The function-local stubs are emitted to the assembly output file in one +chunk, which means we need not add the speculation barrier directly +after each one. +This is because we know for certain that the instructions directly after +the BR in all but the last function stub will be from another one of +these stubs and hence will not contain a speculation gadget. +Instead we add a speculation barrier at the end of the sequence of +stubs. + +The global stubs are emitted in COMDAT/.linkonce sections by +themselves so that the linker can remove duplicates from multiple object +files. This means they are not emitted in one chunk, and each one must +include the speculation barrier. + +Another difference is that since the global stubs are shared across +compilation units we do not know that all functions will be targeting an +architecture supporting the SB instruction. +Rather than provide multiple stubs for each architecture, we provide a +stub that will work for all architectures -- using the DSB+ISB barrier. + +This mitigation does not apply for BLR instructions in the following +places: +- Some accesses to thread-local variables use a code sequence with a BLR + instruction. This code sequence is part of the binary interface between + compiler and linker. If this BLR instruction needs to be mitigated, it'd + probably be best to do so in the linker. It seems that the code sequence + for thread-local variable access is unlikely to lead to a Spectre Revalation + Gadget. +- PLT stubs are produced by the linker and each contain a BLR instruction. + It seems that at most only after the last PLT stub a Spectre Revalation + Gadget might appear. + +Testing: + Bootstrap and regtest on AArch64 + (with BOOT_CFLAGS="-mharden-sls=retbr,blr") + Used a temporary hack(1) in gcc-dg.exp to use these options on every + test in the testsuite, a slight modification to emit the speculation + barrier after every function stub, and a script to check that the + output never emitted a BLR, or unmitigated BR or RET instruction. + Similar on an aarch64-none-elf cross-compiler. + +1) Temporary hack emitted a speculation barrier at the end of every stub +function, and used a script to ensure that: + a) Every RET or BR is immediately followed by a speculation barrier. + b) No BLR instruction is emitted by compiler. + +gcc/ChangeLog: + + * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): + New declaration. + * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new + stub registers class. + (aarch64_class_max_nregs): Likewise. + (aarch64_register_move_cost): Likewise. + (aarch64_sls_shared_thunks): Global array to store stub labels. + (aarch64_sls_emit_function_stub): New. + (aarch64_create_blr_label): New. + (aarch64_sls_emit_blr_function_thunks): New. + (aarch64_sls_emit_shared_blr_thunks): New. + (aarch64_asm_file_end): New. + (aarch64_indirect_call_asm): New. + (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. + (TARGET_ASM_FUNCTION_EPILOGUE): Use + aarch64_sls_emit_blr_function_thunks. + * config/aarch64/aarch64.h (STB_REGNUM_P): New. + (enum reg_class): Add STUB_REGS class. + (machine_function): Introduce `call_via` array for + function-local stub labels. + * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use + aarch64_indirect_call_asm to emit code when hardening BLR + instructions. + * config/aarch64/constraints.md (Ucr): New constraint + representing registers for indirect calls. Is GENERAL_REGS + usually, and STUB_REGS when hardening BLR instruction against + SLS. + * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class + is also a general register. + +gcc/testsuite/ChangeLog: + + * gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test. + * gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test. +--- + gcc/config/aarch64/aarch64-protos.h | 1 + + gcc/config/aarch64/aarch64.c | 225 ++++++++++++++++++++- + gcc/config/aarch64/aarch64.h | 15 ++ + gcc/config/aarch64/aarch64.md | 11 +- + gcc/config/aarch64/constraints.md | 9 + + gcc/config/aarch64/predicates.md | 3 +- + .../aarch64/sls-mitigation/sls-miti-blr-bti.c | 40 ++++ + .../aarch64/sls-mitigation/sls-miti-blr.c | 33 +++ + 8 files changed, 328 insertions(+), 9 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index ee0ffde..839f801 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + + const char *aarch64_sls_barrier (int); ++const char *aarch64_indirect_call_asm (rtx); + extern bool aarch64_harden_sls_retbr_p (void); + extern bool aarch64_harden_sls_blr_p (void); + +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index 2389d49..0f7bba3 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x) + enum reg_class + aarch64_regno_regclass (unsigned regno) + { ++ if (STUB_REGNUM_P (regno)) ++ return STUB_REGS; ++ + if (GP_REGNUM_P (regno)) + return GENERAL_REGS; + +@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode) + unsigned int nregs, vec_flags; + switch (regclass) + { ++ case STUB_REGS: + case TAILCALL_ADDR_REGS: + case POINTER_REGS: + case GENERAL_REGS: +@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode, + = aarch64_tune_params.regmove_cost; + + /* Caller save and pointer regs are equivalent to GENERAL_REGS. */ +- if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS) ++ if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS ++ || to == STUB_REGS) + to = GENERAL_REGS; + +- if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS) ++ if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS ++ || from == STUB_REGS) + from = GENERAL_REGS; + + /* Make RDFFR very expensive. In particular, if we know that the FFR +@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required) + : ""; + } + ++static GTY (()) tree aarch64_sls_shared_thunks[30]; ++static GTY (()) bool aarch64_sls_shared_thunks_needed = false; ++const char *indirect_symbol_names[30] = { ++ "__call_indirect_x0", ++ "__call_indirect_x1", ++ "__call_indirect_x2", ++ "__call_indirect_x3", ++ "__call_indirect_x4", ++ "__call_indirect_x5", ++ "__call_indirect_x6", ++ "__call_indirect_x7", ++ "__call_indirect_x8", ++ "__call_indirect_x9", ++ "__call_indirect_x10", ++ "__call_indirect_x11", ++ "__call_indirect_x12", ++ "__call_indirect_x13", ++ "__call_indirect_x14", ++ "__call_indirect_x15", ++ "", /* "__call_indirect_x16", */ ++ "", /* "__call_indirect_x17", */ ++ "__call_indirect_x18", ++ "__call_indirect_x19", ++ "__call_indirect_x20", ++ "__call_indirect_x21", ++ "__call_indirect_x22", ++ "__call_indirect_x23", ++ "__call_indirect_x24", ++ "__call_indirect_x25", ++ "__call_indirect_x26", ++ "__call_indirect_x27", ++ "__call_indirect_x28", ++ "__call_indirect_x29", ++}; ++ ++/* Function to create a BLR thunk. This thunk is used to mitigate straight ++ line speculation. Instead of a simple BLR that can be speculated past, ++ we emit a BL to this thunk, and this thunk contains a BR to the relevant ++ register. These thunks have the relevant speculation barries put after ++ their indirect branch so that speculation is blocked. ++ ++ We use such a thunk so the speculation barriers are kept off the ++ architecturally executed path in order to reduce the performance overhead. ++ ++ When optimizing for size we use stubs shared by the linked object. ++ When optimizing for performance we emit stubs for each function in the hope ++ that the branch predictor can better train on jumps specific for a given ++ function. */ ++rtx ++aarch64_sls_create_blr_label (int regnum) ++{ ++ gcc_assert (STUB_REGNUM_P (regnum)); ++ if (optimize_function_for_size_p (cfun)) ++ { ++ /* For the thunks shared between different functions in this compilation ++ unit we use a named symbol -- this is just for users to more easily ++ understand the generated assembly. */ ++ aarch64_sls_shared_thunks_needed = true; ++ const char *thunk_name = indirect_symbol_names[regnum]; ++ if (aarch64_sls_shared_thunks[regnum] == NULL) ++ { ++ /* Build a decl representing this function stub and record it for ++ later. We build a decl here so we can use the GCC machinery for ++ handling sections automatically (through `get_named_section` and ++ `make_decl_one_only`). That saves us a lot of trouble handling ++ the specifics of different output file formats. */ ++ tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL, ++ get_identifier (thunk_name), ++ build_function_type_list (void_type_node, ++ NULL_TREE)); ++ DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL, ++ NULL_TREE, void_type_node); ++ TREE_PUBLIC (decl) = 1; ++ TREE_STATIC (decl) = 1; ++ DECL_IGNORED_P (decl) = 1; ++ DECL_ARTIFICIAL (decl) = 1; ++ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl)); ++ resolve_unique_section (decl, 0, false); ++ aarch64_sls_shared_thunks[regnum] = decl; ++ } ++ ++ return gen_rtx_SYMBOL_REF (Pmode, thunk_name); ++ } ++ ++ if (cfun->machine->call_via[regnum] == NULL) ++ cfun->machine->call_via[regnum] ++ = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ()); ++ return cfun->machine->call_via[regnum]; ++} ++ ++/* Helper function for aarch64_sls_emit_blr_function_thunks and ++ aarch64_sls_emit_shared_blr_thunks below. */ ++static void ++aarch64_sls_emit_function_stub (FILE *out_file, int regnum) ++{ ++ /* Save in x16 and branch to that function so this transformation does ++ not prevent jumping to `BTI c` instructions. */ ++ asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum); ++ asm_fprintf (out_file, "\tbr\tx16\n"); ++} ++ ++/* Emit all BLR stubs for this particular function. ++ Here we emit all the BLR stubs needed for the current function. Since we ++ emit these stubs in a consecutive block we know there will be no speculation ++ gadgets between each stub, and hence we only emit a speculation barrier at ++ the end of the stub sequences. ++ ++ This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook. */ ++void ++aarch64_sls_emit_blr_function_thunks (FILE *out_file) ++{ ++ if (! aarch64_harden_sls_blr_p ()) ++ return; ++ ++ bool any_functions_emitted = false; ++ /* We must save and restore the current function section since this assembly ++ is emitted at the end of the function. This means it can be emitted *just ++ after* the cold section of a function. That cold part would be emitted in ++ a different section. That switch would trigger a `.cfi_endproc` directive ++ to be emitted in the original section and a `.cfi_startproc` directive to ++ be emitted in the new section. Switching to the original section without ++ restoring would mean that the `.cfi_endproc` emitted as a function ends ++ would happen in a different section -- leaving an unmatched ++ `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc` ++ in the standard text section. */ ++ section *save_text_section = in_section; ++ switch_to_section (function_section (current_function_decl)); ++ for (int regnum = 0; regnum < 30; ++regnum) ++ { ++ rtx specu_label = cfun->machine->call_via[regnum]; ++ if (specu_label == NULL) ++ continue; ++ ++ targetm.asm_out.print_operand (out_file, specu_label, 0); ++ asm_fprintf (out_file, ":\n"); ++ aarch64_sls_emit_function_stub (out_file, regnum); ++ any_functions_emitted = true; ++ } ++ if (any_functions_emitted) ++ /* Can use the SB if needs be here, since this stub will only be used ++ by the current function, and hence for the current target. */ ++ asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true)); ++ switch_to_section (save_text_section); ++} ++ ++/* Emit shared BLR stubs for the current compilation unit. ++ Over the course of compiling this unit we may have converted some BLR ++ instructions to a BL to a shared stub function. This is where we emit those ++ stub functions. ++ This function is for the stubs shared between different functions in this ++ compilation unit. We share when optimizing for size instead of speed. ++ ++ This function is called through the TARGET_ASM_FILE_END hook. */ ++void ++aarch64_sls_emit_shared_blr_thunks (FILE *out_file) ++{ ++ if (! aarch64_sls_shared_thunks_needed) ++ return; ++ ++ for (int regnum = 0; regnum < 30; ++regnum) ++ { ++ tree decl = aarch64_sls_shared_thunks[regnum]; ++ if (!decl) ++ continue; ++ ++ const char *name = indirect_symbol_names[regnum]; ++ switch_to_section (get_named_section (decl, NULL, 0)); ++ ASM_OUTPUT_ALIGN (out_file, 2); ++ targetm.asm_out.globalize_label (out_file, name); ++ /* Only emits if the compiler is configured for an assembler that can ++ handle visibility directives. */ ++ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN); ++ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function"); ++ ASM_OUTPUT_LABEL (out_file, name); ++ aarch64_sls_emit_function_stub (out_file, regnum); ++ /* Use the most conservative target to ensure it can always be used by any ++ function in the translation unit. */ ++ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n"); ++ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl); ++ } ++} ++ ++/* Implement TARGET_ASM_FILE_END. */ ++void ++aarch64_asm_file_end () ++{ ++ aarch64_sls_emit_shared_blr_thunks (asm_out_file); ++ /* Since this function will be called for the ASM_FILE_END hook, we ensure ++ that what would be called otherwise (e.g. `file_end_indicate_exec_stack` ++ for FreeBSD) still gets called. */ ++#ifdef TARGET_ASM_FILE_END ++ TARGET_ASM_FILE_END (); ++#endif ++} ++ ++const char * ++aarch64_indirect_call_asm (rtx addr) ++{ ++ gcc_assert (REG_P (addr)); ++ if (aarch64_harden_sls_blr_p ()) ++ { ++ rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr)); ++ output_asm_insn ("bl\t%0", &stub_label); ++ } ++ else ++ output_asm_insn ("blr\t%0", &addr); ++ return ""; ++} ++ + /* Target-specific selftests. */ + + #if CHECKING_P +@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p + #undef TARGET_MD_ASM_ADJUST + #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust + ++#undef TARGET_ASM_FILE_END ++#define TARGET_ASM_FILE_END aarch64_asm_file_end ++ ++#undef TARGET_ASM_FUNCTION_EPILOGUE ++#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks ++ + struct gcc_target targetm = TARGET_INITIALIZER; + + #include "gt-aarch64.h" +diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h +index 8e0fc37..7331450 100644 +--- a/gcc/config/aarch64/aarch64.h ++++ b/gcc/config/aarch64/aarch64.h +@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version; + #define GP_REGNUM_P(REGNO) \ + (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM)) + ++/* Registers known to be preserved over a BL instruction. This consists of the ++ GENERAL_REGS without x16, x17, and x30. The x30 register is changed by the ++ BL instruction itself, while the x16 and x17 registers may be used by ++ veneers which can be inserted by the linker. */ ++#define STUB_REGNUM_P(REGNO) \ ++ (GP_REGNUM_P (REGNO) \ ++ && (REGNO) != R16_REGNUM \ ++ && (REGNO) != R17_REGNUM \ ++ && (REGNO) != R30_REGNUM) \ ++ + #define FP_REGNUM_P(REGNO) \ + (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM)) + +@@ -667,6 +677,7 @@ enum reg_class + { + NO_REGS, + TAILCALL_ADDR_REGS, ++ STUB_REGS, + GENERAL_REGS, + STACK_REG, + POINTER_REGS, +@@ -689,6 +700,7 @@ enum reg_class + { \ + "NO_REGS", \ + "TAILCALL_ADDR_REGS", \ ++ "STUB_REGS", \ + "GENERAL_REGS", \ + "STACK_REG", \ + "POINTER_REGS", \ +@@ -708,6 +720,7 @@ enum reg_class + { \ + { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \ + { 0x00030000, 0x00000000, 0x00000000 }, /* TAILCALL_ADDR_REGS */\ ++ { 0x3ffcffff, 0x00000000, 0x00000000 }, /* STUB_REGS */ \ + { 0x7fffffff, 0x00000000, 0x00000003 }, /* GENERAL_REGS */ \ + { 0x80000000, 0x00000000, 0x00000000 }, /* STACK_REG */ \ + { 0xffffffff, 0x00000000, 0x00000003 }, /* POINTER_REGS */ \ +@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function + struct aarch64_frame frame; + /* One entry for each hard register. */ + bool reg_is_wrapped_separately[LAST_SAVED_REGNUM]; ++ /* One entry for each general purpose register. */ ++ rtx call_via[SP_REGNUM]; + bool label_is_assembled; + } machine_function; + #endif +diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md +index dda04ee..43da754 100644 +--- a/gcc/config/aarch64/aarch64.md ++++ b/gcc/config/aarch64/aarch64.md +@@ -1022,16 +1022,15 @@ + ) + + (define_insn "*call_insn" +- [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf")) ++ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf")) + (match_operand 1 "" "")) + (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) + (clobber (reg:DI LR_REGNUM))] + "" + "@ +- blr\\t%0 ++ * return aarch64_indirect_call_asm (operands[0]); + bl\\t%c0" +- [(set_attr "type" "call, call")] +-) ++ [(set_attr "type" "call, call")]) + + (define_expand "call_value" + [(parallel +@@ -1050,13 +1049,13 @@ + + (define_insn "*call_value_insn" + [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf")) ++ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf")) + (match_operand 2 "" ""))) + (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) + (clobber (reg:DI LR_REGNUM))] + "" + "@ +- blr\\t%1 ++ * return aarch64_indirect_call_asm (operands[1]); + bl\\t%c1" + [(set_attr "type" "call, call")] + ) +diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md +index d993268..8cc6f50 100644 +--- a/gcc/config/aarch64/constraints.md ++++ b/gcc/config/aarch64/constraints.md +@@ -24,6 +24,15 @@ + (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS" + "@internal Registers suitable for an indirect tail call") + ++(define_register_constraint "Ucr" ++ "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS" ++ "@internal Registers to be used for an indirect call. ++ This is usually the general registers, but when we are hardening against ++ Straight Line Speculation we disallow x16, x17, and x30 so we can use ++ indirection stubs. These indirection stubs cannot use the above registers ++ since they will be reached by a BL that may have to go through a linker ++ veneer.") ++ + (define_register_constraint "w" "FP_REGS" + "Floating point and SIMD vector registers.") + +diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md +index 215fcec..1754b1e 100644 +--- a/gcc/config/aarch64/predicates.md ++++ b/gcc/config/aarch64/predicates.md +@@ -32,7 +32,8 @@ + + (define_predicate "aarch64_general_reg" + (and (match_operand 0 "register_operand") +- (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) ++ (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS ++ || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) + + ;; Return true if OP a (const_int 0) operand. + (define_predicate "const0_operand" +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c +new file mode 100644 +index 0000000..b1fb754 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c +@@ -0,0 +1,40 @@ ++/* { dg-do compile } */ ++/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */ ++/* ++ Ensure that the SLS hardening of BLR leaves no BLR instructions. ++ Here we also check that there are no BR instructions with anything except an ++ x16 or x17 register. This is because a `BTI c` instruction can be branched ++ to using a BLR instruction using any register, but can only be branched to ++ with a BR using an x16 or x17 register. ++ */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++/* We test both RTL patterns for a call which returns a value and a call which ++ does not. */ ++int blr_call_value (struct sls_testclass x) ++{ ++ int retval = x.x(x.left, x.right); ++ if (retval % 10) ++ return 100; ++ return 9; ++} ++ ++int blr_call (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++ if (x.left % 10) ++ return 100; ++ return 9; ++} ++ ++/* { dg-final { scan-assembler-not {\tblr\t} } } */ ++/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */ ++/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */ ++ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c +new file mode 100644 +index 0000000..88bafff +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c +@@ -0,0 +1,33 @@ ++/* { dg-additional-options "-mharden-sls=blr -save-temps" } */ ++/* Ensure that the SLS hardening of BLR leaves no BLR instructions. ++ We only test that all BLR instructions have been removed, not that the ++ resulting code makes sense. */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++/* We test both RTL patterns for a call which returns a value and a call which ++ does not. */ ++int blr_call_value (struct sls_testclass x) ++{ ++ int retval = x.x(x.left, x.right); ++ if (retval % 10) ++ return 100; ++ return 9; ++} ++ ++int blr_call (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++ if (x.left % 10) ++ return 100; ++ return 9; ++} ++ ++/* { dg-final { scan-assembler-not {\tblr\t} } } */ ++/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */ +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch new file mode 100644 index 000000000..f0e6f85e2 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch @@ -0,0 +1,106 @@ +From 0d03c0ee5213703ec6d9ffa632fa5298d83adaaa Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Mon, 13 Jul 2020 18:25:53 +0200 +Subject: [PATCH] ipa-fnsummary: Fix ICE with switch predicates [PR96130] + +The following testcase ICEs since r10-3199. +There is a switch with default label, where the controlling expression has +range just 0..7 and there are case labels for all those 8 values, but +nothing has yet optimized away the default. +Since r10-3199, set_switch_stmt_execution_predicate sets the switch to +default label's edge's predicate to a false predicate and then +compute_bb_predicates propagates the predicates through the cfg, but false +predicates aren't really added. The caller of compute_bb_predicates +in one place handles NULL bb->aux as false predicate: + if (fbi.info) + { + if (bb->aux) + bb_predicate = *(predicate *) bb->aux; + else + bb_predicate = false; + } + else + bb_predicate = true; +but then in two further spots that the patch below is changing +it assumes bb->aux must be non-NULL. Those two spots are guarded by a +condition that is only true if fbi.info is non-NULL, so I think the right +fix is to treat NULL aux as false predicate in those spots too. + +2020-07-13 Jakub Jelinek + + PR ipa/96130 + * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux + as false predicate. + + * gcc.dg/torture/pr96130.c: New test. + +(cherry picked from commit 776e48e0931db69f158f40e5cb8e15463d879a42) +--- + gcc/ipa-fnsummary.c | 10 ++++++++-- + gcc/testsuite/gcc.dg/torture/pr96130.c | 26 ++++++++++++++++++++++++++ + 2 files changed, 34 insertions(+), 2 deletions(-) + create mode 100644 gcc/testsuite/gcc.dg/torture/pr96130.c + +diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c +index 045a0ecf766..55a0b272a96 100644 +--- a/gcc/ipa-fnsummary.c ++++ b/gcc/ipa-fnsummary.c +@@ -2766,7 +2766,10 @@ analyze_function_body (struct cgraph_node *node, bool early) + edge ex; + unsigned int j; + class tree_niter_desc niter_desc; +- bb_predicate = *(predicate *) loop->header->aux; ++ if (loop->header->aux) ++ bb_predicate = *(predicate *) loop->header->aux; ++ else ++ bb_predicate = false; + + exits = get_loop_exit_edges (loop); + FOR_EACH_VEC_ELT (exits, j, ex) +@@ -2799,7 +2802,10 @@ analyze_function_body (struct cgraph_node *node, bool early) + for (unsigned i = 0; i < loop->num_nodes; i++) + { + gimple_stmt_iterator gsi; +- bb_predicate = *(predicate *) body[i]->aux; ++ if (body[i]->aux) ++ bb_predicate = *(predicate *) body[i]->aux; ++ else ++ bb_predicate = false; + for (gsi = gsi_start_bb (body[i]); !gsi_end_p (gsi); + gsi_next (&gsi)) + { +diff --git a/gcc/testsuite/gcc.dg/torture/pr96130.c b/gcc/testsuite/gcc.dg/torture/pr96130.c +new file mode 100644 +index 00000000000..f722b9ad2a9 +--- /dev/null ++++ b/gcc/testsuite/gcc.dg/torture/pr96130.c +@@ -0,0 +1,26 @@ ++/* PR ipa/96130 */ ++/* { dg-do compile } */ ++ ++struct S { unsigned j : 3; }; ++int k, l, m; ++ ++void ++foo (struct S x) ++{ ++ while (l != 5) ++ switch (x.j) ++ { ++ case 1: ++ case 3: ++ case 4: ++ case 6: ++ case 2: ++ case 5: ++ l = m; ++ case 7: ++ case 0: ++ k = 0; ++ default: ++ break; ++ } ++} +-- +2.18.4 + diff --git a/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch b/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch new file mode 100644 index 000000000..b13bb9e66 --- /dev/null +++ b/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/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb index 496224a5c..0da2c6607 100644 --- a/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb +++ b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb @@ -8,6 +8,7 @@ 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" diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.14.bb b/poky/meta/recipes-devtools/go/go-runtime_1.14.bb index 43b68b4e4..4eeee65e0 100644 --- a/poky/meta/recipes-devtools/go/go-runtime_1.14.bb +++ b/poky/meta/recipes-devtools/go/go-runtime_1.14.bb @@ -1,2 +1,3 @@ +export CGO_ENABLED_riscv64 = "" require go-${PV}.inc require go-runtime.inc diff --git a/poky/meta/recipes-devtools/go/go_1.14.bb b/poky/meta/recipes-devtools/go/go_1.14.bb index 5d40cf9d0..bc90a1329 100644 --- a/poky/meta/recipes-devtools/go/go_1.14.bb +++ b/poky/meta/recipes-devtools/go/go_1.14.bb @@ -2,7 +2,7 @@ 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. diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch b/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch deleted file mode 100644 index d43f7e1a7..000000000 --- a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch +++ /dev/null @@ -1,62 +0,0 @@ -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/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb index d1658a739..918141342 100644 --- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb +++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb @@ -10,13 +10,12 @@ inherit autotools pkgconfig update-alternatives DEPENDS = "zlib e2fsprogs util-linux" RDEPENDS_mtd-utils-tests += "bash" -PV = "2.1.1" +PV = "2.1.2" -SRCREV = "4443221ce9b88440cd9f5bb78e6fe95621d36c8a" +SRCREV = "7b986779342021bda87c04da3bf729718736d8ab" SRC_URI = "git://git.infradead.org/mtd-utils.git \ file://add-exclusion-to-mkfs-jffs2-git-2.patch \ - file://0001-mtd-utils-Fix-return-value-of-ubiformat.patch \ -" + " S = "${WORKDIR}/git/" diff --git a/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch b/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch new file mode 100644 index 000000000..b52dc5ba7 --- /dev/null +++ b/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch @@ -0,0 +1,28 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 287964d54b64bed833adba307e1d920f8fcf0cbc Mon Sep 17 00:00:00 2001 +From: Ozkan Sezer +Date: Wed, 7 Aug 2019 15:50:50 +0300 +Subject: [PATCH] fix pa_add_headers.m4 for development versions of autoconf + (bug 3392471) + +Signed-off-by: H. Peter Anvin (Intel) +--- + autoconf/m4/pa_add_headers.m4 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 1af2dd5d..6ce3e6c1 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -169,7 +169,8 @@ dnl -------------------------------------------------------------------------- + AC_DEFUN(_PA_ADD_HEADER, + [AC_CHECK_HEADERS([$1],[ac_includes_default="$ac_includes_default + #include <$1>" +-])]) ++]) ++]) + + AC_DEFUN(PA_ADD_HEADERS, + [m4_map_args_w([$1],[_PA_ADD_HEADER(],[)])]) diff --git a/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb index f8a8d76e9..c40be8fbb 100644 --- a/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb +++ b/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb @@ -8,6 +8,7 @@ SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 \ file://CVE-2019-14248.patch \ file://0001-stdlib-Add-strlcat.patch \ file://0002-Add-debug-prefix-map-option.patch \ + file://0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch \ " SRC_URI[md5sum] = "3f489aa48ad2aa1f967dc5e293bbd06f" diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb index fcadfd96a..9a22304bb 100644 --- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb +++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb @@ -6,7 +6,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo;branch=oe-core \ file://fallback-group \ " -SRCREV = "067950bd9415fafcafb2bf32c0e10df4f2ac936c" +SRCREV = "8efb082863ff0ceec7b7e46f9a44750e12f48039" S = "${WORKDIR}/git" PV = "1.9.0+git${SRCPV}" diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc index a0cd2a5fb..b1e71f3cc 100644 --- a/poky/meta/recipes-devtools/python/python-cython.inc +++ b/poky/meta/recipes-devtools/python/python-cython.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[sha256sum] = "22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7" +SRC_URI[sha256sum] = "e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad" UPSTREAM_CHECK_REGEX = "Cython-(?P.*)\.tar" inherit pypi diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb deleted file mode 100644 index 2ce6bdbd6..000000000 --- a/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb +++ /dev/null @@ -1,18 +0,0 @@ -inherit setuptools3 -require python-cython.inc - -RDEPENDS_${PN} += "\ - python3-setuptools \ -" - -# running build_ext a second time during install fails, because Python -# would then attempt to import cythonized modules built for the target -# architecture. -DISTUTILS_INSTALL_ARGS += "--skip-build" - -do_install_append() { - # rename scripts that would conflict with the Python 2 build of Cython - mv ${D}${bindir}/cython ${D}${bindir}/cython3 - mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 - mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 -} diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb new file mode 100644 index 000000000..2ce6bdbd6 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb @@ -0,0 +1,18 @@ +inherit setuptools3 +require python-cython.inc + +RDEPENDS_${PN} += "\ + python3-setuptools \ +" + +# running build_ext a second time during install fails, because Python +# would then attempt to import cythonized modules built for the target +# architecture. +DISTUTILS_INSTALL_ARGS += "--skip-build" + +do_install_append() { + # rename scripts that would conflict with the Python 2 build of Cython + mv ${D}${bindir}/cython ${D}${bindir}/cython3 + mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 + mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 +} diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.3.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.3.bb deleted file mode 100644 index 064868d85..000000000 --- a/poky/meta/recipes-devtools/python/python3-git_3.1.3.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Python library used to interact with Git repositories" -DESCRIPTION = "GitPython provides object model read and write access to \ -a git repository. Access repository information conveniently, alter the \ -index directly, handle remotes, or go down to low-level object database \ -access with big-files support." -HOMEPAGE = "http://github.com/gitpython-developers/GitPython" -SECTION = "devel/python" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" - -PYPI_PACKAGE = "GitPython" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a" - -DEPENDS += " ${PYTHON_PN}-gitdb" - -RDEPENDS_${PN} += " \ - ${PYTHON_PN}-datetime \ - ${PYTHON_PN}-gitdb \ - ${PYTHON_PN}-io \ - ${PYTHON_PN}-logging \ - ${PYTHON_PN}-math \ - ${PYTHON_PN}-netclient \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-unixadmin \ - git \ -" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.7.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.7.bb new file mode 100644 index 000000000..6d1fc4b65 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-git_3.1.7.bb @@ -0,0 +1,32 @@ +SUMMARY = "Python library used to interact with Git repositories" +DESCRIPTION = "GitPython provides object model read and write access to \ +a git repository. Access repository information conveniently, alter the \ +index directly, handle remotes, or go down to low-level object database \ +access with big-files support." +HOMEPAGE = "http://github.com/gitpython-developers/GitPython" +SECTION = "devel/python" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183" + +PYPI_PACKAGE = "GitPython" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858" + +DEPENDS += " ${PYTHON_PN}-gitdb" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-datetime \ + ${PYTHON_PN}-gitdb \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-logging \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-unixadmin \ + git \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb deleted file mode 100644 index 8f19984be..000000000 --- a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb +++ /dev/null @@ -1,5 +0,0 @@ -require python-pycryptodome.inc -inherit setuptools3 - -SRC_URI[sha256sum] = "f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2" - diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb new file mode 100644 index 000000000..46e122072 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb @@ -0,0 +1,5 @@ +require python-pycryptodome.inc +inherit setuptools3 + +SRC_URI[sha256sum] = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4" + diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb deleted file mode 100644 index abb03b990..000000000 --- a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb +++ /dev/null @@ -1,9 +0,0 @@ -require python-pycryptodome.inc -inherit setuptools3 - -SRC_URI[sha256sum] = "50163324834edd0c9ce3e4512ded3e221c969086e10fdd5d3fdcaadac5e24a78" - -FILES_${PN}-tests = " \ - ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ - ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ -" diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb new file mode 100644 index 000000000..035c7fa63 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb @@ -0,0 +1,9 @@ +require python-pycryptodome.inc +inherit setuptools3 + +SRC_URI[sha256sum] = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9" + +FILES_${PN}-tests = " \ + ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ + ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ +" diff --git a/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch b/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch new file mode 100644 index 000000000..ee3d64552 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch @@ -0,0 +1,42 @@ +From 5e94e315119117898ce1a2798641848f61d796b1 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Thu, 9 Jul 2020 07:58:44 +0000 +Subject: [PATCH] configure.ac: define a path for profile data + +There comes below error when use ccache 3.7.10 to compile python3 +and check [1] for more details. + | Python-3.8.3/Modules/_contextvarsmodule.c:43:1: error: source locations for function 'PyInit__contextvars' have changed, the profile data may be out of date [-Werror=coverage-mismatch] + +That's because the logic for profile directory changes a little in +[2] after ccache upgrades to 3.7.10. + +So define a profile directory path accordingly to fix the above error. + +[1] https://github.com/ccache/ccache/issues/615 +[2] https://github.com/ccache/ccache/commit/91a2954eb47b4a106e2be6cf611917b895108e35 + +Upstream-Status: Submitted [https://github.com/python/cpython/pull/21408] + +Signed-off-by: Mingli Yu +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 08fe397..bb15bda 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1332,8 +1332,8 @@ case $cc_basename in + fi + ;; + *) +- PGO_PROF_GEN_FLAG="-fprofile-generate" +- PGO_PROF_USE_FLAG="-fprofile-use -fprofile-correction" ++ PGO_PROF_GEN_FLAG="-fprofile-generate=$(pwd)" ++ PGO_PROF_USE_FLAG="-fprofile-use=$(pwd) -fprofile-correction" + LLVM_PROF_MERGER="true" + LLVM_PROF_FILE="" + ;; +-- +2.26.2 + diff --git a/poky/meta/recipes-devtools/python/python3_3.8.3.bb b/poky/meta/recipes-devtools/python/python3_3.8.3.bb index a7cfbad5c..7e0f35ce4 100644 --- a/poky/meta/recipes-devtools/python/python3_3.8.3.bb +++ b/poky/meta/recipes-devtools/python/python3_3.8.3.bb @@ -32,6 +32,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-configure.ac-fix-LIBPL.patch \ file://0001-python3-Do-not-hardcode-lib-for-distutils.patch \ file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ + file://0001-configure.ac-define-a-path-for-profile-data.patch \ " SRC_URI_append_class-native = " \ diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index d41cc8f20..b1c822b1a 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -32,6 +32,10 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://CVE-2020-13361.patch \ file://find_datadir.patch \ file://CVE-2020-10761.patch \ + file://CVE-2020-13362.patch \ + file://CVE-2020-13659.patch \ + file://CVE-2020-13800.patch \ + file://CVE-2020-13791.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" @@ -140,7 +144,7 @@ PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+" PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+" PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" -PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap-ng attr," +PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr," PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs," PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest" diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch new file mode 100644 index 000000000..af8d4ba8f --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch @@ -0,0 +1,55 @@ +From f50ab86a2620bd7e8507af865b164655ee921661 Mon Sep 17 00:00:00 2001 +From: Prasad J Pandit +Date: Thu, 14 May 2020 00:55:38 +0530 +Subject: [PATCH] megasas: use unsigned type for reply_queue_head and check + index + +A guest user may set 'reply_queue_head' field of MegasasState to +a negative value. Later in 'megasas_lookup_frame' it is used to +index into s->frames[] array. Use unsigned type to avoid OOB +access issue. + +Also check that 'index' value stays within s->frames[] bounds +through the while() loop in 'megasas_lookup_frame' to avoid OOB +access. + +Reported-by: Ren Ding +Reported-by: Hanqing Zhao +Reported-by: Alexander Bulekov +Signed-off-by: Prasad J Pandit +Acked-by: Alexander Bulekov +Message-Id: <20200513192540.1583887-2-ppandit@redhat.com> +Signed-off-by: Paolo Bonzini + +Upstream-Status: Backport [f50ab86a2620bd7e8507af865b164655ee921661] +CVE: CVE-2020-13362 +Signed-off-by: Sakib Sajal +--- + hw/scsi/megasas.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c +index af18c88b65..6ce598cd69 100644 +--- a/hw/scsi/megasas.c ++++ b/hw/scsi/megasas.c +@@ -112,7 +112,7 @@ typedef struct MegasasState { + uint64_t reply_queue_pa; + void *reply_queue; + int reply_queue_len; +- int reply_queue_head; ++ uint16_t reply_queue_head; + int reply_queue_tail; + uint64_t consumer_pa; + uint64_t producer_pa; +@@ -445,7 +445,7 @@ static MegasasCmd *megasas_lookup_frame(MegasasState *s, + + index = s->reply_queue_head; + +- while (num < s->fw_cmds) { ++ while (num < s->fw_cmds && index < MEGASAS_MAX_FRAMES) { + if (s->frames[index].pa && s->frames[index].pa == frame) { + cmd = &s->frames[index]; + break; +-- +2.20.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch new file mode 100644 index 000000000..4d12ae8f1 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch @@ -0,0 +1,58 @@ +From 77f55eac6c433e23e82a1b88b2d74f385c4c7d82 Mon Sep 17 00:00:00 2001 +From: Prasad J Pandit +Date: Tue, 26 May 2020 16:47:43 +0530 +Subject: [PATCH] exec: set map length to zero when returning NULL +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When mapping physical memory into host's virtual address space, +'address_space_map' may return NULL if BounceBuffer is in_use. +Set and return '*plen = 0' to avoid later NULL pointer dereference. + +Reported-by: Alexander Bulekov +Fixes: https://bugs.launchpad.net/qemu/+bug/1878259 +Suggested-by: Paolo Bonzini +Suggested-by: Peter Maydell +Signed-off-by: Prasad J Pandit +Message-Id: <20200526111743.428367-1-ppandit@redhat.com> +Reviewed-by: Philippe Mathieu-Daudé +Signed-off-by: Paolo Bonzini + +Upstream-Status: Backport [77f55eac6c433e23e82a1b88b2d74f385c4c7d82] +CVE: CVE-2020-13659 +Signed-off-by: Sakib Sajal +--- + exec.c | 1 + + include/exec/memory.h | 3 ++- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/exec.c b/exec.c +index 9cbde85d8c..778263f1c6 100644 +--- a/exec.c ++++ b/exec.c +@@ -3540,6 +3540,7 @@ void *address_space_map(AddressSpace *as, + + if (!memory_access_is_direct(mr, is_write)) { + if (atomic_xchg(&bounce.in_use, true)) { ++ *plen = 0; + return NULL; + } + /* Avoid unbounded allocations */ +diff --git a/include/exec/memory.h b/include/exec/memory.h +index bd7fdd6081..af8ca7824e 100644 +--- a/include/exec/memory.h ++++ b/include/exec/memory.h +@@ -2314,7 +2314,8 @@ bool address_space_access_valid(AddressSpace *as, hwaddr addr, hwaddr len, + /* address_space_map: map a physical memory region into a host virtual address + * + * May map a subset of the requested range, given by and returned in @plen. +- * May return %NULL if resources needed to perform the mapping are exhausted. ++ * May return %NULL and set *@plen to zero(0), if resources needed to perform ++ * the mapping are exhausted. + * Use only for reads OR writes - not for read-modify-write operations. + * Use cpu_register_map_client() to know when retrying the map operation is + * likely to succeed. +-- +2.20.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch new file mode 100644 index 000000000..049dab914 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch @@ -0,0 +1,53 @@ +From f7d6a635fa3b7797f9d072e280f065bf3cfcd24d Mon Sep 17 00:00:00 2001 +From: Prasad J Pandit +Date: Thu, 4 Jun 2020 17:05:25 +0530 +Subject: [PATCH] pci: assert configuration access is within bounds +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +While accessing PCI configuration bytes, assert that +'address + len' is within PCI configuration space. + +Generally it is within bounds. This is more of a defensive +assert, in case a buggy device was to send 'address' which +may go out of bounds. + +Suggested-by: Philippe Mathieu-Daudé +Signed-off-by: Prasad J Pandit +Message-Id: <20200604113525.58898-1-ppandit@redhat.com> +Reviewed-by: Michael S. Tsirkin +Signed-off-by: Michael S. Tsirkin + +Upstream-Status: Backport [f7d6a635fa3b7797f9d072e280f065bf3cfcd24d] +CVE: CVE-2020-13791 +Signed-off-by: Sakib Sajal +--- + hw/pci/pci.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/hw/pci/pci.c b/hw/pci/pci.c +index 70c66965f5..7bf2ae6d92 100644 +--- a/hw/pci/pci.c ++++ b/hw/pci/pci.c +@@ -1381,6 +1381,8 @@ uint32_t pci_default_read_config(PCIDevice *d, + { + uint32_t val = 0; + ++ assert(address + len <= pci_config_size(d)); ++ + if (pci_is_express_downstream_port(d) && + ranges_overlap(address, len, d->exp.exp_cap + PCI_EXP_LNKSTA, 2)) { + pcie_sync_bridge_lnk(d); +@@ -1394,6 +1396,8 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val_in, int + int i, was_irq_disabled = pci_irq_disabled(d); + uint32_t val = val_in; + ++ assert(addr + l <= pci_config_size(d)); ++ + for (i = 0; i < l; val >>= 8, ++i) { + uint8_t wmask = d->wmask[addr + i]; + uint8_t w1cmask = d->w1cmask[addr + i]; +-- +2.20.1 + diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch new file mode 100644 index 000000000..52bfafbba --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch @@ -0,0 +1,63 @@ +From a98610c429d52db0937c1e48659428929835c455 Mon Sep 17 00:00:00 2001 +From: Prasad J Pandit +Date: Thu, 4 Jun 2020 14:38:30 +0530 +Subject: [PATCH] ati-vga: check mm_index before recursive call + (CVE-2020-13800) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +While accessing VGA registers via ati_mm_read/write routines, +a guest may set 's->regs.mm_index' such that it leads to infinite +recursion. Check mm_index value to avoid such recursion. Log an +error message for wrong values. + +Reported-by: Ren Ding +Reported-by: Hanqing Zhao +Reported-by: Yi Ren +Message-id: 20200604090830.33885-1-ppandit@redhat.com +Suggested-by: BALATON Zoltan +Suggested-by: Philippe Mathieu-Daudé +Signed-off-by: Prasad J Pandit +Signed-off-by: Gerd Hoffmann + +Upstream-Status: Backport [a98610c429d52db0937c1e48659428929835c455] +CVE: CVE-2020-13800 +Signed-off-by: Sakib Sajal +--- + hw/display/ati.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/hw/display/ati.c b/hw/display/ati.c +index 065f197678..67604e68de 100644 +--- a/hw/display/ati.c ++++ b/hw/display/ati.c +@@ -285,8 +285,11 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size) + if (idx <= s->vga.vram_size - size) { + val = ldn_le_p(s->vga.vram_ptr + idx, size); + } +- } else { ++ } else if (s->regs.mm_index > MM_DATA + 3) { + val = ati_mm_read(s, s->regs.mm_index + addr - MM_DATA, size); ++ } else { ++ qemu_log_mask(LOG_GUEST_ERROR, ++ "ati_mm_read: mm_index too small: %u\n", s->regs.mm_index); + } + break; + case BIOS_0_SCRATCH ... BUS_CNTL - 1: +@@ -520,8 +523,11 @@ static void ati_mm_write(void *opaque, hwaddr addr, + if (idx <= s->vga.vram_size - size) { + stn_le_p(s->vga.vram_ptr + idx, size, data); + } +- } else { ++ } else if (s->regs.mm_index > MM_DATA + 3) { + ati_mm_write(s, s->regs.mm_index + addr - MM_DATA, data, size); ++ } else { ++ qemu_log_mask(LOG_GUEST_ERROR, ++ "ati_mm_write: mm_index too small: %u\n", s->regs.mm_index); + } + break; + case BIOS_0_SCRATCH ... BUS_CNTL - 1: +-- +2.20.1 + diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb index cbe1acffe..b5a0ac938 100644 --- a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb +++ b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb @@ -67,7 +67,7 @@ EXTRA_OECONF_append_libc-musl = " --disable-nls --disable-openmp" # Disable dbus for native, so that rpm doesn't attempt to inhibit shutdown via session dbus even when plugins support is enabled. # Also disable plugins by default for native. EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --localstatedir=/var --disable-plugins" -EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --localstatedir=/var --disable-plugins" +EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --disable-plugins" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb b/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb index b9884151c..452a025fc 100644 --- a/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb +++ b/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb @@ -59,4 +59,4 @@ PARALLEL_MAKEINST = "" RDEPENDS_${PN} = "serf" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb deleted file mode 100644 index 63e02ce5f..000000000 --- a/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "Tool for creating HTML, PDF, EPUB, man pages" -DESCRIPTION = "AsciiDoc is a text document format for writing short documents, \ -articles, books and UNIX man pages." - -HOMEPAGE = "http://asciidoc.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \ - file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 " - -SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \ - file://auto-catalogs.patch" -SRCREV = "c44cb22b0cb110b69e4909c93c1cc6e2be5470cc" - -DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" - -S = "${WORKDIR}/git" - -# Tell xmllint where to find the DocBook XML catalogue, because right now it -# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch -export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog" - -# Not using automake -inherit autotools-brokensep -CLEANBROKEN = "1" - -# target and nativesdk needs python3, but for native we can use the host. -RDEPENDS_${PN} += "python3" -RDEPENDS_remove_class-native = "python3" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb new file mode 100644 index 000000000..2f841de06 --- /dev/null +++ b/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Tool for creating HTML, PDF, EPUB, man pages" +DESCRIPTION = "AsciiDoc is a text document format for writing short documents, \ +articles, books and UNIX man pages." + +HOMEPAGE = "http://asciidoc.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=4e5d1baf6f20559e3bec172226a47e4e \ + file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 " + +SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \ + file://auto-catalogs.patch" +SRCREV = "fce6bd87fbdef5e510310464b02a75fb32f72f74" + +DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native" + +S = "${WORKDIR}/git" + +# Tell xmllint where to find the DocBook XML catalogue, because right now it +# opens /etc/xml/catalog on the host. Depends on auto-catalogs.patch +export SGML_CATALOG_FILES="file://${STAGING_ETCDIR_NATIVE}/xml/catalog" + +# Not using automake +inherit autotools-brokensep +CLEANBROKEN = "1" + +# target and nativesdk needs python3, but for native we can use the host. +RDEPENDS_${PN} += "python3" +RDEPENDS_remove_class-native = "python3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb index 28c84af7a..badb71d97 100644 --- a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb +++ b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb @@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SECTION = "libs" DEPENDS = "libtirpc" -PV = "1.2.0+git${SRCPV}" +PV = "1.3.0" -SRCREV = "4a062cf4180d99371198951e4ea5b4550efd58a3" +SRCREV = "fbad7b36acaa89a54023930af70805649f962999" SRC_URI = "git://github.com/thkukuk/libnsl \ " diff --git a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb index f2e9e3975..5aff2b56a 100644 --- a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb +++ b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb @@ -15,9 +15,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0daaf958d5531ab86169ec6e275e1517" SECTION = "libs" DEPENDS += "rpcsvc-proto-native" -PV = "1.4.1" +PV = "1.4.2" -SRCREV = "e295c9a3b67752734995dfc057bfbf5313ed0d82" +SRCREV = "6f54e54455c073d08a56ea627c6cd2355a40eb53" SRC_URI = "git://github.com/thkukuk/${BPN} \ file://0001-Use-cross-compiled-rpcgen.patch \ diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb deleted file mode 100644 index f1d91da2b..000000000 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ - file://no_daddr_t.patch \ - " -SRC_URI[sha256sum] = "b21436fdbd9dc482a3fd95ae27cccf0097d0f226361ea3785215f7a4ad50136b" - -DEPENDS = "coreutils-native" - -PROVIDES = "stress" -RPROVIDES_${PN} = "stress" -RREPLACES_${PN} = "stress" -RCONFLICTS_${PN} = "stress" - -inherit bash-completion - -do_install() { - oe_runmake DESTDIR=${D} install -} - diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb new file mode 100644 index 000000000..8ea0476db --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb @@ -0,0 +1,26 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + file://no_daddr_t.patch \ + " +SRC_URI[sha256sum] = "6a333650fb5c85c5221f10d2cf890e9fc56530696e118d975fbbe96126c06963" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install +} + diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb index aac505af6..d6bc1a9c3 100644 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb @@ -22,6 +22,7 @@ CACHED_CONFIGUREVARS = " \ EXTRA_OECONF += " \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-rundir=/run/sudo \ --with-vardir=/var/lib/sudo \ " @@ -38,7 +39,7 @@ do_install_append () { chmod 0440 ${D}${sysconfdir}/sudoers # Explicitly remove the /sudo directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/sudo + rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo } FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb deleted file mode 100644 index 8ac318b0d..000000000 --- a/poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "WebKit based web browser for GNOME" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ - gsettings-desktop-schemas libxml2-native \ - glib-2.0 glib-2.0-native json-glib libdazzle libhandy" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0002-help-meson.build-disable-the-use-of-yelp.patch \ - " -SRC_URI[archive.sha256sum] = "c2e676aa0fe211809a5e7e8a7e461d182890f253c53f4610f2610094b6fbfb5e" - -FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" -RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb new file mode 100644 index 000000000..8eb4ac4fc --- /dev/null +++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "WebKit based web browser for GNOME" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/epiphany" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ + gsettings-desktop-schemas libxml2-native \ + glib-2.0 glib-2.0-native json-glib libdazzle libhandy" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + " +SRC_URI[archive.sha256sum] = "621b5626374891769afec9c35946ab6c3910ea9cf9a2498bab166c99bd91e16f" + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb index f60880c29..89480d79d 100644 --- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb +++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb @@ -20,6 +20,8 @@ RDEPENDS_${PN}-tests += "bash" PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests" +PACKAGECONFIG[chamelium] = "-Dchamelium=enabled,-Dchamelium=disabled,gsl xmlrpc-c" + EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled" COMPATIBLE_HOST = "(x86_64.*|i.86.*|arm.*|aarch64).*-linux" COMPATIBLE_HOST_libc-musl_class-target = "null" diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb deleted file mode 100644 index 3e2b806c6..000000000 --- a/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb +++ /dev/null @@ -1,8 +0,0 @@ -require libva.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" -SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04" - -do_install_append () { - rm -f ${D}${libdir}/*.so* -} diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb new file mode 100644 index 000000000..f90bb510c --- /dev/null +++ b/poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb @@ -0,0 +1,8 @@ +require libva.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" +SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3" + +do_install_append () { + rm -f ${D}${libdir}/*.so* +} diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb deleted file mode 100644 index 92a5b099b..000000000 --- a/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "libva-utils is a collection of utilities from libva project" - -DESCRIPTION = "libva-utils is a collection of utilities \ -and examples to exercise VA-API in accordance with the libva \ -project.VA-API is an open-source library and API specification, \ -which provides access to graphics hardware acceleration capabilities \ -for video processing. It consists of a main library and driver-specific \ -acceleration backends for each supported hardware vendor" - -HOMEPAGE = "https://01.org/linuxmedia/vaapi" -BUGTRACKER = "https://github.com/intel/libva-utils/issues" - -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" - -SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.7-branch" -SRCREV = "5a24c635f6fb2b9ac31cab3360afca50e1860812" -S = "${WORKDIR}/git" - -UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" - -DEPENDS = "libva" - -inherit meson pkgconfig features_check - -# depends on libva which requires opengl -REQUIRED_DISTRO_FEATURES = "opengl" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" -PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland" diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb new file mode 100644 index 000000000..fbc5a0583 --- /dev/null +++ b/poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb @@ -0,0 +1,32 @@ +SUMMARY = "libva-utils is a collection of utilities from libva project" + +DESCRIPTION = "libva-utils is a collection of utilities \ +and examples to exercise VA-API in accordance with the libva \ +project.VA-API is an open-source library and API specification, \ +which provides access to graphics hardware acceleration capabilities \ +for video processing. It consists of a main library and driver-specific \ +acceleration backends for each supported hardware vendor" + +HOMEPAGE = "https://01.org/linuxmedia/vaapi" +BUGTRACKER = "https://github.com/intel/libva-utils/issues" + +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" + +SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.8-branch" +SRCREV = "af101a46d24c3f71a12b9f1ddb0c63626b19b3d8" +S = "${WORKDIR}/git" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+(\.\d+)+))" + +DEPENDS = "libva" + +inherit meson pkgconfig features_check + +# depends on libva which requires opengl +REQUIRED_DISTRO_FEATURES = "opengl" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" +PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland" diff --git a/poky/meta/recipes-graphics/libva/libva_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva_2.7.1.bb deleted file mode 100644 index b2deb017a..000000000 --- a/poky/meta/recipes-graphics/libva/libva_2.7.1.bb +++ /dev/null @@ -1,23 +0,0 @@ -require libva.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" -SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04" - -PACKAGECONFIG ??= " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \ -" - -PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes" -PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa" - -PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland" - -PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" - -RDEPENDS_${PN}-x11 =+ "${PN}" -RDEPENDS_${PN}-glx =+ "${PN}-x11" - -FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" -FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" -FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/poky/meta/recipes-graphics/libva/libva_2.8.0.bb b/poky/meta/recipes-graphics/libva/libva_2.8.0.bb new file mode 100644 index 000000000..621ceea86 --- /dev/null +++ b/poky/meta/recipes-graphics/libva/libva_2.8.0.bb @@ -0,0 +1,23 @@ +require libva.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" +SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3" + +PACKAGECONFIG ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \ +" + +PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes" +PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa" + +PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland" + +PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" + +RDEPENDS_${PN}-x11 =+ "${PN}" +RDEPENDS_${PN}-glx =+ "${PN}-x11" + +FILES_${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" +FILES_${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" +FILES_${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch b/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch new file mode 100644 index 000000000..e5dff007d --- /dev/null +++ b/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch @@ -0,0 +1,108 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From a7e49fefde18ea8d5bada8096d32f23bcfb5a6dc Mon Sep 17 00:00:00 2001 +From: "Federico G. Schwindt" +Date: Mon, 17 Feb 2014 15:48:12 +0100 +Subject: [PATCH 1/3] Fix crash on 32bit architectures where time_t is 64 bit + +This is an ABI change on platforms where sizeof(time_t) doesn't equal +sizeof(long). For most platforms this change shouldn't make a difference +at present. OpenBSD recently switched to 64bit time_t on all architectures +to avoid time_t overflow in 2038 on 32bit machines. + +This fix extends to consumers of startup-notification, for instance +the window manager of XFCE, which is how I got involved in this. +See http://mail.xfce.org/pipermail/xfce4-dev/2014-February/030611.html +and follow-ups. The XFCE devs pointed out that my patch to fix a +crash in XFCE's window manager depends on this startup-notification patch. + +Signed-off-by: Julien Danjou +--- + libsn/sn-monitor.c | 8 ++++---- + libsn/sn-monitor.h | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c +index 2a9ad16..f419bc1 100644 +--- a/libsn/sn-monitor.c ++++ b/libsn/sn-monitor.c +@@ -364,8 +364,8 @@ sn_startup_sequence_get_screen (SnStartupSequence *sequence) + **/ + void + sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec) ++ time_t *tv_sec, ++ suseconds_t *tv_usec) + { + if (tv_sec) + *tv_sec = sequence->initiation_time.tv_sec; +@@ -386,8 +386,8 @@ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, + **/ + void + sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec) ++ time_t *tv_sec, ++ suseconds_t *tv_usec) + { + /* for now the same as get_initiated_time */ + if (tv_sec) +diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h +index b58581f..2f639df 100644 +--- a/libsn/sn-monitor.h ++++ b/libsn/sn-monitor.h +@@ -77,11 +77,11 @@ const char* sn_startup_sequence_get_application_id (SnStartupSequence *se + int sn_startup_sequence_get_screen (SnStartupSequence *sequence); + + void sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec); ++ time_t *tv_sec, ++ suseconds_t *tv_usec); + void sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence, +- long *tv_sec, +- long *tv_usec); ++ time_t *tv_sec, ++ suseconds_t *tv_usec); + + void sn_startup_sequence_complete (SnStartupSequence *sequence); + +-- +2.26.2 + +From ea9f7e4cc6fd8c08d175ed7774ed2c5bd11c8ef0 Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Mon, 17 Feb 2014 14:37:09 -0500 +Subject: [PATCH 2/3] Add include of for previous patch + +Unfortunately while the standard says that is the +correct header to get suseconds_t, at least with glibc, that requires +-DXOPEN_SOURCE. Which is problematic for a public header, because +then all *users* of startup-notification will be required to define +that. + +Poking around a bit, it looks like at least with glibc, +will give us an unconditional define. + +Signed-off-by: Julien Danjou +--- + libsn/sn-monitor.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h +index 2f639df..cea4e12 100644 +--- a/libsn/sn-monitor.h ++++ b/libsn/sn-monitor.h +@@ -28,6 +28,7 @@ + #define __SN_MONITOR_H__ + + #include ++#include + + SN_BEGIN_DECLS + +-- +2.26.2 + diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb index a26ab44fa..d10bddb52 100644 --- a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb +++ b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb @@ -23,6 +23,7 @@ REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = "http://www.freedesktop.org/software/startup-notification/releases/${BPN}-${PV}.tar.gz \ file://obsolete_automake_macros.patch \ + file://time_t.patch \ " SRC_URI[md5sum] = "2cd77326d4dcaed9a5a23a1232fb38e9" diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb index 552eb6aba..6474599c4 100644 --- a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb +++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb @@ -9,6 +9,7 @@ DEPENDS += "cryptodev-linux" SRC_URI += " \ file://0001-Disable-installing-header-file-provided-by-another-p.patch \ +file://0001-Fix-build-for-Linux-5.8-rc1.patch \ " EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' diff --git a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch new file mode 100644 index 000000000..02c721a4f --- /dev/null +++ b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch @@ -0,0 +1,49 @@ +From 9e765068582aae3696520346a7500322ca6cc2de Mon Sep 17 00:00:00 2001 +From: Joan Bruguera +Date: Sat, 13 Jun 2020 19:46:44 +0200 +Subject: [PATCH] Fix build for Linux 5.8-rc1 + +See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9740ca4e95b43b91a4a848694a20d01ba6818f7b + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=da1c55f1b272f4bd54671d459b39ea7b54944ef9 + https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8ed45c5dcd455fc5848d47f86883a1b872ac0d0 + +Signed-off-by: Joan Bruguera + +Upstream-Status: Backport [9e765068582aae3696520346a7500322ca6cc2de] + +Signed-off-by: He Zhe +--- + zc.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/zc.c b/zc.c +index ae464ff..2c286bb 100644 +--- a/zc.c ++++ b/zc.c +@@ -58,7 +58,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write, + return 0; + } + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)) + down_read(&mm->mmap_sem); ++#else ++ mmap_read_lock(mm); ++#endif + #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)) + ret = get_user_pages(task, mm, + (unsigned long)addr, pgcount, write, 0, pg, NULL); +@@ -74,7 +78,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write, + (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0, + pg, NULL, NULL); + #endif ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0)) + up_read(&mm->mmap_sem); ++#else ++ mmap_read_unlock(mm); ++#endif + if (ret != pgcount) + return -EINVAL; + +-- +2.17.1 + diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc index b7c5cbef1..edff19170 100644 --- a/poky/meta/recipes-kernel/kmod/kmod.inc +++ b/poky/meta/recipes-kernel/kmod/kmod.inc @@ -31,5 +31,7 @@ EXTRA_OECONF +=" --enable-tools --with-zlib" PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" PACKAGECONFIG[logging] = " --enable-logging,--disable-logging" PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" +PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz" +PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl" GTKDOC_DOCDIR = "${S}/libkmod/docs" diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb index 392e03a10..bf25ff8b7 100644 --- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb +++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb @@ -278,9 +278,11 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ ${PN}-iwlwifi-9000 \ ${PN}-iwlwifi-misc \ - ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \ + ${PN}-ibt-license ${PN}-ibt \ ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ ${PN}-ibt-17 \ + ${PN}-ibt-20 \ + ${PN}-ibt-misc \ ${PN}-i915-license ${PN}-i915 \ ${PN}-ice-license ${PN}-ice \ ${PN}-adsp-sst-license ${PN}-adsp-sst \ @@ -805,6 +807,7 @@ LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-20 = "Firmware-ibt_firmware" LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" @@ -813,13 +816,15 @@ FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bs FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" -FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*" +FILES_${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc" +FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/intel/ibt-*" RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-20 = "${PN}-ibt-license" RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" ALLOW_EMPTY_${PN}-ibt= "1" diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb index 5940cc90e..0c98535f7 100644 --- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -108,6 +108,11 @@ do_install() { fi cp -a include $kerneldir/build/include + + # we don't usually copy generated files, since they can be rebuilt on the target, + # but without this file, we get a forced syncconfig run in v5.8+, which prompts and + # breaks workflows. + cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || : ) # now grab the chunks from the source tree that we need @@ -249,6 +254,17 @@ do_install() { # Copy .config to include/config/auto.conf so "make prepare" is unnecessary. cp $kerneldir/build/.config $kerneldir/build/include/config/auto.conf + # make sure these are at least as old as the .config, or rebuilds will trigger + touch -r $kerneldir/build/.config $kerneldir/build/include/generated/autoconf.h 2>/dev/null || : + touch -r $kerneldir/build/.config $kerneldir/build/include/config/auto.conf* 2>/dev/null || : + + if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then + sed -i 's/ifneq "$(CC)" ".*-linux-gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd" + sed -i 's/ifneq "$(LD)" ".*-linux-ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd" + sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd" + sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd" + fi + # make the scripts python3 safe. We won't be running these, and if they are # left as /usr/bin/python rootfs assembly will fail, since we only have python3 # in the RDEPENDS (and the python3 package does not include /usr/bin/python) diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index a4b593b96..caa5b4ef5 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "6415a4e7c405526f97049ede833f52127a5ce7a1" -SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" +SRCREV_machine ?= "508b4e6ada7f78b3ef5a9dbdd182d13dffe00123" +SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.50" +LINUX_VERSION ?= "5.4.51" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index 0622d3383..86e133f9f 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.50" +LINUX_VERSION ?= "5.4.51" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "1a8a14e45f01cfee926c5b35d2d67e6f1a7eebfc" -SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" +SRCREV_machine_qemuarm ?= "d4c9ad88abadd22f7b2785e8a101523fe9a74dc0" +SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index 2476b3502..e79793b5f 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "99743105f331e90852ccb9e72ce26134dbcafec6" -SRCREV_machine_qemuarm64 ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_machine_qemumips ?= "886870e5abaeaaf753fb50a1e5be56336c44c642" -SRCREV_machine_qemuppc ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_machine_qemuriscv64 ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_machine_qemux86 ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_machine_qemux86-64 ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_machine_qemumips64 ?= "7548abbb409eeef6f0575eed25231090f902559e" -SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" -SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" +SRCREV_machine_qemuarm ?= "601e67d37274e4a0890bcdbe6660c2dbd08d3b97" +SRCREV_machine_qemuarm64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_machine_qemumips ?= "c8543a84037b88da45d0d825216187b42d0c509a" +SRCREV_machine_qemuppc ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_machine_qemuriscv64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_machine_qemux86 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_machine_qemux86-64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_machine_qemumips64 ?= "c741fec6daabb449d08c9f96052be1477fe3c968" +SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" +SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.50" +LINUX_VERSION ?= "5.4.51" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb index d331d1b8c..e5bc7dc1b 100644 --- a/poky/meta/recipes-kernel/perf/perf.bb +++ b/poky/meta/recipes-kernel/perf/perf.bb @@ -26,6 +26,8 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1" PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit" PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native" PACKAGECONFIG[cap] = ",,libcap" +# Arm CoreSight +PACKAGECONFIG[coresight] = "CORESIGHT=1,,opencsd" # libunwind is not yet ported for some architectures PACKAGECONFIG_remove_arc = "libunwind" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb deleted file mode 100644 index 1eb56f405..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb +++ /dev/null @@ -1,42 +0,0 @@ -SUMMARY = "ALSA sound library" -HOMEPAGE = "http://www.alsa-project.org" -BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" -SECTION = "libs/multimedia" -LICENSE = "LGPLv2.1 & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ - file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ - " - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "1244585515fbebce7d0e53656c1fb614f99accb8413115ce3efb9a9309c4c892" - -inherit autotools pkgconfig - -EXTRA_OECONF += " \ - ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ - --disable-python \ -" - -PACKAGES =+ "alsa-server alsa-conf libatopology" - -FILES_alsa-server = "${bindir}/*" -FILES_alsa-conf = "${datadir}/alsa/" -FILES_libatopology = "${libdir}/libatopology.so.*" - -RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" -RDEPENDS_libatopology_class-target = "alsa-topology-conf" - -# upgrade path -RPROVIDES_${PN} = "libasound" -RREPLACES_${PN} = "libasound" -RCONFLICTS_${PN} = "libasound" - -RPROVIDES_${PN}-dev = "alsa-dev" -RREPLACES_${PN}-dev = "alsa-dev" -RCONFLICTS_${PN}-dev = "alsa-dev" - -RPROVIDES_alsa-conf = "alsa-conf-base" -RREPLACES_alsa-conf = "alsa-conf-base" -RCONFLICTS_alsa-conf = "alsa-conf-base" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb new file mode 100644 index 000000000..1ed1a7b9a --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb @@ -0,0 +1,42 @@ +SUMMARY = "ALSA sound library" +HOMEPAGE = "http://www.alsa-project.org" +BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" +SECTION = "libs/multimedia" +LICENSE = "LGPLv2.1 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ + file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ + " + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15" + +inherit autotools pkgconfig + +EXTRA_OECONF += " \ + ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ + --disable-python \ +" + +PACKAGES =+ "alsa-server alsa-conf libatopology" + +FILES_alsa-server = "${bindir}/*" +FILES_alsa-conf = "${datadir}/alsa/" +FILES_libatopology = "${libdir}/libatopology.so.*" + +RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" +RDEPENDS_libatopology_class-target = "alsa-topology-conf" + +# upgrade path +RPROVIDES_${PN} = "libasound" +RREPLACES_${PN} = "libasound" +RCONFLICTS_${PN} = "libasound" + +RPROVIDES_${PN}-dev = "alsa-dev" +RREPLACES_${PN}-dev = "alsa-dev" +RCONFLICTS_${PN}-dev = "alsa-dev" + +RPROVIDES_alsa-conf = "alsa-conf-base" +RREPLACES_alsa-conf = "alsa-conf-base" +RCONFLICTS_alsa-conf = "alsa-conf-base" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb new file mode 100644 index 000000000..517dac7f0 --- /dev/null +++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb @@ -0,0 +1,160 @@ +SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." +DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \ + mux, demux, stream, filter and play pretty much anything that humans and machines \ + have created. It supports the most obscure ancient formats up to the cutting edge." +HOMEPAGE = "https://www.ffmpeg.org/" +SECTION = "libs" + +LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" +LICENSE_${PN} = "GPLv2+" +LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libpostproc = "GPLv2+" +LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" +LICENSE_FLAGS = "commercial" + +LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ + file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" + +SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ + file://mips64_cpu_detection.patch \ + " +SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb" + +# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# Should be API compatible with libav (which was a fork of ffmpeg) +# libpostproc was previously packaged from a separate recipe +PROVIDES = "libav libpostproc" + +DEPENDS = "nasm-native" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ + alsa bzlib gpl lzma theora x264 zlib \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" + +# libraries to build in addition to avutil +PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice" +PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter" +PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec" +PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" +PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" +PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" +PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" + +# features to support +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec," +PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" +PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac" +PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" +PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" +PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" +PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" +PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" +PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" +PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2" +PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" +PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" +PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" +PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" +PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" +PACKAGECONFIG[x265] = "--enable-libx265,--disable-libx265,x265" +PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb" +PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" + +# Check codecs that require --enable-nonfree +USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" + +def cpu(d): + for arg in (d.getVar('TUNE_CCARGS') or '').split(): + if arg.startswith('-mcpu='): + return arg[6:] + return 'generic' + +EXTRA_OECONF = " \ + --disable-stripping \ + --enable-pic \ + --enable-shared \ + --enable-pthreads \ + ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ + \ + --cross-prefix=${TARGET_PREFIX} \ + \ + --ld="${CCLD}" \ + --cc="${CC}" \ + --cxx="${CXX}" \ + --arch=${TARGET_ARCH} \ + --target-os="linux" \ + --enable-cross-compile \ + --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${LDFLAGS}" \ + --sysroot="${STAGING_DIR_TARGET}" \ + ${EXTRA_FFCONF} \ + --libdir=${libdir} \ + --shlibdir=${libdir} \ + --datadir=${datadir}/ffmpeg \ + ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ + --cpu=${@cpu(d)} \ + --pkg-config=pkg-config \ +" + +EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" +# gold crashes on x86, another solution is to --disable-asm but thats more hacky +# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 + +LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" + +EXTRA_OEMAKE = "V=1" + +do_configure() { + ${S}/configure ${EXTRA_OECONF} +} + +PACKAGES =+ "libavcodec \ + libavdevice \ + libavfilter \ + libavformat \ + libavresample \ + libavutil \ + libpostproc \ + libswresample \ + libswscale" + +FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" +FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" +FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" +FILES_libavformat = "${libdir}/libavformat${SOLIBS}" +FILES_libavresample = "${libdir}/libavresample${SOLIBS}" +FILES_libavutil = "${libdir}/libavutil${SOLIBS}" +FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" +FILES_libswresample = "${libdir}/libswresample${SOLIBS}" +FILES_libswscale = "${libdir}/libswscale${SOLIBS}" + +# ffmpeg disables PIC on some platforms (e.g. x86-32) +INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" +INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" +INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" +INSANE_SKIP_${MLPREFIX}libavformat = "textrel" +INSANE_SKIP_${MLPREFIX}libavutil = "textrel" +INSANE_SKIP_${MLPREFIX}libavresample = "textrel" +INSANE_SKIP_${MLPREFIX}libswscale = "textrel" +INSANE_SKIP_${MLPREFIX}libswresample = "textrel" +INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb deleted file mode 100644 index b4cf278cb..000000000 --- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb +++ /dev/null @@ -1,160 +0,0 @@ -SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video." -DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \ - mux, demux, stream, filter and play pretty much anything that humans and machines \ - have created. It supports the most obscure ancient formats up to the cutting edge." -HOMEPAGE = "https://www.ffmpeg.org/" -SECTION = "libs" - -LICENSE = "BSD & GPLv2+ & LGPLv2.1+ & MIT" -LICENSE_${PN} = "GPLv2+" -LICENSE_libavcodec = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavdevice = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavfilter = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavformat = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libavutil = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libpostproc = "GPLv2+" -LICENSE_libswresample = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_libswscale = "${@bb.utils.contains('PACKAGECONFIG', 'gpl', 'GPLv2+', 'LGPLv2.1+', d)}" -LICENSE_FLAGS = "commercial" - -LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \ - file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02" - -SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \ - file://mips64_cpu_detection.patch \ - " -SRC_URI[sha256sum] = "1d0ad06484f44bcb97eba5e93c40bcb893890f9f64aeb43e46cd9bb4cbd6795d" - -# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# Should be API compatible with libav (which was a fork of ffmpeg) -# libpostproc was previously packaged from a separate recipe -PROVIDES = "libav libpostproc" - -DEPENDS = "nasm-native" - -inherit autotools pkgconfig - -PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc avresample \ - alsa bzlib gpl lzma theora x264 zlib \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xv xcb', '', d)}" - -# libraries to build in addition to avutil -PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice" -PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter" -PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec" -PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat" -PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample" -PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale" -PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc" -PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" - -# features to support -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec," -PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" -PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac" -PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" -PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm" -PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack" -PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis" -PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz" -PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk" -PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sdl2] = "--enable-sdl2,--disable-sdl2,virtual/libsdl2" -PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex" -PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora libogg" -PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva" -PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" -PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx" -PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264" -PACKAGECONFIG[x265] = "--enable-libx265,--disable-libx265,x265" -PACKAGECONFIG[xcb] = "--enable-libxcb,--disable-libxcb,libxcb" -PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv" -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" - -# Check codecs that require --enable-nonfree -USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'openssl' ], 'yes', '', d)}" - -def cpu(d): - for arg in (d.getVar('TUNE_CCARGS') or '').split(): - if arg.startswith('-mcpu='): - return arg[6:] - return 'generic' - -EXTRA_OECONF = " \ - --disable-stripping \ - --enable-pic \ - --enable-shared \ - --enable-pthreads \ - ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \ - \ - --cross-prefix=${TARGET_PREFIX} \ - \ - --ld="${CCLD}" \ - --cc="${CC}" \ - --cxx="${CXX}" \ - --arch=${TARGET_ARCH} \ - --target-os="linux" \ - --enable-cross-compile \ - --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ - --extra-ldflags="${LDFLAGS}" \ - --sysroot="${STAGING_DIR_TARGET}" \ - ${EXTRA_FFCONF} \ - --libdir=${libdir} \ - --shlibdir=${libdir} \ - --datadir=${datadir}/ffmpeg \ - ${@bb.utils.contains('AVAILTUNES', 'mips32r2', '', '--disable-mipsdsp --disable-mipsdspr2', d)} \ - --cpu=${@cpu(d)} \ - --pkg-config=pkg-config \ -" - -EXTRA_OECONF_append_linux-gnux32 = " --disable-asm" -# gold crashes on x86, another solution is to --disable-asm but thats more hacky -# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 - -LDFLAGS_append_x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" - -EXTRA_OEMAKE = "V=1" - -do_configure() { - ${S}/configure ${EXTRA_OECONF} -} - -PACKAGES =+ "libavcodec \ - libavdevice \ - libavfilter \ - libavformat \ - libavresample \ - libavutil \ - libpostproc \ - libswresample \ - libswscale" - -FILES_libavcodec = "${libdir}/libavcodec${SOLIBS}" -FILES_libavdevice = "${libdir}/libavdevice${SOLIBS}" -FILES_libavfilter = "${libdir}/libavfilter${SOLIBS}" -FILES_libavformat = "${libdir}/libavformat${SOLIBS}" -FILES_libavresample = "${libdir}/libavresample${SOLIBS}" -FILES_libavutil = "${libdir}/libavutil${SOLIBS}" -FILES_libpostproc = "${libdir}/libpostproc${SOLIBS}" -FILES_libswresample = "${libdir}/libswresample${SOLIBS}" -FILES_libswscale = "${libdir}/libswscale${SOLIBS}" - -# ffmpeg disables PIC on some platforms (e.g. x86-32) -INSANE_SKIP_${MLPREFIX}libavcodec = "textrel" -INSANE_SKIP_${MLPREFIX}libavdevice = "textrel" -INSANE_SKIP_${MLPREFIX}libavfilter = "textrel" -INSANE_SKIP_${MLPREFIX}libavformat = "textrel" -INSANE_SKIP_${MLPREFIX}libavutil = "textrel" -INSANE_SKIP_${MLPREFIX}libavresample = "textrel" -INSANE_SKIP_${MLPREFIX}libswscale = "textrel" -INSANE_SKIP_${MLPREFIX}libswresample = "textrel" -INSANE_SKIP_${MLPREFIX}libpostproc = "textrel" diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch b/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch deleted file mode 100644 index b7603c3b1..000000000 --- a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 018ca26dece618457dd13585cad52941193c4a25 Mon Sep 17 00:00:00 2001 -From: Thomas Daede -Date: Wed, 9 May 2018 14:56:59 -0700 -Subject: [PATCH] CVE-2017-14160: fix bounds check on very low sample rates. - ---- -CVE: CVE-2017-14160 CVE-2018-10393 - -Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/018ca26d...] - -Signed-off-by: Joe Slater ---- ---- - lib/psy.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/lib/psy.c b/lib/psy.c -index 422c6f1..1310123 100644 ---- a/lib/psy.c -+++ b/lib/psy.c -@@ -602,8 +602,9 @@ static void bark_noise_hybridmp(int n,const long *b, - for (i = 0, x = 0.f;; i++, x += 1.f) { - - lo = b[i] >> 16; -- if( lo>=0 ) break; - hi = b[i] & 0xffff; -+ if( lo>=0 ) break; -+ if( hi>=n ) break; - - tN = N[hi] + N[-lo]; - tX = X[hi] - X[-lo]; --- -1.7.9.5 - diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch b/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch deleted file mode 100644 index b7936b4b4..000000000 --- a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 112d3bd0aaacad51305e1464d4b381dabad0e88b Mon Sep 17 00:00:00 2001 -From: Thomas Daede -Date: Thu, 17 May 2018 16:19:19 -0700 -Subject: [PATCH] Sanity check number of channels in setup. - -Fixes #2335. - ---- -CVE: CVE-2018-10392 - -Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/112d3bd...] - -Signed-off-by: Joe Slater ---- - - lib/vorbisenc.c | 1 + - 1 file changed, 1 insertion(+) - - -diff --git a/lib/vorbisenc.c b/lib/vorbisenc.c -index 4fc7b62..64a51b5 100644 ---- a/lib/vorbisenc.c -+++ b/lib/vorbisenc.c -@@ -684,6 +684,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){ - highlevel_encode_setup *hi=&ci->hi; - - if(ci==NULL)return(OV_EINVAL); -+ if(vi->channels<1||vi->channels>255)return(OV_EINVAL); - if(!hi->impulse_block_p)i0=1; - - /* too low/high an ATH floater is nonsensical, but doesn't break anything */ --- -1.7.9.5 - diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb b/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb deleted file mode 100644 index 1a3cdc226..000000000 --- a/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "Ogg Vorbis Audio Codec" -DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ -that is free of intellectual property restrictions. libvorbis \ -is the main vorbis codec library." -HOMEPAGE = "http://www.vorbis.com/" -BUGTRACKER = "https://trac.xiph.org" -SECTION = "libs" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \ - file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb" -DEPENDS = "libogg" - -SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \ - file://0001-configure-Check-for-clang.patch \ - file://CVE-2018-10392.patch \ - file://CVE-2017-14160.patch \ - " -SRC_URI[md5sum] = "b7d1692f275c73e7833ed1cc2697cd65" -SRC_URI[sha256sum] = "af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415" - -inherit autotools pkgconfig diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb b/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb new file mode 100644 index 000000000..c5c10348c --- /dev/null +++ b/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb @@ -0,0 +1,19 @@ +SUMMARY = "Ogg Vorbis Audio Codec" +DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ +that is free of intellectual property restrictions. libvorbis \ +is the main vorbis codec library." +HOMEPAGE = "http://www.vorbis.com/" +BUGTRACKER = "https://trac.xiph.org" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=73d9c8942c60b846c3bad13cc6c2e520 \ + file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=c95a4ac2b4125f00a9acf61449ebb843" +DEPENDS = "libogg" + +SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \ + file://0001-configure-Check-for-clang.patch \ + " +SRC_URI[md5sum] = "50902641d358135f06a8392e61c9ac77" +SRC_URI[sha256sum] = "b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b" + +inherit autotools pkgconfig diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb deleted file mode 100644 index affbac491..000000000 --- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" -DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ -mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ -and also can write the decoded audio to WAV." -HOMEPAGE = "http://mpg123.de/" -BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" - -SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" -SRC_URI[sha256sum] = "74d6629ab7f3dd9a588b0931528ba7ecfa989a2cad6bf53ffeef9de31b0fe032" - -UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" - -inherit autotools pkgconfig - -# The options should be mutually exclusive for configuration script. -# If both alsa and pulseaudio are specified (as in the default distro features) -# pulseaudio takes precedence. -PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" - -PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" -PACKAGECONFIG[esd] = ",,esound" -PACKAGECONFIG[jack] = ",,jack" -PACKAGECONFIG[openal] = ",,openal-soft" -PACKAGECONFIG[portaudio] = ",,portaudio-v19" -PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" -PACKAGECONFIG[sdl] = ",,libsdl2" - -# Following are possible sound output modules: -# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi -AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" -AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" - -EXTRA_OECONF = " \ - --enable-shared \ - --with-audio='${AUDIOMODS}' \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ -" -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' -#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' -#... -#| make[3]: *** [equalizer.lo] Error 1 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb new file mode 100644 index 000000000..aaa66e17a --- /dev/null +++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb @@ -0,0 +1,51 @@ +SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" +DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ +mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ +and also can write the decoded audio to WAV." +HOMEPAGE = "http://mpg123.de/" +BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" + +SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" +SRC_URI[sha256sum] = "00f7bf7ea64fcec2c9d07751d6ad8849343ee09c282ea3b0d5dd486e886e2ff3" + +UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" + +inherit autotools pkgconfig + +# The options should be mutually exclusive for configuration script. +# If both alsa and pulseaudio are specified (as in the default distro features) +# pulseaudio takes precedence. +PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" + +PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" +PACKAGECONFIG[esd] = ",,esound" +PACKAGECONFIG[jack] = ",,jack" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[portaudio] = ",,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" +PACKAGECONFIG[sdl] = ",,libsdl2" + +# Following are possible sound output modules: +# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi +AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" + +EXTRA_OECONF = " \ + --enable-shared \ + --with-audio='${AUDIOMODS}' \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ +" +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' +#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' +#... +#| make[3]: *** [equalizer.lo] Error 1 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc index c7f3e6702..4e32b2708 100644 --- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc +++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc @@ -63,14 +63,6 @@ DEPENDS += "speexdsp libxml-parser-perl-native libcap" inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings -# When compiling for Thumb or Thumb2, frame pointers _must_ be disabled since the -# Thumb frame pointer in r7 clashes with pulseaudio's use of inline asm to make syscalls -# (where r7 is used for the syscall NR). In most cases, frame pointers will be -# disabled automatically due to the optimisation level, but append an explicit -# -fomit-frame-pointer to handle cases where optimisation is set to -O0 or frame -# pointers have been enabled by -fno-omit-frame-pointer earlier in CFLAGS, etc. -CFLAGS_append_arm = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - # *.desktop rules wont be generated during configure and build will fail # if using --disable-nls USE_NLS = "yes" diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch new file mode 100644 index 000000000..aaa162f9b --- /dev/null +++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch @@ -0,0 +1,48 @@ +From 4a1668f341f0228904105f77fe5871b9d59b2663 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Mon, 13 Jul 2020 12:42:14 +0300 +Subject: [PATCH] remap_neon: use register r12 instead of r7 + +When the Thumb instructions set is used and frame pointers are enabled +(-fno-omit-frame-pointer), r7 can't be used, because it's used for the +frame pointer. Trying to use r7 caused the compilation to fail. + +Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to +test that it works. The code builds now, and cpu-remap-test also +succeeds. + +[1] https://lists.openembedded.org/g/openembedded-core/message/136786 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/324] + +Signed-off-by: Tanu Kaskinen +--- + src/pulsecore/remap_neon.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c +index ca3b95b48..6f71345f8 100644 +--- a/src/pulsecore/remap_neon.c ++++ b/src/pulsecore/remap_neon.c +@@ -52,11 +52,15 @@ static void remap_mono_to_stereo_float32ne_generic_arm(pa_remap_t *m, float *dst + __asm__ __volatile__ ( + "ldm %[src]!, {r4,r6} \n\t" + "mov r5, r4 \n\t" +- "mov r7, r6 \n\t" +- "stm %[dst]!, {r4-r7} \n\t" ++ ++ /* We use r12 instead of r7 here, because r7 is reserved for the ++ * frame pointer when using Thumb. */ ++ "mov r12, r6 \n\t" ++ ++ "stm %[dst]!, {r4-r6,r12} \n\t" + : [dst] "+r" (dst), [src] "+r" (src) /* output operands */ + : /* input operands */ +- : "memory", "r4", "r5", "r6", "r7" /* clobber list */ ++ : "memory", "r4", "r5", "r6", "r12" /* clobber list */ + ); + } + +-- +2.20.1 + diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb index d2f201d06..53e9a2357 100644 --- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb +++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb @@ -4,6 +4,7 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \ file://0001-client-conf-Add-allow-autospawn-for-root.patch \ file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \ file://0001-remap-arm-Adjust-inline-asm-constraints.patch \ + file://0001-remap_neon-use-register-r12-instead-of-r7.patch \ file://volatiles.04_pulse \ " SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb deleted file mode 100644 index e9941c7a2..000000000 --- a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb +++ /dev/null @@ -1,132 +0,0 @@ -SUMMARY = "WebKit web rendering engine for the GTK+ platform" -HOMEPAGE = "https://www.webkitgtk.org/" -BUGTRACKER = "https://bugs.webkit.org/" - -LICENSE = "BSD & LGPLv2+" -LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ - file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ - file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ - file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ - " - -SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ - file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ - file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ - file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ - file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ - file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ - file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \ - file://cross-compile.patch \ - file://0001-Fix-build-with-musl.patch \ - file://include_array.patch \ - " -SRC_URI[md5sum] = "ec0ef870ca37e3a5ebbead2f268a28ec" -SRC_URI[sha256sum] = "b9d23525cfd8d22c37b5d964a9fe9a8ce7583042a2f8d3922e71e6bbc68c30bd" - -inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" - -CVE_PRODUCT = "webkitgtk webkitgtk\+" - -DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libgcrypt \ - gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ - pango icu bison-native gawk intltool-native libwebp \ - atk udev harfbuzz jpeg libpng librsvg libtheora libvorbis \ - ruby-native libnotify gstreamer1.0-plugins-bad \ - gettext-native glib-2.0 glib-2.0-native libtasn1 \ - " - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ - enchant \ - libsecret \ - " - -PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" -PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" -PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" -PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" -PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" -PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" -PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" -PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" -PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" -PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" -PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" - -# webkitgtk is full of /usr/bin/env python, particular for generating docs -do_configure[postfuncs] += "setup_python_link" -setup_python_link() { - if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then - ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python - fi -} - -EXTRA_OECMAKE = " \ - -DPORT=GTK \ - -DCMAKE_BUILD_TYPE=Release \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ - ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ - -DENABLE_MINIBROWSER=ON \ - -DPYTHON_EXECUTABLE=`which python3` \ - -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ - " - -# Javascript JIT is not supported on ARC -EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " -# By default 25-bit "medium" calls are used on ARC -# which is not enough for binaries larger than 32 MiB -CFLAGS_append_arc = " -mlong-calls" -CXXFLAGS_append_arc = " -mlong-calls" - -# Javascript JIT is not supported on powerpc -EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " - -# ARM JIT code does not build on ARMv4/5/6 anymore -EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " - -EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " -EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " - -# JIT not supported on MIPS either -EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " - -# JIT not supported on X32 -# An attempt was made to upstream JIT support for x32 in -# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as -# unresolved due to limited X32 adoption. -EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " - -SECURITY_CFLAGS_remove_aarch64 = "-fpie" -SECURITY_CFLAGS_append_aarch64 = " -fPIE" - -FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" - -RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" - -# http://errors.yoctoproject.org/Errors/Details/20370/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 -# https://bugs.webkit.org/show_bug.cgi?id=159880 -# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. -# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). -ARM_INSTRUCTION_SET_armv7a = "thumb" -ARM_INSTRUCTION_SET_armv7r = "thumb" -ARM_INSTRUCTION_SET_armv7ve = "thumb" - -# introspection inside qemu-arm hangs forever on musl/arm builds -# therefore disable GI_DATA -GI_DATA_ENABLED_libc-musl_armv7a = "False" -GI_DATA_ENABLED_libc-musl_armv7ve = "False" - -# Can't be built with ccache -CCACHE_DISABLE = "1" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb new file mode 100644 index 000000000..015809226 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb @@ -0,0 +1,131 @@ +SUMMARY = "WebKit web rendering engine for the GTK+ platform" +HOMEPAGE = "https://www.webkitgtk.org/" +BUGTRACKER = "https://bugs.webkit.org/" + +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + " + +SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ + file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ + file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ + file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ + file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ + file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ + file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \ + file://cross-compile.patch \ + file://0001-Fix-build-with-musl.patch \ + file://include_array.patch \ + " +SRC_URI[sha256sum] = "f0898ac072c220e13a4aee819408421a6cb56a6eb89170ceafe52468b0903522" + +inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" + +CVE_PRODUCT = "webkitgtk webkitgtk\+" + +DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libgcrypt \ + gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ + pango icu bison-native gawk intltool-native libwebp \ + atk udev harfbuzz jpeg libpng librsvg libtheora libvorbis \ + ruby-native libnotify gstreamer1.0-plugins-bad \ + gettext-native glib-2.0 glib-2.0-native libtasn1 \ + " + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ + enchant \ + libsecret \ + " + +PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" +PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" +PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" +PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" +PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" +PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" +PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" +PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" +PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" +PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" + +# webkitgtk is full of /usr/bin/env python, particular for generating docs +do_configure[postfuncs] += "setup_python_link" +setup_python_link() { + if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then + ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python + fi +} + +EXTRA_OECMAKE = " \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ + ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ + -DENABLE_MINIBROWSER=ON \ + -DPYTHON_EXECUTABLE=`which python3` \ + -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ + " + +# Javascript JIT is not supported on ARC +EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " +# By default 25-bit "medium" calls are used on ARC +# which is not enough for binaries larger than 32 MiB +CFLAGS_append_arc = " -mlong-calls" +CXXFLAGS_append_arc = " -mlong-calls" + +# Javascript JIT is not supported on powerpc +EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " + +# ARM JIT code does not build on ARMv4/5/6 anymore +EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " + +EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " +EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " + +# JIT not supported on MIPS either +EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " + +# JIT not supported on X32 +# An attempt was made to upstream JIT support for x32 in +# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as +# unresolved due to limited X32 adoption. +EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " + +SECURITY_CFLAGS_remove_aarch64 = "-fpie" +SECURITY_CFLAGS_append_aarch64 = " -fPIE" + +FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" + +RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" + +# http://errors.yoctoproject.org/Errors/Details/20370/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 +# https://bugs.webkit.org/show_bug.cgi?id=159880 +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). +ARM_INSTRUCTION_SET_armv7a = "thumb" +ARM_INSTRUCTION_SET_armv7r = "thumb" +ARM_INSTRUCTION_SET_armv7ve = "thumb" + +# introspection inside qemu-arm hangs forever on musl/arm builds +# therefore disable GI_DATA +GI_DATA_ENABLED_libc-musl_armv7a = "False" +GI_DATA_ENABLED_libc-musl_armv7ve = "False" + +# Can't be built with ccache +CCACHE_DISABLE = "1" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_150.bb b/poky/meta/recipes-support/diffoscope/diffoscope_150.bb deleted file mode 100644 index 58bd60a2c..000000000 --- a/poky/meta/recipes-support/diffoscope/diffoscope_150.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "in-depth comparison of files, archives, and directories" -HOMEPAGE = "https://diffoscope.org/" -LICENSE = "GPL-3.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -PYPI_PACKAGE = "diffoscope" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "0b9e4ae401fe4cbb8ce89b0bcabe608581d0ed53b91a28f18337179c7494af57" - -RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" - -# Dependencies don't build for musl -COMPATIBLE_HOST_libc-musl = 'null' - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_151.bb b/poky/meta/recipes-support/diffoscope/diffoscope_151.bb new file mode 100644 index 000000000..9b39b4435 --- /dev/null +++ b/poky/meta/recipes-support/diffoscope/diffoscope_151.bb @@ -0,0 +1,17 @@ +SUMMARY = "in-depth comparison of files, archives, and directories" +HOMEPAGE = "https://diffoscope.org/" +LICENSE = "GPL-3.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +PYPI_PACKAGE = "diffoscope" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "f15e04aa537f0a3d91c99bf631c604668f4eea8f6552c5f93ea9be2bf014df84" + +RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" + +# Dependencies don't build for musl +COMPATIBLE_HOST_libc-musl = 'null' + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb new file mode 100644 index 000000000..ba9e6f06d --- /dev/null +++ b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb @@ -0,0 +1,17 @@ +SUMMARY = "Free Implementation of the Unicode Bidirectional Algorithm" +SECTION = "libs" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \ + " +SRC_URI[md5sum] = "97c87da9930e8e70fbfc8e2bcd031554" +SRC_URI[sha256sum] = "7f1c687c7831499bcacae5e8675945a39bacbad16ecaa945e9454a32df653c01" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" + +inherit meson lib_package pkgconfig + +CVE_PRODUCT = "gnu_fribidi" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb b/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb deleted file mode 100644 index 21217aba5..000000000 --- a/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Free Implementation of the Unicode Bidirectional Algorithm" -SECTION = "libs" -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \ - " -SRC_URI[md5sum] = "1b767c259c3cd8e0c8496970f63c22dc" -SRC_URI[sha256sum] = "c5e47ea9026fb60da1944da9888b4e0a18854a0e2410bbfe7ad90a054d36e0c7" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" - -inherit meson lib_package pkgconfig - -CVE_PRODUCT = "gnu_fribidi" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch index 2c204e024..0e78f5679 100644 --- a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch +++ b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch @@ -1,4 +1,4 @@ -From e7ad11cf54475e455fdb84d118e4782961698567 Mon Sep 17 00:00:00 2001 +From 0e51c62706a8c54e90a2d98c5250ecc894c65182 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Mon, 22 Jan 2018 18:00:21 +0200 Subject: [PATCH] configure.ac: use a custom value for the location of @@ -14,10 +14,10 @@ Signed-off-by: Alexander Kanavin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 919ab31..cd58fdb 100644 +index f3c9863..a57f559 100644 --- a/configure.ac +++ b/configure.ac -@@ -1855,7 +1855,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf", +@@ -1856,7 +1856,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf", AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool]) diff --git a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch index e5a82aa76..25732a827 100644 --- a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch +++ b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch @@ -1,4 +1,4 @@ -From 59c077f32e81190955910cae02599c7a3edfa7fb Mon Sep 17 00:00:00 2001 +From 6e3b1d89758c3ee7072aeefa305ce5fe76f2e439 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Wed, 19 Sep 2018 14:44:40 +0100 Subject: [PATCH] Allow the environment to override where gnupg looks for its @@ -12,10 +12,10 @@ Signed-off-by: Ross Burton 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/common/homedir.c b/common/homedir.c -index e9e75d0..19140aa 100644 +index 4b6e46e..58989b4 100644 --- a/common/homedir.c +++ b/common/homedir.c -@@ -760,7 +760,7 @@ gnupg_socketdir (void) +@@ -763,7 +763,7 @@ gnupg_socketdir (void) if (!name) { unsigned int dummy; @@ -24,7 +24,7 @@ index e9e75d0..19140aa 100644 } return name; -@@ -786,7 +786,7 @@ gnupg_sysconfdir (void) +@@ -789,7 +789,7 @@ gnupg_sysconfdir (void) } return name; #else /*!HAVE_W32_SYSTEM*/ @@ -33,7 +33,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -815,7 +815,7 @@ gnupg_bindir (void) +@@ -818,7 +818,7 @@ gnupg_bindir (void) else return rdir; #else /*!HAVE_W32_SYSTEM*/ @@ -42,7 +42,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -828,7 +828,7 @@ gnupg_libexecdir (void) +@@ -831,7 +831,7 @@ gnupg_libexecdir (void) #ifdef HAVE_W32_SYSTEM return gnupg_bindir (); #else /*!HAVE_W32_SYSTEM*/ @@ -51,7 +51,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -842,7 +842,7 @@ gnupg_libdir (void) +@@ -845,7 +845,7 @@ gnupg_libdir (void) name = xstrconcat (w32_rootdir (), DIRSEP_S "lib" DIRSEP_S "gnupg", NULL); return name; #else /*!HAVE_W32_SYSTEM*/ @@ -60,7 +60,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -856,7 +856,7 @@ gnupg_datadir (void) +@@ -859,7 +859,7 @@ gnupg_datadir (void) name = xstrconcat (w32_rootdir (), DIRSEP_S "share" DIRSEP_S "gnupg", NULL); return name; #else /*!HAVE_W32_SYSTEM*/ @@ -69,7 +69,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -872,7 +872,7 @@ gnupg_localedir (void) +@@ -875,7 +875,7 @@ gnupg_localedir (void) NULL); return name; #else /*!HAVE_W32_SYSTEM*/ @@ -78,7 +78,7 @@ index e9e75d0..19140aa 100644 #endif /*!HAVE_W32_SYSTEM*/ } -@@ -940,7 +940,7 @@ gnupg_cachedir (void) +@@ -943,7 +943,7 @@ gnupg_cachedir (void) } return dir; #else /*!HAVE_W32_SYSTEM*/ diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb deleted file mode 100644 index f754573c8..000000000 --- a/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb +++ /dev/null @@ -1,81 +0,0 @@ -SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" -HOMEPAGE = "http://www.gnupg.org/" -LICENSE = "GPLv3 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ - file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" - -DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" - -inherit autotools gettext texinfo pkgconfig - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ - file://0002-use-pkgconfig-instead-of-npth-config.patch \ - file://0003-dirmngr-uses-libgpg-error.patch \ - file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ - file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ - " -SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ - file://relocate.patch" -SRC_URI_append_class-nativesdk = " file://relocate.patch" - -SRC_URI[md5sum] = "4ff88920cf52b35db0dedaee87bdbbb1" -SRC_URI[sha256sum] = "04a7c9d48b74c399168ee8270e548588ddbe52218c337703d7f06373d326ca30" - -EXTRA_OECONF = "--disable-ldap \ - --disable-ccid-driver \ - --with-zlib=${STAGING_LIBDIR}/.. \ - --with-bzip2=${STAGING_LIBDIR}/.. \ - --with-readline=${STAGING_LIBDIR}/.. \ - --enable-gpg-is-gpg2 \ - " - -# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) -PACKAGES =+ "${PN}-gpg" -FILES_${PN}-gpg = " \ - ${bindir}/gpg \ - ${bindir}/gpg2 \ - ${bindir}/gpg-agent \ -" - -# Normal package (gnupg) should depend on minimal package (gnupg-gpg) -# to ensure all tools are included. This is done only in non-native -# builds. Native builds don't have sub-packages, so appending RDEPENDS -# in this case breaks recipe parsing. -RDEPENDS_${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}" - -RRECOMMENDS_${PN} = "pinentry" - -do_configure_prepend () { - # Else these could be used in prefernce to those in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 - rm -f ${S}/m4/libassuan.m4 - rm -f ${S}/m4/ksba.m4 - rm -f ${S}/m4/libgcrypt.m4 -} - -do_install_append() { - ln -sf gpg2 ${D}${bindir}/gpg - ln -sf gpgv2 ${D}${bindir}/gpgv -} - -do_install_append_class-native() { - create_wrappers ${STAGING_BINDIR_NATIVE} -} - -do_install_append_class-nativesdk() { - create_wrappers ${SDKPATHNATIVE}${bindir_nativesdk} -} - -create_wrappers() { - for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do - create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1 - done -} - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" -PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb new file mode 100644 index 000000000..701d769e6 --- /dev/null +++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb @@ -0,0 +1,80 @@ +SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" +HOMEPAGE = "http://www.gnupg.org/" +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ + file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" + +DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" + +inherit autotools gettext texinfo pkgconfig + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ + file://0002-use-pkgconfig-instead-of-npth-config.patch \ + file://0003-dirmngr-uses-libgpg-error.patch \ + file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ + file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ + " +SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ + file://relocate.patch" +SRC_URI_append_class-nativesdk = " file://relocate.patch" + +SRC_URI[sha256sum] = "61e83278fb5fa7336658a8b73ab26f379d41275bb1c7c6e694dd9f9a6e8e76ec" + +EXTRA_OECONF = "--disable-ldap \ + --disable-ccid-driver \ + --with-zlib=${STAGING_LIBDIR}/.. \ + --with-bzip2=${STAGING_LIBDIR}/.. \ + --with-readline=${STAGING_LIBDIR}/.. \ + --enable-gpg-is-gpg2 \ + " + +# A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg) +PACKAGES =+ "${PN}-gpg" +FILES_${PN}-gpg = " \ + ${bindir}/gpg \ + ${bindir}/gpg2 \ + ${bindir}/gpg-agent \ +" + +# Normal package (gnupg) should depend on minimal package (gnupg-gpg) +# to ensure all tools are included. This is done only in non-native +# builds. Native builds don't have sub-packages, so appending RDEPENDS +# in this case breaks recipe parsing. +RDEPENDS_${PN} += "${@ "" if ("native" in d.getVar("PN")) else (d.getVar("PN") + "-gpg")}" + +RRECOMMENDS_${PN} = "pinentry" + +do_configure_prepend () { + # Else these could be used in prefernce to those in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 + rm -f ${S}/m4/libassuan.m4 + rm -f ${S}/m4/ksba.m4 + rm -f ${S}/m4/libgcrypt.m4 +} + +do_install_append() { + ln -sf gpg2 ${D}${bindir}/gpg + ln -sf gpgv2 ${D}${bindir}/gpgv +} + +do_install_append_class-native() { + create_wrappers ${STAGING_BINDIR_NATIVE} +} + +do_install_append_class-nativesdk() { + create_wrappers ${SDKPATHNATIVE}${bindir_nativesdk} +} + +create_wrappers() { + for i in gpg2 gpgconf gpg-agent gpg-connect-agent; do + create_wrapper ${D}${bindir}/$i GNUPG_BINDIR=$1 + done +} + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" +PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch b/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch new file mode 100644 index 000000000..a610abf9b --- /dev/null +++ b/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch @@ -0,0 +1,90 @@ +From c0ae3f659c6c130d151378ba4d7d861e3b7b970f Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Wed, 8 Jul 2020 14:50:27 +0900 +Subject: [PATCH] Modied the license to GPLv2.1+ to keep with LICENSE file. + +Signed-off-by: Lei Maohui +Please reference to https://gitlab.com/gnutls/gnutls/-/issues/1018. +Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls/-/merge_requests/1285]. +--- + lib/x509/krb5.c | 20 +++++++++++--------- + lib/x509/krb5.h | 20 +++++++++++--------- + 2 files changed, 22 insertions(+), 18 deletions(-) + +diff --git a/lib/x509/krb5.c b/lib/x509/krb5.c +index 7fe84e6..d68c737 100644 +--- a/lib/x509/krb5.c ++++ b/lib/x509/krb5.c +@@ -1,21 +1,23 @@ + /* + * Copyright (C) 2015 Red Hat, Inc. + * ++ * Author: Nikos Mavrogiannopoulos ++ * + * This file is part of GnuTLS. + * +- * GnuTLS is free software: you can redistribute it and/or modify it +- * under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. ++ * The GnuTLS is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. + * +- * GnuTLS is distributed in the hope that it will be useful, but ++ * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details. ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program. If not, see + * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see +- * . + */ + + #include +diff --git a/lib/x509/krb5.h b/lib/x509/krb5.h +index d8926af..815bb28 100644 +--- a/lib/x509/krb5.h ++++ b/lib/x509/krb5.h +@@ -1,21 +1,23 @@ + /* + * Copyright (C) 2015 Red Hat, Inc. + * ++ * Author: Nikos Mavrogiannopoulos ++ * + * This file is part of GnuTLS. + * +- * GnuTLS is free software: you can redistribute it and/or modify it +- * under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. ++ * The GnuTLS is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public License ++ * as published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. + * +- * GnuTLS is distributed in the hope that it will be useful, but ++ * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- * General Public License for more details. ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program. If not, see + * +- * You should have received a copy of the GNU General Public License +- * along with this program. If not, see +- * . + */ + + #ifndef GNUTLS_LIB_X509_KRB5_H +-- +2.17.1 + diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb b/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb index a285e5a1f..cc0454a56 100644 --- a/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb +++ b/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb @@ -19,6 +19,7 @@ SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ file://arm_eabi.patch \ + file://0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch \ " SRC_URI[sha256sum] = "5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63" diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb b/poky/meta/recipes-support/libevent/libevent_2.1.11.bb deleted file mode 100644 index fb186eb89..000000000 --- a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "An asynchronous event notification library" -HOMEPAGE = "http://libevent.org/" -BUGTRACKER = "https://github.com/libevent/libevent/issues" -SECTION = "libs" - -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" - -SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ - file://Makefile-missing-test-dir.patch \ - file://run-ptest \ - file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \ - " - -SRC_URI[md5sum] = "7f35cfe69b82d879111ec0d7b7b1c531" -SRC_URI[sha256sum] = "a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d" - -UPSTREAM_CHECK_URI = "http://libevent.org/" - -S = "${WORKDIR}/${BPN}-${PV}-stable" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" - -inherit autotools - -# Needed for Debian packaging -LEAD_SONAME = "libevent-2.1.so" - -inherit ptest multilib_header - -DEPENDS = "zlib" - -PACKAGES_DYNAMIC = "^${PN}-.*$" -python split_libevent_libs () { - do_split_packages(d, '${libdir}', r'^libevent_([a-z]*)-.*\.so\..*', '${PN}-%s', '${SUMMARY} (%s)', prepend=True, allow_links=True) -} -PACKAGESPLITFUNCS_prepend = "split_libevent_libs " - -BBCLASSEXTEND = "native nativesdk" - -do_install_append() { - rm ${D}${bindir}/event_rpcgen.py - rmdir ${D}${bindir} - oe_multilib_header event2/event-config.h -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/test - for file in ${B}/test/.libs/regress ${B}/test/.libs/test* - do - install -m 0755 $file ${D}${PTEST_PATH}/test - done - - # handle multilib - sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest -} diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb new file mode 100644 index 000000000..29e87081d --- /dev/null +++ b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb @@ -0,0 +1,56 @@ +SUMMARY = "An asynchronous event notification library" +HOMEPAGE = "http://libevent.org/" +BUGTRACKER = "https://github.com/libevent/libevent/issues" +SECTION = "libs" + +LICENSE = "BSD & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" + +SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ + file://Makefile-missing-test-dir.patch \ + file://run-ptest \ + file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \ + " + +SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb" + +UPSTREAM_CHECK_URI = "http://libevent.org/" + +S = "${WORKDIR}/${BPN}-${PV}-stable" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" + +inherit autotools + +# Needed for Debian packaging +LEAD_SONAME = "libevent-2.1.so" + +inherit ptest multilib_header + +DEPENDS = "zlib" + +PACKAGES_DYNAMIC = "^${PN}-.*$" +python split_libevent_libs () { + do_split_packages(d, '${libdir}', r'^libevent_([a-z]*)-.*\.so\..*', '${PN}-%s', '${SUMMARY} (%s)', prepend=True, allow_links=True) +} +PACKAGESPLITFUNCS_prepend = "split_libevent_libs " + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + rm ${D}${bindir}/event_rpcgen.py + rmdir ${D}${bindir} + oe_multilib_header event2/event-config.h +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + for file in ${B}/test/.libs/regress ${B}/test/.libs/test* + do + install -m 0755 $file ${D}${PTEST_PATH}/test + done + + # handle multilib + sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest +} diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb deleted file mode 100644 index 4e0eb0a16..000000000 --- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb +++ /dev/null @@ -1,58 +0,0 @@ -SUMMARY = "General purpose cryptographic library based on the code from GnuPG" -HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" -BUGTRACKER = "https://bugs.g10code.com/gnupg/index" -SECTION = "libs" - -# helper program gcryptrnd and getrandom are under GPL, rest LGPL -LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" -LICENSE_${PN} = "LGPLv2.1+" -LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" -LICENSE_dumpsexp-dev = "GPLv3+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ - file://LICENSES;md5=840e3bcb754e5046ffeda7619034cbd8" - -DEPENDS = "libgpg-error" - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ - file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ - file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ - file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ - file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ - file://0001-Prefetch-GCM-look-up-tables.patch \ - file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \ - file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \ - file://determinism.patch \ -" -SRC_URI[md5sum] = "348cc4601ca34307fc6cd6c945467743" -SRC_URI[sha256sum] = "3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3" - -BINCONFIG = "${bindir}/libgcrypt-config" - -inherit autotools texinfo binconfig-disabled pkgconfig - -EXTRA_OECONF = "--disable-asm" -EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" - -PACKAGECONFIG ??= "capabilities" -PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" - -do_configure_prepend () { - # Else this could be used in preference to the one in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 -} - -# libgcrypt.pc is added locally and thus installed here -do_install_append() { - install -d ${D}/${libdir}/pkgconfig - install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ -} - -PACKAGES =+ "dumpsexp-dev" - -FILES_${PN}-dev += "${bindir}/hmac256" -FILES_dumpsexp-dev += "${bindir}/dumpsexp" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb new file mode 100644 index 000000000..ac09417e8 --- /dev/null +++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb @@ -0,0 +1,57 @@ +SUMMARY = "General purpose cryptographic library based on the code from GnuPG" +HOMEPAGE = "http://directory.fsf.org/project/libgcrypt/" +BUGTRACKER = "https://bugs.g10code.com/gnupg/index" +SECTION = "libs" + +# helper program gcryptrnd and getrandom are under GPL, rest LGPL +LICENSE = "GPLv2+ & LGPLv2.1+ & GPLv3+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-dev = "GPLv2+ & LGPLv2.1+" +LICENSE_dumpsexp-dev = "GPLv3+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \ + file://LICENSES;md5=840e3bcb754e5046ffeda7619034cbd8" + +DEPENDS = "libgpg-error" + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \ + file://0001-libgcrypt-fix-m4-file-for-oe-core.patch \ + file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \ + file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ + file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \ + file://0001-Prefetch-GCM-look-up-tables.patch \ + file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \ + file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \ + file://determinism.patch \ +" +SRC_URI[sha256sum] = "0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975" + +BINCONFIG = "${bindir}/libgcrypt-config" + +inherit autotools texinfo binconfig-disabled pkgconfig + +EXTRA_OECONF = "--disable-asm" +EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" + +PACKAGECONFIG ??= "capabilities" +PACKAGECONFIG[capabilities] = "--with-capabilities,--without-capabilities,libcap" + +do_configure_prepend () { + # Else this could be used in preference to the one in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 +} + +# libgcrypt.pc is added locally and thus installed here +do_install_append() { + install -d ${D}/${libdir}/pkgconfig + install -m 0644 ${B}/src/libgcrypt.pc ${D}/${libdir}/pkgconfig/ +} + +PACKAGES =+ "dumpsexp-dev" + +FILES_${PN}-dev += "${bindir}/hmac256" +FILES_dumpsexp-dev += "${bindir}/dumpsexp" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb b/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb deleted file mode 100644 index 00c2dc2fe..000000000 --- a/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "C library for multiple-precision floating-point computations with exact rounding" -HOMEPAGE = "https://www.mpfr.org/" -LICENSE = "LGPLv3+" -SECTION = "devel" - -inherit autotools texinfo - -LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ - file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ - " -DEPENDS = "gmp autoconf-archive" - -SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz" -SRC_URI[md5sum] = "320fbc4463d4c8cb1e566929d8adc4f8" -SRC_URI[sha256sum] = "1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a" - -UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb b/poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb new file mode 100644 index 000000000..82b5516f2 --- /dev/null +++ b/poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "C library for multiple-precision floating-point computations with exact rounding" +HOMEPAGE = "https://www.mpfr.org/" +LICENSE = "LGPLv3+" +SECTION = "devel" + +inherit autotools texinfo + +LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \ + file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \ + " +DEPENDS = "gmp autoconf-archive" + +SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz" +SRC_URI[sha256sum] = "0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f" + +UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/serf/serf_1.3.9.bb b/poky/meta/recipes-support/serf/serf_1.3.9.bb index dd4133a45..6a27f1210 100644 --- a/poky/meta/recipes-support/serf/serf_1.3.9.bb +++ b/poky/meta/recipes-support/serf/serf_1.3.9.bb @@ -30,4 +30,4 @@ EXTRA_OESCONS = " \ OPENSSL="${STAGING_EXECPREFIXDIR}" \ " -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/site/common b/poky/meta/site/common index ff552329b..62907274d 100644 --- a/poky/meta/site/common +++ b/poky/meta/site/common @@ -19,3 +19,10 @@ shadow_cv_passwd_dir=${bindir} ac_cv_buggy_getaddrinfo=no ac_cv_path_SED=${ac_cv_path_SED=sed} + +# General +ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no} + +# bash +bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no} +bash_cv_sys_siglist=${bash_cv_sys_siglist=no} diff --git a/poky/meta/site/common-glibc b/poky/meta/site/common-glibc index a0680bc44..0a665658f 100644 --- a/poky/meta/site/common-glibc +++ b/poky/meta/site/common-glibc @@ -1,5 +1,4 @@ # general -ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=yes} ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes} ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes} ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes} @@ -18,8 +17,6 @@ ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes} ac_cv_func_strtod=${ac_cv_func_strtod=yes} # bash -bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=yes} -bash_cv_sys_siglist=${bash_cv_sys_siglist=yes} bash_cv_getcwd_malloc=${bash_cv_getcwd_malloc=yes} # clamav diff --git a/poky/meta/site/common-musl b/poky/meta/site/common-musl index 4be8d002d..44a7a1aea 100644 --- a/poky/meta/site/common-musl +++ b/poky/meta/site/common-musl @@ -1,5 +1,4 @@ # general -ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no} ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes} ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes} ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes} @@ -29,10 +28,6 @@ glib_cv_have_qsort_r=${glib_cv_have_qsort_r=no} #dbus-glib ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes} -# bash -bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no} -bash_cv_sys_siglist=${bash_cv_sys_siglist=no} - # coreutils fu_cv_sys_stat_statfs2_bsize=${fu_cv_sys_stat_statfs2_bsize=yes} gl_cv_func_getcwd_abort_bug=${gl_cv_func_getcwd_abort_bug=no} diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py index 8d78c5b6f..566c75369 100644 --- a/poky/scripts/lib/recipetool/create.py +++ b/poky/scripts/lib/recipetool/create.py @@ -66,7 +66,7 @@ class RecipeHandler(object): libdir = d.getVar('libdir') base_libdir = d.getVar('base_libdir') libpaths = list(set([base_libdir, libdir])) - libname_re = re.compile('^lib(.+)\.so.*$') + libname_re = re.compile(r'^lib(.+)\.so.*$') pkglibmap = {} for lib, item in shlib_providers.items(): for path, pkg in item.items(): @@ -428,7 +428,7 @@ def create_recipe(args): if scriptutils.is_src_url(source): # Warn about github archive URLs - if re.match('https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source): + if re.match(r'https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source): logger.warning('github archive files are not guaranteed to be stable and may be re-generated over time. If the latter occurs, the checksums will likely change and the recipe will fail at do_fetch. It is recommended that you point to an actual commit or tag in the repository instead (using the repository URL in conjunction with the -S/--srcrev option).') # Fetch a URL fetchuri = reformat_git_uri(urldefrag(source)[0]) @@ -830,7 +830,7 @@ def create_recipe(args): elif line.startswith('PV = '): if realpv: # Replace the first part of the PV value - line = re.sub('"[^+]*\+', '"%s+' % realpv, line) + line = re.sub(r'"[^+]*\+', '"%s+' % realpv, line) lines_before.append(line) if args.also_native: @@ -1066,8 +1066,8 @@ def crunch_license(licfile): import oe.utils # Note: these are carefully constructed! - license_title_re = re.compile('^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$') - license_statement_re = re.compile('^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$') + license_title_re = re.compile(r'^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$') + license_statement_re = re.compile(r'^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$') copyright_re = re.compile('^(#+)? *Copyright .*$') crunched_md5sums = {} diff --git a/poky/scripts/lib/wic/filemap.py b/poky/scripts/lib/wic/filemap.py index c53147c2f..4d9da2817 100644 --- a/poky/scripts/lib/wic/filemap.py +++ b/poky/scripts/lib/wic/filemap.py @@ -142,15 +142,6 @@ class _FilemapBase(object): raise Error("the method is not implemented") - def block_is_unmapped(self, block): # pylint: disable=W0613,R0201 - """ - This method has has to be implemented by child classes. It returns - 'True' if block number 'block' of the image file is not mapped (hole) - and 'False' otherwise. - """ - - raise Error("the method is not implemented") - def get_mapped_ranges(self, start, count): # pylint: disable=W0613,R0201 """ This method has has to be implemented by child classes. This is a @@ -164,15 +155,6 @@ class _FilemapBase(object): raise Error("the method is not implemented") - def get_unmapped_ranges(self, start, count): # pylint: disable=W0613,R0201 - """ - This method has has to be implemented by child classes. Just like - 'get_mapped_ranges()', but yields unmapped block ranges instead - (holes). - """ - - raise Error("the method is not implemented") - # The 'SEEK_HOLE' and 'SEEK_DATA' options of the file seek system call _SEEK_DATA = 3 @@ -265,15 +247,10 @@ class FilemapSeek(_FilemapBase): % (block, result)) return result - def block_is_unmapped(self, block): - """Refer the '_FilemapBase' class for the documentation.""" - return not self.block_is_mapped(block) - def _get_ranges(self, start, count, whence1, whence2): """ - This function implements 'get_mapped_ranges()' and - 'get_unmapped_ranges()' depending on what is passed in the 'whence1' - and 'whence2' arguments. + This function implements 'get_mapped_ranges()' depending + on what is passed in the 'whence1' and 'whence2' arguments. """ assert whence1 != whence2 @@ -303,12 +280,6 @@ class FilemapSeek(_FilemapBase): % (start, count, start + count - 1)) return self._get_ranges(start, count, _SEEK_DATA, _SEEK_HOLE) - def get_unmapped_ranges(self, start, count): - """Refer the '_FilemapBase' class for the documentation.""" - self._log.debug("FilemapSeek: get_unmapped_ranges(%d, %d(%d))" - % (start, count, start + count - 1)) - return self._get_ranges(start, count, _SEEK_HOLE, _SEEK_DATA) - # Below goes the FIEMAP ioctl implementation, which is not very readable # because it deals with the rather complex FIEMAP ioctl. To understand the @@ -422,10 +393,6 @@ class FilemapFiemap(_FilemapBase): % (block, result)) return result - def block_is_unmapped(self, block): - """Refer the '_FilemapBase' class for the documentation.""" - return not self.block_is_mapped(block) - def _unpack_fiemap_extent(self, index): """ Unpack a 'struct fiemap_extent' structure object number 'index' from @@ -502,23 +469,28 @@ class FilemapFiemap(_FilemapBase): % (first_prev, last_prev)) yield (first_prev, last_prev) - def get_unmapped_ranges(self, start, count): +class FilemapNobmap(_FilemapBase): + """ + This class is used when both the 'SEEK_DATA/HOLE' and FIEMAP are not + supported by the filesystem or kernel. + """ + + def __init__(self, image, log=None): """Refer the '_FilemapBase' class for the documentation.""" - self._log.debug("FilemapFiemap: get_unmapped_ranges(%d, %d(%d))" - % (start, count, start + count - 1)) - hole_first = start - for first, last in self._do_get_mapped_ranges(start, count): - if first > hole_first: - self._log.debug("FilemapFiemap: yielding range (%d, %d)" - % (hole_first, first - 1)) - yield (hole_first, first - 1) - hole_first = last + 1 + # Call the base class constructor first + _FilemapBase.__init__(self, image, log) + self._log.debug("FilemapNobmap: initializing") + + def block_is_mapped(self, block): + """Refer the '_FilemapBase' class for the documentation.""" + return True - if hole_first < start + count: - self._log.debug("FilemapFiemap: yielding range (%d, %d)" - % (hole_first, start + count - 1)) - yield (hole_first, start + count - 1) + def get_mapped_ranges(self, start, count): + """Refer the '_FilemapBase' class for the documentation.""" + self._log.debug("FilemapNobmap: get_mapped_ranges(%d, %d(%d))" + % (start, count, start + count - 1)) + yield (start, start + count -1) def filemap(image, log=None): """ @@ -533,7 +505,10 @@ def filemap(image, log=None): try: return FilemapFiemap(image, log) except ErrorNotSupp: - return FilemapSeek(image, log) + try: + return FilemapSeek(image, log) + except ErrorNotSupp: + return FilemapNobmap(image, log) def sparse_copy(src_fname, dst_fname, skip=0, seek=0, length=0, api=None): -- cgit v1.2.3 From 635e0e4637e40ba03f69204265427550fd404f4c Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 21 Aug 2020 15:58:33 -0500 Subject: poky: subtree update:23deb29c1b..c67f57c09e Adrian Bunk (1): librsvg: Upgrade 2.40.20 -> 2.40.21 Alejandro Hernandez (1): musl: Upgrade to latest release 1.2.1 Alex Kiernan (8): systemd: Upgrade v245.6 -> v246 systemd: Move musl patches to SRC_URI_MUSL systemd: Fix path to modules-load.d et al nfs-utils: Drop StandardError=syslog from systemd unit openssh: Drop StandardError=syslog from systemd unit volatile-binds: Drop StandardOutput=syslog from systemd unit systemd: Upgrade v246 -> v246.1 systemd: Upgrade v246.1 -> v246.2 Alexander Kanavin (16): sysvinit: update 2.96 -> 2.97 kbd: update 2.2.0 -> 2.3.0 gnu-config: update to latest revision go: update 1.14.4 -> 1.14.6 meson: update 0.54.3 -> 0.55.0 nasm: update 2.14.02 -> 2.15.03 glib-2.0: correct build with latest meson rsync: update 3.2.1 -> 3.2.2 vala: update 0.48.6 -> 0.48.7 logrotate: update 3.16.0 -> 3.17.0 mesa: update 20.1.2 -> 20.1.4 libcap: update 2.36 -> 2.41 net-tools: fix upstream version check meson.bbclass: add a cups-config entry oeqa: write @OETestTag content into json test reports for each case libhandy: upstream has moved to gnome Alistair Francis (1): binutils: Remove RISC-V PIE patch Andrei Gherzan (2): initscripts: Fix various shellcheck warnings in populate-volatile.sh initscripts: Fix populate-volatile.sh bug when file/dir exists Anuj Mittal (4): harfbuzz: upgrade 2.6.8 -> 2.7.1 sqlite3: upgrade 3.32.3 -> 3.33.0 stress-ng: upgrade 0.11.17 -> 0.11.18 x264: upgrade to latest revision Armin Kuster (1): glibc: Secruity fix for CVE-2020-6096 Bruce Ashfield (25): linux-yocto/5.4: update to v5.4.53 linux-yocto/5.4: fix perf build with binutils 2.35 kernel/yocto: allow dangling KERNEL_FEATURES linux-yocto/5.4: update to v5.4.54 systemtap: update to 4.3 latest kernel-devsrc: fix x86 (32bit) on target module build lttng-modules: update to 2.12.2 (fixes v5.8+ builds) yocto-bsps: update reference BSPs to 5.4.54 kernel-yocto: enhance configuration queue analysis capabilities strace: update to 5.8 (fix build against v5.8 uapi headers) linux-yocto-rt/5.4: update to rt32 linux-yocto/5.4: update to v5.4.56 linux-yocto/5.4: update to v5.4.57 kernel-yocto: set cwd before querying the meta data dir kernel-yocto: make # is not set matching more precise kernel-yocto: split meta data gathering into patch and config phases make-mod-scripts: add HOSTCXX definitions and gmp-native dependency kernel-devsrc: fix on target modules prepare for ARM kernel-devsrc: 5.8 + gcc10 require gcc-plugins + libmpc-dev linux-yocto/5.4: update to v5.4.58 linux-yocto/5.4: perf cs-etm: Move definition of 'traceid_list' global variable from header file libc-headers: update to v5.8 linux-yocto: introduce 5.8 reference kernel kernel-yocto/5.8: add gmp-native dependency linux-yocto/5.8: update to v5.8.1 Chandana kalluri (1): qemu.inc: Use virtual/libgl instead of mesa Changhyeok Bae (2): iproute2: upgrade 5.7.0 -> 5.8.0 ethtool: upgrade 5.7 -> 5.8 Changqing Li (5): layer.conf: fix adwaita-icon-theme signature change problem gtk-icon-cache.bbclass: add features_check gcc-runtime.inc: fix m32 compile fail with x86-64 compiler libffi: fix multilib header conflict gpgme: fix multilib header conflict Chen Qi (3): grub: set CVE_PRODUCT to grub2 runqemu: fix permission check of /dev/vhost-net fribidi: extend CVE_PRODUCT to include fribidi Chris Laplante (11): lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandler bitbake: build: print traceback if progress handler can't be created bitbake: build: create_progress_handler: fix calling 'get' on NoneType bitbake: progress: modernize syntax, format bitbake: progress: fix hypothetical NameError if 'progress' isn't set bitbake: progress: filter ANSI escape codes before looking for progress text bitbake: tests/color: add test suite for ANSI color code filtering bitbake: data: emit filename/lineno information for shell functions bitbake: build: print a backtrace when a Bash shell function fails bitbake: build: print a backtrace with the original metadata locations of Bash shell funcs bitbake: build: make shell traps less chatty when 'bitbake -v' is used Dan Callaghan (1): stress-ng: create a symlink for /usr/bin/stress Daniel Ammann (1): wic: fix typo Daniel Gomez (1): allarch: Add missing allarch ttf-bitstream-vera Diego Sueiro (1): cml1: Add the option to choose the .config root dir Dmitry Baryshkov (3): mesa: enable freedreno Vulkan driver if freedreno is enabled arch-armv8-2a.inc: add tune include for armv8.2a tune-cortexa55.inc: switch to using armv8.2a include file Fredrik Gustafsson (13): package_manager: Move to package_manager/__init__.py rpm: Move manifest to its own subdir ipk: Move ipk manifest to its own subdir deb: Move deb manifest to its own subdir rpm: Move rootfs to its own dir ipk: Move rootfs to its own dir deb: Move rootfs to its own dir rpm: Move sdk to its own dir ipk: Move sdk to its own dir deb: Move sdk to its own dir rpm: Move package manager to its own dir ipk: Move package manager to its own dir deb: Move package manager to its own dir Guillaume Champagne (1): weston: add missing packageconfigs Jeremy Puhlman (1): gobject-introspection: disable scanner caching in install Joe Slater (3): libdnf: allow reproducible binary builds gconf: use python3 gcr: make sure gcr-oids.h is generated Jonathan Richardson (1): cortex-m0plus.inc: Add tuning for cortex M0 plus Joshua Watt (3): bitbake: bitbake: command: Handle multiconfig in findSigInfo lib/oe/reproducible.py: Fix git HEAD check perl: Add check for non-arch Storable.pm file Khasim Mohammed (2): wic/bootimg-efi: Add support for IMAGE_BOOT_FILES wic/bootimg-efi: Update docs for IMAGE_BOOT_FILES support in bootimg-efi Khem Raj (23): qemumips: Use 34Kf CPU emulation libunwind: Backport a fix for -fno-common option to compile dhcp: Use -fcommon compiler option inetutils: Fix build with -fno-common libomxil: Use -fcommon compiler option kexec-tools: Fix build with -fno-common distcc: Fix build with -fno-common libacpi: Fix build with -fno-common minicom: Fix build when using -fno-common binutils: Upgrade to 2.35 release xf86-video-intel: Fix build with -fno-common glibc: Upgrade to 2.32 release go: Upgrade to 1.14.7 webkitgtk: Upgrade to 2.28.4 kexec-tools: Fix additional duplicate symbols on aarch64/x86_64 builds gcc: Upgrade to 10.2.0 buildcpio.py: Apply patch to fix build with -fno-common buildgalculator: Patch to fix build with -fno-common localedef: Update to include floatn.h fix xserver-xorg: Fix build with -fno-common/mips binutils: Let crosssdk gold linker generate 4096 btyes long .interp section gcc-cross-canadian: Correct the regexp to delete versioned gcc binary curl: Upgrade to 7.72.0 Konrad Weihmann (2): rootfs-post: remove traling blanks from tasks cve-update: handle baseMetricV2 as optional Lee Chee Yang (4): buildhistory: use pid for temporary txt file name checklayer: check layer in BBLAYERS before test ghostscript: fix CVE-2020-15900 qemu : fix CVE-2020-15863 Mark Hatle (1): package.bbclass: Sort shlib2 output for hash equivalency Martin Jansa (2): net-tools: upgrade to latest revision in upstream repo instead of old debian snapshot perf: backport a fix for confusing non-fatal error Matt Madison (1): cogl-1.0: correct X11 dependencies Matthew (3): ltp: remove --with-power-management-testsuite from EXTRA_OECONF ltp: remove OOM tests from runtest/mm ltp: make copyFrom scp command non-fatal Mikko Rapeli (2): alsa-topology-conf: use ${datadir} in do_install() alsa-ucm-conf: use ${datadir} in do_install() Ming Liu (3): conf/machine: set UBOOT_MACHINE for qemumips and qemumips64 multilib.conf: add u-boot to NON_MULTILIB_RECIPES libubootenv: uprev to v0.3 Mingli Yu (2): ccache: Upgrade to 3.7.11 Revert "python3: define a profile directory path" Naoto Yamaguchi (1): patch.py: Change to more strictly fuzz detection Nathan Rossi (4): libexif: Enable native and nativesdk cmake.bbclass: Rework compiler program variables for allarch python3: Improve handling of python3 manifest generation python3-manifest.json: Updates Oleksandr Kravchuk (9): python3-setuptools: update to 49.2.0 bash-completion: update to 2.11 python3: update to 3.8.5 re2c: update to 2.0 diffoscope: update to 153 json-c: update to 0.15 git: update 2.28.0 libwpe: update to 1.7.1 python3-setuptools: update to 49.3.1 Richard Purdie (20): perl: Avoid race continually rebuilding miniperl gcc: Fix mangled patch bitbake: server/process: Fix UI first connection tracking bitbake: server/process: Account for xmlrpc connections Revert "lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandler" lib/package_manager: Fix missing imports populate_sdk_ext: Ensure buildtools doesn't corrupt OECORE_NATIVE_SYSROOT buildtools: Handle generic environment setup injection uninative: Handle PREMIRRORS generically maintainers: Update entries for Mark Hatle gcr: Fix patch Upstream-Status from v2 patch bitbake: server/process: Remove pointless process forking bitbake: server/process: Simplfy idle callback handler function bitbake: server/process: Pass timeout/xmlrpc parameters directly to the server bitbake: server/process: Add extra logfile flushing packagefeed-stability: Remove as obsolete build-compare: Drop recipe qemu: Upgrade 5.0.0 -> 5.1.0 selftest/tinfoil: Increase wait event timeout lttng-tools: upgrade 2.12.1 -> 2.12.2 Ross Burton (3): popt: upgrade to 1.18 conf/machine: set UBOOT_MACHINE for qemuarm and qemuarm64 gcc: backport a fix for out-of-line atomics on aarch64 TeohJayShen (2): oeqa/manual/bsp-hw.json : remove shutdown_system test oeqa/manual/bsp-hw.json : remove X_server_can_start_up_with_runlevel_5_boot test Trevor Gamblin (1): llvm: upgrade 9.0.1 -> 10.0.1 Tyler Hicks (1): kernel-devicetree: Fix intermittent build failures caused by DTB builds Usama Arif (3): kernel-fitimage: build configuration for image tree when dtb is not present oeqa/selftest/imagefeatures: Add testcase for fitImage ref-manual: Add documentation for kernel-fitimage Vasyl Vavrychuk (1): runqemu: Check gtk or sdl option is passed together with gl or gl-es options. Yi Zhao (1): pbzip2: extend for nativesdk Zhang Qiang (1): kernel.bbclass: Configuration for environment with HOSTCXX hongxu (1): nativesdk-rpm: adjust RPM_CONFIGDIR paths dynamically zangrc (8): libevdev:upgrade 1.9.0 -> 1.9.1 mpg123:upgrade 1.26.2 -> 1.26.3 flex: Refresh patch stress-ng:upgrade 0.11.15 -> 0.11.17 sudo:upgrade 1.9.1 -> 1.9.2 libcap: Upgrade 2.41 -> 2.42 libinput: Upgrade 1.15.6 -> 1.16.0 python3-setuptools: Upgrade 49.2.0 -> 49.2.1 Signed-off-by: Andrew Geissler Change-Id: Ic7fa1e8484c1c7722a70c75608aa4ab21fa7d755 --- poky/bitbake/bin/bitbake-selftest | 1 + poky/bitbake/lib/bb/build.py | 130 +- poky/bitbake/lib/bb/command.py | 8 +- poky/bitbake/lib/bb/cooker.py | 10 +- poky/bitbake/lib/bb/cookerdata.py | 8 +- poky/bitbake/lib/bb/data.py | 6 + poky/bitbake/lib/bb/process.py | 3 +- poky/bitbake/lib/bb/progress.py | 60 +- poky/bitbake/lib/bb/server/process.py | 50 +- poky/bitbake/lib/bb/tests/color.py | 95 + poky/documentation/bsp-guide/bsp.xml | 2 +- poky/documentation/ref-manual/ref-classes.xml | 76 +- poky/documentation/ref-manual/ref-variables.xml | 144 +- .../recipes-kernel/linux/linux-yocto_5.4.bbappend | 16 +- poky/meta/classes/buildhistory.bbclass | 11 +- poky/meta/classes/cmake.bbclass | 36 +- poky/meta/classes/cml1.bbclass | 18 +- poky/meta/classes/gtk-icon-cache.bbclass | 5 + poky/meta/classes/kernel-devicetree.bbclass | 2 +- poky/meta/classes/kernel-fitimage.bbclass | 29 +- poky/meta/classes/kernel-yocto.bbclass | 256 +- poky/meta/classes/kernel.bbclass | 2 + poky/meta/classes/meson.bbclass | 1 + poky/meta/classes/package.bbclass | 2 +- poky/meta/classes/packagefeed-stability.bbclass | 252 - poky/meta/classes/populate_sdk_ext.bbclass | 3 + poky/meta/classes/rootfs-postcommands.bbclass | 6 +- poky/meta/classes/rootfsdebugfiles.bbclass | 2 +- poky/meta/classes/uninative.bbclass | 13 +- poky/meta/conf/distro/include/distro_alias.inc | 1 - poky/meta/conf/distro/include/maintainers.inc | 13 +- .../conf/distro/include/ptest-packagelists.inc | 1 - poky/meta/conf/distro/include/tcmode-default.inc | 10 +- poky/meta/conf/layer.conf | 3 + poky/meta/conf/machine/include/arm/arch-armv6m.inc | 19 + .../conf/machine/include/arm/arch-armv8-2a.inc | 19 + .../conf/machine/include/tune-cortex-m0plus.inc | 11 + poky/meta/conf/machine/include/tune-cortexa55.inc | 2 +- poky/meta/conf/machine/qemuarm.conf | 2 + poky/meta/conf/machine/qemuarm64.conf | 2 + poky/meta/conf/machine/qemumips.conf | 4 + poky/meta/conf/machine/qemumips64.conf | 2 + poky/meta/conf/multilib.conf | 2 +- poky/meta/lib/oe/manifest.py | 144 +- poky/meta/lib/oe/package_manager.py | 1863 -- poky/meta/lib/oe/package_manager/__init__.py | 550 + poky/meta/lib/oe/package_manager/deb/__init__.py | 492 + poky/meta/lib/oe/package_manager/deb/manifest.py | 26 + poky/meta/lib/oe/package_manager/deb/rootfs.py | 210 + poky/meta/lib/oe/package_manager/deb/sdk.py | 96 + poky/meta/lib/oe/package_manager/ipk/__init__.py | 507 + poky/meta/lib/oe/package_manager/ipk/manifest.py | 73 + poky/meta/lib/oe/package_manager/ipk/rootfs.py | 387 + poky/meta/lib/oe/package_manager/ipk/sdk.py | 96 + poky/meta/lib/oe/package_manager/rpm/__init__.py | 404 + poky/meta/lib/oe/package_manager/rpm/manifest.py | 54 + poky/meta/lib/oe/package_manager/rpm/rootfs.py | 148 + poky/meta/lib/oe/package_manager/rpm/sdk.py | 114 + poky/meta/lib/oe/patch.py | 2 +- poky/meta/lib/oe/reproducible.py | 4 +- poky/meta/lib/oe/rootfs.py | 618 +- poky/meta/lib/oe/sdk.py | 285 +- poky/meta/lib/oeqa/core/runner.py | 14 + poky/meta/lib/oeqa/core/target/ssh.py | 7 +- poky/meta/lib/oeqa/manual/bsp-hw.json | 44 - poky/meta/lib/oeqa/runtime/cases/buildcpio.py | 3 +- poky/meta/lib/oeqa/runtime/cases/ltp.py | 5 +- poky/meta/lib/oeqa/sdk/cases/buildcpio.py | 1 + poky/meta/lib/oeqa/sdk/cases/buildgalculator.py | 2 +- poky/meta/lib/oeqa/selftest/cases/imagefeatures.py | 74 + poky/meta/lib/oeqa/selftest/cases/tinfoil.py | 5 +- poky/meta/lib/oeqa/utils/package_manager.py | 4 +- poky/meta/recipes-bsp/grub/grub2.inc | 2 + .../0001-libacpi-Fix-build-witth-fno-commom.patch | 68 + poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb | 4 +- poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb | 27 - poky/meta/recipes-bsp/u-boot/libubootenv_0.3.bb | 30 + poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb | 2 + ...d-Fix-multiple-definitions-of-errcatch-an.patch | 58 + .../inetutils/inetutils_1.9.4.bb | 1 + .../0001-devlink.c-add-missing-include.patch | 13 +- .../0001-libc-compat.h-add-musl-workaround.patch | 10 +- .../iproute2/iproute2_5.7.0.bb | 12 - .../iproute2/iproute2_5.8.0.bb | 12 + .../nfs-utils/nfs-utils/nfs-server.service | 1 - .../openssh/openssh/sshd@.service | 1 - .../glib-2.0/glib-2.0/meson.cross.d/common-linux | 2 +- .../glibc/cross-localedef-native_2.31.bb | 52 - .../glibc/cross-localedef-native_2.32.bb | 50 + poky/meta/recipes-core/glibc/glibc-common.inc | 2 +- poky/meta/recipes-core/glibc/glibc-locale_2.31.bb | 1 - poky/meta/recipes-core/glibc/glibc-locale_2.32.bb | 1 + poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb | 1 - poky/meta/recipes-core/glibc/glibc-mtrace_2.32.bb | 1 + poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb | 1 - poky/meta/recipes-core/glibc/glibc-scripts_2.32.bb | 1 + .../recipes-core/glibc/glibc-testsuite_2.31.bb | 63 - .../recipes-core/glibc/glibc-testsuite_2.32.bb | 63 + poky/meta/recipes-core/glibc/glibc-version.inc | 8 +- ...def-Add-hardlink-resolver-from-util-linux.patch | 7 +- ...-localedef-Add-hardlink-resolver-to-build.patch | 52 - ...ledef-fix-ups-hardlink-to-make-it-compile.patch | 7 +- ...libc-Look-for-host-system-ld.so.cache-as-.patch | 14 +- ...libc-Fix-buffer-overrun-with-a-relocated-.patch | 12 +- ...libc-Raise-the-size-of-arrays-containing-.patch | 28 +- ...ivesdk-glibc-Allow-64-bit-atomics-for-x86.patch | 7 +- ...libc-Make-relocatable-install-for-locales.patch | 60 +- ...500-e5500-e6500-603e-fsqrt-implementation.patch | 7 +- ...-Fix-undefined-reference-to-__sqrt_finite.patch | 208 + ...-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch | 29 - ...qrt-f-are-now-inline-functions-and-call-o.patch | 387 + ...-Fix-undefined-reference-to-__sqrt_finite.patch | 205 - ...bug-1443-which-explains-what-the-patch-do.patch | 62 + ...qrt-f-are-now-inline-functions-and-call-o.patch | 384 - ...bug-1443-which-explains-what-the-patch-do.patch | 58 - ...n-libm-err-tab.pl-with-specific-dirs-in-S.patch | 36 + ...qrt-f-are-now-inline-functions-and-call-o.patch | 61 + ...n-libm-err-tab.pl-with-specific-dirs-in-S.patch | 33 - ...qrt-f-are-now-inline-functions-and-call-o.patch | 58 - ...-configure.ac-handle-correctly-libc_cv_ro.patch | 42 + ...-configure.ac-handle-correctly-libc_cv_ro.patch | 39 - ...thin-the-path-sets-wrong-config-variables.patch | 263 + .../glibc/glibc/0016-Add-unused-attribute.patch | 31 - ...-timezone-re-written-tzselect-as-posix-sh.patch | 45 + ...move-bash-dependency-for-nscd-init-script.patch | 75 + ...thin-the-path-sets-wrong-config-variables.patch | 260 - ...c-Cross-building-and-testing-instructions.patch | 619 + ...-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 | 100 + ...c-Cross-building-and-testing-instructions.patch | 616 - ...0020-eglibc-Resolve-__fpscr_values-on-SH4.patch | 56 + ...ward-port-cross-locale-generation-support.patch | 563 + ...021-eglibc-Help-bootstrap-cross-toolchain.patch | 97 - ...0022-Define-DUMMY_LOCALE_T-if-not-defined.patch | 32 + ...0022-eglibc-Resolve-__fpscr_values-on-SH4.patch | 53 - ...ward-port-cross-locale-generation-support.patch | 560 - ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 84 + ...0024-Define-DUMMY_LOCALE_T-if-not-defined.patch | 29 - ....c-Make-_dl_build_local_scope-breadth-fir.patch | 56 + ...tl-Emit-no-lines-in-bison-generated-files.patch | 34 + ...dd-to-archive-uses-a-hard-coded-locale-pa.patch | 80 - ....c-Make-_dl_build_local_scope-breadth-fir.patch | 53 - .../0026-inject-file-assembly-directives.patch | 240 + ...tl-Emit-no-lines-in-bison-generated-files.patch | 31 - ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 56 + .../0028-inject-file-assembly-directives.patch | 301 - ...-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch | 33 + ...ent-maybe-uninitialized-errors-with-Os-BZ.patch | 53 - ...-Unify-the-header-between-arm-and-aarch64.patch | 70 + ...erpc-Do-not-ask-compiler-for-finding-arch.patch | 51 + ...-Unify-the-header-between-arm-and-aarch64.patch | 67 - poky/meta/recipes-core/glibc/glibc_2.31.bb | 113 - poky/meta/recipes-core/glibc/glibc_2.32.bb | 113 + .../initscripts-1.0/populate-volatile.sh | 80 +- ...-and-append-i386-to-fix-libkbdfile-test08.patch | 45 - .../0001-analyze.l-add-missing-string-format.patch | 24 - poky/meta/recipes-core/kbd/kbd/fix_cflags.patch | 25 - poky/meta/recipes-core/kbd/kbd/run-ptest | 4 - .../kbd/kbd/set-proper-path-of-resources.patch | 99 - poky/meta/recipes-core/kbd/kbd_2.2.0.bb | 72 - poky/meta/recipes-core/kbd/kbd_2.3.0.bb | 38 + poky/meta/recipes-core/meta/buildtools-tarball.bb | 19 +- .../meta/recipes-core/meta/cve-update-db-native.bb | 13 +- poky/meta/recipes-core/musl/musl_git.bb | 4 +- .../recipes-core/systemd/systemd-boot_245.6.bb | 70 - .../recipes-core/systemd/systemd-boot_246.1.bb | 70 + .../recipes-core/systemd/systemd-conf_245.6.bb | 38 - .../recipes-core/systemd/systemd-conf_246.1.bb | 38 + poky/meta/recipes-core/systemd/systemd.inc | 4 +- .../systemd/0001-Handle-missing-gshadow.patch | 73 +- .../0001-Use-PREFIX-ROOTPREFIX-correctly.patch | 81 + ...t-install-dependency-links-at-install-tim.patch | 34 +- ...01-do-not-disable-buffer-in-writing-files.patch | 198 +- .../0002-don-t-use-glibc-specific-qsort_r.patch | 40 +- ...llback-parse_printf_format-implementation.patch | 52 +- ...asic-missing.h-check-for-missing-strndupa.patch | 175 +- .../systemd/0006-Include-netinet-if_ether.h.patch | 166 +- ...-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch | 32 +- ...-of-__register_atfork-for-non-glibc-build.patch | 10 +- .../0011-Use-uintmax_t-for-handling-rlim_t.patch | 30 +- ...ass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch | 26 +- ...c-compatible-basename-for-non-glibc-syste.patch | 10 +- ...ble-buffering-when-writing-to-oom_score_a.patch | 10 +- ...-XSI-compliant-strerror_r-from-GNU-specif.patch | 20 +- .../systemd/0021-Handle-missing-LOCK_EX.patch | 23 + ...ompatible-pointer-type-struct-sockaddr_un.patch | 37 + ...fi_loader_entry_one_shot_stat-has-incompl.patch | 31 + .../systemd/systemd/CVE-2020-13776.patch | 96 - poky/meta/recipes-core/systemd/systemd_245.6.bb | 715 - poky/meta/recipes-core/systemd/systemd_246.2.bb | 719 + .../recipes-core/sysvinit/sysvinit/crypt-lib.patch | 16 +- .../recipes-core/sysvinit/sysvinit/install.patch | 7 +- poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb | 114 - poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb | 113 + .../volatile-binds/files/volatile-binds.service.in | 1 - .../recipes-devtools/binutils/binutils-2.34.inc | 47 - .../recipes-devtools/binutils/binutils-2.35.inc | 45 + .../binutils/binutils-cross-canadian_2.34.bb | 3 - .../binutils/binutils-cross-canadian_2.35.bb | 3 + .../binutils/binutils-cross-testsuite_2.34.bb | 85 - .../binutils/binutils-cross-testsuite_2.35.bb | 85 + .../binutils/binutils-cross_2.34.bb | 3 - .../binutils/binutils-cross_2.35.bb | 3 + .../binutils/binutils-crosssdk_2.34.bb | 13 - .../binutils/binutils-crosssdk_2.35.bb | 13 + ...nutils-crosssdk-Generate-relocatable-SDKs.patch | 31 +- ...oss-Do-not-generate-linker-script-directo.patch | 10 +- ...tivesdk-Search-for-alternative-ld.so.conf.patch | 29 +- ...ure-widen-the-regexp-for-SH-architectures.patch | 15 +- .../0005-Point-scripts-location-to-libdir.patch | 15 +- ...te-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch | 14 +- .../binutils/binutils/0007-Use-libtool-2.4.patch | 21234 ----------------- ...he-distro-compiler-point-to-the-wrong-ins.patch | 35 + ...he-distro-compiler-point-to-the-wrong-ins.patch | 32 - ...es-of-system-directories-when-cross-linki.patch | 287 + ...Change-default-emulation-for-mips64-linux.patch | 60 + ...es-of-system-directories-when-cross-linki.patch | 269 - .../0010-Add-support-for-Netlogic-XLP.patch | 409 + ...-rpath-in-libtool-when-sysroot-is-enabled.patch | 49 - ...Change-default-emulation-for-mips64-linux.patch | 57 - ...ncorrect-assembling-for-ppc-wait-mnemonic.patch | 37 + .../0012-Add-support-for-Netlogic-XLP.patch | 406 - .../binutils/0012-Detect-64-bit-MIPS-targets.patch | 50 + .../binutils/binutils/0013-Use-libtool-2.4.patch | 23153 +++++++++++++++++++ ...ncorrect-assembling-for-ppc-wait-mnemonic.patch | 33 - .../binutils/0014-Detect-64-bit-MIPS-targets.patch | 47 - ...-rpath-in-libtool-when-sysroot-is-enabled.patch | 52 + .../0015-sync-with-OE-libtool-changes.patch | 9 +- ...eck-for-clang-before-checking-gcc-version.patch | 14 +- ...op-redundant-program_name-definition-fno-.patch | 61 - .../binutils/binutils/CVE-2020-0551.patch | 549 - .../recipes-devtools/binutils/binutils_2.34.bb | 65 - .../recipes-devtools/binutils/binutils_2.35.bb | 65 + .../build-compare/build-compare_git.bb | 29 - poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb | 32 - poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb | 32 + poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb | 1 + ...ith-gcc-10-which-defaults-to-fno-common-c.patch | 34 + .../recipes-devtools/flex/flex/check-funcs.patch | 36 +- poky/meta/recipes-devtools/gcc/gcc-10.1.inc | 121 - ...-Straight-Line-Speculation-SLS-mitigation.patch | 202 - .../0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch | 39 - ...roduce-SLS-mitigation-for-RET-and-BR-inst.patch | 607 - .../0002-gcc-poison-system-directories.patch | 200 - ...-aarch64-Mitigate-SLS-for-BLR-instruction.patch | 658 - .../0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch | 70 - .../gcc/gcc-10.1/0004-64-bit-multilib-hack.patch | 116 - .../gcc/gcc-10.1/0005-optional-libstdc.patch | 122 - .../gcc/gcc-10.1/0006-COLLECT_GCC_OPTIONS.patch | 35 - ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch | 92 - .../gcc-10.1/0008-fortran-cross-compile-hack.patch | 43 - .../gcc/gcc-10.1/0009-cpp-honor-sysroot.patch | 51 - .../gcc-10.1/0010-MIPS64-Default-to-N64-ABI.patch | 54 - ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 243 - ...0012-gcc-Fix-argument-list-too-long-error.patch | 37 - .../gcc/gcc-10.1/0013-Disable-sdt.patch | 110 - .../gcc/gcc-10.1/0014-libtool.patch | 39 - ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch | 40 - ...tilib-config-files-from-B-instead-of-usin.patch | 99 - ...-libdir-from-.la-which-usually-points-to-.patch | 28 - .../gcc/gcc-10.1/0018-export-CPP.patch | 50 - ...Ensure-target-gcc-headers-can-be-included.patch | 57 - ...h-host-directory-during-relink-if-inst_pr.patch | 35 - ...IBS_DIR-replacement-instead-of-hardcoding.patch | 26 - .../0022-aarch64-Add-support-for-musl-ldso.patch | 25 - ...ibcc1-fix-libcc1-s-install-path-and-rpath.patch | 51 - ...-handle-sysroot-support-for-nativesdk-gcc.patch | 346 - ...et-sysroot-gcc-version-specific-dirs-with.patch | 99 - ...-various-_FOR_BUILD-and-related-variables.patch | 134 - .../0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch | 25 - ...shared-to-link-commandline-for-musl-targe.patch | 84 - ...bgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch | 26 - .../0030-sync-gcc-stddef.h-with-musl.patch | 88 - ...ation-fault-in-precompiled-header-generat.patch | 57 - .../gcc-10.1/0032-Fix-for-testsuite-failure.patch | 255 - ...0033-Re-introduce-spe-commandline-options.patch | 38 - ...e-alias-for-__cpu_indicator_init-instead-.patch | 83 - ...nmodes-Do-not-use-__LINE__-for-maintainin.patch | 182 - ...-Enable-CET-in-cross-compiler-if-possible.patch | 150 - ...37-mingw32-Enable-operation_not_supported.patch | 26 - ...libatomic-Do-not-enforce-march-on-aarch64.patch | 42 - .../recipes-devtools/gcc/gcc-10.1/pr96130.patch | 106 - poky/meta/recipes-devtools/gcc/gcc-10.2.inc | 120 + .../recipes-devtools/gcc/gcc-cross-canadian.inc | 2 +- .../gcc/gcc-cross-canadian_10.1.bb | 5 - .../gcc/gcc-cross-canadian_10.2.bb | 5 + poky/meta/recipes-devtools/gcc/gcc-cross_10.1.bb | 3 - poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb | 3 + .../meta/recipes-devtools/gcc/gcc-crosssdk_10.1.bb | 2 - .../meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb | 2 + poky/meta/recipes-devtools/gcc/gcc-runtime.inc | 4 + poky/meta/recipes-devtools/gcc/gcc-runtime_10.1.bb | 2 - poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb | 2 + .../recipes-devtools/gcc/gcc-sanitizers_10.1.bb | 7 - .../recipes-devtools/gcc/gcc-sanitizers_10.2.bb | 7 + poky/meta/recipes-devtools/gcc/gcc-source_10.1.bb | 4 - poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb | 4 + ...4-Fix-up-__aarch64_cas16_acq_rel-fallback.patch | 66 + ...-Straight-Line-Speculation-SLS-mitigation.patch | 202 + .../gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch | 39 + ...roduce-SLS-mitigation-for-RET-and-BR-inst.patch | 607 + .../gcc/0002-gcc-poison-system-directories.patch | 200 + ...-aarch64-Mitigate-SLS-for-BLR-instruction.patch | 658 + .../0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch | 70 + .../gcc/gcc/0004-64-bit-multilib-hack.patch | 116 + .../gcc/gcc/0005-optional-libstdc.patch | 122 + .../gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch | 35 + ...efaults.h-in-B-instead-of-S-and-t-oe-in-B.patch | 92 + .../gcc/gcc/0008-fortran-cross-compile-hack.patch | 43 + .../gcc/gcc/0009-cpp-honor-sysroot.patch | 51 + .../gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch | 54 + ...C_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 243 + ...0012-gcc-Fix-argument-list-too-long-error.patch | 41 + .../gcc/gcc/0013-Disable-sdt.patch | 110 + .../recipes-devtools/gcc/gcc/0014-libtool.patch | 39 + ...4-pass-fix-v4bx-to-linker-to-support-EABI.patch | 40 + ...tilib-config-files-from-B-instead-of-usin.patch | 99 + ...-libdir-from-.la-which-usually-points-to-.patch | 28 + .../recipes-devtools/gcc/gcc/0018-export-CPP.patch | 50 + ...Ensure-target-gcc-headers-can-be-included.patch | 57 + ...h-host-directory-during-relink-if-inst_pr.patch | 35 + ...IBS_DIR-replacement-instead-of-hardcoding.patch | 26 + .../0022-aarch64-Add-support-for-musl-ldso.patch | 25 + ...ibcc1-fix-libcc1-s-install-path-and-rpath.patch | 51 + ...-handle-sysroot-support-for-nativesdk-gcc.patch | 346 + ...et-sysroot-gcc-version-specific-dirs-with.patch | 99 + ...-various-_FOR_BUILD-and-related-variables.patch | 134 + .../0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch | 25 + ...shared-to-link-commandline-for-musl-targe.patch | 84 + ...bgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch | 26 + .../gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch | 88 + ...ation-fault-in-precompiled-header-generat.patch | 57 + .../gcc/gcc/0032-Fix-for-testsuite-failure.patch | 255 + ...0033-Re-introduce-spe-commandline-options.patch | 38 + ...e-alias-for-__cpu_indicator_init-instead-.patch | 83 + ...nmodes-Do-not-use-__LINE__-for-maintainin.patch | 182 + ...36-mingw32-Enable-operation_not_supported.patch | 26 + ...libatomic-Do-not-enforce-march-on-aarch64.patch | 42 + poky/meta/recipes-devtools/gcc/gcc_10.1.bb | 14 - poky/meta/recipes-devtools/gcc/gcc_10.2.bb | 14 + .../recipes-devtools/gcc/libgcc-initial_10.1.bb | 5 - .../recipes-devtools/gcc/libgcc-initial_10.2.bb | 5 + poky/meta/recipes-devtools/gcc/libgcc_10.1.bb | 5 - poky/meta/recipes-devtools/gcc/libgcc_10.2.bb | 5 + poky/meta/recipes-devtools/gcc/libgfortran_10.1.bb | 3 - poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb | 3 + poky/meta/recipes-devtools/git/git_2.27.0.bb | 10 - poky/meta/recipes-devtools/git/git_2.28.0.bb | 9 + .../recipes-devtools/gnu-config/gnu-config_git.bb | 4 +- poky/meta/recipes-devtools/go/go-1.14.inc | 4 +- .../recipes-devtools/go/go-binary-native_1.14.4.bb | 46 - .../recipes-devtools/go/go-binary-native_1.14.7.bb | 46 + .../json-c/json-c/CVE-2020-12762.patch | 160 - poky/meta/recipes-devtools/json-c/json-c_0.14.bb | 20 - poky/meta/recipes-devtools/json-c/json-c_0.15.bb | 18 + .../libdnf/libdnf/enable_test_data_dir_set.patch | 26 + poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb | 1 + poky/meta/recipes-devtools/llvm/llvm_git.bb | 4 +- poky/meta/recipes-devtools/meson/meson.inc | 2 +- .../0001-Make-CPU-family-warnings-fatal.patch | 19 +- ...efix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch | 48 +- ...hon.py-do-not-substitute-python-s-install.patch | 11 +- ...02-Support-building-allarch-recipes-again.patch | 4 +- .../meson/meson/disable-rpath-handling.patch | 10 +- poky/meta/recipes-devtools/meson/meson_0.54.3.bb | 4 - poky/meta/recipes-devtools/meson/meson_0.55.0.bb | 4 + .../meson/nativesdk-meson_0.54.3.bb | 65 - .../meson/nativesdk-meson_0.55.0.bb | 65 + ...headers.m4-for-development-versions-of-au.patch | 28 - .../nasm/nasm/0001-stdlib-Add-strlcat.patch | 28 +- .../nasm/0002-Add-debug-prefix-map-option.patch | 129 +- .../nasm/nasm/CVE-2018-19755.patch | 116 - .../nasm/nasm/CVE-2019-14248.patch | 43 - poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb | 26 - poky/meta/recipes-devtools/nasm/nasm_2.15.03.bb | 21 + .../perl/files/perl-cross-makefile.patch | 29 + poky/meta/recipes-devtools/perl/perl_5.32.0.bb | 6 + ...ionally-do-not-fetch-code-by-easy_install.patch | 16 +- .../recipes-devtools/python/python-setuptools.inc | 60 - .../python/python3-setuptools_47.3.1.bb | 6 - .../python/python3-setuptools_49.3.1.bb | 65 + ...nfigure.ac-define-a-path-for-profile-data.patch | 42 - .../python/python3/get_module_deps3.py | 20 +- .../python/python3/python3-manifest.json | 68 +- poky/meta/recipes-devtools/python/python3_3.8.3.bb | 362 - poky/meta/recipes-devtools/python/python3_3.8.5.bb | 361 + poky/meta/recipes-devtools/qemu/qemu-native.inc | 4 - .../recipes-devtools/qemu/qemu-native_5.0.0.bb | 9 - .../recipes-devtools/qemu/qemu-native_5.1.0.bb | 9 + .../qemu/qemu-system-native_5.0.0.bb | 26 - .../qemu/qemu-system-native_5.1.0.bb | 26 + poky/meta/recipes-devtools/qemu/qemu.inc | 12 +- .../qemu/qemu/0001-Add-enable-disable-udev.patch | 15 +- ...001-qemu-Add-missing-wacom-HID-descriptor.patch | 17 +- ...01-qemu-Do-not-include-file-if-not-exists.patch | 13 +- ...age-ptest-which-runs-all-unit-test-cases-.patch | 13 +- ...dition-environment-space-to-boot-loader-q.patch | 10 +- .../qemu/qemu/0004-qemu-disable-Valgrind.patch | 10 +- ...-set-ld.bfd-fix-cflags-and-set-some-envir.patch | 13 +- ...ardev-connect-socket-to-a-spawned-command.patch | 56 +- .../qemu/0007-apic-fixup-fallthrough-to-PIC.patch | 10 +- ...-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch | 10 +- .../qemu/qemu/0009-Fix-webkitgtk-builds.patch | 73 +- ...ure-Add-pkg-config-handling-for-libgcrypt.patch | 14 +- ...error-messages-when-qemi_cpu_kick_thread-.patch | 74 - .../qemu/qemu/CVE-2020-10761.patch | 151 - .../qemu/qemu/CVE-2020-13361.patch | 61 - .../qemu/qemu/CVE-2020-13362.patch | 55 - .../qemu/qemu/CVE-2020-13659.patch | 58 - .../qemu/qemu/CVE-2020-13791.patch | 53 - .../qemu/qemu/CVE-2020-13800.patch | 63 - .../recipes-devtools/qemu/qemu/find_datadir.patch | 14 +- poky/meta/recipes-devtools/qemu/qemu_5.0.0.bb | 33 - poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb | 33 + .../rpm/files/environment.d-rpm.sh | 1 + poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb | 5 + .../rsync/files/makefile-no-rebuild.patch | 14 +- poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb | 58 - poky/meta/recipes-devtools/rsync/rsync_3.2.2.bb | 58 + poky/meta/recipes-devtools/strace/strace_5.7.bb | 55 - poky/meta/recipes-devtools/strace/strace_5.8.bb | 55 + ...-gen-don-t-append-dirty-if-we-re-not-in-g.patch | 55 - poky/meta/recipes-devtools/vala/vala_0.48.6.bb | 7 - poky/meta/recipes-devtools/vala/vala_0.48.7.bb | 5 + .../ethtool/ethtool/avoid_parallel_tests.patch | 6 +- poky/meta/recipes-extended/ethtool/ethtool_5.7.bb | 35 - poky/meta/recipes-extended/ethtool/ethtool_5.8.bb | 37 + .../ghostscript/ghostscript/CVE-2020-15900.patch | 54 + .../ghostscript/ghostscript_9.52.bb | 1 + .../logrotate/act-as-mv-when-rotate.patch | 22 +- .../disable-check-different-filesystems.patch | 8 +- .../recipes-extended/logrotate/logrotate_3.16.0.bb | 92 - .../recipes-extended/logrotate/logrotate_3.17.0.bb | 91 + .../0001-Remove-OOM-tests-from-runtest-mm.patch | 34 + poky/meta/recipes-extended/ltp/ltp_20200515.bb | 3 +- ...p-superfluous-global-variable-definitions.patch | 35 + ...p-superfluous-global-variable-definitions.patch | 37 + ...p-superfluous-global-variable-definitions.patch | 42 + .../meta/recipes-extended/minicom/minicom_2.7.1.bb | 3 + ...refix-to-unsigned-long-long-constants-to-.patch | 381 - ...-lib-inet6.c-INET6_rresolve-various-fixes.patch | 87 - .../net-tools/net-tools/Add_missing_headers.patch | 15 + ...g_443075-ifconfig.c-pointtopoint_spelling.patch | 26 + .../Bug_541172-netstat.c-exit-codes.patch | 22 + ...terface-0-del-IP-will-remove-the-aliased-.patch | 32 - .../net-tools/net-tools/musl-fixes.patch | 100 - .../net-tools/net-tools/net-tools-1.60-sctp1.patch | 635 - .../net-tools/net-tools-1.60-sctp2-quiet.patch | 28 - .../net-tools/net-tools-1.60-sctp3-addrs.patch | 363 - .../net-tools-fix-building-with-linux-4.8.patch | 52 - .../net-tools/net-tools_1.60-20181103.bb | 110 + .../net-tools/net-tools_1.60-26.bb | 132 - poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb | 2 +- .../stress-ng/stress-ng_0.11.15.bb | 26 - .../stress-ng/stress-ng_0.11.18.bb | 27 + poky/meta/recipes-extended/sudo/sudo_1.9.1.bb | 47 - poky/meta/recipes-extended/sudo/sudo_1.9.2.bb | 47 + .../0001-meson-Make-sure-gcr-oids.h-is-built.patch | 36 + poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb | 2 + poky/meta/recipes-gnome/gnome/gconf/python3.patch | 60 + poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb | 3 + .../gobject-introspection_1.64.1.bb | 5 + poky/meta/recipes-gnome/libhandy/libhandy_git.bb | 2 +- poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb | 50 - poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb | 49 + poky/meta/recipes-graphics/cogl/cogl-1.0.inc | 2 +- .../recipes-graphics/harfbuzz/harfbuzz_2.6.8.bb | 44 - .../recipes-graphics/harfbuzz/harfbuzz_2.7.1.bb | 43 + .../0002-meson.build-make-TLS-ELF-optional.patch | 8 +- poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb | 15 - poky/meta/recipes-graphics/mesa/mesa-gl_20.1.4.bb | 15 + poky/meta/recipes-graphics/mesa/mesa.inc | 3 +- poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb | 2 - poky/meta/recipes-graphics/mesa/mesa_20.1.4.bb | 2 + .../ttf-fonts/ttf-bitstream-vera_1.10.bb | 2 +- .../virglrenderer/virglrenderer_0.8.2.bb | 2 +- .../recipes-graphics/wayland/libinput_1.15.6.bb | 50 - .../recipes-graphics/wayland/libinput_1.16.0.bb | 50 + poky/meta/recipes-graphics/wayland/weston_8.0.0.bb | 20 +- ...id-duplicate-definition-of-I810PatternROP.patch | 27 + .../xorg-driver/xf86-video-intel_git.bb | 1 + ...Avoid-duplicate-definitions-of-IOPortBase.patch | 45 + .../xorg-xserver/xserver-xorg_1.20.8.bb | 1 + .../kern-tools/kern-tools-native_git.bb | 2 +- .../0001-kexec-Fix-build-with-fno-common.patch | 68 + .../recipes-kernel/kexec/kexec-tools_2.0.20.bb | 1 + .../linux-libc-headers/linux-libc-headers.inc | 16 +- ...lude-linux-stddef.h-in-swab.h-uapi-header.patch | 10 +- .../linux-libc-headers/linux-libc-headers_5.4.bb | 16 - .../linux-libc-headers/linux-libc-headers_5.8.bb | 18 + poky/meta/recipes-kernel/linux/kernel-devsrc.bb | 8 +- .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 6 +- .../recipes-kernel/linux/linux-yocto-rt_5.8.bb | 44 + .../recipes-kernel/linux/linux-yocto-tiny_5.4.bb | 8 +- .../recipes-kernel/linux/linux-yocto-tiny_5.8.bb | 32 + poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb | 24 +- poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb | 55 + .../recipes-kernel/lttng/lttng-modules_2.12.1.bb | 42 - .../recipes-kernel/lttng/lttng-modules_2.12.2.bb | 42 + ...st-events-ns-tp.h-Fix-build-with-musl-lib.patch | 43 - .../recipes-kernel/lttng/lttng-tools_2.12.1.bb | 165 - .../recipes-kernel/lttng/lttng-tools_2.12.2.bb | 164 + .../make-mod-scripts/make-mod-scripts_1.0.bb | 2 + poky/meta/recipes-kernel/perf/perf.bb | 4 + .../recipes-kernel/systemtap/systemtap_git.inc | 2 +- .../alsa/alsa-topology-conf_1.2.3.bb | 4 +- .../recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb | 6 +- .../recipes-multimedia/libomxil/libomxil_0.9.3.bb | 2 + .../recipes-multimedia/mpg123/mpg123_1.26.2.bb | 51 - .../recipes-multimedia/mpg123/mpg123_1.26.3.bb | 51 + poky/meta/recipes-multimedia/x264/x264_git.bb | 4 +- poky/meta/recipes-sato/webkit/libwpe_1.6.0.bb | 18 - poky/meta/recipes-sato/webkit/libwpe_1.7.1.bb | 17 + ...-fix-build-errors-due-to-WWc-11-narrowing.patch | 66 + poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb | 131 - poky/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb | 132 + .../bash-completion/bash-completion_2.10.bb | 37 - .../bash-completion/bash-completion_2.11.bb | 37 + poky/meta/recipes-support/curl/curl_7.71.1.bb | 83 - poky/meta/recipes-support/curl/curl_7.72.0.bb | 83 + .../recipes-support/diffoscope/diffoscope_151.bb | 17 - .../recipes-support/diffoscope/diffoscope_153.bb | 17 + .../meta/recipes-support/fribidi/fribidi_1.0.10.bb | 2 +- poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb | 6 +- .../0001-tests-do-not-statically-link-a-test.patch | 8 +- .../0002-tests-do-not-run-target-executables.patch | 15 +- poky/meta/recipes-support/libcap/libcap_2.36.bb | 76 - poky/meta/recipes-support/libcap/libcap_2.42.bb | 76 + .../recipes-support/libevdev/libevdev_1.9.0.bb | 16 - .../recipes-support/libevdev/libevdev_1.9.1.bb | 16 + .../meta/recipes-support/libexif/libexif_0.6.22.bb | 2 + poky/meta/recipes-support/libffi/libffi_3.3.bb | 2 +- .../0001-Fix-compilation-with-fno-common.patch | 448 + .../recipes-support/libunwind/libunwind_1.4.0.bb | 1 + .../recipes-support/popt/popt/disable_tests.patch | 21 - .../recipes-support/popt/popt/pkgconfig_fix.patch | 15 - .../popt/popt/popt_fix_for_automake-1.12.patch | 21 - poky/meta/recipes-support/popt/popt_1.16.bb | 22 - poky/meta/recipes-support/popt/popt_1.18.bb | 15 + .../recipes-support/re2c/re2c/CVE-2020-11958.patch | 41 - poky/meta/recipes-support/re2c/re2c_1.3.bb | 16 - poky/meta/recipes-support/re2c/re2c_2.0.bb | 14 + poky/meta/recipes-support/sqlite/sqlite3_3.32.3.bb | 11 - poky/meta/recipes-support/sqlite/sqlite3_3.33.0.bb | 10 + poky/scripts/lib/checklayer/__init__.py | 14 + poky/scripts/lib/wic/plugins/source/bootimg-efi.py | 60 + .../lib/wic/plugins/source/bootimg-partition.py | 2 +- poky/scripts/runqemu | 7 +- poky/scripts/yocto-check-layer | 9 +- 550 files changed, 42564 insertions(+), 42060 deletions(-) create mode 100644 poky/bitbake/lib/bb/tests/color.py delete mode 100644 poky/meta/classes/packagefeed-stability.bbclass create mode 100755 poky/meta/conf/machine/include/arm/arch-armv6m.inc create mode 100644 poky/meta/conf/machine/include/arm/arch-armv8-2a.inc create mode 100755 poky/meta/conf/machine/include/tune-cortex-m0plus.inc delete mode 100644 poky/meta/lib/oe/package_manager.py create mode 100644 poky/meta/lib/oe/package_manager/__init__.py create mode 100644 poky/meta/lib/oe/package_manager/deb/__init__.py create mode 100644 poky/meta/lib/oe/package_manager/deb/manifest.py create mode 100644 poky/meta/lib/oe/package_manager/deb/rootfs.py create mode 100644 poky/meta/lib/oe/package_manager/deb/sdk.py create mode 100644 poky/meta/lib/oe/package_manager/ipk/__init__.py create mode 100644 poky/meta/lib/oe/package_manager/ipk/manifest.py create mode 100644 poky/meta/lib/oe/package_manager/ipk/rootfs.py create mode 100644 poky/meta/lib/oe/package_manager/ipk/sdk.py create mode 100644 poky/meta/lib/oe/package_manager/rpm/__init__.py create mode 100644 poky/meta/lib/oe/package_manager/rpm/manifest.py create mode 100644 poky/meta/lib/oe/package_manager/rpm/rootfs.py create mode 100644 poky/meta/lib/oe/package_manager/rpm/sdk.py create mode 100644 poky/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch delete mode 100644 poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb create mode 100644 poky/meta/recipes-bsp/u-boot/libubootenv_0.3.bb create mode 100644 poky/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch delete mode 100644 poky/meta/recipes-connectivity/iproute2/iproute2_5.7.0.bb create mode 100644 poky/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb delete mode 100644 poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/cross-localedef-native_2.32.bb delete mode 100644 poky/meta/recipes-core/glibc/glibc-locale_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/glibc-locale_2.32.bb delete mode 100644 poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/glibc-mtrace_2.32.bb delete mode 100644 poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/glibc-scripts_2.32.bb delete mode 100644 poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/glibc-testsuite_2.32.bb delete mode 100644 poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch create mode 100644 poky/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch delete mode 100644 poky/meta/recipes-core/glibc/glibc_2.31.bb create mode 100644 poky/meta/recipes-core/glibc/glibc_2.32.bb delete mode 100644 poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch delete mode 100644 poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch delete mode 100644 poky/meta/recipes-core/kbd/kbd/fix_cflags.patch delete mode 100644 poky/meta/recipes-core/kbd/kbd/run-ptest delete mode 100644 poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch delete mode 100644 poky/meta/recipes-core/kbd/kbd_2.2.0.bb create mode 100644 poky/meta/recipes-core/kbd/kbd_2.3.0.bb delete mode 100644 poky/meta/recipes-core/systemd/systemd-boot_245.6.bb create mode 100644 poky/meta/recipes-core/systemd/systemd-boot_246.1.bb delete mode 100644 poky/meta/recipes-core/systemd/systemd-conf_245.6.bb create mode 100644 poky/meta/recipes-core/systemd/systemd-conf_246.1.bb create mode 100644 poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch create mode 100644 poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch create mode 100644 poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch create mode 100644 poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch delete mode 100644 poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch delete mode 100644 poky/meta/recipes-core/systemd/systemd_245.6.bb create mode 100644 poky/meta/recipes-core/systemd/systemd_246.2.bb delete mode 100644 poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb create mode 100644 poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb delete mode 100644 poky/meta/recipes-devtools/binutils/binutils-2.34.inc create mode 100644 poky/meta/recipes-devtools/binutils/binutils-2.35.inc delete mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb create mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb delete mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb create mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb delete mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb create mode 100644 poky/meta/recipes-devtools/binutils/binutils-cross_2.35.bb delete mode 100644 poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb create mode 100644 poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch create mode 100644 poky/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch delete mode 100644 poky/meta/recipes-devtools/binutils/binutils_2.34.bb create mode 100644 poky/meta/recipes-devtools/binutils/binutils_2.35.bb delete mode 100644 poky/meta/recipes-devtools/build-compare/build-compare_git.bb delete mode 100644 poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb create mode 100644 poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb create mode 100644 poky/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1.inc delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0002-gcc-poison-system-directories.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0004-64-bit-multilib-hack.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0005-optional-libstdc.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0006-COLLECT_GCC_OPTIONS.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0008-fortran-cross-compile-hack.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0009-cpp-honor-sysroot.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0010-MIPS64-Default-to-N64-ABI.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0012-gcc-Fix-argument-list-too-long-error.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0013-Disable-sdt.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0014-libtool.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0018-export-CPP.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0019-Ensure-target-gcc-headers-can-be-included.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0022-aarch64-Add-support-for-musl-ldso.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0024-handle-sysroot-support-for-nativesdk-gcc.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0026-Fix-various-_FOR_BUILD-and-related-variables.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0030-sync-gcc-stddef.h-with-musl.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0031-fix-segmentation-fault-in-precompiled-header-generat.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0032-Fix-for-testsuite-failure.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0033-Re-introduce-spe-commandline-options.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0037-mingw32-Enable-operation_not_supported.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc-10.2.inc delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-cross_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-runtime_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/gcc-source_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch create mode 100644 poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch delete mode 100644 poky/meta/recipes-devtools/gcc/gcc_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/gcc_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/libgcc-initial_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/libgcc_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/libgcc_10.2.bb delete mode 100644 poky/meta/recipes-devtools/gcc/libgfortran_10.1.bb create mode 100644 poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb delete mode 100644 poky/meta/recipes-devtools/git/git_2.27.0.bb create mode 100644 poky/meta/recipes-devtools/git/git_2.28.0.bb delete mode 100644 poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb create mode 100644 poky/meta/recipes-devtools/go/go-binary-native_1.14.7.bb delete mode 100644 poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch delete mode 100644 poky/meta/recipes-devtools/json-c/json-c_0.14.bb create mode 100644 poky/meta/recipes-devtools/json-c/json-c_0.15.bb create mode 100644 poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch delete mode 100644 poky/meta/recipes-devtools/meson/meson_0.54.3.bb create mode 100644 poky/meta/recipes-devtools/meson/meson_0.55.0.bb delete mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb create mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.55.0.bb delete mode 100644 poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch delete mode 100644 poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch delete mode 100644 poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch delete mode 100644 poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb create mode 100644 poky/meta/recipes-devtools/nasm/nasm_2.15.03.bb create mode 100644 poky/meta/recipes-devtools/perl/files/perl-cross-makefile.patch delete mode 100644 poky/meta/recipes-devtools/python/python-setuptools.inc delete mode 100644 poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb create mode 100644 poky/meta/recipes-devtools/python/python3-setuptools_49.3.1.bb delete mode 100644 poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch delete mode 100644 poky/meta/recipes-devtools/python/python3_3.8.3.bb create mode 100644 poky/meta/recipes-devtools/python/python3_3.8.5.bb delete mode 100644 poky/meta/recipes-devtools/qemu/qemu-native_5.0.0.bb create mode 100644 poky/meta/recipes-devtools/qemu/qemu-native_5.1.0.bb delete mode 100644 poky/meta/recipes-devtools/qemu/qemu-system-native_5.0.0.bb create mode 100644 poky/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13361.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch delete mode 100644 poky/meta/recipes-devtools/qemu/qemu_5.0.0.bb create mode 100644 poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb create mode 100644 poky/meta/recipes-devtools/rpm/files/environment.d-rpm.sh delete mode 100644 poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb create mode 100644 poky/meta/recipes-devtools/rsync/rsync_3.2.2.bb delete mode 100644 poky/meta/recipes-devtools/strace/strace_5.7.bb create mode 100644 poky/meta/recipes-devtools/strace/strace_5.8.bb delete mode 100644 poky/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch delete mode 100644 poky/meta/recipes-devtools/vala/vala_0.48.6.bb create mode 100644 poky/meta/recipes-devtools/vala/vala_0.48.7.bb delete mode 100644 poky/meta/recipes-extended/ethtool/ethtool_5.7.bb create mode 100644 poky/meta/recipes-extended/ethtool/ethtool_5.8.bb create mode 100644 poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch delete mode 100644 poky/meta/recipes-extended/logrotate/logrotate_3.16.0.bb create mode 100644 poky/meta/recipes-extended/logrotate/logrotate_3.17.0.bb create mode 100644 poky/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch create mode 100644 poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch create mode 100644 poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch create mode 100644 poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch create mode 100644 poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch create mode 100644 poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch create mode 100644 poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch create mode 100644 poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb delete mode 100644 poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb delete mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb create mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.18.bb delete mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.1.bb create mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.2.bb create mode 100644 poky/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch create mode 100644 poky/meta/recipes-gnome/gnome/gconf/python3.patch delete mode 100644 poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb create mode 100644 poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb delete mode 100644 poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.8.bb create mode 100644 poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.1.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.1.4.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.1.4.bb delete mode 100644 poky/meta/recipes-graphics/wayland/libinput_1.15.6.bb create mode 100644 poky/meta/recipes-graphics/wayland/libinput_1.16.0.bb create mode 100644 poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch create mode 100644 poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch create mode 100644 poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch delete mode 100644 poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb create mode 100644 poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb create mode 100644 poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb create mode 100644 poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb create mode 100644 poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb create mode 100644 poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-tools_2.12.1.bb create mode 100644 poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb delete mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb create mode 100644 poky/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb delete mode 100644 poky/meta/recipes-sato/webkit/libwpe_1.6.0.bb create mode 100644 poky/meta/recipes-sato/webkit/libwpe_1.7.1.bb create mode 100644 poky/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch delete mode 100644 poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb create mode 100644 poky/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb delete mode 100644 poky/meta/recipes-support/bash-completion/bash-completion_2.10.bb create mode 100644 poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb delete mode 100644 poky/meta/recipes-support/curl/curl_7.71.1.bb create mode 100644 poky/meta/recipes-support/curl/curl_7.72.0.bb delete mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_151.bb create mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_153.bb delete mode 100644 poky/meta/recipes-support/libcap/libcap_2.36.bb create mode 100644 poky/meta/recipes-support/libcap/libcap_2.42.bb delete mode 100644 poky/meta/recipes-support/libevdev/libevdev_1.9.0.bb create mode 100644 poky/meta/recipes-support/libevdev/libevdev_1.9.1.bb create mode 100644 poky/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch delete mode 100644 poky/meta/recipes-support/popt/popt/disable_tests.patch delete mode 100644 poky/meta/recipes-support/popt/popt/pkgconfig_fix.patch delete mode 100644 poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch delete mode 100644 poky/meta/recipes-support/popt/popt_1.16.bb create mode 100644 poky/meta/recipes-support/popt/popt_1.18.bb delete mode 100644 poky/meta/recipes-support/re2c/re2c/CVE-2020-11958.patch delete mode 100644 poky/meta/recipes-support/re2c/re2c_1.3.bb create mode 100644 poky/meta/recipes-support/re2c/re2c_2.0.bb delete mode 100644 poky/meta/recipes-support/sqlite/sqlite3_3.32.3.bb create mode 100644 poky/meta/recipes-support/sqlite/sqlite3_3.33.0.bb (limited to 'poky/meta/recipes-devtools/python/python3') diff --git a/poky/bitbake/bin/bitbake-selftest b/poky/bitbake/bin/bitbake-selftest index 041a2719f..e84d6a559 100755 --- a/poky/bitbake/bin/bitbake-selftest +++ b/poky/bitbake/bin/bitbake-selftest @@ -18,6 +18,7 @@ except RuntimeError as exc: sys.exit(str(exc)) tests = ["bb.tests.codeparser", + "bb.tests.color", "bb.tests.cooker", "bb.tests.cow", "bb.tests.data", diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py index 23b6ee455..94f9cb371 100644 --- a/poky/bitbake/lib/bb/build.py +++ b/poky/bitbake/lib/bb/build.py @@ -16,7 +16,9 @@ import os import sys import logging import glob +import itertools import time +import re import stat import bb import bb.msg @@ -303,20 +305,60 @@ def exec_func_python(func, d, runfile, cwd=None): def shell_trap_code(): return '''#!/bin/sh\n +__BITBAKE_LAST_LINE=0 + # Emit a useful diagnostic if something fails: -bb_exit_handler() { +bb_sh_exit_handler() { + ret=$? + if [ "$ret" != 0 ]; then + echo "WARNING: exit code $ret from a shell command." + fi + exit $ret +} + +bb_bash_exit_handler() { ret=$? - case $ret in - 0) ;; - *) case $BASH_VERSION in - "") echo "WARNING: exit code $ret from a shell command.";; - *) echo "WARNING: ${BASH_SOURCE[0]}:${BASH_LINENO[0]} exit $ret from '$BASH_COMMAND'";; - esac - exit $ret - esac + { set +x; } > /dev/null + trap "" DEBUG + if [ "$ret" != 0 ]; then + echo "WARNING: ${BASH_SOURCE[0]}:${__BITBAKE_LAST_LINE} exit $ret from '$1'" + + echo "WARNING: Backtrace (BB generated script): " + for i in $(seq 1 $((${#FUNCNAME[@]} - 1))); do + if [ "$i" -eq 1 ]; then + echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${__BITBAKE_LAST_LINE}" + else + echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${BASH_LINENO[$((i-1))]}" + fi + done + fi + exit $ret +} + +bb_bash_debug_handler() { + local line=${BASH_LINENO[0]} + # For some reason the DEBUG trap trips with lineno=1 when scripts exit; ignore it + if [ "$line" -eq 1 ]; then + return + fi + + # Track the line number of commands as they execute. This is so we can have access to the failing line number + # in the EXIT trap. See http://gnu-bash.2382.n7.nabble.com/trap-echo-quot-trap-exit-on-LINENO-quot-EXIT-gt-wrong-linenumber-td3666.html + if [ "${FUNCNAME[1]}" != "bb_bash_exit_handler" ]; then + __BITBAKE_LAST_LINE=$line + fi } -trap 'bb_exit_handler' 0 -set -e + +case $BASH_VERSION in +"") trap 'bb_sh_exit_handler' 0 + set -e + ;; +*) trap 'bb_bash_exit_handler "$BASH_COMMAND"' 0 + trap '{ bb_bash_debug_handler; } 2>/dev/null' DEBUG + set -e + shopt -s extdebug + ;; +esac ''' def create_progress_handler(func, progress, logfile, d): @@ -346,7 +388,7 @@ def create_progress_handler(func, progress, logfile, d): cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context) if not cls_obj: # Fall-back on __builtins__ - cls_obj = functools.reduce(lambda x, y: x.get(y), cls.split("."), __builtins__) + cls_obj = functools.reduce(resolve, cls.split("."), __builtins__) if cls_obj: return cls_obj(d, outfile=logfile, otherargs=otherargs) bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls)) @@ -398,7 +440,13 @@ exit $ret progress = d.getVarFlag(func, 'progress') if progress: - logfile = create_progress_handler(func, progress, logfile, d) + try: + logfile = create_progress_handler(func, progress, logfile, d) + except: + from traceback import format_exc + logger.error("Failed to create progress handler") + logger.error(format_exc()) + raise fifobuffer = bytearray() def readfifo(data): @@ -450,6 +498,62 @@ exit $ret bb.debug(2, "Executing shell function %s" % func) with open(os.devnull, 'r+') as stdin, logfile: bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)]) + except bb.process.ExecutionError as exe: + # Find the backtrace that the shell trap generated + backtrace_marker_regex = re.compile(r"WARNING: Backtrace \(BB generated script\)") + stdout_lines = (exe.stdout or "").split("\n") + backtrace_start_line = None + for i, line in enumerate(reversed(stdout_lines)): + if backtrace_marker_regex.search(line): + backtrace_start_line = len(stdout_lines) - i + break + + # Read the backtrace frames, starting at the location we just found + backtrace_entry_regex = re.compile(r"#(?P\d+): (?P[^\s]+), (?P.+?), line (" + r"?P\d+)") + backtrace_frames = [] + if backtrace_start_line: + for line in itertools.islice(stdout_lines, backtrace_start_line, None): + match = backtrace_entry_regex.search(line) + if match: + backtrace_frames.append(match.groupdict()) + + with open(runfile, "r") as script: + script_lines = [line.rstrip() for line in script.readlines()] + + # For each backtrace frame, search backwards in the script (from the line number called out by the frame), + # to find the comment that emit_vars injected when it wrote the script. This will give us the metadata + # filename (e.g. .bb or .bbclass) and line number where the shell function was originally defined. + script_metadata_comment_regex = re.compile(r"# line: (?P\d+), file: (?P.+)") + better_frames = [] + # Skip the very last frame since it's just the call to the shell task in the body of the script + for frame in backtrace_frames[:-1]: + # Check whether the frame corresponds to a function defined in the script vs external script. + if os.path.samefile(frame["file"], runfile): + # Search backwards from the frame lineno to locate the comment that BB injected + i = int(frame["lineno"]) - 1 + while i >= 0: + match = script_metadata_comment_regex.match(script_lines[i]) + if match: + # Calculate the relative line in the function itself + relative_line_in_function = int(frame["lineno"]) - i - 2 + # Calculate line in the function as declared in the metadata + metadata_function_line = relative_line_in_function + int(match["lineno"]) + better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format( + frameno=frame["frameno"], + funcname=frame["funcname"], + file=match["file"], + lineno=metadata_function_line + )) + break + i -= 1 + else: + better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(**frame)) + + if better_frames: + better_frames = ("\t{0}".format(frame) for frame in better_frames) + exe.extra_message = "\nBacktrace (metadata-relative locations):\n{0}".format("\n".join(better_frames)) + raise finally: os.unlink(fifopath) diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py index 805ed9216..4d152ff4c 100644 --- a/poky/bitbake/lib/bb/command.py +++ b/poky/bitbake/lib/bb/command.py @@ -84,7 +84,7 @@ class Command: if command not in CommandsAsync.__dict__: return None, "No such command" self.currentAsyncCommand = (command, commandline) - self.cooker.configuration.server_register_idlecallback(self.cooker.runCommands, self.cooker) + self.cooker.idleCallBackRegister(self.cooker.runCommands, self.cooker) return True, None def runAsyncCommand(self): @@ -723,10 +723,10 @@ class CommandsAsync: """ Find signature info files via the signature generator """ - pn = params[0] + (mc, pn) = bb.runqueue.split_mc(params[0]) taskname = params[1] sigs = params[2] - res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.data) - bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.data) + res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.databuilder.mcdata[mc]) + bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc]) command.finishAsyncCommand() findSigInfo.needcache = False diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index f6abc6348..912360546 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -148,7 +148,7 @@ class BBCooker: Manages one bitbake build run """ - def __init__(self, configuration, featureSet=None): + def __init__(self, configuration, featureSet=None, idleCallBackRegister=None): self.recipecaches = None self.skiplist = {} self.featureset = CookerFeatures() @@ -158,6 +158,8 @@ class BBCooker: self.configuration = configuration + self.idleCallBackRegister = idleCallBackRegister + bb.debug(1, "BBCooker starting %s" % time.time()) sys.stdout.flush() @@ -210,7 +212,7 @@ class BBCooker: cooker.process_inotify_updates() return 1.0 - self.configuration.server_register_idlecallback(_process_inotify_updates, self) + self.idleCallBackRegister(_process_inotify_updates, self) # TOSTOP must not be set or our children will hang when they output try: @@ -1423,7 +1425,7 @@ class BBCooker: return True return retval - self.configuration.server_register_idlecallback(buildFileIdle, rq) + self.idleCallBackRegister(buildFileIdle, rq) def buildTargets(self, targets, task): """ @@ -1494,7 +1496,7 @@ class BBCooker: if 'universe' in targets: rq.rqdata.warn_multi_bb = True - self.configuration.server_register_idlecallback(buildTargetsIdle, rq) + self.idleCallBackRegister(buildTargetsIdle, rq) def getAllKeysWithFlags(self, flaglist): diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py index 24bf09c56..b86e7d446 100644 --- a/poky/bitbake/lib/bb/cookerdata.py +++ b/poky/bitbake/lib/bb/cookerdata.py @@ -143,16 +143,10 @@ class CookerConfiguration(object): setattr(self, key, parameters.options.__dict__[key]) self.env = parameters.environment.copy() - def setServerRegIdleCallback(self, srcb): - self.server_register_idlecallback = srcb - def __getstate__(self): state = {} for key in self.__dict__.keys(): - if key == "server_register_idlecallback": - state[key] = None - else: - state[key] = getattr(self, key) + state[key] = getattr(self, key) return state def __setstate__(self,state): diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py index b0683c518..97022853c 100644 --- a/poky/bitbake/lib/bb/data.py +++ b/poky/bitbake/lib/bb/data.py @@ -161,6 +161,12 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False): return True if func: + # Write a comment indicating where the shell function came from (line number and filename) to make it easier + # for the user to diagnose task failures. This comment is also used by build.py to determine the metadata + # location of shell functions. + o.write("# line: {0}, file: {1}\n".format( + d.getVarFlag(var, "lineno", False), + d.getVarFlag(var, "filename", False))) # NOTE: should probably check for unbalanced {} within the var val = val.rstrip('\n') o.write("%s() {\n%s\n}\n" % (varExpanded, val)) diff --git a/poky/bitbake/lib/bb/process.py b/poky/bitbake/lib/bb/process.py index 2dc472a86..f36c929d2 100644 --- a/poky/bitbake/lib/bb/process.py +++ b/poky/bitbake/lib/bb/process.py @@ -41,6 +41,7 @@ class ExecutionError(CmdError): self.exitcode = exitcode self.stdout = stdout self.stderr = stderr + self.extra_message = None def __str__(self): message = "" @@ -51,7 +52,7 @@ class ExecutionError(CmdError): if message: message = ":\n" + message return (CmdError.__str__(self) + - " with exit code %s" % self.exitcode + message) + " with exit code %s" % self.exitcode + message + (self.extra_message or "")) class Popen(subprocess.Popen): defaults = { diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py index 9c755b7f7..d051ba019 100644 --- a/poky/bitbake/lib/bb/progress.py +++ b/poky/bitbake/lib/bb/progress.py @@ -14,7 +14,27 @@ import bb.event import bb.build from bb.build import StdoutNoopContextManager -class ProgressHandler(object): + +# from https://stackoverflow.com/a/14693789/221061 +ANSI_ESCAPE_REGEX = re.compile(r'\x1B\[[0-?]*[ -/]*[@-~]') + + +def filter_color(string): + """ + Filter ANSI escape codes out of |string|, return new string + """ + return ANSI_ESCAPE_REGEX.sub('', string) + + +def filter_color_n(string): + """ + Filter ANSI escape codes out of |string|, returns tuple of + (new string, # of ANSI codes removed) + """ + return ANSI_ESCAPE_REGEX.subn('', string) + + +class ProgressHandler: """ Base class that can pretend to be a file object well enough to be used to build objects to intercept console output and determine the @@ -55,6 +75,7 @@ class ProgressHandler(object): self._lastevent = ts self._progress = progress + class LineFilterProgressHandler(ProgressHandler): """ A ProgressHandler variant that provides the ability to filter out @@ -66,7 +87,7 @@ class LineFilterProgressHandler(ProgressHandler): """ def __init__(self, d, outfile=None): self._linebuffer = '' - super(LineFilterProgressHandler, self).__init__(d, outfile) + super().__init__(d, outfile) def write(self, string): self._linebuffer += string @@ -80,41 +101,44 @@ class LineFilterProgressHandler(ProgressHandler): lbreakpos = line.rfind('\r') + 1 if lbreakpos: line = line[lbreakpos:] - if self.writeline(line): - super(LineFilterProgressHandler, self).write(line) + if self.writeline(filter_color(line)): + super().write(line) def writeline(self, line): return True + class BasicProgressHandler(ProgressHandler): def __init__(self, d, regex=r'(\d+)%', outfile=None): - super(BasicProgressHandler, self).__init__(d, outfile) + super().__init__(d, outfile) self._regex = re.compile(regex) # Send an initial progress event so the bar gets shown self._fire_progress(0) def write(self, string): - percs = self._regex.findall(string) + percs = self._regex.findall(filter_color(string)) if percs: progress = int(percs[-1]) self.update(progress) - super(BasicProgressHandler, self).write(string) + super().write(string) + class OutOfProgressHandler(ProgressHandler): def __init__(self, d, regex, outfile=None): - super(OutOfProgressHandler, self).__init__(d, outfile) + super().__init__(d, outfile) self._regex = re.compile(regex) # Send an initial progress event so the bar gets shown self._fire_progress(0) def write(self, string): - nums = self._regex.findall(string) + nums = self._regex.findall(filter_color(string)) if nums: progress = (float(nums[-1][0]) / float(nums[-1][1])) * 100 self.update(progress) - super(OutOfProgressHandler, self).write(string) + super().write(string) + -class MultiStageProgressReporter(object): +class MultiStageProgressReporter: """ Class which allows reporting progress without the caller having to know where they are in the overall sequence. Useful @@ -199,6 +223,7 @@ class MultiStageProgressReporter(object): value is considered to be out of stage_total, otherwise it should be a percentage value from 0 to 100. """ + progress = None if self._stage_total: stage_progress = (float(stage_progress) / self._stage_total) * 100 if self._stage < 0: @@ -207,9 +232,10 @@ class MultiStageProgressReporter(object): progress = self._base_progress + (stage_progress * self._stage_weights[self._stage]) else: progress = self._base_progress - if progress > 100: - progress = 100 - self._fire_progress(progress) + if progress: + if progress > 100: + progress = 100 + self._fire_progress(progress) def finish(self): if self._finished: @@ -230,6 +256,7 @@ class MultiStageProgressReporter(object): out.append('Up to finish: %d' % stage_weight) bb.warn('Stage times:\n %s' % '\n '.join(out)) + class MultiStageProcessProgressReporter(MultiStageProgressReporter): """ Version of MultiStageProgressReporter intended for use with @@ -238,7 +265,7 @@ class MultiStageProcessProgressReporter(MultiStageProgressReporter): def __init__(self, d, processname, stage_weights, debug=False): self._processname = processname self._started = False - MultiStageProgressReporter.__init__(self, d, stage_weights, debug) + super().__init__(d, stage_weights, debug) def start(self): if not self._started: @@ -255,13 +282,14 @@ class MultiStageProcessProgressReporter(MultiStageProgressReporter): MultiStageProgressReporter.finish(self) bb.event.fire(bb.event.ProcessFinished(self._processname), self._data) + class DummyMultiStageProcessProgressReporter(MultiStageProgressReporter): """ MultiStageProcessProgressReporter that takes the calls and does nothing with them (to avoid a bunch of "if progress_reporter:" checks) """ def __init__(self): - MultiStageProcessProgressReporter.__init__(self, "", None, []) + super().__init__(None, []) def _fire_progress(self, taskprogress, rate=None): pass diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py index 9ec79f5b6..65e1eab52 100644 --- a/poky/bitbake/lib/bb/server/process.py +++ b/poky/bitbake/lib/bb/server/process.py @@ -34,12 +34,11 @@ logger = logging.getLogger('BitBake') class ProcessTimeout(SystemExit): pass -class ProcessServer(multiprocessing.Process): +class ProcessServer(): profile_filename = "profile.log" profile_processed_filename = "profile.log.processed" - def __init__(self, lock, sock, sockname): - multiprocessing.Process.__init__(self) + def __init__(self, lock, sock, sockname, server_timeout, xmlrpcinterface): self.command_channel = False self.command_channel_reply = False self.quit = False @@ -47,6 +46,7 @@ class ProcessServer(multiprocessing.Process): self.next_heartbeat = time.time() self.event_handle = None + self.hadanyui = False self.haveui = False self.maxuiwait = 30 self.xmlrpc = False @@ -57,6 +57,9 @@ class ProcessServer(multiprocessing.Process): self.sock = sock self.sockname = sockname + self.server_timeout = server_timeout + self.xmlrpcinterface = xmlrpcinterface + def register_idle_function(self, function, data): """Register a function to be called while the server is idle""" assert hasattr(function, '__call__') @@ -188,6 +191,7 @@ class ProcessServer(multiprocessing.Process): self.command_channel_reply = writer self.haveui = True + self.hadanyui = True except (EOFError, OSError): disconnect_client(self, fds) @@ -200,7 +204,7 @@ class ProcessServer(multiprocessing.Process): # If we don't see a UI connection within maxuiwait, its unlikely we're going to see # one. We have had issue with processes hanging indefinitely so timing out UI-less # servers is useful. - if not self.haveui and not self.timeout and (self.lastui + self.maxuiwait) < time.time(): + if not self.hadanyui and not self.xmlrpc and not self.timeout and (self.lastui + self.maxuiwait) < time.time(): print("No UI connection within max timeout, exiting to avoid infinite loop.") self.quit = True @@ -243,6 +247,10 @@ class ProcessServer(multiprocessing.Process): self.cooker.post_serve() + # Flush logs before we release the lock + sys.stdout.flush() + sys.stderr.flush() + # Finally release the lockfile but warn about other processes holding it open lock = self.bitbake_lock lockfile = lock.name @@ -465,23 +473,25 @@ class BitBakeServer(object): print(self.start_log_format % (os.getpid(), datetime.datetime.now().strftime(self.start_log_datetime_format))) sys.stdout.flush() - server = ProcessServer(self.bitbake_lock, self.sock, self.sockname) - self.configuration.setServerRegIdleCallback(server.register_idle_function) - os.close(self.readypipe) - writer = ConnectionWriter(self.readypipein) try: - self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset) - except bb.BBHandledException: - return None - writer.send("r") - writer.close() - server.cooker = self.cooker - server.server_timeout = self.configuration.server_timeout - server.xmlrpcinterface = self.configuration.xmlrpcinterface - print("Started bitbake server pid %d" % os.getpid()) - sys.stdout.flush() - - server.start() + server = ProcessServer(self.bitbake_lock, self.sock, self.sockname, self.configuration.server_timeout, self.configuration.xmlrpcinterface) + os.close(self.readypipe) + writer = ConnectionWriter(self.readypipein) + try: + self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset, server.register_idle_function) + except bb.BBHandledException: + return None + writer.send("r") + writer.close() + server.cooker = self.cooker + print("Started bitbake server pid %d" % os.getpid()) + sys.stdout.flush() + + server.run() + finally: + # Flush any ,essages/errors to the logfile before exit + sys.stdout.flush() + sys.stderr.flush() def connectProcessServer(sockname, featureset): # Connect to socket diff --git a/poky/bitbake/lib/bb/tests/color.py b/poky/bitbake/lib/bb/tests/color.py new file mode 100644 index 000000000..bf03750c6 --- /dev/null +++ b/poky/bitbake/lib/bb/tests/color.py @@ -0,0 +1,95 @@ +# +# BitBake Test for ANSI color code filtering +# +# Copyright (C) 2020 Agilent Technologies, Inc. +# Author: Chris Laplante +# +# SPDX-License-Identifier: MIT +# + +import unittest +import bb.progress +import bb.data +import bb.event +from bb.progress import filter_color, filter_color_n +import io +import re + + +class ProgressWatcher: + def __init__(self): + self._reports = [] + + def handle_event(self, event): + self._reports.append((event.progress, event.rate)) + + def reports(self): + return self._reports + + +class ColorCodeTests(unittest.TestCase): + def setUp(self): + self.d = bb.data.init() + self._progress_watcher = ProgressWatcher() + bb.event.register("bb.build.TaskProgress", self._progress_watcher.handle_event) + + def tearDown(self): + bb.event.remove("bb.build.TaskProgress", None) + + def test_filter_color(self): + input_string = "~~~~~~~~~~~~^~~~~~~~" + filtered = filter_color(input_string) + self.assertEqual(filtered, "~~~~~~~~~~~~^~~~~~~~") + + def test_filter_color_n(self): + input_string = "~~~~~~~~~~~~^~~~~~~~" + filtered, code_count = filter_color_n(input_string) + self.assertEqual(filtered, "~~~~~~~~~~~~^~~~~~~~") + self.assertEqual(code_count, 4) + + def test_LineFilterProgressHandler_color_filtering(self): + class CustomProgressHandler(bb.progress.LineFilterProgressHandler): + PROGRESS_REGEX = re.compile(r"Progress: (?P\d+)%") + + def writeline(self, line): + match = self.PROGRESS_REGEX.match(line) + if match: + self.update(int(match.group("progress"))) + return False + return True + + buffer = io.StringIO() + handler = CustomProgressHandler(self.d, buffer) + handler.write("Program output!\n") + handler.write("More output!\n") + handler.write("Progress: 10%\n") # 10% + handler.write("Even more\n") + handler.write("Progress: 50%\n") # 50% + handler.write("Progress: 60%\n") # 60% + handler.write("Progress: 100%\n") # 100% + + expected = [(10, None), (50, None), (60, None), (100, None)] + self.assertEqual(self._progress_watcher.reports(), expected) + + self.assertEqual(buffer.getvalue(), "Program output!\nMore output!\nEven more\n") + + def test_BasicProgressHandler_color_filtering(self): + buffer = io.StringIO() + handler = bb.progress.BasicProgressHandler(self.d, outfile=buffer) + handler.write("1%\n") # 1% + handler.write("2%\n") # 2% + handler.write("10%\n") # 10% + handler.write("100%\n") # 100% + + expected = [(0, None), (1, None), (2, None), (10, None), (100, None)] + self.assertListEqual(self._progress_watcher.reports(), expected) + + def test_OutOfProgressHandler_color_filtering(self): + buffer = io.StringIO() + handler = bb.progress.OutOfProgressHandler(self.d, r'(\d+) of (\d+)', outfile=buffer) + handler.write("Text text 1 of 5") # 1/5 + handler.write("Text text 3 of 5") # 3/5 + handler.write("Text text 5 of 5") # 5/5 + + expected = [(0, None), (20.0, None), (60.0, None), (100.0, None)] + self.assertListEqual(self._progress_watcher.reports(), expected) diff --git a/poky/documentation/bsp-guide/bsp.xml b/poky/documentation/bsp-guide/bsp.xml index 72a077e80..f5c3f31fa 100644 --- a/poky/documentation/bsp-guide/bsp.xml +++ b/poky/documentation/bsp-guide/bsp.xml @@ -2158,7 +2158,7 @@ IMAGE_BOOT_FILES: Files installed into the device's boot partition when preparing the image using the Wic tool - with the bootimg-partition + with the bootimg-partition or bootimg-efi source plugin. diff --git a/poky/documentation/ref-manual/ref-classes.xml b/poky/documentation/ref-manual/ref-classes.xml index ab12373ae..1dcd5fdd0 100644 --- a/poky/documentation/ref-manual/ref-classes.xml +++ b/poky/documentation/ref-manual/ref-classes.xml @@ -1880,8 +1880,82 @@ This check was removed for YP 2.3 release The kernel-fitimage class provides support to - pack zImages. + pack a kernel Image, device trees and a RAM disk into a single + FIT image. In theory, a FIT image can support any number of kernels, + RAM disks and device-trees. + However, kernel-fitimage currently only supports + limited usescases: just one kernel image, an optional RAM disk, and + any number of device tree. + + + To create a FIT image, it is required that + KERNEL_CLASSES + is set to "kernel-fitimage" and + KERNEL_IMAGETYPE + is set to "fitImage". + + + + The options for the device tree compiler passed to mkimage -D feature + when creating the FIT image are specified using the + UBOOT_MKIMAGE_DTCOPTS + variable. + + + + Only a single kernel can be added to the FIT image created by + kernel-fitimage and the kernel image in FIT is + mandatory. + The address where the kernel image is to be loaded by U-boot is + specified by + UBOOT_LOADADDRESS + and the entrypoint by + UBOOT_ENTRYPOINT. + + + + Multiple device trees can be added to the FIT image created by + kernel-fitimage and the device tree is optional. + The address where the device tree is to be loaded by U-boot is + specified by + UBOOT_DTBO_LOADADDRESS + for device tree overlays and by + UBOOT_DTB_LOADADDRESS + for device tree binaries. + + + + Only a single RAM disk can be added to the FIT image created by + kernel-fitimage and the RAM disk in FIT is + optional. + The address where the RAM disk image is to be loaded by U-boot + is specified by + UBOOT_RD_LOADADDRESS + and the entrypoint by + UBOOT_RD_ENTRYPOINT. + The ramdisk is added to FIT image when + INITRAMFS_IMAGE + is specified. + + + + The FIT image generated by kernel-fitimage class + is signed when the variables + UBOOT_SIGN_ENABLE, + UBOOT_MKIMAGE_DTCOPTS, + UBOOT_SIGN_KEYDIR + and + UBOOT_SIGN_KEYNAME + are set appropriately. + The default values used for + FIT_HASH_ALG + and + FIT_SIGN_ALG + in kernel-fitimage are "sha256" and "rsa2048" + respectively. + +
diff --git a/poky/documentation/ref-manual/ref-variables.xml b/poky/documentation/ref-manual/ref-variables.xml index 9fe744aff..a5064807e 100644 --- a/poky/documentation/ref-manual/ref-variables.xml +++ b/poky/documentation/ref-manual/ref-variables.xml @@ -4991,6 +4991,30 @@ + FIT_HASH_ALG + + FIT_HASH_ALG[doc] = "Specifies the hash algorithm used in creating the FIT Image." + + + + Specifies the hash algorithm used in creating the FIT Image. + For e.g. sha256. + + + + + FIT_SIGN_ALG + + FIT_SIGN_ALG[doc] = "Specifies the signature algorithm used in creating the FIT Image." + + + + Specifies the signature algorithm used in creating the FIT Image. + For e.g. rsa2048. + + + + FONT_EXTRA_RDEPENDS FONT_EXTRA_RDEPENDS[doc] = "When a recipe inherits the fontcache class, this variable specifies runtime dependencies for font packages. This variable defaults to 'fontconfig-utils'." @@ -5703,7 +5727,7 @@ A space-separated list of files installed into the boot partition when preparing an image using the Wic tool - with the bootimg-partition source + with the bootimg-partition or bootimg-efi source plugin. By default, the files are installed under the same name as the source files. @@ -15960,6 +15984,38 @@ + UBOOT_DTB_LOADADDRESS + + UBOOT_DTB_LOADADDRESS[doc] = "Specifies the load address for the dtb." + + + + Specifies the load address for the dtb image used by U-boot. + During FIT image creation, the + UBOOT_DTB_LOADADDRESS variable is used + in kernel-fitimage class to specify the + load address to be used in creating the dtb sections of + Image Tree Source for the FIT image. + + + + + UBOOT_DTBO_LOADADDRESS + + UBOOT_DTBO_LOADADDRESS[doc] = "Specifies the load address for the dtbo." + + + + Specifies the load address for the dtbo image used by U-boot. + During FIT image creation, the + UBOOT_DTBO_LOADADDRESS variable is used + in kernel-fitimage class to specify the + load address to be used in creating the dtbo sections of + Image Tree Source for the FIT image. + + + + UBOOT_ENTRYPOINT UBOOT_ENTRYPOINT[doc] = "Specifies the entry point for the U-Boot image." @@ -16045,6 +16101,51 @@ + UBOOT_MKIMAGE_DTCOPTS + + UBOOT_MKIMAGE_DTCOPTS[doc] = "Options for the device tree compiler passed to mkimage '-D' feature." + + + + Options for the device tree compiler passed to mkimage '-D' + feature while creating FIT image in + kernel-fitimage class. + + + + + UBOOT_RD_LOADADDRESS + + UBOOT_RD_LOADADDRESS[doc] = "Specifies the load address for the ramdisk image." + + + + Specifies the load address for the RAM disk image. + During FIT image creation, the + UBOOT_RD_LOADADDRESS variable is used + in kernel-fitimage class to specify the + load address to be used in creating the Image Tree Source for + the FIT image. + + + + + UBOOT_RD_ENTRYPOINT + + UBOOT_RD_ENTRYPOINT[doc] = "Specifies the entrypoint for the ramdisk image." + + + + Specifies the entrypoint for the RAM disk image. + During FIT image creation, the + UBOOT_RD_ENTRYPOINT variable is used + in kernel-fitimage class to specify the + entrypoint to be used in creating the Image Tree Source for + the FIT image. + + + + UBOOT_SUFFIX UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension." @@ -16063,6 +16164,47 @@ + UBOOT_SIGN_ENABLE + + UBOOT_SIGN_KEYDIR[doc] = "Enable signing of FIT image." + + + + Enable signing of FIT image. The default value is "0". + + + + + UBOOT_SIGN_KEYDIR + + UBOOT_SIGN_KEYDIR[doc] = "Location of the directory containing the RSA key and certificate used for signing FIT image." + + + + Location of the directory containing the RSA key and + certificate used for signing FIT image. + + + + + UBOOT_SIGN_KEYNAME + + UBOOT_SIGN_KEYNAME[doc] = "The name of keys used for signing U-boot FIT image" + + + + The name of keys used for signing U-boot FIT image stored in + UBOOT_SIGN_KEYDIR + directory. For e.g. dev.key key and dev.crt certificate + stored in + UBOOT_SIGN_KEYDIR + directory will have + UBOOT_SIGN_KEYNAME + set to "dev". + + + + UBOOT_TARGET UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot." diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend index 626748541..2c73eb2f6 100644 --- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend +++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend @@ -7,17 +7,17 @@ KMACHINE_genericx86 ?= "common-pc" KMACHINE_genericx86-64 ?= "common-pc-64" KMACHINE_beaglebone-yocto ?= "beaglebone" -SRCREV_machine_genericx86 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" -SRCREV_machine_genericx86-64 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" -SRCREV_machine_edgerouter ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" -SRCREV_machine_beaglebone-yocto ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_genericx86 ?= "9fc2fb2e73466a520ee9a3c48b3ca2f5b21415dc" +SRCREV_machine_genericx86-64 ?= "9fc2fb2e73466a520ee9a3c48b3ca2f5b21415dc" +SRCREV_machine_edgerouter ?= "9fc2fb2e73466a520ee9a3c48b3ca2f5b21415dc" +SRCREV_machine_beaglebone-yocto ?= "9fc2fb2e73466a520ee9a3c48b3ca2f5b21415dc" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" -LINUX_VERSION_genericx86 = "5.4.49" -LINUX_VERSION_genericx86-64 = "5.4.49" -LINUX_VERSION_edgerouter = "5.4.49" -LINUX_VERSION_beaglebone-yocto = "5.4.49" +LINUX_VERSION_genericx86 = "5.4.54" +LINUX_VERSION_genericx86-64 = "5.4.54" +LINUX_VERSION_edgerouter = "5.4.54" +LINUX_VERSION_beaglebone-yocto = "5.4.54" diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass index a4288ef9e..805e976ac 100644 --- a/poky/meta/classes/buildhistory.bbclass +++ b/poky/meta/classes/buildhistory.bbclass @@ -429,8 +429,8 @@ def buildhistory_list_installed(d, rootfs_type="image"): from oe.sdk import sdk_list_installed_packages from oe.utils import format_pkg_list - process_list = [('file', 'bh_installed_pkgs.txt'),\ - ('deps', 'bh_installed_pkgs_deps.txt')] + process_list = [('file', 'bh_installed_pkgs_%s.txt' % os.getpid()),\ + ('deps', 'bh_installed_pkgs_deps_%s.txt' % os.getpid())] if rootfs_type == "image": pkgs = image_list_installed_packages(d) @@ -460,9 +460,10 @@ buildhistory_get_installed() { # Get list of installed packages pkgcache="$1/installed-packages.tmp" - cat ${WORKDIR}/bh_installed_pkgs.txt | sort > $pkgcache && rm ${WORKDIR}/bh_installed_pkgs.txt + cat ${WORKDIR}/bh_installed_pkgs_${PID}.txt | sort > $pkgcache && rm ${WORKDIR}/bh_installed_pkgs_${PID}.txt cat $pkgcache | awk '{ print $1 }' > $1/installed-package-names.txt + if [ -s $pkgcache ] ; then cat $pkgcache | awk '{ print $2 }' | xargs -n1 basename > $1/installed-packages.txt else @@ -471,8 +472,8 @@ buildhistory_get_installed() { # Produce dependency graph # First, quote each name to handle characters that cause issues for dot - sed 's:\([^| ]*\):"\1":g' ${WORKDIR}/bh_installed_pkgs_deps.txt > $1/depends.tmp && - rm ${WORKDIR}/bh_installed_pkgs_deps.txt + sed 's:\([^| ]*\):"\1":g' ${WORKDIR}/bh_installed_pkgs_deps_${PID}.txt > $1/depends.tmp && + rm ${WORKDIR}/bh_installed_pkgs_deps_${PID}.txt # Remove lines with rpmlib(...) and config(...) dependencies, change the # delimiter from pipe to "->", set the style for recommend lines and # turn versioned dependencies into edge labels. diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass index 8243f7ce8..7c055e8a3 100644 --- a/poky/meta/classes/cmake.bbclass +++ b/poky/meta/classes/cmake.bbclass @@ -21,23 +21,6 @@ python() { d.setVarFlag("do_compile", "progress", r"outof:^\[(\d+)/(\d+)\]\s+") else: bb.fatal("Unknown CMake Generator %s" % generator) - - # C/C++ Compiler (without cpu arch/tune arguments) - if not d.getVar('OECMAKE_C_COMPILER'): - cc_list = d.getVar('CC').split() - if cc_list[0] == 'ccache': - d.setVar('OECMAKE_C_COMPILER_LAUNCHER', cc_list[0]) - d.setVar('OECMAKE_C_COMPILER', cc_list[1]) - else: - d.setVar('OECMAKE_C_COMPILER', cc_list[0]) - - if not d.getVar('OECMAKE_CXX_COMPILER'): - cxx_list = d.getVar('CXX').split() - if cxx_list[0] == 'ccache': - d.setVar('OECMAKE_CXX_COMPILER_LAUNCHER', cxx_list[0]) - d.setVar('OECMAKE_CXX_COMPILER', cxx_list[1]) - else: - d.setVar('OECMAKE_CXX_COMPILER', cxx_list[0]) } OECMAKE_AR ?= "${AR}" @@ -51,8 +34,23 @@ OECMAKE_CXX_LINK_FLAGS ?= "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} ${CXXFLAGS} ${LD CXXFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}" CFLAGS += "${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS}" -OECMAKE_C_COMPILER_LAUNCHER ?= "" -OECMAKE_CXX_COMPILER_LAUNCHER ?= "" +def oecmake_map_compiler(compiler, d): + args = d.getVar(compiler).split() + if args[0] == "ccache": + return args[1], args[0] + return args[0], "" + +# C/C++ Compiler (without cpu arch/tune arguments) +OECMAKE_C_COMPILER ?= "${@oecmake_map_compiler('CC', d)[0]}" +OECMAKE_C_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CC', d)[1]}" +OECMAKE_CXX_COMPILER ?= "${@oecmake_map_compiler('CXX', d)[0]}" +OECMAKE_CXX_COMPILER_LAUNCHER ?= "${@oecmake_map_compiler('CXX', d)[1]}" + +# clear compiler vars for allarch to avoid sig hash difference +OECMAKE_C_COMPILER_allarch = "" +OECMAKE_C_COMPILER_LAUNCHER_allarch = "" +OECMAKE_CXX_COMPILER_allarch = "" +OECMAKE_CXX_COMPILER_LAUNCHER_allarch = "" OECMAKE_RPATH ?= "" OECMAKE_PERLNATIVE_DIR ??= "" diff --git a/poky/meta/classes/cml1.bbclass b/poky/meta/classes/cml1.bbclass index 8ab240589..9b9866f4c 100644 --- a/poky/meta/classes/cml1.bbclass +++ b/poky/meta/classes/cml1.bbclass @@ -27,12 +27,16 @@ CROSS_CURSES_INC = '-DCURSES_LOC=""' TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo" KCONFIG_CONFIG_COMMAND ??= "menuconfig" +KCONFIG_CONFIG_ROOTDIR ??= "${B}" python do_menuconfig() { import shutil + config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config") + configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig") + try: - mtime = os.path.getmtime(".config") - shutil.copy(".config", ".config.orig") + mtime = os.path.getmtime(config) + shutil.copy(config, configorig) except OSError: mtime = 0 @@ -42,7 +46,7 @@ python do_menuconfig() { # FIXME this check can be removed when the minimum bitbake version has been bumped if hasattr(bb.build, 'write_taint'): try: - newmtime = os.path.getmtime(".config") + newmtime = os.path.getmtime(config) except OSError: newmtime = 0 @@ -52,7 +56,7 @@ python do_menuconfig() { } do_menuconfig[depends] += "ncurses-native:do_populate_sysroot" do_menuconfig[nostamp] = "1" -do_menuconfig[dirs] = "${B}" +do_menuconfig[dirs] = "${KCONFIG_CONFIG_ROOTDIR}" addtask menuconfig after do_configure python do_diffconfig() { @@ -61,8 +65,8 @@ python do_diffconfig() { workdir = d.getVar('WORKDIR') fragment = workdir + '/fragment.cfg' - configorig = '.config.orig' - config = '.config' + configorig = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config.orig") + config = os.path.join(d.getVar('KCONFIG_CONFIG_ROOTDIR'), ".config") try: md5newconfig = bb.utils.md5_file(configorig) @@ -85,5 +89,5 @@ python do_diffconfig() { } do_diffconfig[nostamp] = "1" -do_diffconfig[dirs] = "${B}" +do_diffconfig[dirs] = "${KCONFIG_CONFIG_ROOTDIR}" addtask diffconfig diff --git a/poky/meta/classes/gtk-icon-cache.bbclass b/poky/meta/classes/gtk-icon-cache.bbclass index dd394af27..340a28385 100644 --- a/poky/meta/classes/gtk-icon-cache.bbclass +++ b/poky/meta/classes/gtk-icon-cache.bbclass @@ -1,5 +1,10 @@ FILES_${PN} += "${datadir}/icons/hicolor" +#gtk+3 reqiure GTK3DISTROFEATURES, DEPENDS on it make all the +#recipes inherit this class require GTK3DISTROFEATURES +inherit features_check +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} \ ${@['gdk-pixbuf', '']['${BPN}' == 'gdk-pixbuf']} \ ${@['gtk+3', '']['${BPN}' == 'gtk+3']} \ diff --git a/poky/meta/classes/kernel-devicetree.bbclass b/poky/meta/classes/kernel-devicetree.bbclass index 522c46575..81dda8003 100644 --- a/poky/meta/classes/kernel-devicetree.bbclass +++ b/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 } diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass index 72b05ff8d..fa4ea6fee 100644 --- a/poky/meta/classes/kernel-fitimage.bbclass +++ b/poky/meta/classes/kernel-fitimage.bbclass @@ -257,12 +257,21 @@ fitimage_emit_section_config() { # Test if we have any DTBs at all sep="" conf_desc="" + conf_node="conf@" kernel_line="" fdt_line="" ramdisk_line="" setup_line="" default_line="" + # conf node name is selected based on dtb ID if it is present, + # otherwise its selected based on kernel ID + if [ -n "${3}" ]; then + conf_node=$conf_node${3} + else + conf_node=$conf_node${2} + fi + if [ -n "${2}" ]; then conf_desc="Linux kernel" sep=", " @@ -287,12 +296,18 @@ fitimage_emit_section_config() { fi if [ "${6}" = "1" ]; then - default_line="default = \"conf@${3}\";" + # default node is selected based on dtb ID if it is present, + # otherwise its selected based on kernel ID + if [ -n "${3}" ]; then + default_line="default = \"conf@${3}\";" + else + default_line="default = \"conf@${2}\";" + fi fi cat << EOF >> ${1} ${default_line} - conf@${3} { + $conf_node { description = "${6} ${conf_desc}"; ${kernel_line} ${fdt_line} @@ -434,6 +449,13 @@ fitimage_assemble() { # fitimage_emit_section_maint ${1} confstart + # kernel-fitimage.bbclass currently only supports a single kernel (no less or + # more) to be added to the FIT image along with 0 or more device trees and + # 0 or 1 ramdisk. + # If a device tree is to be part of the FIT image, then select + # the default configuration to be used is based on the dtbcount. If there is + # no dtb present than select the default configuation to be based on + # the kernelcount. if [ -n "${DTBS}" ]; then i=1 for DTB in ${DTBS}; do @@ -445,6 +467,9 @@ fitimage_assemble() { fi i=`expr ${i} + 1` done + else + defaultconfigcount=1 + fitimage_emit_section_config ${1} "${kernelcount}" "" "${ramdiskcount}" "${setupcount}" "${defaultconfigcount}" fi fitimage_emit_section_maint ${1} sectend diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index 3311f6e84..96ea61225 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -87,6 +87,13 @@ def get_machine_branch(d, default): do_kernel_metadata() { set +e + + if [ -n "$1" ]; then + mode="$1" + else + mode="patch" + fi + cd ${S} export KMETA=${KMETA} @@ -120,14 +127,13 @@ do_kernel_metadata() { if [ -n "${KBUILD_DEFCONFIG}" ]; then if [ -f "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" ]; then if [ -f "${WORKDIR}/defconfig" ]; then - # If the two defconfig's are different, warn that we didn't overwrite the - # one already placed in WORKDIR by the fetcher. + # If the two defconfig's are different, warn that we overwrote the + # one already placed in WORKDIR cmp "${WORKDIR}/defconfig" "${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}" if [ $? -ne 0 ]; then - bbwarn "defconfig detected in WORKDIR. ${KBUILD_DEFCONFIG} skipped" - else - cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig + bbdebug 1 "detected SRC_URI or unpatched defconfig in WORKDIR. ${KBUILD_DEFCONFIG} copied over it" fi + cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig else cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig fi @@ -137,17 +143,19 @@ do_kernel_metadata() { fi fi - # was anyone trying to patch the kernel meta data ?, we need to do - # this here, since the scc commands migrate the .cfg fragments to the - # kernel source tree, where they'll be used later. - check_git_config - patches="${@" ".join(find_patches(d,'kernel-meta'))}" - for p in $patches; do - ( - cd ${WORKDIR}/kernel-meta - git am -s $p - ) - done + if [ "$mode" = "patch" ]; then + # was anyone trying to patch the kernel meta data ?, we need to do + # this here, since the scc commands migrate the .cfg fragments to the + # kernel source tree, where they'll be used later. + check_git_config + patches="${@" ".join(find_patches(d,'kernel-meta'))}" + for p in $patches; do + ( + cd ${WORKDIR}/kernel-meta + git am -s $p + ) + done + fi sccs_from_src_uri="${@" ".join(find_sccs(d))}" patches="${@" ".join(find_patches(d,''))}" @@ -212,13 +220,40 @@ do_kernel_metadata() { fi meta_dir=$(kgit --meta) - # run1: pull all the configuration fragments, no matter where they come from - elements="`echo -n ${bsp_definition} $sccs_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} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} - if [ $? -ne 0 ]; then - bbfatal_log "Could not generate configuration queue for ${KMACHINE}." + KERNEL_FEATURES_FINAL="" + if [ -n "${KERNEL_FEATURES}" ]; then + for feature in ${KERNEL_FEATURES}; do + feature_found=f + for d in $includes; do + path_to_check=$(echo $d | sed 's/-I//g') + if [ "$feature_found" = "f" ] && [ -e "$path_to_check/$feature" ]; then + feature_found=t + fi + done + if [ "$feature_found" = "f" ]; then + if [ -n "${KERNEL_DANGLING_FEATURES_WARN_ONLY}" ]; then + bbwarn "Feature '$feature' not found, but KERNEL_DANGLING_FEATURES_WARN_ONLY is set" + bbwarn "This may cause runtime issues, dropping feature and allowing configuration to continue" + else + bberror "Feature '$feature' not found, this will cause configuration failures." + bberror "Check the SRC_URI for meta-data repositories or directories that may be missing" + bbfatal_log "Set KERNEL_DANGLING_FEATURES_WARN_ONLY to ignore this issue" + fi + else + KERNEL_FEATURES_FINAL="$KERNEL_FEATURES_FINAL $feature" + fi + done + fi + + if [ "$mode" = "config" ]; then + # run1: pull all the configuration fragments, no matter where they come from + elements="`echo -n ${bsp_definition} $sccs_defconfig ${sccs} ${patches} $KERNEL_FEATURES_FINAL`" + if [ -n "${elements}" ]; then + echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition + scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches $KERNEL_FEATURES_FINAL + if [ $? -ne 0 ]; then + bbfatal_log "Could not generate configuration queue for ${KMACHINE}." + fi fi fi @@ -229,12 +264,14 @@ do_kernel_metadata() { sccs="${bsp_definition} ${sccs}" fi - # run2: only generate patches for elements that have been passed on the SRC_URI - elements="`echo -n ${sccs} ${patches} ${KERNEL_FEATURES}`" - if [ -n "${elements}" ]; then - scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES} - if [ $? -ne 0 ]; then - bbfatal_log "Could not generate configuration queue for ${KMACHINE}." + if [ "$mode" = "patch" ]; then + # run2: only generate patches for elements that have been passed on the SRC_URI + elements="`echo -n ${sccs} ${patches} $KERNEL_FEATURES_FINAL`" + if [ -n "${elements}" ]; then + scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} $KERNEL_FEATURES_FINAL + if [ $? -ne 0 ]; then + bbfatal_log "Could not generate configuration queue for ${KMACHINE}." + fi fi fi } @@ -338,6 +375,8 @@ do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_po do_kernel_configme[depends] += "kern-tools-native:do_populate_sysroot" do_kernel_configme[dirs] += "${S} ${B}" do_kernel_configme() { + do_kernel_metadata config + # translate the kconfig_mode into something that merge_config.sh # understands case ${KCONFIG_MODE} in @@ -380,6 +419,67 @@ do_kernel_configme() { } addtask kernel_configme before do_configure after do_patch +addtask config_analysis + +do_config_analysis[depends] = "virtual/kernel:do_configure" +do_config_analysis[depends] += "kern-tools-native:do_populate_sysroot" + +CONFIG_AUDIT_FILE ?= "${WORKDIR}/config-audit.txt" +CONFIG_ANALYSIS_FILE ?= "${WORKDIR}/config-analysis.txt" + +python do_config_analysis() { + import re, string, sys, subprocess + + s = d.getVar('S') + + env = os.environ.copy() + env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/") + env['LD'] = d.getVar('KERNEL_LD') + env['CC'] = d.getVar('KERNEL_CC') + env['ARCH'] = d.getVar('ARCH') + env['srctree'] = s + + # read specific symbols from the kernel recipe or from local.conf + # i.e.: CONFIG_ANALYSIS_pn-linux-yocto-dev = 'NF_CONNTRACK LOCALVERSION' + config = d.getVar( 'CONFIG_ANALYSIS' ) + if not config: + config = [ "" ] + else: + config = config.split() + + for c in config: + for action in ["analysis","audit"]: + if action == "analysis": + try: + analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--blame', c], cwd=s, env=env ).decode('utf-8') + except subprocess.CalledProcessError as e: + bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8')) + + outfile = d.getVar( 'CONFIG_ANALYSIS_FILE' ) + + if action == "audit": + try: + analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--summary', '--extended', '--sanity', c], cwd=s, env=env ).decode('utf-8') + except subprocess.CalledProcessError as e: + bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8')) + + outfile = d.getVar( 'CONFIG_AUDIT_FILE' ) + + if c: + outdir = os.path.dirname( outfile ) + outname = os.path.basename( outfile ) + outfile = outdir + '/'+ c + '-' + outname + + if config and os.path.isfile(outfile): + os.remove(outfile) + + with open(outfile, 'w+') as f: + f.write( analysis ) + + bb.warn( "Configuration {} executed, see: {} for details".format(action,outfile )) + if c: + bb.warn( analysis ) +} python do_kernel_configcheck() { import re, string, sys, subprocess @@ -389,57 +489,89 @@ python do_kernel_configcheck() { # meta-series for processing kmeta = d.getVar("KMETA") or "meta" if not os.path.exists(kmeta): - kmeta = "." + kmeta + kmeta = subprocess.check_output(['kgit', '--meta'], cwd=d.getVar('S')).decode('utf-8').rstrip() s = d.getVar('S') env = os.environ.copy() env['PATH'] = "%s:%s%s" % (d.getVar('PATH'), s, "/scripts/util/") - env['LD'] = "${KERNEL_LD}" + env['LD'] = d.getVar('KERNEL_LD') + env['CC'] = d.getVar('KERNEL_CC') + env['ARCH'] = d.getVar('ARCH') + env['srctree'] = s try: configs = subprocess.check_output(['scc', '--configs', '-o', s + '/.kernel-meta'], env=env).decode('utf-8') except subprocess.CalledProcessError as e: bb.fatal( "Cannot gather config fragments for audit: %s" % e.output.decode("utf-8") ) - try: - subprocess.check_call(['kconf_check', '--report', '-o', - '%s/%s/cfg' % (s, kmeta), d.getVar('B') + '/.config', s, configs], cwd=s, env=env) - except subprocess.CalledProcessError: - # The configuration gathering can return different exit codes, but - # we interpret them based on the KCONF_AUDIT_LEVEL variable, so we catch - # everything here, and let the run continue. - pass - config_check_visibility = int(d.getVar("KCONF_AUDIT_LEVEL") or 0) bsp_check_visibility = int(d.getVar("KCONF_BSP_AUDIT_LEVEL") or 0) - # if config check visibility is non-zero, report dropped configuration values - mismatch_file = d.expand("${S}/%s/cfg/mismatch.txt" % kmeta) - if os.path.exists(mismatch_file): - if config_check_visibility: - with open (mismatch_file, "r") as myfile: + # if config check visibility is "1", that's the lowest level of audit. So + # we add the --classify option to the run, since classification will + # streamline the output to only report options that could be boot issues, + # or are otherwise required for proper operation. + extra_params = "" + if config_check_visibility == 1: + extra_params = "--classify" + + # category #1: mismatches + try: + analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--mismatches', extra_params], cwd=s, env=env ).decode('utf-8') + except subprocess.CalledProcessError as e: + bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8')) + + if analysis: + outfile = "{}/{}/cfg/mismatch.txt".format( s, kmeta ) + if os.path.isfile(outfile): + os.remove(outfile) + with open(outfile, 'w+') as f: + f.write( analysis ) + + if config_check_visibility and os.stat(outfile).st_size > 0: + with open (outfile, "r") as myfile: results = myfile.read() bb.warn( "[kernel config]: specified values did not make it into the kernel's final configuration:\n\n%s" % results) - if bsp_check_visibility: - invalid_file = d.expand("${S}/%s/cfg/invalid.cfg" % kmeta) - if os.path.exists(invalid_file) and os.stat(invalid_file).st_size > 0: - with open (invalid_file, "r") as myfile: - results = myfile.read() - bb.warn( "[kernel config]: This BSP sets config options that are not offered anywhere within this kernel:\n\n%s" % results) - errors_file = d.expand("${S}/%s/cfg/fragment_errors.txt" % kmeta) - if os.path.exists(errors_file) and os.stat(errors_file).st_size > 0: - with open (errors_file, "r") as myfile: + # category #2: invalid fragment elements + extra_params = "" + if bsp_check_visibility > 1: + extra_params = "--strict" + try: + analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--invalid', extra_params], cwd=s, env=env ).decode('utf-8') + except subprocess.CalledProcessError as e: + bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8')) + + if analysis: + outfile = "{}/{}/cfg/invalid.txt".format(s,kmeta) + if os.path.isfile(outfile): + os.remove(outfile) + with open(outfile, 'w+') as f: + f.write( analysis ) + + if bsp_check_visibility and os.stat(outfile).st_size > 0: + with open (outfile, "r") as myfile: results = myfile.read() - bb.warn( "[kernel config]: This BSP contains fragments with errors:\n\n%s" % results) - - # if the audit level is greater than two, we report if a fragment has overriden - # a value from a base fragment. This is really only used for new kernel introduction - if bsp_check_visibility > 2: - redefinition_file = d.expand("${S}/%s/cfg/redefinition.txt" % kmeta) - if os.path.exists(redefinition_file) and os.stat(redefinition_file).st_size > 0: - with open (redefinition_file, "r") as myfile: + bb.warn( "[kernel config]: This BSP contains fragments with warnings:\n\n%s" % results) + + # category #3: redefined options (this is pretty verbose and is debug only) + try: + analysis = subprocess.check_output(['symbol_why.py', '--dotconfig', '{}'.format( d.getVar('B') + '/.config' ), '--sanity'], cwd=s, env=env ).decode('utf-8') + except subprocess.CalledProcessError as e: + bb.fatal( "config analysis failed: %s" % e.output.decode('utf-8')) + + if analysis: + outfile = "{}/{}/cfg/redefinition.txt".format(s,kmeta) + if os.path.isfile(outfile): + os.remove(outfile) + with open(outfile, 'w+') as f: + f.write( analysis ) + + # if the audit level is greater than two, we report if a fragment has overriden + # a value from a base fragment. This is really only used for new kernel introduction + if bsp_check_visibility > 2 and os.stat(outfile).st_size > 0: + with open (outfile, "r") as myfile: results = myfile.read() bb.warn( "[kernel config]: This BSP has configuration options defined in more than one config, with differing values:\n\n%s" % results) } diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass index cf43a5d60..e2ceb6a33 100644 --- a/poky/meta/classes/kernel.bbclass +++ b/poky/meta/classes/kernel.bbclass @@ -212,6 +212,8 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" KERNEL_EXTRA_ARGS ?= "" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" +EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}"" + KERNEL_ALT_IMAGETYPE ??= "" copy_initramfs() { diff --git a/poky/meta/classes/meson.bbclass b/poky/meta/classes/meson.bbclass index ff52d20e5..83aa854b7 100644 --- a/poky/meta/classes/meson.bbclass +++ b/poky/meta/classes/meson.bbclass @@ -98,6 +98,7 @@ strip = ${@meson_array('STRIP', d)} readelf = ${@meson_array('READELF', d)} pkgconfig = 'pkg-config' llvm-config = 'llvm-config${LLVMVERSION}' +cups-config = 'cups-config' [properties] needs_exe_wrapper = true diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass index f8dc1bb46..7a36262eb 100644 --- a/poky/meta/classes/package.bbclass +++ b/poky/meta/classes/package.bbclass @@ -1936,7 +1936,7 @@ python package_do_shlibs() { shlibs_file = os.path.join(shlibswork_dir, pkg + ".list") if len(sonames): with open(shlibs_file, 'w') as fd: - for s in sonames: + for s in sorted(sonames): if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]: (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]] if old_pkg != pkg: diff --git a/poky/meta/classes/packagefeed-stability.bbclass b/poky/meta/classes/packagefeed-stability.bbclass deleted file mode 100644 index 564860256..000000000 --- a/poky/meta/classes/packagefeed-stability.bbclass +++ /dev/null @@ -1,252 +0,0 @@ -# Class to avoid copying packages into the feed if they haven't materially changed -# -# Copyright (C) 2015 Intel Corporation -# Released under the MIT license (see COPYING.MIT for details) -# -# This class effectively intercepts packages as they are written out by -# do_package_write_*, causing them to be written into a different -# directory where we can compare them to whatever older packages might -# be in the "real" package feed directory, and avoid copying the new -# package to the feed if it has not materially changed. The idea is to -# avoid unnecessary churn in the packages when dependencies trigger task -# reexecution (and thus repackaging). Enabling the class is simple: -# -# INHERIT += "packagefeed-stability" -# -# Caveats: -# 1) Latest PR values in the build system may not match those in packages -# seen on the target (naturally) -# 2) If you rebuild from sstate without the existing package feed present, -# you will lose the "state" of the package feed i.e. the preserved old -# package versions. Not the end of the world, but would negate the -# entire purpose of this class. -# -# Note that running -c cleanall on a recipe will purposely delete the old -# package files so they will definitely be copied the next time. - -python() { - if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d): - return - # Package backend agnostic intercept - # This assumes that the package_write task is called package_write_ - # and that the directory in which packages should be written is - # pointed to by the variable DEPLOY_DIR_ - for pkgclass in (d.getVar('PACKAGE_CLASSES') or '').split(): - if pkgclass.startswith('package_'): - pkgtype = pkgclass.split('_', 1)[1] - pkgwritefunc = 'do_package_write_%s' % pkgtype - sstate_outputdirs = d.getVarFlag(pkgwritefunc, 'sstate-outputdirs', False) - deploydirvar = 'DEPLOY_DIR_%s' % pkgtype.upper() - deploydirvarref = '${' + deploydirvar + '}' - pkgcomparefunc = 'do_package_compare_%s' % pkgtype - - if bb.data.inherits_class('image', d): - d.appendVarFlag('do_rootfs', 'recrdeptask', ' ' + pkgcomparefunc) - - if bb.data.inherits_class('populate_sdk_base', d): - d.appendVarFlag('do_populate_sdk', 'recrdeptask', ' ' + pkgcomparefunc) - - if bb.data.inherits_class('populate_sdk_ext', d): - d.appendVarFlag('do_populate_sdk_ext', 'recrdeptask', ' ' + pkgcomparefunc) - - d.appendVarFlag('do_build', 'recrdeptask', ' ' + pkgcomparefunc) - - if d.getVarFlag(pkgwritefunc, 'noexec') or not d.getVarFlag(pkgwritefunc, 'task'): - # Packaging is disabled for this recipe, we shouldn't do anything - continue - - if deploydirvarref in sstate_outputdirs: - deplor_dir_pkgtype = d.expand(deploydirvarref + '-prediff') - # Set intermediate output directory - d.setVarFlag(pkgwritefunc, 'sstate-outputdirs', sstate_outputdirs.replace(deploydirvarref, deplor_dir_pkgtype)) - # Update SSTATE_DUPWHITELIST to avoid shared location conflicted error - d.appendVar('SSTATE_DUPWHITELIST', ' %s' % deplor_dir_pkgtype) - - d.setVar(pkgcomparefunc, d.getVar('do_package_compare', False)) - d.setVarFlags(pkgcomparefunc, d.getVarFlags('do_package_compare', False)) - d.appendVarFlag(pkgcomparefunc, 'depends', ' build-compare-native:do_populate_sysroot') - bb.build.addtask(pkgcomparefunc, 'do_build', 'do_packagedata ' + pkgwritefunc, d) -} - -# This isn't the real task function - it's a template that we use in the -# anonymous python code above -fakeroot python do_package_compare () { - currenttask = d.getVar('BB_CURRENTTASK') - pkgtype = currenttask.rsplit('_', 1)[1] - package_compare_impl(pkgtype, d) -} - -def package_compare_impl(pkgtype, d): - import errno - import fnmatch - import glob - import subprocess - import oe.sstatesig - - pn = d.getVar('PN') - deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper()) - prepath = deploydir + '-prediff/' - - # Find out PKGR values are - pkgdatadir = d.getVar('PKGDATA_DIR') - packages = [] - try: - with open(os.path.join(pkgdatadir, pn), 'r') as f: - for line in f: - if line.startswith('PACKAGES:'): - packages = line.split(':', 1)[1].split() - break - except IOError as e: - if e.errno == errno.ENOENT: - pass - - if not packages: - bb.debug(2, '%s: no packages, nothing to do' % pn) - return - - pkgrvalues = {} - rpkgnames = {} - rdepends = {} - pkgvvalues = {} - for pkg in packages: - with open(os.path.join(pkgdatadir, 'runtime', pkg), 'r') as f: - for line in f: - if line.startswith('PKGR:'): - pkgrvalues[pkg] = line.split(':', 1)[1].strip() - if line.startswith('PKGV:'): - pkgvvalues[pkg] = line.split(':', 1)[1].strip() - elif line.startswith('PKG_%s:' % pkg): - rpkgnames[pkg] = line.split(':', 1)[1].strip() - elif line.startswith('RDEPENDS_%s:' % pkg): - rdepends[pkg] = line.split(':', 1)[1].strip() - - # Prepare a list of the runtime package names for packages that were - # actually produced - rpkglist = [] - for pkg, rpkg in rpkgnames.items(): - if os.path.exists(os.path.join(pkgdatadir, 'runtime', pkg + '.packaged')): - rpkglist.append((rpkg, pkg)) - rpkglist.sort(key=lambda x: len(x[0]), reverse=True) - - pvu = d.getVar('PV', False) - if '$' + '{SRCPV}' in pvu: - pvprefix = pvu.split('$' + '{SRCPV}', 1)[0] - else: - pvprefix = None - - pkgwritetask = 'package_write_%s' % pkgtype - files = [] - docopy = False - manifest, _ = oe.sstatesig.sstate_get_manifest_filename(pkgwritetask, d) - mlprefix = d.getVar('MLPREFIX') - # Copy recipe's all packages if one of the packages are different to make - # they have the same PR. - with open(manifest, 'r') as f: - for line in f: - if line.startswith(prepath): - srcpath = line.rstrip() - if os.path.isfile(srcpath): - destpath = os.path.join(deploydir, os.path.relpath(srcpath, prepath)) - - # This is crude but should work assuming the output - # package file name starts with the package name - # and rpkglist is sorted by length (descending) - pkgbasename = os.path.basename(destpath) - pkgname = None - for rpkg, pkg in rpkglist: - if mlprefix and pkgtype == 'rpm' and rpkg.startswith(mlprefix): - rpkg = rpkg[len(mlprefix):] - if pkgbasename.startswith(rpkg): - pkgr = pkgrvalues[pkg] - destpathspec = destpath.replace(pkgr, '*') - if pvprefix: - pkgv = pkgvvalues[pkg] - if pkgv.startswith(pvprefix): - pkgvsuffix = pkgv[len(pvprefix):] - if '+' in pkgvsuffix: - newpkgv = pvprefix + '*+' + pkgvsuffix.split('+', 1)[1] - destpathspec = destpathspec.replace(pkgv, newpkgv) - pkgname = pkg - break - else: - bb.warn('Unable to map %s back to package' % pkgbasename) - destpathspec = destpath - - oldfile = None - if not docopy: - oldfiles = glob.glob(destpathspec) - if oldfiles: - oldfile = oldfiles[-1] - result = subprocess.call(['pkg-diff.sh', oldfile, srcpath]) - if result != 0: - docopy = True - bb.note("%s and %s are different, will copy packages" % (oldfile, srcpath)) - else: - docopy = True - bb.note("No old packages found for %s, will copy packages" % pkgname) - - files.append((pkgname, pkgbasename, srcpath, destpath)) - - # Remove all the old files and copy again if docopy - if docopy: - bb.note('Copying packages for recipe %s' % pn) - pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}')) - try: - with open(pcmanifest, 'r') as f: - for line in f: - fn = line.rstrip() - if fn: - try: - os.remove(fn) - bb.note('Removed old package %s' % fn) - except OSError as e: - if e.errno == errno.ENOENT: - pass - except IOError as e: - if e.errno == errno.ENOENT: - pass - - # Create new manifest - with open(pcmanifest, 'w') as f: - for pkgname, pkgbasename, srcpath, destpath in files: - destdir = os.path.dirname(destpath) - bb.utils.mkdirhier(destdir) - # Remove allarch rpm pkg if it is already existed (for - # multilib), they're identical in theory, but sstate.bbclass - # copies it again, so keep align with that. - if os.path.exists(destpath) and pkgtype == 'rpm' \ - and d.getVar('PACKAGE_ARCH') == 'all': - os.unlink(destpath) - if (os.stat(srcpath).st_dev == os.stat(destdir).st_dev): - # Use a hard link to save space - os.link(srcpath, destpath) - else: - shutil.copyfile(srcpath, destpath) - f.write('%s\n' % destpath) - else: - bb.note('Not copying packages for recipe %s' % pn) - -do_cleansstate[postfuncs] += "pfs_cleanpkgs" -python pfs_cleanpkgs () { - import errno - for pkgclass in (d.getVar('PACKAGE_CLASSES') or '').split(): - if pkgclass.startswith('package_'): - pkgtype = pkgclass.split('_', 1)[1] - deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper()) - prepath = deploydir + '-prediff' - pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}')) - try: - with open(pcmanifest, 'r') as f: - for line in f: - fn = line.rstrip() - if fn: - try: - os.remove(fn) - except OSError as e: - if e.errno == errno.ENOENT: - pass - os.remove(pcmanifest) - except IOError as e: - if e.errno == errno.ENOENT: - pass -} diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index fd0da16e7..44d99cfb9 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -653,7 +653,10 @@ sdk_ext_postinst() { # Make sure when the user sets up the environment, they also get # the buildtools-tarball tools in their path. + echo "# Save and reset OECORE_NATIVE_SYSROOT as buildtools may change it" >> $env_setup_script + echo "SAVED=\"\$OECORE_NATIVE_SYSROOT\"" >> $env_setup_script echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script + echo "OECORE_NATIVE_SYSROOT=\"\$SAVED\"" >> $env_setup_script fi # Allow bitbake environment setup to be ran as part of this sdk. diff --git a/poky/meta/classes/rootfs-postcommands.bbclass b/poky/meta/classes/rootfs-postcommands.bbclass index c43b9a982..984730ebe 100644 --- a/poky/meta/classes/rootfs-postcommands.bbclass +++ b/poky/meta/classes/rootfs-postcommands.bbclass @@ -1,6 +1,6 @@ # Zap the root password if debug-tweaks feature is not enabled -ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password ; ",d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'empty-root-password' ], "", "zap_empty_root_password; ",d)}' # Allow dropbear/openssh to accept logins from accounts with an empty password string if debug-tweaks or allow-empty-password is enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'allow-empty-password' ], "ssh_allow_empty_password; ", "",d)}' @@ -12,7 +12,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'deb ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains_any("IMAGE_FEATURES", [ 'debug-tweaks', 'post-install-logging' ], "postinst_enable_logging; ", "",d)}' # Create /etc/timestamp during image construction to give a reasonably sane default time setting -ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp ; " +ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp; " # Tweak the mount options for rootfs in /etc/fstab if read-only-rootfs is enabled ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", "read_only_rootfs_hook; ", "",d)}' @@ -26,7 +26,7 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only APPEND_append = '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro", "", d)}' # Generates test data file with data store variables expanded in json format -ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data ; " +ROOTFS_POSTPROCESS_COMMAND += "write_image_test_data; " # Write manifest IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.manifest" diff --git a/poky/meta/classes/rootfsdebugfiles.bbclass b/poky/meta/classes/rootfsdebugfiles.bbclass index e2ba4e364..85c7ec743 100644 --- a/poky/meta/classes/rootfsdebugfiles.bbclass +++ b/poky/meta/classes/rootfsdebugfiles.bbclass @@ -28,7 +28,7 @@ ROOTFS_DEBUG_FILES ?= "" ROOTFS_DEBUG_FILES[doc] = "Lists additional files or directories to be installed with 'cp -a' in the format 'source1 target1;source2 target2;...'" -ROOTFS_POSTPROCESS_COMMAND += "rootfs_debug_files ;" +ROOTFS_POSTPROCESS_COMMAND += "rootfs_debug_files;" rootfs_debug_files () { #!/bin/sh -e echo "${ROOTFS_DEBUG_FILES}" | sed -e 's/;/\n/g' | while read source target mode; do diff --git a/poky/meta/classes/uninative.bbclass b/poky/meta/classes/uninative.bbclass index 70799bbf6..316c0f061 100644 --- a/poky/meta/classes/uninative.bbclass +++ b/poky/meta/classes/uninative.bbclass @@ -56,12 +56,17 @@ python uninative_event_fetchloader() { # Our games with path manipulation of DL_DIR mean standard PREMIRRORS don't work # and we can't easily put 'chksum' into the url path from a url parameter with # the current fetcher url handling - ownmirror = d.getVar('SOURCE_MIRROR_URL') - if ownmirror: - localdata.appendVar("PREMIRRORS", " ${UNINATIVE_URL}${UNINATIVE_TARBALL} ${SOURCE_MIRROR_URL}/uninative/%s/${UNINATIVE_TARBALL}" % chksum) + premirrors = bb.fetch2.mirror_from_string(localdata.getVar("PREMIRRORS")) + for line in premirrors: + try: + (find, replace) = line + except ValueError: + continue + if find.startswith("http"): + localdata.appendVar("PREMIRRORS", " ${UNINATIVE_URL}${UNINATIVE_TARBALL} %s/uninative/%s/${UNINATIVE_TARBALL}" % (replace, chksum)) srcuri = d.expand("${UNINATIVE_URL}${UNINATIVE_TARBALL};sha256sum=%s" % chksum) - bb.note("Fetching uninative binary shim from %s" % srcuri) + bb.note("Fetching uninative binary shim %s (will check PREMIRRORS first)" % srcuri) fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False) fetcher.download() diff --git a/poky/meta/conf/distro/include/distro_alias.inc b/poky/meta/conf/distro/include/distro_alias.inc index 2f9e1b113..56055f779 100644 --- a/poky/meta/conf/distro/include/distro_alias.inc +++ b/poky/meta/conf/distro/include/distro_alias.inc @@ -22,7 +22,6 @@ DISTRO_PN_ALIAS_pn-bluez5 = "Fedora=bluez Opensuse=bluez" DISTRO_PN_ALIAS_pn-bootchart2 = "Fedora=bootchart2 Opensuse=bootchart" DISTRO_PN_ALIAS_pn-btrfs-tools = "Debian=btrfs-tools Fedora=btrfs-progs" DISTRO_PN_ALIAS_pn-build-appliance-image = "OSPDT" -DISTRO_PN_ALIAS_pn-build-compare = "Opensuse=build-compare Fedora=build-compare" DISTRO_PN_ALIAS_pn-builder = "OE-Core" DISTRO_PN_ALIAS_pn-buildtools-tarball = "OE-Core" DISTRO_PN_ALIAS_pn-cdrtools = "OpenSUSE=cdrtools OSPDT" diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc index e8d42db12..c3a1f2733 100644 --- a/poky/meta/conf/distro/include/maintainers.inc +++ b/poky/meta/conf/distro/include/maintainers.inc @@ -80,7 +80,6 @@ RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj " RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin " RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie " -RECIPE_MAINTAINER_pn-build-compare = "Paul Eggleton " RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie " RECIPE_MAINTAINER_pn-builder = "Richard Purdie " RECIPE_MAINTAINER_pn-buildtools-extended-tarball = "Richard Purdie " @@ -135,14 +134,14 @@ RECIPE_MAINTAINER_pn-cups = "Chen Qi " RECIPE_MAINTAINER_pn-curl = "Armin Kuster " RECIPE_MAINTAINER_pn-cve-update-db-native = "Ross Burton " RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton " -RECIPE_MAINTAINER_pn-db = "Mark Hatle " +RECIPE_MAINTAINER_pn-db = "Unassigned " 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-depmodwrapper-cross = "Unassigned " RECIPE_MAINTAINER_pn-desktop-file-utils = "Alexander Kanavin " RECIPE_MAINTAINER_pn-dhcp = "Hongxu Jia " RECIPE_MAINTAINER_pn-diffoscope = "Joshua Watt " @@ -192,7 +191,7 @@ RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj kbd \ connman->xl2tpd \ lttng-tools->lttng-modules \ + adwaita-icon-theme->gdk-pixbuf \ + adwaita-icon-theme->gtk+3 \ " # Avoid adding bison-native to the sysroot without a specific diff --git a/poky/meta/conf/machine/include/arm/arch-armv6m.inc b/poky/meta/conf/machine/include/arm/arch-armv6m.inc new file mode 100755 index 000000000..68768106c --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv6m.inc @@ -0,0 +1,19 @@ +# Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual +# at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf +DEFAULTTUNE ?= "armv6m" + +TUNEVALID[armv6m] = "Enable instructions for ARMv6-m" +TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a" + +# Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture". +# SVC is a valid instruction. +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '' ,d)}" + +require conf/machine/include/arm/arch-armv5.inc + +# Little Endian +AVAILTUNES += "armv6m" +ARMPKGARCH_tune-armv6m = "armv6m" +TUNE_FEATURES_tune-armv6m = "armv6m" +PACKAGE_EXTRA_ARCHS_tune-armv6m = "armv6m" diff --git a/poky/meta/conf/machine/include/arm/arch-armv8-2a.inc b/poky/meta/conf/machine/include/arm/arch-armv8-2a.inc new file mode 100644 index 000000000..1c095256d --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv8-2a.inc @@ -0,0 +1,19 @@ +DEFAULTTUNE ?= "armv8-2a" + +TUNEVALID[armv8-2a] = "Enable instructions for ARMv8-a" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', ' -march=armv8.2-a', '', d)}" +# TUNE crypto will be handled by arch-armv8a.inc below +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8-2a', 'armv8-2a:', '' ,d)}" + +require conf/machine/include/arm/arch-armv8a.inc + +# Little Endian base configs +AVAILTUNES += "armv8-2a armv8-2a-crypto" +ARMPKGARCH_tune-armv8-2a ?= "armv8-2a" +ARMPKGARCH_tune-armv8-2a-crypto ?= "armv8-2a" +TUNE_FEATURES_tune-armv8-2a = "aarch64 armv8-2a" +TUNE_FEATURES_tune-armv8-2a-crypto = "${TUNE_FEATURES_tune-armv8-2a} crypto" +PACKAGE_EXTRA_ARCHS_tune-armv8-2a = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a" +PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto" +BASE_LIB_tune-armv8-2a = "lib64" +BASE_LIB_tune-armv8-2a-crypto = "lib64" diff --git a/poky/meta/conf/machine/include/tune-cortex-m0plus.inc b/poky/meta/conf/machine/include/tune-cortex-m0plus.inc new file mode 100755 index 000000000..1c7512b06 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortex-m0plus.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "cortexm0-plus" +require conf/machine/include/arm/arch-armv6m.inc + +TUNEVALID[cortexm0-plus] = "Enable Cortex-M0 Plus specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexm0-plus', ' -mcpu=cortex-m0plus', '', d)}" +AVAILTUNES += "cortexm0-plus" + +ARMPKGARCH_tune-cortexm0-plus = "cortexm0-plus" +TUNE_FEATURES_tune-cortexm0-plus = "${TUNE_FEATURES_tune-armv6m} cortexm0-plus" + +PACKAGE_EXTRA_ARCHS_tune-cortexm0-plus = "${PACKAGE_EXTRA_ARCHS_tune-armv6m} cortexm0-plus" diff --git a/poky/meta/conf/machine/include/tune-cortexa55.inc b/poky/meta/conf/machine/include/tune-cortexa55.inc index 89032b59e..b383eb733 100644 --- a/poky/meta/conf/machine/include/tune-cortexa55.inc +++ b/poky/meta/conf/machine/include/tune-cortexa55.inc @@ -3,7 +3,7 @@ DEFAULTTUNE ?= "cortexa55" TUNEVALID[cortexa55] = "Enable Cortex-A55 specific processor optimizations" TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa55', ' -mcpu=cortex-a55', '', d)}" -require conf/machine/include/arm/arch-armv8a.inc +require conf/machine/include/arm/arch-armv8-2a.inc # Little Endian base configs AVAILTUNES += "cortexa55" diff --git a/poky/meta/conf/machine/qemuarm.conf b/poky/meta/conf/machine/qemuarm.conf index 44e73a307..3364dcf04 100644 --- a/poky/meta/conf/machine/qemuarm.conf +++ b/poky/meta/conf/machine/qemuarm.conf @@ -7,6 +7,8 @@ require conf/machine/include/qemu.inc KERNEL_IMAGETYPE = "zImage" +UBOOT_MACHINE ?= "qemu_arm_defconfig" + SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" diff --git a/poky/meta/conf/machine/qemuarm64.conf b/poky/meta/conf/machine/qemuarm64.conf index d0d6f38e4..fdd464d70 100644 --- a/poky/meta/conf/machine/qemuarm64.conf +++ b/poky/meta/conf/machine/qemuarm64.conf @@ -7,6 +7,8 @@ require conf/machine/include/qemu.inc KERNEL_IMAGETYPE = "Image" +UBOOT_MACHINE ?= "qemu_arm64_defconfig" + SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" diff --git a/poky/meta/conf/machine/qemumips.conf b/poky/meta/conf/machine/qemumips.conf index 31ad75448..1373e4cba 100644 --- a/poky/meta/conf/machine/qemumips.conf +++ b/poky/meta/conf/machine/qemumips.conf @@ -9,6 +9,10 @@ require conf/machine/include/qemuboot-mips.inc KERNEL_IMAGETYPE = "vmlinux" KERNEL_ALT_IMAGETYPE = "vmlinux.bin" +UBOOT_MACHINE ?= "qemu_mips_defconfig" + SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1" QB_SYSTEM_NAME = "qemu-system-mips" + +QB_CPU = "-cpu 34Kf" diff --git a/poky/meta/conf/machine/qemumips64.conf b/poky/meta/conf/machine/qemumips64.conf index 6d5174665..1e7748649 100644 --- a/poky/meta/conf/machine/qemumips64.conf +++ b/poky/meta/conf/machine/qemumips64.conf @@ -11,6 +11,8 @@ QB_CPU = "-cpu MIPS64R2-generic" KERNEL_IMAGETYPE = "vmlinux" KERNEL_ALT_IMAGETYPE = "vmlinux.bin" +UBOOT_MACHINE ?= "qemu_mips64_defconfig" + SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1" QB_SYSTEM_NAME = "qemu-system-mips64" diff --git a/poky/meta/conf/multilib.conf b/poky/meta/conf/multilib.conf index 58f2ac5c8..d231107f8 100644 --- a/poky/meta/conf/multilib.conf +++ b/poky/meta/conf/multilib.conf @@ -30,4 +30,4 @@ PKG_CONFIG_PATH[vardepvalueexclude] = ":${WORKDIR}/recipe-sysroot/${datadir}/pkg # These recipes don't need multilib variants, the ${BPN} PROVDES/RPROVDES # ${MLPREFIX}${BPN} -NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf" +NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot" diff --git a/poky/meta/lib/oe/manifest.py b/poky/meta/lib/oe/manifest.py index f7c88f9a0..47bd62241 100644 --- a/poky/meta/lib/oe/manifest.py +++ b/poky/meta/lib/oe/manifest.py @@ -7,7 +7,6 @@ import os import re import bb - class Manifest(object, metaclass=ABCMeta): """ This is an abstract class. Do not instantiate this directly. @@ -189,149 +188,12 @@ class Manifest(object, metaclass=ABCMeta): return installed_pkgs -class RpmManifest(Manifest): - """ - Returns a dictionary object with mip and mlp packages. - """ - def _split_multilib(self, pkg_list): - pkgs = dict() - - for pkg in pkg_list.split(): - pkg_type = self.PKG_TYPE_MUST_INSTALL - - ml_variants = self.d.getVar('MULTILIB_VARIANTS').split() - - for ml_variant in ml_variants: - if pkg.startswith(ml_variant + '-'): - pkg_type = self.PKG_TYPE_MULTILIB - - if not pkg_type in pkgs: - pkgs[pkg_type] = pkg - else: - pkgs[pkg_type] += " " + pkg - - return pkgs - - def create_initial(self): - pkgs = dict() - - with open(self.initial_manifest, "w+") as manifest: - manifest.write(self.initial_manifest_file_header) - - for var in self.var_maps[self.manifest_type]: - if var in self.vars_to_split: - split_pkgs = self._split_multilib(self.d.getVar(var)) - if split_pkgs is not None: - pkgs = dict(list(pkgs.items()) + list(split_pkgs.items())) - else: - pkg_list = self.d.getVar(var) - if pkg_list is not None: - pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var) - - for pkg_type in pkgs: - for pkg in pkgs[pkg_type].split(): - manifest.write("%s,%s\n" % (pkg_type, pkg)) - - def create_final(self): - pass - - def create_full(self, pm): - pass - - -class OpkgManifest(Manifest): - """ - Returns a dictionary object with mip and mlp packages. - """ - def _split_multilib(self, pkg_list): - pkgs = dict() - - for pkg in pkg_list.split(): - pkg_type = self.PKG_TYPE_MUST_INSTALL - - ml_variants = self.d.getVar('MULTILIB_VARIANTS').split() - - for ml_variant in ml_variants: - if pkg.startswith(ml_variant + '-'): - pkg_type = self.PKG_TYPE_MULTILIB - - if not pkg_type in pkgs: - pkgs[pkg_type] = pkg - else: - pkgs[pkg_type] += " " + pkg - - return pkgs - - def create_initial(self): - pkgs = dict() - - with open(self.initial_manifest, "w+") as manifest: - manifest.write(self.initial_manifest_file_header) - - for var in self.var_maps[self.manifest_type]: - if var in self.vars_to_split: - split_pkgs = self._split_multilib(self.d.getVar(var)) - if split_pkgs is not None: - pkgs = dict(list(pkgs.items()) + list(split_pkgs.items())) - else: - pkg_list = self.d.getVar(var) - if pkg_list is not None: - pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var) - - for pkg_type in sorted(pkgs): - for pkg in sorted(pkgs[pkg_type].split()): - manifest.write("%s,%s\n" % (pkg_type, pkg)) - - def create_final(self): - pass - - def create_full(self, pm): - if not os.path.exists(self.initial_manifest): - self.create_initial() - - initial_manifest = self.parse_initial_manifest() - pkgs_to_install = list() - for pkg_type in initial_manifest: - pkgs_to_install += initial_manifest[pkg_type] - if len(pkgs_to_install) == 0: - return - - output = pm.dummy_install(pkgs_to_install) - - with open(self.full_manifest, 'w+') as manifest: - pkg_re = re.compile('^Installing ([^ ]+) [^ ].*') - for line in set(output.split('\n')): - m = pkg_re.match(line) - if m: - manifest.write(m.group(1) + '\n') - - return - - -class DpkgManifest(Manifest): - def create_initial(self): - with open(self.initial_manifest, "w+") as manifest: - manifest.write(self.initial_manifest_file_header) - - for var in self.var_maps[self.manifest_type]: - pkg_list = self.d.getVar(var) - - if pkg_list is None: - continue - - for pkg in pkg_list.split(): - manifest.write("%s,%s\n" % - (self.var_maps[self.manifest_type][var], pkg)) - - def create_final(self): - pass - - def create_full(self, pm): - pass - def create_manifest(d, final_manifest=False, manifest_dir=None, manifest_type=Manifest.MANIFEST_TYPE_IMAGE): + from oe.package_manager.rpm.manifest import RpmManifest + from oe.package_manager.ipk.manifest import OpkgManifest + from oe.package_manager.deb.manifest import DpkgManifest manifest_map = {'rpm': RpmManifest, 'ipk': OpkgManifest, 'deb': DpkgManifest} diff --git a/poky/meta/lib/oe/package_manager.py b/poky/meta/lib/oe/package_manager.py deleted file mode 100644 index 35e5cff07..000000000 --- a/poky/meta/lib/oe/package_manager.py +++ /dev/null @@ -1,1863 +0,0 @@ -# -# SPDX-License-Identifier: GPL-2.0-only -# - -from abc import ABCMeta, abstractmethod -import os -import glob -import subprocess -import shutil -import re -import collections -import bb -import tempfile -import oe.utils -import oe.path -import string -from oe.gpg_sign import get_signer -import hashlib -import fnmatch - -# this can be used by all PM backends to create the index files in parallel -def create_index(arg): - index_cmd = arg - - bb.note("Executing '%s' ..." % index_cmd) - result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") - if result: - bb.note(result) - -def opkg_query(cmd_output): - """ - This method parse the output from the package managerand return - a dictionary with the information of the packages. This is used - when the packages are in deb or ipk format. - """ - verregex = re.compile(r' \([=<>]* [^ )]*\)') - output = dict() - pkg = "" - arch = "" - ver = "" - filename = "" - dep = [] - prov = [] - pkgarch = "" - for line in cmd_output.splitlines()+['']: - line = line.rstrip() - if ':' in line: - if line.startswith("Package: "): - pkg = line.split(": ")[1] - elif line.startswith("Architecture: "): - arch = line.split(": ")[1] - elif line.startswith("Version: "): - ver = line.split(": ")[1] - elif line.startswith("File: ") or line.startswith("Filename:"): - filename = line.split(": ")[1] - if "/" in filename: - filename = os.path.basename(filename) - elif line.startswith("Depends: "): - depends = verregex.sub('', line.split(": ")[1]) - for depend in depends.split(", "): - dep.append(depend) - elif line.startswith("Recommends: "): - recommends = verregex.sub('', line.split(": ")[1]) - for recommend in recommends.split(", "): - dep.append("%s [REC]" % recommend) - elif line.startswith("PackageArch: "): - pkgarch = line.split(": ")[1] - elif line.startswith("Provides: "): - provides = verregex.sub('', line.split(": ")[1]) - for provide in provides.split(", "): - prov.append(provide) - - # When there is a blank line save the package information - elif not line: - # IPK doesn't include the filename - if not filename: - filename = "%s_%s_%s.ipk" % (pkg, ver, arch) - if pkg: - output[pkg] = {"arch":arch, "ver":ver, - "filename":filename, "deps": dep, "pkgarch":pkgarch, "provs": prov} - pkg = "" - arch = "" - ver = "" - filename = "" - dep = [] - prov = [] - pkgarch = "" - - return output - -def failed_postinsts_abort(pkgs, log_path): - bb.fatal("""Postinstall scriptlets of %s have failed. If the intention is to defer them to first boot, -then please place them into pkg_postinst_ontarget_${PN} (). -Deferring to first boot via 'exit 1' is no longer supported. -Details of the failure are in %s.""" %(pkgs, log_path)) - -def generate_locale_archive(d, rootfs, target_arch, localedir): - # Pretty sure we don't need this for locale archive generation but - # keeping it to be safe... - locale_arch_options = { \ - "arc": ["--uint32-align=4", "--little-endian"], - "arceb": ["--uint32-align=4", "--big-endian"], - "arm": ["--uint32-align=4", "--little-endian"], - "armeb": ["--uint32-align=4", "--big-endian"], - "aarch64": ["--uint32-align=4", "--little-endian"], - "aarch64_be": ["--uint32-align=4", "--big-endian"], - "sh4": ["--uint32-align=4", "--big-endian"], - "powerpc": ["--uint32-align=4", "--big-endian"], - "powerpc64": ["--uint32-align=4", "--big-endian"], - "powerpc64le": ["--uint32-align=4", "--little-endian"], - "mips": ["--uint32-align=4", "--big-endian"], - "mipsisa32r6": ["--uint32-align=4", "--big-endian"], - "mips64": ["--uint32-align=4", "--big-endian"], - "mipsisa64r6": ["--uint32-align=4", "--big-endian"], - "mipsel": ["--uint32-align=4", "--little-endian"], - "mipsisa32r6el": ["--uint32-align=4", "--little-endian"], - "mips64el": ["--uint32-align=4", "--little-endian"], - "mipsisa64r6el": ["--uint32-align=4", "--little-endian"], - "riscv64": ["--uint32-align=4", "--little-endian"], - "riscv32": ["--uint32-align=4", "--little-endian"], - "i586": ["--uint32-align=4", "--little-endian"], - "i686": ["--uint32-align=4", "--little-endian"], - "x86_64": ["--uint32-align=4", "--little-endian"] - } - if target_arch in locale_arch_options: - arch_options = locale_arch_options[target_arch] - else: - bb.error("locale_arch_options not found for target_arch=" + target_arch) - bb.fatal("unknown arch:" + target_arch + " for locale_arch_options") - - # Need to set this so cross-localedef knows where the archive is - env = dict(os.environ) - env["LOCALEARCHIVE"] = oe.path.join(localedir, "locale-archive") - - for name in sorted(os.listdir(localedir)): - path = os.path.join(localedir, name) - if os.path.isdir(path): - cmd = ["cross-localedef", "--verbose"] - cmd += arch_options - cmd += ["--add-to-archive", path] - subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT) - -class Indexer(object, metaclass=ABCMeta): - def __init__(self, d, deploy_dir): - self.d = d - self.deploy_dir = deploy_dir - - @abstractmethod - def write_index(self): - pass - - -class RpmIndexer(Indexer): - def write_index(self): - self.do_write_index(self.deploy_dir) - - def do_write_index(self, deploy_dir): - if self.d.getVar('PACKAGE_FEED_SIGN') == '1': - signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) - else: - signer = None - - createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c") - result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir)) - if result: - bb.fatal(result) - - # Sign repomd - if signer: - sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE') - is_ascii_sig = (sig_type.upper() != "BIN") - signer.detach_sign(os.path.join(deploy_dir, 'repodata', 'repomd.xml'), - self.d.getVar('PACKAGE_FEED_GPG_NAME'), - self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'), - armor=is_ascii_sig) - -class RpmSubdirIndexer(RpmIndexer): - def write_index(self): - bb.note("Generating package index for %s" %(self.deploy_dir)) - self.do_write_index(self.deploy_dir) - for entry in os.walk(self.deploy_dir): - if os.path.samefile(self.deploy_dir, entry[0]): - for dir in entry[1]: - if dir != 'repodata': - dir_path = oe.path.join(self.deploy_dir, dir) - bb.note("Generating package index for %s" %(dir_path)) - self.do_write_index(dir_path) - -class OpkgIndexer(Indexer): - def write_index(self): - arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS", - "SDK_PACKAGE_ARCHS", - ] - - opkg_index_cmd = bb.utils.which(os.getenv('PATH'), "opkg-make-index") - if self.d.getVar('PACKAGE_FEED_SIGN') == '1': - signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) - else: - signer = None - - if not os.path.exists(os.path.join(self.deploy_dir, "Packages")): - open(os.path.join(self.deploy_dir, "Packages"), "w").close() - - index_cmds = set() - index_sign_files = set() - for arch_var in arch_vars: - archs = self.d.getVar(arch_var) - if archs is None: - continue - - for arch in archs.split(): - pkgs_dir = os.path.join(self.deploy_dir, arch) - pkgs_file = os.path.join(pkgs_dir, "Packages") - - if not os.path.isdir(pkgs_dir): - continue - - if not os.path.exists(pkgs_file): - open(pkgs_file, "w").close() - - index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' % - (opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir)) - - index_sign_files.add(pkgs_file) - - if len(index_cmds) == 0: - bb.note("There are no packages in %s!" % self.deploy_dir) - return - - oe.utils.multiprocess_launch(create_index, index_cmds, self.d) - - if signer: - feed_sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE') - is_ascii_sig = (feed_sig_type.upper() != "BIN") - for f in index_sign_files: - signer.detach_sign(f, - self.d.getVar('PACKAGE_FEED_GPG_NAME'), - self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'), - armor=is_ascii_sig) - - -class DpkgIndexer(Indexer): - def _create_configs(self): - bb.utils.mkdirhier(self.apt_conf_dir) - bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial")) - bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d")) - bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d")) - - with open(os.path.join(self.apt_conf_dir, "preferences"), - "w") as prefs_file: - pass - with open(os.path.join(self.apt_conf_dir, "sources.list"), - "w+") as sources_file: - pass - - with open(self.apt_conf_file, "w") as apt_conf: - with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"), - "apt", "apt.conf.sample")) as apt_conf_sample: - for line in apt_conf_sample.read().split("\n"): - line = re.sub(r"#ROOTFS#", "/dev/null", line) - line = re.sub(r"#APTCONF#", self.apt_conf_dir, line) - apt_conf.write(line + "\n") - - def write_index(self): - self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"), - "apt-ftparchive") - self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf") - self._create_configs() - - os.environ['APT_CONFIG'] = self.apt_conf_file - - pkg_archs = self.d.getVar('PACKAGE_ARCHS') - if pkg_archs is not None: - arch_list = pkg_archs.split() - sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS') - if sdk_pkg_archs is not None: - for a in sdk_pkg_archs.split(): - if a not in pkg_archs: - arch_list.append(a) - - all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split() - arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list) - - apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive") - gzip = bb.utils.which(os.getenv('PATH'), "gzip") - - index_cmds = [] - deb_dirs_found = False - for arch in arch_list: - arch_dir = os.path.join(self.deploy_dir, arch) - if not os.path.isdir(arch_dir): - continue - - cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive) - - cmd += "%s -fcn Packages > Packages.gz;" % gzip - - with open(os.path.join(arch_dir, "Release"), "w+") as release: - release.write("Label: %s\n" % arch) - - cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive - - index_cmds.append(cmd) - - deb_dirs_found = True - - if not deb_dirs_found: - bb.note("There are no packages in %s" % self.deploy_dir) - return - - oe.utils.multiprocess_launch(create_index, index_cmds, self.d) - if self.d.getVar('PACKAGE_FEED_SIGN') == '1': - raise NotImplementedError('Package feed signing not implementd for dpkg') - - - -class PkgsList(object, metaclass=ABCMeta): - def __init__(self, d, rootfs_dir): - self.d = d - self.rootfs_dir = rootfs_dir - - @abstractmethod - def list_pkgs(self): - pass - -class RpmPkgsList(PkgsList): - def list_pkgs(self): - return RpmPM(self.d, self.rootfs_dir, self.d.getVar('TARGET_VENDOR'), needfeed=False).list_installed() - -class OpkgPkgsList(PkgsList): - def __init__(self, d, rootfs_dir, config_file): - super(OpkgPkgsList, self).__init__(d, rootfs_dir) - - self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg") - self.opkg_args = "-f %s -o %s " % (config_file, rootfs_dir) - self.opkg_args += self.d.getVar("OPKG_ARGS") - - def list_pkgs(self, format=None): - cmd = "%s %s status" % (self.opkg_cmd, self.opkg_args) - - # opkg returns success even when it printed some - # "Collected errors:" report to stderr. Mixing stderr into - # stdout then leads to random failures later on when - # parsing the output. To avoid this we need to collect both - # output streams separately and check for empty stderr. - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) - cmd_output, cmd_stderr = p.communicate() - cmd_output = cmd_output.decode("utf-8") - cmd_stderr = cmd_stderr.decode("utf-8") - if p.returncode or cmd_stderr: - bb.fatal("Cannot get the installed packages list. Command '%s' " - "returned %d and stderr:\n%s" % (cmd, p.returncode, cmd_stderr)) - - return opkg_query(cmd_output) - - -class DpkgPkgsList(PkgsList): - - def list_pkgs(self): - cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"), - "--admindir=%s/var/lib/dpkg" % self.rootfs_dir, - "-W"] - - cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\nProvides: ${Provides}\n\n") - - try: - cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8") - except subprocess.CalledProcessError as e: - bb.fatal("Cannot get the installed packages list. Command '%s' " - "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - - return opkg_query(cmd_output) - - -class PackageManager(object, metaclass=ABCMeta): - """ - This is an abstract class. Do not instantiate this directly. - """ - - def __init__(self, d, target_rootfs): - self.d = d - self.target_rootfs = target_rootfs - self.deploy_dir = None - self.deploy_lock = None - self._initialize_intercepts() - - def _initialize_intercepts(self): - bb.note("Initializing intercept dir for %s" % self.target_rootfs) - # As there might be more than one instance of PackageManager operating at the same time - # we need to isolate the intercept_scripts directories from each other, - # hence the ugly hash digest in dir name. - self.intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), "intercept_scripts-%s" % - (hashlib.sha256(self.target_rootfs.encode()).hexdigest())) - - postinst_intercepts = (self.d.getVar("POSTINST_INTERCEPTS") or "").split() - if not postinst_intercepts: - postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_PATH") - if not postinst_intercepts_path: - postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_DIR") or self.d.expand("${COREBASE}/scripts/postinst-intercepts") - postinst_intercepts = oe.path.which_wild('*', postinst_intercepts_path) - - bb.debug(1, 'Collected intercepts:\n%s' % ''.join(' %s\n' % i for i in postinst_intercepts)) - bb.utils.remove(self.intercepts_dir, True) - bb.utils.mkdirhier(self.intercepts_dir) - for intercept in postinst_intercepts: - bb.utils.copyfile(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept))) - - @abstractmethod - def _handle_intercept_failure(self, failed_script): - pass - - def _postpone_to_first_boot(self, postinst_intercept_hook): - with open(postinst_intercept_hook) as intercept: - registered_pkgs = None - for line in intercept.read().split("\n"): - m = re.match(r"^##PKGS:(.*)", line) - if m is not None: - registered_pkgs = m.group(1).strip() - break - - if registered_pkgs is not None: - bb.note("If an image is being built, the postinstalls for the following packages " - "will be postponed for first boot: %s" % - registered_pkgs) - - # call the backend dependent handler - self._handle_intercept_failure(registered_pkgs) - - - def run_intercepts(self, populate_sdk=None): - intercepts_dir = self.intercepts_dir - - bb.note("Running intercept scripts:") - os.environ['D'] = self.target_rootfs - os.environ['STAGING_DIR_NATIVE'] = self.d.getVar('STAGING_DIR_NATIVE') - for script in os.listdir(intercepts_dir): - script_full = os.path.join(intercepts_dir, script) - - if script == "postinst_intercept" or not os.access(script_full, os.X_OK): - continue - - # we do not want to run any multilib variant of this - if script.startswith("delay_to_first_boot"): - self._postpone_to_first_boot(script_full) - continue - - if populate_sdk == 'host' and self.d.getVar('SDK_OS') == 'mingw32': - bb.note("The postinstall intercept hook '%s' could not be executed due to missing wine support, details in %s/log.do_%s" - % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - continue - - bb.note("> Executing %s intercept ..." % script) - - try: - output = subprocess.check_output(script_full, stderr=subprocess.STDOUT) - if output: bb.note(output.decode("utf-8")) - except subprocess.CalledProcessError as e: - bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8"))) - if populate_sdk == 'host': - bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - elif populate_sdk == 'target': - if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"): - bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s" - % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - else: - bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - else: - if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"): - bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s" - % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - self._postpone_to_first_boot(script_full) - else: - bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) - - @abstractmethod - def update(self): - """ - Update the package manager package database. - """ - pass - - @abstractmethod - def install(self, pkgs, attempt_only=False): - """ - Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is - True, installation failures are ignored. - """ - pass - - @abstractmethod - def remove(self, pkgs, with_dependencies=True): - """ - Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies' - is False, then any dependencies are left in place. - """ - pass - - @abstractmethod - def write_index(self): - """ - This function creates the index files - """ - pass - - @abstractmethod - def remove_packaging_data(self): - pass - - @abstractmethod - def list_installed(self): - pass - - @abstractmethod - def extract(self, pkg): - """ - Returns the path to a tmpdir where resides the contents of a package. - Deleting the tmpdir is responsability of the caller. - """ - pass - - @abstractmethod - def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): - """ - Add remote package feeds into repository manager configuration. The parameters - for the feeds are set by feed_uris, feed_base_paths and feed_archs. - See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS - for their description. - """ - pass - - def install_glob(self, globs, sdk=False): - """ - Install all packages that match a glob. - """ - # TODO don't have sdk here but have a property on the superclass - # (and respect in install_complementary) - if sdk: - pkgdatadir = self.d.expand("${TMPDIR}/pkgdata/${SDK_SYS}") - else: - pkgdatadir = self.d.getVar("PKGDATA_DIR") - - try: - bb.note("Installing globbed packages...") - cmd = ["oe-pkgdata-util", "-p", pkgdatadir, "list-pkgs", globs] - pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8") - self.install(pkgs.split(), attempt_only=True) - except subprocess.CalledProcessError as e: - # Return code 1 means no packages matched - if e.returncode != 1: - bb.fatal("Could not compute globbed packages list. Command " - "'%s' returned %d:\n%s" % - (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - - def install_complementary(self, globs=None): - """ - Install complementary packages based upon the list of currently installed - packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install - these packages, if they don't exist then no error will occur. Note: every - backend needs to call this function explicitly after the normal package - installation - """ - if globs is None: - globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY') - split_linguas = set() - - for translation in self.d.getVar('IMAGE_LINGUAS').split(): - split_linguas.add(translation) - split_linguas.add(translation.split('-')[0]) - - split_linguas = sorted(split_linguas) - - for lang in split_linguas: - globs += " *-locale-%s" % lang - for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split(): - globs += (" " + complementary_linguas) % lang - - if globs is None: - return - - # we need to write the list of installed packages to a file because the - # oe-pkgdata-util reads it from a file - with tempfile.NamedTemporaryFile(mode="w+", prefix="installed-pkgs") as installed_pkgs: - pkgs = self.list_installed() - - provided_pkgs = set() - for pkg in pkgs.values(): - provided_pkgs |= set(pkg.get('provs', [])) - - output = oe.utils.format_pkg_list(pkgs, "arch") - installed_pkgs.write(output) - installed_pkgs.flush() - - cmd = ["oe-pkgdata-util", - "-p", self.d.getVar('PKGDATA_DIR'), "glob", installed_pkgs.name, - globs] - exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY') - if exclude: - cmd.extend(['--exclude=' + '|'.join(exclude.split())]) - try: - bb.note('Running %s' % cmd) - complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8") - complementary_pkgs = set(complementary_pkgs.split()) - skip_pkgs = sorted(complementary_pkgs & provided_pkgs) - install_pkgs = sorted(complementary_pkgs - provided_pkgs) - bb.note("Installing complementary packages ... %s (skipped already provided packages %s)" % ( - ' '.join(install_pkgs), - ' '.join(skip_pkgs))) - self.install(install_pkgs, attempt_only=True) - except subprocess.CalledProcessError as e: - bb.fatal("Could not compute complementary packages list. Command " - "'%s' returned %d:\n%s" % - (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - - target_arch = self.d.getVar('TARGET_ARCH') - localedir = oe.path.join(self.target_rootfs, self.d.getVar("libdir"), "locale") - if os.path.exists(localedir) and os.listdir(localedir): - generate_locale_archive(self.d, self.target_rootfs, target_arch, localedir) - # And now delete the binary locales - self.remove(fnmatch.filter(self.list_installed(), "glibc-binary-localedata-*"), False) - - def deploy_dir_lock(self): - if self.deploy_dir is None: - raise RuntimeError("deploy_dir is not set!") - - lock_file_name = os.path.join(self.deploy_dir, "deploy.lock") - - self.deploy_lock = bb.utils.lockfile(lock_file_name) - - def deploy_dir_unlock(self): - if self.deploy_lock is None: - return - - bb.utils.unlockfile(self.deploy_lock) - - self.deploy_lock = None - - def construct_uris(self, uris, base_paths): - """ - Construct URIs based on the following pattern: uri/base_path where 'uri' - and 'base_path' correspond to each element of the corresponding array - argument leading to len(uris) x len(base_paths) elements on the returned - array - """ - def _append(arr1, arr2, sep='/'): - res = [] - narr1 = [a.rstrip(sep) for a in arr1] - narr2 = [a.rstrip(sep).lstrip(sep) for a in arr2] - for a1 in narr1: - if arr2: - for a2 in narr2: - res.append("%s%s%s" % (a1, sep, a2)) - else: - res.append(a1) - return res - return _append(uris, base_paths) - -def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies): - """ - Go through our do_package_write_X dependencies and hardlink the packages we depend - upon into the repo directory. This prevents us seeing other packages that may - have been built that we don't depend upon and also packages for architectures we don't - support. - """ - import errno - - taskdepdata = d.getVar("BB_TASKDEPDATA", False) - mytaskname = d.getVar("BB_RUNTASK") - pn = d.getVar("PN") - seendirs = set() - multilibs = {} - - bb.utils.remove(subrepo_dir, recurse=True) - bb.utils.mkdirhier(subrepo_dir) - - # Detect bitbake -b usage - nodeps = d.getVar("BB_LIMITEDDEPS") or False - if nodeps or not filterbydependencies: - oe.path.symlink(deploydir, subrepo_dir, True) - return - - start = None - for dep in taskdepdata: - data = taskdepdata[dep] - if data[1] == mytaskname and data[0] == pn: - start = dep - break - if start is None: - bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?") - pkgdeps = set() - start = [start] - seen = set(start) - # Support direct dependencies (do_rootfs -> do_package_write_X) - # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X) - while start: - next = [] - for dep2 in start: - for dep in taskdepdata[dep2][3]: - if taskdepdata[dep][0] != pn: - if "do_" + taskname in dep: - pkgdeps.add(dep) - elif dep not in seen: - next.append(dep) - seen.add(dep) - start = next - - for dep in pkgdeps: - c = taskdepdata[dep][0] - manifest, d2 = oe.sstatesig.find_sstate_manifest(c, taskdepdata[dep][2], taskname, d, multilibs) - if not manifest: - bb.fatal("No manifest generated from: %s in %s" % (c, taskdepdata[dep][2])) - if not os.path.exists(manifest): - continue - with open(manifest, "r") as f: - for l in f: - l = l.strip() - deploydir = os.path.normpath(deploydir) - if bb.data.inherits_class('packagefeed-stability', d): - dest = l.replace(deploydir + "-prediff", "") - else: - dest = l.replace(deploydir, "") - dest = subrepo_dir + dest - if l.endswith("/"): - if dest not in seendirs: - bb.utils.mkdirhier(dest) - seendirs.add(dest) - continue - # Try to hardlink the file, copy if that fails - destdir = os.path.dirname(dest) - if destdir not in seendirs: - bb.utils.mkdirhier(destdir) - seendirs.add(destdir) - try: - os.link(l, dest) - except OSError as err: - if err.errno == errno.EXDEV: - bb.utils.copyfile(l, dest) - else: - raise - -class RpmPM(PackageManager): - def __init__(self, - d, - target_rootfs, - target_vendor, - task_name='target', - arch_var=None, - os_var=None, - rpm_repo_workdir="oe-rootfs-repo", - filterbydependencies=True, - needfeed=True): - super(RpmPM, self).__init__(d, target_rootfs) - self.target_vendor = target_vendor - self.task_name = task_name - if arch_var == None: - self.archs = self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS').replace("-","_") - else: - self.archs = self.d.getVar(arch_var).replace("-","_") - if task_name == "host": - self.primary_arch = self.d.getVar('SDK_ARCH') - else: - self.primary_arch = self.d.getVar('MACHINE_ARCH') - - if needfeed: - self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), rpm_repo_workdir) - create_packages_dir(self.d, oe.path.join(self.rpm_repo_dir, "rpm"), d.getVar("DEPLOY_DIR_RPM"), "package_write_rpm", filterbydependencies) - - self.saved_packaging_data = self.d.expand('${T}/saved_packaging_data/%s' % self.task_name) - if not os.path.exists(self.d.expand('${T}/saved_packaging_data')): - bb.utils.mkdirhier(self.d.expand('${T}/saved_packaging_data')) - self.packaging_data_dirs = ['etc/rpm', 'etc/rpmrc', 'etc/dnf', 'var/lib/rpm', 'var/lib/dnf', 'var/cache/dnf'] - self.solution_manifest = self.d.expand('${T}/saved/%s_solution' % - self.task_name) - if not os.path.exists(self.d.expand('${T}/saved')): - bb.utils.mkdirhier(self.d.expand('${T}/saved')) - - def _configure_dnf(self): - # libsolv handles 'noarch' internally, we don't need to specify it explicitly - archs = [i for i in reversed(self.archs.split()) if i not in ["any", "all", "noarch"]] - # This prevents accidental matching against libsolv's built-in policies - if len(archs) <= 1: - archs = archs + ["bogusarch"] - # This architecture needs to be upfront so that packages using it are properly prioritized - archs = ["sdk_provides_dummy_target"] + archs - confdir = "%s/%s" %(self.target_rootfs, "etc/dnf/vars/") - bb.utils.mkdirhier(confdir) - open(confdir + "arch", 'w').write(":".join(archs)) - distro_codename = self.d.getVar('DISTRO_CODENAME') - open(confdir + "releasever", 'w').write(distro_codename if distro_codename is not None else '') - - open(oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), 'w').write("") - - - def _configure_rpm(self): - # We need to configure rpm to use our primary package architecture as the installation architecture, - # and to make it compatible with other package architectures that we use. - # Otherwise it will refuse to proceed with packages installation. - platformconfdir = "%s/%s" %(self.target_rootfs, "etc/rpm/") - rpmrcconfdir = "%s/%s" %(self.target_rootfs, "etc/") - bb.utils.mkdirhier(platformconfdir) - open(platformconfdir + "platform", 'w').write("%s-pc-linux" % self.primary_arch) - with open(rpmrcconfdir + "rpmrc", 'w') as f: - f.write("arch_compat: %s: %s\n" % (self.primary_arch, self.archs if len(self.archs) > 0 else self.primary_arch)) - f.write("buildarch_compat: %s: noarch\n" % self.primary_arch) - - open(platformconfdir + "macros", 'w').write("%_transaction_color 7\n") - if self.d.getVar('RPM_PREFER_ELF_ARCH'): - open(platformconfdir + "macros", 'a').write("%%_prefer_color %s" % (self.d.getVar('RPM_PREFER_ELF_ARCH'))) - - if self.d.getVar('RPM_SIGN_PACKAGES') == '1': - signer = get_signer(self.d, self.d.getVar('RPM_GPG_BACKEND')) - pubkey_path = oe.path.join(self.d.getVar('B'), 'rpm-key') - signer.export_pubkey(pubkey_path, self.d.getVar('RPM_GPG_NAME')) - rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmkeys") - cmd = [rpm_bin, '--root=%s' % self.target_rootfs, '--import', pubkey_path] - try: - subprocess.check_output(cmd, stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - bb.fatal("Importing GPG key failed. Command '%s' " - "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - - def create_configs(self): - self._configure_dnf() - self._configure_rpm() - - def write_index(self): - lockfilename = self.d.getVar('DEPLOY_DIR_RPM') + "/rpm.lock" - lf = bb.utils.lockfile(lockfilename, False) - RpmIndexer(self.d, self.rpm_repo_dir).write_index() - bb.utils.unlockfile(lf) - - def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): - from urllib.parse import urlparse - - if feed_uris == "": - return - - gpg_opts = '' - if self.d.getVar('PACKAGE_FEED_SIGN') == '1': - gpg_opts += 'repo_gpgcheck=1\n' - gpg_opts += 'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s-%s\n' % (self.d.getVar('sysconfdir'), self.d.getVar('DISTRO'), self.d.getVar('DISTRO_CODENAME')) - - if self.d.getVar('RPM_SIGN_PACKAGES') != '1': - gpg_opts += 'gpgcheck=0\n' - - bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", "yum.repos.d")) - remote_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) - for uri in remote_uris: - repo_base = "oe-remote-repo" + "-".join(urlparse(uri).path.split("/")) - if feed_archs is not None: - for arch in feed_archs.split(): - repo_uri = uri + "/" + arch - repo_id = "oe-remote-repo" + "-".join(urlparse(repo_uri).path.split("/")) - repo_name = "OE Remote Repo:" + " ".join(urlparse(repo_uri).path.split("/")) - open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'a').write( - "[%s]\nname=%s\nbaseurl=%s\n%s\n" % (repo_id, repo_name, repo_uri, gpg_opts)) - else: - repo_name = "OE Remote Repo:" + " ".join(urlparse(uri).path.split("/")) - repo_uri = uri - open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'w').write( - "[%s]\nname=%s\nbaseurl=%s\n%s" % (repo_base, repo_name, repo_uri, gpg_opts)) - - def _prepare_pkg_transaction(self): - os.environ['D'] = self.target_rootfs - os.environ['OFFLINE_ROOT'] = self.target_rootfs - os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['INTERCEPT_DIR'] = self.intercepts_dir - os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') - - - def install(self, pkgs, attempt_only = False): - if len(pkgs) == 0: - return - self._prepare_pkg_transaction() - - bad_recommendations = self.d.getVar('BAD_RECOMMENDATIONS') - package_exclude = self.d.getVar('PACKAGE_EXCLUDE') - exclude_pkgs = (bad_recommendations.split() if bad_recommendations else []) + (package_exclude.split() if package_exclude else []) - - output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) + - (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + - (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) + - (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) + - ["install"] + - pkgs) - - failed_scriptlets_pkgnames = collections.OrderedDict() - for line in output.splitlines(): - if line.startswith("Error in POSTIN scriptlet in rpm package"): - failed_scriptlets_pkgnames[line.split()[-1]] = True - - if len(failed_scriptlets_pkgnames) > 0: - failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) - - def remove(self, pkgs, with_dependencies = True): - if not pkgs: - return - - self._prepare_pkg_transaction() - - if with_dependencies: - self._invoke_dnf(["remove"] + pkgs) - else: - cmd = bb.utils.which(os.getenv('PATH'), "rpm") - args = ["-e", "-v", "--nodeps", "--root=%s" %self.target_rootfs] - - try: - bb.note("Running %s" % ' '.join([cmd] + args + pkgs)) - output = subprocess.check_output([cmd] + args + pkgs, stderr=subprocess.STDOUT).decode("utf-8") - bb.note(output) - except subprocess.CalledProcessError as e: - bb.fatal("Could not invoke rpm. Command " - "'%s' returned %d:\n%s" % (' '.join([cmd] + args + pkgs), e.returncode, e.output.decode("utf-8"))) - - def upgrade(self): - self._prepare_pkg_transaction() - self._invoke_dnf(["upgrade"]) - - def autoremove(self): - self._prepare_pkg_transaction() - self._invoke_dnf(["autoremove"]) - - def remove_packaging_data(self): - self._invoke_dnf(["clean", "all"]) - for dir in self.packaging_data_dirs: - bb.utils.remove(oe.path.join(self.target_rootfs, dir), True) - - def backup_packaging_data(self): - # Save the packaging dirs for increment rpm image generation - if os.path.exists(self.saved_packaging_data): - bb.utils.remove(self.saved_packaging_data, True) - for i in self.packaging_data_dirs: - source_dir = oe.path.join(self.target_rootfs, i) - target_dir = oe.path.join(self.saved_packaging_data, i) - if os.path.isdir(source_dir): - shutil.copytree(source_dir, target_dir, symlinks=True) - elif os.path.isfile(source_dir): - shutil.copy2(source_dir, target_dir) - - def recovery_packaging_data(self): - # Move the rpmlib back - if os.path.exists(self.saved_packaging_data): - for i in self.packaging_data_dirs: - target_dir = oe.path.join(self.target_rootfs, i) - if os.path.exists(target_dir): - bb.utils.remove(target_dir, True) - source_dir = oe.path.join(self.saved_packaging_data, i) - if os.path.isdir(source_dir): - shutil.copytree(source_dir, target_dir, symlinks=True) - elif os.path.isfile(source_dir): - shutil.copy2(source_dir, target_dir) - - def list_installed(self): - output = self._invoke_dnf(["repoquery", "--installed", "--queryformat", "Package: %{name} %{arch} %{version} %{name}-%{version}-%{release}.%{arch}.rpm\nDependencies:\n%{requires}\nRecommendations:\n%{recommends}\nDependenciesEndHere:\n"], - print_output = False) - packages = {} - current_package = None - current_deps = None - current_state = "initial" - for line in output.splitlines(): - if line.startswith("Package:"): - package_info = line.split(" ")[1:] - current_package = package_info[0] - package_arch = package_info[1] - package_version = package_info[2] - package_rpm = package_info[3] - packages[current_package] = {"arch":package_arch, "ver":package_version, "filename":package_rpm} - current_deps = [] - elif line.startswith("Dependencies:"): - current_state = "dependencies" - elif line.startswith("Recommendations"): - current_state = "recommendations" - elif line.startswith("DependenciesEndHere:"): - current_state = "initial" - packages[current_package]["deps"] = current_deps - elif len(line) > 0: - if current_state == "dependencies": - current_deps.append(line) - elif current_state == "recommendations": - current_deps.append("%s [REC]" % line) - - return packages - - def update(self): - self._invoke_dnf(["makecache", "--refresh"]) - - def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ): - os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs - - dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf") - standard_dnf_args = ["-v", "--rpmverbosity=info", "-y", - "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), - "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")), - "--installroot=%s" % (self.target_rootfs), - "--setopt=logdir=%s" % (self.d.getVar('T')) - ] - if hasattr(self, "rpm_repo_dir"): - standard_dnf_args.append("--repofrompath=oe-repo,%s" % (self.rpm_repo_dir)) - cmd = [dnf_cmd] + standard_dnf_args + dnf_args - bb.note('Running %s' % ' '.join(cmd)) - try: - output = subprocess.check_output(cmd,stderr=subprocess.STDOUT).decode("utf-8") - if print_output: - bb.debug(1, output) - return output - except subprocess.CalledProcessError as e: - if print_output: - (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command " - "'%s' returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - else: - (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command " - "'%s' returned %d:" % (' '.join(cmd), e.returncode)) - return e.output.decode("utf-8") - - def dump_install_solution(self, pkgs): - open(self.solution_manifest, 'w').write(" ".join(pkgs)) - return pkgs - - def load_old_install_solution(self): - if not os.path.exists(self.solution_manifest): - return [] - with open(self.solution_manifest, 'r') as fd: - return fd.read().split() - - def _script_num_prefix(self, path): - files = os.listdir(path) - numbers = set() - numbers.add(99) - for f in files: - numbers.add(int(f.split("-")[0])) - return max(numbers) + 1 - - def save_rpmpostinst(self, pkg): - bb.note("Saving postinstall script of %s" % (pkg)) - cmd = bb.utils.which(os.getenv('PATH'), "rpm") - args = ["-q", "--root=%s" % self.target_rootfs, "--queryformat", "%{postin}", pkg] - - try: - output = subprocess.check_output([cmd] + args,stderr=subprocess.STDOUT).decode("utf-8") - except subprocess.CalledProcessError as e: - bb.fatal("Could not invoke rpm. Command " - "'%s' returned %d:\n%s" % (' '.join([cmd] + args), e.returncode, e.output.decode("utf-8"))) - - # may need to prepend #!/bin/sh to output - - target_path = oe.path.join(self.target_rootfs, self.d.expand('${sysconfdir}/rpm-postinsts/')) - bb.utils.mkdirhier(target_path) - num = self._script_num_prefix(target_path) - saved_script_name = oe.path.join(target_path, "%d-%s" % (num, pkg)) - open(saved_script_name, 'w').write(output) - os.chmod(saved_script_name, 0o755) - - def _handle_intercept_failure(self, registered_pkgs): - rpm_postinsts_dir = self.target_rootfs + self.d.expand('${sysconfdir}/rpm-postinsts/') - bb.utils.mkdirhier(rpm_postinsts_dir) - - # Save the package postinstalls in /etc/rpm-postinsts - for pkg in registered_pkgs.split(): - self.save_rpmpostinst(pkg) - - def extract(self, pkg): - output = self._invoke_dnf(["repoquery", "--queryformat", "%{location}", pkg]) - pkg_name = output.splitlines()[-1] - if not pkg_name.endswith(".rpm"): - bb.fatal("dnf could not find package %s in repository: %s" %(pkg, output)) - pkg_path = oe.path.join(self.rpm_repo_dir, pkg_name) - - cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio") - rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio") - - if not os.path.isfile(pkg_path): - bb.fatal("Unable to extract package for '%s'." - "File %s doesn't exists" % (pkg, pkg_path)) - - tmp_dir = tempfile.mkdtemp() - current_dir = os.getcwd() - os.chdir(tmp_dir) - - try: - cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd) - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) - except subprocess.CalledProcessError as e: - bb.utils.remove(tmp_dir, recurse=True) - bb.fatal("Unable to extract %s package. Command '%s' " - "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8"))) - except OSError as e: - bb.utils.remove(tmp_dir, recurse=True) - bb.fatal("Unable to extract %s package. Command '%s' " - "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename)) - - bb.note("Extracted %s to %s" % (pkg_path, tmp_dir)) - os.chdir(current_dir) - - return tmp_dir - - -class OpkgDpkgPM(PackageManager): - def __init__(self, d, target_rootfs): - """ - This is an abstract class. Do not instantiate this directly. - """ - super(OpkgDpkgPM, self).__init__(d, target_rootfs) - - def package_info(self, pkg, cmd): - """ - Returns a dictionary with the package info. - - This method extracts the common parts for Opkg and Dpkg - """ - - try: - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") - except subprocess.CalledProcessError as e: - bb.fatal("Unable to list available packages. Command '%s' " - "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) - return opkg_query(output) - - def extract(self, pkg, pkg_info): - """ - Returns the path to a tmpdir where resides the contents of a package. - - Deleting the tmpdir is responsability of the caller. - - This method extracts the common parts for Opkg and Dpkg - """ - - ar_cmd = bb.utils.which(os.getenv("PATH"), "ar") - tar_cmd = bb.utils.which(os.getenv("PATH"), "tar") - pkg_path = pkg_info[pkg]["filepath"] - - if not os.path.isfile(pkg_path): - bb.fatal("Unable to extract package for '%s'." - "File %s doesn't exists" % (pkg, pkg_path)) - - tmp_dir = tempfile.mkdtemp() - current_dir = os.getcwd() - os.chdir(tmp_dir) - data_tar = 'data.tar.xz' - - try: - cmd = [ar_cmd, 'x', pkg_path] - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) - cmd = [tar_cmd, 'xf', data_tar] - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - bb.utils.remove(tmp_dir, recurse=True) - bb.fatal("Unable to extract %s package. Command '%s' " - "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8"))) - except OSError as e: - bb.utils.remove(tmp_dir, recurse=True) - bb.fatal("Unable to extract %s package. Command '%s' " - "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename)) - - bb.note("Extracted %s to %s" % (pkg_path, tmp_dir)) - bb.utils.remove(os.path.join(tmp_dir, "debian-binary")) - bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz")) - os.chdir(current_dir) - - return tmp_dir - - def _handle_intercept_failure(self, registered_pkgs): - self.mark_packages("unpacked", registered_pkgs.split()) - -class OpkgPM(OpkgDpkgPM): - def __init__(self, d, target_rootfs, config_file, archs, task_name='target', ipk_repo_workdir="oe-rootfs-repo", filterbydependencies=True, prepare_index=True): - super(OpkgPM, self).__init__(d, target_rootfs) - - self.config_file = config_file - self.pkg_archs = archs - self.task_name = task_name - - self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), ipk_repo_workdir) - self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock") - self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg") - self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/') ,target_rootfs) - self.opkg_args += self.d.getVar("OPKG_ARGS") - - if prepare_index: - create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_IPK"), "package_write_ipk", filterbydependencies) - - opkg_lib_dir = self.d.getVar('OPKGLIBDIR') - if opkg_lib_dir[0] == "/": - opkg_lib_dir = opkg_lib_dir[1:] - - self.opkg_dir = os.path.join(target_rootfs, opkg_lib_dir, "opkg") - - bb.utils.mkdirhier(self.opkg_dir) - - self.saved_opkg_dir = self.d.expand('${T}/saved/%s' % self.task_name) - if not os.path.exists(self.d.expand('${T}/saved')): - bb.utils.mkdirhier(self.d.expand('${T}/saved')) - - self.from_feeds = (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") == "1" - if self.from_feeds: - self._create_custom_config() - else: - self._create_config() - - self.indexer = OpkgIndexer(self.d, self.deploy_dir) - - def mark_packages(self, status_tag, packages=None): - """ - This function will change a package's status in /var/lib/opkg/status file. - If 'packages' is None then the new_status will be applied to all - packages - """ - status_file = os.path.join(self.opkg_dir, "status") - - with open(status_file, "r") as sf: - with open(status_file + ".tmp", "w+") as tmp_sf: - if packages is None: - tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)", - r"Package: \1\n\2Status: \3%s" % status_tag, - sf.read())) - else: - if type(packages).__name__ != "list": - raise TypeError("'packages' should be a list object") - - status = sf.read() - for pkg in packages: - status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg, - r"Package: %s\n\1Status: \2%s" % (pkg, status_tag), - status) - - tmp_sf.write(status) - - os.rename(status_file + ".tmp", status_file) - - def _create_custom_config(self): - bb.note("Building from feeds activated!") - - with open(self.config_file, "w+") as config_file: - priority = 1 - for arch in self.pkg_archs.split(): - config_file.write("arch %s %d\n" % (arch, priority)) - priority += 5 - - for line in (self.d.getVar('IPK_FEED_URIS') or "").split(): - feed_match = re.match(r"^[ \t]*(.*)##([^ \t]*)[ \t]*$", line) - - if feed_match is not None: - feed_name = feed_match.group(1) - feed_uri = feed_match.group(2) - - bb.note("Add %s feed with URL %s" % (feed_name, feed_uri)) - - config_file.write("src/gz %s %s\n" % (feed_name, feed_uri)) - - """ - Allow to use package deploy directory contents as quick devel-testing - feed. This creates individual feed configs for each arch subdir of those - specified as compatible for the current machine. - NOTE: Development-helper feature, NOT a full-fledged feed. - """ - if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI') or "") != "": - for arch in self.pkg_archs.split(): - cfg_file_name = os.path.join(self.target_rootfs, - self.d.getVar("sysconfdir"), - "opkg", - "local-%s-feed.conf" % arch) - - with open(cfg_file_name, "w+") as cfg_file: - cfg_file.write("src/gz local-%s %s/%s" % - (arch, - self.d.getVar('FEED_DEPLOYDIR_BASE_URI'), - arch)) - - if self.d.getVar('OPKGLIBDIR') != '/var/lib': - # There is no command line option for this anymore, we need to add - # info_dir and status_file to config file, if OPKGLIBDIR doesn't have - # the default value of "/var/lib" as defined in opkg: - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists" - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info" - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status" - cfg_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info')) - cfg_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists')) - cfg_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status')) - - - def _create_config(self): - with open(self.config_file, "w+") as config_file: - priority = 1 - for arch in self.pkg_archs.split(): - config_file.write("arch %s %d\n" % (arch, priority)) - priority += 5 - - config_file.write("src oe file:%s\n" % self.deploy_dir) - - for arch in self.pkg_archs.split(): - pkgs_dir = os.path.join(self.deploy_dir, arch) - if os.path.isdir(pkgs_dir): - config_file.write("src oe-%s file:%s\n" % - (arch, pkgs_dir)) - - if self.d.getVar('OPKGLIBDIR') != '/var/lib': - # There is no command line option for this anymore, we need to add - # info_dir and status_file to config file, if OPKGLIBDIR doesn't have - # the default value of "/var/lib" as defined in opkg: - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists" - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info" - # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status" - config_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info')) - config_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists')) - config_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status')) - - def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): - if feed_uris == "": - return - - rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf' - % self.target_rootfs) - - os.makedirs('%s/etc/opkg' % self.target_rootfs, exist_ok=True) - - feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) - archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split() - - with open(rootfs_config, "w+") as config_file: - uri_iterator = 0 - for uri in feed_uris: - if archs: - for arch in archs: - if (feed_archs is None) and (not os.path.exists(oe.path.join(self.deploy_dir, arch))): - continue - bb.note('Adding opkg feed url-%s-%d (%s)' % - (arch, uri_iterator, uri)) - config_file.write("src/gz uri-%s-%d %s/%s\n" % - (arch, uri_iterator, uri, arch)) - else: - bb.note('Adding opkg feed url-%d (%s)' % - (uri_iterator, uri)) - config_file.write("src/gz uri-%d %s\n" % - (uri_iterator, uri)) - - uri_iterator += 1 - - def update(self): - self.deploy_dir_lock() - - cmd = "%s %s update" % (self.opkg_cmd, self.opkg_args) - - try: - subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - self.deploy_dir_unlock() - bb.fatal("Unable to update the package index files. Command '%s' " - "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) - - self.deploy_dir_unlock() - - def install(self, pkgs, attempt_only=False): - if not pkgs: - return - - cmd = "%s %s" % (self.opkg_cmd, self.opkg_args) - for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split(): - cmd += " --add-exclude %s" % exclude - for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split(): - cmd += " --add-ignore-recommends %s" % bad_recommendation - cmd += " install " - cmd += " ".join(pkgs) - - os.environ['D'] = self.target_rootfs - os.environ['OFFLINE_ROOT'] = self.target_rootfs - os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['INTERCEPT_DIR'] = self.intercepts_dir - os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') - - try: - bb.note("Installing the following packages: %s" % ' '.join(pkgs)) - bb.note(cmd) - output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8") - bb.note(output) - failed_pkgs = [] - for line in output.split('\n'): - if line.endswith("configuration required on target."): - bb.warn(line) - failed_pkgs.append(line.split(".")[0]) - if failed_pkgs: - failed_postinsts_abort(failed_pkgs, self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) - except subprocess.CalledProcessError as e: - (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. " - "Command '%s' returned %d:\n%s" % - (cmd, e.returncode, e.output.decode("utf-8"))) - - def remove(self, pkgs, with_dependencies=True): - if not pkgs: - return - - if with_dependencies: - cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \ - (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) - else: - cmd = "%s %s --force-depends remove %s" % \ - (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) - - try: - bb.note(cmd) - output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8") - bb.note(output) - except subprocess.CalledProcessError as e: - bb.fatal("Unable to remove packages. Command '%s' " - "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) - - def write_index(self): - self.deploy_dir_lock() - - result = self.indexer.write_index() - - self.deploy_dir_unlock() - - if result is not None: - bb.fatal(result) - - def remove_packaging_data(self): - bb.utils.remove(self.opkg_dir, True) - # create the directory back, it's needed by PM lock - bb.utils.mkdirhier(self.opkg_dir) - - def remove_lists(self): - if not self.from_feeds: - bb.utils.remove(os.path.join(self.opkg_dir, "lists"), True) - - def list_installed(self): - return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs() - - def dummy_install(self, pkgs): - """ - The following function dummy installs pkgs and returns the log of output. - """ - if len(pkgs) == 0: - return - - # Create an temp dir as opkg root for dummy installation - temp_rootfs = self.d.expand('${T}/opkg') - opkg_lib_dir = self.d.getVar('OPKGLIBDIR') - if opkg_lib_dir[0] == "/": - opkg_lib_dir = opkg_lib_dir[1:] - temp_opkg_dir = os.path.join(temp_rootfs, opkg_lib_dir, 'opkg') - bb.utils.mkdirhier(temp_opkg_dir) - - opkg_args = "-f %s -o %s " % (self.config_file, temp_rootfs) - opkg_args += self.d.getVar("OPKG_ARGS") - - cmd = "%s %s update" % (self.opkg_cmd, opkg_args) - try: - subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) - except subprocess.CalledProcessError as e: - bb.fatal("Unable to update. Command '%s' " - "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) - - # Dummy installation - cmd = "%s %s --noaction install %s " % (self.opkg_cmd, - opkg_args, - ' '.join(pkgs)) - try: - output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) - except subprocess.CalledProcessError as e: - bb.fatal("Unable to dummy install packages. Command '%s' " - "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) - - bb.utils.remove(temp_rootfs, True) - - return output - - def backup_packaging_data(self): - # Save the opkglib for increment ipk image generation - if os.path.exists(self.saved_opkg_dir): - bb.utils.remove(self.saved_opkg_dir, True) - shutil.copytree(self.opkg_dir, - self.saved_opkg_dir, - symlinks=True) - - def recover_packaging_data(self): - # Move the opkglib back - if os.path.exists(self.saved_opkg_dir): - if os.path.exists(self.opkg_dir): - bb.utils.remove(self.opkg_dir, True) - - bb.note('Recover packaging data') - shutil.copytree(self.saved_opkg_dir, - self.opkg_dir, - symlinks=True) - - def package_info(self, pkg): - """ - Returns a dictionary with the package info. - """ - cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg) - pkg_info = super(OpkgPM, self).package_info(pkg, cmd) - - pkg_arch = pkg_info[pkg]["arch"] - pkg_filename = pkg_info[pkg]["filename"] - pkg_info[pkg]["filepath"] = \ - os.path.join(self.deploy_dir, pkg_arch, pkg_filename) - - return pkg_info - - def extract(self, pkg): - """ - Returns the path to a tmpdir where resides the contents of a package. - - Deleting the tmpdir is responsability of the caller. - """ - pkg_info = self.package_info(pkg) - if not pkg_info: - bb.fatal("Unable to get information for package '%s' while " - "trying to extract the package." % pkg) - - tmp_dir = super(OpkgPM, self).extract(pkg, pkg_info) - bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz")) - - return tmp_dir - -class DpkgPM(OpkgDpkgPM): - def __init__(self, d, target_rootfs, archs, base_archs, apt_conf_dir=None, deb_repo_workdir="oe-rootfs-repo", filterbydependencies=True): - super(DpkgPM, self).__init__(d, target_rootfs) - self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), deb_repo_workdir) - - create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_DEB"), "package_write_deb", filterbydependencies) - - if apt_conf_dir is None: - self.apt_conf_dir = self.d.expand("${APTCONF_TARGET}/apt") - else: - self.apt_conf_dir = apt_conf_dir - self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf") - self.apt_get_cmd = bb.utils.which(os.getenv('PATH'), "apt-get") - self.apt_cache_cmd = bb.utils.which(os.getenv('PATH'), "apt-cache") - - self.apt_args = d.getVar("APT_ARGS") - - self.all_arch_list = archs.split() - all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split() - self.all_arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in self.all_arch_list) - - self._create_configs(archs, base_archs) - - self.indexer = DpkgIndexer(self.d, self.deploy_dir) - - def mark_packages(self, status_tag, packages=None): - """ - This function will change a package's status in /var/lib/dpkg/status file. - If 'packages' is None then the new_status will be applied to all - packages - """ - status_file = self.target_rootfs + "/var/lib/dpkg/status" - - with open(status_file, "r") as sf: - with open(status_file + ".tmp", "w+") as tmp_sf: - if packages is None: - tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)", - r"Package: \1\n\2Status: \3%s" % status_tag, - sf.read())) - else: - if type(packages).__name__ != "list": - raise TypeError("'packages' should be a list object") - - status = sf.read() - for pkg in packages: - status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg, - r"Package: %s\n\1Status: \2%s" % (pkg, status_tag), - status) - - tmp_sf.write(status) - - os.rename(status_file + ".tmp", status_file) - - def run_pre_post_installs(self, package_name=None): - """ - Run the pre/post installs for package "package_name". If package_name is - None, then run all pre/post install scriptlets. - """ - info_dir = self.target_rootfs + "/var/lib/dpkg/info" - ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"]) - control_scripts = [ - ControlScript(".preinst", "Preinstall", "install"), - ControlScript(".postinst", "Postinstall", "configure")] - status_file = self.target_rootfs + "/var/lib/dpkg/status" - installed_pkgs = [] - - with open(status_file, "r") as status: - for line in status.read().split('\n'): - m = re.match(r"^Package: (.*)", line) - if m is not None: - installed_pkgs.append(m.group(1)) - - if package_name is not None and not package_name in installed_pkgs: - return - - os.environ['D'] = self.target_rootfs - os.environ['OFFLINE_ROOT'] = self.target_rootfs - os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs - os.environ['INTERCEPT_DIR'] = self.intercepts_dir - os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') - - for pkg_name in installed_pkgs: - for control_script in control_scripts: - p_full = os.path.join(info_dir, pkg_name + control_script.suffix) - if os.path.exists(p_full): - try: - bb.note("Executing %s for package: %s ..." % - (control_script.name.lower(), pkg_name)) - output = subprocess.check_output([p_full, control_script.argument], - stderr=subprocess.STDOUT).decode("utf-8") - bb.note(output) - except subprocess.CalledProcessError as e: - bb.warn("%s for package %s failed with %d:\n%s" % - (control_script.name, pkg_name, e.returncode, - e.output.decode("utf-8"))) - failed_postinsts_abort([pkg_name], self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) - - def update(self): - os.environ['APT_CONFIG'] = self.apt_conf_file - - self.deploy_dir_lock() - - cmd = "%s update" % self.apt_get_cmd - - try: - subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - bb.fatal("Unable to update the package index files. Command '%s' " - "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) - - self.deploy_dir_unlock() - - def install(self, pkgs, attempt_only=False): - if attempt_only and len(pkgs) == 0: - return - - os.environ['APT_CONFIG'] = self.apt_conf_file - - cmd = "%s %s install --force-yes --allow-unauthenticated --no-remove %s" % \ - (self.apt_get_cmd, self.apt_args, ' '.join(pkgs)) - - try: - bb.note("Installing the following packages: %s" % ' '.join(pkgs)) - subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. " - "Command '%s' returned %d:\n%s" % - (cmd, e.returncode, e.output.decode("utf-8"))) - - # rename *.dpkg-new files/dirs - for root, dirs, files in os.walk(self.target_rootfs): - for dir in dirs: - new_dir = re.sub(r"\.dpkg-new", "", dir) - if dir != new_dir: - os.rename(os.path.join(root, dir), - os.path.join(root, new_dir)) - - for file in files: - new_file = re.sub(r"\.dpkg-new", "", file) - if file != new_file: - os.rename(os.path.join(root, file), - os.path.join(root, new_file)) - - - def remove(self, pkgs, with_dependencies=True): - if not pkgs: - return - - if with_dependencies: - os.environ['APT_CONFIG'] = self.apt_conf_file - cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs)) - else: - cmd = "%s --admindir=%s/var/lib/dpkg --instdir=%s" \ - " -P --force-depends %s" % \ - (bb.utils.which(os.getenv('PATH'), "dpkg"), - self.target_rootfs, self.target_rootfs, ' '.join(pkgs)) - - try: - subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - bb.fatal("Unable to remove packages. Command '%s' " - "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) - - def write_index(self): - self.deploy_dir_lock() - - result = self.indexer.write_index() - - self.deploy_dir_unlock() - - if result is not None: - bb.fatal(result) - - def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): - if feed_uris == "": - return - - sources_conf = os.path.join("%s/etc/apt/sources.list" - % self.target_rootfs) - arch_list = [] - - if feed_archs is None: - for arch in self.all_arch_list: - if not os.path.exists(os.path.join(self.deploy_dir, arch)): - continue - arch_list.append(arch) - else: - arch_list = feed_archs.split() - - feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) - - with open(sources_conf, "w+") as sources_file: - for uri in feed_uris: - if arch_list: - for arch in arch_list: - bb.note('Adding dpkg channel at (%s)' % uri) - sources_file.write("deb %s/%s ./\n" % - (uri, arch)) - else: - bb.note('Adding dpkg channel at (%s)' % uri) - sources_file.write("deb %s ./\n" % uri) - - def _create_configs(self, archs, base_archs): - base_archs = re.sub(r"_", r"-", base_archs) - - if os.path.exists(self.apt_conf_dir): - bb.utils.remove(self.apt_conf_dir, True) - - bb.utils.mkdirhier(self.apt_conf_dir) - bb.utils.mkdirhier(self.apt_conf_dir + "/lists/partial/") - bb.utils.mkdirhier(self.apt_conf_dir + "/apt.conf.d/") - bb.utils.mkdirhier(self.apt_conf_dir + "/preferences.d/") - - arch_list = [] - for arch in self.all_arch_list: - if not os.path.exists(os.path.join(self.deploy_dir, arch)): - continue - arch_list.append(arch) - - with open(os.path.join(self.apt_conf_dir, "preferences"), "w+") as prefs_file: - priority = 801 - for arch in arch_list: - prefs_file.write( - "Package: *\n" - "Pin: release l=%s\n" - "Pin-Priority: %d\n\n" % (arch, priority)) - - priority += 5 - - pkg_exclude = self.d.getVar('PACKAGE_EXCLUDE') or "" - for pkg in pkg_exclude.split(): - prefs_file.write( - "Package: %s\n" - "Pin: release *\n" - "Pin-Priority: -1\n\n" % pkg) - - arch_list.reverse() - - with open(os.path.join(self.apt_conf_dir, "sources.list"), "w+") as sources_file: - for arch in arch_list: - sources_file.write("deb file:%s/ ./\n" % - os.path.join(self.deploy_dir, arch)) - - base_arch_list = base_archs.split() - multilib_variants = self.d.getVar("MULTILIB_VARIANTS"); - for variant in multilib_variants.split(): - localdata = bb.data.createCopy(self.d) - variant_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + variant, False) - orig_arch = localdata.getVar("DPKG_ARCH") - localdata.setVar("DEFAULTTUNE", variant_tune) - variant_arch = localdata.getVar("DPKG_ARCH") - if variant_arch not in base_arch_list: - base_arch_list.append(variant_arch) - - with open(self.apt_conf_file, "w+") as apt_conf: - with open(self.d.expand("${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample")) as apt_conf_sample: - for line in apt_conf_sample.read().split("\n"): - match_arch = re.match(r" Architecture \".*\";$", line) - architectures = "" - if match_arch: - for base_arch in base_arch_list: - architectures += "\"%s\";" % base_arch - apt_conf.write(" Architectures {%s};\n" % architectures); - apt_conf.write(" Architecture \"%s\";\n" % base_archs) - else: - line = re.sub(r"#ROOTFS#", self.target_rootfs, line) - line = re.sub(r"#APTCONF#", self.apt_conf_dir, line) - apt_conf.write(line + "\n") - - target_dpkg_dir = "%s/var/lib/dpkg" % self.target_rootfs - bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "info")) - - bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "updates")) - - if not os.path.exists(os.path.join(target_dpkg_dir, "status")): - open(os.path.join(target_dpkg_dir, "status"), "w+").close() - if not os.path.exists(os.path.join(target_dpkg_dir, "available")): - open(os.path.join(target_dpkg_dir, "available"), "w+").close() - - def remove_packaging_data(self): - bb.utils.remove(self.target_rootfs + self.d.getVar('opkglibdir'), True) - bb.utils.remove(self.target_rootfs + "/var/lib/dpkg/", True) - - def fix_broken_dependencies(self): - os.environ['APT_CONFIG'] = self.apt_conf_file - - cmd = "%s %s --allow-unauthenticated -f install" % (self.apt_get_cmd, self.apt_args) - - try: - subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - bb.fatal("Cannot fix broken dependencies. Command '%s' " - "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) - - def list_installed(self): - return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs() - - def package_info(self, pkg): - """ - Returns a dictionary with the package info. - """ - cmd = "%s show %s" % (self.apt_cache_cmd, pkg) - pkg_info = super(DpkgPM, self).package_info(pkg, cmd) - - pkg_arch = pkg_info[pkg]["pkgarch"] - pkg_filename = pkg_info[pkg]["filename"] - pkg_info[pkg]["filepath"] = \ - os.path.join(self.deploy_dir, pkg_arch, pkg_filename) - - return pkg_info - - def extract(self, pkg): - """ - Returns the path to a tmpdir where resides the contents of a package. - - Deleting the tmpdir is responsability of the caller. - """ - pkg_info = self.package_info(pkg) - if not pkg_info: - bb.fatal("Unable to get information for package '%s' while " - "trying to extract the package." % pkg) - - tmp_dir = super(DpkgPM, self).extract(pkg, pkg_info) - bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz")) - - return tmp_dir - -def generate_index_files(d): - classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split() - - indexer_map = { - "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')), - "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')), - "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB')) - } - - result = None - - for pkg_class in classes: - if not pkg_class in indexer_map: - continue - - if os.path.exists(indexer_map[pkg_class][1]): - result = indexer_map[pkg_class][0](d, indexer_map[pkg_class][1]).write_index() - - if result is not None: - bb.fatal(result) diff --git a/poky/meta/lib/oe/package_manager/__init__.py b/poky/meta/lib/oe/package_manager/__init__.py new file mode 100644 index 000000000..865d6f949 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/__init__.py @@ -0,0 +1,550 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from abc import ABCMeta, abstractmethod +import os +import glob +import subprocess +import shutil +import re +import collections +import bb +import tempfile +import oe.utils +import oe.path +import string +from oe.gpg_sign import get_signer +import hashlib +import fnmatch + +# this can be used by all PM backends to create the index files in parallel +def create_index(arg): + index_cmd = arg + + bb.note("Executing '%s' ..." % index_cmd) + result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") + if result: + bb.note(result) + +def opkg_query(cmd_output): + """ + This method parse the output from the package managerand return + a dictionary with the information of the packages. This is used + when the packages are in deb or ipk format. + """ + verregex = re.compile(r' \([=<>]* [^ )]*\)') + output = dict() + pkg = "" + arch = "" + ver = "" + filename = "" + dep = [] + prov = [] + pkgarch = "" + for line in cmd_output.splitlines()+['']: + line = line.rstrip() + if ':' in line: + if line.startswith("Package: "): + pkg = line.split(": ")[1] + elif line.startswith("Architecture: "): + arch = line.split(": ")[1] + elif line.startswith("Version: "): + ver = line.split(": ")[1] + elif line.startswith("File: ") or line.startswith("Filename:"): + filename = line.split(": ")[1] + if "/" in filename: + filename = os.path.basename(filename) + elif line.startswith("Depends: "): + depends = verregex.sub('', line.split(": ")[1]) + for depend in depends.split(", "): + dep.append(depend) + elif line.startswith("Recommends: "): + recommends = verregex.sub('', line.split(": ")[1]) + for recommend in recommends.split(", "): + dep.append("%s [REC]" % recommend) + elif line.startswith("PackageArch: "): + pkgarch = line.split(": ")[1] + elif line.startswith("Provides: "): + provides = verregex.sub('', line.split(": ")[1]) + for provide in provides.split(", "): + prov.append(provide) + + # When there is a blank line save the package information + elif not line: + # IPK doesn't include the filename + if not filename: + filename = "%s_%s_%s.ipk" % (pkg, ver, arch) + if pkg: + output[pkg] = {"arch":arch, "ver":ver, + "filename":filename, "deps": dep, "pkgarch":pkgarch, "provs": prov} + pkg = "" + arch = "" + ver = "" + filename = "" + dep = [] + prov = [] + pkgarch = "" + + return output + +def failed_postinsts_abort(pkgs, log_path): + bb.fatal("""Postinstall scriptlets of %s have failed. If the intention is to defer them to first boot, +then please place them into pkg_postinst_ontarget_${PN} (). +Deferring to first boot via 'exit 1' is no longer supported. +Details of the failure are in %s.""" %(pkgs, log_path)) + +def generate_locale_archive(d, rootfs, target_arch, localedir): + # Pretty sure we don't need this for locale archive generation but + # keeping it to be safe... + locale_arch_options = { \ + "arc": ["--uint32-align=4", "--little-endian"], + "arceb": ["--uint32-align=4", "--big-endian"], + "arm": ["--uint32-align=4", "--little-endian"], + "armeb": ["--uint32-align=4", "--big-endian"], + "aarch64": ["--uint32-align=4", "--little-endian"], + "aarch64_be": ["--uint32-align=4", "--big-endian"], + "sh4": ["--uint32-align=4", "--big-endian"], + "powerpc": ["--uint32-align=4", "--big-endian"], + "powerpc64": ["--uint32-align=4", "--big-endian"], + "powerpc64le": ["--uint32-align=4", "--little-endian"], + "mips": ["--uint32-align=4", "--big-endian"], + "mipsisa32r6": ["--uint32-align=4", "--big-endian"], + "mips64": ["--uint32-align=4", "--big-endian"], + "mipsisa64r6": ["--uint32-align=4", "--big-endian"], + "mipsel": ["--uint32-align=4", "--little-endian"], + "mipsisa32r6el": ["--uint32-align=4", "--little-endian"], + "mips64el": ["--uint32-align=4", "--little-endian"], + "mipsisa64r6el": ["--uint32-align=4", "--little-endian"], + "riscv64": ["--uint32-align=4", "--little-endian"], + "riscv32": ["--uint32-align=4", "--little-endian"], + "i586": ["--uint32-align=4", "--little-endian"], + "i686": ["--uint32-align=4", "--little-endian"], + "x86_64": ["--uint32-align=4", "--little-endian"] + } + if target_arch in locale_arch_options: + arch_options = locale_arch_options[target_arch] + else: + bb.error("locale_arch_options not found for target_arch=" + target_arch) + bb.fatal("unknown arch:" + target_arch + " for locale_arch_options") + + # Need to set this so cross-localedef knows where the archive is + env = dict(os.environ) + env["LOCALEARCHIVE"] = oe.path.join(localedir, "locale-archive") + + for name in sorted(os.listdir(localedir)): + path = os.path.join(localedir, name) + if os.path.isdir(path): + cmd = ["cross-localedef", "--verbose"] + cmd += arch_options + cmd += ["--add-to-archive", path] + subprocess.check_output(cmd, env=env, stderr=subprocess.STDOUT) + +class Indexer(object, metaclass=ABCMeta): + def __init__(self, d, deploy_dir): + self.d = d + self.deploy_dir = deploy_dir + + @abstractmethod + def write_index(self): + pass + +class PkgsList(object, metaclass=ABCMeta): + def __init__(self, d, rootfs_dir): + self.d = d + self.rootfs_dir = rootfs_dir + + @abstractmethod + def list_pkgs(self): + pass + +class PackageManager(object, metaclass=ABCMeta): + """ + This is an abstract class. Do not instantiate this directly. + """ + + def __init__(self, d, target_rootfs): + self.d = d + self.target_rootfs = target_rootfs + self.deploy_dir = None + self.deploy_lock = None + self._initialize_intercepts() + + def _initialize_intercepts(self): + bb.note("Initializing intercept dir for %s" % self.target_rootfs) + # As there might be more than one instance of PackageManager operating at the same time + # we need to isolate the intercept_scripts directories from each other, + # hence the ugly hash digest in dir name. + self.intercepts_dir = os.path.join(self.d.getVar('WORKDIR'), "intercept_scripts-%s" % + (hashlib.sha256(self.target_rootfs.encode()).hexdigest())) + + postinst_intercepts = (self.d.getVar("POSTINST_INTERCEPTS") or "").split() + if not postinst_intercepts: + postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_PATH") + if not postinst_intercepts_path: + postinst_intercepts_path = self.d.getVar("POSTINST_INTERCEPTS_DIR") or self.d.expand("${COREBASE}/scripts/postinst-intercepts") + postinst_intercepts = oe.path.which_wild('*', postinst_intercepts_path) + + bb.debug(1, 'Collected intercepts:\n%s' % ''.join(' %s\n' % i for i in postinst_intercepts)) + bb.utils.remove(self.intercepts_dir, True) + bb.utils.mkdirhier(self.intercepts_dir) + for intercept in postinst_intercepts: + bb.utils.copyfile(intercept, os.path.join(self.intercepts_dir, os.path.basename(intercept))) + + @abstractmethod + def _handle_intercept_failure(self, failed_script): + pass + + def _postpone_to_first_boot(self, postinst_intercept_hook): + with open(postinst_intercept_hook) as intercept: + registered_pkgs = None + for line in intercept.read().split("\n"): + m = re.match(r"^##PKGS:(.*)", line) + if m is not None: + registered_pkgs = m.group(1).strip() + break + + if registered_pkgs is not None: + bb.note("If an image is being built, the postinstalls for the following packages " + "will be postponed for first boot: %s" % + registered_pkgs) + + # call the backend dependent handler + self._handle_intercept_failure(registered_pkgs) + + + def run_intercepts(self, populate_sdk=None): + intercepts_dir = self.intercepts_dir + + bb.note("Running intercept scripts:") + os.environ['D'] = self.target_rootfs + os.environ['STAGING_DIR_NATIVE'] = self.d.getVar('STAGING_DIR_NATIVE') + for script in os.listdir(intercepts_dir): + script_full = os.path.join(intercepts_dir, script) + + if script == "postinst_intercept" or not os.access(script_full, os.X_OK): + continue + + # we do not want to run any multilib variant of this + if script.startswith("delay_to_first_boot"): + self._postpone_to_first_boot(script_full) + continue + + if populate_sdk == 'host' and self.d.getVar('SDK_OS') == 'mingw32': + bb.note("The postinstall intercept hook '%s' could not be executed due to missing wine support, details in %s/log.do_%s" + % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + continue + + bb.note("> Executing %s intercept ..." % script) + + try: + output = subprocess.check_output(script_full, stderr=subprocess.STDOUT) + if output: bb.note(output.decode("utf-8")) + except subprocess.CalledProcessError as e: + bb.note("Exit code %d. Output:\n%s" % (e.returncode, e.output.decode("utf-8"))) + if populate_sdk == 'host': + bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + elif populate_sdk == 'target': + if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"): + bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s" + % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + else: + bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + else: + if "qemuwrapper: qemu usermode is not supported" in e.output.decode("utf-8"): + bb.note("The postinstall intercept hook '%s' could not be executed due to missing qemu usermode support, details in %s/log.do_%s" + % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + self._postpone_to_first_boot(script_full) + else: + bb.fatal("The postinstall intercept hook '%s' failed, details in %s/log.do_%s" % (script, self.d.getVar('T'), self.d.getVar('BB_CURRENTTASK'))) + + @abstractmethod + def update(self): + """ + Update the package manager package database. + """ + pass + + @abstractmethod + def install(self, pkgs, attempt_only=False): + """ + Install a list of packages. 'pkgs' is a list object. If 'attempt_only' is + True, installation failures are ignored. + """ + pass + + @abstractmethod + def remove(self, pkgs, with_dependencies=True): + """ + Remove a list of packages. 'pkgs' is a list object. If 'with_dependencies' + is False, then any dependencies are left in place. + """ + pass + + @abstractmethod + def write_index(self): + """ + This function creates the index files + """ + pass + + @abstractmethod + def remove_packaging_data(self): + pass + + @abstractmethod + def list_installed(self): + pass + + @abstractmethod + def extract(self, pkg): + """ + Returns the path to a tmpdir where resides the contents of a package. + Deleting the tmpdir is responsability of the caller. + """ + pass + + @abstractmethod + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + """ + Add remote package feeds into repository manager configuration. The parameters + for the feeds are set by feed_uris, feed_base_paths and feed_archs. + See http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-PACKAGE_FEED_URIS + for their description. + """ + pass + + def install_glob(self, globs, sdk=False): + """ + Install all packages that match a glob. + """ + # TODO don't have sdk here but have a property on the superclass + # (and respect in install_complementary) + if sdk: + pkgdatadir = self.d.expand("${TMPDIR}/pkgdata/${SDK_SYS}") + else: + pkgdatadir = self.d.getVar("PKGDATA_DIR") + + try: + bb.note("Installing globbed packages...") + cmd = ["oe-pkgdata-util", "-p", pkgdatadir, "list-pkgs", globs] + pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8") + self.install(pkgs.split(), attempt_only=True) + except subprocess.CalledProcessError as e: + # Return code 1 means no packages matched + if e.returncode != 1: + bb.fatal("Could not compute globbed packages list. Command " + "'%s' returned %d:\n%s" % + (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + + def install_complementary(self, globs=None): + """ + Install complementary packages based upon the list of currently installed + packages e.g. locales, *-dev, *-dbg, etc. This will only attempt to install + these packages, if they don't exist then no error will occur. Note: every + backend needs to call this function explicitly after the normal package + installation + """ + if globs is None: + globs = self.d.getVar('IMAGE_INSTALL_COMPLEMENTARY') + split_linguas = set() + + for translation in self.d.getVar('IMAGE_LINGUAS').split(): + split_linguas.add(translation) + split_linguas.add(translation.split('-')[0]) + + split_linguas = sorted(split_linguas) + + for lang in split_linguas: + globs += " *-locale-%s" % lang + for complementary_linguas in (self.d.getVar('IMAGE_LINGUAS_COMPLEMENTARY') or "").split(): + globs += (" " + complementary_linguas) % lang + + if globs is None: + return + + # we need to write the list of installed packages to a file because the + # oe-pkgdata-util reads it from a file + with tempfile.NamedTemporaryFile(mode="w+", prefix="installed-pkgs") as installed_pkgs: + pkgs = self.list_installed() + + provided_pkgs = set() + for pkg in pkgs.values(): + provided_pkgs |= set(pkg.get('provs', [])) + + output = oe.utils.format_pkg_list(pkgs, "arch") + installed_pkgs.write(output) + installed_pkgs.flush() + + cmd = ["oe-pkgdata-util", + "-p", self.d.getVar('PKGDATA_DIR'), "glob", installed_pkgs.name, + globs] + exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY') + if exclude: + cmd.extend(['--exclude=' + '|'.join(exclude.split())]) + try: + bb.note('Running %s' % cmd) + complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8") + complementary_pkgs = set(complementary_pkgs.split()) + skip_pkgs = sorted(complementary_pkgs & provided_pkgs) + install_pkgs = sorted(complementary_pkgs - provided_pkgs) + bb.note("Installing complementary packages ... %s (skipped already provided packages %s)" % ( + ' '.join(install_pkgs), + ' '.join(skip_pkgs))) + self.install(install_pkgs, attempt_only=True) + except subprocess.CalledProcessError as e: + bb.fatal("Could not compute complementary packages list. Command " + "'%s' returned %d:\n%s" % + (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + + target_arch = self.d.getVar('TARGET_ARCH') + localedir = oe.path.join(self.target_rootfs, self.d.getVar("libdir"), "locale") + if os.path.exists(localedir) and os.listdir(localedir): + generate_locale_archive(self.d, self.target_rootfs, target_arch, localedir) + # And now delete the binary locales + self.remove(fnmatch.filter(self.list_installed(), "glibc-binary-localedata-*"), False) + + def deploy_dir_lock(self): + if self.deploy_dir is None: + raise RuntimeError("deploy_dir is not set!") + + lock_file_name = os.path.join(self.deploy_dir, "deploy.lock") + + self.deploy_lock = bb.utils.lockfile(lock_file_name) + + def deploy_dir_unlock(self): + if self.deploy_lock is None: + return + + bb.utils.unlockfile(self.deploy_lock) + + self.deploy_lock = None + + def construct_uris(self, uris, base_paths): + """ + Construct URIs based on the following pattern: uri/base_path where 'uri' + and 'base_path' correspond to each element of the corresponding array + argument leading to len(uris) x len(base_paths) elements on the returned + array + """ + def _append(arr1, arr2, sep='/'): + res = [] + narr1 = [a.rstrip(sep) for a in arr1] + narr2 = [a.rstrip(sep).lstrip(sep) for a in arr2] + for a1 in narr1: + if arr2: + for a2 in narr2: + res.append("%s%s%s" % (a1, sep, a2)) + else: + res.append(a1) + return res + return _append(uris, base_paths) + +def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies): + """ + Go through our do_package_write_X dependencies and hardlink the packages we depend + upon into the repo directory. This prevents us seeing other packages that may + have been built that we don't depend upon and also packages for architectures we don't + support. + """ + import errno + + taskdepdata = d.getVar("BB_TASKDEPDATA", False) + mytaskname = d.getVar("BB_RUNTASK") + pn = d.getVar("PN") + seendirs = set() + multilibs = {} + + bb.utils.remove(subrepo_dir, recurse=True) + bb.utils.mkdirhier(subrepo_dir) + + # Detect bitbake -b usage + nodeps = d.getVar("BB_LIMITEDDEPS") or False + if nodeps or not filterbydependencies: + oe.path.symlink(deploydir, subrepo_dir, True) + return + + start = None + for dep in taskdepdata: + data = taskdepdata[dep] + if data[1] == mytaskname and data[0] == pn: + start = dep + break + if start is None: + bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?") + pkgdeps = set() + start = [start] + seen = set(start) + # Support direct dependencies (do_rootfs -> do_package_write_X) + # or indirect dependencies within PN (do_populate_sdk_ext -> do_rootfs -> do_package_write_X) + while start: + next = [] + for dep2 in start: + for dep in taskdepdata[dep2][3]: + if taskdepdata[dep][0] != pn: + if "do_" + taskname in dep: + pkgdeps.add(dep) + elif dep not in seen: + next.append(dep) + seen.add(dep) + start = next + + for dep in pkgdeps: + c = taskdepdata[dep][0] + manifest, d2 = oe.sstatesig.find_sstate_manifest(c, taskdepdata[dep][2], taskname, d, multilibs) + if not manifest: + bb.fatal("No manifest generated from: %s in %s" % (c, taskdepdata[dep][2])) + if not os.path.exists(manifest): + continue + with open(manifest, "r") as f: + for l in f: + l = l.strip() + deploydir = os.path.normpath(deploydir) + if bb.data.inherits_class('packagefeed-stability', d): + dest = l.replace(deploydir + "-prediff", "") + else: + dest = l.replace(deploydir, "") + dest = subrepo_dir + dest + if l.endswith("/"): + if dest not in seendirs: + bb.utils.mkdirhier(dest) + seendirs.add(dest) + continue + # Try to hardlink the file, copy if that fails + destdir = os.path.dirname(dest) + if destdir not in seendirs: + bb.utils.mkdirhier(destdir) + seendirs.add(destdir) + try: + os.link(l, dest) + except OSError as err: + if err.errno == errno.EXDEV: + bb.utils.copyfile(l, dest) + else: + raise + + +def generate_index_files(d): + from oe.package_manager.rpm import RpmSubdirIndexer + from oe.package_manager.ipk import OpkgIndexer + from oe.package_manager.deb import DpkgIndexer + + classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split() + + indexer_map = { + "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')), + "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')), + "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB')) + } + + result = None + + for pkg_class in classes: + if not pkg_class in indexer_map: + continue + + if os.path.exists(indexer_map[pkg_class][1]): + result = indexer_map[pkg_class][0](d, indexer_map[pkg_class][1]).write_index() + + if result is not None: + bb.fatal(result) diff --git a/poky/meta/lib/oe/package_manager/deb/__init__.py b/poky/meta/lib/oe/package_manager/deb/__init__.py new file mode 100644 index 000000000..72155b178 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/deb/__init__.py @@ -0,0 +1,492 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import re +import subprocess +from oe.package_manager import * + +class DpkgIndexer(Indexer): + def _create_configs(self): + bb.utils.mkdirhier(self.apt_conf_dir) + bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "lists", "partial")) + bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "apt.conf.d")) + bb.utils.mkdirhier(os.path.join(self.apt_conf_dir, "preferences.d")) + + with open(os.path.join(self.apt_conf_dir, "preferences"), + "w") as prefs_file: + pass + with open(os.path.join(self.apt_conf_dir, "sources.list"), + "w+") as sources_file: + pass + + with open(self.apt_conf_file, "w") as apt_conf: + with open(os.path.join(self.d.expand("${STAGING_ETCDIR_NATIVE}"), + "apt", "apt.conf.sample")) as apt_conf_sample: + for line in apt_conf_sample.read().split("\n"): + line = re.sub(r"#ROOTFS#", "/dev/null", line) + line = re.sub(r"#APTCONF#", self.apt_conf_dir, line) + apt_conf.write(line + "\n") + + def write_index(self): + self.apt_conf_dir = os.path.join(self.d.expand("${APTCONF_TARGET}"), + "apt-ftparchive") + self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf") + self._create_configs() + + os.environ['APT_CONFIG'] = self.apt_conf_file + + pkg_archs = self.d.getVar('PACKAGE_ARCHS') + if pkg_archs is not None: + arch_list = pkg_archs.split() + sdk_pkg_archs = self.d.getVar('SDK_PACKAGE_ARCHS') + if sdk_pkg_archs is not None: + for a in sdk_pkg_archs.split(): + if a not in pkg_archs: + arch_list.append(a) + + all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split() + arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in arch_list) + + apt_ftparchive = bb.utils.which(os.getenv('PATH'), "apt-ftparchive") + gzip = bb.utils.which(os.getenv('PATH'), "gzip") + + index_cmds = [] + deb_dirs_found = False + for arch in arch_list: + arch_dir = os.path.join(self.deploy_dir, arch) + if not os.path.isdir(arch_dir): + continue + + cmd = "cd %s; PSEUDO_UNLOAD=1 %s packages . > Packages;" % (arch_dir, apt_ftparchive) + + cmd += "%s -fcn Packages > Packages.gz;" % gzip + + with open(os.path.join(arch_dir, "Release"), "w+") as release: + release.write("Label: %s\n" % arch) + + cmd += "PSEUDO_UNLOAD=1 %s release . >> Release" % apt_ftparchive + + index_cmds.append(cmd) + + deb_dirs_found = True + + if not deb_dirs_found: + bb.note("There are no packages in %s" % self.deploy_dir) + return + + oe.utils.multiprocess_launch(create_index, index_cmds, self.d) + if self.d.getVar('PACKAGE_FEED_SIGN') == '1': + raise NotImplementedError('Package feed signing not implementd for dpkg') + +class DpkgPkgsList(PkgsList): + + def list_pkgs(self): + cmd = [bb.utils.which(os.getenv('PATH'), "dpkg-query"), + "--admindir=%s/var/lib/dpkg" % self.rootfs_dir, + "-W"] + + cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\nProvides: ${Provides}\n\n") + + try: + cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8") + except subprocess.CalledProcessError as e: + bb.fatal("Cannot get the installed packages list. Command '%s' " + "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + + return opkg_query(cmd_output) + +class OpkgDpkgPM(PackageManager): + def __init__(self, d, target_rootfs): + """ + This is an abstract class. Do not instantiate this directly. + """ + super(OpkgDpkgPM, self).__init__(d, target_rootfs) + + def package_info(self, pkg, cmd): + """ + Returns a dictionary with the package info. + + This method extracts the common parts for Opkg and Dpkg + """ + + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") + except subprocess.CalledProcessError as e: + bb.fatal("Unable to list available packages. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + return opkg_query(output) + + def extract(self, pkg, pkg_info): + """ + Returns the path to a tmpdir where resides the contents of a package. + + Deleting the tmpdir is responsability of the caller. + + This method extracts the common parts for Opkg and Dpkg + """ + + ar_cmd = bb.utils.which(os.getenv("PATH"), "ar") + tar_cmd = bb.utils.which(os.getenv("PATH"), "tar") + pkg_path = pkg_info[pkg]["filepath"] + + if not os.path.isfile(pkg_path): + bb.fatal("Unable to extract package for '%s'." + "File %s doesn't exists" % (pkg, pkg_path)) + + tmp_dir = tempfile.mkdtemp() + current_dir = os.getcwd() + os.chdir(tmp_dir) + data_tar = 'data.tar.xz' + + try: + cmd = [ar_cmd, 'x', pkg_path] + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + cmd = [tar_cmd, 'xf', data_tar] + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + except OSError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename)) + + bb.note("Extracted %s to %s" % (pkg_path, tmp_dir)) + bb.utils.remove(os.path.join(tmp_dir, "debian-binary")) + bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz")) + os.chdir(current_dir) + + return tmp_dir + + def _handle_intercept_failure(self, registered_pkgs): + self.mark_packages("unpacked", registered_pkgs.split()) + +class DpkgPM(OpkgDpkgPM): + def __init__(self, d, target_rootfs, archs, base_archs, apt_conf_dir=None, deb_repo_workdir="oe-rootfs-repo", filterbydependencies=True): + super(DpkgPM, self).__init__(d, target_rootfs) + self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), deb_repo_workdir) + + create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_DEB"), "package_write_deb", filterbydependencies) + + if apt_conf_dir is None: + self.apt_conf_dir = self.d.expand("${APTCONF_TARGET}/apt") + else: + self.apt_conf_dir = apt_conf_dir + self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf") + self.apt_get_cmd = bb.utils.which(os.getenv('PATH'), "apt-get") + self.apt_cache_cmd = bb.utils.which(os.getenv('PATH'), "apt-cache") + + self.apt_args = d.getVar("APT_ARGS") + + self.all_arch_list = archs.split() + all_mlb_pkg_arch_list = (self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS') or "").split() + self.all_arch_list.extend(arch for arch in all_mlb_pkg_arch_list if arch not in self.all_arch_list) + + self._create_configs(archs, base_archs) + + self.indexer = DpkgIndexer(self.d, self.deploy_dir) + + def mark_packages(self, status_tag, packages=None): + """ + This function will change a package's status in /var/lib/dpkg/status file. + If 'packages' is None then the new_status will be applied to all + packages + """ + status_file = self.target_rootfs + "/var/lib/dpkg/status" + + with open(status_file, "r") as sf: + with open(status_file + ".tmp", "w+") as tmp_sf: + if packages is None: + tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)", + r"Package: \1\n\2Status: \3%s" % status_tag, + sf.read())) + else: + if type(packages).__name__ != "list": + raise TypeError("'packages' should be a list object") + + status = sf.read() + for pkg in packages: + status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg, + r"Package: %s\n\1Status: \2%s" % (pkg, status_tag), + status) + + tmp_sf.write(status) + + os.rename(status_file + ".tmp", status_file) + + def run_pre_post_installs(self, package_name=None): + """ + Run the pre/post installs for package "package_name". If package_name is + None, then run all pre/post install scriptlets. + """ + info_dir = self.target_rootfs + "/var/lib/dpkg/info" + ControlScript = collections.namedtuple("ControlScript", ["suffix", "name", "argument"]) + control_scripts = [ + ControlScript(".preinst", "Preinstall", "install"), + ControlScript(".postinst", "Postinstall", "configure")] + status_file = self.target_rootfs + "/var/lib/dpkg/status" + installed_pkgs = [] + + with open(status_file, "r") as status: + for line in status.read().split('\n'): + m = re.match(r"^Package: (.*)", line) + if m is not None: + installed_pkgs.append(m.group(1)) + + if package_name is not None and not package_name in installed_pkgs: + return + + os.environ['D'] = self.target_rootfs + os.environ['OFFLINE_ROOT'] = self.target_rootfs + os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['INTERCEPT_DIR'] = self.intercepts_dir + os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') + + for pkg_name in installed_pkgs: + for control_script in control_scripts: + p_full = os.path.join(info_dir, pkg_name + control_script.suffix) + if os.path.exists(p_full): + try: + bb.note("Executing %s for package: %s ..." % + (control_script.name.lower(), pkg_name)) + output = subprocess.check_output([p_full, control_script.argument], + stderr=subprocess.STDOUT).decode("utf-8") + bb.note(output) + except subprocess.CalledProcessError as e: + bb.warn("%s for package %s failed with %d:\n%s" % + (control_script.name, pkg_name, e.returncode, + e.output.decode("utf-8"))) + failed_postinsts_abort([pkg_name], self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) + + def update(self): + os.environ['APT_CONFIG'] = self.apt_conf_file + + self.deploy_dir_lock() + + cmd = "%s update" % self.apt_get_cmd + + try: + subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.fatal("Unable to update the package index files. Command '%s' " + "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) + + self.deploy_dir_unlock() + + def install(self, pkgs, attempt_only=False): + if attempt_only and len(pkgs) == 0: + return + + os.environ['APT_CONFIG'] = self.apt_conf_file + + cmd = "%s %s install --force-yes --allow-unauthenticated --no-remove %s" % \ + (self.apt_get_cmd, self.apt_args, ' '.join(pkgs)) + + try: + bb.note("Installing the following packages: %s" % ' '.join(pkgs)) + subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. " + "Command '%s' returned %d:\n%s" % + (cmd, e.returncode, e.output.decode("utf-8"))) + + # rename *.dpkg-new files/dirs + for root, dirs, files in os.walk(self.target_rootfs): + for dir in dirs: + new_dir = re.sub(r"\.dpkg-new", "", dir) + if dir != new_dir: + os.rename(os.path.join(root, dir), + os.path.join(root, new_dir)) + + for file in files: + new_file = re.sub(r"\.dpkg-new", "", file) + if file != new_file: + os.rename(os.path.join(root, file), + os.path.join(root, new_file)) + + + def remove(self, pkgs, with_dependencies=True): + if not pkgs: + return + + if with_dependencies: + os.environ['APT_CONFIG'] = self.apt_conf_file + cmd = "%s purge %s" % (self.apt_get_cmd, ' '.join(pkgs)) + else: + cmd = "%s --admindir=%s/var/lib/dpkg --instdir=%s" \ + " -P --force-depends %s" % \ + (bb.utils.which(os.getenv('PATH'), "dpkg"), + self.target_rootfs, self.target_rootfs, ' '.join(pkgs)) + + try: + subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.fatal("Unable to remove packages. Command '%s' " + "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) + + def write_index(self): + self.deploy_dir_lock() + + result = self.indexer.write_index() + + self.deploy_dir_unlock() + + if result is not None: + bb.fatal(result) + + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + if feed_uris == "": + return + + sources_conf = os.path.join("%s/etc/apt/sources.list" + % self.target_rootfs) + arch_list = [] + + if feed_archs is None: + for arch in self.all_arch_list: + if not os.path.exists(os.path.join(self.deploy_dir, arch)): + continue + arch_list.append(arch) + else: + arch_list = feed_archs.split() + + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) + + with open(sources_conf, "w+") as sources_file: + for uri in feed_uris: + if arch_list: + for arch in arch_list: + bb.note('Adding dpkg channel at (%s)' % uri) + sources_file.write("deb %s/%s ./\n" % + (uri, arch)) + else: + bb.note('Adding dpkg channel at (%s)' % uri) + sources_file.write("deb %s ./\n" % uri) + + def _create_configs(self, archs, base_archs): + base_archs = re.sub(r"_", r"-", base_archs) + + if os.path.exists(self.apt_conf_dir): + bb.utils.remove(self.apt_conf_dir, True) + + bb.utils.mkdirhier(self.apt_conf_dir) + bb.utils.mkdirhier(self.apt_conf_dir + "/lists/partial/") + bb.utils.mkdirhier(self.apt_conf_dir + "/apt.conf.d/") + bb.utils.mkdirhier(self.apt_conf_dir + "/preferences.d/") + + arch_list = [] + for arch in self.all_arch_list: + if not os.path.exists(os.path.join(self.deploy_dir, arch)): + continue + arch_list.append(arch) + + with open(os.path.join(self.apt_conf_dir, "preferences"), "w+") as prefs_file: + priority = 801 + for arch in arch_list: + prefs_file.write( + "Package: *\n" + "Pin: release l=%s\n" + "Pin-Priority: %d\n\n" % (arch, priority)) + + priority += 5 + + pkg_exclude = self.d.getVar('PACKAGE_EXCLUDE') or "" + for pkg in pkg_exclude.split(): + prefs_file.write( + "Package: %s\n" + "Pin: release *\n" + "Pin-Priority: -1\n\n" % pkg) + + arch_list.reverse() + + with open(os.path.join(self.apt_conf_dir, "sources.list"), "w+") as sources_file: + for arch in arch_list: + sources_file.write("deb file:%s/ ./\n" % + os.path.join(self.deploy_dir, arch)) + + base_arch_list = base_archs.split() + multilib_variants = self.d.getVar("MULTILIB_VARIANTS"); + for variant in multilib_variants.split(): + localdata = bb.data.createCopy(self.d) + variant_tune = localdata.getVar("DEFAULTTUNE_virtclass-multilib-" + variant, False) + orig_arch = localdata.getVar("DPKG_ARCH") + localdata.setVar("DEFAULTTUNE", variant_tune) + variant_arch = localdata.getVar("DPKG_ARCH") + if variant_arch not in base_arch_list: + base_arch_list.append(variant_arch) + + with open(self.apt_conf_file, "w+") as apt_conf: + with open(self.d.expand("${STAGING_ETCDIR_NATIVE}/apt/apt.conf.sample")) as apt_conf_sample: + for line in apt_conf_sample.read().split("\n"): + match_arch = re.match(r" Architecture \".*\";$", line) + architectures = "" + if match_arch: + for base_arch in base_arch_list: + architectures += "\"%s\";" % base_arch + apt_conf.write(" Architectures {%s};\n" % architectures); + apt_conf.write(" Architecture \"%s\";\n" % base_archs) + else: + line = re.sub(r"#ROOTFS#", self.target_rootfs, line) + line = re.sub(r"#APTCONF#", self.apt_conf_dir, line) + apt_conf.write(line + "\n") + + target_dpkg_dir = "%s/var/lib/dpkg" % self.target_rootfs + bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "info")) + + bb.utils.mkdirhier(os.path.join(target_dpkg_dir, "updates")) + + if not os.path.exists(os.path.join(target_dpkg_dir, "status")): + open(os.path.join(target_dpkg_dir, "status"), "w+").close() + if not os.path.exists(os.path.join(target_dpkg_dir, "available")): + open(os.path.join(target_dpkg_dir, "available"), "w+").close() + + def remove_packaging_data(self): + bb.utils.remove(self.target_rootfs + self.d.getVar('opkglibdir'), True) + bb.utils.remove(self.target_rootfs + "/var/lib/dpkg/", True) + + def fix_broken_dependencies(self): + os.environ['APT_CONFIG'] = self.apt_conf_file + + cmd = "%s %s --allow-unauthenticated -f install" % (self.apt_get_cmd, self.apt_args) + + try: + subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.fatal("Cannot fix broken dependencies. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + + def list_installed(self): + return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs() + + def package_info(self, pkg): + """ + Returns a dictionary with the package info. + """ + cmd = "%s show %s" % (self.apt_cache_cmd, pkg) + pkg_info = super(DpkgPM, self).package_info(pkg, cmd) + + pkg_arch = pkg_info[pkg]["pkgarch"] + pkg_filename = pkg_info[pkg]["filename"] + pkg_info[pkg]["filepath"] = \ + os.path.join(self.deploy_dir, pkg_arch, pkg_filename) + + return pkg_info + + def extract(self, pkg): + """ + Returns the path to a tmpdir where resides the contents of a package. + + Deleting the tmpdir is responsability of the caller. + """ + pkg_info = self.package_info(pkg) + if not pkg_info: + bb.fatal("Unable to get information for package '%s' while " + "trying to extract the package." % pkg) + + tmp_dir = super(DpkgPM, self).extract(pkg, pkg_info) + bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz")) + + return tmp_dir diff --git a/poky/meta/lib/oe/package_manager/deb/manifest.py b/poky/meta/lib/oe/package_manager/deb/manifest.py new file mode 100644 index 000000000..0b1203664 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/deb/manifest.py @@ -0,0 +1,26 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from oe.manifest import Manifest + +class DpkgManifest(Manifest): + def create_initial(self): + with open(self.initial_manifest, "w+") as manifest: + manifest.write(self.initial_manifest_file_header) + + for var in self.var_maps[self.manifest_type]: + pkg_list = self.d.getVar(var) + + if pkg_list is None: + continue + + for pkg in pkg_list.split(): + manifest.write("%s,%s\n" % + (self.var_maps[self.manifest_type][var], pkg)) + + def create_final(self): + pass + + def create_full(self, pm): + pass diff --git a/poky/meta/lib/oe/package_manager/deb/rootfs.py b/poky/meta/lib/oe/package_manager/deb/rootfs.py new file mode 100644 index 000000000..819f67eda --- /dev/null +++ b/poky/meta/lib/oe/package_manager/deb/rootfs.py @@ -0,0 +1,210 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import re +import shutil +from oe.rootfs import Rootfs +from oe.manifest import Manifest +from oe.utils import execute_pre_post_process +from oe.package_manager.deb.manifest import DpkgManifest +from oe.package_manager.deb import DpkgPM + +class DpkgOpkgRootfs(Rootfs): + def __init__(self, d, progress_reporter=None, logcatcher=None): + super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher) + + def _get_pkgs_postinsts(self, status_file): + def _get_pkg_depends_list(pkg_depends): + pkg_depends_list = [] + # filter version requirements like libc (>= 1.1) + for dep in pkg_depends.split(', '): + m_dep = re.match(r"^(.*) \(.*\)$", dep) + if m_dep: + dep = m_dep.group(1) + pkg_depends_list.append(dep) + + return pkg_depends_list + + pkgs = {} + pkg_name = "" + pkg_status_match = False + pkg_depends = "" + + with open(status_file) as status: + data = status.read() + status.close() + for line in data.split('\n'): + m_pkg = re.match(r"^Package: (.*)", line) + m_status = re.match(r"^Status:.*unpacked", line) + m_depends = re.match(r"^Depends: (.*)", line) + + #Only one of m_pkg, m_status or m_depends is not None at time + #If m_pkg is not None, we started a new package + if m_pkg is not None: + #Get Package name + pkg_name = m_pkg.group(1) + #Make sure we reset other variables + pkg_status_match = False + pkg_depends = "" + elif m_status is not None: + #New status matched + pkg_status_match = True + elif m_depends is not None: + #New depends macthed + pkg_depends = m_depends.group(1) + else: + pass + + #Now check if we can process package depends and postinst + if "" != pkg_name and pkg_status_match: + pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends) + else: + #Not enough information + pass + + # remove package dependencies not in postinsts + pkg_names = list(pkgs.keys()) + for pkg_name in pkg_names: + deps = pkgs[pkg_name][:] + + for d in deps: + if d not in pkg_names: + pkgs[pkg_name].remove(d) + + return pkgs + + def _get_delayed_postinsts_common(self, status_file): + def _dep_resolve(graph, node, resolved, seen): + seen.append(node) + + for edge in graph[node]: + if edge not in resolved: + if edge in seen: + raise RuntimeError("Packages %s and %s have " \ + "a circular dependency in postinsts scripts." \ + % (node, edge)) + _dep_resolve(graph, edge, resolved, seen) + + resolved.append(node) + + pkg_list = [] + + pkgs = None + if not self.d.getVar('PACKAGE_INSTALL').strip(): + bb.note("Building empty image") + else: + pkgs = self._get_pkgs_postinsts(status_file) + if pkgs: + root = "__packagegroup_postinst__" + pkgs[root] = list(pkgs.keys()) + _dep_resolve(pkgs, root, pkg_list, []) + pkg_list.remove(root) + + if len(pkg_list) == 0: + return None + + return pkg_list + + def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir): + if bb.utils.contains("IMAGE_FEATURES", "package-management", + True, False, self.d): + return + num = 0 + for p in self._get_delayed_postinsts(): + bb.utils.mkdirhier(dst_postinst_dir) + + if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")): + shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"), + os.path.join(dst_postinst_dir, "%03d-%s" % (num, p))) + + num += 1 + +class DpkgRootfs(DpkgOpkgRootfs): + def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): + super(DpkgRootfs, self).__init__(d, progress_reporter, logcatcher) + self.log_check_regex = '^E:' + self.log_check_expected_regexes = \ + [ + "^E: Unmet dependencies." + ] + + bb.utils.remove(self.image_rootfs, True) + bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) + self.manifest = DpkgManifest(d, manifest_dir) + self.pm = DpkgPM(d, d.getVar('IMAGE_ROOTFS'), + d.getVar('PACKAGE_ARCHS'), + d.getVar('DPKG_ARCH')) + + + def _create(self): + pkgs_to_install = self.manifest.parse_initial_manifest() + deb_pre_process_cmds = self.d.getVar('DEB_PREPROCESS_COMMANDS') + deb_post_process_cmds = self.d.getVar('DEB_POSTPROCESS_COMMANDS') + + alt_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/alternatives") + bb.utils.mkdirhier(alt_dir) + + # update PM index files + self.pm.write_index() + + execute_pre_post_process(self.d, deb_pre_process_cmds) + + if self.progress_reporter: + self.progress_reporter.next_stage() + # Don't support incremental, so skip that + self.progress_reporter.next_stage() + + self.pm.update() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + for pkg_type in self.install_order: + if pkg_type in pkgs_to_install: + self.pm.install(pkgs_to_install[pkg_type], + [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) + self.pm.fix_broken_dependencies() + + if self.progress_reporter: + # Don't support attemptonly, so skip that + self.progress_reporter.next_stage() + self.progress_reporter.next_stage() + + self.pm.install_complementary() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self._setup_dbg_rootfs(['/var/lib/dpkg']) + + self.pm.fix_broken_dependencies() + + self.pm.mark_packages("installed") + + self.pm.run_pre_post_installs() + + execute_pre_post_process(self.d, deb_post_process_cmds) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + @staticmethod + def _depends_list(): + return ['DEPLOY_DIR_DEB', 'DEB_SDK_ARCH', 'APTCONF_TARGET', 'APT_ARGS', 'DPKG_ARCH', 'DEB_PREPROCESS_COMMANDS', 'DEB_POSTPROCESS_COMMANDS'] + + def _get_delayed_postinsts(self): + status_file = self.image_rootfs + "/var/lib/dpkg/status" + return self._get_delayed_postinsts_common(status_file) + + def _save_postinsts(self): + dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts") + src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/info") + return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir) + + def _log_check(self): + self._log_check_warn() + self._log_check_error() + + def _cleanup(self): + pass diff --git a/poky/meta/lib/oe/package_manager/deb/sdk.py b/poky/meta/lib/oe/package_manager/deb/sdk.py new file mode 100644 index 000000000..b25eb70b0 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/deb/sdk.py @@ -0,0 +1,96 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import glob +import shutil +from oe.utils import execute_pre_post_process +from oe.sdk import Sdk +from oe.manifest import Manifest +from oe.package_manager.deb import DpkgPM + +class DpkgSdk(Sdk): + def __init__(self, d, manifest_dir=None): + super(DpkgSdk, self).__init__(d, manifest_dir) + + self.target_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt") + self.host_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt-sdk") + + from oe.package_manager.deb.manifest import DpkgManifest + + self.target_manifest = DpkgManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_TARGET) + self.host_manifest = DpkgManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_HOST) + + deb_repo_workdir = "oe-sdk-repo" + if "sdk_ext" in d.getVar("BB_RUNTASK"): + deb_repo_workdir = "oe-sdk-ext-repo" + + self.target_pm = DpkgPM(d, self.sdk_target_sysroot, + self.d.getVar("PACKAGE_ARCHS"), + self.d.getVar("DPKG_ARCH"), + self.target_conf_dir, + deb_repo_workdir=deb_repo_workdir) + + self.host_pm = DpkgPM(d, self.sdk_host_sysroot, + self.d.getVar("SDK_PACKAGE_ARCHS"), + self.d.getVar("DEB_SDK_ARCH"), + self.host_conf_dir, + deb_repo_workdir=deb_repo_workdir) + + def _copy_apt_dir_to(self, dst_dir): + staging_etcdir_native = self.d.getVar("STAGING_ETCDIR_NATIVE") + + self.remove(dst_dir, True) + + shutil.copytree(os.path.join(staging_etcdir_native, "apt"), dst_dir) + + def _populate_sysroot(self, pm, manifest): + pkgs_to_install = manifest.parse_initial_manifest() + + pm.write_index() + pm.update() + + for pkg_type in self.install_order: + if pkg_type in pkgs_to_install: + pm.install(pkgs_to_install[pkg_type], + [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) + + def _populate(self): + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) + + bb.note("Installing TARGET packages") + self._populate_sysroot(self.target_pm, self.target_manifest) + + self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) + + self.target_pm.run_intercepts(populate_sdk='target') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) + + self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.target_pm.remove_packaging_data() + + bb.note("Installing NATIVESDK packages") + self._populate_sysroot(self.host_pm, self.host_manifest) + self.install_locales(self.host_pm) + + self.host_pm.run_intercepts(populate_sdk='host') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) + + self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path, + "etc", "apt")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.host_pm.remove_packaging_data() + + native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path, + "var", "lib", "dpkg") + self.mkdirhier(native_dpkg_state_dir) + for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "dpkg", "*")): + self.movefile(f, native_dpkg_state_dir) + self.remove(os.path.join(self.sdk_output, "var"), True) diff --git a/poky/meta/lib/oe/package_manager/ipk/__init__.py b/poky/meta/lib/oe/package_manager/ipk/__init__.py new file mode 100644 index 000000000..9603993a5 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/ipk/__init__.py @@ -0,0 +1,507 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import re +import shutil +import subprocess +from oe.package_manager import * + +class OpkgIndexer(Indexer): + def write_index(self): + arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS", + "SDK_PACKAGE_ARCHS", + ] + + opkg_index_cmd = bb.utils.which(os.getenv('PATH'), "opkg-make-index") + if self.d.getVar('PACKAGE_FEED_SIGN') == '1': + signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) + else: + signer = None + + if not os.path.exists(os.path.join(self.deploy_dir, "Packages")): + open(os.path.join(self.deploy_dir, "Packages"), "w").close() + + index_cmds = set() + index_sign_files = set() + for arch_var in arch_vars: + archs = self.d.getVar(arch_var) + if archs is None: + continue + + for arch in archs.split(): + pkgs_dir = os.path.join(self.deploy_dir, arch) + pkgs_file = os.path.join(pkgs_dir, "Packages") + + if not os.path.isdir(pkgs_dir): + continue + + if not os.path.exists(pkgs_file): + open(pkgs_file, "w").close() + + index_cmds.add('%s --checksum md5 --checksum sha256 -r %s -p %s -m %s' % + (opkg_index_cmd, pkgs_file, pkgs_file, pkgs_dir)) + + index_sign_files.add(pkgs_file) + + if len(index_cmds) == 0: + bb.note("There are no packages in %s!" % self.deploy_dir) + return + + oe.utils.multiprocess_launch(create_index, index_cmds, self.d) + + if signer: + feed_sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE') + is_ascii_sig = (feed_sig_type.upper() != "BIN") + for f in index_sign_files: + signer.detach_sign(f, + self.d.getVar('PACKAGE_FEED_GPG_NAME'), + self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'), + armor=is_ascii_sig) + +class OpkgPkgsList(PkgsList): + def __init__(self, d, rootfs_dir, config_file): + super(OpkgPkgsList, self).__init__(d, rootfs_dir) + + self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg") + self.opkg_args = "-f %s -o %s " % (config_file, rootfs_dir) + self.opkg_args += self.d.getVar("OPKG_ARGS") + + def list_pkgs(self, format=None): + cmd = "%s %s status" % (self.opkg_cmd, self.opkg_args) + + # opkg returns success even when it printed some + # "Collected errors:" report to stderr. Mixing stderr into + # stdout then leads to random failures later on when + # parsing the output. To avoid this we need to collect both + # output streams separately and check for empty stderr. + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) + cmd_output, cmd_stderr = p.communicate() + cmd_output = cmd_output.decode("utf-8") + cmd_stderr = cmd_stderr.decode("utf-8") + if p.returncode or cmd_stderr: + bb.fatal("Cannot get the installed packages list. Command '%s' " + "returned %d and stderr:\n%s" % (cmd, p.returncode, cmd_stderr)) + + return opkg_query(cmd_output) + + + +class OpkgDpkgPM(PackageManager): + def __init__(self, d, target_rootfs): + """ + This is an abstract class. Do not instantiate this directly. + """ + super(OpkgDpkgPM, self).__init__(d, target_rootfs) + + def package_info(self, pkg, cmd): + """ + Returns a dictionary with the package info. + + This method extracts the common parts for Opkg and Dpkg + """ + + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8") + except subprocess.CalledProcessError as e: + bb.fatal("Unable to list available packages. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + return opkg_query(output) + + def extract(self, pkg, pkg_info): + """ + Returns the path to a tmpdir where resides the contents of a package. + + Deleting the tmpdir is responsability of the caller. + + This method extracts the common parts for Opkg and Dpkg + """ + + ar_cmd = bb.utils.which(os.getenv("PATH"), "ar") + tar_cmd = bb.utils.which(os.getenv("PATH"), "tar") + pkg_path = pkg_info[pkg]["filepath"] + + if not os.path.isfile(pkg_path): + bb.fatal("Unable to extract package for '%s'." + "File %s doesn't exists" % (pkg, pkg_path)) + + tmp_dir = tempfile.mkdtemp() + current_dir = os.getcwd() + os.chdir(tmp_dir) + data_tar = 'data.tar.xz' + + try: + cmd = [ar_cmd, 'x', pkg_path] + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + cmd = [tar_cmd, 'xf', data_tar] + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s" % (pkg_path, ' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + except OSError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s at %s" % (pkg_path, ' '.join(cmd), e.errno, e.strerror, e.filename)) + + bb.note("Extracted %s to %s" % (pkg_path, tmp_dir)) + bb.utils.remove(os.path.join(tmp_dir, "debian-binary")) + bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz")) + os.chdir(current_dir) + + return tmp_dir + + def _handle_intercept_failure(self, registered_pkgs): + self.mark_packages("unpacked", registered_pkgs.split()) + +class OpkgPM(OpkgDpkgPM): + def __init__(self, d, target_rootfs, config_file, archs, task_name='target', ipk_repo_workdir="oe-rootfs-repo", filterbydependencies=True, prepare_index=True): + super(OpkgPM, self).__init__(d, target_rootfs) + + self.config_file = config_file + self.pkg_archs = archs + self.task_name = task_name + + self.deploy_dir = oe.path.join(self.d.getVar('WORKDIR'), ipk_repo_workdir) + self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock") + self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg") + self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/') ,target_rootfs) + self.opkg_args += self.d.getVar("OPKG_ARGS") + + if prepare_index: + create_packages_dir(self.d, self.deploy_dir, d.getVar("DEPLOY_DIR_IPK"), "package_write_ipk", filterbydependencies) + + opkg_lib_dir = self.d.getVar('OPKGLIBDIR') + if opkg_lib_dir[0] == "/": + opkg_lib_dir = opkg_lib_dir[1:] + + self.opkg_dir = os.path.join(target_rootfs, opkg_lib_dir, "opkg") + + bb.utils.mkdirhier(self.opkg_dir) + + self.saved_opkg_dir = self.d.expand('${T}/saved/%s' % self.task_name) + if not os.path.exists(self.d.expand('${T}/saved')): + bb.utils.mkdirhier(self.d.expand('${T}/saved')) + + self.from_feeds = (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") == "1" + if self.from_feeds: + self._create_custom_config() + else: + self._create_config() + + self.indexer = OpkgIndexer(self.d, self.deploy_dir) + + def mark_packages(self, status_tag, packages=None): + """ + This function will change a package's status in /var/lib/opkg/status file. + If 'packages' is None then the new_status will be applied to all + packages + """ + status_file = os.path.join(self.opkg_dir, "status") + + with open(status_file, "r") as sf: + with open(status_file + ".tmp", "w+") as tmp_sf: + if packages is None: + tmp_sf.write(re.sub(r"Package: (.*?)\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)", + r"Package: \1\n\2Status: \3%s" % status_tag, + sf.read())) + else: + if type(packages).__name__ != "list": + raise TypeError("'packages' should be a list object") + + status = sf.read() + for pkg in packages: + status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: (.*)(?:unpacked|installed)" % pkg, + r"Package: %s\n\1Status: \2%s" % (pkg, status_tag), + status) + + tmp_sf.write(status) + + os.rename(status_file + ".tmp", status_file) + + def _create_custom_config(self): + bb.note("Building from feeds activated!") + + with open(self.config_file, "w+") as config_file: + priority = 1 + for arch in self.pkg_archs.split(): + config_file.write("arch %s %d\n" % (arch, priority)) + priority += 5 + + for line in (self.d.getVar('IPK_FEED_URIS') or "").split(): + feed_match = re.match(r"^[ \t]*(.*)##([^ \t]*)[ \t]*$", line) + + if feed_match is not None: + feed_name = feed_match.group(1) + feed_uri = feed_match.group(2) + + bb.note("Add %s feed with URL %s" % (feed_name, feed_uri)) + + config_file.write("src/gz %s %s\n" % (feed_name, feed_uri)) + + """ + Allow to use package deploy directory contents as quick devel-testing + feed. This creates individual feed configs for each arch subdir of those + specified as compatible for the current machine. + NOTE: Development-helper feature, NOT a full-fledged feed. + """ + if (self.d.getVar('FEED_DEPLOYDIR_BASE_URI') or "") != "": + for arch in self.pkg_archs.split(): + cfg_file_name = os.path.join(self.target_rootfs, + self.d.getVar("sysconfdir"), + "opkg", + "local-%s-feed.conf" % arch) + + with open(cfg_file_name, "w+") as cfg_file: + cfg_file.write("src/gz local-%s %s/%s" % + (arch, + self.d.getVar('FEED_DEPLOYDIR_BASE_URI'), + arch)) + + if self.d.getVar('OPKGLIBDIR') != '/var/lib': + # There is no command line option for this anymore, we need to add + # info_dir and status_file to config file, if OPKGLIBDIR doesn't have + # the default value of "/var/lib" as defined in opkg: + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists" + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info" + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status" + cfg_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info')) + cfg_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists')) + cfg_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status')) + + + def _create_config(self): + with open(self.config_file, "w+") as config_file: + priority = 1 + for arch in self.pkg_archs.split(): + config_file.write("arch %s %d\n" % (arch, priority)) + priority += 5 + + config_file.write("src oe file:%s\n" % self.deploy_dir) + + for arch in self.pkg_archs.split(): + pkgs_dir = os.path.join(self.deploy_dir, arch) + if os.path.isdir(pkgs_dir): + config_file.write("src oe-%s file:%s\n" % + (arch, pkgs_dir)) + + if self.d.getVar('OPKGLIBDIR') != '/var/lib': + # There is no command line option for this anymore, we need to add + # info_dir and status_file to config file, if OPKGLIBDIR doesn't have + # the default value of "/var/lib" as defined in opkg: + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_LISTS_DIR VARDIR "/lib/opkg/lists" + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR VARDIR "/lib/opkg/info" + # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE VARDIR "/lib/opkg/status" + config_file.write("option info_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'info')) + config_file.write("option lists_dir %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'lists')) + config_file.write("option status_file %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR'), 'opkg', 'status')) + + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + if feed_uris == "": + return + + rootfs_config = os.path.join('%s/etc/opkg/base-feeds.conf' + % self.target_rootfs) + + os.makedirs('%s/etc/opkg' % self.target_rootfs, exist_ok=True) + + feed_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) + archs = self.pkg_archs.split() if feed_archs is None else feed_archs.split() + + with open(rootfs_config, "w+") as config_file: + uri_iterator = 0 + for uri in feed_uris: + if archs: + for arch in archs: + if (feed_archs is None) and (not os.path.exists(oe.path.join(self.deploy_dir, arch))): + continue + bb.note('Adding opkg feed url-%s-%d (%s)' % + (arch, uri_iterator, uri)) + config_file.write("src/gz uri-%s-%d %s/%s\n" % + (arch, uri_iterator, uri, arch)) + else: + bb.note('Adding opkg feed url-%d (%s)' % + (uri_iterator, uri)) + config_file.write("src/gz uri-%d %s\n" % + (uri_iterator, uri)) + + uri_iterator += 1 + + def update(self): + self.deploy_dir_lock() + + cmd = "%s %s update" % (self.opkg_cmd, self.opkg_args) + + try: + subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + self.deploy_dir_unlock() + bb.fatal("Unable to update the package index files. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + + self.deploy_dir_unlock() + + def install(self, pkgs, attempt_only=False): + if not pkgs: + return + + cmd = "%s %s" % (self.opkg_cmd, self.opkg_args) + for exclude in (self.d.getVar("PACKAGE_EXCLUDE") or "").split(): + cmd += " --add-exclude %s" % exclude + for bad_recommendation in (self.d.getVar("BAD_RECOMMENDATIONS") or "").split(): + cmd += " --add-ignore-recommends %s" % bad_recommendation + cmd += " install " + cmd += " ".join(pkgs) + + os.environ['D'] = self.target_rootfs + os.environ['OFFLINE_ROOT'] = self.target_rootfs + os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['INTERCEPT_DIR'] = self.intercepts_dir + os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') + + try: + bb.note("Installing the following packages: %s" % ' '.join(pkgs)) + bb.note(cmd) + output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8") + bb.note(output) + failed_pkgs = [] + for line in output.split('\n'): + if line.endswith("configuration required on target."): + bb.warn(line) + failed_pkgs.append(line.split(".")[0]) + if failed_pkgs: + failed_postinsts_abort(failed_pkgs, self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) + except subprocess.CalledProcessError as e: + (bb.fatal, bb.warn)[attempt_only]("Unable to install packages. " + "Command '%s' returned %d:\n%s" % + (cmd, e.returncode, e.output.decode("utf-8"))) + + def remove(self, pkgs, with_dependencies=True): + if not pkgs: + return + + if with_dependencies: + cmd = "%s %s --force-remove --force-removal-of-dependent-packages remove %s" % \ + (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) + else: + cmd = "%s %s --force-depends remove %s" % \ + (self.opkg_cmd, self.opkg_args, ' '.join(pkgs)) + + try: + bb.note(cmd) + output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8") + bb.note(output) + except subprocess.CalledProcessError as e: + bb.fatal("Unable to remove packages. Command '%s' " + "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8"))) + + def write_index(self): + self.deploy_dir_lock() + + result = self.indexer.write_index() + + self.deploy_dir_unlock() + + if result is not None: + bb.fatal(result) + + def remove_packaging_data(self): + bb.utils.remove(self.opkg_dir, True) + # create the directory back, it's needed by PM lock + bb.utils.mkdirhier(self.opkg_dir) + + def remove_lists(self): + if not self.from_feeds: + bb.utils.remove(os.path.join(self.opkg_dir, "lists"), True) + + def list_installed(self): + return OpkgPkgsList(self.d, self.target_rootfs, self.config_file).list_pkgs() + + def dummy_install(self, pkgs): + """ + The following function dummy installs pkgs and returns the log of output. + """ + if len(pkgs) == 0: + return + + # Create an temp dir as opkg root for dummy installation + temp_rootfs = self.d.expand('${T}/opkg') + opkg_lib_dir = self.d.getVar('OPKGLIBDIR') + if opkg_lib_dir[0] == "/": + opkg_lib_dir = opkg_lib_dir[1:] + temp_opkg_dir = os.path.join(temp_rootfs, opkg_lib_dir, 'opkg') + bb.utils.mkdirhier(temp_opkg_dir) + + opkg_args = "-f %s -o %s " % (self.config_file, temp_rootfs) + opkg_args += self.d.getVar("OPKG_ARGS") + + cmd = "%s %s update" % (self.opkg_cmd, opkg_args) + try: + subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as e: + bb.fatal("Unable to update. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + + # Dummy installation + cmd = "%s %s --noaction install %s " % (self.opkg_cmd, + opkg_args, + ' '.join(pkgs)) + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as e: + bb.fatal("Unable to dummy install packages. Command '%s' " + "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8"))) + + bb.utils.remove(temp_rootfs, True) + + return output + + def backup_packaging_data(self): + # Save the opkglib for increment ipk image generation + if os.path.exists(self.saved_opkg_dir): + bb.utils.remove(self.saved_opkg_dir, True) + shutil.copytree(self.opkg_dir, + self.saved_opkg_dir, + symlinks=True) + + def recover_packaging_data(self): + # Move the opkglib back + if os.path.exists(self.saved_opkg_dir): + if os.path.exists(self.opkg_dir): + bb.utils.remove(self.opkg_dir, True) + + bb.note('Recover packaging data') + shutil.copytree(self.saved_opkg_dir, + self.opkg_dir, + symlinks=True) + + def package_info(self, pkg): + """ + Returns a dictionary with the package info. + """ + cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg) + pkg_info = super(OpkgPM, self).package_info(pkg, cmd) + + pkg_arch = pkg_info[pkg]["arch"] + pkg_filename = pkg_info[pkg]["filename"] + pkg_info[pkg]["filepath"] = \ + os.path.join(self.deploy_dir, pkg_arch, pkg_filename) + + return pkg_info + + def extract(self, pkg): + """ + Returns the path to a tmpdir where resides the contents of a package. + + Deleting the tmpdir is responsability of the caller. + """ + pkg_info = self.package_info(pkg) + if not pkg_info: + bb.fatal("Unable to get information for package '%s' while " + "trying to extract the package." % pkg) + + tmp_dir = super(OpkgPM, self).extract(pkg, pkg_info) + bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz")) + + return tmp_dir diff --git a/poky/meta/lib/oe/package_manager/ipk/manifest.py b/poky/meta/lib/oe/package_manager/ipk/manifest.py new file mode 100644 index 000000000..69676903a --- /dev/null +++ b/poky/meta/lib/oe/package_manager/ipk/manifest.py @@ -0,0 +1,73 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from oe.manifest import Manifest + +class OpkgManifest(Manifest): + """ + Returns a dictionary object with mip and mlp packages. + """ + def _split_multilib(self, pkg_list): + pkgs = dict() + + for pkg in pkg_list.split(): + pkg_type = self.PKG_TYPE_MUST_INSTALL + + ml_variants = self.d.getVar('MULTILIB_VARIANTS').split() + + for ml_variant in ml_variants: + if pkg.startswith(ml_variant + '-'): + pkg_type = self.PKG_TYPE_MULTILIB + + if not pkg_type in pkgs: + pkgs[pkg_type] = pkg + else: + pkgs[pkg_type] += " " + pkg + + return pkgs + + def create_initial(self): + pkgs = dict() + + with open(self.initial_manifest, "w+") as manifest: + manifest.write(self.initial_manifest_file_header) + + for var in self.var_maps[self.manifest_type]: + if var in self.vars_to_split: + split_pkgs = self._split_multilib(self.d.getVar(var)) + if split_pkgs is not None: + pkgs = dict(list(pkgs.items()) + list(split_pkgs.items())) + else: + pkg_list = self.d.getVar(var) + if pkg_list is not None: + pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var) + + for pkg_type in sorted(pkgs): + for pkg in sorted(pkgs[pkg_type].split()): + manifest.write("%s,%s\n" % (pkg_type, pkg)) + + def create_final(self): + pass + + def create_full(self, pm): + if not os.path.exists(self.initial_manifest): + self.create_initial() + + initial_manifest = self.parse_initial_manifest() + pkgs_to_install = list() + for pkg_type in initial_manifest: + pkgs_to_install += initial_manifest[pkg_type] + if len(pkgs_to_install) == 0: + return + + output = pm.dummy_install(pkgs_to_install) + + with open(self.full_manifest, 'w+') as manifest: + pkg_re = re.compile('^Installing ([^ ]+) [^ ].*') + for line in set(output.split('\n')): + m = pkg_re.match(line) + if m: + manifest.write(m.group(1) + '\n') + + return diff --git a/poky/meta/lib/oe/package_manager/ipk/rootfs.py b/poky/meta/lib/oe/package_manager/ipk/rootfs.py new file mode 100644 index 000000000..63b4a59c4 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/ipk/rootfs.py @@ -0,0 +1,387 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import re +import filecmp +import shutil +from oe.rootfs import Rootfs +from oe.manifest import Manifest +from oe.utils import execute_pre_post_process +from oe.package_manager.ipk.manifest import OpkgManifest +from oe.package_manager.ipk import OpkgPM + +class DpkgOpkgRootfs(Rootfs): + def __init__(self, d, progress_reporter=None, logcatcher=None): + super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher) + + def _get_pkgs_postinsts(self, status_file): + def _get_pkg_depends_list(pkg_depends): + pkg_depends_list = [] + # filter version requirements like libc (>= 1.1) + for dep in pkg_depends.split(', '): + m_dep = re.match(r"^(.*) \(.*\)$", dep) + if m_dep: + dep = m_dep.group(1) + pkg_depends_list.append(dep) + + return pkg_depends_list + + pkgs = {} + pkg_name = "" + pkg_status_match = False + pkg_depends = "" + + with open(status_file) as status: + data = status.read() + status.close() + for line in data.split('\n'): + m_pkg = re.match(r"^Package: (.*)", line) + m_status = re.match(r"^Status:.*unpacked", line) + m_depends = re.match(r"^Depends: (.*)", line) + + #Only one of m_pkg, m_status or m_depends is not None at time + #If m_pkg is not None, we started a new package + if m_pkg is not None: + #Get Package name + pkg_name = m_pkg.group(1) + #Make sure we reset other variables + pkg_status_match = False + pkg_depends = "" + elif m_status is not None: + #New status matched + pkg_status_match = True + elif m_depends is not None: + #New depends macthed + pkg_depends = m_depends.group(1) + else: + pass + + #Now check if we can process package depends and postinst + if "" != pkg_name and pkg_status_match: + pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends) + else: + #Not enough information + pass + + # remove package dependencies not in postinsts + pkg_names = list(pkgs.keys()) + for pkg_name in pkg_names: + deps = pkgs[pkg_name][:] + + for d in deps: + if d not in pkg_names: + pkgs[pkg_name].remove(d) + + return pkgs + + def _get_delayed_postinsts_common(self, status_file): + def _dep_resolve(graph, node, resolved, seen): + seen.append(node) + + for edge in graph[node]: + if edge not in resolved: + if edge in seen: + raise RuntimeError("Packages %s and %s have " \ + "a circular dependency in postinsts scripts." \ + % (node, edge)) + _dep_resolve(graph, edge, resolved, seen) + + resolved.append(node) + + pkg_list = [] + + pkgs = None + if not self.d.getVar('PACKAGE_INSTALL').strip(): + bb.note("Building empty image") + else: + pkgs = self._get_pkgs_postinsts(status_file) + if pkgs: + root = "__packagegroup_postinst__" + pkgs[root] = list(pkgs.keys()) + _dep_resolve(pkgs, root, pkg_list, []) + pkg_list.remove(root) + + if len(pkg_list) == 0: + return None + + return pkg_list + + def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir): + if bb.utils.contains("IMAGE_FEATURES", "package-management", + True, False, self.d): + return + num = 0 + for p in self._get_delayed_postinsts(): + bb.utils.mkdirhier(dst_postinst_dir) + + if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")): + shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"), + os.path.join(dst_postinst_dir, "%03d-%s" % (num, p))) + + num += 1 + +class OpkgRootfs(DpkgOpkgRootfs): + def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): + super(OpkgRootfs, self).__init__(d, progress_reporter, logcatcher) + self.log_check_regex = '(exit 1|Collected errors)' + + self.manifest = OpkgManifest(d, manifest_dir) + self.opkg_conf = self.d.getVar("IPKGCONF_TARGET") + self.pkg_archs = self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS") + + self.inc_opkg_image_gen = self.d.getVar('INC_IPK_IMAGE_GEN') or "" + if self._remove_old_rootfs(): + bb.utils.remove(self.image_rootfs, True) + self.pm = OpkgPM(d, + self.image_rootfs, + self.opkg_conf, + self.pkg_archs) + else: + self.pm = OpkgPM(d, + self.image_rootfs, + self.opkg_conf, + self.pkg_archs) + self.pm.recover_packaging_data() + + bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) + + def _prelink_file(self, root_dir, filename): + bb.note('prelink %s in %s' % (filename, root_dir)) + prelink_cfg = oe.path.join(root_dir, + self.d.expand('${sysconfdir}/prelink.conf')) + if not os.path.exists(prelink_cfg): + shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'), + prelink_cfg) + + cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink') + self._exec_shell_cmd([cmd_prelink, + '--root', + root_dir, + '-amR', + '-N', + '-c', + self.d.expand('${sysconfdir}/prelink.conf')]) + + ''' + Compare two files with the same key twice to see if they are equal. + If they are not equal, it means they are duplicated and come from + different packages. + 1st: Comapre them directly; + 2nd: While incremental image creation is enabled, one of the + files could be probaly prelinked in the previous image + creation and the file has been changed, so we need to + prelink the other one and compare them. + ''' + def _file_equal(self, key, f1, f2): + + # Both of them are not prelinked + if filecmp.cmp(f1, f2): + return True + + if bb.data.inherits_class('image-prelink', self.d): + if self.image_rootfs not in f1: + self._prelink_file(f1.replace(key, ''), f1) + + if self.image_rootfs not in f2: + self._prelink_file(f2.replace(key, ''), f2) + + # Both of them are prelinked + if filecmp.cmp(f1, f2): + return True + + # Not equal + return False + + """ + This function was reused from the old implementation. + See commit: "image.bbclass: Added variables for multilib support." by + Lianhao Lu. + """ + def _multilib_sanity_test(self, dirs): + + allow_replace = self.d.getVar("MULTILIBRE_ALLOW_REP") + if allow_replace is None: + allow_replace = "" + + allow_rep = re.compile(re.sub(r"\|$", r"", allow_replace)) + error_prompt = "Multilib check error:" + + files = {} + for dir in dirs: + for root, subfolders, subfiles in os.walk(dir): + for file in subfiles: + item = os.path.join(root, file) + key = str(os.path.join("/", os.path.relpath(item, dir))) + + valid = True + if key in files: + #check whether the file is allow to replace + if allow_rep.match(key): + valid = True + else: + if os.path.exists(files[key]) and \ + os.path.exists(item) and \ + not self._file_equal(key, files[key], item): + valid = False + bb.fatal("%s duplicate files %s %s is not the same\n" % + (error_prompt, item, files[key])) + + #pass the check, add to list + if valid: + files[key] = item + + def _multilib_test_install(self, pkgs): + ml_temp = self.d.getVar("MULTILIB_TEMP_ROOTFS") + bb.utils.mkdirhier(ml_temp) + + dirs = [self.image_rootfs] + + for variant in self.d.getVar("MULTILIB_VARIANTS").split(): + ml_target_rootfs = os.path.join(ml_temp, variant) + + bb.utils.remove(ml_target_rootfs, True) + + ml_opkg_conf = os.path.join(ml_temp, + variant + "-" + os.path.basename(self.opkg_conf)) + + ml_pm = OpkgPM(self.d, ml_target_rootfs, ml_opkg_conf, self.pkg_archs, prepare_index=False) + + ml_pm.update() + ml_pm.install(pkgs) + + dirs.append(ml_target_rootfs) + + self._multilib_sanity_test(dirs) + + ''' + While ipk incremental image generation is enabled, it will remove the + unneeded pkgs by comparing the old full manifest in previous existing + image and the new full manifest in the current image. + ''' + def _remove_extra_packages(self, pkgs_initial_install): + if self.inc_opkg_image_gen == "1": + # Parse full manifest in previous existing image creation session + old_full_manifest = self.manifest.parse_full_manifest() + + # Create full manifest for the current image session, the old one + # will be replaced by the new one. + self.manifest.create_full(self.pm) + + # Parse full manifest in current image creation session + new_full_manifest = self.manifest.parse_full_manifest() + + pkg_to_remove = list() + for pkg in old_full_manifest: + if pkg not in new_full_manifest: + pkg_to_remove.append(pkg) + + if pkg_to_remove != []: + bb.note('decremental removed: %s' % ' '.join(pkg_to_remove)) + self.pm.remove(pkg_to_remove) + + ''' + Compare with previous existing image creation, if some conditions + triggered, the previous old image should be removed. + The conditions include any of 'PACKAGE_EXCLUDE, NO_RECOMMENDATIONS + and BAD_RECOMMENDATIONS' has been changed. + ''' + def _remove_old_rootfs(self): + if self.inc_opkg_image_gen != "1": + return True + + vars_list_file = self.d.expand('${T}/vars_list') + + old_vars_list = "" + if os.path.exists(vars_list_file): + old_vars_list = open(vars_list_file, 'r+').read() + + new_vars_list = '%s:%s:%s\n' % \ + ((self.d.getVar('BAD_RECOMMENDATIONS') or '').strip(), + (self.d.getVar('NO_RECOMMENDATIONS') or '').strip(), + (self.d.getVar('PACKAGE_EXCLUDE') or '').strip()) + open(vars_list_file, 'w+').write(new_vars_list) + + if old_vars_list != new_vars_list: + return True + + return False + + def _create(self): + pkgs_to_install = self.manifest.parse_initial_manifest() + opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS') + opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS') + + # update PM index files + self.pm.write_index() + + execute_pre_post_process(self.d, opkg_pre_process_cmds) + + if self.progress_reporter: + self.progress_reporter.next_stage() + # Steps are a bit different in order, skip next + self.progress_reporter.next_stage() + + self.pm.update() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + if self.inc_opkg_image_gen == "1": + self._remove_extra_packages(pkgs_to_install) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + for pkg_type in self.install_order: + if pkg_type in pkgs_to_install: + # For multilib, we perform a sanity test before final install + # If sanity test fails, it will automatically do a bb.fatal() + # and the installation will stop + if pkg_type == Manifest.PKG_TYPE_MULTILIB: + self._multilib_test_install(pkgs_to_install[pkg_type]) + + self.pm.install(pkgs_to_install[pkg_type], + [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self.pm.install_complementary() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + opkg_lib_dir = self.d.getVar('OPKGLIBDIR') + opkg_dir = os.path.join(opkg_lib_dir, 'opkg') + self._setup_dbg_rootfs([opkg_dir]) + + execute_pre_post_process(self.d, opkg_post_process_cmds) + + if self.inc_opkg_image_gen == "1": + self.pm.backup_packaging_data() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + @staticmethod + def _depends_list(): + return ['IPKGCONF_SDK', 'IPK_FEED_URIS', 'DEPLOY_DIR_IPK', 'IPKGCONF_TARGET', 'INC_IPK_IMAGE_GEN', 'OPKG_ARGS', 'OPKGLIBDIR', 'OPKG_PREPROCESS_COMMANDS', 'OPKG_POSTPROCESS_COMMANDS', 'OPKGLIBDIR'] + + def _get_delayed_postinsts(self): + status_file = os.path.join(self.image_rootfs, + self.d.getVar('OPKGLIBDIR').strip('/'), + "opkg", "status") + return self._get_delayed_postinsts_common(status_file) + + def _save_postinsts(self): + dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts") + src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info") + return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir) + + def _log_check(self): + self._log_check_warn() + self._log_check_error() + + def _cleanup(self): + self.pm.remove_lists() diff --git a/poky/meta/lib/oe/package_manager/ipk/sdk.py b/poky/meta/lib/oe/package_manager/ipk/sdk.py new file mode 100644 index 000000000..47c0a92c1 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/ipk/sdk.py @@ -0,0 +1,96 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import glob +import shutil +from oe.utils import execute_pre_post_process +from oe.sdk import Sdk +from oe.manifest import Manifest +from oe.package_manager.ipk import OpkgPM + +class OpkgSdk(Sdk): + def __init__(self, d, manifest_dir=None): + super(OpkgSdk, self).__init__(d, manifest_dir) + + self.target_conf = self.d.getVar("IPKGCONF_TARGET") + self.host_conf = self.d.getVar("IPKGCONF_SDK") + + from oe.package_manager.ipk.manifest import OpkgManifest + self.target_manifest = OpkgManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_TARGET) + self.host_manifest = OpkgManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_HOST) + + ipk_repo_workdir = "oe-sdk-repo" + if "sdk_ext" in d.getVar("BB_RUNTASK"): + ipk_repo_workdir = "oe-sdk-ext-repo" + + self.target_pm = OpkgPM(d, self.sdk_target_sysroot, self.target_conf, + self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"), + ipk_repo_workdir=ipk_repo_workdir) + + self.host_pm = OpkgPM(d, self.sdk_host_sysroot, self.host_conf, + self.d.getVar("SDK_PACKAGE_ARCHS"), + ipk_repo_workdir=ipk_repo_workdir) + + def _populate_sysroot(self, pm, manifest): + pkgs_to_install = manifest.parse_initial_manifest() + + if (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") != "1": + pm.write_index() + + pm.update() + + for pkg_type in self.install_order: + if pkg_type in pkgs_to_install: + pm.install(pkgs_to_install[pkg_type], + [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) + + def _populate(self): + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) + + bb.note("Installing TARGET packages") + self._populate_sysroot(self.target_pm, self.target_manifest) + + self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) + + self.target_pm.run_intercepts(populate_sdk='target') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.target_pm.remove_packaging_data() + + bb.note("Installing NATIVESDK packages") + self._populate_sysroot(self.host_pm, self.host_manifest) + self.install_locales(self.host_pm) + + self.host_pm.run_intercepts(populate_sdk='host') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.host_pm.remove_packaging_data() + + target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir) + host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir) + + self.mkdirhier(target_sysconfdir) + shutil.copy(self.target_conf, target_sysconfdir) + os.chmod(os.path.join(target_sysconfdir, + os.path.basename(self.target_conf)), 0o644) + + self.mkdirhier(host_sysconfdir) + shutil.copy(self.host_conf, host_sysconfdir) + os.chmod(os.path.join(host_sysconfdir, + os.path.basename(self.host_conf)), 0o644) + + native_opkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path, + self.d.getVar('localstatedir_nativesdk').strip('/'), + "lib", "opkg") + self.mkdirhier(native_opkg_state_dir) + for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "opkg", "*")): + self.movefile(f, native_opkg_state_dir) + + self.remove(os.path.join(self.sdk_output, "var"), True) diff --git a/poky/meta/lib/oe/package_manager/rpm/__init__.py b/poky/meta/lib/oe/package_manager/rpm/__init__.py new file mode 100644 index 000000000..c91f61ae5 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/rpm/__init__.py @@ -0,0 +1,404 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import shutil +import subprocess +from oe.package_manager import * + +class RpmIndexer(Indexer): + def write_index(self): + self.do_write_index(self.deploy_dir) + + def do_write_index(self, deploy_dir): + if self.d.getVar('PACKAGE_FEED_SIGN') == '1': + signer = get_signer(self.d, self.d.getVar('PACKAGE_FEED_GPG_BACKEND')) + else: + signer = None + + createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c") + result = create_index("%s --update -q %s" % (createrepo_c, deploy_dir)) + if result: + bb.fatal(result) + + # Sign repomd + if signer: + sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE') + is_ascii_sig = (sig_type.upper() != "BIN") + signer.detach_sign(os.path.join(deploy_dir, 'repodata', 'repomd.xml'), + self.d.getVar('PACKAGE_FEED_GPG_NAME'), + self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'), + armor=is_ascii_sig) + +class RpmSubdirIndexer(RpmIndexer): + def write_index(self): + bb.note("Generating package index for %s" %(self.deploy_dir)) + self.do_write_index(self.deploy_dir) + for entry in os.walk(self.deploy_dir): + if os.path.samefile(self.deploy_dir, entry[0]): + for dir in entry[1]: + if dir != 'repodata': + dir_path = oe.path.join(self.deploy_dir, dir) + bb.note("Generating package index for %s" %(dir_path)) + self.do_write_index(dir_path) + + +class RpmPkgsList(PkgsList): + def list_pkgs(self): + return RpmPM(self.d, self.rootfs_dir, self.d.getVar('TARGET_VENDOR'), needfeed=False).list_installed() + +class RpmPM(PackageManager): + def __init__(self, + d, + target_rootfs, + target_vendor, + task_name='target', + arch_var=None, + os_var=None, + rpm_repo_workdir="oe-rootfs-repo", + filterbydependencies=True, + needfeed=True): + super(RpmPM, self).__init__(d, target_rootfs) + self.target_vendor = target_vendor + self.task_name = task_name + if arch_var == None: + self.archs = self.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS').replace("-","_") + else: + self.archs = self.d.getVar(arch_var).replace("-","_") + if task_name == "host": + self.primary_arch = self.d.getVar('SDK_ARCH') + else: + self.primary_arch = self.d.getVar('MACHINE_ARCH') + + if needfeed: + self.rpm_repo_dir = oe.path.join(self.d.getVar('WORKDIR'), rpm_repo_workdir) + create_packages_dir(self.d, oe.path.join(self.rpm_repo_dir, "rpm"), d.getVar("DEPLOY_DIR_RPM"), "package_write_rpm", filterbydependencies) + + self.saved_packaging_data = self.d.expand('${T}/saved_packaging_data/%s' % self.task_name) + if not os.path.exists(self.d.expand('${T}/saved_packaging_data')): + bb.utils.mkdirhier(self.d.expand('${T}/saved_packaging_data')) + self.packaging_data_dirs = ['etc/rpm', 'etc/rpmrc', 'etc/dnf', 'var/lib/rpm', 'var/lib/dnf', 'var/cache/dnf'] + self.solution_manifest = self.d.expand('${T}/saved/%s_solution' % + self.task_name) + if not os.path.exists(self.d.expand('${T}/saved')): + bb.utils.mkdirhier(self.d.expand('${T}/saved')) + + def _configure_dnf(self): + # libsolv handles 'noarch' internally, we don't need to specify it explicitly + archs = [i for i in reversed(self.archs.split()) if i not in ["any", "all", "noarch"]] + # This prevents accidental matching against libsolv's built-in policies + if len(archs) <= 1: + archs = archs + ["bogusarch"] + # This architecture needs to be upfront so that packages using it are properly prioritized + archs = ["sdk_provides_dummy_target"] + archs + confdir = "%s/%s" %(self.target_rootfs, "etc/dnf/vars/") + bb.utils.mkdirhier(confdir) + open(confdir + "arch", 'w').write(":".join(archs)) + distro_codename = self.d.getVar('DISTRO_CODENAME') + open(confdir + "releasever", 'w').write(distro_codename if distro_codename is not None else '') + + open(oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), 'w').write("") + + + def _configure_rpm(self): + # We need to configure rpm to use our primary package architecture as the installation architecture, + # and to make it compatible with other package architectures that we use. + # Otherwise it will refuse to proceed with packages installation. + platformconfdir = "%s/%s" %(self.target_rootfs, "etc/rpm/") + rpmrcconfdir = "%s/%s" %(self.target_rootfs, "etc/") + bb.utils.mkdirhier(platformconfdir) + open(platformconfdir + "platform", 'w').write("%s-pc-linux" % self.primary_arch) + with open(rpmrcconfdir + "rpmrc", 'w') as f: + f.write("arch_compat: %s: %s\n" % (self.primary_arch, self.archs if len(self.archs) > 0 else self.primary_arch)) + f.write("buildarch_compat: %s: noarch\n" % self.primary_arch) + + open(platformconfdir + "macros", 'w').write("%_transaction_color 7\n") + if self.d.getVar('RPM_PREFER_ELF_ARCH'): + open(platformconfdir + "macros", 'a').write("%%_prefer_color %s" % (self.d.getVar('RPM_PREFER_ELF_ARCH'))) + + if self.d.getVar('RPM_SIGN_PACKAGES') == '1': + signer = get_signer(self.d, self.d.getVar('RPM_GPG_BACKEND')) + pubkey_path = oe.path.join(self.d.getVar('B'), 'rpm-key') + signer.export_pubkey(pubkey_path, self.d.getVar('RPM_GPG_NAME')) + rpm_bin = bb.utils.which(os.getenv('PATH'), "rpmkeys") + cmd = [rpm_bin, '--root=%s' % self.target_rootfs, '--import', pubkey_path] + try: + subprocess.check_output(cmd, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + bb.fatal("Importing GPG key failed. Command '%s' " + "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + + def create_configs(self): + self._configure_dnf() + self._configure_rpm() + + def write_index(self): + lockfilename = self.d.getVar('DEPLOY_DIR_RPM') + "/rpm.lock" + lf = bb.utils.lockfile(lockfilename, False) + RpmIndexer(self.d, self.rpm_repo_dir).write_index() + bb.utils.unlockfile(lf) + + def insert_feeds_uris(self, feed_uris, feed_base_paths, feed_archs): + from urllib.parse import urlparse + + if feed_uris == "": + return + + gpg_opts = '' + if self.d.getVar('PACKAGE_FEED_SIGN') == '1': + gpg_opts += 'repo_gpgcheck=1\n' + gpg_opts += 'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s-%s\n' % (self.d.getVar('sysconfdir'), self.d.getVar('DISTRO'), self.d.getVar('DISTRO_CODENAME')) + + if self.d.getVar('RPM_SIGN_PACKAGES') != '1': + gpg_opts += 'gpgcheck=0\n' + + bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", "yum.repos.d")) + remote_uris = self.construct_uris(feed_uris.split(), feed_base_paths.split()) + for uri in remote_uris: + repo_base = "oe-remote-repo" + "-".join(urlparse(uri).path.split("/")) + if feed_archs is not None: + for arch in feed_archs.split(): + repo_uri = uri + "/" + arch + repo_id = "oe-remote-repo" + "-".join(urlparse(repo_uri).path.split("/")) + repo_name = "OE Remote Repo:" + " ".join(urlparse(repo_uri).path.split("/")) + open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'a').write( + "[%s]\nname=%s\nbaseurl=%s\n%s\n" % (repo_id, repo_name, repo_uri, gpg_opts)) + else: + repo_name = "OE Remote Repo:" + " ".join(urlparse(uri).path.split("/")) + repo_uri = uri + open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", repo_base + ".repo"), 'w').write( + "[%s]\nname=%s\nbaseurl=%s\n%s" % (repo_base, repo_name, repo_uri, gpg_opts)) + + def _prepare_pkg_transaction(self): + os.environ['D'] = self.target_rootfs + os.environ['OFFLINE_ROOT'] = self.target_rootfs + os.environ['IPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['OPKG_OFFLINE_ROOT'] = self.target_rootfs + os.environ['INTERCEPT_DIR'] = self.intercepts_dir + os.environ['NATIVE_ROOT'] = self.d.getVar('STAGING_DIR_NATIVE') + + + def install(self, pkgs, attempt_only = False): + if len(pkgs) == 0: + return + self._prepare_pkg_transaction() + + bad_recommendations = self.d.getVar('BAD_RECOMMENDATIONS') + package_exclude = self.d.getVar('PACKAGE_EXCLUDE') + exclude_pkgs = (bad_recommendations.split() if bad_recommendations else []) + (package_exclude.split() if package_exclude else []) + + output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) + + (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) > 0 else []) + + (["--setopt=install_weak_deps=False"] if self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) + + (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' else ["--setopt=gpgcheck=True"]) + + ["install"] + + pkgs) + + failed_scriptlets_pkgnames = collections.OrderedDict() + for line in output.splitlines(): + if line.startswith("Error in POSTIN scriptlet in rpm package"): + failed_scriptlets_pkgnames[line.split()[-1]] = True + + if len(failed_scriptlets_pkgnames) > 0: + failed_postinsts_abort(list(failed_scriptlets_pkgnames.keys()), self.d.expand("${T}/log.do_${BB_CURRENTTASK}")) + + def remove(self, pkgs, with_dependencies = True): + if not pkgs: + return + + self._prepare_pkg_transaction() + + if with_dependencies: + self._invoke_dnf(["remove"] + pkgs) + else: + cmd = bb.utils.which(os.getenv('PATH'), "rpm") + args = ["-e", "-v", "--nodeps", "--root=%s" %self.target_rootfs] + + try: + bb.note("Running %s" % ' '.join([cmd] + args + pkgs)) + output = subprocess.check_output([cmd] + args + pkgs, stderr=subprocess.STDOUT).decode("utf-8") + bb.note(output) + except subprocess.CalledProcessError as e: + bb.fatal("Could not invoke rpm. Command " + "'%s' returned %d:\n%s" % (' '.join([cmd] + args + pkgs), e.returncode, e.output.decode("utf-8"))) + + def upgrade(self): + self._prepare_pkg_transaction() + self._invoke_dnf(["upgrade"]) + + def autoremove(self): + self._prepare_pkg_transaction() + self._invoke_dnf(["autoremove"]) + + def remove_packaging_data(self): + self._invoke_dnf(["clean", "all"]) + for dir in self.packaging_data_dirs: + bb.utils.remove(oe.path.join(self.target_rootfs, dir), True) + + def backup_packaging_data(self): + # Save the packaging dirs for increment rpm image generation + if os.path.exists(self.saved_packaging_data): + bb.utils.remove(self.saved_packaging_data, True) + for i in self.packaging_data_dirs: + source_dir = oe.path.join(self.target_rootfs, i) + target_dir = oe.path.join(self.saved_packaging_data, i) + if os.path.isdir(source_dir): + shutil.copytree(source_dir, target_dir, symlinks=True) + elif os.path.isfile(source_dir): + shutil.copy2(source_dir, target_dir) + + def recovery_packaging_data(self): + # Move the rpmlib back + if os.path.exists(self.saved_packaging_data): + for i in self.packaging_data_dirs: + target_dir = oe.path.join(self.target_rootfs, i) + if os.path.exists(target_dir): + bb.utils.remove(target_dir, True) + source_dir = oe.path.join(self.saved_packaging_data, i) + if os.path.isdir(source_dir): + shutil.copytree(source_dir, target_dir, symlinks=True) + elif os.path.isfile(source_dir): + shutil.copy2(source_dir, target_dir) + + def list_installed(self): + output = self._invoke_dnf(["repoquery", "--installed", "--queryformat", "Package: %{name} %{arch} %{version} %{name}-%{version}-%{release}.%{arch}.rpm\nDependencies:\n%{requires}\nRecommendations:\n%{recommends}\nDependenciesEndHere:\n"], + print_output = False) + packages = {} + current_package = None + current_deps = None + current_state = "initial" + for line in output.splitlines(): + if line.startswith("Package:"): + package_info = line.split(" ")[1:] + current_package = package_info[0] + package_arch = package_info[1] + package_version = package_info[2] + package_rpm = package_info[3] + packages[current_package] = {"arch":package_arch, "ver":package_version, "filename":package_rpm} + current_deps = [] + elif line.startswith("Dependencies:"): + current_state = "dependencies" + elif line.startswith("Recommendations"): + current_state = "recommendations" + elif line.startswith("DependenciesEndHere:"): + current_state = "initial" + packages[current_package]["deps"] = current_deps + elif len(line) > 0: + if current_state == "dependencies": + current_deps.append(line) + elif current_state == "recommendations": + current_deps.append("%s [REC]" % line) + + return packages + + def update(self): + self._invoke_dnf(["makecache", "--refresh"]) + + def _invoke_dnf(self, dnf_args, fatal = True, print_output = True ): + os.environ['RPM_ETCCONFIGDIR'] = self.target_rootfs + + dnf_cmd = bb.utils.which(os.getenv('PATH'), "dnf") + standard_dnf_args = ["-v", "--rpmverbosity=info", "-y", + "-c", oe.path.join(self.target_rootfs, "etc/dnf/dnf.conf"), + "--setopt=reposdir=%s" %(oe.path.join(self.target_rootfs, "etc/yum.repos.d")), + "--installroot=%s" % (self.target_rootfs), + "--setopt=logdir=%s" % (self.d.getVar('T')) + ] + if hasattr(self, "rpm_repo_dir"): + standard_dnf_args.append("--repofrompath=oe-repo,%s" % (self.rpm_repo_dir)) + cmd = [dnf_cmd] + standard_dnf_args + dnf_args + bb.note('Running %s' % ' '.join(cmd)) + try: + output = subprocess.check_output(cmd,stderr=subprocess.STDOUT).decode("utf-8") + if print_output: + bb.debug(1, output) + return output + except subprocess.CalledProcessError as e: + if print_output: + (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command " + "'%s' returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8"))) + else: + (bb.note, bb.fatal)[fatal]("Could not invoke dnf. Command " + "'%s' returned %d:" % (' '.join(cmd), e.returncode)) + return e.output.decode("utf-8") + + def dump_install_solution(self, pkgs): + open(self.solution_manifest, 'w').write(" ".join(pkgs)) + return pkgs + + def load_old_install_solution(self): + if not os.path.exists(self.solution_manifest): + return [] + with open(self.solution_manifest, 'r') as fd: + return fd.read().split() + + def _script_num_prefix(self, path): + files = os.listdir(path) + numbers = set() + numbers.add(99) + for f in files: + numbers.add(int(f.split("-")[0])) + return max(numbers) + 1 + + def save_rpmpostinst(self, pkg): + bb.note("Saving postinstall script of %s" % (pkg)) + cmd = bb.utils.which(os.getenv('PATH'), "rpm") + args = ["-q", "--root=%s" % self.target_rootfs, "--queryformat", "%{postin}", pkg] + + try: + output = subprocess.check_output([cmd] + args,stderr=subprocess.STDOUT).decode("utf-8") + except subprocess.CalledProcessError as e: + bb.fatal("Could not invoke rpm. Command " + "'%s' returned %d:\n%s" % (' '.join([cmd] + args), e.returncode, e.output.decode("utf-8"))) + + # may need to prepend #!/bin/sh to output + + target_path = oe.path.join(self.target_rootfs, self.d.expand('${sysconfdir}/rpm-postinsts/')) + bb.utils.mkdirhier(target_path) + num = self._script_num_prefix(target_path) + saved_script_name = oe.path.join(target_path, "%d-%s" % (num, pkg)) + open(saved_script_name, 'w').write(output) + os.chmod(saved_script_name, 0o755) + + def _handle_intercept_failure(self, registered_pkgs): + rpm_postinsts_dir = self.target_rootfs + self.d.expand('${sysconfdir}/rpm-postinsts/') + bb.utils.mkdirhier(rpm_postinsts_dir) + + # Save the package postinstalls in /etc/rpm-postinsts + for pkg in registered_pkgs.split(): + self.save_rpmpostinst(pkg) + + def extract(self, pkg): + output = self._invoke_dnf(["repoquery", "--queryformat", "%{location}", pkg]) + pkg_name = output.splitlines()[-1] + if not pkg_name.endswith(".rpm"): + bb.fatal("dnf could not find package %s in repository: %s" %(pkg, output)) + pkg_path = oe.path.join(self.rpm_repo_dir, pkg_name) + + cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio") + rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio") + + if not os.path.isfile(pkg_path): + bb.fatal("Unable to extract package for '%s'." + "File %s doesn't exists" % (pkg, pkg_path)) + + tmp_dir = tempfile.mkdtemp() + current_dir = os.getcwd() + os.chdir(tmp_dir) + + try: + cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd) + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) + except subprocess.CalledProcessError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8"))) + except OSError as e: + bb.utils.remove(tmp_dir, recurse=True) + bb.fatal("Unable to extract %s package. Command '%s' " + "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename)) + + bb.note("Extracted %s to %s" % (pkg_path, tmp_dir)) + os.chdir(current_dir) + + return tmp_dir diff --git a/poky/meta/lib/oe/package_manager/rpm/manifest.py b/poky/meta/lib/oe/package_manager/rpm/manifest.py new file mode 100644 index 000000000..a75f6bdab --- /dev/null +++ b/poky/meta/lib/oe/package_manager/rpm/manifest.py @@ -0,0 +1,54 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from oe.manifest import Manifest + +class RpmManifest(Manifest): + """ + Returns a dictionary object with mip and mlp packages. + """ + def _split_multilib(self, pkg_list): + pkgs = dict() + + for pkg in pkg_list.split(): + pkg_type = self.PKG_TYPE_MUST_INSTALL + + ml_variants = self.d.getVar('MULTILIB_VARIANTS').split() + + for ml_variant in ml_variants: + if pkg.startswith(ml_variant + '-'): + pkg_type = self.PKG_TYPE_MULTILIB + + if not pkg_type in pkgs: + pkgs[pkg_type] = pkg + else: + pkgs[pkg_type] += " " + pkg + + return pkgs + + def create_initial(self): + pkgs = dict() + + with open(self.initial_manifest, "w+") as manifest: + manifest.write(self.initial_manifest_file_header) + + for var in self.var_maps[self.manifest_type]: + if var in self.vars_to_split: + split_pkgs = self._split_multilib(self.d.getVar(var)) + if split_pkgs is not None: + pkgs = dict(list(pkgs.items()) + list(split_pkgs.items())) + else: + pkg_list = self.d.getVar(var) + if pkg_list is not None: + pkgs[self.var_maps[self.manifest_type][var]] = self.d.getVar(var) + + for pkg_type in pkgs: + for pkg in pkgs[pkg_type].split(): + manifest.write("%s,%s\n" % (pkg_type, pkg)) + + def create_final(self): + pass + + def create_full(self, pm): + pass diff --git a/poky/meta/lib/oe/package_manager/rpm/rootfs.py b/poky/meta/lib/oe/package_manager/rpm/rootfs.py new file mode 100644 index 000000000..2de5752b9 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/rpm/rootfs.py @@ -0,0 +1,148 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +from oe.rootfs import Rootfs +from oe.manifest import Manifest +from oe.utils import execute_pre_post_process +from oe.package_manager.rpm.manifest import RpmManifest +from oe.package_manager.rpm import RpmPM + +class RpmRootfs(Rootfs): + def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): + super(RpmRootfs, self).__init__(d, progress_reporter, logcatcher) + self.log_check_regex = r'(unpacking of archive failed|Cannot find package'\ + r'|exit 1|ERROR: |Error: |Error |ERROR '\ + r'|Failed |Failed: |Failed$|Failed\(\d+\):)' + + self.manifest = RpmManifest(d, manifest_dir) + + self.pm = RpmPM(d, + d.getVar('IMAGE_ROOTFS'), + self.d.getVar('TARGET_VENDOR') + ) + + self.inc_rpm_image_gen = self.d.getVar('INC_RPM_IMAGE_GEN') + if self.inc_rpm_image_gen != "1": + bb.utils.remove(self.image_rootfs, True) + else: + self.pm.recovery_packaging_data() + bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) + + self.pm.create_configs() + + ''' + While rpm incremental image generation is enabled, it will remove the + unneeded pkgs by comparing the new install solution manifest and the + old installed manifest. + ''' + def _create_incremental(self, pkgs_initial_install): + if self.inc_rpm_image_gen == "1": + + pkgs_to_install = list() + for pkg_type in pkgs_initial_install: + pkgs_to_install += pkgs_initial_install[pkg_type] + + installed_manifest = self.pm.load_old_install_solution() + solution_manifest = self.pm.dump_install_solution(pkgs_to_install) + + pkg_to_remove = list() + for pkg in installed_manifest: + if pkg not in solution_manifest: + pkg_to_remove.append(pkg) + + self.pm.update() + + bb.note('incremental update -- upgrade packages in place ') + self.pm.upgrade() + if pkg_to_remove != []: + bb.note('incremental removed: %s' % ' '.join(pkg_to_remove)) + self.pm.remove(pkg_to_remove) + + self.pm.autoremove() + + def _create(self): + pkgs_to_install = self.manifest.parse_initial_manifest() + rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS') + rpm_post_process_cmds = self.d.getVar('RPM_POSTPROCESS_COMMANDS') + + # update PM index files + self.pm.write_index() + + execute_pre_post_process(self.d, rpm_pre_process_cmds) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + if self.inc_rpm_image_gen == "1": + self._create_incremental(pkgs_to_install) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self.pm.update() + + pkgs = [] + pkgs_attempt = [] + for pkg_type in pkgs_to_install: + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY: + pkgs_attempt += pkgs_to_install[pkg_type] + else: + pkgs += pkgs_to_install[pkg_type] + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self.pm.install(pkgs) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self.pm.install(pkgs_attempt, True) + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self.pm.install_complementary() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf']) + + execute_pre_post_process(self.d, rpm_post_process_cmds) + + if self.inc_rpm_image_gen == "1": + self.pm.backup_packaging_data() + + if self.progress_reporter: + self.progress_reporter.next_stage() + + + @staticmethod + def _depends_list(): + return ['DEPLOY_DIR_RPM', 'INC_RPM_IMAGE_GEN', 'RPM_PREPROCESS_COMMANDS', + 'RPM_POSTPROCESS_COMMANDS', 'RPM_PREFER_ELF_ARCH'] + + def _get_delayed_postinsts(self): + postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/rpm-postinsts") + if os.path.isdir(postinst_dir): + files = os.listdir(postinst_dir) + for f in files: + bb.note('Delayed package scriptlet: %s' % f) + return files + + return None + + def _save_postinsts(self): + # this is just a stub. For RPM, the failed postinstalls are + # already saved in /etc/rpm-postinsts + pass + + def _log_check(self): + self._log_check_warn() + self._log_check_error() + + def _cleanup(self): + if bb.utils.contains("IMAGE_FEATURES", "package-management", True, False, self.d): + self.pm._invoke_dnf(["clean", "all"]) diff --git a/poky/meta/lib/oe/package_manager/rpm/sdk.py b/poky/meta/lib/oe/package_manager/rpm/sdk.py new file mode 100644 index 000000000..b14b155a8 --- /dev/null +++ b/poky/meta/lib/oe/package_manager/rpm/sdk.py @@ -0,0 +1,114 @@ +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import glob +from oe.utils import execute_pre_post_process +from oe.sdk import Sdk +from oe.manifest import Manifest +from oe.package_manager.rpm import RpmPM + +class RpmSdk(Sdk): + def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"): + super(RpmSdk, self).__init__(d, manifest_dir) + + from oe.package_manager.rpm.manifest import RpmManifest + self.target_manifest = RpmManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_TARGET) + self.host_manifest = RpmManifest(d, self.manifest_dir, + Manifest.MANIFEST_TYPE_SDK_HOST) + + rpm_repo_workdir = "oe-sdk-repo" + if "sdk_ext" in d.getVar("BB_RUNTASK"): + rpm_repo_workdir = "oe-sdk-ext-repo" + + self.target_pm = RpmPM(d, + self.sdk_target_sysroot, + self.d.getVar('TARGET_VENDOR'), + 'target', + rpm_repo_workdir=rpm_repo_workdir + ) + + self.host_pm = RpmPM(d, + self.sdk_host_sysroot, + self.d.getVar('SDK_VENDOR'), + 'host', + "SDK_PACKAGE_ARCHS", + "SDK_OS", + rpm_repo_workdir=rpm_repo_workdir + ) + + def _populate_sysroot(self, pm, manifest): + pkgs_to_install = manifest.parse_initial_manifest() + + pm.create_configs() + pm.write_index() + pm.update() + + pkgs = [] + pkgs_attempt = [] + for pkg_type in pkgs_to_install: + if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY: + pkgs_attempt += pkgs_to_install[pkg_type] + else: + pkgs += pkgs_to_install[pkg_type] + + pm.install(pkgs) + + pm.install(pkgs_attempt, True) + + def _populate(self): + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) + + bb.note("Installing TARGET packages") + self._populate_sysroot(self.target_pm, self.target_manifest) + + self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) + + self.target_pm.run_intercepts(populate_sdk='target') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.target_pm.remove_packaging_data() + + bb.note("Installing NATIVESDK packages") + self._populate_sysroot(self.host_pm, self.host_manifest) + self.install_locales(self.host_pm) + + self.host_pm.run_intercepts(populate_sdk='host') + + execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) + + if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): + self.host_pm.remove_packaging_data() + + # Move host RPM library data + native_rpm_state_dir = os.path.join(self.sdk_output, + self.sdk_native_path, + self.d.getVar('localstatedir_nativesdk').strip('/'), + "lib", + "rpm" + ) + self.mkdirhier(native_rpm_state_dir) + for f in glob.glob(os.path.join(self.sdk_output, + "var", + "lib", + "rpm", + "*")): + self.movefile(f, native_rpm_state_dir) + + self.remove(os.path.join(self.sdk_output, "var"), True) + + # Move host sysconfig data + native_sysconf_dir = os.path.join(self.sdk_output, + self.sdk_native_path, + self.d.getVar('sysconfdir', + True).strip('/'), + ) + self.mkdirhier(native_sysconf_dir) + for f in glob.glob(os.path.join(self.sdk_output, "etc", "rpm*")): + self.movefile(f, native_sysconf_dir) + for f in glob.glob(os.path.join(self.sdk_output, "etc", "dnf", "*")): + self.movefile(f, native_sysconf_dir) + self.remove(os.path.join(self.sdk_output, "etc"), True) diff --git a/poky/meta/lib/oe/patch.py b/poky/meta/lib/oe/patch.py index 7ca2e28b1..40755fbb0 100644 --- a/poky/meta/lib/oe/patch.py +++ b/poky/meta/lib/oe/patch.py @@ -41,7 +41,7 @@ def runcmd(args, dir = None): (exitstatus, output) = subprocess.getstatusoutput(cmd) if exitstatus != 0: raise CmdError(cmd, exitstatus >> 8, output) - if " fuzz " in output: + if " fuzz " in output and "Hunk " in output: # Drop patch fuzz info with header and footer to log file so # insane.bbclass can handle to throw error/warning bb.note("--- Patch fuzz start ---\n%s\n--- Patch fuzz end ---" % format(output)) diff --git a/poky/meta/lib/oe/reproducible.py b/poky/meta/lib/oe/reproducible.py index f4f58dd95..421bb12f5 100644 --- a/poky/meta/lib/oe/reproducible.py +++ b/poky/meta/lib/oe/reproducible.py @@ -56,13 +56,13 @@ def get_source_date_epoch_from_git(d, sourcedir): # Check that the repository has a valid HEAD; it may not if subdir is used # in SRC_URI - p = subprocess.run(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=gitpath) + p = subprocess.run(['git', '--git-dir', gitpath, 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if p.returncode != 0: bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8'))) return None bb.debug(1, "git repository: %s" % gitpath) - p = subprocess.run(['git','log','-1','--pretty=%ct'], check=True, stdout=subprocess.PIPE, cwd=gitpath) + p = subprocess.run(['git', '--git-dir', gitpath, 'log', '-1', '--pretty=%ct'], check=True, stdout=subprocess.PIPE) return int(p.stdout.decode('utf-8')) def get_source_date_epoch_from_youngest_file(d, sourcedir): diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py index 0e05f1f75..3813f68e8 100644 --- a/poky/meta/lib/oe/rootfs.py +++ b/poky/meta/lib/oe/rootfs.py @@ -6,12 +6,16 @@ from oe.utils import execute_pre_post_process from oe.package_manager import * from oe.manifest import * import oe.path -import filecmp import shutil import os import subprocess import re - +from oe.package_manager.rpm.manifest import RpmManifest +from oe.package_manager.ipk.manifest import OpkgManifest +from oe.package_manager.deb.manifest import DpkgManifest +from oe.package_manager.rpm import RpmPkgsList +from oe.package_manager.ipk import OpkgPkgsList +from oe.package_manager.deb import DpkgPkgsList class Rootfs(object, metaclass=ABCMeta): """ @@ -353,611 +357,10 @@ class Rootfs(object, metaclass=ABCMeta): self.image_rootfs, "-D", devtable]) -class RpmRootfs(Rootfs): - def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): - super(RpmRootfs, self).__init__(d, progress_reporter, logcatcher) - self.log_check_regex = r'(unpacking of archive failed|Cannot find package'\ - r'|exit 1|ERROR: |Error: |Error |ERROR '\ - r'|Failed |Failed: |Failed$|Failed\(\d+\):)' - self.manifest = RpmManifest(d, manifest_dir) - - self.pm = RpmPM(d, - d.getVar('IMAGE_ROOTFS'), - self.d.getVar('TARGET_VENDOR') - ) - - self.inc_rpm_image_gen = self.d.getVar('INC_RPM_IMAGE_GEN') - if self.inc_rpm_image_gen != "1": - bb.utils.remove(self.image_rootfs, True) - else: - self.pm.recovery_packaging_data() - bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) - - self.pm.create_configs() - - ''' - While rpm incremental image generation is enabled, it will remove the - unneeded pkgs by comparing the new install solution manifest and the - old installed manifest. - ''' - def _create_incremental(self, pkgs_initial_install): - if self.inc_rpm_image_gen == "1": - - pkgs_to_install = list() - for pkg_type in pkgs_initial_install: - pkgs_to_install += pkgs_initial_install[pkg_type] - - installed_manifest = self.pm.load_old_install_solution() - solution_manifest = self.pm.dump_install_solution(pkgs_to_install) - - pkg_to_remove = list() - for pkg in installed_manifest: - if pkg not in solution_manifest: - pkg_to_remove.append(pkg) - - self.pm.update() - - bb.note('incremental update -- upgrade packages in place ') - self.pm.upgrade() - if pkg_to_remove != []: - bb.note('incremental removed: %s' % ' '.join(pkg_to_remove)) - self.pm.remove(pkg_to_remove) - - self.pm.autoremove() - - def _create(self): - pkgs_to_install = self.manifest.parse_initial_manifest() - rpm_pre_process_cmds = self.d.getVar('RPM_PREPROCESS_COMMANDS') - rpm_post_process_cmds = self.d.getVar('RPM_POSTPROCESS_COMMANDS') - - # update PM index files - self.pm.write_index() - - execute_pre_post_process(self.d, rpm_pre_process_cmds) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - if self.inc_rpm_image_gen == "1": - self._create_incremental(pkgs_to_install) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self.pm.update() - - pkgs = [] - pkgs_attempt = [] - for pkg_type in pkgs_to_install: - if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY: - pkgs_attempt += pkgs_to_install[pkg_type] - else: - pkgs += pkgs_to_install[pkg_type] - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self.pm.install(pkgs) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self.pm.install(pkgs_attempt, True) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self.pm.install_complementary() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self._setup_dbg_rootfs(['/etc', '/var/lib/rpm', '/var/cache/dnf', '/var/lib/dnf']) - - execute_pre_post_process(self.d, rpm_post_process_cmds) - - if self.inc_rpm_image_gen == "1": - self.pm.backup_packaging_data() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - - @staticmethod - def _depends_list(): - return ['DEPLOY_DIR_RPM', 'INC_RPM_IMAGE_GEN', 'RPM_PREPROCESS_COMMANDS', - 'RPM_POSTPROCESS_COMMANDS', 'RPM_PREFER_ELF_ARCH'] - - def _get_delayed_postinsts(self): - postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/rpm-postinsts") - if os.path.isdir(postinst_dir): - files = os.listdir(postinst_dir) - for f in files: - bb.note('Delayed package scriptlet: %s' % f) - return files - - return None - - def _save_postinsts(self): - # this is just a stub. For RPM, the failed postinstalls are - # already saved in /etc/rpm-postinsts - pass - - def _log_check(self): - self._log_check_warn() - self._log_check_error() - - def _cleanup(self): - if bb.utils.contains("IMAGE_FEATURES", "package-management", True, False, self.d): - self.pm._invoke_dnf(["clean", "all"]) - - -class DpkgOpkgRootfs(Rootfs): - def __init__(self, d, progress_reporter=None, logcatcher=None): - super(DpkgOpkgRootfs, self).__init__(d, progress_reporter, logcatcher) - - def _get_pkgs_postinsts(self, status_file): - def _get_pkg_depends_list(pkg_depends): - pkg_depends_list = [] - # filter version requirements like libc (>= 1.1) - for dep in pkg_depends.split(', '): - m_dep = re.match(r"^(.*) \(.*\)$", dep) - if m_dep: - dep = m_dep.group(1) - pkg_depends_list.append(dep) - - return pkg_depends_list - - pkgs = {} - pkg_name = "" - pkg_status_match = False - pkg_depends = "" - - with open(status_file) as status: - data = status.read() - status.close() - for line in data.split('\n'): - m_pkg = re.match(r"^Package: (.*)", line) - m_status = re.match(r"^Status:.*unpacked", line) - m_depends = re.match(r"^Depends: (.*)", line) - - #Only one of m_pkg, m_status or m_depends is not None at time - #If m_pkg is not None, we started a new package - if m_pkg is not None: - #Get Package name - pkg_name = m_pkg.group(1) - #Make sure we reset other variables - pkg_status_match = False - pkg_depends = "" - elif m_status is not None: - #New status matched - pkg_status_match = True - elif m_depends is not None: - #New depends macthed - pkg_depends = m_depends.group(1) - else: - pass - - #Now check if we can process package depends and postinst - if "" != pkg_name and pkg_status_match: - pkgs[pkg_name] = _get_pkg_depends_list(pkg_depends) - else: - #Not enough information - pass - - # remove package dependencies not in postinsts - pkg_names = list(pkgs.keys()) - for pkg_name in pkg_names: - deps = pkgs[pkg_name][:] - - for d in deps: - if d not in pkg_names: - pkgs[pkg_name].remove(d) - - return pkgs - - def _get_delayed_postinsts_common(self, status_file): - def _dep_resolve(graph, node, resolved, seen): - seen.append(node) - - for edge in graph[node]: - if edge not in resolved: - if edge in seen: - raise RuntimeError("Packages %s and %s have " \ - "a circular dependency in postinsts scripts." \ - % (node, edge)) - _dep_resolve(graph, edge, resolved, seen) - - resolved.append(node) - - pkg_list = [] - - pkgs = None - if not self.d.getVar('PACKAGE_INSTALL').strip(): - bb.note("Building empty image") - else: - pkgs = self._get_pkgs_postinsts(status_file) - if pkgs: - root = "__packagegroup_postinst__" - pkgs[root] = list(pkgs.keys()) - _dep_resolve(pkgs, root, pkg_list, []) - pkg_list.remove(root) - - if len(pkg_list) == 0: - return None - - return pkg_list - - def _save_postinsts_common(self, dst_postinst_dir, src_postinst_dir): - if bb.utils.contains("IMAGE_FEATURES", "package-management", - True, False, self.d): - return - num = 0 - for p in self._get_delayed_postinsts(): - bb.utils.mkdirhier(dst_postinst_dir) - - if os.path.exists(os.path.join(src_postinst_dir, p + ".postinst")): - shutil.copy(os.path.join(src_postinst_dir, p + ".postinst"), - os.path.join(dst_postinst_dir, "%03d-%s" % (num, p))) - - num += 1 - -class DpkgRootfs(DpkgOpkgRootfs): - def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): - super(DpkgRootfs, self).__init__(d, progress_reporter, logcatcher) - self.log_check_regex = '^E:' - self.log_check_expected_regexes = \ - [ - "^E: Unmet dependencies." - ] - - bb.utils.remove(self.image_rootfs, True) - bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) - self.manifest = DpkgManifest(d, manifest_dir) - self.pm = DpkgPM(d, d.getVar('IMAGE_ROOTFS'), - d.getVar('PACKAGE_ARCHS'), - d.getVar('DPKG_ARCH')) - - - def _create(self): - pkgs_to_install = self.manifest.parse_initial_manifest() - deb_pre_process_cmds = self.d.getVar('DEB_PREPROCESS_COMMANDS') - deb_post_process_cmds = self.d.getVar('DEB_POSTPROCESS_COMMANDS') - - alt_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/alternatives") - bb.utils.mkdirhier(alt_dir) - - # update PM index files - self.pm.write_index() - - execute_pre_post_process(self.d, deb_pre_process_cmds) - - if self.progress_reporter: - self.progress_reporter.next_stage() - # Don't support incremental, so skip that - self.progress_reporter.next_stage() - - self.pm.update() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - for pkg_type in self.install_order: - if pkg_type in pkgs_to_install: - self.pm.install(pkgs_to_install[pkg_type], - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) - self.pm.fix_broken_dependencies() - - if self.progress_reporter: - # Don't support attemptonly, so skip that - self.progress_reporter.next_stage() - self.progress_reporter.next_stage() - - self.pm.install_complementary() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self._setup_dbg_rootfs(['/var/lib/dpkg']) - - self.pm.fix_broken_dependencies() - - self.pm.mark_packages("installed") - - self.pm.run_pre_post_installs() - - execute_pre_post_process(self.d, deb_post_process_cmds) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - @staticmethod - def _depends_list(): - return ['DEPLOY_DIR_DEB', 'DEB_SDK_ARCH', 'APTCONF_TARGET', 'APT_ARGS', 'DPKG_ARCH', 'DEB_PREPROCESS_COMMANDS', 'DEB_POSTPROCESS_COMMANDS'] - - def _get_delayed_postinsts(self): - status_file = self.image_rootfs + "/var/lib/dpkg/status" - return self._get_delayed_postinsts_common(status_file) - - def _save_postinsts(self): - dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/deb-postinsts") - src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}/var/lib/dpkg/info") - return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir) - - def _log_check(self): - self._log_check_warn() - self._log_check_error() - - def _cleanup(self): - pass - - -class OpkgRootfs(DpkgOpkgRootfs): - def __init__(self, d, manifest_dir, progress_reporter=None, logcatcher=None): - super(OpkgRootfs, self).__init__(d, progress_reporter, logcatcher) - self.log_check_regex = '(exit 1|Collected errors)' - - self.manifest = OpkgManifest(d, manifest_dir) - self.opkg_conf = self.d.getVar("IPKGCONF_TARGET") - self.pkg_archs = self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS") - - self.inc_opkg_image_gen = self.d.getVar('INC_IPK_IMAGE_GEN') or "" - if self._remove_old_rootfs(): - bb.utils.remove(self.image_rootfs, True) - self.pm = OpkgPM(d, - self.image_rootfs, - self.opkg_conf, - self.pkg_archs) - else: - self.pm = OpkgPM(d, - self.image_rootfs, - self.opkg_conf, - self.pkg_archs) - self.pm.recover_packaging_data() - - bb.utils.remove(self.d.getVar('MULTILIB_TEMP_ROOTFS'), True) - - def _prelink_file(self, root_dir, filename): - bb.note('prelink %s in %s' % (filename, root_dir)) - prelink_cfg = oe.path.join(root_dir, - self.d.expand('${sysconfdir}/prelink.conf')) - if not os.path.exists(prelink_cfg): - shutil.copy(self.d.expand('${STAGING_DIR_NATIVE}${sysconfdir_native}/prelink.conf'), - prelink_cfg) - - cmd_prelink = self.d.expand('${STAGING_DIR_NATIVE}${sbindir_native}/prelink') - self._exec_shell_cmd([cmd_prelink, - '--root', - root_dir, - '-amR', - '-N', - '-c', - self.d.expand('${sysconfdir}/prelink.conf')]) - - ''' - Compare two files with the same key twice to see if they are equal. - If they are not equal, it means they are duplicated and come from - different packages. - 1st: Comapre them directly; - 2nd: While incremental image creation is enabled, one of the - files could be probaly prelinked in the previous image - creation and the file has been changed, so we need to - prelink the other one and compare them. - ''' - def _file_equal(self, key, f1, f2): - - # Both of them are not prelinked - if filecmp.cmp(f1, f2): - return True - - if bb.data.inherits_class('image-prelink', self.d): - if self.image_rootfs not in f1: - self._prelink_file(f1.replace(key, ''), f1) - - if self.image_rootfs not in f2: - self._prelink_file(f2.replace(key, ''), f2) - - # Both of them are prelinked - if filecmp.cmp(f1, f2): - return True - - # Not equal - return False - - """ - This function was reused from the old implementation. - See commit: "image.bbclass: Added variables for multilib support." by - Lianhao Lu. - """ - def _multilib_sanity_test(self, dirs): - - allow_replace = self.d.getVar("MULTILIBRE_ALLOW_REP") - if allow_replace is None: - allow_replace = "" - - allow_rep = re.compile(re.sub(r"\|$", r"", allow_replace)) - error_prompt = "Multilib check error:" - - files = {} - for dir in dirs: - for root, subfolders, subfiles in os.walk(dir): - for file in subfiles: - item = os.path.join(root, file) - key = str(os.path.join("/", os.path.relpath(item, dir))) - - valid = True - if key in files: - #check whether the file is allow to replace - if allow_rep.match(key): - valid = True - else: - if os.path.exists(files[key]) and \ - os.path.exists(item) and \ - not self._file_equal(key, files[key], item): - valid = False - bb.fatal("%s duplicate files %s %s is not the same\n" % - (error_prompt, item, files[key])) - - #pass the check, add to list - if valid: - files[key] = item - - def _multilib_test_install(self, pkgs): - ml_temp = self.d.getVar("MULTILIB_TEMP_ROOTFS") - bb.utils.mkdirhier(ml_temp) - - dirs = [self.image_rootfs] - - for variant in self.d.getVar("MULTILIB_VARIANTS").split(): - ml_target_rootfs = os.path.join(ml_temp, variant) - - bb.utils.remove(ml_target_rootfs, True) - - ml_opkg_conf = os.path.join(ml_temp, - variant + "-" + os.path.basename(self.opkg_conf)) - - ml_pm = OpkgPM(self.d, ml_target_rootfs, ml_opkg_conf, self.pkg_archs, prepare_index=False) - - ml_pm.update() - ml_pm.install(pkgs) - - dirs.append(ml_target_rootfs) - - self._multilib_sanity_test(dirs) - - ''' - While ipk incremental image generation is enabled, it will remove the - unneeded pkgs by comparing the old full manifest in previous existing - image and the new full manifest in the current image. - ''' - def _remove_extra_packages(self, pkgs_initial_install): - if self.inc_opkg_image_gen == "1": - # Parse full manifest in previous existing image creation session - old_full_manifest = self.manifest.parse_full_manifest() - - # Create full manifest for the current image session, the old one - # will be replaced by the new one. - self.manifest.create_full(self.pm) - - # Parse full manifest in current image creation session - new_full_manifest = self.manifest.parse_full_manifest() - - pkg_to_remove = list() - for pkg in old_full_manifest: - if pkg not in new_full_manifest: - pkg_to_remove.append(pkg) - - if pkg_to_remove != []: - bb.note('decremental removed: %s' % ' '.join(pkg_to_remove)) - self.pm.remove(pkg_to_remove) - - ''' - Compare with previous existing image creation, if some conditions - triggered, the previous old image should be removed. - The conditions include any of 'PACKAGE_EXCLUDE, NO_RECOMMENDATIONS - and BAD_RECOMMENDATIONS' has been changed. - ''' - def _remove_old_rootfs(self): - if self.inc_opkg_image_gen != "1": - return True - - vars_list_file = self.d.expand('${T}/vars_list') - - old_vars_list = "" - if os.path.exists(vars_list_file): - old_vars_list = open(vars_list_file, 'r+').read() - - new_vars_list = '%s:%s:%s\n' % \ - ((self.d.getVar('BAD_RECOMMENDATIONS') or '').strip(), - (self.d.getVar('NO_RECOMMENDATIONS') or '').strip(), - (self.d.getVar('PACKAGE_EXCLUDE') or '').strip()) - open(vars_list_file, 'w+').write(new_vars_list) - - if old_vars_list != new_vars_list: - return True - - return False - - def _create(self): - pkgs_to_install = self.manifest.parse_initial_manifest() - opkg_pre_process_cmds = self.d.getVar('OPKG_PREPROCESS_COMMANDS') - opkg_post_process_cmds = self.d.getVar('OPKG_POSTPROCESS_COMMANDS') - - # update PM index files - self.pm.write_index() - - execute_pre_post_process(self.d, opkg_pre_process_cmds) - - if self.progress_reporter: - self.progress_reporter.next_stage() - # Steps are a bit different in order, skip next - self.progress_reporter.next_stage() - - self.pm.update() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - if self.inc_opkg_image_gen == "1": - self._remove_extra_packages(pkgs_to_install) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - for pkg_type in self.install_order: - if pkg_type in pkgs_to_install: - # For multilib, we perform a sanity test before final install - # If sanity test fails, it will automatically do a bb.fatal() - # and the installation will stop - if pkg_type == Manifest.PKG_TYPE_MULTILIB: - self._multilib_test_install(pkgs_to_install[pkg_type]) - - self.pm.install(pkgs_to_install[pkg_type], - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) - - if self.progress_reporter: - self.progress_reporter.next_stage() - - self.pm.install_complementary() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - opkg_lib_dir = self.d.getVar('OPKGLIBDIR') - opkg_dir = os.path.join(opkg_lib_dir, 'opkg') - self._setup_dbg_rootfs([opkg_dir]) - - execute_pre_post_process(self.d, opkg_post_process_cmds) - - if self.inc_opkg_image_gen == "1": - self.pm.backup_packaging_data() - - if self.progress_reporter: - self.progress_reporter.next_stage() - - @staticmethod - def _depends_list(): - return ['IPKGCONF_SDK', 'IPK_FEED_URIS', 'DEPLOY_DIR_IPK', 'IPKGCONF_TARGET', 'INC_IPK_IMAGE_GEN', 'OPKG_ARGS', 'OPKGLIBDIR', 'OPKG_PREPROCESS_COMMANDS', 'OPKG_POSTPROCESS_COMMANDS', 'OPKGLIBDIR'] - - def _get_delayed_postinsts(self): - status_file = os.path.join(self.image_rootfs, - self.d.getVar('OPKGLIBDIR').strip('/'), - "opkg", "status") - return self._get_delayed_postinsts_common(status_file) - - def _save_postinsts(self): - dst_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts") - src_postinst_dir = self.d.expand("${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info") - return self._save_postinsts_common(dst_postinst_dir, src_postinst_dir) - - def _log_check(self): - self._log_check_warn() - self._log_check_error() - - def _cleanup(self): - self.pm.remove_lists() - def get_class_for_type(imgtype): + from oe.package_manager.rpm.rootfs import RpmRootfs + from oe.package_manager.ipk.rootfs import OpkgRootfs + from oe.package_manager.deb.rootfs import DpkgRootfs return {"rpm": RpmRootfs, "ipk": OpkgRootfs, "deb": DpkgRootfs}[imgtype] @@ -970,6 +373,9 @@ def variable_depends(d, manifest_dir=None): def create_rootfs(d, manifest_dir=None, progress_reporter=None, logcatcher=None): env_bkp = os.environ.copy() + from oe.package_manager.rpm.rootfs import RpmRootfs + from oe.package_manager.ipk.rootfs import OpkgRootfs + from oe.package_manager.deb.rootfs import DpkgRootfs img_type = d.getVar('IMAGE_PKGTYPE') if img_type == "rpm": RpmRootfs(d, manifest_dir, progress_reporter, logcatcher).create() diff --git a/poky/meta/lib/oe/sdk.py b/poky/meta/lib/oe/sdk.py index d02a27481..fdcadcb8d 100644 --- a/poky/meta/lib/oe/sdk.py +++ b/poky/meta/lib/oe/sdk.py @@ -7,8 +7,6 @@ from oe.utils import execute_pre_post_process from oe.manifest import * from oe.package_manager import * import os -import shutil -import glob import traceback class Sdk(object, metaclass=ABCMeta): @@ -110,283 +108,6 @@ class Sdk(object, metaclass=ABCMeta): pass -class RpmSdk(Sdk): - def __init__(self, d, manifest_dir=None, rpm_workdir="oe-sdk-repo"): - super(RpmSdk, self).__init__(d, manifest_dir) - - self.target_manifest = RpmManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_TARGET) - self.host_manifest = RpmManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_HOST) - - rpm_repo_workdir = "oe-sdk-repo" - if "sdk_ext" in d.getVar("BB_RUNTASK"): - rpm_repo_workdir = "oe-sdk-ext-repo" - - self.target_pm = RpmPM(d, - self.sdk_target_sysroot, - self.d.getVar('TARGET_VENDOR'), - 'target', - rpm_repo_workdir=rpm_repo_workdir - ) - - self.host_pm = RpmPM(d, - self.sdk_host_sysroot, - self.d.getVar('SDK_VENDOR'), - 'host', - "SDK_PACKAGE_ARCHS", - "SDK_OS", - rpm_repo_workdir=rpm_repo_workdir - ) - - def _populate_sysroot(self, pm, manifest): - pkgs_to_install = manifest.parse_initial_manifest() - - pm.create_configs() - pm.write_index() - pm.update() - - pkgs = [] - pkgs_attempt = [] - for pkg_type in pkgs_to_install: - if pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY: - pkgs_attempt += pkgs_to_install[pkg_type] - else: - pkgs += pkgs_to_install[pkg_type] - - pm.install(pkgs) - - pm.install(pkgs_attempt, True) - - def _populate(self): - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) - - bb.note("Installing TARGET packages") - self._populate_sysroot(self.target_pm, self.target_manifest) - - self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) - - self.target_pm.run_intercepts(populate_sdk='target') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.target_pm.remove_packaging_data() - - bb.note("Installing NATIVESDK packages") - self._populate_sysroot(self.host_pm, self.host_manifest) - self.install_locales(self.host_pm) - - self.host_pm.run_intercepts(populate_sdk='host') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.host_pm.remove_packaging_data() - - # Move host RPM library data - native_rpm_state_dir = os.path.join(self.sdk_output, - self.sdk_native_path, - self.d.getVar('localstatedir_nativesdk').strip('/'), - "lib", - "rpm" - ) - self.mkdirhier(native_rpm_state_dir) - for f in glob.glob(os.path.join(self.sdk_output, - "var", - "lib", - "rpm", - "*")): - self.movefile(f, native_rpm_state_dir) - - self.remove(os.path.join(self.sdk_output, "var"), True) - - # Move host sysconfig data - native_sysconf_dir = os.path.join(self.sdk_output, - self.sdk_native_path, - self.d.getVar('sysconfdir', - True).strip('/'), - ) - self.mkdirhier(native_sysconf_dir) - for f in glob.glob(os.path.join(self.sdk_output, "etc", "rpm*")): - self.movefile(f, native_sysconf_dir) - for f in glob.glob(os.path.join(self.sdk_output, "etc", "dnf", "*")): - self.movefile(f, native_sysconf_dir) - self.remove(os.path.join(self.sdk_output, "etc"), True) - - -class OpkgSdk(Sdk): - def __init__(self, d, manifest_dir=None): - super(OpkgSdk, self).__init__(d, manifest_dir) - - self.target_conf = self.d.getVar("IPKGCONF_TARGET") - self.host_conf = self.d.getVar("IPKGCONF_SDK") - - self.target_manifest = OpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_TARGET) - self.host_manifest = OpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_HOST) - - ipk_repo_workdir = "oe-sdk-repo" - if "sdk_ext" in d.getVar("BB_RUNTASK"): - ipk_repo_workdir = "oe-sdk-ext-repo" - - self.target_pm = OpkgPM(d, self.sdk_target_sysroot, self.target_conf, - self.d.getVar("ALL_MULTILIB_PACKAGE_ARCHS"), - ipk_repo_workdir=ipk_repo_workdir) - - self.host_pm = OpkgPM(d, self.sdk_host_sysroot, self.host_conf, - self.d.getVar("SDK_PACKAGE_ARCHS"), - ipk_repo_workdir=ipk_repo_workdir) - - def _populate_sysroot(self, pm, manifest): - pkgs_to_install = manifest.parse_initial_manifest() - - if (self.d.getVar('BUILD_IMAGES_FROM_FEEDS') or "") != "1": - pm.write_index() - - pm.update() - - for pkg_type in self.install_order: - if pkg_type in pkgs_to_install: - pm.install(pkgs_to_install[pkg_type], - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) - - def _populate(self): - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) - - bb.note("Installing TARGET packages") - self._populate_sysroot(self.target_pm, self.target_manifest) - - self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) - - self.target_pm.run_intercepts(populate_sdk='target') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.target_pm.remove_packaging_data() - - bb.note("Installing NATIVESDK packages") - self._populate_sysroot(self.host_pm, self.host_manifest) - self.install_locales(self.host_pm) - - self.host_pm.run_intercepts(populate_sdk='host') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.host_pm.remove_packaging_data() - - target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir) - host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir) - - self.mkdirhier(target_sysconfdir) - shutil.copy(self.target_conf, target_sysconfdir) - os.chmod(os.path.join(target_sysconfdir, - os.path.basename(self.target_conf)), 0o644) - - self.mkdirhier(host_sysconfdir) - shutil.copy(self.host_conf, host_sysconfdir) - os.chmod(os.path.join(host_sysconfdir, - os.path.basename(self.host_conf)), 0o644) - - native_opkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path, - self.d.getVar('localstatedir_nativesdk').strip('/'), - "lib", "opkg") - self.mkdirhier(native_opkg_state_dir) - for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "opkg", "*")): - self.movefile(f, native_opkg_state_dir) - - self.remove(os.path.join(self.sdk_output, "var"), True) - - -class DpkgSdk(Sdk): - def __init__(self, d, manifest_dir=None): - super(DpkgSdk, self).__init__(d, manifest_dir) - - self.target_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt") - self.host_conf_dir = os.path.join(self.d.getVar("APTCONF_TARGET"), "apt-sdk") - - self.target_manifest = DpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_TARGET) - self.host_manifest = DpkgManifest(d, self.manifest_dir, - Manifest.MANIFEST_TYPE_SDK_HOST) - - deb_repo_workdir = "oe-sdk-repo" - if "sdk_ext" in d.getVar("BB_RUNTASK"): - deb_repo_workdir = "oe-sdk-ext-repo" - - self.target_pm = DpkgPM(d, self.sdk_target_sysroot, - self.d.getVar("PACKAGE_ARCHS"), - self.d.getVar("DPKG_ARCH"), - self.target_conf_dir, - deb_repo_workdir=deb_repo_workdir) - - self.host_pm = DpkgPM(d, self.sdk_host_sysroot, - self.d.getVar("SDK_PACKAGE_ARCHS"), - self.d.getVar("DEB_SDK_ARCH"), - self.host_conf_dir, - deb_repo_workdir=deb_repo_workdir) - - def _copy_apt_dir_to(self, dst_dir): - staging_etcdir_native = self.d.getVar("STAGING_ETCDIR_NATIVE") - - self.remove(dst_dir, True) - - shutil.copytree(os.path.join(staging_etcdir_native, "apt"), dst_dir) - - def _populate_sysroot(self, pm, manifest): - pkgs_to_install = manifest.parse_initial_manifest() - - pm.write_index() - pm.update() - - for pkg_type in self.install_order: - if pkg_type in pkgs_to_install: - pm.install(pkgs_to_install[pkg_type], - [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) - - def _populate(self): - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_PRE_TARGET_COMMAND")) - - bb.note("Installing TARGET packages") - self._populate_sysroot(self.target_pm, self.target_manifest) - - self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY')) - - self.target_pm.run_intercepts(populate_sdk='target') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND")) - - self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.target_pm.remove_packaging_data() - - bb.note("Installing NATIVESDK packages") - self._populate_sysroot(self.host_pm, self.host_manifest) - self.install_locales(self.host_pm) - - self.host_pm.run_intercepts(populate_sdk='host') - - execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND")) - - self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path, - "etc", "apt")) - - if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d): - self.host_pm.remove_packaging_data() - - native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path, - "var", "lib", "dpkg") - self.mkdirhier(native_dpkg_state_dir) - for f in glob.glob(os.path.join(self.sdk_output, "var", "lib", "dpkg", "*")): - self.movefile(f, native_dpkg_state_dir) - self.remove(os.path.join(self.sdk_output, "var"), True) - - - def sdk_list_installed_packages(d, target, rootfs_dir=None): if rootfs_dir is None: sdk_output = d.getVar('SDK_OUTPUT') @@ -394,6 +115,9 @@ def sdk_list_installed_packages(d, target, rootfs_dir=None): rootfs_dir = [sdk_output, os.path.join(sdk_output, target_path)][target is True] + from oe.package_manager.rpm import RpmPkgsList + from oe.package_manager.ipk import OpkgPkgsList + from oe.package_manager.deb import DpkgPkgsList img_type = d.getVar('IMAGE_PKGTYPE') if img_type == "rpm": arch_var = ["SDK_PACKAGE_ARCHS", None][target is True] @@ -409,6 +133,9 @@ def populate_sdk(d, manifest_dir=None): env_bkp = os.environ.copy() img_type = d.getVar('IMAGE_PKGTYPE') + from oe.package_manager.rpm.sdk import RpmSdk + from oe.package_manager.ipk.sdk import OpkgSdk + from oe.package_manager.deb.sdk import DpkgSdk if img_type == "rpm": RpmSdk(d, manifest_dir).populate() elif img_type == "ipk": diff --git a/poky/meta/lib/oeqa/core/runner.py b/poky/meta/lib/oeqa/core/runner.py index 00b7d0bb1..d50690ab3 100644 --- a/poky/meta/lib/oeqa/core/runner.py +++ b/poky/meta/lib/oeqa/core/runner.py @@ -195,6 +195,20 @@ class OETestResult(_TestResult): 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 diff --git a/poky/meta/lib/oeqa/core/target/ssh.py b/poky/meta/lib/oeqa/core/target/ssh.py index 090b40a81..aefb57680 100644 --- a/poky/meta/lib/oeqa/core/target/ssh.py +++ b/poky/meta/lib/oeqa/core/target/ssh.py @@ -107,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): """ diff --git a/poky/meta/lib/oeqa/manual/bsp-hw.json b/poky/meta/lib/oeqa/manual/bsp-hw.json index a9bc7d450..75b89758c 100644 --- a/poky/meta/lib/oeqa/manual/bsp-hw.json +++ b/poky/meta/lib/oeqa/manual/bsp-hw.json @@ -123,28 +123,6 @@ "summary": "boot_from_runlevel_5" } }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.shutdown_system", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot system", - "expected_results": "" - }, - "2": { - "action": "launch terminal and run \"shutdown -h now\" or \"poweroff\"", - "expected_results": "System can be shutdown successfully . " - } - }, - "summary": "shutdown_system" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.switch_among_multi_applications_and_desktop", @@ -261,28 +239,6 @@ "summary": "connman_offline_mode_in_connman-gnome" } }, - { - "test": { - "@alias": "bsps-hw.bsps-hw.X_server_can_start_up_with_runlevel_5_boot", - "author": [ - { - "email": "alexandru.c.georgescu@intel.com", - "name": "alexandru.c.georgescu@intel.com" - } - ], - "execution": { - "1": { - "action": "boot up system with default runlevel \n\n", - "expected_results": "X server can start up well and desktop display has no problem . \n\n" - }, - "2": { - "action": "type runlevel at command prompt", - "expected_results": "Output:N 5" - } - }, - "summary": "X_server_can_start_up_with_runlevel_5_boot" - } - }, { "test": { "@alias": "bsps-hw.bsps-hw.standby", diff --git a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py index d0f91668b..e29bf16cc 100644 --- a/poky/meta/lib/oeqa/runtime/cases/buildcpio.py +++ b/poky/meta/lib/oeqa/runtime/cases/buildcpio.py @@ -27,6 +27,7 @@ class BuildCpioTest(OERuntimeTestCase): @OEHasPackage(['autoconf']) def test_cpio(self): self.project.download_archive() - self.project.run_configure('--disable-maintainer-mode','') + self.project.run_configure('--disable-maintainer-mode', + 'sed -i -e "/char \*program_name/d" src/global.c;') self.project.run_make() self.project.run_install() diff --git a/poky/meta/lib/oeqa/runtime/cases/ltp.py b/poky/meta/lib/oeqa/runtime/cases/ltp.py index 6dc5ef22a..a66d5d13d 100644 --- a/poky/meta/lib/oeqa/runtime/cases/ltp.py +++ b/poky/meta/lib/oeqa/runtime/cases/ltp.py @@ -78,9 +78,10 @@ class LtpTest(LtpTestBase): # copy nice log from DUT dst = os.path.join(self.ltptest_log_dir, "%s" % ltp_group ) remote_src = "/opt/ltp/results/%s" % ltp_group - (status, output) = self.target.copyFrom(remote_src, dst) + (status, output) = self.target.copyFrom(remote_src, dst, True) msg = 'File could not be copied. Output: %s' % output - self.assertEqual(status, 0, msg=msg) + if status: + self.target.logger.warning(msg) parser = LtpParser() results, sections = parser.parse(dst) diff --git a/poky/meta/lib/oeqa/sdk/cases/buildcpio.py b/poky/meta/lib/oeqa/sdk/cases/buildcpio.py index 902e93f62..e56582654 100644 --- a/poky/meta/lib/oeqa/sdk/cases/buildcpio.py +++ b/poky/meta/lib/oeqa/sdk/cases/buildcpio.py @@ -28,6 +28,7 @@ class BuildCpioTest(OESDKTestCase): self.assertTrue(os.path.isdir(dirs["source"])) os.makedirs(dirs["build"]) + self._run("sed -i -e '/char.*program_name/d' {source}/src/global.c".format(**dirs)) self._run("cd {build} && {source}/configure --disable-maintainer-mode $CONFIGURE_FLAGS".format(**dirs)) self._run("cd {build} && make -j".format(**dirs)) self._run("cd {build} && make install DESTDIR={install}".format(**dirs)) diff --git a/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py b/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py index bbaa5c55c..1121ed20e 100644 --- a/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py +++ b/poky/meta/lib/oeqa/sdk/cases/buildgalculator.py @@ -35,7 +35,7 @@ class GalculatorTest(OESDKTestCase): self.assertTrue(os.path.isdir(dirs["source"])) os.makedirs(dirs["build"]) - self._run("cd {source} && autoreconf -i -f -I $OECORE_TARGET_SYSROOT/usr/share/aclocal -I m4".format(**dirs)) + self._run("cd {source} && sed -i -e '/s_preferences.*prefs;/d' src/main.c && autoreconf -i -f -I $OECORE_TARGET_SYSROOT/usr/share/aclocal -I m4".format(**dirs)) self._run("cd {build} && {source}/configure $CONFIGURE_FLAGS".format(**dirs)) self._run("cd {build} && make -j".format(**dirs)) self._run("cd {build} && make install DESTDIR={install}".format(**dirs)) diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py index dea519e6d..f7a253374 100644 --- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py +++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py @@ -263,6 +263,80 @@ PNBLACKLIST[busybox] = "Don't build this" bitbake("--graphviz core-image-sato") + def test_fit_image(self): + """ + Summary: Check if FIT image and Image Tree Source (its) are built + and the Image Tree Source has the correct fields. + Expected: 1. fitImage and fitImage-its can be built + 2. The type, load address, entrypoint address and + default values of kernel and ramdisk are as expected + in the Image Tree Source. Not all the fields are tested, + only the key fields that wont vary between different + architectures. + Product: oe-core + Author: Usama Arif + """ + config = """ +# Enable creation of fitImage +KERNEL_IMAGETYPE = "Image" +KERNEL_IMAGETYPES += " fitImage " +KERNEL_CLASSES = " kernel-fitimage " + +# RAM disk variables including load address and entrypoint for kernel and RAM disk +IMAGE_FSTYPES += "cpio.gz" +INITRAMFS_IMAGE = "core-image-minimal" +UBOOT_RD_LOADADDRESS = "0x88000000" +UBOOT_RD_ENTRYPOINT = "0x88000000" +UBOOT_LOADADDRESS = "0x80080000" +UBOOT_ENTRYPOINT = "0x80080000" +""" + self.write_config(config) + + # fitImage is created as part of linux recipe + bitbake("virtual/kernel") + + image_type = "core-image-minimal" + deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE') + machine = get_bb_var('MACHINE') + fitimage_its_path = os.path.join(deploy_dir_image, + "fitImage-its-%s-%s-%s" % (image_type, machine, machine)) + fitimage_path = os.path.join(deploy_dir_image, + "fitImage-%s-%s-%s" % (image_type, machine, machine)) + + self.assertTrue(os.path.exists(fitimage_its_path), + "%s image tree source doesn't exist" % (fitimage_its_path)) + self.assertTrue(os.path.exists(fitimage_path), + "%s FIT image doesn't exist" % (fitimage_path)) + + # Check that the type, load address, entrypoint address and default + # values for kernel and ramdisk in Image Tree Source are as expected. + # The order of fields in the below array is important. Not all the + # fields are tested, only the key fields that wont vary between + # different architectures. + its_field_check = ['type = "kernel";', + 'load = <0x80080000>;', + 'entry = <0x80080000>;', + 'type = "ramdisk";', + 'load = <0x88000000>;', + 'entry = <0x88000000>;', + 'default = "conf@1";', + 'kernel = "kernel@1";', + 'ramdisk = "ramdisk@1";' + ] + + with open(fitimage_its_path) as its_file: + field_index = 0 + for line in its_file: + if field_index == len(its_field_check): + break + if its_field_check[field_index] in line: + field_index +=1 + + if field_index != len(its_field_check): # if its equal, the test passed + self.assertTrue(field_index == len(its_field_check), + "Fields in Image Tree Source File %s did not match, error in finding %s" + % (fitimage_its_path, its_field_check[field_index])) + def test_image_gen_debugfs(self): """ Summary: Check debugfs generation diff --git a/poky/meta/lib/oeqa/selftest/cases/tinfoil.py b/poky/meta/lib/oeqa/selftest/cases/tinfoil.py index d1aa7b9af..206168ed0 100644 --- a/poky/meta/lib/oeqa/selftest/cases/tinfoil.py +++ b/poky/meta/lib/oeqa/selftest/cases/tinfoil.py @@ -100,8 +100,9 @@ class TinfoilTests(OESelftestTestCase): eventreceived = False commandcomplete = False start = time.time() - # Wait for 5s in total so we'd detect spurious heartbeat events for example - while time.time() - start < 5: + # Wait for 10s in total so we'd detect spurious heartbeat events for example + # The test is IO load sensitive too + while time.time() - start < 10: event = tinfoil.wait_event(1) if event: if isinstance(event, bb.command.CommandCompleted): diff --git a/poky/meta/lib/oeqa/utils/package_manager.py b/poky/meta/lib/oeqa/utils/package_manager.py index 2d358f717..362329929 100644 --- a/poky/meta/lib/oeqa/utils/package_manager.py +++ b/poky/meta/lib/oeqa/utils/package_manager.py @@ -12,7 +12,9 @@ def get_package_manager(d, root_path): """ Returns an OE package manager that can install packages in root_path. """ - from oe.package_manager import RpmPM, OpkgPM, DpkgPM + from oe.package_manager.rpm import RpmPM + from oe.package_manager.ipk import OpkgPM + from oe.package_manager.deb import DpkgPM pkg_class = d.getVar("IMAGE_PKGTYPE") if pkg_class == "rpm": diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc index 2024e1378..628ca6492 100644 --- a/poky/meta/recipes-bsp/grub/grub2.inc +++ b/poky/meta/recipes-bsp/grub/grub2.inc @@ -11,6 +11,8 @@ SECTION = "bootloaders" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +CVE_PRODUCT = "grub2" + SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \ file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \ file://autogen.sh-exclude-pc.patch \ diff --git a/poky/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch b/poky/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch new file mode 100644 index 000000000..32808fb92 --- /dev/null +++ b/poky/meta/recipes-bsp/libacpi/files/0001-libacpi-Fix-build-witth-fno-commom.patch @@ -0,0 +1,68 @@ +From 9839c169f513e65fc711646257b3e8588cce623c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Aug 2020 12:06:01 -0700 +Subject: [PATCH] libacpi: Fix build witth -fno-commom + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + libacpi.c | 16 ++++++++++++++++ + libacpi.h | 6 +++--- + 2 files changed, 19 insertions(+), 3 deletions(-) + +diff --git a/libacpi.c b/libacpi.c +index 4e34725..9344ea4 100644 +--- a/libacpi.c ++++ b/libacpi.c +@@ -14,6 +14,22 @@ + #include "libacpi.h" + #include "list.h" + ++/** ++ * Array for existing batteries, loop until ++ * globals->battery_count ++ */ ++battery_t batteries[MAX_ITEMS]; ++/** ++ * Array for existing thermal zones, loop until ++ * globals->thermal_count ++ */ ++thermal_t thermals[MAX_ITEMS]; ++/** ++ * Array for existing fans, loop until ++ * globals->fan_count ++ */ ++fan_t fans[MAX_ITEMS]; ++ + static int read_acpi_battinfo(const int num); + static int read_acpi_battalarm(const int num); + static int read_acpi_battstate(const int num); +diff --git a/libacpi.h b/libacpi.h +index 9334b79..5242d3d 100644 +--- a/libacpi.h ++++ b/libacpi.h +@@ -183,17 +183,17 @@ typedef struct { + * Array for existing batteries, loop until + * globals->battery_count + */ +-battery_t batteries[MAX_ITEMS]; ++extern battery_t batteries[MAX_ITEMS]; + /** + * Array for existing thermal zones, loop until + * globals->thermal_count + */ +-thermal_t thermals[MAX_ITEMS]; ++extern thermal_t thermals[MAX_ITEMS]; + /** + * Array for existing fans, loop until + * globals->fan_count + */ +-fan_t fans[MAX_ITEMS]; ++extern fan_t fans[MAX_ITEMS]; + /** + * Finds existing batteries and fills the + * corresponding batteries structures with the paths +-- +2.28.0 + diff --git a/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb b/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb index 5e7f7fa8e..fa9e3d489 100644 --- a/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb +++ b/poky/meta/recipes-bsp/libacpi/libacpi_0.2.bb @@ -11,7 +11,9 @@ SRC_URI = "http://www.ngolde.de/download/libacpi-${PV}.tar.gz \ file://makefile-fix.patch \ file://libacpi_fix_for_x32.patch \ file://use_correct_strip_in_cross_environment.patch \ - file://ldflags.patch " + file://ldflags.patch \ + file://0001-libacpi-Fix-build-witth-fno-commom.patch \ + " SRC_URI[md5sum] = "05b53dd7bead66dda35fec502b91066c" SRC_URI[sha256sum] = "13086e31d428b9c125954d48ac497b754bbbce2ef34ea29ecd903e82e25bad29" diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb deleted file mode 100644 index 3820ba262..000000000 --- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb +++ /dev/null @@ -1,27 +0,0 @@ -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 = "86bd30a14e153a18f670b25708795253d8736f0f" - -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/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.bb new file mode 100644 index 000000000..47e64f911 --- /dev/null +++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.3.bb @@ -0,0 +1,30 @@ +SUMMARY = "U-Boot libraries and tools to access environment" + +DESCRIPTION = "This package contains tools and libraries to read \ +and modify U-Boot environment. \ +It provides a hardware-independent replacement for fw_printenv/setenv utilities \ +provided by U-Boot" + +HOMEPAGE = "https://github.com/sbabic/libubootenv" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c" +SECTION = "libs" + +SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https" +SRCREV = "ad253cfdb07c8492f2ee46a52fbc607ad0b96414" + +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" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +RRECOMMENDS_${PN}-bin_append_class-target = " u-boot-default-env" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb b/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb index b56a20482..cf4af8260 100644 --- a/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb +++ b/poky/meta/recipes-connectivity/dhcp/dhcp_4.4.2.bb @@ -19,3 +19,5 @@ LDFLAGS_append = " -pthread" PACKAGECONFIG ?= "" PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2" + +CFLAGS += "-fcommon" diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch b/poky/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch new file mode 100644 index 000000000..49d319f59 --- /dev/null +++ b/poky/meta/recipes-connectivity/inetutils/inetutils/0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch @@ -0,0 +1,58 @@ +From 7d39930468e272c740b0eed3c7e5b7fb3abf29e8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Aug 2020 10:36:22 -0700 +Subject: [PATCH] ftpd,telnetd: Fix multiple definitions of errcatch and not42 + +This helps fix build failures when -fno-common option is used + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Signed-off-by: Khem Raj +--- + ftpd/extern.h | 2 +- + ftpd/ftpcmd.c | 1 + + telnetd/utility.c | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/ftpd/extern.h b/ftpd/extern.h +index ab33cf3..91dbbee 100644 +--- a/ftpd/extern.h ++++ b/ftpd/extern.h +@@ -90,7 +90,7 @@ extern void user (const char *); + extern char *sgetsave (const char *); + + /* Exported from ftpd.c. */ +-jmp_buf errcatch; ++extern jmp_buf errcatch; + extern struct sockaddr_storage data_dest; + extern socklen_t data_dest_len; + extern struct sockaddr_storage his_addr; +diff --git a/ftpd/ftpcmd.c b/ftpd/ftpcmd.c +index beb1f06..d272e9d 100644 +--- a/ftpd/ftpcmd.c ++++ b/ftpd/ftpcmd.c +@@ -106,6 +106,7 @@ + #endif + + off_t restart_point; ++jmp_buf errcatch; + + static char cbuf[512]; /* Command Buffer. */ + static char *fromname; +diff --git a/telnetd/utility.c b/telnetd/utility.c +index e7ffb8e..46bf91e 100644 +--- a/telnetd/utility.c ++++ b/telnetd/utility.c +@@ -63,7 +63,7 @@ static int ncc; + static char ptyibuf[BUFSIZ], *ptyip; + static int pcc; + +-int not42; ++extern int not42; + + static int + readstream (int p, char *ibuf, int bufsize) +-- +2.28.0 + diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb index cc9410b94..adf6d4414 100644 --- a/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb +++ b/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb @@ -23,6 +23,7 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \ file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \ file://0001-rcp-fix-to-work-with-large-files.patch \ file://fix-buffer-fortify-tfpt.patch \ + file://0001-ftpd-telnetd-Fix-multiple-definitions-of-errcatch-an.patch \ " SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52" diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch index f9580b7d4..fdd8bbfb3 100644 --- a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch +++ b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-devlink.c-add-missing-include.patch @@ -1,23 +1,24 @@ -From 5df629d825df4ccc4283228bc0739da126326072 Mon Sep 17 00:00:00 2001 +From ce39396d4617874323f6039a5b476e44bf552908 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Sat, 6 Jun 2020 18:00:13 +0000 Subject: [PATCH] devlink.c: add missing include Upstream-Status: Pending Signed-off-by: Alexander Kanavin + --- devlink/devlink.c | 1 + 1 file changed, 1 insertion(+) diff --git a/devlink/devlink.c b/devlink/devlink.c -index 16602ab..c278e6d 100644 +index 0982fae..93dc01c 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c -@@ -26,6 +26,7 @@ - #include - #include +@@ -33,6 +33,7 @@ + #include + #include #include +#include - #include "SNAPSHOT.h" + #include "version.h" #include "list.h" diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch index 50c4bfb0f..74e3de1ce 100644 --- a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch +++ b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-libc-compat.h-add-musl-workaround.patch @@ -1,4 +1,4 @@ -From b7d96340c55afb7023ded0041107c63dbd886196 Mon Sep 17 00:00:00 2001 +From c25f8d1f7a6203dfeb10b39f80ffd314bb84a58d Mon Sep 17 00:00:00 2001 From: Baruch Siach Date: Thu, 22 Dec 2016 15:26:30 +0200 Subject: [PATCH] libc-compat.h: add musl workaround @@ -14,15 +14,16 @@ https://git.buildroot.net/buildroot/tree/package/iproute2/0001-Add-the-musl-work Signed-off-by: Baruch Siach Signed-off-by: Maxin B. John + --- include/uapi/linux/libc-compat.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h -index f38571d..30f0b67 100644 +index a159991..22198fa 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h -@@ -49,10 +49,12 @@ +@@ -50,10 +50,12 @@ #define _LIBC_COMPAT_H /* We have included glibc headers... */ @@ -36,6 +37,3 @@ index f38571d..30f0b67 100644 /* GLIBC headers included first so don't define anything * that would already be defined. */ --- -2.4.0 - diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.7.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.7.0.bb deleted file mode 100644 index 276afeab1..000000000 --- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.7.0.bb +++ /dev/null @@ -1,12 +0,0 @@ -require iproute2.inc - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \ - file://0001-libc-compat.h-add-musl-workaround.patch \ - file://0001-devlink.c-add-missing-include.patch \ - " - -SRC_URI[sha256sum] = "725dc7ba94aae54c6f8d4223ca055d9fb4fe89d6994b1c03bfb4411c4dd10f21" - -# CFLAGS are computed in Makefile and reference CCOPTS -# -EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.8.0.bb new file mode 100644 index 000000000..3a590f912 --- /dev/null +++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.8.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 \ + file://0001-devlink.c-add-missing-include.patch \ + " + +SRC_URI[sha256sum] = "cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e" + +# CFLAGS are computed in Makefile and reference CCOPTS +# +EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'" diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service index 6481377d8..5c845b7e8 100644 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service +++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-server.service @@ -17,7 +17,6 @@ ExecStop=@SBINDIR@/rpc.nfsd 0 ExecStopPost=@SBINDIR@/exportfs -au ExecStopPost=@SBINDIR@/exportfs -f ExecReload=@SBINDIR@/exportfs -r -StandardError=syslog RemainAfterExit=yes [Install] diff --git a/poky/meta/recipes-connectivity/openssh/openssh/sshd@.service b/poky/meta/recipes-connectivity/openssh/openssh/sshd@.service index 422450c7a..9d9965e62 100644 --- a/poky/meta/recipes-connectivity/openssh/openssh/sshd@.service +++ b/poky/meta/recipes-connectivity/openssh/openssh/sshd@.service @@ -7,5 +7,4 @@ Environment="SSHD_OPTS=" EnvironmentFile=-/etc/default/ssh ExecStart=-@SBINDIR@/sshd -i $SSHD_OPTS StandardInput=socket -StandardError=syslog KillMode=process diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux b/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux index 83596e0ef..adad7e62e 100644 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/meson.cross.d/common-linux @@ -2,4 +2,4 @@ have_proc_self_cmdline = true [binaries] -env = "/usr/bin/env" +env = '/usr/bin/env' diff --git a/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb b/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb deleted file mode 100644 index 24de55d92..000000000 --- a/poky/meta/recipes-core/glibc/cross-localedef-native_2.31.bb +++ /dev/null @@ -1,52 +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=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/poky/meta/recipes-core/glibc/cross-localedef-native_2.32.bb b/poky/meta/recipes-core/glibc/cross-localedef-native_2.32.bb new file mode 100644 index 000000000..5a0abbb70 --- /dev/null +++ b/poky/meta/recipes-core/glibc/cross-localedef-native_2.32.bb @@ -0,0 +1,50 @@ +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-from-util-linux.patch \ + file://0002-localedef-fix-ups-hardlink-to-make-it-compile.patch \ + \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0021-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0022-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ +" +# Makes for a rather long rev (22 characters), but... +# +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/poky/meta/recipes-core/glibc/glibc-common.inc b/poky/meta/recipes-core/glibc/glibc-common.inc index 8d412cc85..027c70099 100644 --- a/poky/meta/recipes-core/glibc/glibc-common.inc +++ b/poky/meta/recipes-core/glibc/glibc-common.inc @@ -22,4 +22,4 @@ ARM_INSTRUCTION_SET_armv6 = "arm" # COMPATIBLE_HOST_libc-musl_class-target = "null" -PV = "2.31" +PV = "2.32" diff --git a/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb b/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb deleted file mode 100644 index f7702e035..000000000 --- a/poky/meta/recipes-core/glibc/glibc-locale_2.31.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-locale.inc diff --git a/poky/meta/recipes-core/glibc/glibc-locale_2.32.bb b/poky/meta/recipes-core/glibc/glibc-locale_2.32.bb new file mode 100644 index 000000000..f7702e035 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc-locale_2.32.bb @@ -0,0 +1 @@ +require glibc-locale.inc diff --git a/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb b/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb deleted file mode 100644 index 0b69bad46..000000000 --- a/poky/meta/recipes-core/glibc/glibc-mtrace_2.31.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-mtrace.inc diff --git a/poky/meta/recipes-core/glibc/glibc-mtrace_2.32.bb b/poky/meta/recipes-core/glibc/glibc-mtrace_2.32.bb new file mode 100644 index 000000000..0b69bad46 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc-mtrace_2.32.bb @@ -0,0 +1 @@ +require glibc-mtrace.inc diff --git a/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb b/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb deleted file mode 100644 index 5a89bd802..000000000 --- a/poky/meta/recipes-core/glibc/glibc-scripts_2.31.bb +++ /dev/null @@ -1 +0,0 @@ -require glibc-scripts.inc diff --git a/poky/meta/recipes-core/glibc/glibc-scripts_2.32.bb b/poky/meta/recipes-core/glibc/glibc-scripts_2.32.bb new file mode 100644 index 000000000..5a89bd802 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc-scripts_2.32.bb @@ -0,0 +1 @@ +require glibc-scripts.inc diff --git a/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb b/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb deleted file mode 100644 index d887aeff7..000000000 --- a/poky/meta/recipes-core/glibc/glibc-testsuite_2.31.bb +++ /dev/null @@ -1,63 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc-testsuite_2.32.bb b/poky/meta/recipes-core/glibc/glibc-testsuite_2.32.bb new file mode 100644 index 000000000..d887aeff7 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc-testsuite_2.32.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/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc index c2d68979e..156605629 100644 --- a/poky/meta/recipes-core/glibc/glibc-version.inc +++ b/poky/meta/recipes-core/glibc/glibc-version.inc @@ -1,7 +1,7 @@ -SRCBRANCH ?= "release/2.31/master" -PV = "2.31+git${SRCPV}" -SRCREV_glibc ?= "109474122400ca7d60782b131dc867a5c1f2fe55" -SRCREV_localedef ?= "cd9f958c4c94a638fa7b2b4e21627364f1a1a655" +SRCBRANCH ?= "release/2.32/master" +PV = "2.32" +SRCREV_glibc ?= "3de512be7ea6053255afed6154db9ee31d4e557a" +SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28" GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git" diff --git a/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch b/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch index d0786be8b..e0ec1887d 100644 --- a/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch +++ b/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-from-util-linux.patch @@ -1,7 +1,7 @@ -From 3dcf144e998aed17b3fb957a255b1e923ba07d71 Mon Sep 17 00:00:00 2001 +From 5db90855621a81d02f1434d5602cefea8c45de1c Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Sat, 7 Dec 2019 09:59:22 -0800 -Subject: [PATCH] localedef: Add hardlink resolver from util-linux +Subject: [PATCH 01/29] localedef: Add hardlink resolver from util-linux The hard link resolver that is built into localedef cannot be run in parallel. It will search sibling directories (which are be processed @@ -1128,3 +1128,6 @@ index 0000000000..0129a85e2e +} + +#endif +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch b/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch deleted file mode 100644 index d6652981a..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0001-localedef-Add-hardlink-resolver-to-build.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 56ae260ac24ade94e2e0e77c81751312372d253f Mon Sep 17 00:00:00 2001 -From: Jason Wessel -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/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch b/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch index 5222e37d1..05b76803b 100644 --- a/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch +++ b/poky/meta/recipes-core/glibc/glibc/0002-localedef-fix-ups-hardlink-to-make-it-compile.patch @@ -1,7 +1,7 @@ -From b52dba15527380cc18635e3696e0ef87efee9a84 Mon Sep 17 00:00:00 2001 +From ab022ce3c1c01fd6c850f541a33efd0cacabe052 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Sat, 7 Dec 2019 10:01:37 -0800 -Subject: [PATCH] localedef: fix-ups hardlink to make it compile +Subject: [PATCH 02/29] localedef: fix-ups hardlink to make it compile Upstream-Status: Pending Signed-off-by: Jason Wessel @@ -236,3 +236,6 @@ index 63615896b0..726e6dd948 100644 } continue; } +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch index 4cdc8354b..743994f2d 100644 --- a/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch +++ b/poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch @@ -1,7 +1,8 @@ -From 6987ad183770cb56680ccc4f6ea065a04f31ccb6 Mon Sep 17 00:00:00 2001 +From de4322ef6d4dc9fc3ee9b69af1c10edbc64a66a3 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:48:24 +0000 -Subject: [PATCH] nativesdk-glibc: Look for host system ld.so.cache as well +Subject: [PATCH 03/29] nativesdk-glibc: Look for host system ld.so.cache as + well Upstream-Status: Inappropriate [embedded specific] @@ -30,10 +31,10 @@ Signed-off-by: Khem Raj 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/elf/dl-load.c b/elf/dl-load.c -index a6b80f9395..3226f2e531 100644 +index e39980fb19..565b039b23 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -2073,6 +2073,14 @@ _dl_map_object (struct link_map *loader, const char *name, +@@ -2160,6 +2160,14 @@ _dl_map_object (struct link_map *loader, const char *name, } } @@ -48,7 +49,7 @@ index a6b80f9395..3226f2e531 100644 #ifdef USE_LDCONFIG if (fd == -1 && (__glibc_likely ((mode & __RTLD_SECURE) == 0) -@@ -2131,14 +2139,6 @@ _dl_map_object (struct link_map *loader, const char *name, +@@ -2218,14 +2226,6 @@ _dl_map_object (struct link_map *loader, const char *name, } #endif @@ -63,3 +64,6 @@ index a6b80f9395..3226f2e531 100644 /* Add another newline when we are tracing the library loading. */ if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS)) _dl_debug_printf ("\n"); +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch index 62e12897f..a3b5b7750 100644 --- a/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch +++ b/poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch @@ -1,7 +1,8 @@ -From 7806340c2accc2c51e7e861b618c29fb5609a007 Mon Sep 17 00:00:00 2001 +From 258c44e4ecffd830cb89d0016d45b2bac765f559 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:50:00 +0000 -Subject: [PATCH] nativesdk-glibc: Fix buffer overrun with a relocated SDK +Subject: [PATCH 04/29] nativesdk-glibc: Fix buffer overrun with a relocated + SDK When ld-linux-*.so.2 is relocated to a path that is longer than the original fixed location, the dynamic loader will crash in open_path @@ -21,10 +22,10 @@ Signed-off-by: Khem Raj 1 file changed, 12 insertions(+) diff --git a/elf/dl-load.c b/elf/dl-load.c -index 3226f2e531..7cb8a86fab 100644 +index 565b039b23..e1b3486549 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -1773,7 +1773,19 @@ open_path (const char *name, size_t namelen, int mode, +@@ -1860,7 +1860,19 @@ open_path (const char *name, size_t namelen, int mode, given on the command line when rtld is run directly. */ return -1; @@ -44,3 +45,6 @@ index 3226f2e531..7cb8a86fab 100644 do { struct r_search_path_elem *this_dir = *dirs; +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch index 294c2b975..2073576aa 100644 --- a/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch +++ b/poky/meta/recipes-core/glibc/glibc/0005-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch @@ -1,7 +1,8 @@ -From 1b97befbe693eb93a77b6098f6ae1394a53462f4 Mon Sep 17 00:00:00 2001 +From 19cd858f5f04a6ac584fbd89a2fbc51791263b85 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 01:51:38 +0000 -Subject: [PATCH] nativesdk-glibc: Raise the size of arrays containing dl paths +Subject: [PATCH 05/29] nativesdk-glibc: Raise the size of arrays containing dl + paths This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings and lengths as well as ld.so.cache path in the dynamic loader to specific @@ -25,7 +26,7 @@ Signed-off-by: Khem Raj 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/elf/dl-cache.c b/elf/dl-cache.c -index 3eedd9afcf..efdfe5cae7 100644 +index 93d185e788..e115b18756 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -133,6 +133,10 @@ do \ @@ -40,10 +41,10 @@ index 3eedd9afcf..efdfe5cae7 100644 _dl_cache_libcmp (const char *p1, const char *p2) { diff --git a/elf/dl-load.c b/elf/dl-load.c -index 7cb8a86fab..e32d4aa936 100644 +index e1b3486549..5226d0c4fa 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c -@@ -110,8 +110,8 @@ static size_t max_capstrlen attribute_relro; +@@ -111,8 +111,8 @@ static size_t max_capstrlen attribute_relro; gen-trusted-dirs.awk. */ #include "trusted-dirs.h" @@ -66,10 +67,10 @@ index 331cc1df48..885b2d9476 100644 +const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp"))) = RUNTIME_LINKER; diff --git a/elf/ldconfig.c b/elf/ldconfig.c -index 681ed78496..8833ed0a6b 100644 +index 0c090dca15..6bb6e0fe72 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c -@@ -168,6 +168,9 @@ static struct argp argp = +@@ -171,6 +171,9 @@ static struct argp argp = options, parse_opt, NULL, doc, NULL, more_help, NULL }; @@ -80,18 +81,18 @@ index 681ed78496..8833ed0a6b 100644 a platform. */ static int diff --git a/elf/rtld.c b/elf/rtld.c -index 553cfbd1b7..39347c2c03 100644 +index 5b882163fa..db407b5d8b 100644 --- a/elf/rtld.c +++ b/elf/rtld.c -@@ -175,6 +175,7 @@ dso_name_valid_for_suid (const char *p) +@@ -217,6 +217,7 @@ dso_name_valid_for_suid (const char *p) } return *p != '\0'; } +extern const char LD_SO_CACHE[4096] __attribute__ ((section (".ldsocache"))); - /* LD_AUDIT variable contents. Must be processed before the - audit_list below. */ -@@ -1222,13 +1223,13 @@ of this helper program; chances are you did not intend to run this program.\n\ + static void + audit_list_init (struct audit_list *list) +@@ -1286,13 +1287,13 @@ of this helper program; chances are you did not intend to run this program.\n\ --list list all dependencies and how they are resolved\n\ --verify verify that given object really is a dynamically linked\n\ object we can handle\n\ @@ -135,3 +136,6 @@ index 6b310e9e15..3877311df4 100644 #ifndef add_system_dir # define add_system_dir(dir) add_dir (dir) #endif +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch index db8b6c0f1..372dca727 100644 --- a/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch +++ b/poky/meta/recipes-core/glibc/glibc/0006-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch @@ -1,7 +1,7 @@ -From a752857cc342ee5136c9a593037b6ee6ff8af8ee Mon Sep 17 00:00:00 2001 +From bd0486cab67c3441210aed48caab67418610a765 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 31 Dec 2015 14:35:35 -0800 -Subject: [PATCH] nativesdk-glibc: Allow 64 bit atomics for x86 +Subject: [PATCH 06/29] nativesdk-glibc: Allow 64 bit atomics for x86 The fix consist of allowing 64bit atomic ops for x86. This should be safe for i586 and newer CPUs. @@ -37,3 +37,6 @@ index bb49648374..aa08d3c0a7 100644 # define SP_REG "esp" # define SEG_REG "gs" # define BR_CONSTRAINT "r" +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch b/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch index 27cd17cdc..729ce1b42 100644 --- a/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch +++ b/poky/meta/recipes-core/glibc/glibc/0007-nativesdk-glibc-Make-relocatable-install-for-locales.patch @@ -1,7 +1,7 @@ -From 3df91d1d8b9c7a01b3ef8133c4f9b9764227d583 Mon Sep 17 00:00:00 2001 +From 9a8bf11ea375a2fe5eddb30bc10943e64d3b96a4 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 3 Aug 2018 09:55:12 -0700 -Subject: [PATCH] nativesdk-glibc: Make relocatable install for locales +Subject: [PATCH 07/29] nativesdk-glibc: Make relocatable install for locales The glibc locale path is hard-coded to the install prefix, but in SDKs we need to be able to relocate the binaries. Expand the strings to 4K and put them in a @@ -12,16 +12,17 @@ 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(-) + locale/findlocale.c | 4 ++-- + locale/loadarchive.c | 2 +- + locale/localeinfo.h | 2 +- + locale/programs/locale.c | 7 ++++--- + 4 files changed, 8 insertions(+), 7 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 +diff --git a/locale/findlocale.c b/locale/findlocale.c +index 9cd3b71a6d..84272310e0 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]; @@ -30,7 +31,7 @@ Index: git/locale/findlocale.c /* 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 +@@ -166,7 +166,7 @@ _nl_find_locale (const char *locale_path, size_t locale_path_len, /* Nothing in the archive. Set the default path to search below. */ locale_path = _nl_default_locale_path; @@ -39,10 +40,10 @@ Index: git/locale/findlocale.c } 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 +diff --git a/locale/loadarchive.c b/locale/loadarchive.c +index ba0fe45648..9737fd4cda 100644 +--- a/locale/loadarchive.c ++++ b/locale/loadarchive.c @@ -42,7 +42,7 @@ @@ -52,11 +53,11 @@ Index: git/locale/loadarchive.c /* 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 +diff --git a/locale/localeinfo.h b/locale/localeinfo.h +index 1bfe22aa7f..fdc283c69a 100644 +--- a/locale/localeinfo.h ++++ b/locale/localeinfo.h +@@ -331,7 +331,7 @@ _nl_lookup_word (locale_t l, int category, int item) } /* Default search path if no LOCPATH environment variable. */ @@ -65,11 +66,11 @@ Index: git/locale/localeinfo.h /* 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 +diff --git a/locale/programs/locale.c b/locale/programs/locale.c +index e2e309c2a1..61a92cdcd1 100644 +--- a/locale/programs/locale.c ++++ b/locale/programs/locale.c +@@ -632,6 +632,7 @@ nameentcmp (const void *a, const void *b) ((const struct nameent *) b)->name); } @@ -77,7 +78,7 @@ Index: git/locale/programs/locale.c static int write_archive_locales (void **all_datap, char *linebuf) -@@ -645,7 +646,7 @@ write_archive_locales (void **all_datap, +@@ -645,7 +646,7 @@ write_archive_locales (void **all_datap, char *linebuf) int fd, ret = 0; uint32_t cnt; @@ -86,7 +87,7 @@ Index: git/locale/programs/locale.c if (fd < 0) return 0; -@@ -700,8 +701,8 @@ write_archive_locales (void **all_datap, +@@ -700,8 +701,8 @@ write_archive_locales (void **all_datap, char *linebuf) if (cnt) putchar_unlocked ('\n'); @@ -97,3 +98,6 @@ Index: git/locale/programs/locale.c locrec = (struct locrecent *) (addr + names[cnt].locrec_offset); +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch index 3dac32538..5e3b3e2d7 100644 --- a/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch +++ b/poky/meta/recipes-core/glibc/glibc/0008-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch @@ -1,7 +1,7 @@ -From 61b6c9737897c5828ef4b40699ee0a74c570034a Mon Sep 17 00:00:00 2001 +From 59b0a78ae706a540dbd8905bc97c875220d6aeb2 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2015 00:01:50 +0000 -Subject: [PATCH] fsl e500/e5500/e6500/603e fsqrt implementation +Subject: [PATCH 08/29] fsl e500/e5500/e6500/603e fsqrt implementation Upstream-Status: Pending Signed-off-by: Edmar Wienskoski @@ -1579,3 +1579,6 @@ index 0000000000..04ff8cc181 +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/e6500/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/e6500/fpu +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/poky/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch new file mode 100644 index 000000000..a94ed207f --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0009-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch @@ -0,0 +1,208 @@ +From 78f67f016ca9e3f7a37af86cf6e400cf17cf1d05 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:15:07 +0000 +Subject: [PATCH 09/29] ppc/sqrt: Fix undefined reference to `__sqrt_finite' + +on ppc fixes the errors like below +| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite' +| 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) +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch deleted file mode 100644 index 456f91fb8..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0009-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch +++ /dev/null @@ -1,29 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch new file mode 100644 index 000000000..743bea143 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -0,0 +1,387 @@ +From 670b5d70ab62b42ab02a8e18b8fcee2879b8c4a0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:16:38 +0000 +Subject: [PATCH 10/29] __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) +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch deleted file mode 100644 index 01446abc4..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0010-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch +++ /dev/null @@ -1,205 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/poky/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch new file mode 100644 index 000000000..a9280b7c3 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch @@ -0,0 +1,62 @@ +From de7a7c04a92dbc5d35cb37e47c471e12784cc95e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:20:09 +0000 +Subject: [PATCH 11/29] Quote from bug 1443 which explains what the patch does + : + + We build some random program and link it with -lust. When we run it, + it dies with a SIGSEGV before reaching main(). + + 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: +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch deleted file mode 100644 index 451f37265..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ /dev/null @@ -1,384 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch deleted file mode 100644 index a0b46c047..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch +++ /dev/null @@ -1,58 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/poky/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch new file mode 100644 index 000000000..ab07455ad --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch @@ -0,0 +1,36 @@ +From c8807899367e64d803585e7dd4b56a1085d5893b Mon Sep 17 00:00:00 2001 +From: Ting Liu +Date: Wed, 19 Dec 2012 04:39:57 -0600 +Subject: [PATCH 12/29] eglibc: run libm-err-tab.pl with specific dirs in ${S} + +libm-err-tab.pl will parse all the files named "libm-test-ulps" +in the given dir recursively. To avoid parsing the one in +${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 $@ + +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch new file mode 100644 index 000000000..d875825ff --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch @@ -0,0 +1,61 @@ +From 86fea3409b89f9d8884053a519282f2f30d7ea87 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:24:46 +0000 +Subject: [PATCH 13/29] __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 + { +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch deleted file mode 100644 index 736de8cf0..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0013-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch +++ /dev/null @@ -1,33 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch deleted file mode 100644 index e73b640c1..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0014-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch +++ /dev/null @@ -1,58 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/poky/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch new file mode 100644 index 000000000..954534bae --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch @@ -0,0 +1,42 @@ +From a3c4f67fb3cb02855073a9cdbcf2881fb53144f0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:27:10 +0000 +Subject: [PATCH 14/29] 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 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch deleted file mode 100644 index 0cdd0567d..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0015-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch +++ /dev/null @@ -1,39 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch b/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch new file mode 100644 index 000000000..04a9bf01c --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch @@ -0,0 +1,263 @@ +From 17a602b89cbe53a5a92d0153ccb013a737f028cb Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:31:06 +0000 +Subject: [PATCH 15/29] 'yes' within the path sets wrong config variables + +It seems that the 'AC_EGREP_CPP(yes...' example is quite popular +but being such a short word to grep it is likely to produce +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 ac3cf6fd36..32add94df9 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 8b042d6d05..3cdd262951 100644 +--- a/sysdeps/aarch64/configure.ac ++++ b/sysdeps/aarch64/configure.ac +@@ -10,8 +10,8 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + # 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 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch b/poky/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch deleted file mode 100644 index 574e7c350..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0016-Add-unused-attribute.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c323125744020a29f79e50dc4d024b55c482eafc Mon Sep 17 00:00:00 2001 -From: Khem Raj -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 348acc089b..fa92465d89 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/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch new file mode 100644 index 000000000..cd072018e --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch @@ -0,0 +1,45 @@ +From 4762386b599f5c3287310a69ad3555e0129e0c51 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:33:03 +0000 +Subject: [PATCH 16/29] 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 '-'. +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch new file mode 100644 index 000000000..57907fe66 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch @@ -0,0 +1,75 @@ +From dac46c07736a799fc82be03aa546b2d24c19ad78 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 31 Dec 2015 14:33:02 -0800 +Subject: [PATCH 17/29] Remove bash dependency for nscd init script + +The nscd init script uses #! /bin/bash but only really uses one bashism +(translated strings), so remove them and switch the shell to #!/bin/sh. + +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 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch b/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch deleted file mode 100644 index 49089af41..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0017-yes-within-the-path-sets-wrong-config-variables.patch +++ /dev/null @@ -1,260 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch new file mode 100644 index 000000000..58d41ffe0 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch @@ -0,0 +1,619 @@ +From 0bd1dedf77194151397c53b12e0355c2edb8bccc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:42:58 +0000 +Subject: [PATCH 18/29] 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. +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch b/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch deleted file mode 100644 index 20b0ee98e..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0018-timezone-re-written-tzselect-as-posix-sh.patch +++ /dev/null @@ -1,42 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch b/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch deleted file mode 100644 index 1c15a5130..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0019-Remove-bash-dependency-for-nscd-init-script.patch +++ /dev/null @@ -1,72 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch new file mode 100644 index 000000000..f633079f3 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch @@ -0,0 +1,100 @@ +From 5591b7653411da26fa2939352e50ea4121b327e6 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:49:28 +0000 +Subject: [PATCH 19/29] 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 6dcfe40c25..bc37c32e5a 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. */ +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch b/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch deleted file mode 100644 index eda556537..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Cross-building-and-testing-instructions.patch +++ /dev/null @@ -1,616 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch b/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch new file mode 100644 index 000000000..bb21c5472 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0020-eglibc-Resolve-__fpscr_values-on-SH4.patch @@ -0,0 +1,56 @@ +From d3451c186f96c6b2434a4ac9304c01730bf22061 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:55:53 +0000 +Subject: [PATCH 20/29] 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) ++ +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch b/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch new file mode 100644 index 000000000..7fe5db0c2 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Forward-port-cross-locale-generation-support.patch @@ -0,0 +1,563 @@ +From e4b8abdc2d884d721fd89d67b689546f2f780924 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 01:33:49 +0000 +Subject: [PATCH 21/29] 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 49c0c78c7d..ebfcf4f4da 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 + tests-container = tst-localedef-path-norm + categories = ctype messages monetary numeric time paper name \ +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 b048bd05b9..fed15c42ec 100644 +--- a/locale/programs/localedef.c ++++ b/locale/programs/localedef.c +@@ -109,6 +109,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; + #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 } + }; + +@@ -243,12 +246,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); +@@ -400,6 +405,9 @@ parse_opt (int key, char *arg, struct argp_state *state) + /* Do not hard link to other locales. */ + hard_links = false; + break; ++ 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 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch b/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch deleted file mode 100644 index 6374ea408..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0021-eglibc-Help-bootstrap-cross-toolchain.patch +++ /dev/null @@ -1,97 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch b/poky/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch new file mode 100644 index 000000000..0e9318308 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0022-Define-DUMMY_LOCALE_T-if-not-defined.patch @@ -0,0 +1,32 @@ +From ad5bc87134871b99e082e2449b8c1ce2f1375ef9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 20 Apr 2016 21:11:00 -0700 +Subject: [PATCH 22/29] Define DUMMY_LOCALE_T if not defined + +This is a hack to fix building the locale bits on an older +CentOs 5.X machine + +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 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch b/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch deleted file mode 100644 index 2a503c811..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch +++ /dev/null @@ -1,53 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch b/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch deleted file mode 100644 index 1a90f22db..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0023-eglibc-Forward-port-cross-locale-generation-support.patch +++ /dev/null @@ -1,560 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/poky/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch new file mode 100644 index 000000000..7cbf6811a --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch @@ -0,0 +1,84 @@ +From c5fd8a3d336b8288f631fb6b6dd85f9d1076f25b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:42:06 -0700 +Subject: [PATCH 23/29] localedef --add-to-archive uses a hard-coded locale + path + +it doesn't exist in normal use, and there's no way to pass an +alternative filename. + +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) + { +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch b/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch deleted file mode 100644 index 15e460eb0..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0024-Define-DUMMY_LOCALE_T-if-not-defined.patch +++ /dev/null @@ -1,29 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch new file mode 100644 index 000000000..02e73594a --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch @@ -0,0 +1,56 @@ +From dffa52364f8c54c455b2459ebe83f05cb6ffc9fc Mon Sep 17 00:00:00 2001 +From: Mark Hatle +Date: Thu, 18 Aug 2016 14:07:58 -0500 +Subject: [PATCH 24/29] 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 b5a43232a7..8aa8f37fa3 100644 +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -73,13 +73,19 @@ _dl_build_local_scope (struct link_map **list, struct link_map *map) + { + 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; + } + +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch b/poky/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch new file mode 100644 index 000000000..700fb2887 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0025-intl-Emit-no-lines-in-bison-generated-files.patch @@ -0,0 +1,34 @@ +From bc3380877bd2a1f9368a913fa6a2ca1ee88fd95f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Aug 2018 09:44:00 -0700 +Subject: [PATCH 25/29] intl: Emit no lines in bison generated files + +Improve reproducibility: +Do not put any #line preprocessor commands in bison generated files. +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) +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch b/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch deleted file mode 100644 index 543f65d6e..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch +++ /dev/null @@ -1,80 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch b/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch deleted file mode 100644 index 5f6ee40f2..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch +++ /dev/null @@ -1,53 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch b/poky/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch new file mode 100644 index 000000000..89eef82e1 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0026-inject-file-assembly-directives.patch @@ -0,0 +1,240 @@ +From cf043d56638883157dbfaa8c6a8e2f63a6f66280 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Nov 2018 17:29:35 -0800 +Subject: [PATCH 26/29] inject file assembly directives + +Currently, non-IA builds are not reproducibile since build paths are +being injected into the debug symbols. These are coming from the use of +.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.c | 2 ++ + sysdeps/aarch64/crti.S | 2 ++ + sysdeps/aarch64/crtn.S | 1 + + sysdeps/aarch64/dl-tlsdesc.S | 2 ++ + sysdeps/aarch64/dl-trampoline.S | 2 ++ + sysdeps/aarch64/start.S | 2 ++ + sysdeps/arm/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 ++ + 19 files changed, 37 insertions(+) + +--- 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 +--- a/sysdeps/aarch64/crtn.S ++++ b/sysdeps/aarch64/crtn.S +@@ -38,6 +38,7 @@ + corresponding to the prologues in crti.S. */ + + #include ++ .file "crtn.S" + + .section .init,"ax",%progbits + ldp x29, x30, [sp], 16 +--- 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]!; \ +--- 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 +--- 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. + +--- 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 +--- 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. */ + +--- 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 +--- 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 +--- 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 +--- 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 +--- 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. */ +--- 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 +--- 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 +--- 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 +--- 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 +--- 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 +--- 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/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch b/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch deleted file mode 100644 index 2c317d58a..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0027-intl-Emit-no-lines-in-bison-generated-files.patch +++ /dev/null @@ -1,31 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/poky/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch new file mode 100644 index 000000000..d2c88d235 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch @@ -0,0 +1,56 @@ +From 10aef8f0671d814aaf910ababc0225cf6f0a46e8 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Mon, 17 Dec 2018 21:36:18 +0000 +Subject: [PATCH 27/29] 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; + +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch b/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch deleted file mode 100644 index e1a030d10..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0028-inject-file-assembly-directives.patch +++ /dev/null @@ -1,301 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/poky/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch new file mode 100644 index 000000000..25c046f5c --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch @@ -0,0 +1,33 @@ +From 70731329feb7ba20364aa37aed83d920de97f028 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 18 Mar 2015 00:11:22 +0000 +Subject: [PATCH 28/29] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known + names + +This bolts in a hook for OE to pass its own version of interpreter +names into glibc especially for multilib case, where it differs from any +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[] = +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch b/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch deleted file mode 100644 index c8c359f2b..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch +++ /dev/null @@ -1,53 +0,0 @@ -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/poky/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch b/poky/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch new file mode 100644 index 000000000..0ebf8a618 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch @@ -0,0 +1,70 @@ +From bf1c4b2f01c5f86bb770fd1711a69ea727e0f56e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 May 2020 17:05:45 -0700 +Subject: [PATCH 29/29] wordsize.h: Unify the header between arm and aarch64 + +This helps OE multilibs to not sythesize this header which causes all +kind of recursions and other issues since wordsize is fundamental header +and ends up including itself in many case e.g. clang tidy, bpf etc. + +Upstream-Status: Inappropriate [ OE-Specific ] + +Signed-off-by: Khem Raj +--- + sysdeps/aarch64/bits/wordsize.h | 8 ++++++-- + sysdeps/{aarch64 => arm}/bits/wordsize.h | 8 ++++++-- + 2 files changed, 12 insertions(+), 4 deletions(-) + copy sysdeps/{aarch64 => arm}/bits/wordsize.h (85%) + +diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h +index ee01841773..34fcdef1f1 100644 +--- a/sysdeps/aarch64/bits/wordsize.h ++++ b/sysdeps/aarch64/bits/wordsize.h +@@ -17,12 +17,16 @@ + License along with the GNU C Library; if not, see + . */ + +-#ifdef __LP64__ ++#if defined (__aarch64__) && defined (__LP64__) + # define __WORDSIZE 64 +-#else ++#elif defined (__aarch64__) + # define __WORDSIZE 32 + # define __WORDSIZE32_SIZE_ULONG 1 + # define __WORDSIZE32_PTRDIFF_LONG 1 ++#else ++# define __WORDSIZE 32 ++# define __WORDSIZE32_SIZE_ULONG 0 ++# define __WORDSIZE32_PTRDIFF_LONG 0 + #endif + + #define __WORDSIZE_TIME64_COMPAT32 0 +diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h +similarity index 85% +copy from sysdeps/aarch64/bits/wordsize.h +copy to sysdeps/arm/bits/wordsize.h +index ee01841773..34fcdef1f1 100644 +--- a/sysdeps/aarch64/bits/wordsize.h ++++ b/sysdeps/arm/bits/wordsize.h +@@ -17,12 +17,16 @@ + License along with the GNU C Library; if not, see + . */ + +-#ifdef __LP64__ ++#if defined (__aarch64__) && defined (__LP64__) + # define __WORDSIZE 64 +-#else ++#elif defined (__aarch64__) + # define __WORDSIZE 32 + # define __WORDSIZE32_SIZE_ULONG 1 + # define __WORDSIZE32_PTRDIFF_LONG 1 ++#else ++# define __WORDSIZE 32 ++# define __WORDSIZE32_SIZE_ULONG 0 ++# define __WORDSIZE32_PTRDIFF_LONG 0 + #endif + + #define __WORDSIZE_TIME64_COMPAT32 0 +-- +2.27.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch b/poky/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch new file mode 100644 index 000000000..a76455236 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc/0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch @@ -0,0 +1,51 @@ +From 8b1d521290218df8ceeaf2e6ee44a54b19d8d328 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 7 Aug 2020 14:31:16 -0700 +Subject: [PATCH 30/30] powerpc: Do not ask compiler for finding arch + +This does not work well in cross compiling environments like OE +and moreover it uses its own -mcpu/-march options via cflags + +Upstream-Status: Inappropriate [ OE-Specific] + +Signed-off-by: Khem Raj +--- + sysdeps/powerpc/preconfigure | 5 +---- + sysdeps/powerpc/preconfigure.ac | 5 +---- + 2 files changed, 2 insertions(+), 8 deletions(-) + +diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure +index dfe8e20399..bbff040f0f 100644 +--- a/sysdeps/powerpc/preconfigure ++++ b/sysdeps/powerpc/preconfigure +@@ -29,10 +29,7 @@ esac + # directive which shows up, and try using it. + case "${machine}:${submachine}" in + *powerpc*:) +- archcpu=`echo "int foo () { return 0; }" \ +- | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \ +- | grep -E "mcpu=|.machine" -m 1 \ +- | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"` ++ archcpu='' + # Note if you add patterns here you must ensure that an appropriate + # directory exists in sysdeps/powerpc. Likewise, if we find a + # cpu, don't let the generic configure append extra compiler options. +diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac +index 6c63bd8257..3e925f1d48 100644 +--- a/sysdeps/powerpc/preconfigure.ac ++++ b/sysdeps/powerpc/preconfigure.ac +@@ -29,10 +29,7 @@ esac + # directive which shows up, and try using it. + case "${machine}:${submachine}" in + *powerpc*:) +- archcpu=`echo "int foo () { return 0; }" \ +- | $CC $CFLAGS $CPPFLAGS -S -frecord-gcc-switches -xc -o - - \ +- | grep -E "mcpu=|[.]machine" -m 1 \ +- | sed -e "s/.*machine //" -e "s/.*mcpu=\(.*\)\"/\1/"` ++ archcpu='' + # Note if you add patterns here you must ensure that an appropriate + # directory exists in sysdeps/powerpc. Likewise, if we find a + # cpu, don't let the generic configure append extra compiler options. +-- +2.28.0 + diff --git a/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch b/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch deleted file mode 100644 index cbef2f283..000000000 --- a/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 9cb0a756b017f5961b70ac781d3eaec6c82513cb Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 15 May 2020 17:05:45 -0700 -Subject: [PATCH] wordsize.h: Unify the header between arm and aarch64 - -This helps OE multilibs to not sythesize this header which causes all -kind of recursions and other issues since wordsize is fundamental header -and ends up including itself in many case e.g. clang tidy, bpf etc. - -Upstream-Status: Inappropriate [ OE-Specific ] - -Signed-off-by: Khem Raj ---- - sysdeps/aarch64/bits/wordsize.h | 8 ++++++-- - sysdeps/{aarch64 => arm}/bits/wordsize.h | 8 ++++++-- - 2 files changed, 12 insertions(+), 4 deletions(-) - copy sysdeps/{aarch64 => arm}/bits/wordsize.h (85%) - -diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h -index ee01841773..34fcdef1f1 100644 ---- a/sysdeps/aarch64/bits/wordsize.h -+++ b/sysdeps/aarch64/bits/wordsize.h -@@ -17,12 +17,16 @@ - License along with the GNU C Library; if not, see - . */ - --#ifdef __LP64__ -+#if defined (__aarch64__) && defined (__LP64__) - # define __WORDSIZE 64 --#else -+#elif defined (__aarch64__) - # define __WORDSIZE 32 - # define __WORDSIZE32_SIZE_ULONG 1 - # define __WORDSIZE32_PTRDIFF_LONG 1 -+#else -+# define __WORDSIZE 32 -+# define __WORDSIZE32_SIZE_ULONG 0 -+# define __WORDSIZE32_PTRDIFF_LONG 0 - #endif - - #define __WORDSIZE_TIME64_COMPAT32 0 -diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h -similarity index 85% -copy from sysdeps/aarch64/bits/wordsize.h -copy to sysdeps/arm/bits/wordsize.h -index ee01841773..34fcdef1f1 100644 ---- a/sysdeps/aarch64/bits/wordsize.h -+++ b/sysdeps/arm/bits/wordsize.h -@@ -17,12 +17,16 @@ - License along with the GNU C Library; if not, see - . */ - --#ifdef __LP64__ -+#if defined (__aarch64__) && defined (__LP64__) - # define __WORDSIZE 64 --#else -+#elif defined (__aarch64__) - # define __WORDSIZE 32 - # define __WORDSIZE32_SIZE_ULONG 1 - # define __WORDSIZE32_PTRDIFF_LONG 1 -+#else -+# define __WORDSIZE 32 -+# define __WORDSIZE32_SIZE_ULONG 0 -+# define __WORDSIZE32_PTRDIFF_LONG 0 - #endif - - #define __WORDSIZE_TIME64_COMPAT32 0 diff --git a/poky/meta/recipes-core/glibc/glibc_2.31.bb b/poky/meta/recipes-core/glibc/glibc_2.31.bb deleted file mode 100644 index 9b2cf1bde..000000000 --- a/poky/meta/recipes-core/glibc/glibc_2.31.bb +++ /dev/null @@ -1,113 +0,0 @@ -require glibc.inc -require glibc-version.inc - -CVE_CHECK_WHITELIST += "CVE-2020-10029" - -DEPENDS += "gperf-native bison-native make-native" - -NATIVESDKFIXES ?= "" -NATIVESDKFIXES_class-nativesdk = "\ - file://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://0016-Add-unused-attribute.patch \ - file://0017-yes-within-the-path-sets-wrong-config-variables.patch \ - file://0018-timezone-re-written-tzselect-as-posix-sh.patch \ - file://0019-Remove-bash-dependency-for-nscd-init-script.patch \ - file://0020-eglibc-Cross-building-and-testing-instructions.patch \ - file://0021-eglibc-Help-bootstrap-cross-toolchain.patch \ - file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \ - file://0023-eglibc-Forward-port-cross-locale-generation-support.patch \ - file://0024-Define-DUMMY_LOCALE_T-if-not-defined.patch \ - file://0025-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ - file://0026-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ - file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \ - file://0028-inject-file-assembly-directives.patch \ - file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ - file://0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.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/poky/meta/recipes-core/glibc/glibc_2.32.bb b/poky/meta/recipes-core/glibc/glibc_2.32.bb new file mode 100644 index 000000000..7049e6162 --- /dev/null +++ b/poky/meta/recipes-core/glibc/glibc_2.32.bb @@ -0,0 +1,113 @@ +require glibc.inc +require glibc-version.inc + +CVE_CHECK_WHITELIST += "CVE-2020-10029" + +DEPENDS += "gperf-native bison-native make-native" + +NATIVESDKFIXES ?= "" +NATIVESDKFIXES_class-nativesdk = "\ + file://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-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \ + file://0010-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0011-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \ + file://0012-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \ + file://0013-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \ + file://0014-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \ + file://0015-yes-within-the-path-sets-wrong-config-variables.patch \ + file://0016-timezone-re-written-tzselect-as-posix-sh.patch \ + file://0017-Remove-bash-dependency-for-nscd-init-script.patch \ + file://0018-eglibc-Cross-building-and-testing-instructions.patch \ + file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \ + file://0020-eglibc-Resolve-__fpscr_values-on-SH4.patch \ + file://0021-eglibc-Forward-port-cross-locale-generation-support.patch \ + file://0022-Define-DUMMY_LOCALE_T-if-not-defined.patch \ + file://0023-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \ + file://0024-elf-dl-deps.c-Make-_dl_build_local_scope-breadth-fir.patch \ + file://0025-intl-Emit-no-lines-in-bison-generated-files.patch \ + file://0026-inject-file-assembly-directives.patch \ + file://0027-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \ + file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \ + file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \ + file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \ + " +S = "${WORKDIR}/git" +B = "${WORKDIR}/build-${TARGET_SYS}" + +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/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh b/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh index 1c525b71b..f21f48dd3 100755 --- a/poky/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh +++ b/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,17 +64,17 @@ mk_dir() { chmod ${TMODE} $1 || echo \"Failed to set mode -${TMODE}- for -$1-.\" >/dev/tty0 2>&1 " test "$VOLATILE_ENABLE_CACHE" = yes && echo "$EXEC" >> /etc/volatile.cache.build - [ -e "$1" ] && { + if [ -e "$1" ]; then [ "${VERBOSE}" != "no" ] && echo "Target already exists. Skipping." - } || { + else if [ -z "$ROOT_DIR" ]; then - eval $EXEC + eval "$EXEC" else # For the same reason with create_file(), failures should # not be logged. - eval $EXEC > /dev/null 2>&1 + eval "$EXEC" > /dev/null 2>&1 fi - } + fi } link_file() { @@ -96,11 +96,11 @@ link_file() { test "$VOLATILE_ENABLE_CACHE" = yes && echo " $EXEC" >> /etc/volatile.cache.build if [ -z "$ROOT_DIR" ]; then - eval $EXEC + eval "$EXEC" else # For the same reason with create_file(), failures should # not be logged. - eval $EXEC > /dev/null 2>&1 + eval "$EXEC" > /dev/null 2>&1 fi } @@ -117,11 +117,11 @@ check_requirements() { TMP_DEFINED="${TMPROOT}/tmpdefined.$$" TMP_COMBINED="${TMPROOT}/tmpcombined.$$" - sed 's@\(^:\)*:.*@\1@' ${ROOT_DIR}/etc/passwd | sort | uniq > "${TMP_DEFINED}" - cat ${CFGFILE} | grep -v "^#" | cut -s -d " " -f 2 > "${TMP_INTERMED}" + sed 's@\(^:\)*:.*@\1@' "${ROOT_DIR}/etc/passwd" | sort | uniq > "${TMP_DEFINED}" + grep -v "^#" "${CFGFILE}" | cut -s -d " " -f 2 > "${TMP_INTERMED}" cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}" - NR_DEFINED_USERS="`cat "${TMP_DEFINED}" | wc -l`" - NR_COMBINED_USERS="`cat "${TMP_COMBINED}" | wc -l`" + NR_DEFINED_USERS="$(wc -l < "${TMP_DEFINED}")" + NR_COMBINED_USERS="$(wc -l < "${TMP_COMBINED}")" [ "${NR_DEFINED_USERS}" -ne "${NR_COMBINED_USERS}" ] && { echo "Undefined users:" @@ -131,12 +131,12 @@ check_requirements() { } - sed 's@\(^:\)*:.*@\1@' ${ROOT_DIR}/etc/group | sort | uniq > "${TMP_DEFINED}" - cat ${CFGFILE} | grep -v "^#" | cut -s -d " " -f 3 > "${TMP_INTERMED}" + sed 's@\(^:\)*:.*@\1@' "${ROOT_DIR}/etc/group" | sort | uniq > "${TMP_DEFINED}" + grep -v "^#" "${CFGFILE}" | cut -s -d " " -f 3 > "${TMP_INTERMED}" cat "${TMP_DEFINED}" "${TMP_INTERMED}" | sort | uniq > "${TMP_COMBINED}" - NR_DEFINED_GROUPS="`cat "${TMP_DEFINED}" | wc -l`" - NR_COMBINED_GROUPS="`cat "${TMP_COMBINED}" | wc -l`" + NR_DEFINED_GROUPS="$(wc -l < "${TMP_DEFINED}")" + NR_COMBINED_GROUPS="$(wc -l < "${TMP_COMBINED}")" [ "${NR_DEFINED_GROUPS}" -ne "${NR_COMBINED_GROUPS}" ] && { echo "Undefined groups:" @@ -157,13 +157,13 @@ apply_cfgfile() { [ "${VERBOSE}" != "no" ] && echo "Applying ${CFGFILE}" - [ "${SKIP_REQUIREMENTS}" == "yes" ] || check_requirements "${CFGFILE}" || { + [ "${SKIP_REQUIREMENTS}" = "yes" ] || check_requirements "${CFGFILE}" || { echo "Skipping ${CFGFILE}" return 1 } - cat ${CFGFILE} | sed 's/#.*//' | \ - while read TTYPE TUSER TGROUP TMODE TNAME TLTARGET; do + sed 's/#.*//' "${CFGFILE}" | \ + while read -r TTYPE TUSER TGROUP TMODE TNAME TLTARGET; do test -z "${TLTARGET}" && continue TNAME=${ROOT_DIR}${TNAME} [ "${VERBOSE}" != "no" ] && echo "Checking for -${TNAME}-." @@ -187,14 +187,14 @@ apply_cfgfile() { [ -L "${TNAME}" ] && { [ "${VERBOSE}" != "no" ] && echo "Found link." - NEWNAME=`ls -l "${TNAME}" | sed -e 's/^.*-> \(.*\)$/\1/'` - echo ${NEWNAME} | grep -v "^/" >/dev/null && { - TNAME="`echo ${TNAME} | sed -e 's@\(.*\)/.*@\1@'`/${NEWNAME}" + NEWNAME=$(ls -l "${TNAME}" | sed -e 's/^.*-> \(.*\)$/\1/') + if echo "${NEWNAME}" | grep -v "^/" >/dev/null; then + TNAME="$(echo "${TNAME}" | sed -e 's@\(.*\)/.*@\1@')/${NEWNAME}" [ "${VERBOSE}" != "no" ] && echo "Converted relative linktarget to absolute path -${TNAME}-." - } || { + else TNAME="${NEWNAME}" [ "${VERBOSE}" != "no" ] && echo "Using absolute link target -${TNAME}-." - } + fi } case "${TTYPE}" in @@ -217,7 +217,7 @@ apply_cfgfile() { clearcache=0 exec 9&- -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/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch b/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch deleted file mode 100644 index dc5236063..000000000 --- a/poky/meta/recipes-core/kbd/kbd/0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 4c12f76f4177cfd560cf708a16774ebfadbd41a5 Mon Sep 17 00:00:00 2001 -From: "Mingde (Matthew) Zeng" -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/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch b/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch deleted file mode 100644 index 8916fd9f5..000000000 --- a/poky/meta/recipes-core/kbd/kbd/0001-analyze.l-add-missing-string-format.patch +++ /dev/null @@ -1,24 +0,0 @@ -From dc6bf2ae0835c6569b270e8e1f26a3173f3927d9 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -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/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch b/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch deleted file mode 100644 index 37220960a..000000000 --- a/poky/meta/recipes-core/kbd/kbd/fix_cflags.patch +++ /dev/null @@ -1,25 +0,0 @@ -We need to ensure our CFLAGS are preserved as well as whatever tweak configure -tries to make. Without these, the debug prefix changes get lost and we lose -build reproducibility, likely with other side effects. - -Signed-off-by: Richard Purdie -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/poky/meta/recipes-core/kbd/kbd/run-ptest b/poky/meta/recipes-core/kbd/kbd/run-ptest deleted file mode 100644 index 7a2d205f5..000000000 --- a/poky/meta/recipes-core/kbd/kbd/run-ptest +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -CURDIR=$(dirname `readlink -f $0`) -make -k -C ${CURDIR}/tests check-TESTS diff --git a/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch b/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch deleted file mode 100644 index 4b1e5b8ee..000000000 --- a/poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch +++ /dev/null @@ -1,99 +0,0 @@ -From cb3af8fb072f8999dbb5160bdc95a102b02fd37a Mon Sep 17 00:00:00 2001 -From: Kai Kang -Date: Fri, 30 Sep 2016 16:49:55 +0800 -Subject: [PATCH] kbd: create ptest sub-package - -Upstream-Status: Inappropriate [embedded specific] - -kbd is out of source built, then the value of $(srcdir) is relative path of -${S}/tests to ${B}/tests. Macro DATADIR is defined with $(srcdir) and replaced -in .c files by compiler, and string @DATADIR@ is replaced with $(srdir) by rule -"%: %.in" in Makefile. - -But kbd-ptest puts test cases and resource files in same directory, then some -ptest cases fail to find resources. - -Replace DATADIR and @DATADIR@ with current directory(dot) to make test cases -run as expected. - -Signed-off-by: Kai Kang - ---- - tests/Makefile.am | 4 ++-- - tests/alt-is-meta.in | 2 +- - tests/dumpkeys-bkeymap.in | 4 ++-- - tests/dumpkeys-fulltable.in | 2 +- - tests/dumpkeys-mktable.in | 4 ++-- - 5 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 8d0ab69..5147c28 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -7,8 +7,8 @@ AM_CPPFLAGS = \ - -I$(builddir)/../src/libkeymap \ - -I$(srcdir)/../src/libkbdfile \ - -I$(builddir)/../src/libkbdfile \ -- -DDATADIR=\"$(srcdir)\" \ -- -DABS_DATADIR=\"$(realpath $(srcdir))\" \ -+ -DDATADIR=\".\" \ -+ -DABS_DATADIR=\"/usr/lib/kbd/ptest/tests\" \ - -DBUILDDIR=\"$(builddir)\" - - AM_CFLAGS = $(CHECK_CFLAGS) $(CODE_COVERAGE_CFLAGS) -diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in -index 3a1441f..d829f2e 100755 ---- a/tests/alt-is-meta.in -+++ b/tests/alt-is-meta.in -@@ -7,7 +7,7 @@ cd "$cwd" - rc=0 - temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" - --datadir="@DATADIR@/data/alt-is-meta" -+datadir="./data/alt-is-meta" - - ./libkeymap-showmaps "$datadir"/alt-is-meta.map > "$temp" || rc=$? - cmp -s "$datadir/alt-is-meta.output" "$temp" || rc=$? -diff --git a/tests/dumpkeys-bkeymap.in b/tests/dumpkeys-bkeymap.in -index 03d4ca2..d1d0e26 100755 ---- a/tests/dumpkeys-bkeymap.in -+++ b/tests/dumpkeys-bkeymap.in -@@ -9,8 +9,8 @@ temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" - - datadir="@DATADIR@" - --./libkeymap-bkeymap "$datadir/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? --cmp -s "$datadir/data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$? -+./libkeymap-bkeymap ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? -+cmp -s "./data/dumpkeys-bkeymap/bkeymap.bin" "$temp" || rc=$? - - if [ "$rc" != 0 ]; then - printf 'failed\n' -diff --git a/tests/dumpkeys-fulltable.in b/tests/dumpkeys-fulltable.in -index a3a5ece..67a73ef 100755 ---- a/tests/dumpkeys-fulltable.in -+++ b/tests/dumpkeys-fulltable.in -@@ -5,7 +5,7 @@ cwd="$(readlink -ev "${0%/*}")" - cd "$cwd" - - BUILDDIR="@BUILDDIR@" --DATADIR="@DATADIR@" -+DATADIR="." - - check_keymap() { - local kmap temp rc -diff --git a/tests/dumpkeys-mktable.in b/tests/dumpkeys-mktable.in -index 0f17c40..7e5161d 100755 ---- a/tests/dumpkeys-mktable.in -+++ b/tests/dumpkeys-mktable.in -@@ -7,8 +7,8 @@ cd "$cwd" - rc=0 - temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")" - --./libkeymap-mktable "@DATADIR@/"../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? --cmp -s "@DATADIR@/data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$? -+./libkeymap-mktable ../data/keymaps/i386/qwerty/defkeymap.map > "$temp" || rc=$? -+cmp -s "./data/dumpkeys-mktable/defkeymap.c" "$temp" || rc=$? - - if [ "$rc" != 0 ]; then - printf 'failed\n' diff --git a/poky/meta/recipes-core/kbd/kbd_2.2.0.bb b/poky/meta/recipes-core/kbd/kbd_2.2.0.bb deleted file mode 100644 index e5700ff57..000000000 --- a/poky/meta/recipes-core/kbd/kbd_2.2.0.bb +++ /dev/null @@ -1,72 +0,0 @@ -SUMMARY = "Keytable files and keyboard utilities" -HOMEPAGE = "http://www.kbd-project.org/" -# everything minus console-fonts is GPLv2+ -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" - -inherit autotools gettext ptest pkgconfig - -DEPENDS += "flex-native" - -RREPLACES_${PN} = "console-tools" -RPROVIDES_${PN} = "console-tools" -RCONFLICTS_${PN} = "console-tools" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \ - file://run-ptest \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://set-proper-path-of-resources.patch', '', d)} \ - file://0001-analyze.l-add-missing-string-format.patch \ - file://0001-Use-DATADIR-and-append-i386-to-fix-libkbdfile-test08.patch \ - file://fix_cflags.patch \ - " - -SRC_URI[md5sum] = "d1d7ae0b5fb875dc082731e09cd0c8bc" -SRC_URI[sha256sum] = "21a1bc5f6fb3b18ce9fdd717e4533368060a3182a39c7155eaf7ec0f5f83e9f7" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ - ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests','', d)} \ - " - -PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam," -PACKAGECONFIG[tests] = "--enable-tests, --disable-tests, libcheck" - -do_compile_ptest() { - oe_runmake -C ${B}/tests alt-is-meta dumpkeys-bkeymap dumpkeys-fulltable dumpkeys-mktable -} - -do_install_ptest() { - install -D ${B}/tests/Makefile ${D}${PTEST_PATH}/tests/Makefile - sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ - -e 's:--sysroot=${STAGING_DIR_TARGET}::g' \ - -e 's:${DEBUG_PREFIX_MAP}::g' \ - -e 's:${HOSTTOOLS_DIR}/::g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - -e 's:${RECIPE_SYSROOT}::g' \ - -e 's:${S}/config/missing::g' \ - -e 's:${WORKDIR}::g' \ - -e '/^lib.*_SOURCES =/d' -e '/$(EXEEXT):/,/^$/d' ${D}${PTEST_PATH}/tests/Makefile - - find ${B}/tests -executable -exec install {} ${D}${PTEST_PATH}/tests \; - cp -rf ${S}/tests/data ${D}${PTEST_PATH}/tests - cp -rf ${S}/tests/findfile ${D}${PTEST_PATH}/tests - cp -rf ${S}/data ${D}${PTEST_PATH} - - install -D -m 755 ${S}/config/test-driver ${D}${PTEST_PATH}/config/test-driver -} - -PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans" - -FILES_${PN}-consolefonts = "${datadir}/consolefonts" -FILES_${PN}-consoletrans = "${datadir}/consoletrans" -FILES_${PN}-keymaps = "${datadir}/keymaps" -FILES_${PN}-unimaps = "${datadir}/unimaps" - -RDEPENDS_${PN}-ptest = "make" - -inherit update-alternatives - -ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'vlock','', d)}" -ALTERNATIVE_PRIORITY = "100" - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-core/kbd/kbd_2.3.0.bb b/poky/meta/recipes-core/kbd/kbd_2.3.0.bb new file mode 100644 index 000000000..529f49bef --- /dev/null +++ b/poky/meta/recipes-core/kbd/kbd_2.3.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "Keytable files and keyboard utilities" +HOMEPAGE = "http://www.kbd-project.org/" +# everything minus console-fonts is GPLv2+ +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a" + +inherit autotools gettext pkgconfig + +DEPENDS += "flex-native" + +RREPLACES_${PN} = "console-tools" +RPROVIDES_${PN} = "console-tools" +RCONFLICTS_${PN} = "console-tools" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \ + " + +SRC_URI[sha256sum] = "685056143cb8effd0a1d44b5c391eb50d80dcfd014b1a4d6e2650a28d61cb82a" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ + " + +PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam," + +PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans" + +FILES_${PN}-consolefonts = "${datadir}/consolefonts" +FILES_${PN}-consoletrans = "${datadir}/consoletrans" +FILES_${PN}-keymaps = "${datadir}/keymaps" +FILES_${PN}-unimaps = "${datadir}/unimaps" + +inherit update-alternatives + +ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'vlock','', d)}" +ALTERNATIVE_PRIORITY = "100" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-core/meta/buildtools-tarball.bb b/poky/meta/recipes-core/meta/buildtools-tarball.bb index d0f8dd7d7..3785941c2 100644 --- a/poky/meta/recipes-core/meta/buildtools-tarball.bb +++ b/poky/meta/recipes-core/meta/buildtools-tarball.bb @@ -66,16 +66,19 @@ create_sdk_files_append () { script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}} touch $script echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script - # In order for the self-extraction script to correctly extract and set up things, - # we need a 'OECORE_NATIVE_SYSROOT=xxx' line in environment setup script. - # However, buildtools-tarball is inherently a tool set instead of a fully functional SDK, - # so instead of exporting the variable, we use a comment here. - echo '#OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script - toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} - + echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script - echo 'export OPENSSL_CONF="${SDKPATHNATIVE}${sysconfdir}/ssl/openssl.cnf"' >>$script + + toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS} + + cat >> $script <>$script diff --git a/poky/meta/recipes-core/meta/cve-update-db-native.bb b/poky/meta/recipes-core/meta/cve-update-db-native.bb index f27ade40d..32d6dbdff 100644 --- a/poky/meta/recipes-core/meta/cve-update-db-native.bb +++ b/poky/meta/recipes-core/meta/cve-update-db-native.bb @@ -176,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/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb index ed2178b5a..51b19e89a 100644 --- a/poky/meta/recipes-core/musl/musl_git.bb +++ b/poky/meta/recipes-core/musl/musl_git.bb @@ -4,9 +4,9 @@ require musl.inc inherit linuxloader -SRCREV = "0a005f499cf39822166dd4db3d2d31f0639f1b1b" +SRCREV = "73cc775bee53300c7cf759f37580220b18ac13d3" -BASEVER = "1.2.0" +BASEVER = "1.2.1" PV = "${BASEVER}+git${SRCPV}" diff --git a/poky/meta/recipes-core/systemd/systemd-boot_245.6.bb b/poky/meta/recipes-core/systemd/systemd-boot_245.6.bb deleted file mode 100644 index f92c63981..000000000 --- a/poky/meta/recipes-core/systemd/systemd-boot_245.6.bb +++ /dev/null @@ -1,70 +0,0 @@ -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 <${WORKDIR}/meson-${PN}.cross < src/shared/userdb.c | 6 ++++++ 3 files changed, 30 insertions(+) -diff --git a/src/shared/group-record-nss.c b/src/shared/group-record-nss.c -index 77924f1c4067..c64490253ff3 100644 ---- a/src/shared/group-record-nss.c -+++ b/src/shared/group-record-nss.c +Index: systemd-stable/src/shared/group-record-nss.c +=================================================================== +--- systemd-stable.orig/src/shared/group-record-nss.c ++++ systemd-stable/src/shared/group-record-nss.c @@ -19,8 +19,10 @@ int nss_group_to_group_record( if (isempty(grp->gr_name)) return -EINVAL; @@ -45,7 +45,7 @@ index 77924f1c4067..c64490253ff3 100644 r = json_build(&g->json, JSON_BUILD_OBJECT( JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)), -@@ -76,6 +80,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re +@@ -76,6 +80,7 @@ int nss_sgrp_for_group(const struct grou assert(ret_sgrp); assert(ret_buffer); @@ -53,7 +53,7 @@ index 77924f1c4067..c64490253ff3 100644 for (;;) { _cleanup_free_ char *buf = NULL; struct sgrp sgrp, *result; -@@ -104,6 +109,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re +@@ -104,6 +109,9 @@ int nss_sgrp_for_group(const struct grou buflen *= 2; buf = mfree(buf); } @@ -62,67 +62,67 @@ index 77924f1c4067..c64490253ff3 100644 +#endif } - int nss_group_record_by_name(const char *name, GroupRecord **ret) { -@@ -111,7 +119,9 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) { + int nss_group_record_by_name( +@@ -115,7 +123,9 @@ int nss_group_record_by_name( struct group grp, *result; bool incomplete = false; size_t buflen = 4096; +#if ENABLE_GSHADOW - struct sgrp sgrp; + struct sgrp sgrp, *sresult = NULL; +#endif int r; assert(name); -@@ -141,6 +151,7 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) { +@@ -145,6 +155,7 @@ int nss_group_record_by_name( buf = mfree(buf); } +#if ENABLE_GSHADOW - r = nss_sgrp_for_group(result, &sgrp, &sbuf); - if (r < 0) { - log_debug_errno(r, "Failed to do shadow lookup for group %s, ignoring: %m", result->gr_name); -@@ -148,6 +159,9 @@ int nss_group_record_by_name(const char *name, GroupRecord **ret) { - } + if (with_shadow) { + r = nss_sgrp_for_group(result, &sgrp, &sbuf); + if (r < 0) { +@@ -156,6 +167,9 @@ int nss_group_record_by_name( + incomplete = true; - r = nss_group_to_group_record(result, r >= 0 ? &sgrp : NULL, ret); + r = nss_group_to_group_record(result, sresult, ret); +#else + r = nss_group_to_group_record(result, NULL, ret); +#endif if (r < 0) return r; -@@ -160,7 +174,9 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) { +@@ -172,7 +186,9 @@ int nss_group_record_by_gid( struct group grp, *result; bool incomplete = false; size_t buflen = 4096; +#if ENABLE_GSHADOW - struct sgrp sgrp; + struct sgrp sgrp, *sresult = NULL; +#endif int r; assert(ret); -@@ -188,6 +204,7 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) { +@@ -200,6 +216,7 @@ int nss_group_record_by_gid( buf = mfree(buf); } +#if ENABLE_GSHADOW - r = nss_sgrp_for_group(result, &sgrp, &sbuf); - if (r < 0) { - log_debug_errno(r, "Failed to do shadow lookup for group %s, ignoring: %m", result->gr_name); -@@ -195,6 +212,9 @@ int nss_group_record_by_gid(gid_t gid, GroupRecord **ret) { - } + if (with_shadow) { + r = nss_sgrp_for_group(result, &sgrp, &sbuf); + if (r < 0) { +@@ -211,6 +228,9 @@ int nss_group_record_by_gid( + incomplete = true; - r = nss_group_to_group_record(result, r >= 0 ? &sgrp : NULL, ret); + r = nss_group_to_group_record(result, sresult, ret); +#else + r = nss_group_to_group_record(result, NULL, ret); +#endif if (r < 0) return r; -diff --git a/src/shared/group-record-nss.h b/src/shared/group-record-nss.h -index 38b2995178ff..d7d95c44cf11 100644 ---- a/src/shared/group-record-nss.h -+++ b/src/shared/group-record-nss.h +Index: systemd-stable/src/shared/group-record-nss.h +=================================================================== +--- systemd-stable.orig/src/shared/group-record-nss.h ++++ systemd-stable/src/shared/group-record-nss.h @@ -2,7 +2,11 @@ #pragma once @@ -135,11 +135,11 @@ index 38b2995178ff..d7d95c44cf11 100644 #include "group-record.h" -diff --git a/src/shared/userdb.c b/src/shared/userdb.c -index 92f8796768d7..5d912862f85c 100644 ---- a/src/shared/userdb.c -+++ b/src/shared/userdb.c -@@ -924,13 +924,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) { +Index: systemd-stable/src/shared/userdb.c +=================================================================== +--- systemd-stable.orig/src/shared/userdb.c ++++ systemd-stable/src/shared/userdb.c +@@ -930,13 +930,16 @@ int groupdb_iterator_get(UserDBIterator if (gr) { _cleanup_free_ char *buffer = NULL; bool incomplete = false; @@ -156,7 +156,7 @@ index 92f8796768d7..5d912862f85c 100644 r = nss_sgrp_for_group(gr, &sgrp, &buffer); if (r < 0) { log_debug_errno(r, "Failed to acquire shadow entry for group %s, ignoring: %m", gr->gr_name); -@@ -938,6 +941,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) { +@@ -944,6 +947,9 @@ int groupdb_iterator_get(UserDBIterator } r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret); @@ -166,6 +166,3 @@ index 92f8796768d7..5d912862f85c 100644 if (r < 0) return r; --- -2.17.1 - diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch b/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch new file mode 100644 index 000000000..c61941df9 --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch @@ -0,0 +1,81 @@ +From 2868e3b72d4ac02860e380d70c9af0d61a985790 Mon Sep 17 00:00:00 2001 +From: Alex Kiernan +Date: Sun, 16 Aug 2020 16:07:12 +0000 +Subject: [PATCH] Use PREFIX/ROOTPREFIX correctly + +Signed-off-by: Alex Kiernan +Upstream-status: Pending [https://github.com/systemd/systemd/issues/16773] +--- + meson.build | 1 + + src/core/systemd.pc.in | 8 ++++---- + src/libsystemd/sd-path/sd-path.c | 8 ++++---- + 3 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/meson.build b/meson.build +index dbbddb68e232..18618dba0623 100644 +--- a/meson.build ++++ b/meson.build +@@ -226,6 +226,7 @@ conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', join_paths(rootlib + conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbindir, 'systemctl')) + conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', join_paths(rootbindir, 'systemd-tty-ask-password-agent')) + conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', join_paths(bindir, 'systemd-stdio-bridge')) ++conf.set_quoted('PREFIX', prefixdir) + conf.set_quoted('ROOTPREFIX', rootprefixdir) + conf.set_quoted('RANDOM_SEED_DIR', randomseeddir) + conf.set_quoted('RANDOM_SEED', join_paths(randomseeddir, 'random-seed')) +diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in +index 8424837824b5..410a126317ad 100644 +--- a/src/core/systemd.pc.in ++++ b/src/core/systemd.pc.in +@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir} + tmpfiles_dir=${prefix}/lib/tmpfiles.d + tmpfilesdir=${tmpfiles_dir} + +-sysusers_dir=${rootprefix}/lib/sysusers.d ++sysusers_dir=${prefix}/lib/sysusers.d + sysusersdir=${sysusers_dir} + +-sysctl_dir=${rootprefix}/lib/sysctl.d ++sysctl_dir=${prefix}/lib/sysctl.d + sysctldir=${sysctl_dir} + +-binfmt_dir=${rootprefix}/lib/binfmt.d ++binfmt_dir=${prefix}/lib/binfmt.d + binfmtdir=${binfmt_dir} + +-modules_load_dir=${rootprefix}/lib/modules-load.d ++modules_load_dir=${prefix}/lib/modules-load.d + modulesloaddir=${modules_load_dir} + + catalog_dir=${prefix}/lib/systemd/catalog +diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c +index 736795d1d797..3572916dc073 100644 +--- a/src/libsystemd/sd-path/sd-path.c ++++ b/src/libsystemd/sd-path/sd-path.c +@@ -371,19 +371,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { + return 0; + + case SD_PATH_SYSUSERS: +- *ret = ROOTPREFIX "/lib/sysusers.d"; ++ *ret = PREFIX "/lib/sysusers.d"; + return 0; + + case SD_PATH_SYSCTL: +- *ret = ROOTPREFIX "/lib/sysctl.d"; ++ *ret = PREFIX "/lib/sysctl.d"; + return 0; + + case SD_PATH_BINFMT: +- *ret = ROOTPREFIX "/lib/binfmt.d"; ++ *ret = PREFIX "/lib/binfmt.d"; + return 0; + + case SD_PATH_MODULES_LOAD: +- *ret = ROOTPREFIX "/lib/modules-load.d"; ++ *ret = PREFIX "/lib/modules-load.d"; + return 0; + + case SD_PATH_CATALOG: +-- +2.17.1 + diff --git a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch index 26f70b35d..2676c144f 100644 --- a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch +++ b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch @@ -25,21 +25,21 @@ Signed-off-by: Scott Murray units/systemd-binfmt.service.in | 4 ++++ 3 files changed, 9 insertions(+), 4 deletions(-) -diff --git a/units/meson.build b/units/meson.build -index ea91f0cc9ea7..25186f88dfeb 100644 ---- a/units/meson.build -+++ b/units/meson.build -@@ -52,8 +52,7 @@ units = [ +Index: systemd-stable/units/meson.build +=================================================================== +--- systemd-stable.orig/units/meson.build ++++ systemd-stable/units/meson.build +@@ -54,8 +54,7 @@ units = [ ['poweroff.target', '', - 'runlevel0.target'], + (with_runlevels ? 'runlevel0.target' : '')], ['printer.target', ''], - ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT', - 'sysinit.target.wants/'], + ['proc-sys-fs-binfmt_misc.automount', 'ENABLE_BINFMT'], ['proc-sys-fs-binfmt_misc.mount', 'ENABLE_BINFMT'], ['reboot.target', '', - 'runlevel6.target ctrl-alt-del.target'], -@@ -161,8 +160,7 @@ in_units = [ + (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')], +@@ -162,8 +161,7 @@ in_units = [ ['rc-local.service', 'HAVE_SYSV_COMPAT'], ['rescue.service', ''], ['systemd-backlight@.service', 'ENABLE_BACKLIGHT'], @@ -49,10 +49,10 @@ index ea91f0cc9ea7..25186f88dfeb 100644 ['systemd-bless-boot.service', 'ENABLE_EFI HAVE_BLKID'], ['systemd-boot-check-no-failures.service', ''], ['systemd-coredump@.service', 'ENABLE_COREDUMP'], -diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount -index 30a6bc991844..4231f3b70fe9 100644 ---- a/units/proc-sys-fs-binfmt_misc.automount -+++ b/units/proc-sys-fs-binfmt_misc.automount +Index: systemd-stable/units/proc-sys-fs-binfmt_misc.automount +=================================================================== +--- systemd-stable.orig/units/proc-sys-fs-binfmt_misc.automount ++++ systemd-stable/units/proc-sys-fs-binfmt_misc.automount @@ -18,3 +18,6 @@ ConditionPathIsReadWrite=/proc/sys/ [Automount] @@ -60,11 +60,11 @@ index 30a6bc991844..4231f3b70fe9 100644 + +[Install] +WantedBy=sysinit.target -diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in -index e54e95e11d5d..372a598614d3 100644 ---- a/units/systemd-binfmt.service.in -+++ b/units/systemd-binfmt.service.in -@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm +Index: systemd-stable/units/systemd-binfmt.service.in +=================================================================== +--- systemd-stable.orig/units/systemd-binfmt.service.in ++++ systemd-stable/units/systemd-binfmt.service.in +@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems DefaultDependencies=no Conflicts=shutdown.target diff --git a/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch index 4eeec7b7d..39a975319 100644 --- a/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch +++ b/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch @@ -40,11 +40,11 @@ Signed-off-by: Scott Murray src/vconsole/vconsole-setup.c | 2 +- 18 files changed, 35 insertions(+), 35 deletions(-) -diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c -index a5141f4cbedd..04c06e7a55cb 100644 ---- a/src/basic/cgroup-util.c -+++ b/src/basic/cgroup-util.c -@@ -739,7 +739,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { +Index: systemd-stable/src/basic/cgroup-util.c +=================================================================== +--- systemd-stable.orig/src/basic/cgroup-util.c ++++ systemd-stable/src/basic/cgroup-util.c +@@ -769,7 +769,7 @@ int cg_install_release_agent(const char sc = strstrip(contents); if (isempty(sc)) { @@ -53,7 +53,7 @@ index a5141f4cbedd..04c06e7a55cb 100644 if (r < 0) return r; } else if (!path_equal(sc, agent)) -@@ -757,7 +757,7 @@ int cg_install_release_agent(const char *controller, const char *agent) { +@@ -787,7 +787,7 @@ int cg_install_release_agent(const char sc = strstrip(contents); if (streq(sc, "0")) { @@ -62,7 +62,7 @@ index a5141f4cbedd..04c06e7a55cb 100644 if (r < 0) return r; -@@ -784,7 +784,7 @@ int cg_uninstall_release_agent(const char *controller) { +@@ -814,7 +814,7 @@ int cg_uninstall_release_agent(const cha if (r < 0) return r; @@ -71,7 +71,7 @@ index a5141f4cbedd..04c06e7a55cb 100644 if (r < 0) return r; -@@ -794,7 +794,7 @@ int cg_uninstall_release_agent(const char *controller) { +@@ -824,7 +824,7 @@ int cg_uninstall_release_agent(const cha if (r < 0) return r; @@ -80,7 +80,7 @@ index a5141f4cbedd..04c06e7a55cb 100644 if (r < 0) return r; -@@ -1650,7 +1650,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri +@@ -1656,7 +1656,7 @@ int cg_set_attribute(const char *control if (r < 0) return r; @@ -89,11 +89,11 @@ index a5141f4cbedd..04c06e7a55cb 100644 } int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) { -diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c -index da7e836f143e..2138f20bcc03 100644 ---- a/src/basic/procfs-util.c -+++ b/src/basic/procfs-util.c -@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) { +Index: systemd-stable/src/basic/procfs-util.c +=================================================================== +--- systemd-stable.orig/src/basic/procfs-util.c ++++ systemd-stable/src/basic/procfs-util.c +@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limi * decrease it, as threads-max is the much more relevant sysctl. */ if (limit > pid_max-1) { sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */ @@ -109,11 +109,11 @@ index da7e836f143e..2138f20bcc03 100644 if (r < 0) { uint64_t threads_max; -diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c -index da9a2139d31a..5e91f5b8f5d9 100644 ---- a/src/basic/smack-util.c -+++ b/src/basic/smack-util.c -@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) { +Index: systemd-stable/src/basic/smack-util.c +=================================================================== +--- systemd-stable.orig/src/basic/smack-util.c ++++ systemd-stable/src/basic/smack-util.c +@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const return 0; p = procfs_file_alloca(pid, "attr/current"); @@ -122,10 +122,10 @@ index da9a2139d31a..5e91f5b8f5d9 100644 if (r < 0) return r; -diff --git a/src/basic/util.c b/src/basic/util.c -index 2b3b3918a32f..aff8d0fcd473 100644 ---- a/src/basic/util.c -+++ b/src/basic/util.c +Index: systemd-stable/src/basic/util.c +=================================================================== +--- systemd-stable.orig/src/basic/util.c ++++ systemd-stable/src/basic/util.c @@ -267,7 +267,7 @@ void disable_coredumps(void) { if (detect_container() > 0) return; @@ -135,11 +135,11 @@ index 2b3b3918a32f..aff8d0fcd473 100644 if (r < 0) log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m"); } -diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c -index 7ff844c78c3a..5c5721d7c2f7 100644 ---- a/src/binfmt/binfmt.c -+++ b/src/binfmt/binfmt.c -@@ -47,7 +47,7 @@ static int delete_rule(const char *rule) { +Index: systemd-stable/src/binfmt/binfmt.c +=================================================================== +--- systemd-stable.orig/src/binfmt/binfmt.c ++++ systemd-stable/src/binfmt/binfmt.c +@@ -48,7 +48,7 @@ static int delete_rule(const char *rule) if (!fn) return log_oom(); @@ -148,7 +148,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644 } static int apply_rule(const char *rule) { -@@ -55,7 +55,7 @@ static int apply_rule(const char *rule) { +@@ -56,7 +56,7 @@ static int apply_rule(const char *rule) (void) delete_rule(rule); @@ -157,7 +157,7 @@ index 7ff844c78c3a..5c5721d7c2f7 100644 if (r < 0) return log_error_errno(r, "Failed to add binary format: %m"); -@@ -212,7 +212,7 @@ static int run(int argc, char *argv[]) { +@@ -223,7 +223,7 @@ static int run(int argc, char *argv[]) { } /* Flush out all rules */ @@ -166,11 +166,11 @@ index 7ff844c78c3a..5c5721d7c2f7 100644 STRV_FOREACH(f, files) { k = apply_file(*f, true); -diff --git a/src/core/main.c b/src/core/main.c -index 3c6b66e89c8e..c39ebe56a5b3 100644 ---- a/src/core/main.c -+++ b/src/core/main.c -@@ -1312,7 +1312,7 @@ static int bump_unix_max_dgram_qlen(void) { +Index: systemd-stable/src/core/main.c +=================================================================== +--- systemd-stable.orig/src/core/main.c ++++ systemd-stable/src/core/main.c +@@ -1382,7 +1382,7 @@ static int bump_unix_max_dgram_qlen(void if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN) return 0; @@ -179,7 +179,7 @@ index 3c6b66e89c8e..c39ebe56a5b3 100644 if (r < 0) return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r, "Failed to bump AF_UNIX datagram queue length, ignoring: %m"); -@@ -1536,7 +1536,7 @@ static void initialize_core_pattern(bool skip_setup) { +@@ -1668,7 +1668,7 @@ static void initialize_core_pattern(bool if (getpid_cached() != 1) return; @@ -188,11 +188,11 @@ index 3c6b66e89c8e..c39ebe56a5b3 100644 if (r < 0) log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern); } -diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c -index 4427397f2715..8aeb5c829513 100644 ---- a/src/core/smack-setup.c -+++ b/src/core/smack-setup.c -@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) { +Index: systemd-stable/src/core/smack-setup.c +=================================================================== +--- systemd-stable.orig/src/core/smack-setup.c ++++ systemd-stable/src/core/smack-setup.c +@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) } #ifdef SMACK_RUN_LABEL @@ -214,10 +214,10 @@ index 4427397f2715..8aeb5c829513 100644 if (r < 0) log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m"); #endif -diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c -index 17e7cd1a009b..87a766771663 100644 ---- a/src/hibernate-resume/hibernate-resume.c -+++ b/src/hibernate-resume/hibernate-resume.c +Index: systemd-stable/src/hibernate-resume/hibernate-resume.c +=================================================================== +--- systemd-stable.orig/src/hibernate-resume/hibernate-resume.c ++++ systemd-stable/src/hibernate-resume/hibernate-resume.c @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } @@ -227,11 +227,11 @@ index 17e7cd1a009b..87a766771663 100644 if (r < 0) { log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor); return EXIT_FAILURE; -diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c -index 1f2451f8e1b4..3f676ec2841a 100644 ---- a/src/libsystemd/sd-device/sd-device.c -+++ b/src/libsystemd/sd-device/sd-device.c -@@ -1849,7 +1849,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr, +Index: systemd-stable/src/libsystemd/sd-device/sd-device.c +=================================================================== +--- systemd-stable.orig/src/libsystemd/sd-device/sd-device.c ++++ systemd-stable/src/libsystemd/sd-device/sd-device.c +@@ -1877,7 +1877,7 @@ _public_ int sd_device_set_sysattr_value if (!value) return -ENOMEM; @@ -240,11 +240,11 @@ index 1f2451f8e1b4..3f676ec2841a 100644 if (r < 0) { if (r == -ELOOP) return -EINVAL; -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 52a7ea3c77e9..9703de0dabee 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -1339,7 +1339,7 @@ static int trigger_device(Manager *m, sd_device *d) { +Index: systemd-stable/src/login/logind-dbus.c +=================================================================== +--- systemd-stable.orig/src/login/logind-dbus.c ++++ systemd-stable/src/login/logind-dbus.c +@@ -1341,7 +1341,7 @@ static int trigger_device(Manager *m, sd if (!t) return -ENOMEM; @@ -253,11 +253,11 @@ index 52a7ea3c77e9..9703de0dabee 100644 } return 0; -diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c -index f5048d9473cb..b6383ab5c97e 100644 ---- a/src/nspawn/nspawn-cgroup.c -+++ b/src/nspawn/nspawn-cgroup.c -@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) { +Index: systemd-stable/src/nspawn/nspawn-cgroup.c +=================================================================== +--- systemd-stable.orig/src/nspawn/nspawn-cgroup.c ++++ systemd-stable/src/nspawn/nspawn-cgroup.c +@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified fn = strjoina(tree, cgroup, "/cgroup.procs"); sprintf(pid_string, PID_FMT, pid); @@ -266,11 +266,11 @@ index f5048d9473cb..b6383ab5c97e 100644 if (r < 0) { log_error_errno(r, "Failed to move process: %m"); goto finish; -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 734dee1130e0..71add9a055d2 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -2440,7 +2440,7 @@ static int reset_audit_loginuid(void) { +Index: systemd-stable/src/nspawn/nspawn.c +=================================================================== +--- systemd-stable.orig/src/nspawn/nspawn.c ++++ systemd-stable/src/nspawn/nspawn.c +@@ -2493,7 +2493,7 @@ static int reset_audit_loginuid(void) { if (streq(p, "4294967295")) return 0; @@ -279,7 +279,7 @@ index 734dee1130e0..71add9a055d2 100644 if (r < 0) { log_error_errno(r, "Failed to reset audit login UID. This probably means that your kernel is too\n" -@@ -3665,13 +3665,13 @@ static int setup_uid_map(pid_t pid) { +@@ -3726,13 +3726,13 @@ static int setup_uid_map(pid_t pid) { xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid); xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range); @@ -295,11 +295,11 @@ index 734dee1130e0..71add9a055d2 100644 if (r < 0) return log_error_errno(r, "Failed to write GID map: %m"); -diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c -index e8398cbde5ba..ba682ec0c9e7 100644 ---- a/src/shared/cgroup-setup.c -+++ b/src/shared/cgroup-setup.c -@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) { +Index: systemd-stable/src/shared/cgroup-setup.c +=================================================================== +--- systemd-stable.orig/src/shared/cgroup-setup.c ++++ systemd-stable/src/shared/cgroup-setup.c +@@ -267,7 +267,7 @@ int cg_attach(const char *controller, co xsprintf(c, PID_FMT "\n", pid); @@ -317,11 +317,11 @@ index e8398cbde5ba..ba682ec0c9e7 100644 if (r < 0) { log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m", FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs); -diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c -index 8543dbd2d05f..76162599817e 100644 ---- a/src/shared/sysctl-util.c -+++ b/src/shared/sysctl-util.c -@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c +Index: systemd-stable/src/shared/sysctl-util.c +=================================================================== +--- systemd-stable.orig/src/shared/sysctl-util.c ++++ systemd-stable/src/shared/sysctl-util.c +@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, con log_debug("Setting '%s' to '%s'", p, value); @@ -330,11 +330,11 @@ index 8543dbd2d05f..76162599817e 100644 } int sysctl_read(const char *property, char **content) { -diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index fbfddc0262fc..7cc2902154e9 100644 ---- a/src/sleep/sleep.c -+++ b/src/sleep/sleep.c -@@ -47,7 +47,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca +Index: systemd-stable/src/sleep/sleep.c +=================================================================== +--- systemd-stable.orig/src/sleep/sleep.c ++++ systemd-stable/src/sleep/sleep.c +@@ -48,7 +48,7 @@ static int write_hibernate_location_info assert(hibernate_location->swap); xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno)); @@ -343,7 +343,7 @@ index fbfddc0262fc..7cc2902154e9 100644 if (r < 0) return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m", hibernate_location->swap->device, resume_str); -@@ -74,7 +74,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca +@@ -75,7 +75,7 @@ static int write_hibernate_location_info } xsprintf(offset_str, "%" PRIu64, hibernate_location->offset); @@ -352,7 +352,7 @@ index fbfddc0262fc..7cc2902154e9 100644 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); -@@ -91,7 +91,7 @@ static int write_mode(char **modes) { +@@ -92,7 +92,7 @@ static int write_mode(char **modes) { STRV_FOREACH(mode, modes) { int k; @@ -361,7 +361,7 @@ index fbfddc0262fc..7cc2902154e9 100644 if (k >= 0) return 0; -@@ -110,7 +110,7 @@ static int write_state(FILE **f, char **states) { +@@ -114,7 +114,7 @@ static int write_state(FILE **f, char ** STRV_FOREACH(state, states) { int k; @@ -370,11 +370,11 @@ index fbfddc0262fc..7cc2902154e9 100644 if (k >= 0) return 0; log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state); -diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c -index 60c68b5029cf..fdca03d3d42c 100644 ---- a/src/udev/udevadm-trigger.c -+++ b/src/udev/udevadm-trigger.c -@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set *settle_se +Index: systemd-stable/src/udev/udevadm-trigger.c +=================================================================== +--- systemd-stable.orig/src/udev/udevadm-trigger.c ++++ systemd-stable/src/udev/udevadm-trigger.c +@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerato if (!filename) return log_oom(); @@ -383,11 +383,11 @@ index 60c68b5029cf..fdca03d3d42c 100644 if (r < 0) { bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS); -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index ca65474f2763..38780681431a 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -1089,7 +1089,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) { +Index: systemd-stable/src/udev/udevd.c +=================================================================== +--- systemd-stable.orig/src/udev/udevd.c ++++ systemd-stable/src/udev/udevd.c +@@ -1153,7 +1153,7 @@ static int synthesize_change_one(sd_devi filename = strjoina(syspath, "/uevent"); log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath); @@ -396,11 +396,11 @@ index ca65474f2763..38780681431a 100644 if (r < 0) return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename); return 0; -diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index 9d706085fb47..30dcfa86f4d0 100644 ---- a/src/vconsole/vconsole-setup.c -+++ b/src/vconsole/vconsole-setup.c -@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) { +Index: systemd-stable/src/vconsole/vconsole-setup.c +=================================================================== +--- systemd-stable.orig/src/vconsole/vconsole-setup.c ++++ systemd-stable/src/vconsole/vconsole-setup.c +@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *na static int toggle_utf8_sysfs(bool utf8) { int r; diff --git a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch index a5e41bfab..30fe9a14d 100644 --- a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch +++ b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch @@ -17,13 +17,13 @@ Signed-off-by: Andrej Valek src/shared/format-table.c | 36 ++++++++++++++++++++---------- 3 files changed, 38 insertions(+), 31 deletions(-) -diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h -index e029f8646eb0..27d68b341cf3 100644 ---- a/src/basic/sort-util.h -+++ b/src/basic/sort-util.h -@@ -54,17 +54,3 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size, __compar_fn +Index: systemd-stable/src/basic/sort-util.h +=================================================================== +--- systemd-stable.orig/src/basic/sort-util.h ++++ systemd-stable/src/basic/sort-util.h +@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *bas int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \ - qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ + _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \ }) - -static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) { @@ -39,11 +39,11 @@ index e029f8646eb0..27d68b341cf3 100644 - int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \ - qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \ - }) -diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c -index d790e8fd0b19..42e0fd7c9b3c 100644 ---- a/src/libsystemd/sd-hwdb/hwdb-util.c -+++ b/src/libsystemd/sd-hwdb/hwdb-util.c -@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) { +Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c +=================================================================== +--- systemd-stable.orig/src/libsystemd/sd-hwdb/hwdb-util.c ++++ systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c +@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie) DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free); @@ -60,7 +60,7 @@ index d790e8fd0b19..42e0fd7c9b3c 100644 } static int trie_node_add_value(struct trie *trie, struct trie_node *node, -@@ -158,7 +162,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, +@@ -158,7 +162,10 @@ static int trie_node_add_value(struct tr .value_off = v, }; @@ -72,7 +72,7 @@ index d790e8fd0b19..42e0fd7c9b3c 100644 if (val) { /* At this point we have 2 identical properties on the same match-string. * Since we process files in order, we just replace the previous value. */ -@@ -184,7 +191,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node, +@@ -184,7 +191,9 @@ static int trie_node_add_value(struct tr .line_number = line_number, }; node->values_count++; @@ -83,11 +83,11 @@ index d790e8fd0b19..42e0fd7c9b3c 100644 return 0; } -diff --git a/src/shared/format-table.c b/src/shared/format-table.c -index 425013046491..33c1c5a12d43 100644 ---- a/src/shared/format-table.c -+++ b/src/shared/format-table.c -@@ -1164,31 +1164,33 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t +Index: systemd-stable/src/shared/format-table.c +=================================================================== +--- systemd-stable.orig/src/shared/format-table.c ++++ systemd-stable/src/shared/format-table.c +@@ -1246,31 +1246,33 @@ static int cell_data_compare(TableData * return CMP(index_a, index_b); } @@ -131,7 +131,7 @@ index 425013046491..33c1c5a12d43 100644 } /* Order identical lines by the order there were originally added in */ -@@ -1690,7 +1692,12 @@ int table_print(Table *t, FILE *f) { +@@ -1798,7 +1800,12 @@ int table_print(Table *t, FILE *f) { for (i = 0; i < n_rows; i++) sorted[i] = i * t->n_columns; @@ -145,7 +145,7 @@ index 425013046491..33c1c5a12d43 100644 } if (t->display_map) -@@ -2236,7 +2243,12 @@ int table_to_json(Table *t, JsonVariant **ret) { +@@ -2375,7 +2382,12 @@ int table_to_json(Table *t, JsonVariant for (i = 0; i < n_rows; i++) sorted[i] = i * t->n_columns; diff --git a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch index 0dea93327..e65c54361 100644 --- a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch +++ b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch @@ -22,11 +22,11 @@ Signed-off-by: Scott Murray create mode 100644 src/basic/parse-printf-format.c create mode 100644 src/basic/parse-printf-format.h -diff --git a/meson.build b/meson.build -index fc216d22da24..a25996803d64 100644 ---- a/meson.build -+++ b/meson.build -@@ -640,6 +640,7 @@ endif +Index: systemd-stable/meson.build +=================================================================== +--- systemd-stable.orig/meson.build ++++ systemd-stable/meson.build +@@ -638,6 +638,7 @@ endif foreach header : ['crypt.h', 'linux/memfd.h', 'linux/vm_sockets.h', @@ -34,11 +34,11 @@ index fc216d22da24..a25996803d64 100644 'sys/auxv.h', 'valgrind/memcheck.h', 'valgrind/valgrind.h', -diff --git a/src/basic/meson.build b/src/basic/meson.build -index ccb22e159505..25c77ea6bc0e 100644 ---- a/src/basic/meson.build -+++ b/src/basic/meson.build -@@ -313,6 +313,11 @@ foreach item : [['af', af_list_txt, 'af', ''], +Index: systemd-stable/src/basic/meson.build +=================================================================== +--- systemd-stable.orig/src/basic/meson.build ++++ systemd-stable/src/basic/meson.build +@@ -317,6 +317,11 @@ foreach item : [['af', af_list_txt, endforeach basic_sources += generated_gperf_headers @@ -50,11 +50,10 @@ index ccb22e159505..25c77ea6bc0e 100644 basic_gcrypt_sources = files( 'gcrypt-util.c', 'gcrypt-util.h') -diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c -new file mode 100644 -index 000000000000..49437e544540 +Index: systemd-stable/src/basic/parse-printf-format.c +=================================================================== --- /dev/null -+++ b/src/basic/parse-printf-format.c ++++ systemd-stable/src/basic/parse-printf-format.c @@ -0,0 +1,273 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -329,11 +328,10 @@ index 000000000000..49437e544540 + + return last; +} -diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h -new file mode 100644 -index 000000000000..47be7522d7fa +Index: systemd-stable/src/basic/parse-printf-format.h +=================================================================== --- /dev/null -+++ b/src/basic/parse-printf-format.h ++++ systemd-stable/src/basic/parse-printf-format.h @@ -0,0 +1,57 @@ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ + @@ -392,10 +390,10 @@ index 000000000000..47be7522d7fa +size_t parse_printf_format(const char *fmt, size_t n, int *types); + +#endif /* HAVE_PRINTF_H */ -diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h -index c3b9448d4f4f..2937aa13b178 100644 ---- a/src/basic/stdio-util.h -+++ b/src/basic/stdio-util.h +Index: systemd-stable/src/basic/stdio-util.h +=================================================================== +--- systemd-stable.orig/src/basic/stdio-util.h ++++ systemd-stable/src/basic/stdio-util.h @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ #pragma once @@ -411,10 +409,10 @@ index c3b9448d4f4f..2937aa13b178 100644 #define snprintf_ok(buf, len, fmt, ...) \ ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len)) -diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c -index 912ecef73cce..43ed756bda53 100644 ---- a/src/journal/journal-send.c -+++ b/src/journal/journal-send.c +Index: systemd-stable/src/journal/journal-send.c +=================================================================== +--- systemd-stable.orig/src/journal/journal-send.c ++++ systemd-stable/src/journal/journal-send.c @@ -2,7 +2,6 @@ #include @@ -423,7 +421,7 @@ index 912ecef73cce..43ed756bda53 100644 #include #include #include -@@ -20,6 +19,7 @@ +@@ -21,6 +20,7 @@ #include "stdio-util.h" #include "string-util.h" #include "tmpfile-util.h" diff --git a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch index ca4f0d5d6..8e7a2fb6e 100644 --- a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch +++ b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch @@ -1,4 +1,4 @@ -From 85dcaad8f38521ec3dc580794072b601900eed84 Mon Sep 17 00:00:00 2001 +From 7e771de87cf728a8678f1f28f391bba3589e2496 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 @@ -25,6 +25,7 @@ Signed-off-by: Alex Kiernan src/basic/missing_stdlib.h | 12 ++++++++++++ src/basic/mkdir.c | 1 + src/basic/parse-util.c | 1 + + src/basic/path-lookup.c | 1 + src/basic/proc-cmdline.c | 1 + src/basic/procfs-util.c | 1 + src/basic/selinux-util.c | 1 + @@ -52,6 +53,7 @@ Signed-off-by: Alex Kiernan src/nss-mymachines/nss-mymachines.c | 1 + src/portable/portable.c | 1 + src/resolve/resolvectl.c | 1 + + src/shared/bus-get-properties.c | 1 + src/shared/bus-unit-procs.c | 1 + src/shared/bus-unit-util.c | 1 + src/shared/bus-util.c | 1 + @@ -59,20 +61,19 @@ Signed-off-by: Alex Kiernan 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 + - 49 files changed, 60 insertions(+) + 50 files changed, 61 insertions(+) diff --git a/meson.build b/meson.build -index a25996803d64..72b305b5ab58 100644 +index 9187439bdd..bea9935a91 100644 --- a/meson.build +++ b/meson.build -@@ -529,6 +529,7 @@ foreach ident : [ +@@ -527,6 +527,7 @@ foreach ident : [ #include #include #include '''], @@ -81,7 +82,7 @@ index a25996803d64..72b305b5ab58 100644 have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c -index 048441429025..01d74ea0ed4e 100644 +index 3a644363e1..73946a829b 100644 --- a/src/backlight/backlight.c +++ b/src/backlight/backlight.c @@ -17,6 +17,7 @@ @@ -93,19 +94,19 @@ index 048441429025..01d74ea0ed4e 100644 static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) { const char *subsystem, *sysname, *value; diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c -index 54fc6ecf8b20..a5141f4cbedd 100644 +index e94fcfad02..856a7068b0 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c -@@ -37,6 +37,7 @@ - #include "strv.h" +@@ -38,6 +38,7 @@ #include "unit-name.h" #include "user-util.h" + #include "xattr-util.h" +#include "missing_stdlib.h" static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) { _cleanup_free_ char *fs = NULL; diff --git a/src/basic/env-util.c b/src/basic/env-util.c -index b8dc98915f81..5049b37594bc 100644 +index b8dc98915f..5049b37594 100644 --- a/src/basic/env-util.c +++ b/src/basic/env-util.c @@ -15,6 +15,7 @@ @@ -117,10 +118,10 @@ index b8dc98915f81..5049b37594bc 100644 #define VALID_CHARS_ENV_NAME \ DIGITS LETTERS \ diff --git a/src/basic/log.c b/src/basic/log.c -index 17557e1844b2..6cec4d324aab 100644 +index c6fe203808..b7ef932d28 100644 --- a/src/basic/log.c +++ b/src/basic/log.c -@@ -34,6 +34,7 @@ +@@ -35,6 +35,7 @@ #include "terminal-util.h" #include "time-util.h" #include "utf8.h" @@ -129,7 +130,7 @@ index 17557e1844b2..6cec4d324aab 100644 #define SNDBUF_SIZE (8*1024*1024) diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h -index 188a8d44066a..1e16ec287aad 100644 +index 188a8d4406..1e16ec287a 100644 --- a/src/basic/missing_stdlib.h +++ b/src/basic/missing_stdlib.h @@ -11,3 +11,15 @@ @@ -149,7 +150,7 @@ index 188a8d44066a..1e16ec287aad 100644 + }) +#endif diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c -index fa682d4c438e..37902551490a 100644 +index 6ebc2b95fd..88f4359bab 100644 --- a/src/basic/mkdir.c +++ b/src/basic/mkdir.c @@ -13,6 +13,7 @@ @@ -158,22 +159,34 @@ index fa682d4c438e..37902551490a 100644 #include "user-util.h" +#include "missing_stdlib.h" - int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdir_func_t _mkdir) { - struct stat st; + int mkdir_safe_internal( + const char *path, diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c -index e0094b0f370a..00da6518124b 100644 +index 44f0438cf4..54b4133343 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c -@@ -18,6 +18,7 @@ - #include "process-util.h" +@@ -19,6 +19,7 @@ #include "stat-util.h" #include "string-util.h" + #include "strv.h" +#include "missing_stdlib.h" int parse_boolean(const char *v) { if (!v) +diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c +index 52968dee34..2f4f7e3dcd 100644 +--- a/src/basic/path-lookup.c ++++ b/src/basic/path-lookup.c +@@ -15,6 +15,7 @@ + #include "strv.h" + #include "tmpfile-util.h" + #include "user-util.h" ++#include "missing_stdlib.h" + + int xdg_user_runtime_dir(char **ret, const char *suffix) { + const char *e; diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c -index 1af58717c686..c1020f4611d4 100644 +index ba47ca5812..8baf728fde 100644 --- a/src/basic/proc-cmdline.c +++ b/src/basic/proc-cmdline.c @@ -15,6 +15,7 @@ @@ -185,7 +198,7 @@ index 1af58717c686..c1020f4611d4 100644 int proc_cmdline(char **ret) { const char *e; diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c -index 7aaf95bfced2..da7e836f143e 100644 +index 7aaf95bfce..da7e836f14 100644 --- a/src/basic/procfs-util.c +++ b/src/basic/procfs-util.c @@ -11,6 +11,7 @@ @@ -197,10 +210,10 @@ index 7aaf95bfced2..da7e836f143e 100644 int procfs_tasks_get_limit(uint64_t *ret) { _cleanup_free_ char *value = NULL; diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c -index 1095cb426cce..806ef4bd97a9 100644 +index c94ee26bd9..14e35b4653 100644 --- a/src/basic/selinux-util.c +++ b/src/basic/selinux-util.c -@@ -26,6 +26,7 @@ +@@ -27,6 +27,7 @@ #include "selinux-util.h" #include "stdio-util.h" #include "time-util.h" @@ -209,7 +222,7 @@ index 1095cb426cce..806ef4bd97a9 100644 #if HAVE_SELINUX DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free); diff --git a/src/basic/time-util.c b/src/basic/time-util.c -index 105584e2e72f..eb0bed47dac3 100644 +index 15cc1b8851..02bb3f01f9 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -26,6 +26,7 @@ @@ -221,7 +234,7 @@ index 105584e2e72f..eb0bed47dac3 100644 static clockid_t map_clock_id(clockid_t c) { diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c -index b96e1f927fff..cba979baca3e 100644 +index b96e1f927f..cba979baca 100644 --- a/src/boot/bless-boot.c +++ b/src/boot/bless-boot.c @@ -18,6 +18,7 @@ @@ -233,7 +246,7 @@ index b96e1f927fff..cba979baca3e 100644 static char **arg_path = NULL; diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c -index 27dc9e43c3e2..b1a83023600b 100644 +index b7d2e32639..fdbc1df95e 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -15,6 +15,7 @@ @@ -245,7 +258,7 @@ index 27dc9e43c3e2..b1a83023600b 100644 BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve); diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c -index d8ba3e5d9241..729e13fda64c 100644 +index 50f7ada8ce..5c760ee487 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -41,6 +41,7 @@ @@ -257,7 +270,7 @@ index d8ba3e5d9241..729e13fda64c 100644 BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput); diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c -index 7862beaacb6d..3b1ea53a5f0d 100644 +index 951450e53d..50d134e9a1 100644 --- a/src/core/dbus-util.c +++ b/src/core/dbus-util.c @@ -7,6 +7,7 @@ @@ -269,10 +282,10 @@ index 7862beaacb6d..3b1ea53a5f0d 100644 int bus_property_get_triggered_unit( sd_bus *bus, diff --git a/src/core/execute.c b/src/core/execute.c -index 89dbf6fbd2c1..9762dc57443c 100644 +index 2a4840a3a9..d3f1e0e0f8 100644 --- a/src/core/execute.c +++ b/src/core/execute.c -@@ -88,6 +88,7 @@ +@@ -89,6 +89,7 @@ #include "unit.h" #include "user-util.h" #include "utmp-wtmp.h" @@ -281,7 +294,7 @@ index 89dbf6fbd2c1..9762dc57443c 100644 #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC) #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC) diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index 09ccd613e32c..f4e64fa283e9 100644 +index 09ccd613e3..f4e64fa283 100644 --- a/src/core/kmod-setup.c +++ b/src/core/kmod-setup.c @@ -11,6 +11,7 @@ @@ -293,7 +306,7 @@ index 09ccd613e32c..f4e64fa283e9 100644 #if HAVE_KMOD #include "module-util.h" diff --git a/src/core/service.c b/src/core/service.c -index 17f27a4abce3..e5dcc532d0ce 100644 +index 00e61945ba..1ecab28354 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -41,6 +41,7 @@ @@ -305,7 +318,7 @@ index 17f27a4abce3..e5dcc532d0ce 100644 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { [SERVICE_DEAD] = UNIT_INACTIVE, diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c -index 35885dfb47c4..bb9f0660a6a0 100644 +index 35885dfb47..bb9f0660a6 100644 --- a/src/coredump/coredump-vacuum.c +++ b/src/coredump/coredump-vacuum.c @@ -16,6 +16,7 @@ @@ -317,7 +330,7 @@ index 35885dfb47c4..bb9f0660a6a0 100644 #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL) /* 1 MiB */ #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL) /* 4 GiB */ diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c -index 88e42d3a984b..0f08376e5399 100644 +index 77dfdefd64..e21ecbeff8 100644 --- a/src/journal-remote/journal-remote-main.c +++ b/src/journal-remote/journal-remote-main.c @@ -22,6 +22,7 @@ @@ -329,7 +342,7 @@ index 88e42d3a984b..0f08376e5399 100644 #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem" #define CERT_FILE CERTIFICATE_ROOT "/certs/journal-remote.pem" diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index e5feec83bce6..c3aec1e219d7 100644 +index 8d4897b942..15476b3c83 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -69,6 +69,7 @@ @@ -341,7 +354,7 @@ index e5feec83bce6..c3aec1e219d7 100644 #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE) #define PROCESS_INOTIFY_INTERVAL 1024 /* Every 1,024 messages processed */ diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 3fa98dfda237..e655d77e714a 100644 +index 6fb0abb419..2d94d9938e 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -40,6 +40,7 @@ @@ -353,7 +366,7 @@ index 3fa98dfda237..e655d77e714a 100644 #define JOURNAL_FILES_MAX 7168 diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index 73127dfe0253..cc8635dea591 100644 +index 55e35cd902..0ed98f9224 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -21,6 +21,7 @@ @@ -365,7 +378,7 @@ index 73127dfe0253..cc8635dea591 100644 static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored); diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c -index 6d140348ec4c..9126b8801bc5 100644 +index 6abac8822c..c74c9cd7fa 100644 --- a/src/libsystemd/sd-bus/bus-objects.c +++ b/src/libsystemd/sd-bus/bus-objects.c @@ -13,6 +13,7 @@ @@ -377,7 +390,7 @@ index 6d140348ec4c..9126b8801bc5 100644 static int node_vtable_get_userdata( sd_bus *bus, diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c -index 18d30d010a20..be2ab703f8ed 100644 +index fc7e8e844a..7af4dd2712 100644 --- a/src/libsystemd/sd-bus/bus-socket.c +++ b/src/libsystemd/sd-bus/bus-socket.c @@ -28,6 +28,7 @@ @@ -389,7 +402,7 @@ index 18d30d010a20..be2ab703f8ed 100644 #define SNDBUF_SIZE (8*1024*1024) diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index 7ad03680f48d..b9d2181e4910 100644 +index 9de5e454a6..fe86c93c63 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -41,6 +41,7 @@ @@ -401,7 +414,7 @@ index 7ad03680f48d..b9d2181e4910 100644 #define log_debug_bus_message(m) \ do { \ diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c -index 8de0a859ee94..58044b6ba908 100644 +index 8de0a859ee..58044b6ba9 100644 --- a/src/libsystemd/sd-bus/test-bus-benchmark.c +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c @@ -14,6 +14,7 @@ @@ -413,7 +426,7 @@ index 8de0a859ee94..58044b6ba908 100644 #define MAX_SIZE (2*1024*1024) diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c -index 30669a9359e5..6544b3722099 100644 +index 233d081300..40a32b9700 100644 --- a/src/locale/keymap-util.c +++ b/src/locale/keymap-util.c @@ -21,6 +21,7 @@ @@ -425,7 +438,7 @@ index 30669a9359e5..6544b3722099 100644 static bool startswith_comma(const char *s, const char *prefix) { s = startswith(s, prefix); diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c -index 84bea21ab7be..49720c7f742e 100644 +index 16f4289585..6c5e438b36 100644 --- a/src/login/pam_systemd.c +++ b/src/login/pam_systemd.c @@ -31,6 +31,7 @@ @@ -437,7 +450,7 @@ index 84bea21ab7be..49720c7f742e 100644 #include "parse-util.h" #include "path-util.h" diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c -index bed1e42697c4..e4847c2beea2 100644 +index bed1e42697..e4847c2bee 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -13,6 +13,7 @@ @@ -449,7 +462,7 @@ index bed1e42697c4..e4847c2beea2 100644 /* # .network diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c -index 5fb5b49bbcc3..785ccc2da307 100644 +index d341fa25aa..91646bc2c2 100644 --- a/src/nspawn/nspawn-settings.c +++ b/src/nspawn/nspawn-settings.c @@ -16,6 +16,7 @@ @@ -461,19 +474,19 @@ index 5fb5b49bbcc3..785ccc2da307 100644 Settings *settings_new(void) { Settings *s; diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c -index 364356da5622..47d4ea44e40f 100644 +index 5db0dcef76..681f8677e4 100644 --- a/src/nss-mymachines/nss-mymachines.c +++ b/src/nss-mymachines/nss-mymachines.c @@ -19,6 +19,7 @@ + #include "nss-util.h" #include "signal-util.h" #include "string-util.h" - #include "user-util.h" +#include "missing_stdlib.h" NSS_GETHOSTBYNAME_PROTOTYPES(mymachines); NSS_GETPW_PROTOTYPES(mymachines); diff --git a/src/portable/portable.c b/src/portable/portable.c -index e18826ab2685..d9f4b81d8937 100644 +index 3a1367ec2b..f29336cb1e 100644 --- a/src/portable/portable.c +++ b/src/portable/portable.c @@ -31,6 +31,7 @@ @@ -485,10 +498,10 @@ index e18826ab2685..d9f4b81d8937 100644 static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile"); diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c -index f20e8c44b8bc..9f6c4e8f49a7 100644 +index 3072b984e5..c46ae374bf 100644 --- a/src/resolve/resolvectl.c +++ b/src/resolve/resolvectl.c -@@ -33,6 +33,7 @@ +@@ -36,6 +36,7 @@ #include "strv.h" #include "terminal-util.h" #include "verbs.h" @@ -496,8 +509,20 @@ index f20e8c44b8bc..9f6c4e8f49a7 100644 static int arg_family = AF_UNSPEC; static int arg_ifindex = 0; +diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c +index 8ad4694046..da5082c02a 100644 +--- a/src/shared/bus-get-properties.c ++++ b/src/shared/bus-get-properties.c +@@ -3,6 +3,7 @@ + #include "bus-get-properties.h" + #include "rlimit-util.h" + #include "string-util.h" ++#include "missing_stdlib.h" + + int bus_property_get_bool( + sd_bus *bus, diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c -index b21fe393265f..af2640005c1d 100644 +index b21fe39326..af2640005c 100644 --- a/src/shared/bus-unit-procs.c +++ b/src/shared/bus-unit-procs.c @@ -10,6 +10,7 @@ @@ -509,10 +534,10 @@ index b21fe393265f..af2640005c1d 100644 struct CGroupInfo { char *cgroup_path; diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c -index 28d85944a8a7..4743a84a417e 100644 +index f2652ed9a5..eb019fc89f 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c -@@ -34,6 +34,7 @@ +@@ -39,6 +39,7 @@ #include "unit-def.h" #include "user-util.h" #include "utf8.h" @@ -521,19 +546,19 @@ index 28d85944a8a7..4743a84a417e 100644 int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) { assert(message); diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c -index 8e6a6e2ce2de..0cbf4b1997df 100644 +index 77c1c62182..5cd31f3c15 100644 --- a/src/shared/bus-util.c +++ b/src/shared/bus-util.c -@@ -30,6 +30,7 @@ +@@ -22,6 +22,7 @@ + #include "socket-util.h" #include "stdio-util.h" - #include "strv.h" - #include "user-util.h" + /* #include "string-util.h" */ +#include "missing_stdlib.h" static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) { sd_event *e = userdata; diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c -index b812665315f6..8e68f7f8fc6c 100644 +index b812665315..8e68f7f8fc 100644 --- a/src/shared/dns-domain.c +++ b/src/shared/dns-domain.c @@ -23,6 +23,7 @@ @@ -545,7 +570,7 @@ index b812665315f6..8e68f7f8fc6c 100644 int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) { const char *n; diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c -index 7c4fc7021dec..3fbaf5a63969 100644 +index 7c4fc7021d..3fbaf5a639 100644 --- a/src/shared/journal-importer.c +++ b/src/shared/journal-importer.c @@ -14,6 +14,7 @@ @@ -557,19 +582,19 @@ index 7c4fc7021dec..3fbaf5a63969 100644 enum { IMPORTER_STATE_LINE = 0, /* waiting to read, or reading line */ diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c -index 2bfd0b60c26b..6a1bb3a0760f 100644 +index 899e894ab7..628854ac9c 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c -@@ -39,6 +39,7 @@ - #include "time-util.h" +@@ -41,6 +41,7 @@ #include "utf8.h" #include "util.h" + #include "web-util.h" +#include "missing_stdlib.h" /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */ #define PRINT_LINE_THRESHOLD 3 diff --git a/src/shared/pager.c b/src/shared/pager.c -index 1fe9db179176..67954b5cab93 100644 +index e03be6d23b..50e3d1f75c 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -23,6 +23,7 @@ @@ -580,20 +605,8 @@ index 1fe9db179176..67954b5cab93 100644 static pid_t pager_pid = 0; -diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index 5b1620974536..0e7cd1c2af12 100644 ---- a/src/shared/path-lookup.c -+++ b/src/shared/path-lookup.c -@@ -19,6 +19,7 @@ - #include "tmpfile-util.h" - #include "user-util.h" - #include "util.h" -+#include "missing_stdlib.h" - - int xdg_user_runtime_dir(char **ret, const char *suffix) { - const char *e; diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c -index 7cb7d8a477e9..8e7d7f9e7ca6 100644 +index 7cb7d8a477..8e7d7f9e7c 100644 --- a/src/shared/uid-range.c +++ b/src/shared/uid-range.c @@ -9,6 +9,7 @@ @@ -605,7 +618,7 @@ index 7cb7d8a477e9..8e7d7f9e7ca6 100644 static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) { assert(range); diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c -index 2ee6fc2f0a6a..4a9934f9c14d 100644 +index b461aead60..9941695ed9 100644 --- a/src/socket-proxy/socket-proxyd.c +++ b/src/socket-proxy/socket-proxyd.c @@ -26,6 +26,7 @@ @@ -617,7 +630,7 @@ index 2ee6fc2f0a6a..4a9934f9c14d 100644 #define BUFFER_SIZE (256 * 1024) diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c -index 52217429b154..70708dedf318 100644 +index 52217429b1..70708dedf3 100644 --- a/src/test/test-hexdecoct.c +++ b/src/test/test-hexdecoct.c @@ -6,6 +6,7 @@ @@ -629,7 +642,7 @@ index 52217429b154..70708dedf318 100644 static void test_hexchar(void) { assert_se(hexchar(0xa) == 'a'); diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index ca38f5608791..9d8cf4d2807b 100644 +index 6c020ac0ed..10723ec46c 100644 --- a/src/udev/udev-builtin-path_id.c +++ b/src/udev/udev-builtin-path_id.c @@ -22,6 +22,7 @@ @@ -641,7 +654,7 @@ index ca38f5608791..9d8cf4d2807b 100644 _printf_(2,3) static void path_prepend(char **path, const char *fmt, ...) { diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c -index eb51139e519c..977cc16e9d7c 100644 +index e1c2baf7f2..62d4086802 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -34,6 +34,7 @@ @@ -653,7 +666,7 @@ index eb51139e519c..977cc16e9d7c 100644 typedef struct Spawn { sd_device *device; diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c -index b9b350d1ef7a..2c114cc77572 100644 +index c36f032f66..36970813d8 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -30,6 +30,7 @@ diff --git a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch index 9142d7b45..abc438e4b 100644 --- a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch +++ b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch @@ -52,10 +52,10 @@ Signed-off-by: Scott Murray 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 eac2e725cce7..1beae7ba91cc 100644 ---- a/src/libsystemd-network/sd-dhcp6-client.c -+++ b/src/libsystemd-network/sd-dhcp6-client.c +Index: systemd-stable/src/libsystemd-network/sd-dhcp6-client.c +=================================================================== +--- systemd-stable.orig/src/libsystemd-network/sd-dhcp6-client.c ++++ systemd-stable/src/libsystemd-network/sd-dhcp6-client.c @@ -5,7 +5,6 @@ #include @@ -64,10 +64,10 @@ index eac2e725cce7..1beae7ba91cc 100644 #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 e35127a4cd2e..4f6ad9ef5886 100644 ---- a/src/libsystemd/sd-netlink/netlink-types.c -+++ b/src/libsystemd/sd-netlink/netlink-types.c +Index: systemd-stable/src/libsystemd/sd-netlink/netlink-types.c +=================================================================== +--- systemd-stable.orig/src/libsystemd/sd-netlink/netlink-types.c ++++ systemd-stable/src/libsystemd/sd-netlink/netlink-types.c @@ -3,6 +3,7 @@ #include #include @@ -76,10 +76,10 @@ index e35127a4cd2e..4f6ad9ef5886 100644 #include #include #include -diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c -index a2990452af17..5af350883c28 100644 ---- a/src/machine/machine-dbus.c -+++ b/src/machine/machine-dbus.c +Index: systemd-stable/src/machine/machine-dbus.c +=================================================================== +--- systemd-stable.orig/src/machine/machine-dbus.c ++++ systemd-stable/src/machine/machine-dbus.c @@ -3,6 +3,7 @@ #include #include @@ -88,21 +88,21 @@ index a2990452af17..5af350883c28 100644 /* When we include libgen.h because we need dirname() we immediately * undefine basename() since libgen.h defines it as a macro to the POSIX -diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c -index 8df39e35843f..8d697894f970 100644 ---- a/src/network/netdev/bond.c -+++ b/src/network/netdev/bond.c +Index: systemd-stable/src/network/netdev/bond.c +=================================================================== +--- systemd-stable.orig/src/network/netdev/bond.c ++++ systemd-stable/src/network/netdev/bond.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #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 6b8f9944612e..7f81ec25c407 100644 ---- a/src/network/netdev/bridge.c -+++ b/src/network/netdev/bridge.c + #include "bond-util.h" +Index: systemd-stable/src/network/netdev/bridge.c +=================================================================== +--- systemd-stable.orig/src/network/netdev/bridge.c ++++ systemd-stable/src/network/netdev/bridge.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -110,10 +110,10 @@ index 6b8f9944612e..7f81ec25c407 100644 #include #include "bridge.h" -diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c -index 7d1fec3afe6d..e948a335336d 100644 ---- a/src/network/netdev/macsec.c -+++ b/src/network/netdev/macsec.c +Index: systemd-stable/src/network/netdev/macsec.c +=================================================================== +--- systemd-stable.orig/src/network/netdev/macsec.c ++++ systemd-stable/src/network/netdev/macsec.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -121,10 +121,10 @@ index 7d1fec3afe6d..e948a335336d 100644 #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 +Index: systemd-stable/src/network/netdev/netdev-gperf.gperf +=================================================================== +--- systemd-stable.orig/src/network/netdev/netdev-gperf.gperf ++++ systemd-stable/src/network/netdev/netdev-gperf.gperf @@ -2,6 +2,7 @@ #if __GNUC__ >= 7 _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"") @@ -133,21 +133,21 @@ index 09a5f4822e03..873299b1f98a 100644 #include #include "bond.h" #include "bridge.h" -diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c -index f8121a48ed92..437f411c61e8 100644 ---- a/src/network/netdev/netdev.c -+++ b/src/network/netdev/netdev.c +Index: systemd-stable/src/network/netdev/netdev.c +=================================================================== +--- systemd-stable.orig/src/network/netdev/netdev.c ++++ systemd-stable/src/network/netdev/netdev.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #include #include - -diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c -index 41f09287f2b7..b67ce4fc8844 100644 ---- a/src/network/networkd-brvlan.c -+++ b/src/network/networkd-brvlan.c + #include +Index: systemd-stable/src/network/networkd-brvlan.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-brvlan.c ++++ systemd-stable/src/network/networkd-brvlan.c @@ -4,6 +4,7 @@ ***/ @@ -156,11 +156,11 @@ index 41f09287f2b7..b67ce4fc8844 100644 #include #include -diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c -index 8664d8cdc0d4..e9f91f74c1a1 100644 ---- a/src/network/networkd-dhcp-common.c -+++ b/src/network/networkd-dhcp-common.c -@@ -4,6 +4,7 @@ +Index: systemd-stable/src/network/networkd-dhcp-common.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-dhcp-common.c ++++ systemd-stable/src/network/networkd-dhcp-common.c +@@ -5,6 +5,7 @@ #include "escape.h" #include "in-addr-util.h" #include "networkd-dhcp-common.h" @@ -168,10 +168,10 @@ index 8664d8cdc0d4..e9f91f74c1a1 100644 #include "networkd-network.h" #include "parse-util.h" #include "string-table.h" -diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c -index 13e3e32f40e8..5394399c9150 100644 ---- a/src/network/networkd-dhcp4.c -+++ b/src/network/networkd-dhcp4.c +Index: systemd-stable/src/network/networkd-dhcp4.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-dhcp4.c ++++ systemd-stable/src/network/networkd-dhcp4.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -181,12 +181,12 @@ index 13e3e32f40e8..5394399c9150 100644 #include -#include + #include "escape.h" #include "alloc-util.h" - #include "dhcp-client-internal.h" -diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c -index 7304270c60b1..099064f64715 100644 ---- a/src/network/networkd-dhcp6.c -+++ b/src/network/networkd-dhcp6.c +Index: systemd-stable/src/network/networkd-dhcp6.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-dhcp6.c ++++ systemd-stable/src/network/networkd-dhcp6.c @@ -3,9 +3,9 @@ Copyright © 2014 Intel Corporation. All rights reserved. ***/ @@ -195,13 +195,13 @@ index 7304270c60b1..099064f64715 100644 #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 99d4b29c31ec..e8b467d6ac09 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c + +Index: systemd-stable/src/network/networkd-link.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-link.c ++++ systemd-stable/src/network/networkd-link.c @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -209,13 +209,13 @@ index 99d4b29c31ec..e8b467d6ac09 100644 #include #include -#include + #include #include - #include "alloc-util.h" -diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c -index 2e716b291e97..56f18cea57fe 100644 ---- a/src/network/networkd-network.c -+++ b/src/network/networkd-network.c +Index: systemd-stable/src/network/networkd-network.c +=================================================================== +--- systemd-stable.orig/src/network/networkd-network.c ++++ systemd-stable/src/network/networkd-network.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -223,19 +223,19 @@ index 2e716b291e97..56f18cea57fe 100644 #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 +Index: systemd-stable/src/network/test-network-tables.c +=================================================================== +--- systemd-stable.orig/src/network/test-network-tables.c ++++ systemd-stable/src/network/test-network-tables.c @@ -1,3 +1,4 @@ +#include #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 00a71d64a638..4593e89120b8 100644 ---- a/src/shared/ethtool-util.c -+++ b/src/shared/ethtool-util.c +Index: systemd-stable/src/shared/ethtool-util.c +=================================================================== +--- systemd-stable.orig/src/shared/ethtool-util.c ++++ systemd-stable/src/shared/ethtool-util.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ @@ -243,10 +243,10 @@ index 00a71d64a638..4593e89120b8 100644 #include #include #include -diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h -index c1d5d7590ef9..b3e018bf76e9 100644 ---- a/src/shared/ethtool-util.h -+++ b/src/shared/ethtool-util.h +Index: systemd-stable/src/shared/ethtool-util.h +=================================================================== +--- systemd-stable.orig/src/shared/ethtool-util.h ++++ systemd-stable/src/shared/ethtool-util.h @@ -3,6 +3,7 @@ #include @@ -255,21 +255,21 @@ index c1d5d7590ef9..b3e018bf76e9 100644 #include #include "conf-parser.h" -diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c -index 0332e99269c9..ff3aead4a779 100644 ---- a/src/udev/net/link-config.c -+++ b/src/udev/net/link-config.c +Index: systemd-stable/src/udev/net/link-config.c +=================================================================== +--- systemd-stable.orig/src/udev/net/link-config.c ++++ systemd-stable/src/udev/net/link-config.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #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 + #include +Index: systemd-stable/src/udev/udev-builtin-net_setup_link.c +=================================================================== +--- systemd-stable.orig/src/udev/udev-builtin-net_setup_link.c ++++ systemd-stable/src/udev/udev-builtin-net_setup_link.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ diff --git a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch index 580c49fec..dd6ecebeb 100644 --- a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch +++ b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch @@ -23,10 +23,10 @@ Signed-off-by: Scott Murray src/tmpfiles/tmpfiles.c | 10 ++++++++++ 3 files changed, 38 insertions(+) -diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c -index e3aa6c2e152b..38070b79c83a 100644 ---- a/src/basic/glob-util.c -+++ b/src/basic/glob-util.c +Index: systemd-stable/src/basic/glob-util.c +=================================================================== +--- systemd-stable.orig/src/basic/glob-util.c ++++ systemd-stable/src/basic/glob-util.c @@ -12,6 +12,12 @@ #include "path-util.h" #include "strv.h" @@ -48,7 +48,7 @@ index e3aa6c2e152b..38070b79c83a 100644 /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */ assert(!(flags & GLOB_ALTDIRFUNC)); -@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) { +@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flag pglob->gl_lstat = lstat; if (!pglob->gl_stat) pglob->gl_stat = stat; @@ -63,10 +63,10 @@ index e3aa6c2e152b..38070b79c83a 100644 if (k == GLOB_NOMATCH) return -ENOENT; if (k == GLOB_NOSPACE) -diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c -index 667d15335fbf..76a84443aacf 100644 ---- a/src/test/test-glob-util.c -+++ b/src/test/test-glob-util.c +Index: systemd-stable/src/test/test-glob-util.c +=================================================================== +--- systemd-stable.orig/src/test/test-glob-util.c ++++ systemd-stable/src/test/test-glob-util.c @@ -12,6 +12,12 @@ #include "rm-rf.h" #include "tmpfile-util.h" @@ -114,11 +114,11 @@ index 667d15335fbf..76a84443aacf 100644 assert_se(r == GLOB_NOMATCH); (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL); -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 193ed0bc781b..2f94fd2efd8f 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -58,6 +58,12 @@ +Index: systemd-stable/src/tmpfiles/tmpfiles.c +=================================================================== +--- systemd-stable.orig/src/tmpfiles/tmpfiles.c ++++ systemd-stable/src/tmpfiles/tmpfiles.c +@@ -59,6 +59,12 @@ #include "umask-util.h" #include "user-util.h" @@ -131,7 +131,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates * them in the file system. This is intended to be used to create * properly owned directories beneath /tmp, /var/tmp, /run, which are -@@ -1850,7 +1856,9 @@ finish: +@@ -1867,7 +1873,9 @@ finish: static int glob_item(Item *i, action_t action) { _cleanup_globfree_ glob_t g = { @@ -141,7 +141,7 @@ index 193ed0bc781b..2f94fd2efd8f 100644 }; int r = 0, k; char **fn; -@@ -1870,7 +1878,9 @@ static int glob_item(Item *i, action_t action) { +@@ -1887,7 +1895,9 @@ static int glob_item(Item *i, action_t a static int glob_item_recursively(Item *i, fdaction_t action) { _cleanup_globfree_ glob_t g = { diff --git a/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch index 5ee501f23..15055161f 100644 --- a/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch +++ b/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch @@ -11,10 +11,10 @@ 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 5de366f830e8..644f53aee005 100644 ---- a/src/basic/process-util.c -+++ b/src/basic/process-util.c +Index: systemd-stable/src/basic/process-util.c +=================================================================== +--- systemd-stable.orig/src/basic/process-util.c ++++ systemd-stable/src/basic/process-util.c @@ -18,6 +18,9 @@ #if HAVE_VALGRIND_VALGRIND_H #include @@ -25,7 +25,7 @@ index 5de366f830e8..644f53aee005 100644 #include "alloc-util.h" #include "architecture.h" -@@ -1116,11 +1119,15 @@ void reset_cached_pid(void) { +@@ -1143,11 +1146,15 @@ void reset_cached_pid(void) { cached_pid = CACHED_PID_UNSET; } diff --git a/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch index e5d9515e8..a6fcd2f5d 100644 --- a/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch +++ b/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch @@ -27,11 +27,11 @@ Signed-off-by: Chen Qi 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 c47fa76ea8ff..14a78d9f5fd0 100644 ---- a/src/basic/format-util.h -+++ b/src/basic/format-util.h -@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t)); +Index: systemd-stable/src/basic/format-util.h +=================================================================== +--- systemd-stable.orig/src/basic/format-util.h ++++ systemd-stable/src/basic/format-util.h +@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32 # define PRI_TIMEX "li" #endif @@ -46,11 +46,11 @@ index c47fa76ea8ff..14a78d9f5fd0 100644 #if SIZEOF_DEV_T == 8 # define DEV_FMT "%" PRIu64 -diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c -index 2dc13eabc30d..0633cc67f417 100644 ---- a/src/basic/rlimit-util.c -+++ b/src/basic/rlimit-util.c -@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) { +Index: systemd-stable/src/basic/rlimit-util.c +=================================================================== +--- systemd-stable.orig/src/basic/rlimit-util.c ++++ systemd-stable/src/basic/rlimit-util.c +@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *r if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY) s = strdup("infinity"); else if (rl->rlim_cur >= RLIM_INFINITY) @@ -77,11 +77,11 @@ index 2dc13eabc30d..0633cc67f417 100644 return 1; } -diff --git a/src/core/execute.c b/src/core/execute.c -index 9762dc57443c..4a3421bb3ee6 100644 ---- a/src/core/execute.c -+++ b/src/core/execute.c -@@ -4567,9 +4567,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) { +Index: systemd-stable/src/core/execute.c +=================================================================== +--- systemd-stable.orig/src/core/execute.c ++++ systemd-stable/src/core/execute.c +@@ -4686,9 +4686,9 @@ void exec_context_dump(const ExecContext for (i = 0; i < RLIM_NLIMITS; i++) if (c->rlimit[i]) { fprintf(f, "%sLimit%s: " RLIM_FMT "\n", diff --git a/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch index efeef0729..0a7594c06 100644 --- a/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch +++ b/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch @@ -31,13 +31,13 @@ Signed-off-by: Andre McCurdy src/shared/base-filesystem.c | 6 +++--- 2 files changed, 24 insertions(+), 4 deletions(-) -diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h -index 78d68be9fd85..c5dc84d41868 100644 ---- a/src/basic/fs-util.h -+++ b/src/basic/fs-util.h -@@ -40,7 +40,27 @@ int fchmod_opath(int fd, mode_t m); - +Index: systemd-stable/src/basic/fs-util.h +=================================================================== +--- systemd-stable.orig/src/basic/fs-util.h ++++ systemd-stable/src/basic/fs-util.h +@@ -42,7 +42,27 @@ int fchmod_opath(int fd, mode_t m); int fd_warn_permissions(const char *path, int fd); + int stat_warn_permissions(const char *path, const struct stat *st); -#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) +/* @@ -64,11 +64,11 @@ index 78d68be9fd85..c5dc84d41868 100644 int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode); int touch(const char *path); -diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c -index 657407da2d37..fbd5782d84fc 100644 ---- a/src/shared/base-filesystem.c -+++ b/src/shared/base-filesystem.c -@@ -54,7 +54,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { +Index: systemd-stable/src/shared/base-filesystem.c +=================================================================== +--- systemd-stable.orig/src/shared/base-filesystem.c ++++ systemd-stable/src/shared/base-filesystem.c +@@ -54,7 +54,7 @@ int base_filesystem_create(const char *r return log_error_errno(errno, "Failed to open root file system: %m"); for (i = 0; i < ELEMENTSOF(table); i ++) { @@ -77,7 +77,7 @@ index 657407da2d37..fbd5782d84fc 100644 continue; if (table[i].target) { -@@ -62,7 +62,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { +@@ -62,7 +62,7 @@ int base_filesystem_create(const char *r /* check if one of the targets exists */ NULSTR_FOREACH(s, table[i].target) { @@ -86,7 +86,7 @@ index 657407da2d37..fbd5782d84fc 100644 continue; /* check if a specific file exists at the target path */ -@@ -73,7 +73,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) { +@@ -73,7 +73,7 @@ int base_filesystem_create(const char *r if (!p) return log_oom(); diff --git a/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch index 19a3eef84..67d504191 100644 --- a/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch +++ b/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch @@ -14,10 +14,10 @@ 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 +Index: systemd-stable/src/machine/machine-dbus.c +=================================================================== +--- systemd-stable.orig/src/machine/machine-dbus.c ++++ systemd-stable/src/machine/machine-dbus.c @@ -11,6 +11,11 @@ #include #undef basename @@ -29,4 +29,4 @@ index 760ccb445cd0..0df20f3864b3 100644 + #include "alloc-util.h" #include "bus-common-errors.h" - #include "bus-internal.h" + #include "bus-get-properties.h" diff --git a/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch index 1934b783d..3d456ec83 100644 --- a/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch +++ b/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch @@ -24,11 +24,11 @@ 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 644f53aee005..acaf13591396 100644 ---- a/src/basic/process-util.c -+++ b/src/basic/process-util.c -@@ -1500,7 +1500,7 @@ int set_oom_score_adjust(int value) { +Index: systemd-stable/src/basic/process-util.c +=================================================================== +--- systemd-stable.orig/src/basic/process-util.c ++++ systemd-stable/src/basic/process-util.c +@@ -1536,7 +1536,7 @@ int set_oom_score_adjust(int value) { sprintf(t, "%i", value); return write_string_file("/proc/self/oom_score_adj", t, diff --git a/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch index 84a492f29..48fd007e1 100644 --- a/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch +++ b/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch @@ -24,11 +24,11 @@ Signed-off-by: Chen Qi src/libsystemd/sd-bus/bus-error.c | 5 +++++ 2 files changed, 10 insertions(+) -diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c -index 43ed756bda53..227ea64dbb48 100644 ---- a/src/journal/journal-send.c -+++ b/src/journal/journal-send.c -@@ -336,7 +336,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove +Index: systemd-stable/src/journal/journal-send.c +=================================================================== +--- systemd-stable.orig/src/journal/journal-send.c ++++ systemd-stable/src/journal/journal-send.c +@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(co char* j; errno = 0; @@ -41,11 +41,11 @@ index 43ed756bda53..227ea64dbb48 100644 if (errno == 0) { char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1]; -diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c -index f760f0fdd21c..28a5159c4480 100644 ---- a/src/libsystemd/sd-bus/bus-error.c -+++ b/src/libsystemd/sd-bus/bus-error.c -@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) { +Index: systemd-stable/src/libsystemd/sd-bus/bus-error.c +=================================================================== +--- systemd-stable.orig/src/libsystemd/sd-bus/bus-error.c ++++ systemd-stable/src/libsystemd/sd-bus/bus-error.c +@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_er return; errno = 0; diff --git a/poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch new file mode 100644 index 000000000..67d9162c0 --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch @@ -0,0 +1,23 @@ +From 190854c2114dc6e74c8859dc251e3737e3c0f353 Mon Sep 17 00:00:00 2001 +From: Alex Kiernan +Date: Fri, 7 Aug 2020 15:19:27 +0000 +Subject: [PATCH] Handle missing LOCK_EX + +Upstream-Status: Inappropriate [musl specific] +Signed-off-by: Alex Kiernan +--- + src/partition/makefs.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/partition/makefs.c b/src/partition/makefs.c +index 97f50c9033..7f55acd229 100644 +--- a/src/partition/makefs.c ++++ b/src/partition/makefs.c +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + + #include "alloc-util.h" + #include "blockdev-util.h" diff --git a/poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch new file mode 100644 index 000000000..d57ca1fd3 --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch @@ -0,0 +1,37 @@ +From 328c39fae2631deb5737dd56f46159dd6b4cdbed Mon Sep 17 00:00:00 2001 +From: Alex Kiernan +Date: Fri, 7 Aug 2020 15:20:17 +0000 +Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un * + +| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns': +| ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types] +| 4893 | if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) { +| | ^~~~~~ +| | | +| | struct sockaddr_un * +| In file included from ../../../../../../workspace/sources/systemd/src/systemd/sd-daemon.h:22, +| from ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:21: +| /home/ubuntu/poky/build/tmp/work/core2-64-poky-linux-musl/systemd/1_246-r0/recipe-sysroot/usr/include/sys/socket.h:384:19: note: expected 'const struct sockaddr *' but argument is of type 'struct sockaddr_un *' +| 384 | int connect (int, const struct sockaddr *, socklen_t); +| | ^~~~~~~~~~~~~~~~~~~~~~~ +| cc1: some warnings being treated as errors + +Upstream-Status: Inappropriate [musl specific] +Signed-off-by: Alex Kiernan +--- + src/nspawn/nspawn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c +index 0450c9f795..7305db04ef 100644 +--- a/src/nspawn/nspawn.c ++++ b/src/nspawn/nspawn.c +@@ -4890,7 +4890,7 @@ static int cant_be_in_netns(void) { + if (fd < 0) + return log_error_errno(errno, "Failed to allocate udev control socket: %m"); + +- if (connect(fd, &sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) { ++ if (connect(fd, (struct sockaddr *)&sa.un, SOCKADDR_UN_LEN(sa.un)) < 0) { + + if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno)) + return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), diff --git a/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch b/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch new file mode 100644 index 000000000..78660691d --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch @@ -0,0 +1,31 @@ +From f939d3e07e1175caac5cf4cbf54bd8a58c2f198a Mon Sep 17 00:00:00 2001 +From: Alex Kiernan +Date: Fri, 7 Aug 2020 15:30:52 +0000 +Subject: [PATCH] Fix field 'efi_loader_entry_one_shot_stat' has incomplete + type + +| In file included from ../../../../../../workspace/sources/systemd/src/login/logind-gperf.gperf:7: +| ../../../../../../workspace/sources/systemd/src/login/logind.h:131:21: error: field 'efi_loader_entry_one_shot_stat' has incomplete type +| 131 | struct stat efi_loader_entry_one_shot_stat; +| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Inappropriate [musl specific] +Signed-off-by: Alex Kiernan +--- + src/login/logind.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/login/logind.h b/src/login/logind.h +index e64ecce8e2..2d4007d84b 100644 +--- a/src/login/logind.h ++++ b/src/login/logind.h +@@ -2,6 +2,9 @@ + #pragma once + + #include ++#include ++#include ++#include + + #include "sd-bus.h" + #include "sd-device.h" diff --git a/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch b/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch deleted file mode 100644 index 7b5e3e7f7..000000000 --- a/poky/meta/recipes-core/systemd/systemd/CVE-2020-13776.patch +++ /dev/null @@ -1,96 +0,0 @@ -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/poky/meta/recipes-core/systemd/systemd_245.6.bb b/poky/meta/recipes-core/systemd/systemd_245.6.bb deleted file mode 100644 index cdafb9824..000000000 --- a/poky/meta/recipes-core/systemd/systemd_245.6.bb +++ /dev/null @@ -1,715 +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 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 \ - file://0001-Handle-missing-gshadow.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 \ - userdb \ - utmp \ - vconsole \ - xz \ -" - -PACKAGECONFIG_remove_libc-musl = " \ - gshadow \ - idn \ - localed \ - myhostname \ - nss \ - nss-mymachines \ - nss-resolve \ - sysusers \ - userdb \ - utmp \ -" - -CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 " - -# Use the upstream systemd serial-getty@.service and rely on -# systemd-getty-generator instead of using the OE-core specific -# systemd-serialgetty.bb - not enabled by default. -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=,,systemd-compat-units update-rc.d" -# When enabled use reproducble build timestamp if set as time epoch, -# or build time if not. When disabled, time epoch is unset. -def build_epoch(d): - 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[userdb] = "-Duserdb=true,-Duserdb=false" -PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" -PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" -PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" -# 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/networkd.conf \ - ${sysconfdir}/systemd/pstore.conf \ - ${sysconfdir}/systemd/resolved.conf \ - ${sysconfdir}/systemd/sleep.conf \ - ${sysconfdir}/systemd/system.conf \ - ${sysconfdir}/systemd/timesyncd.conf \ - ${sysconfdir}/systemd/user.conf \ -" - -FILES_${PN} = " ${base_bindir}/* \ - ${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 \ - 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/poky/meta/recipes-core/systemd/systemd_246.2.bb b/poky/meta/recipes-core/systemd/systemd_246.2.bb new file mode 100644 index 000000000..704a36e75 --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd_246.2.bb @@ -0,0 +1,719 @@ +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://0001-Use-PREFIX-ROOTPREFIX-correctly.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://0021-Handle-missing-LOCK_EX.patch \ + file://0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \ + file://0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch \ + file://0024-test-json.c-define-M_PIl.patch \ + file://0001-do-not-disable-buffer-in-writing-files.patch \ + file://0002-src-login-brightness.c-include-sys-wait.h.patch \ + file://0003-src-basic-copy.c-include-signal.h.patch \ + file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \ + file://0001-Handle-missing-gshadow.patch \ + " + +PAM_PLUGINS = " \ + 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 \ + userdb \ + utmp \ + vconsole \ + xz \ +" + +PACKAGECONFIG_remove_libc-musl = " \ + gshadow \ + idn \ + localed \ + myhostname \ + nss \ + nss-mymachines \ + nss-resolve \ + sysusers \ + userdb \ + utmp \ +" + +CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 " + +# Use the upstream systemd serial-getty@.service and rely on +# systemd-getty-generator instead of using the OE-core specific +# systemd-serialgetty.bb - not enabled by default. +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=,,systemd-compat-units update-rc.d" +# When enabled use reproducble build timestamp if set as time epoch, +# or build time if not. When disabled, time epoch is unset. +def build_epoch(d): + 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[userdb] = "-Duserdb=true,-Duserdb=false" +PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" +PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" +PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" +# 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/networkd.conf \ + ${sysconfdir}/systemd/pstore.conf \ + ${sysconfdir}/systemd/resolved.conf \ + ${sysconfdir}/systemd/sleep.conf \ + ${sysconfdir}/systemd/system.conf \ + ${sysconfdir}/systemd/timesyncd.conf \ + ${sysconfdir}/systemd/user.conf \ +" + +FILES_${PN} = " ${base_bindir}/* \ + ${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 \ + 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.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/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch b/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch index bd4444b81..5c39fb001 100644 --- a/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch +++ b/poky/meta/recipes-core/sysvinit/sysvinit/crypt-lib.patch @@ -1,4 +1,4 @@ -From 7276275d9a08d5ae268fb263027bbc60bc0ab2e8 Mon Sep 17 00:00:00 2001 +From c3a068cf24a22bea7349849ec111ae8d91a54db4 Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Wed, 14 Jul 2010 14:35:52 -0400 Subject: [PATCH] sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a @@ -11,24 +11,26 @@ Upstream-Status: Inappropriate [configuration] # - jdike@linux.intel.com --- - src/Makefile | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) + src/Makefile | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/Makefile b/src/Makefile -index 1380d7f..628e77f 100644 +index 5b1a5a2..b686394 100644 --- a/src/Makefile +++ b/src/Makefile -@@ -97,13 +97,8 @@ else +@@ -97,15 +97,8 @@ else endif # Additional libs for GNU libc. --ifneq ($(wildcard /usr/lib*/libcrypt.*),) +-ifneq ($(wildcard $(ROOT)/usr/lib*/libcrypt.*),) - SULOGINLIBS += -lcrypt -endif - -# Additional libs for GNU libc / multiarch on Debian based systems. --ifneq ($(wildcard /usr/lib/*/libcrypt.*),) +-ifneq ($(wildcard $(ROOT)/usr/lib/*/libcrypt.*),) +-ifneq ($(findstring -lcrypt, $(SULOGINLIBS)), -lcrypt) - SULOGINLIBS += -lcrypt +-endif +ifneq ($(LCRYPT),) + SULOGINLIBS += $(LCRYPT) endif diff --git a/poky/meta/recipes-core/sysvinit/sysvinit/install.patch b/poky/meta/recipes-core/sysvinit/sysvinit/install.patch index 2930fb019..90563a629 100644 --- a/poky/meta/recipes-core/sysvinit/sysvinit/install.patch +++ b/poky/meta/recipes-core/sysvinit/sysvinit/install.patch @@ -1,4 +1,4 @@ -From b6cc66ab245ceb6bca0116dff7a41f6d7677b96a Mon Sep 17 00:00:00 2001 +From 5e35aa105e7a2e85db2a89fee4114090b1ac55be Mon Sep 17 00:00:00 2001 From: Qing He Date: Fri, 18 Jun 2010 09:40:30 +0800 Subject: [PATCH] sysvinit: upgrade to version 2.88dsf @@ -10,7 +10,7 @@ Upstream-Status: Pending 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/Makefile b/src/Makefile -index 9f9f09e..1380d7f 100644 +index 1b368dc..5b1a5a2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -77,7 +77,14 @@ else @@ -29,7 +29,7 @@ index 9f9f09e..1380d7f 100644 ifeq ($(WITH_SELINUX),yes) SELINUX_DEF = -DWITH_SELINUX -@@ -189,42 +196,42 @@ clobber: cleanobjs +@@ -191,43 +198,43 @@ clobber: cleanobjs distclean: clobber install: all @@ -50,6 +50,7 @@ index 9f9f09e..1380d7f 100644 + $(INSTALL_EXEC) $$i $(ROOT)$(bindir)/ ; \ done # $(INSTALL_DIR) $(ROOT)/etc/ + $(INSTALL_DIR) $(ROOT)/etc/inittab.d # $(INSTALL_EXEC) ../doc/initscript.sample $(ROOT)/etc/ - ln -sf halt $(ROOT)/sbin/reboot - ln -sf halt $(ROOT)/sbin/poweroff diff --git a/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb b/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb deleted file mode 100644 index d2b85ed9c..000000000 --- a/poky/meta/recipes-core/sysvinit/sysvinit_2.96.bb +++ /dev/null @@ -1,114 +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=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/poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb b/poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb new file mode 100644 index 000000000..80ab9d70e --- /dev/null +++ b/poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb @@ -0,0 +1,113 @@ +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[sha256sum] = "2d5996857519bfd8634d2e1debabb3238fb38440f65fbfdc46420ee8bdf25110" + +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/poky/meta/recipes-core/volatile-binds/files/volatile-binds.service.in b/poky/meta/recipes-core/volatile-binds/files/volatile-binds.service.in index b23355a71..e2ad39f25 100644 --- a/poky/meta/recipes-core/volatile-binds/files/volatile-binds.service.in +++ b/poky/meta/recipes-core/volatile-binds/files/volatile-binds.service.in @@ -10,7 +10,6 @@ ConditionPathIsReadWrite=!@where@ [Service] Type=oneshot RemainAfterExit=Yes -StandardOutput=syslog TimeoutSec=0 ExecStart=/sbin/mount-copybind @what@ @where@ ExecStop=/bin/umount @where@ diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.34.inc b/poky/meta/recipes-devtools/binutils/binutils-2.34.inc deleted file mode 100644 index f65fdb732..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils-2.34.inc +++ /dev/null @@ -1,47 +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] - -# 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/poky/meta/recipes-devtools/binutils/binutils-2.35.inc b/poky/meta/recipes-devtools/binutils/binutils-2.35.inc new file mode 100644 index 000000000..5ae9ec422 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils-2.35.inc @@ -0,0 +1,45 @@ +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.35" +CVE_VERSION = "2.35" +BINUPV = "${@binutils_branch_version(d)}" +#BRANCH = "binutils-${BINUPV}-branch" +BRANCH ?= "binutils-2_35-branch" + +UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P\d+_(\d_?)*)" + +SRCREV ?= "89a9065674a14a8bd94bb326b27d19a2f3583efb" +BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${BRANCH};protocol=git" +SRC_URI = "\ + ${BINUTILS_GIT_URI} \ + file://0004-configure-widen-the-regexp-for-SH-architectures.patch \ + file://0005-Point-scripts-location-to-libdir.patch \ + file://0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \ + file://0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \ + file://0008-warn-for-uses-of-system-directories-when-cross-linki.patch \ + file://0009-Change-default-emulation-for-mips64-linux.patch \ + file://0010-Add-support-for-Netlogic-XLP.patch \ + file://0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \ + file://0012-Detect-64-bit-MIPS-targets.patch \ + file://0013-Use-libtool-2.4.patch \ + file://0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \ + file://0015-sync-with-OE-libtool-changes.patch \ + file://0016-Check-for-clang-before-checking-gcc-version.patch \ +" +S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb deleted file mode 100644 index 5dbaa0301..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.34.bb +++ /dev/null @@ -1,3 +0,0 @@ -require binutils.inc -require binutils-${PV}.inc -require binutils-cross-canadian.inc diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb new file mode 100644 index 000000000..5dbaa0301 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.35.bb @@ -0,0 +1,3 @@ +require binutils.inc +require binutils-${PV}.inc +require binutils-cross-canadian.inc diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb deleted file mode 100644 index 07a8e7c41..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.34.bb +++ /dev/null @@ -1,85 +0,0 @@ -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/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.bb new file mode 100644 index 000000000..07a8e7c41 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.35.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/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb b/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb deleted file mode 100644 index fbd1f7d25..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils-cross_2.34.bb +++ /dev/null @@ -1,3 +0,0 @@ -require binutils.inc -require binutils-${PV}.inc -require binutils-cross.inc diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils-cross_2.35.bb new file mode 100644 index 000000000..fbd1f7d25 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils-cross_2.35.bb @@ -0,0 +1,3 @@ +require binutils.inc +require binutils-${PV}.inc +require binutils-cross.inc diff --git a/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb b/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.bb deleted file mode 100644 index 37f4d6d2e..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.34.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/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.bb new file mode 100644 index 000000000..37f4d6d2e --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.35.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/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch index 14e84215e..4c1d11291 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch @@ -1,24 +1,40 @@ -From b05f0be13aadf0b26a0b39dfe7daf2c47a300338 Mon Sep 17 00:00:00 2001 +From a0b23b160d6cfa7be4437c6e623633d76395f2ad Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:58:54 +0000 -Subject: [PATCH] binutils-crosssdk: Generate relocatable SDKs +Subject: [PATCH 01/16] binutils-crosssdk: Generate relocatable SDKs This patch will modify the ELF linker scripts so that the crosssdk linker will generate binaries with a 4096 bytes PT_INTERP section. When the binaries will be relocated, at SDK install time, the interpreter path can be easily changed by the relocating script. +generate larger .interp section for gold linker as well + Upstream-Status: Inappropriate [SDK specific] Signed-off-by: Laurentiu Palcu Signed-off-by: Khem Raj --- + gold/layout.cc | 2 +- ld/genscripts.sh | 3 +++ ld/scripttempl/elf.sc | 4 ++-- - 2 files changed, 5 insertions(+), 2 deletions(-) + 3 files changed, 6 insertions(+), 3 deletions(-) +diff --git a/gold/layout.cc b/gold/layout.cc +index 13e533aaf21..b0afff16e2e 100644 +--- a/gold/layout.cc ++++ b/gold/layout.cc +@@ -5019,7 +5019,7 @@ Layout::create_interp(const Target* target) + gold_assert(interp != NULL); + } + +- size_t len = strlen(interp) + 1; ++ size_t len = 4096; + + Output_section_data* odata = new Output_data_const(interp, len, 1); + diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index 03392d265c..435689ea14 100755 +index 03392d265c7..435689ea144 100755 --- a/ld/genscripts.sh +++ b/ld/genscripts.sh @@ -304,6 +304,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}" @@ -43,10 +59,10 @@ index 03392d265c..435689ea14 100755 DATA_ALIGNMENT=${DATA_ALIGNMENT_} RELOCATING=" " diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc -index 0b8b32a440..ee6b71075d 100644 +index eb74743e5c3..c9a8a47615f 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc -@@ -140,8 +140,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then +@@ -143,8 +143,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);" fi fi @@ -57,3 +73,6 @@ index 0b8b32a440..ee6b71075d 100644 fi if test -z "$PLT"; then IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }" +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch index 91de94b76..41dff05b2 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch @@ -1,7 +1,8 @@ -From 6d79f81336e7cbe727b5a51134f5d314a455379d Mon Sep 17 00:00:00 2001 +From 0d14f8f333a9b519202246ce779f3e380491826c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 6 Mar 2017 23:37:05 -0800 -Subject: [PATCH] binutils-cross: Do not generate linker script directories +Subject: [PATCH 02/17] binutils-cross: Do not generate linker script + directories We don't place target libraries within ${exec_prefix}, we'd always place these within the target sysroot within the standard library directories. Worse, the @@ -22,7 +23,7 @@ Signed-off-by: Khem Raj 1 file changed, 25 deletions(-) diff --git a/ld/genscripts.sh b/ld/genscripts.sh -index 435689ea14..cff8a1467f 100755 +index 435689ea144..cff8a1467f9 100755 --- a/ld/genscripts.sh +++ b/ld/genscripts.sh @@ -235,31 +235,6 @@ append_to_lib_path() @@ -57,3 +58,6 @@ index 435689ea14..cff8a1467f 100755 if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then libs=${NATIVE_LIB_DIRS} if [ "x${NATIVE}" = "xyes" ] ; then +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch b/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch index 4b4d73d21..28daf58f7 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch @@ -1,8 +1,8 @@ -From d057b215f114f6158b4010ab44a19cae9dcc8386 Mon Sep 17 00:00:00 2001 +From 3bbec749ec9fe681ade6812c48c541a752fcffd5 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 19 Feb 2020 09:51:16 -0800 -Subject: [PATCH] binutils-nativesdk: Search for alternative ld.so.conf in SDK - installation +Subject: [PATCH 03/17] binutils-nativesdk: Search for alternative ld.so.conf + in SDK installation We need binutils to look at our ld.so.conf file within the SDK to ensure we search the SDK's libdirs as well as those from the host system. @@ -29,7 +29,7 @@ Signed-off-by: Khem Raj 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ld/Makefile.am b/ld/Makefile.am -index 4a9b8404b7..1c132d3ce4 100644 +index 02c4fc16395..a5762227f0a 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@ @@ -43,10 +43,10 @@ index 4a9b8404b7..1c132d3ce4 100644 NO_WERROR = @NO_WERROR@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) diff --git a/ld/Makefile.in b/ld/Makefile.in -index 46d9b14077..e453bc1b33 100644 +index 2fe12e14f63..8f0c83ac8d2 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in -@@ -555,7 +555,8 @@ ZLIB = @zlibdir@ -lz +@@ -548,7 +548,8 @@ ZLIB = @zlibdir@ -lz ZLIBINC = @zlibinc@ ELF_CLFAGS = -DELF_LIST_OPTIONS=@elf_list_options@ \ -DELF_SHLIB_LIST_OPTIONS=@elf_shlib_list_options@ \ @@ -55,25 +55,25 @@ index 46d9b14077..e453bc1b33 100644 + -DSYSCONFDIR="\"$(sysconfdir)\"" AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) - @ENABLE_PLUGINS_FALSE@PLUGIN_C = + diff --git a/ld/ldelf.c b/ld/ldelf.c -index 2e27cf48a8..a095d6aac5 100644 +index bada3ade2d7..b4784009d7a 100644 --- a/ld/ldelf.c +++ b/ld/ldelf.c -@@ -907,7 +907,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force, +@@ -911,7 +911,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force, info.path = NULL; info.len = info.alloc = 0; - tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf", -+ tmppath = concat (ld_sysconfdir, "/ld.so.conf", ++ tmppath = concat (ld_sysconfdir, "/etc/ld.so.conf", (const char *) NULL); if (!ldelf_parse_ld_so_conf (&info, tmppath)) { diff --git a/ld/ldmain.c b/ld/ldmain.c -index c4af10f4e9..da1ad17763 100644 +index 08be9030cb5..f5c5a336320 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c -@@ -69,6 +69,7 @@ char *program_name; +@@ -70,6 +70,7 @@ char *program_name; /* The prefix for system library directories. */ const char *ld_sysroot; @@ -82,7 +82,7 @@ index c4af10f4e9..da1ad17763 100644 /* The canonical representation of ld_sysroot. */ char *ld_canon_sysroot; diff --git a/ld/ldmain.h b/ld/ldmain.h -index 0f05821d1e..54c36a94ce 100644 +index ac7db5720d5..1cbe1771912 100644 --- a/ld/ldmain.h +++ b/ld/ldmain.h @@ -23,6 +23,7 @@ @@ -93,3 +93,6 @@ index 0f05821d1e..54c36a94ce 100644 extern char *ld_canon_sysroot; extern int ld_canon_sysroot_len; extern FILE *saved_script_handle; +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch b/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch index d10a144ed..2381c7b85 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0004-configure-widen-the-regexp-for-SH-architectures.patch @@ -1,7 +1,7 @@ -From f7ad8a44c10f01e03680f093fd7af71c9f5e8606 Mon Sep 17 00:00:00 2001 +From 361c2c313196c095d12d17cecf0a069107dd629b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:07:33 +0000 -Subject: [PATCH] configure: widen the regexp for SH architectures +Subject: [PATCH 04/17] configure: widen the regexp for SH architectures gprof needs to know about uclibc @@ -14,10 +14,10 @@ Signed-off-by: Khem Raj 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure -index 91dc42f6c7..7c1b747e7c 100755 +index 54d0339ab9e..6782f8b6ab8 100755 --- a/configure +++ b/configure -@@ -3915,7 +3915,7 @@ case "${target}" in +@@ -3937,7 +3937,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; @@ -27,10 +27,10 @@ index 91dc42f6c7..7c1b747e7c 100755 sh*-*-elf) ;; diff --git a/configure.ac b/configure.ac -index 4bd869a63a..7187b34dfc 100644 +index a910c4fd6ba..55beb1dea46 100644 --- a/configure.ac +++ b/configure.ac -@@ -1159,7 +1159,7 @@ case "${target}" in +@@ -1178,7 +1178,7 @@ case "${target}" in nvptx*-*-*) noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc" ;; @@ -39,3 +39,6 @@ index 4bd869a63a..7187b34dfc 100644 case "${target}" in sh*-*-elf) ;; +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch b/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch index 3ba0ba63f..c31a0bc9a 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0005-Point-scripts-location-to-libdir.patch @@ -1,7 +1,7 @@ -From 08b088b7dd3d9707ed66948a7271ffb438eeddf5 Mon Sep 17 00:00:00 2001 +From 39b478b7e52fb1b892a392f3c3750b9023cfabc8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:09:58 +0000 -Subject: [PATCH] Point scripts location to libdir +Subject: [PATCH 05/17] Point scripts location to libdir Upstream-Status: Inappropriate [debian patch] @@ -12,10 +12,10 @@ Signed-off-by: Khem Raj 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ld/Makefile.am b/ld/Makefile.am -index 1c132d3ce4..8d82cf2e16 100644 +index a5762227f0a..e1c665898f3 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am -@@ -64,7 +64,7 @@ endif +@@ -51,7 +51,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) # We put the scripts in the directory $(scriptdir)/ldscripts. # We can't put the scripts in $(datadir) because the SEARCH_DIR # directives need to be different for native and cross linkers. @@ -25,10 +25,10 @@ index 1c132d3ce4..8d82cf2e16 100644 EMUL = @EMUL@ EMULATION_OFILES = @EMULATION_OFILES@ diff --git a/ld/Makefile.in b/ld/Makefile.in -index e453bc1b33..2dcd72f809 100644 +index 8f0c83ac8d2..acc24ec4130 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in -@@ -573,7 +573,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) +@@ -556,7 +556,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) # We put the scripts in the directory $(scriptdir)/ldscripts. # We can't put the scripts in $(datadir) because the SEARCH_DIR # directives need to be different for native and cross linkers. @@ -37,3 +37,6 @@ index e453bc1b33..2dcd72f809 100644 BASEDIR = $(srcdir)/.. BFDDIR = $(BASEDIR)/bfd INCDIR = $(BASEDIR)/include +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch index d92072920..654b64ff7 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0006-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch @@ -1,7 +1,8 @@ -From 13791636abf518f0db209dc51c29445d80421f2e Mon Sep 17 00:00:00 2001 +From 59640ddf11104a604ccf7c078a48359d711c2f9c Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 2 Mar 2015 01:27:17 +0000 -Subject: [PATCH] Only generate an RPATH entry if LD_RUN_PATH is not empty +Subject: [PATCH 06/17] Only generate an RPATH entry if LD_RUN_PATH is not + empty for cases where -rpath isn't specified. debian (#151024) @@ -14,10 +15,10 @@ Signed-off-by: Khem Raj 1 file changed, 4 insertions(+) diff --git a/ld/ldelf.c b/ld/ldelf.c -index a095d6aac5..a2455a8793 100644 +index b4784009d7a..541772f4604 100644 --- a/ld/ldelf.c +++ b/ld/ldelf.c -@@ -1229,6 +1229,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd, +@@ -1247,6 +1247,8 @@ ldelf_after_open (int use_libpath, int native, int is_linux, int is_freebsd, && command_line.rpath == NULL) { path = (const char *) getenv ("LD_RUN_PATH"); @@ -26,7 +27,7 @@ index a095d6aac5..a2455a8793 100644 if (path && ldelf_search_needed (path, &n, force, is_linux, elfsize)) -@@ -1573,6 +1575,8 @@ ldelf_before_allocation (char *audit, char *depaudit, +@@ -1605,6 +1607,8 @@ ldelf_before_allocation (char *audit, char *depaudit, rpath = command_line.rpath; if (rpath == NULL) rpath = (const char *) getenv ("LD_RUN_PATH"); @@ -35,3 +36,6 @@ index a095d6aac5..a2455a8793 100644 for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch b/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch deleted file mode 100644 index 89da62fbf..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0007-Use-libtool-2.4.patch +++ /dev/null @@ -1,21234 +0,0 @@ -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/poky/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/poky/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch new file mode 100644 index 000000000..7f8fc9a5c --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0007-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch @@ -0,0 +1,35 @@ +From 2b81508b9af76db292cd756432b03035cb8157e0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:39:01 +0000 +Subject: [PATCH 07/17] don't let the distro compiler point to the wrong + installation location + +Thanks to RP for helping find the source code causing the issue. + +2010/08/13 +Nitin A Kamble + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Khem Raj +--- + libiberty/Makefile.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in +index 895f701bcd0..97a53f15bb6 100644 +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -367,7 +367,8 @@ install-strip: install + # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the + # default multilib, so we have to take CFLAGS into account as well, + # since it will be passed the multilib flags. +-MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` ++#MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` ++MULTIOSDIR = "" + install_to_libdir: all + if test -n "${target_header_dir}"; then \ + ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch deleted file mode 100644 index b0e94ab1c..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e36a4e05f900bbe6a8d744a93f3a407bc55c96f7 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 01:39:01 +0000 -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. - -2010/08/13 -Nitin A Kamble - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Khem Raj ---- - libiberty/Makefile.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in -index fe738d0db4..27d818f253 100644 ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -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. --MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+#MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory` -+MULTIOSDIR = "" - install_to_libdir: all - if test -n "${target_header_dir}"; then \ - ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \ diff --git a/poky/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch b/poky/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch new file mode 100644 index 000000000..2356c6a60 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0008-warn-for-uses-of-system-directories-when-cross-linki.patch @@ -0,0 +1,287 @@ +From 413075afbdb16e7cc05511682ca9e3c880acb5a7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 Jan 2016 06:31:09 +0000 +Subject: [PATCH 08/17] warn for uses of system directories when cross linking + +2008-07-02 Joseph Myers + + ld/ + * ld.h (args_type): Add error_poison_system_directories. + * ld.texinfo (--error-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.error_poison_system_directories. + * ldmain.c (main): Initialize + command_line.error_poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --error-poison-system-directories. + (parse_args): Handle new option. + +2007-06-13 Joseph Myers + + ld/ + * config.in: Regenerate. + * ld.h (args_type): Add poison_system_directories. + * ld.texinfo (--no-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.poison_system_directories. + * ldmain.c (main): Initialize + command_line.poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_NO_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --no-poison-system-directories. + (parse_args): Handle new option. + +2007-04-20 Joseph Myers + + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers + Based on patch by Mark Hatle . + ld/ + * configure.in (--enable-poison-system-directories): New option. + * configure, config.in: Regenerate. + * ldfile.c (ldfile_add_library_path): If + ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, + /usr/lib, /usr/local/lib or /usr/X11R6/lib. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle +Signed-off-by: Scott Garman +Signed-off-by: Khem Raj +--- + ld/config.in | 3 +++ + ld/configure | 16 ++++++++++++++++ + ld/configure.ac | 10 ++++++++++ + ld/ld.h | 8 ++++++++ + ld/ld.texi | 12 ++++++++++++ + ld/ldfile.c | 17 +++++++++++++++++ + ld/ldlex.h | 5 +++++ + ld/ldmain.c | 2 ++ + ld/lexsup.c | 27 +++++++++++++++++++++++++++ + 9 files changed, 100 insertions(+) + +diff --git a/ld/config.in b/ld/config.in +index f1712107367..308e0173c16 100644 +--- a/ld/config.in ++++ b/ld/config.in +@@ -40,6 +40,9 @@ + language is requested. */ + #undef ENABLE_NLS + ++/* Define to warn for use of native system library directories */ ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++ + /* Additional extension a shared object might have. */ + #undef EXTRA_SHLIB_EXTENSION + +diff --git a/ld/configure b/ld/configure +index f08ce9969ea..1c872c0db5f 100755 +--- a/ld/configure ++++ b/ld/configure +@@ -826,6 +826,7 @@ with_lib_path + enable_targets + enable_64_bit_bfd + with_sysroot ++enable_poison_system_directories + enable_gold + enable_got + enable_compressed_debug_sections +@@ -1493,6 +1494,8 @@ Optional Features: + --disable-largefile omit support for large files + --enable-targets alternative target configurations + --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) ++ --enable-poison-system-directories ++ warn for use of native system library directories + --enable-gold[=ARG] build gold [ARG={default,yes,no}] + --enable-got= GOT handling scheme (target, single, negative, + multigot) +@@ -15793,6 +15796,19 @@ 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 ++ + # Check whether --enable-gold was given. + if test "${enable_gold+set}" = set; then : + enableval=$enable_gold; case "${enableval}" in +diff --git a/ld/configure.ac b/ld/configure.ac +index 5a4938afdb0..dbbbde74b04 100644 +--- a/ld/configure.ac ++++ b/ld/configure.ac +@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) + AC_SUBST(TARGET_SYSTEM_ROOT) + AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system library 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 library directories]) ++fi ++ + dnl Use --enable-gold to decide if this linker should be the default. + 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 1790dc81a66..73f832eb169 100644 +--- a/ld/ld.h ++++ b/ld/ld.h +@@ -166,6 +166,14 @@ typedef struct + in the linker script. */ + bfd_boolean force_group_allocation; + ++ /* If TRUE (the default) warn for uses of system directories when ++ cross linking. */ ++ bfd_boolean poison_system_directories; ++ ++ /* If TRUE (default FALSE) give an error for uses of system ++ directories when cross linking instead of a warning. */ ++ bfd_boolean error_poison_system_directories; ++ + /* Big or little endian as set on command line. */ + enum endian_enum endian; + +diff --git a/ld/ld.texi b/ld/ld.texi +index 2a93e9456ac..3eeb70607fd 100644 +--- a/ld/ld.texi ++++ b/ld/ld.texi +@@ -2655,6 +2655,18 @@ string identifying the original linked file does not change. + + Passing @code{none} for @var{style} disables the setting from any + @code{--build-id} options earlier on the command line. ++ ++@kindex --no-poison-system-directories ++@item --no-poison-system-directories ++Do not warn for @option{-L} options using system directories such as ++@file{/usr/lib} when cross linking. This option is intended for use ++in chroot environments when such directories contain the correct ++libraries for the target system rather than the host. ++ ++@kindex --error-poison-system-directories ++@item --error-poison-system-directories ++Give an error instead of a warning for @option{-L} options using ++system directories when cross linking. + @end table + + @c man end +diff --git a/ld/ldfile.c b/ld/ldfile.c +index e39170b5d94..fadc248a140 100644 +--- a/ld/ldfile.c ++++ b/ld/ldfile.c +@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline) + new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL); + else + new_dirs->name = xstrdup (name); ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (command_line.poison_system_directories ++ && ((!strncmp (name, "/lib", 4)) ++ || (!strncmp (name, "/usr/lib", 8)) ++ || (!strncmp (name, "/usr/local/lib", 14)) ++ || (!strncmp (name, "/usr/X11R6/lib", 14)))) ++ { ++ if (command_line.error_poison_system_directories) ++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ else ++ einfo (_("%P: warning: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ } ++#endif ++ + } + + /* Try to open a BFD for a lang_input_statement. */ +diff --git a/ld/ldlex.h b/ld/ldlex.h +index 5ea083ebeb3..941dc5f3dc8 100644 +--- a/ld/ldlex.h ++++ b/ld/ldlex.h +@@ -155,6 +155,11 @@ enum option_values + OPTION_NON_CONTIGUOUS_REGIONS, + OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS, + OPTION_DEPENDENCY_FILE, ++ OPTION_CTF_VARIABLES, ++ OPTION_NO_CTF_VARIABLES, ++ OPTION_CTF_SHARE_TYPES, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES, ++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, + }; + + /* The initial parser states. */ +diff --git a/ld/ldmain.c b/ld/ldmain.c +index f5c5a336320..516ba0360e2 100644 +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -322,6 +322,8 @@ main (int argc, char **argv) + command_line.warn_mismatch = TRUE; + command_line.warn_search_mismatch = TRUE; + command_line.check_section_addresses = -1; ++ command_line.poison_system_directories = TRUE; ++ command_line.error_poison_system_directories = FALSE; + + /* 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 58c6c078325..879e7bb7658 100644 +--- a/ld/lexsup.c ++++ b/ld/lexsup.c +@@ -572,6 +572,26 @@ static const struct ld_option ld_options[] = + { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED}, + '\0', NULL, N_("Do not show discarded sections in map file output"), + TWO_DASHES }, ++ { {"ctf-variables", no_argument, NULL, OPTION_CTF_VARIABLES}, ++ '\0', NULL, N_("Emit names and types of static variables in CTF"), ++ TWO_DASHES }, ++ { {"no-ctf-variables", no_argument, NULL, OPTION_NO_CTF_VARIABLES}, ++ '\0', NULL, N_("Do not emit names and types of static variables in CTF"), ++ TWO_DASHES }, ++ { {"ctf-share-types=", required_argument, NULL, ++ OPTION_CTF_SHARE_TYPES}, ++ '\0', NULL, N_("How to share CTF types between translation units.\n" ++ " is: share-unconflicted (default),\n" ++ " share-duplicated"), ++ TWO_DASHES }, ++ { {"no-poison-system-directories", no_argument, NULL, ++ OPTION_NO_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Do not warn for -L options using system directories"), ++ TWO_DASHES }, ++ { {"error-poison-system-directories", no_argument, NULL, ++ + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, ++ '\0', NULL, N_("Give an error for -L options using system directories"), ++ TWO_DASHES }, + }; + + #define OPTION_COUNT ARRAY_SIZE (ld_options) +@@ -1632,6 +1652,13 @@ parse_args (unsigned argc, char **argv) + + case OPTION_PRINT_MAP_DISCARDED: + config.print_map_discarded = TRUE; ++ ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; ++ ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; + break; + + case OPTION_DEPENDENCY_FILE: +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch b/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch new file mode 100644 index 000000000..fb5276e18 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0009-Change-default-emulation-for-mips64-linux.patch @@ -0,0 +1,60 @@ +From 13a67e9040c01abd284fe506471e0eab668ee3dc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:44:14 +0000 +Subject: [PATCH 09/17] Change default emulation for mips64*-*-linux + +we change the default emulations to be N64 instead of N32 + +Upstream-Status: Inappropriate [ OE configuration Specific] + +Signed-off-by: Khem Raj +--- + bfd/config.bfd | 8 ++++---- + ld/configure.tgt | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/bfd/config.bfd b/bfd/config.bfd +index 14523caf0c5..e5233cd1f7e 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -894,12 +894,12 @@ case "${targ}" in + targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" + ;; + mips64*el-*-linux*) +- targ_defvec=mips_elf32_ntrad_le_vec +- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" ++ targ_defvec=mips_elf64_trad_le_vec ++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec" + ;; + mips64*-*-linux*) +- targ_defvec=mips_elf32_ntrad_be_vec +- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" ++ targ_defvec=mips_elf64_trad_be_vec ++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" + ;; + mips*el-*-linux*) + targ_defvec=mips_elf32_trad_le_vec +diff --git a/ld/configure.tgt b/ld/configure.tgt +index 87c7d9a4cad..9b4bf2ca964 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -531,12 +531,12 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks + ;; + mips*-*-windiss) targ_emul=elf32mipswindiss + ;; +-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 +- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" ++mips64*el-*-linux-*) targ_emul=elf64ltsmip ++ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" + targ_extra_libpath=$targ_extra_emuls + ;; +-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 + ;; + mips*el-*-linux-*) targ_emul=elf32ltsmip +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch b/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch deleted file mode 100644 index 11a8110d4..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch +++ /dev/null @@ -1,269 +0,0 @@ -From 7b24f81e04c9d00d96de7dbd250beade6d2c6e44 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 15 Jan 2016 06:31:09 +0000 -Subject: [PATCH] warn for uses of system directories when cross linking - -2008-07-02 Joseph Myers - - ld/ - * ld.h (args_type): Add error_poison_system_directories. - * ld.texinfo (--error-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.error_poison_system_directories. - * ldmain.c (main): Initialize - command_line.error_poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --error-poison-system-directories. - (parse_args): Handle new option. - -2007-06-13 Joseph Myers - - ld/ - * config.in: Regenerate. - * ld.h (args_type): Add poison_system_directories. - * ld.texinfo (--no-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.poison_system_directories. - * ldmain.c (main): Initialize - command_line.poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_NO_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --no-poison-system-directories. - (parse_args): Handle new option. - -2007-04-20 Joseph Myers - - Merge from Sourcery G++ binutils 2.17: - - 2007-03-20 Joseph Myers - Based on patch by Mark Hatle . - ld/ - * configure.in (--enable-poison-system-directories): New option. - * configure, config.in: Regenerate. - * ldfile.c (ldfile_add_library_path): If - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, - /usr/lib, /usr/local/lib or /usr/X11R6/lib. - -Upstream-Status: Pending - -Signed-off-by: Mark Hatle -Signed-off-by: Scott Garman -Signed-off-by: Khem Raj ---- - ld/config.in | 3 +++ - ld/configure | 16 ++++++++++++++++ - ld/configure.ac | 10 ++++++++++ - ld/ld.h | 8 ++++++++ - ld/ld.texi | 12 ++++++++++++ - ld/ldfile.c | 17 +++++++++++++++++ - ld/ldlex.h | 2 ++ - ld/ldmain.c | 2 ++ - ld/lexsup.c | 15 +++++++++++++++ - 9 files changed, 85 insertions(+) - -diff --git a/ld/config.in b/ld/config.in -index d93c9b0830..5da2742bea 100644 ---- a/ld/config.in -+++ b/ld/config.in -@@ -31,6 +31,9 @@ - language is requested. */ - #undef ENABLE_NLS - -+/* Define to warn for use of native system library directories */ -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+ - /* Additional extension a shared object might have. */ - #undef EXTRA_SHLIB_EXTENSION - -diff --git a/ld/configure b/ld/configure -index 811134a503..f8c17c19ae 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -826,6 +826,7 @@ with_lib_path - enable_targets - enable_64_bit_bfd - with_sysroot -+enable_poison_system_directories - enable_gold - enable_got - enable_compressed_debug_sections -@@ -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) -+ --enable-poison-system-directories -+ warn for use of native system library directories - --enable-gold[=ARG] build gold [ARG={default,yes,no}] - --enable-got= GOT handling scheme (target, single, negative, - multigot) -@@ -15788,6 +15791,19 @@ 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 -+ - # Check whether --enable-gold was given. - if test "${enable_gold+set}" = set; then : - enableval=$enable_gold; case "${enableval}" in -diff --git a/ld/configure.ac b/ld/configure.ac -index b5e849d84a..22e022ec03 100644 ---- a/ld/configure.ac -+++ b/ld/configure.ac -@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot) - AC_SUBST(TARGET_SYSTEM_ROOT) - AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system library 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 library directories]) -+fi -+ - dnl Use --enable-gold to decide if this linker should be the default. - dnl "install_as_default" is set to false if gold is the default linker. - dnl "installed_linker" is the installed BFD linker name. -diff --git a/ld/ld.h b/ld/ld.h -index 71fd781267..5c7843100b 100644 ---- a/ld/ld.h -+++ b/ld/ld.h -@@ -166,6 +166,14 @@ typedef struct - in the linker script. */ - bfd_boolean force_group_allocation; - -+ /* If TRUE (the default) warn for uses of system directories when -+ cross linking. */ -+ bfd_boolean poison_system_directories; -+ -+ /* If TRUE (default FALSE) give an error for uses of system -+ directories when cross linking instead of a warning. */ -+ bfd_boolean error_poison_system_directories; -+ - /* Big or little endian as set on command line. */ - enum endian_enum endian; - -diff --git a/ld/ld.texi b/ld/ld.texi -index eb7bcb9933..3c73d445a0 100644 ---- a/ld/ld.texi -+++ b/ld/ld.texi -@@ -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. -+ -+@kindex --no-poison-system-directories -+@item --no-poison-system-directories -+Do not warn for @option{-L} options using system directories such as -+@file{/usr/lib} when cross linking. This option is intended for use -+in chroot environments when such directories contain the correct -+libraries for the target system rather than the host. -+ -+@kindex --error-poison-system-directories -+@item --error-poison-system-directories -+Give an error instead of a warning for @option{-L} options using -+system directories when cross linking. - @end table - - @c man end -diff --git a/ld/ldfile.c b/ld/ldfile.c -index 411f7ddf97..17db16c2cc 100644 ---- a/ld/ldfile.c -+++ b/ld/ldfile.c -@@ -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); -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (command_line.poison_system_directories -+ && ((!strncmp (name, "/lib", 4)) -+ || (!strncmp (name, "/usr/lib", 8)) -+ || (!strncmp (name, "/usr/local/lib", 14)) -+ || (!strncmp (name, "/usr/X11R6/lib", 14)))) -+ { -+ if (command_line.error_poison_system_directories) -+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ else -+ einfo (_("%P: warning: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ } -+#endif -+ - } - - /* Try to open a BFD for a lang_input_statement. */ -diff --git a/ld/ldlex.h b/ld/ldlex.h -index 5287f19a7f..55096e4fc9 100644 ---- a/ld/ldlex.h -+++ b/ld/ldlex.h -@@ -150,6 +150,8 @@ enum option_values - OPTION_FORCE_GROUP_ALLOCATION, - OPTION_PRINT_MAP_DISCARDED, - OPTION_NO_PRINT_MAP_DISCARDED, -+ OPTION_NO_POISON_SYSTEM_DIRECTORIES, -+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES, - }; - - /* The initial parser states. */ -diff --git a/ld/ldmain.c b/ld/ldmain.c -index da1ad17763..12d0b07d8a 100644 ---- a/ld/ldmain.c -+++ b/ld/ldmain.c -@@ -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; -+ command_line.poison_system_directories = TRUE; -+ command_line.error_poison_system_directories = FALSE; - - /* We initialize DEMANGLING based on the environment variable - COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -diff --git a/ld/lexsup.c b/ld/lexsup.c -index 3d15cc491d..0e8b4f2b7a 100644 ---- a/ld/lexsup.c -+++ b/ld/lexsup.c -@@ -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}, -+ '\0', NULL, N_("Do not warn for -L options using system directories"), -+ TWO_DASHES }, -+ { {"error-poison-system-directories", no_argument, NULL, -+ + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES}, -+ '\0', NULL, N_("Give an error for -L options using system directories"), -+ TWO_DASHES }, - }; - - #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -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; -+ break; -+ -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; - break; - } - } diff --git a/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch b/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch new file mode 100644 index 000000000..277db4ec5 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0010-Add-support-for-Netlogic-XLP.patch @@ -0,0 +1,409 @@ +From 69ab45c16f80f18fa78121f6e774750b9e9a200b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 14 Feb 2016 17:06:19 +0000 +Subject: [PATCH 10/17] Add support for Netlogic XLP + +Patch From: Nebu Philips + +Using the mipsisa64r2nlm target, add support for XLP from +Netlogic. Also, update vendor name to NLM wherever applicable. + +Use 0x00000080 for INSN_XLP, the value 0x00000040 has already been +assigned to INSN_OCTEON3 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +Signed-off-by: Baoshan Pang +Signed-off-by: Mark Hatle +--- + bfd/aoutx.h | 1 + + bfd/archures.c | 1 + + bfd/bfd-in2.h | 1 + + bfd/config.bfd | 5 +++++ + bfd/cpu-mips.c | 6 ++++-- + bfd/elfxx-mips.c | 8 ++++++++ + 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 | 3 +++ + opcodes/mips-dis.c | 12 +++++------- + opcodes/mips-opc.c | 31 ++++++++++++++++++++----------- + 15 files changed, 65 insertions(+), 21 deletions(-) + +diff --git a/bfd/aoutx.h b/bfd/aoutx.h +index d352a1a3e44..2e2c3c1af86 100644 +--- a/bfd/aoutx.h ++++ b/bfd/aoutx.h +@@ -810,6 +810,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch, + case bfd_mach_mipsisa64r6: + case bfd_mach_mips_sb1: + case bfd_mach_mips_xlr: ++ case bfd_mach_mips_xlp: + /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */ + arch_flags = M_MIPS2; + break; +diff --git a/bfd/archures.c b/bfd/archures.c +index 551ec8732f0..2665b378623 100644 +--- a/bfd/archures.c ++++ b/bfd/archures.c +@@ -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'. *} ++.#define bfd_mach_mips_xlp 887680 {* decimal 'XLP'. *} + .#define bfd_mach_mipsisa32 32 + .#define bfd_mach_mipsisa32r2 33 + .#define bfd_mach_mipsisa32r3 34 +diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h +index 35ef4d755bb..48db00af80b 100644 +--- a/bfd/bfd-in2.h ++++ b/bfd/bfd-in2.h +@@ -1585,6 +1585,7 @@ enum bfd_architecture + #define bfd_mach_mips_octeon3 6503 + #define bfd_mach_mips_xlr 887682 /* decimal 'XLR'. */ + #define bfd_mach_mips_interaptiv_mr2 736550 /* decimal 'IA2'. */ ++#define bfd_mach_mips_xlp 887680 /* decimal 'XLP'. */ + #define bfd_mach_mipsisa32 32 + #define bfd_mach_mipsisa32r2 33 + #define bfd_mach_mipsisa32r3 34 +diff --git a/bfd/config.bfd b/bfd/config.bfd +index e5233cd1f7e..2e4ae6bbdff 100644 +--- a/bfd/config.bfd ++++ b/bfd/config.bfd +@@ -877,6 +877,11 @@ case "${targ}" in + targ_defvec=mips_elf32_le_vec + targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" + ;; ++ mipsisa64*-*-elf*) ++ targ_defvec=mips_elf32_trad_be_vec ++ targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" ++ want64=true ++ ;; + mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none) + 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 802acb45f1e..fd9ec4c0ad4 100644 +--- a/bfd/cpu-mips.c ++++ b/bfd/cpu-mips.c +@@ -108,7 +108,8 @@ enum + I_mipsocteon3, + I_xlr, + I_interaptiv_mr2, +- I_micromips ++ I_micromips, ++ I_xlp + }; + + #define NN(index) (&arch_info_struct[(index) + 1]) +@@ -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, 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 160febec94c..4c9499cc2cf 100644 +--- a/bfd/elfxx-mips.c ++++ b/bfd/elfxx-mips.c +@@ -6982,6 +6982,9 @@ _bfd_elf_mips_mach (flagword flags) + case E_MIPS_MACH_IAMR2: + return bfd_mach_mips_interaptiv_mr2; + ++ case E_MIPS_MACH_XLP: ++ return bfd_mach_mips_xlp; ++ + default: + switch (flags & EF_MIPS_ARCH) + { +@@ -12356,6 +12359,10 @@ mips_set_isa_flags (bfd *abfd) + val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; + break; + ++ case bfd_mach_mips_xlp: ++ val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_XLP; ++ break; ++ + case bfd_mach_mipsisa32: + val = E_MIPS_ARCH_32; + break; +@@ -14373,6 +14380,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = + { bfd_mach_mips_gs264e, bfd_mach_mips_gs464e }, + { bfd_mach_mips_gs464e, bfd_mach_mips_gs464 }, + { bfd_mach_mips_gs464, bfd_mach_mipsisa64r2 }, ++ { 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 6057515a89b..ea119b0b254 100644 +--- a/binutils/readelf.c ++++ b/binutils/readelf.c +@@ -3483,6 +3483,7 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine) + case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break; + case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break; + case E_MIPS_MACH_IAMR2: strcat (buf, ", interaptiv-mr2"); break; ++ case E_MIPS_MACH_XLP: strcat (buf, ", xlp"); break; + case 0: + /* 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 31acb77d78a..0ead168d51e 100644 +--- a/gas/config/tc-mips.c ++++ b/gas/config/tc-mips.c +@@ -568,6 +568,7 @@ static int mips_32bitmode = 0; + || mips_opts.arch == CPU_RM7000 \ + || mips_opts.arch == CPU_VR5500 \ + || mips_opts.micromips \ ++ || mips_opts.arch == CPU_XLP \ + ) + + /* Whether the processor uses hardware interlocks to protect reads +@@ -597,6 +598,7 @@ static int mips_32bitmode = 0; + && mips_opts.isa != ISA_MIPS3) \ + || mips_opts.arch == CPU_R4300 \ + || mips_opts.micromips \ ++ || mips_opts.arch == CPU_XLP \ + ) + + /* Whether the processor uses hardware interlocks to protect reads +@@ -20174,7 +20176,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] = + /* Broadcom XLP. + XLP is mostly like XLR, with the prominent exception that it is + MIPS64R2 rather than MIPS64. */ +- { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLR }, ++ { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLP }, + + /* MIPS 64 Release 6. */ + { "i6400", 0, ASE_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6}, +diff --git a/gas/configure b/gas/configure +index 5bccfd9d1b7..d4b13e6fc8b 100755 +--- a/gas/configure ++++ b/gas/configure +@@ -12722,6 +12722,9 @@ _ACEOF + mipsisa64r6 | mipsisa64r6el) + mips_cpu=mips64r6 + ;; ++ mipsisa64r2nlm | mipsisa64r2nlmel) ++ mips_cpu=xlp ++ ;; + mipstx39 | mipstx39el) + mips_cpu=r3900 + ;; +diff --git a/gas/configure.ac b/gas/configure.ac +index b65108fecb2..ce1f2dad9bc 100644 +--- a/gas/configure.ac ++++ b/gas/configure.ac +@@ -325,6 +325,9 @@ changequote([,])dnl + mipsisa64r6 | mipsisa64r6el) + mips_cpu=mips64r6 + ;; ++ mipsisa64r2nlm | mipsisa64r2nlmel) ++ mips_cpu=xlp ++ ;; + mipstx39 | mipstx39el) + mips_cpu=r3900 + ;; +diff --git a/include/elf/mips.h b/include/elf/mips.h +index cc08ebd4318..bb518575ce1 100644 +--- a/include/elf/mips.h ++++ b/include/elf/mips.h +@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext) + #define E_MIPS_MACH_SB1 0x008a0000 + #define E_MIPS_MACH_OCTEON 0x008b0000 + #define E_MIPS_MACH_XLR 0x008c0000 ++#define E_MIPS_MACH_XLP 0x008f0000 + #define E_MIPS_MACH_OCTEON2 0x008d0000 + #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 fd031f37588..a96a44df840 100644 +--- a/include/opcode/mips.h ++++ b/include/opcode/mips.h +@@ -1260,6 +1260,8 @@ static const unsigned int mips_isa_table[] = { + #define INSN_XLR 0x00000020 + /* Imagination interAptiv MR2. */ + #define INSN_INTERAPTIV_MR2 0x04000000 ++/* Netlogic XlP instruction */ ++#define INSN_XLP 0x00000080 + + /* DSP ASE */ + #define ASE_DSP 0x00000001 +@@ -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' */ ++#define CPU_XLP 887680 /* decimal 'XLP' */ + + /* Return true if the given CPU is included in INSN_* mask 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); + ++ case CPU_XLP: ++ return (mask & INSN_XLP) != 0; ++ + default: + return FALSE; + } +diff --git a/ld/configure.tgt b/ld/configure.tgt +index 9b4bf2ca964..f6d7171dff7 100644 +--- a/ld/configure.tgt ++++ b/ld/configure.tgt +@@ -510,6 +510,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) + targ_emul=elf32btsmip + targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" + ;; ++mipsisa64*-*-elf*) targ_emul=elf32btsmip ++ targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip" ++ ;; + mips64*el-ps2-elf*) targ_emul=elf32lr5900n32 + targ_extra_emuls="elf32lr5900" + targ_extra_libpath=$targ_extra_emuls +diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c +index 755bbe294bd..ce22ef683a6 100644 +--- a/opcodes/mips-dis.c ++++ b/opcodes/mips-dis.c +@@ -674,13 +674,11 @@ const struct mips_arch_choice mips_arch_choices[] = + mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), + mips_cp1_names_mips3264, mips_hwr_names_numeric }, + +- /* XLP is mostly like XLR, with the prominent exception it is being +- MIPS64R2. */ +- { "xlp", 1, bfd_mach_mips_xlr, CPU_XLR, +- ISA_MIPS64R2 | INSN_XLR, 0, +- mips_cp0_names_xlr, +- mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), +- mips_cp1_names_mips3264, mips_hwr_names_numeric }, ++ { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP, ++ ISA_MIPS64R2 | INSN_XLP, 0, ++ mips_cp0_names_mips3264r2, ++ mips_cp0sel_names_mips3264r2, ARRAY_SIZE (mips_cp0sel_names_mips3264r2), ++ mips_cp1_names_mips3264, mips_hwr_names_mips3264r2 }, + + /* 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 5270aeefa80..d17dc78cd71 100644 +--- a/opcodes/mips-opc.c ++++ b/opcodes/mips-opc.c +@@ -328,6 +328,7 @@ decode_mips_operand (const char *p) + #define IOCT3 INSN_OCTEON3 + #define XLR INSN_XLR + #define IAMR2 INSN_INTERAPTIV_MR2 ++#define XLP INSN_XLP + #define IVIRT ASE_VIRT + #define IVIRT64 ASE_VIRT64 + +@@ -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 }, ++{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, + /* 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 }, +@@ -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 }, +-{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 }, ++{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR|XLP, 0, 0 }, + {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5, 0, 0 }, + {"dclo", "d,s", 0x00000053, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, + {"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, + {"dclz", "d,s", 0x00000052, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, + {"dclz", "U,s", 0x70000024, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, ++{"dcrc", "d,s,t", 0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, + /* 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 }, +@@ -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 }, ++{"dmfur", "t,d", 0x7000001e, 0xffe007ff, WR_1, 0, XLP, 0, 0 }, + {"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 }, +@@ -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 }, ++{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 }, ++{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, + {"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 }, +@@ -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 }, +-{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, +-{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, +-{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, ++{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, ++{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, ++{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, + {"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 }, +@@ -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 }, +-{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 }, ++{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR|XLP, 0, 0 }, + {"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 }, +@@ -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 }, ++{"msgsnds", "d,t", 0x4a000001, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, + {"msgld", "", 0, (int) M_MSGLD, INSN_MACRO, 0, XLR, 0, 0 }, + {"msgld", "t", 0, (int) M_MSGLD_T, INSN_MACRO, 0, XLR, 0, 0 }, +-{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR, 0, 0 }, +-{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR, 0, 0 }, ++{"msglds", "d,t", 0x4a000002, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, ++{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR|XLP, 0, 0 }, ++{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR|XLP, 0, 0 }, ++{"msgsync", "", 0x4a000004, 0xffffffff,0, 0, XLP, 0, 0 }, + {"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 }, +@@ -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 }, +-{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 }, ++{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR|XLP, 0, 0 }, + {"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 }, +@@ -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 }, +-{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, +-{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, +-{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, ++{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, ++{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, ++{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, + {"swc0", "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, + {"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 }, + {"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 }, +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch deleted file mode 100644 index f4f1a068c..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 70f3f2d9e912ea777fa113e02cdbc3465a66e40d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 01:42:38 +0000 -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 -sysroot. This works around the issue until it gets sorted out -upstream. - -Fix suggested by Richard Purdie - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Scott Garman -Signed-off-by: Khem Raj ---- - ltmain.sh | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/ltmain.sh b/ltmain.sh -index 70e856e065..11ee684ccc 100644 ---- a/ltmain.sh -+++ b/ltmain.sh -@@ -8035,9 +8035,11 @@ EOF - test "$opt_mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - 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 -@@ -8770,6 +8772,10 @@ EOF - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do - if test -n "$hardcode_libdir_flag_spec"; then -+ func_replace_sysroot "$libdir" -+ libdir=$func_replace_sysroot_result -+ func_stripname '=' '' "$libdir" -+ libdir=$func_stripname_result - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - hardcode_libdirs="$libdir" diff --git a/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch b/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch deleted file mode 100644 index c49b8e863..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 2182791a453f34bee6968b3e72848608cf7d7abe Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 2 Mar 2015 01:44:14 +0000 -Subject: [PATCH] Change default emulation for mips64*-*-linux - -we change the default emulations to be N64 instead of N32 - -Upstream-Status: Inappropriate [ OE configuration Specific] - -Signed-off-by: Khem Raj ---- - bfd/config.bfd | 8 ++++---- - ld/configure.tgt | 8 ++++---- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/bfd/config.bfd b/bfd/config.bfd -index b96931f52e..847f9f0ba9 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -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*) -- targ_defvec=mips_elf32_ntrad_le_vec -- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" -+ targ_defvec=mips_elf64_trad_le_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec" - ;; - mips64*-*-linux*) -- targ_defvec=mips_elf32_ntrad_be_vec -- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" -+ targ_defvec=mips_elf64_trad_be_vec -+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_be_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" - ;; - mips*el-*-linux*) - targ_defvec=mips_elf32_trad_le_vec -diff --git a/ld/configure.tgt b/ld/configure.tgt -index 23194e357f..f4f0eaf9b2 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -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 - ;; --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 - ;; - mips*el-*-linux-*) targ_emul=elf32ltsmip diff --git a/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch new file mode 100644 index 000000000..10c3d8086 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0011-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch @@ -0,0 +1,37 @@ +From 7836f8aa56ef0f18c8658dc7e4952a9d097ba7e8 Mon Sep 17 00:00:00 2001 +From: Zhenhua Luo +Date: Sat, 11 Jun 2016 22:08:29 -0500 +Subject: [PATCH 11/17] fix the incorrect assembling for ppc wait mnemonic + +Signed-off-by: Zhenhua Luo + +Upstream-Status: Pending +--- + opcodes/ppc-opc.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c +index 5e20d617664..4c9656ecf08 100644 +--- a/opcodes/ppc-opc.c ++++ b/opcodes/ppc-opc.c +@@ -6265,8 +6265,6 @@ const struct powerpc_opcode powerpc_opcodes[] = { + {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, + {"waitrsv", XWCPL(31,30,1,0),0xffffffff, POWER10, 0, {0}}, + {"pause_short", XWCPL(31,30,2,0),0xffffffff, POWER10, 0, {0}}, +-{"wait", X(31,30), XWCPL_MASK, POWER10, 0, {WC, PL}}, +-{"wait", X(31,30), XWC_MASK, POWER9, POWER10, {WC}}, + + {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, + +@@ -6326,7 +6324,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { + + {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, + {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, +-{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}}, ++{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9|POWER10, 0, {WC}}, + + {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, + +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch b/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch deleted file mode 100644 index c32867a23..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch +++ /dev/null @@ -1,406 +0,0 @@ -From a0237ec2d1e58bd35c236df39dd5a06504c6d2ed Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sun, 14 Feb 2016 17:06:19 +0000 -Subject: [PATCH] Add support for Netlogic XLP - -Patch From: Nebu Philips - -Using the mipsisa64r2nlm target, add support for XLP from -Netlogic. Also, update vendor name to NLM wherever applicable. - -Use 0x00000080 for INSN_XLP, the value 0x00000040 has already been -assigned to INSN_OCTEON3 - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -Signed-off-by: Baoshan Pang -Signed-off-by: Mark Hatle ---- - bfd/aoutx.h | 1 + - bfd/archures.c | 1 + - bfd/bfd-in2.h | 1 + - bfd/config.bfd | 5 +++++ - bfd/cpu-mips.c | 6 ++++-- - bfd/elfxx-mips.c | 8 ++++++++ - 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 | 3 +++ - opcodes/mips-dis.c | 12 +++++------- - opcodes/mips-opc.c | 31 ++++++++++++++++++++----------- - 15 files changed, 65 insertions(+), 21 deletions(-) - -diff --git a/bfd/aoutx.h b/bfd/aoutx.h -index fa3a9746b6..5078024fd5 100644 ---- a/bfd/aoutx.h -+++ b/bfd/aoutx.h -@@ -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: -+ case bfd_mach_mips_xlp: - /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc. */ - arch_flags = M_MIPS2; - break; -diff --git a/bfd/archures.c b/bfd/archures.c -index 232103817c..b2b3b8c124 100644 ---- a/bfd/archures.c -+++ b/bfd/archures.c -@@ -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'. *} -+.#define bfd_mach_mips_xlp 887680 {* decimal 'XLP'. *} - .#define bfd_mach_mipsisa32 32 - .#define bfd_mach_mipsisa32r2 33 - .#define bfd_mach_mipsisa32r3 34 -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 7c13bc8c91..2e453c50c1 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -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'. */ -+#define bfd_mach_mips_xlp 887680 /* decimal 'XLP'. */ - #define bfd_mach_mipsisa32 32 - #define bfd_mach_mipsisa32r2 33 - #define bfd_mach_mipsisa32r3 34 -diff --git a/bfd/config.bfd b/bfd/config.bfd -index 847f9f0ba9..a12707f827 100644 ---- a/bfd/config.bfd -+++ b/bfd/config.bfd -@@ -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" - ;; -+ mipsisa64*-*-elf*) -+ targ_defvec=mips_elf32_trad_be_vec -+ targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" -+ want64=true -+ ;; - mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none) - targ_defvec=mips_elf32_be_vec - targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" -diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c -index 802acb45f1..fd9ec4c0ad 100644 ---- a/bfd/cpu-mips.c -+++ b/bfd/cpu-mips.c -@@ -108,7 +108,8 @@ enum - I_mipsocteon3, - I_xlr, - I_interaptiv_mr2, -- I_micromips -+ I_micromips, -+ I_xlp - }; - - #define NN(index) (&arch_info_struct[(index) + 1]) -@@ -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, 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 d7e3aed3b6..7baeee9ee3 100644 ---- a/bfd/elfxx-mips.c -+++ b/bfd/elfxx-mips.c -@@ -6999,6 +6999,9 @@ _bfd_elf_mips_mach (flagword flags) - case E_MIPS_MACH_IAMR2: - return bfd_mach_mips_interaptiv_mr2; - -+ case E_MIPS_MACH_XLP: -+ return bfd_mach_mips_xlp; -+ - default: - switch (flags & EF_MIPS_ARCH) - { -@@ -12355,6 +12358,10 @@ mips_set_isa_flags (bfd *abfd) - val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; - break; - -+ case bfd_mach_mips_xlp: -+ val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_XLP; -+ break; -+ - case bfd_mach_mipsisa32: - val = E_MIPS_ARCH_32; - break; -@@ -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 6b5bebe743..d15a7828db 100644 ---- a/binutils/readelf.c -+++ b/binutils/readelf.c -@@ -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; -+ case E_MIPS_MACH_XLP: strcat (buf, ", xlp"); break; - case 0: - /* We simply ignore the field in this case to avoid confusion: - MIPS ELF does not specify EF_MIPS_MACH, it is a GNU -diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c -index fc6898834e..2c7151ccdb 100644 ---- a/gas/config/tc-mips.c -+++ b/gas/config/tc-mips.c -@@ -568,6 +568,7 @@ static int mips_32bitmode = 0; - || mips_opts.arch == CPU_RM7000 \ - || mips_opts.arch == CPU_VR5500 \ - || mips_opts.micromips \ -+ || mips_opts.arch == CPU_XLP \ - ) - - /* Whether the processor uses hardware interlocks to protect reads -@@ -597,6 +598,7 @@ static int mips_32bitmode = 0; - && mips_opts.isa != ISA_MIPS3) \ - || mips_opts.arch == CPU_R4300 \ - || mips_opts.micromips \ -+ || mips_opts.arch == CPU_XLP \ - ) - - /* Whether the processor uses hardware interlocks to protect reads -@@ -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_VIRT | ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6}, -diff --git a/gas/configure b/gas/configure -index 60c1a055ae..59d6d11215 100755 ---- a/gas/configure -+++ b/gas/configure -@@ -12722,6 +12722,9 @@ _ACEOF - mipsisa64r6 | mipsisa64r6el) - mips_cpu=mips64r6 - ;; -+ mipsisa64r2nlm | mipsisa64r2nlmel) -+ 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 d116b036b6..dceeb3f156 100644 ---- a/include/elf/mips.h -+++ b/include/elf/mips.h -@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext) - #define E_MIPS_MACH_SB1 0x008a0000 - #define E_MIPS_MACH_OCTEON 0x008b0000 - #define E_MIPS_MACH_XLR 0x008c0000 -+#define E_MIPS_MACH_XLP 0x008f0000 - #define E_MIPS_MACH_OCTEON2 0x008d0000 - #define E_MIPS_MACH_OCTEON3 0x008e0000 - #define E_MIPS_MACH_5400 0x00910000 -diff --git a/include/opcode/mips.h b/include/opcode/mips.h -index fd031f3758..a96a44df84 100644 ---- a/include/opcode/mips.h -+++ b/include/opcode/mips.h -@@ -1260,6 +1260,8 @@ static const unsigned int mips_isa_table[] = { - #define INSN_XLR 0x00000020 - /* Imagination interAptiv MR2. */ - #define INSN_INTERAPTIV_MR2 0x04000000 -+/* Netlogic XlP instruction */ -+#define INSN_XLP 0x00000080 - - /* DSP ASE */ - #define ASE_DSP 0x00000001 -@@ -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' */ -+#define CPU_XLP 887680 /* decimal 'XLP' */ - - /* Return true if the given CPU is included in INSN_* mask 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); - -+ case CPU_XLP: -+ return (mask & INSN_XLP) != 0; -+ - default: - return FALSE; - } -diff --git a/ld/configure.tgt b/ld/configure.tgt -index f4f0eaf9b2..0da3eca19c 100644 ---- a/ld/configure.tgt -+++ b/ld/configure.tgt -@@ -520,6 +520,9 @@ mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) - targ_emul=elf32btsmip - targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" - ;; -+mipsisa64*-*-elf*) targ_emul=elf32btsmip -+ targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip" -+ ;; - mips64*el-ps2-elf*) targ_emul=elf32lr5900n32 - targ_extra_emuls="elf32lr5900" - targ_extra_libpath=$targ_extra_emuls -diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c -index 755bbe294b..ce22ef683a 100644 ---- a/opcodes/mips-dis.c -+++ b/opcodes/mips-dis.c -@@ -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 }, - -- /* XLP is mostly like XLR, with the prominent exception it is being -- MIPS64R2. */ -- { "xlp", 1, bfd_mach_mips_xlr, CPU_XLR, -- ISA_MIPS64R2 | INSN_XLR, 0, -- mips_cp0_names_xlr, -- mips_cp0sel_names_xlr, ARRAY_SIZE (mips_cp0sel_names_xlr), -- mips_cp1_names_mips3264, mips_hwr_names_numeric }, -+ { "xlp", 1, bfd_mach_mips_xlp, CPU_XLP, -+ ISA_MIPS64R2 | INSN_XLP, 0, -+ mips_cp0_names_mips3264r2, -+ mips_cp0sel_names_mips3264r2, ARRAY_SIZE (mips_cp0sel_names_mips3264r2), -+ mips_cp1_names_mips3264, mips_hwr_names_mips3264r2 }, - - /* This entry, mips16, is here only for ISA/processor selection; do - not print its name. */ -diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c -index 5270aeefa8..d17dc78cd7 100644 ---- a/opcodes/mips-opc.c -+++ b/opcodes/mips-opc.c -@@ -328,6 +328,7 @@ decode_mips_operand (const char *p) - #define IOCT3 INSN_OCTEON3 - #define XLR INSN_XLR - #define IAMR2 INSN_INTERAPTIV_MR2 -+#define XLP INSN_XLP - #define IVIRT ASE_VIRT - #define IVIRT64 ASE_VIRT64 - -@@ -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 }, -+{"crc", "d,s,t", 0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - /* 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 }, -@@ -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 }, --{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 }, -+{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR|XLP, 0, 0 }, - {"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5, 0, 0 }, - {"dclo", "d,s", 0x00000053, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, - {"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, - {"dclz", "d,s", 0x00000052, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 }, - {"dclz", "U,s", 0x70000024, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 }, -+{"dcrc", "d,s,t", 0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - /* 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 }, -@@ -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 }, -+{"dmfur", "t,d", 0x7000001e, 0xffe007ff, WR_1, 0, XLP, 0, 0 }, - {"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 }, -@@ -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 }, -+{"dmtur", "t,d", 0x7000001f, 0xffe007ff, RD_1, 0, XLP, 0, 0 }, -+{"dmul", "d,s,t", 0x70000006, 0xfc0007ff, WR_1|RD_2|RD_3, 0, XLP, 0, 0 }, - {"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 }, -@@ -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 }, --{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, -+{"ldaddw", "t,b", 0x70000010, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"ldaddwu", "t,b", 0x70000011, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"ldaddd", "t,b", 0x70000012, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, - {"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 }, -@@ -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 }, --{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 }, -+{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1, 0, XLR|XLP, 0, 0 }, - {"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 }, -@@ -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 }, -+{"msgsnds", "d,t", 0x4a000001, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, - {"msgld", "", 0, (int) M_MSGLD, INSN_MACRO, 0, XLR, 0, 0 }, - {"msgld", "t", 0, (int) M_MSGLD_T, INSN_MACRO, 0, XLR, 0, 0 }, --{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR, 0, 0 }, --{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR, 0, 0 }, -+{"msglds", "d,t", 0x4a000002, 0xffe007ff, WR_1|RD_2|RD_C0|WR_C0, 0, XLP, 0, 0 }, -+{"msgwait", "", 0, (int) M_MSGWAIT, INSN_MACRO, 0, XLR|XLP, 0, 0 }, -+{"msgwait", "t", 0, (int) M_MSGWAIT_T,INSN_MACRO, 0, XLR|XLP, 0, 0 }, -+{"msgsync", "", 0x4a000004, 0xffffffff,0, 0, XLP, 0, 0 }, - {"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 }, -@@ -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 }, --{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 }, -+{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1, 0, XLR|XLP, 0, 0 }, - {"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 }, -@@ -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 }, --{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, --{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0, XLR, 0, 0 }, -+{"swapw", "t,b", 0x70000014, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"swapwu", "t,b", 0x70000015, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, -+{"swapd", "t,b", 0x70000016, 0xfc00ffff, MOD_1|RD_2|SM, 0, XLR|XLP, 0, 0 }, - {"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 }, diff --git a/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch b/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch new file mode 100644 index 000000000..ef8b253b6 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0012-Detect-64-bit-MIPS-targets.patch @@ -0,0 +1,50 @@ +From dbff6bdf2123f5495b8be930304d9aa5e88006a7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 31 Mar 2017 11:42:03 -0700 +Subject: [PATCH 12/17] Detect 64-bit MIPS targets + +Add mips64 target triplets and default to N64 + +Upstream-Status: Submitted +https://sourceware.org/ml/binutils/2016-08/msg00048.html + +Signed-off-by: Khem Raj +--- + gold/configure.tgt | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/gold/configure.tgt b/gold/configure.tgt +index aa7ec552aec..470515062e4 100644 +--- a/gold/configure.tgt ++++ b/gold/configure.tgt +@@ -153,6 +153,13 @@ aarch64*-*) + targ_big_endian=false + targ_extra_big_endian=true + ;; ++mips*64*el*-*-*|mips*64*le*-*-*) ++ targ_obj=mips ++ targ_machine=EM_MIPS_RS3_LE ++ targ_size=64 ++ targ_big_endian=false ++ targ_extra_big_endian=true ++ ;; + mips*el*-*-*|mips*le*-*-*) + targ_obj=mips + targ_machine=EM_MIPS_RS3_LE +@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*) + targ_big_endian=false + targ_extra_big_endian=true + ;; ++mips*64*-*-*) ++ targ_obj=mips ++ targ_machine=EM_MIPS ++ targ_size=64 ++ targ_big_endian=true ++ targ_extra_big_endian=false ++ ;; + mips*-*-*) + targ_obj=mips + targ_machine=EM_MIPS +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch new file mode 100644 index 000000000..987a96f4b --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0013-Use-libtool-2.4.patch @@ -0,0 +1,23153 @@ +From 7e2ddee8704c9c3b73760dd9464b18fade563d85 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 14 Feb 2016 17:04:07 +0000 +Subject: [PATCH 13/17] Use libtool 2.4 + +get libtool sysroot support + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + bfd/configure | 1322 +++++++++++++++----- + bfd/configure.ac | 2 +- + binutils/configure | 1320 +++++++++++++++----- + gas/configure | 1320 +++++++++++++++----- + gprof/configure | 1320 +++++++++++++++----- + ld/configure | 1695 ++++++++++++++++++------- + libctf/configure | 1319 +++++++++++++++----- + libtool.m4 | 1080 +++++++++++----- + ltmain.sh | 2925 +++++++++++++++++++++++++++++--------------- + ltoptions.m4 | 2 +- + ltversion.m4 | 12 +- + lt~obsolete.m4 | 2 +- + opcodes/configure | 1320 +++++++++++++++----- + zlib/configure | 1320 +++++++++++++++----- + 14 files changed, 10931 insertions(+), 4028 deletions(-) + +diff --git a/bfd/configure b/bfd/configure +index 0340ed541b5..2012656b3b7 100755 +--- a/bfd/configure ++++ b/bfd/configure +@@ -704,6 +704,9 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++ac_ct_AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -822,6 +825,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1504,6 +1508,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-mmap try using mmap for BFD input files if available + --with-separate-debug-dir=DIR + Look for global separate debug info in DIR +@@ -5693,8 +5699,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5734,7 +5740,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6420,8 +6426,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6470,6 +6476,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6486,6 +6566,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6654,7 +6739,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6808,6 +6894,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6821,11 +6922,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6841,7 +7095,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6861,11 +7115,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6881,7 +7139,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6900,6 +7158,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6911,16 +7173,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -7262,8 +7580,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7299,6 +7617,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7340,6 +7659,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7351,7 +7682,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7377,8 +7708,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7388,8 +7719,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7426,6 +7757,16 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ + + + +@@ -7442,6 +7783,45 @@ fi + + + ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7653,6 +8033,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -8216,6 +8713,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8380,7 +8879,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8469,7 +8969,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8767,8 +9267,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8934,6 +9432,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8996,7 +9500,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -9053,13 +9557,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -9120,6 +9628,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9470,7 +9983,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9569,12 +10083,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9588,8 +10102,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9607,8 +10121,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9654,8 +10168,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9785,7 +10299,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9798,22 +10318,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9825,7 +10352,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9838,22 +10371,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9898,20 +10438,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9972,7 +10555,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9980,7 +10563,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9996,7 +10579,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -10020,10 +10603,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -10102,23 +10685,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -10203,7 +10799,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -10222,9 +10818,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10800,8 +11396,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10834,13 +11431,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10932,7 +11587,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11728,7 +12383,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11731 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11772,10 +12427,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11834,7 +12489,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11837 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11878,10 +12533,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -14578,7 +15233,7 @@ SHARED_LDFLAGS= + if test "$enable_shared" = "yes"; then + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` + if test -n "$x"; then +- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" ++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" + fi + + case "${host}" in +@@ -17197,13 +17852,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -17218,14 +17880,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -17258,12 +17923,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -17318,8 +17983,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -17329,12 +17999,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -17350,7 +18022,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -17386,6 +18057,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -18174,7 +18846,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -18277,19 +18950,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -18319,6 +19015,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -18328,6 +19030,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -18442,12 +19147,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -18534,9 +19239,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -18552,6 +19254,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -18584,210 +19289,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/bfd/configure.ac b/bfd/configure.ac +index 8e86f8399ce..e8700c9d4d2 100644 +--- a/bfd/configure.ac ++++ b/bfd/configure.ac +@@ -314,7 +314,7 @@ changequote(,)dnl + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` + changequote([,])dnl + if test -n "$x"; then +- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty" ++ SHARED_LIBADD="`pwd`/../libiberty/pic/libiberty.a" + fi + + case "${host}" in +diff --git a/binutils/configure b/binutils/configure +index 89c99abfeba..d3289a5efcd 100755 +--- a/binutils/configure ++++ b/binutils/configure +@@ -692,8 +692,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -810,6 +813,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1490,6 +1494,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-debuginfod Enable debuginfo lookups with debuginfod + (auto/yes/no) + --with-system-zlib use installed libz +@@ -5467,8 +5473,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5508,7 +5514,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6194,8 +6200,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6244,6 +6250,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6260,6 +6340,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6428,7 +6513,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6582,6 +6668,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6597,9 +6698,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6615,7 +6869,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6635,11 +6889,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6655,7 +6913,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6674,6 +6932,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6685,12 +6947,10 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} + + + +@@ -6702,6 +6962,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. + set dummy ${ac_tool_prefix}strip; ac_word=$2 +@@ -7036,8 +7354,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7073,6 +7391,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7114,6 +7433,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7125,7 +7456,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7151,8 +7482,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7162,8 +7493,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7200,6 +7531,21 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7216,6 +7562,40 @@ fi + + + ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7427,6 +7807,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7990,6 +8487,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8185,7 +8684,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8274,7 +8774,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8572,8 +9072,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8739,6 +9237,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8801,7 +9305,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8858,13 +9362,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8925,6 +9433,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9275,7 +9788,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9374,12 +9888,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9393,8 +9907,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9412,8 +9926,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9459,8 +9973,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9590,7 +10104,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9603,22 +10123,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9630,7 +10157,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9643,22 +10176,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9703,20 +10243,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9777,7 +10360,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9785,7 +10368,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9801,7 +10384,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9825,10 +10408,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9907,23 +10490,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -10008,7 +10604,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -10027,9 +10623,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10605,8 +11201,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10639,13 +11236,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10737,7 +11392,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11533,7 +12188,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11536 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11577,10 +12232,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11639,7 +12294,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11642 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11683,10 +12338,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -16076,13 +16731,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -16097,14 +16759,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -16137,12 +16802,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -16197,8 +16862,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -16208,12 +16878,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -16229,7 +16901,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -16265,6 +16936,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -17031,7 +17703,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -17134,19 +17807,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -17176,6 +17872,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -17185,6 +17887,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -17299,12 +18004,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -17391,9 +18096,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -17409,6 +18111,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -17441,210 +18146,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/gas/configure b/gas/configure +index d4b13e6fc8b..dd5224c5c81 100755 +--- a/gas/configure ++++ b/gas/configure +@@ -681,8 +681,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -799,6 +802,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1490,6 +1494,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-cpu=CPU default cpu variant is CPU (currently only supported + on ARC) + --with-system-zlib use installed libz +@@ -5277,8 +5283,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5318,7 +5324,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6004,8 +6010,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6054,6 +6060,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6070,6 +6150,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6238,7 +6323,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6392,6 +6478,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6407,9 +6508,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6425,7 +6679,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6445,11 +6699,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6465,7 +6723,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6484,6 +6742,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6495,12 +6757,10 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} + + + +@@ -6512,6 +6772,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. + set dummy ${ac_tool_prefix}strip; ac_word=$2 +@@ -6846,8 +7164,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -6883,6 +7201,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -6924,6 +7243,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -6935,7 +7266,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -6961,8 +7292,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -6972,8 +7303,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7010,6 +7341,21 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7026,6 +7372,40 @@ fi + + + ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7237,6 +7617,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7800,6 +8297,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -7995,7 +8494,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8084,7 +8584,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8382,8 +8882,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8549,6 +9047,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8611,7 +9115,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8668,13 +9172,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8735,6 +9243,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9085,7 +9598,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9184,12 +9698,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9203,8 +9717,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9222,8 +9736,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9269,8 +9783,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9400,7 +9914,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9413,22 +9933,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9440,7 +9967,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9453,22 +9986,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9513,20 +10053,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9587,7 +10170,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9595,7 +10178,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9611,7 +10194,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9635,10 +10218,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9717,23 +10300,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9818,7 +10414,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9837,9 +10433,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10415,8 +11011,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10449,13 +11046,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10547,7 +11202,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11343,7 +11998,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11346 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11387,10 +12042,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11449,7 +12104,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11452 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11493,10 +12148,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -15981,13 +16636,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -16002,14 +16664,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -16042,12 +16707,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -16102,8 +16767,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -16113,12 +16783,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -16134,7 +16806,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -16170,6 +16841,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -16943,7 +17615,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -17046,19 +17719,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -17088,6 +17784,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -17097,6 +17799,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -17211,12 +17916,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -17303,9 +18008,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -17321,6 +18023,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -17353,210 +18058,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/gprof/configure b/gprof/configure +index 3cf41b79116..e5d57f52912 100755 +--- a/gprof/configure ++++ b/gprof/configure +@@ -662,8 +662,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -780,6 +783,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1442,6 +1446,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + + Some influential environment variables: + CC C compiler command +@@ -5124,8 +5130,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5165,7 +5171,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -5851,8 +5857,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -5901,6 +5907,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -5917,6 +5997,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6085,7 +6170,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6239,6 +6325,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6252,11 +6353,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6272,7 +6526,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6292,11 +6546,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6312,7 +6570,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6331,6 +6589,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6342,16 +6604,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -6693,8 +7011,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -6730,6 +7048,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -6771,6 +7090,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -6782,7 +7113,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -6808,8 +7139,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -6819,8 +7150,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -6857,6 +7188,20 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ ++ + + + +@@ -6873,6 +7218,41 @@ fi + + + ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7084,6 +7464,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7647,6 +8144,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -7842,7 +8341,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -7931,7 +8431,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8229,8 +8729,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8396,6 +8894,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8458,7 +8962,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8515,13 +9019,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8582,6 +9090,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -8932,7 +9445,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9031,12 +9545,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9050,8 +9564,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9069,8 +9583,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9116,8 +9630,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9247,7 +9761,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9260,22 +9780,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9287,7 +9814,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9300,22 +9833,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9360,20 +9900,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9434,7 +10017,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9442,7 +10025,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9458,7 +10041,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9482,10 +10065,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9564,23 +10147,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9665,7 +10261,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9684,9 +10280,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10262,8 +10858,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10296,13 +10893,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10394,7 +11049,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11190,7 +11845,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11193 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11234,10 +11889,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11296,7 +11951,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11299 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11340,10 +11995,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -13309,13 +13964,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -13330,14 +13992,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -13370,12 +14035,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -13430,8 +14095,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -13441,12 +14111,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -13462,7 +14134,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -13498,6 +14169,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -14263,7 +14935,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -14366,19 +15039,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -14408,6 +15104,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -14417,6 +15119,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -14531,12 +15236,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -14623,9 +15328,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -14641,6 +15343,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -14673,210 +15378,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/ld/configure b/ld/configure +index 1c872c0db5f..fe938e6c99f 100755 +--- a/ld/configure ++++ b/ld/configure +@@ -691,8 +691,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -819,6 +822,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_plugins + enable_largefile +@@ -1520,6 +1524,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-lib-path=dir1:dir2... set default LIB_PATH + --with-sysroot=DIR Search for usr/lib et al within DIR. + --with-system-zlib use installed libz +@@ -5973,8 +5979,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -6014,7 +6020,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6700,8 +6706,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6750,6 +6756,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6766,6 +6846,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6934,7 +7019,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -7088,6 +7174,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -7103,9 +7204,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -7121,7 +7375,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -7141,11 +7395,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -7161,7 +7419,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -7180,6 +7438,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -7191,12 +7453,12 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ + + + +@@ -7206,6 +7468,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +@@ -7542,8 +7860,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7579,6 +7897,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7620,6 +7939,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7631,7 +7962,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7657,8 +7988,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7668,8 +7999,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7706,6 +8037,19 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ + + + +@@ -7722,6 +8066,42 @@ fi + + + ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7933,6 +8313,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -8496,6 +8993,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8564,6 +9063,16 @@ done + + + ++func_stripname_cnf () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname_cnf ++ ++ ++ + + + # Set options +@@ -8692,7 +9201,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8781,7 +9291,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -9079,8 +9589,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -9246,6 +9754,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -9308,7 +9822,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -9365,13 +9879,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -9432,6 +9950,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9782,7 +10305,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9881,12 +10405,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9900,8 +10424,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9919,8 +10443,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9966,8 +10490,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -10097,7 +10621,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -10110,22 +10640,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -10137,7 +10674,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -10150,22 +10693,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -10209,21 +10759,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is +- # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ # no search path for DLLs. ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -10284,7 +10877,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -10292,7 +10885,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -10308,7 +10901,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -10332,10 +10925,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -10414,23 +11007,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -10515,7 +11121,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -10534,9 +11140,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -11112,8 +11718,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -11146,13 +11753,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -11244,7 +11909,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -12040,7 +12705,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 12040 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12084,10 +12749,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -12146,7 +12811,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 12146 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12190,10 +12855,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -12585,6 +13250,7 @@ $RM -r conftest* + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX +@@ -12602,6 +13268,7 @@ $RM -r conftest* + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do +@@ -12884,7 +13551,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -12897,22 +13570,29 @@ main () + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + +@@ -12925,7 +13605,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath__CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -12938,22 +13624,29 @@ main () + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath__CXX"; then ++ lt_cv_aix_libpath__CXX="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath__CXX ++fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -12996,29 +13689,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) +- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, +- # as there is no search path for DLLs. +- hardcode_libdir_flag_spec_CXX='-L$libdir' +- export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' +- allow_undefined_flag_CXX=unsupported +- always_export_symbols_CXX=no +- enable_shared_with_static_runtimes_CXX=yes +- +- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +- cp $export_symbols $output_objdir/$soname.def; +- else +- echo EXPORTS > $output_objdir/$soname.def; +- cat $export_symbols >> $output_objdir/$soname.def; +- fi~ +- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- else +- ld_shlibs_CXX=no +- fi +- ;; ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX=' ' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=yes ++ file_list_spec_CXX='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' ++ enable_shared_with_static_runtimes_CXX=yes ++ # Don't use ranlib ++ old_postinstall_cmds_CXX='chmod 644 $oldlib' ++ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, ++ # as there is no search path for DLLs. ++ hardcode_libdir_flag_spec_CXX='-L$libdir' ++ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' ++ allow_undefined_flag_CXX=unsupported ++ always_export_symbols_CXX=no ++ enable_shared_with_static_runtimes_CXX=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ ld_shlibs_CXX=no ++ fi ++ ;; ++ esac ++ ;; + darwin* | rhapsody*) + + +@@ -13124,7 +13863,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + ;; + *) + if test "$GXX" = yes; then +- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no +@@ -13195,10 +13934,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) +- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) +- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi +@@ -13239,9 +13978,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else +- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes +@@ -13311,20 +14050,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +@@ -13519,7 +14258,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) +- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + +@@ -13565,7 +14304,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' +@@ -13606,9 +14345,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then +- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when +@@ -13743,6 +14482,13 @@ private: + }; + _LT_EOF + ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++esac ++ + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? +@@ -13756,7 +14502,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do +- case $p in ++ case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. +@@ -13765,13 +14511,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + test $p = "-R"; then + prev=$p + continue +- else +- prev= + fi + ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac + if test "$pre_test_object_deps_done" = no; then +- case $p in +- -L* | -R*) ++ case ${prev} in ++ -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. +@@ -13791,8 +14546,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi ++ prev= + ;; + ++ *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. +@@ -13828,6 +14585,7 @@ else + fi + + $RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS + + # PORTME: override above test on systems where it is broken + case $host_os in +@@ -13863,7 +14621,7 @@ linux*) + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as +@@ -13928,8 +14686,6 @@ fi + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then +@@ -14034,6 +14790,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + ;; + esac + ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ++ ;; + dgux*) + case $cc_basename in + ec++*) +@@ -14186,7 +14947,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + ;; + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' +@@ -14251,10 +15012,17 @@ case $host_os in + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +-$as_echo "$lt_prog_compiler_pic_CXX" >&6; } +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic_CXX+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } ++lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + + # + # Check to make sure the PIC flag actually works. +@@ -14312,6 +15080,8 @@ fi + + + ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -14489,6 +15259,7 @@ fi + $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. +@@ -14503,15 +15274,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" +- ;; ++ ;; + cygwin* | mingw* | cegcc*) +- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ case $cc_basename in ++ cl*) ;; ++ *) ++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ++ ;; ++ esac ++ ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ ;; + esac +- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 + $as_echo "$ld_shlibs_CXX" >&6; } +@@ -14774,8 +15550,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -14807,13 +15584,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -14904,7 +15739,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -15363,6 +16198,7 @@ fi + fi # test -n "$compiler" + + CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC +@@ -18554,13 +19390,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -18575,14 +19418,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -18615,12 +19461,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -18659,8 +19505,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote + compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' + GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' + archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +@@ -18687,12 +19533,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_ + hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' + inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' + link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_CXX" | $SED "$delay_single_quote_subst"`' + always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' + exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' + include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' + prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' ++postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' + file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' + hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' + compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +@@ -18730,8 +19576,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -18741,12 +19592,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -18762,7 +19615,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -18784,8 +19636,8 @@ LD_CXX \ + reload_flag_CXX \ + compiler_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ +-lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ ++lt_prog_compiler_wl_CXX \ + lt_prog_compiler_static_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + export_dynamic_flag_spec_CXX \ +@@ -18797,7 +19649,6 @@ no_undefined_flag_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ +-fix_srcfile_path_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX \ + file_list_spec_CXX \ +@@ -18831,6 +19682,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -18845,7 +19697,8 @@ archive_expsym_cmds_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + export_symbols_cmds_CXX \ +-prelink_cmds_CXX; do ++prelink_cmds_CXX \ ++postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" +@@ -19610,7 +20463,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -19713,19 +20567,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -19755,6 +20632,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -19764,6 +20647,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -19878,12 +20764,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -19970,9 +20856,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -19988,6 +20871,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -20034,210 +20920,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +@@ -20265,12 +21110,12 @@ with_gcc=$GCC_CXX + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl_CXX +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic_CXX + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl_CXX ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static_CXX + +@@ -20357,9 +21202,6 @@ inherit_rpath=$inherit_rpath_CXX + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs_CXX + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path_CXX +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols_CXX + +@@ -20375,6 +21217,9 @@ include_expsyms=$lt_include_expsyms_CXX + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds_CXX + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds_CXX ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec_CXX + +diff --git a/libctf/configure b/libctf/configure +index 1dc1b65fac3..c5c2f36bbc0 100755 +--- a/libctf/configure ++++ b/libctf/configure +@@ -663,6 +663,8 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -790,6 +792,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_largefile + enable_werror_always +@@ -1448,6 +1451,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + --with-system-zlib use installed libz + + Some influential environment variables: +@@ -5406,8 +5411,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5518,7 +5523,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6204,8 +6209,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6254,6 +6259,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6270,6 +6349,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6438,7 +6522,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6592,6 +6677,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6607,9 +6707,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6625,7 +6878,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6645,11 +6898,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6665,7 +6922,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6684,6 +6941,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6695,16 +6956,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -7046,8 +7363,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7083,6 +7400,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7124,6 +7442,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7135,7 +7465,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7161,8 +7491,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7172,8 +7502,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7210,6 +7540,16 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ + + + +@@ -7226,6 +7566,45 @@ fi + + + ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7437,6 +7816,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -8000,6 +8496,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8165,7 +8663,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8254,7 +8753,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8552,8 +9051,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8719,6 +9216,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8781,7 +9284,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8838,13 +9341,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8905,6 +9412,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9255,7 +9767,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9354,12 +9867,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9373,8 +9886,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9392,8 +9905,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9439,8 +9952,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9570,7 +10083,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9583,22 +10102,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9610,7 +10136,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9623,22 +10155,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9683,20 +10222,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9757,7 +10339,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9765,7 +10347,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9781,7 +10363,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9805,10 +10387,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9887,23 +10469,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9988,7 +10583,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -10007,9 +10602,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10585,8 +11180,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10619,13 +11215,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10717,7 +11371,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11513,7 +12167,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11516 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11557,10 +12211,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11619,7 +12273,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11622 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11663,10 +12317,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -14110,13 +14764,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -14131,14 +14792,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -14171,12 +14835,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -14231,8 +14895,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -14242,12 +14911,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -14263,7 +14934,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -14299,6 +14969,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -15055,7 +15726,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -15158,19 +15830,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -15200,6 +15895,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -15209,6 +15910,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -15323,12 +16027,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -15415,9 +16119,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -15433,6 +16134,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -15465,210 +16169,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/libtool.m4 b/libtool.m4 +index 434530059fa..e45fdc6998c 100644 +--- a/libtool.m4 ++++ b/libtool.m4 +@@ -1,7 +1,8 @@ + # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is free software; the Free Software Foundation gives +@@ -10,7 +11,8 @@ + + m4_define([_LT_COPYING], [dnl + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl + # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ]) + +-# serial 56 LT_INIT ++# serial 57 LT_INIT + + + # LT_PREREQ(VERSION) +@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl + dnl + m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_CHECK_SHELL_FEATURES])dnl ++m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl + m4_require([_LT_CMD_RELOAD])dnl + m4_require([_LT_CHECK_MAGIC_METHOD])dnl ++m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl + m4_require([_LT_CMD_OLD_ARCHIVE])dnl + m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl ++m4_require([_LT_WITH_SYSROOT])dnl + + _LT_CONFIG_LIBTOOL_INIT([ + # See if we are running on zsh, and set the options which allow our +@@ -199,7 +205,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl + m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) + configured by $[0], generated by m4_PACKAGE_STRING. + +-Copyright (C) 2009 Free Software Foundation, Inc. ++Copyright (C) 2010 Free Software Foundation, Inc. + This config.lt script is free software; the Free Software Foundation + gives unlimited permision to copy, distribute and modify it." + +@@ -746,15 +752,12 @@ _LT_EOF + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) + +- _LT_PROG_XSI_SHELLFNS ++ _LT_PROG_REPLACE_SHELLFNS + +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + ], +@@ -980,6 +983,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD ++ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD ++ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], + fi + ]) + +-# _LT_SYS_MODULE_PATH_AIX +-# ----------------------- ++# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) ++# ---------------------------------- + # Links a minimal program and checks the executable + # for the system default hardcoded library path. In most cases, + # this is /usr/lib:/lib, but when the MPI compilers are used + # the location of the communication and MPI libs are included too. + # If we don't find anything, use the default library path according + # to the aix ld manual. ++# Store the results from the different compilers for each TAGNAME. ++# Allow to override them for all tags through lt_cv_aix_libpath. + m4_defun([_LT_SYS_MODULE_PATH_AIX], + [m4_require([_LT_DECL_SED])dnl +-AC_LINK_IFELSE([AC_LANG_SOURCE([AC_LANG_PROGRAM])],[ +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi],[]) +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ ++ lt_aix_libpath_sed='[ ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }]' ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi],[]) ++ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then ++ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" ++ fi ++ ]) ++ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) ++fi + ])# _LT_SYS_MODULE_PATH_AIX + + +@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + + AC_MSG_CHECKING([how to print strings]) + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) + ])# _LT_PROG_ECHO_BACKSLASH + + ++# _LT_WITH_SYSROOT ++# ---------------- ++AC_DEFUN([_LT_WITH_SYSROOT], ++[AC_MSG_CHECKING([for sysroot]) ++AC_ARG_WITH([libtool-sysroot], ++[ --with-libtool-sysroot[=DIR] Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified).], ++[], [with_libtool_sysroot=no]) ++ ++dnl lt_sysroot will always be passed unquoted. We quote it here ++dnl in case the user passed a directory name. ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ AC_MSG_RESULT([${with_libtool_sysroot}]) ++ AC_MSG_ERROR([The sysroot must be an absolute path.]) ++ ;; ++esac ++ ++ AC_MSG_RESULT([${lt_sysroot:-no}]) ++_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl ++[dependent libraries, and in which our libraries should be installed.])]) ++ + # _LT_ENABLE_LOCK + # --------------- + m4_defun([_LT_ENABLE_LOCK], +@@ -1320,14 +1369,47 @@ need_locks="$enable_libtool_lock" + ])# _LT_ENABLE_LOCK + + ++# _LT_PROG_AR ++# ----------- ++m4_defun([_LT_PROG_AR], ++[AC_CHECK_TOOLS(AR, [ar], false) ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++_LT_DECL([], [AR], [1], [The archiver]) ++_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) ++ ++AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], ++ [lt_cv_ar_at_file=no ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM], ++ [echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' ++ AC_TRY_EVAL([lt_ar_try]) ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ AC_TRY_EVAL([lt_ar_try]) ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a ++ ]) ++ ]) ++ ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi ++_LT_DECL([], [archiver_list_spec], [1], ++ [How to feed a file listing to the archiver]) ++])# _LT_PROG_AR ++ ++ + # _LT_CMD_OLD_ARCHIVE + # ------------------- + m4_defun([_LT_CMD_OLD_ARCHIVE], +-[AC_CHECK_TOOL(AR, ar, false) +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru +-_LT_DECL([], [AR], [1], [The archiver]) +-_LT_DECL([], [AR_FLAGS], [1]) ++[_LT_PROG_AR + + AC_CHECK_TOOL(STRIP, strip, :) + test -z "$STRIP" && STRIP=: +@@ -1623,7 +1705,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-[#line __oline__ "configure" ++[#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -1667,10 +1749,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -2210,8 +2292,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -2244,13 +2327,71 @@ m4_if([$1], [],[ + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -2342,7 +2483,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -2950,6 +3091,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -3016,7 +3162,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -3167,6 +3314,21 @@ tpf*) + ;; + esac + ]) ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -3174,7 +3336,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + _LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) + _LT_DECL([], [file_magic_cmd], [1], +- [Command to use when deplibs_check_method == "file_magic"]) ++ [Command to use when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [file_magic_glob], [1], ++ [How to find potential files when deplibs_check_method = "file_magic"]) ++_LT_DECL([], [want_nocaseglob], [1], ++ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) + ])# _LT_CHECK_MAGIC_METHOD + + +@@ -3277,6 +3443,67 @@ dnl aclocal-1.4 backwards compatibility: + dnl AC_DEFUN([AM_PROG_NM], []) + dnl AC_DEFUN([AC_PROG_NM], []) + ++# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++# -------------------------------- ++# how to determine the name of the shared library ++# associated with a specific link library. ++# -- PORTME fill in with the dynamic library characteristics ++m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], ++[m4_require([_LT_DECL_EGREP]) ++m4_require([_LT_DECL_OBJDUMP]) ++m4_require([_LT_DECL_DLLTOOL]) ++AC_CACHE_CHECK([how to associate runtime and link libraries], ++lt_cv_sharedlib_from_linklib_cmd, ++[lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++]) ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++_LT_DECL([], [sharedlib_from_linklib_cmd], [1], ++ [Command to associate shared and link libraries]) ++])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB ++ ++ ++# _LT_PATH_MANIFEST_TOOL ++# ---------------------- ++# locate the manifest tool ++m4_defun([_LT_PATH_MANIFEST_TOOL], ++[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], ++ [lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&AS_MESSAGE_LOG_FD ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest*]) ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ++])# _LT_PATH_MANIFEST_TOOL ++ + + # LT_LIB_M + # -------- +@@ -3403,8 +3630,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -3440,6 +3667,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -3473,6 +3701,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT@&t@_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT@&t@_DLSYM_CONST ++#else ++# define LT@&t@_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -3484,7 +3724,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -3510,15 +3750,15 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi +@@ -3551,6 +3791,13 @@ else + AC_MSG_RESULT(ok) + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) + _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], +@@ -3561,6 +3808,8 @@ _LT_DECL([global_symbol_to_c_name_address], + _LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) ++_LT_DECL([], [nm_file_list_spec], [1], ++ [Specify filename containing input files for $NM]) + ]) # _LT_CMD_GLOBAL_SYMBOLS + + +@@ -3572,7 +3821,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)= + +-AC_MSG_CHECKING([for $compiler option to produce PIC]) + m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then +@@ -3678,6 +3926,12 @@ m4_if([$1], [CXX], [ + ;; + esac + ;; ++ mingw* | cygwin* | os2* | pw32* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ m4_if([$1], [GCJ], [], ++ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ++ ;; + dgux*) + case $cc_basename in + ec++*) +@@ -3830,7 +4084,7 @@ m4_if([$1], [CXX], [ + ;; + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +@@ -4053,6 +4307,12 @@ m4_if([$1], [CXX], [ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' ++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ++ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -4115,7 +4375,7 @@ m4_if([$1], [CXX], [ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; +@@ -4172,9 +4432,11 @@ case $host_os in + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; + esac +-AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], +- [How to pass a linker flag through the compiler]) ++ ++AC_CACHE_CHECK([for $compiler option to produce PIC], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], ++ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) ++_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + + # + # Check to make sure the PIC flag actually works. +@@ -4193,6 +4455,8 @@ fi + _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + ++_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], ++ [How to pass a linker flag through the compiler]) + # + # Check to make sure the static flag actually works. + # +@@ -4213,6 +4477,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + m4_defun([_LT_LINKER_SHLIBS], + [AC_REQUIRE([LT_PATH_LD])dnl + AC_REQUIRE([LT_PATH_NM])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl + m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_DECL_EGREP])dnl + m4_require([_LT_DECL_SED])dnl +@@ -4221,6 +4486,7 @@ m4_require([_LT_TAG_COMPILER])dnl + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. +@@ -4235,15 +4501,20 @@ m4_if([$1], [CXX], [ + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" +- ;; ++ ;; + cygwin* | mingw* | cegcc*) +- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ case $cc_basename in ++ cl*) ;; ++ *) ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ++ ;; ++ esac ++ ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' +- ;; ++ ;; + esac +- _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + ], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= +@@ -4411,7 +4682,8 @@ _LT_EOF + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ++ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -4510,12 +4782,12 @@ _LT_EOF + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' +- _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -4529,8 +4801,8 @@ _LT_EOF + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -4548,8 +4820,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +@@ -4595,8 +4867,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +@@ -4726,7 +4998,7 @@ _LT_EOF + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else +@@ -4737,7 +5009,7 @@ _LT_EOF + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. +@@ -4781,20 +5053,63 @@ _LT_EOF + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' +- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' +- # FIXME: Should let the user specify the lib program. +- _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' +- _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' +- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ # FIXME: Should let the user specify the lib program. ++ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -4828,7 +5143,7 @@ _LT_EOF + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no +@@ -4836,7 +5151,7 @@ _LT_EOF + + hpux9*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -4852,7 +5167,7 @@ _LT_EOF + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -4876,10 +5191,10 @@ _LT_EOF + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -4926,16 +5241,31 @@ _LT_EOF + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- AC_LINK_IFELSE([AC_LANG_SOURCE([int foo(void) {}])], +- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ) +- LDFLAGS="$save_LDFLAGS" ++ # This should be the same for all languages, so no per-tag cache variable. ++ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], ++ [lt_cv_irix_exported_symbol], ++ [save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ AC_LINK_IFELSE( ++ [AC_LANG_SOURCE( ++ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], ++ [C++], [[int foo (void) { return 0; }]], ++ [Fortran 77], [[ ++ subroutine foo ++ end]], ++ [Fortran], [[ ++ subroutine foo ++ end]])])], ++ [lt_cv_irix_exported_symbol=yes], ++ [lt_cv_irix_exported_symbol=no]) ++ LDFLAGS="$save_LDFLAGS"]) ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -5020,7 +5350,7 @@ _LT_EOF + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' +@@ -5039,9 +5369,9 @@ _LT_EOF + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -5313,8 +5643,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], + to runtime path list]) + _LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +-_LT_TAGDECL([], [fix_srcfile_path], [1], +- [Fix the shell variable $srcfile for the compiler]) + _LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) + _LT_TAGDECL([], [export_symbols_cmds], [2], +@@ -5325,6 +5653,8 @@ _LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) + _LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) ++_LT_TAGDECL([], [postlink_cmds], [2], ++ [Commands necessary for finishing linking programs]) + _LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) + dnl FIXME: Not yet implemented +@@ -5426,6 +5756,7 @@ CC="$lt_save_CC" + m4_defun([_LT_LANG_CXX_CONFIG], + [m4_require([_LT_FILEUTILS_DEFAULTS])dnl + m4_require([_LT_DECL_EGREP])dnl ++m4_require([_LT_PATH_MANIFEST_TOOL])dnl + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then +@@ -5487,6 +5818,7 @@ if test "$_lt_caught_CXX_error" != yes; then + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC ++ lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX +@@ -5504,6 +5836,7 @@ if test "$_lt_caught_CXX_error" != yes; then + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} ++ CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -5667,7 +6000,7 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -5679,7 +6012,7 @@ if test "$_lt_caught_CXX_error" != yes; then + else + # Determine the default libpath from the value encoded in an + # empty executable. +- _LT_SYS_MODULE_PATH_AIX ++ _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. +@@ -5721,29 +6054,75 @@ if test "$_lt_caught_CXX_error" != yes; then + ;; + + cygwin* | mingw* | pw32* | cegcc*) +- # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, +- # as there is no search path for DLLs. +- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' +- _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' +- _LT_TAGVAR(allow_undefined_flag, $1)=unsupported +- _LT_TAGVAR(always_export_symbols, $1)=no +- _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes +- +- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- # If the export-symbols file already is a .def file (1st line +- # is EXPORTS), use it as is; otherwise, prepend... +- _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then +- cp $export_symbols $output_objdir/$soname.def; +- else +- echo EXPORTS > $output_objdir/$soname.def; +- cat $export_symbols >> $output_objdir/$soname.def; +- fi~ +- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +- else +- _LT_TAGVAR(ld_shlibs, $1)=no +- fi +- ;; ++ case $GXX,$cc_basename in ++ ,cl* | no,cl*) ++ # Native MSVC ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=yes ++ _LT_TAGVAR(file_list_spec, $1)='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ # Don't use ranlib ++ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' ++ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ func_to_tool_file "$lt_outputfile"~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # g++ ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ++ # as there is no search path for DLLs. ++ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ++ _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' ++ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported ++ _LT_TAGVAR(always_export_symbols, $1)=no ++ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ _LT_TAGVAR(ld_shlibs, $1)=no ++ fi ++ ;; ++ esac ++ ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; +@@ -5818,7 +6197,7 @@ if test "$_lt_caught_CXX_error" != yes; then + ;; + *) + if test "$GXX" = yes; then +- _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no +@@ -5889,10 +6268,10 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi +@@ -5933,9 +6312,9 @@ if test "$_lt_caught_CXX_error" != yes; then + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes +@@ -6005,20 +6384,20 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ +- compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' ++ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ +- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ ++ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ +- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ++ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' +@@ -6213,7 +6592,7 @@ if test "$_lt_caught_CXX_error" != yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + +@@ -6259,7 +6638,7 @@ if test "$_lt_caught_CXX_error" != yes; then + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' +@@ -6300,9 +6679,9 @@ if test "$_lt_caught_CXX_error" != yes; then + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then +- _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when +@@ -6431,6 +6810,7 @@ if test "$_lt_caught_CXX_error" != yes; then + fi # test -n "$compiler" + + CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC +@@ -6445,6 +6825,29 @@ AC_LANG_POP + ])# _LT_LANG_CXX_CONFIG + + ++# _LT_FUNC_STRIPNAME_CNF ++# ---------------------- ++# func_stripname_cnf prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# ++# This function is identical to the (non-XSI) version of func_stripname, ++# except this one can be used by m4 code that may be executed by configure, ++# rather than the libtool script. ++m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl ++AC_REQUIRE([_LT_DECL_SED]) ++AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) ++func_stripname_cnf () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; ++ esac ++} # func_stripname_cnf ++])# _LT_FUNC_STRIPNAME_CNF ++ + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) + # --------------------------------- + # Figure out "hidden" library dependencies from verbose +@@ -6453,6 +6856,7 @@ AC_LANG_POP + # objects, libraries and library flags. + m4_defun([_LT_SYS_HIDDEN_LIBDEPS], + [m4_require([_LT_FILEUTILS_DEFAULTS])dnl ++AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl + # Dependencies to place before and after the object being linked: + _LT_TAGVAR(predep_objects, $1)= + _LT_TAGVAR(postdep_objects, $1)= +@@ -6503,6 +6907,13 @@ public class foo { + }; + _LT_EOF + ]) ++ ++_lt_libdeps_save_CFLAGS=$CFLAGS ++case "$CC $CFLAGS " in #( ++*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; ++*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; ++esac ++ + dnl Parse the compiler output and extract the necessary + dnl objects, libraries and library flags. + if AC_TRY_EVAL(ac_compile); then +@@ -6514,7 +6925,7 @@ if AC_TRY_EVAL(ac_compile); then + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do +- case $p in ++ case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. +@@ -6523,13 +6934,22 @@ if AC_TRY_EVAL(ac_compile); then + test $p = "-R"; then + prev=$p + continue +- else +- prev= + fi + ++ # Expand the sysroot to ease extracting the directories later. ++ if test -z "$prev"; then ++ case $p in ++ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; ++ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; ++ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; ++ esac ++ fi ++ case $p in ++ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; ++ esac + if test "$pre_test_object_deps_done" = no; then +- case $p in +- -L* | -R*) ++ case ${prev} in ++ -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. +@@ -6549,8 +6969,10 @@ if AC_TRY_EVAL(ac_compile); then + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi ++ prev= + ;; + ++ *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. +@@ -6586,6 +7008,7 @@ else + fi + + $RM -f confest.$objext ++CFLAGS=$_lt_libdeps_save_CFLAGS + + # PORTME: override above test on systems where it is broken + m4_if([$1], [CXX], +@@ -6622,7 +7045,7 @@ linux*) + + solaris*) + case $cc_basename in +- CC*) ++ CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as +@@ -6735,7 +7158,9 @@ if test "$_lt_disable_F77" != yes; then + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} ++ CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -6789,6 +7214,7 @@ if test "$_lt_disable_F77" != yes; then + + GCC=$lt_save_GCC + CC="$lt_save_CC" ++ CFLAGS="$lt_save_CFLAGS" + fi # test "$_lt_disable_F77" != yes + + AC_LANG_POP +@@ -6865,7 +7291,9 @@ if test "$_lt_disable_FC" != yes; then + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC ++ lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} ++ CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + +@@ -6921,7 +7349,8 @@ if test "$_lt_disable_FC" != yes; then + fi # test -n "$compiler" + + GCC=$lt_save_GCC +- CC="$lt_save_CC" ++ CC=$lt_save_CC ++ CFLAGS=$lt_save_CFLAGS + fi # test "$_lt_disable_FC" != yes + + AC_LANG_POP +@@ -6958,10 +7387,12 @@ _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. +-lt_save_CC="$CC" ++lt_save_CC=$CC ++lt_save_CFLAGS=$CFLAGS + lt_save_GCC=$GCC + GCC=yes + CC=${GCJ-"gcj"} ++CFLAGS=$GCJFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_TAGVAR(LD, $1)="$LD" +@@ -6992,7 +7423,8 @@ fi + AC_LANG_RESTORE + + GCC=$lt_save_GCC +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_GCJ_CONFIG + + +@@ -7027,9 +7459,11 @@ _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" ++lt_save_CFLAGS=$CFLAGS + lt_save_GCC=$GCC + GCC= + CC=${RC-"windres"} ++CFLAGS= + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) +@@ -7042,7 +7476,8 @@ fi + + GCC=$lt_save_GCC + AC_LANG_RESTORE +-CC="$lt_save_CC" ++CC=$lt_save_CC ++CFLAGS=$lt_save_CFLAGS + ])# _LT_LANG_RC_CONFIG + + +@@ -7101,6 +7536,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) + AC_SUBST([OBJDUMP]) + ]) + ++# _LT_DECL_DLLTOOL ++# ---------------- ++# Ensure DLLTOOL variable is set. ++m4_defun([_LT_DECL_DLLTOOL], ++[AC_CHECK_TOOL(DLLTOOL, dlltool, false) ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) ++AC_SUBST([DLLTOOL]) ++]) + + # _LT_DECL_SED + # ------------ +@@ -7194,8 +7638,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -7234,206 +7678,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl + ])# _LT_CHECK_SHELL_FEATURES + + +-# _LT_PROG_XSI_SHELLFNS +-# --------------------- +-# Bourne and XSI compatible variants of some useful shell functions. +-m4_defun([_LT_PROG_XSI_SHELLFNS], +-[case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $[*] )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} ++# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) ++# ------------------------------------------------------ ++# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and ++# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. ++m4_defun([_LT_PROG_FUNCTION_REPLACE], ++[dnl { ++sed -e '/^$1 ()$/,/^} # $1 /c\ ++$1 ()\ ++{\ ++m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) ++} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++]) + +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" + +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} ++# _LT_PROG_REPLACE_SHELLFNS ++# ------------------------- ++# Replace existing portable implementations of several shell functions with ++# equivalent extended shell implementations where those features are available.. ++m4_defun([_LT_PROG_REPLACE_SHELLFNS], ++[if test x"$xsi_shell" = xyes; then ++ _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac]) ++ ++ _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl ++ func_basename_result="${1##*/}"]) ++ ++ _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}"]) + +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"}]) + +-dnl func_dirname_and_basename +-dnl A portable version of this function is already defined in general.m4sh +-dnl so there is no need for it here. ++ _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl ++ func_split_long_opt_name=${1%%=*} ++ func_split_long_opt_arg=${1#*=}]) + +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} ++ _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl ++ func_split_short_opt_arg=${1#??} ++ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + +-# sed scripts: +-my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[[^=]]*=//' ++ _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac]) + +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) ++fi + +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$[@]"` +-} ++if test x"$lt_shell_append" = xyes; then ++ _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +-} ++ _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl ++ func_quote_for_eval "${2}" ++dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ ++ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + +-_LT_EOF +-esac ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi + +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" ++if test x"$_lt_function_replace_fail" = x":"; then ++ AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) ++fi ++]) + +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]+=\$[2]" +-} +-_LT_EOF ++# _LT_PATH_CONVERSION_FUNCTIONS ++# ----------------------------- ++# Determine which file name conversion functions should be used by ++# func_to_host_file (and, implicitly, by func_to_host_path). These are needed ++# for certain cross-compile configurations and native mingw. ++m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], ++[AC_REQUIRE([AC_CANONICAL_HOST])dnl ++AC_REQUIRE([AC_CANONICAL_BUILD])dnl ++AC_MSG_CHECKING([how to convert $build file names to $host format]) ++AC_CACHE_VAL(lt_cv_to_host_file_cmd, ++[case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac + ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$[1]=\$$[1]\$[2]" +-} +- +-_LT_EOF ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac + ;; +- esac ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++]) ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) ++_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], ++ [0], [convert $build file names to $host format])dnl ++ ++AC_MSG_CHECKING([how to convert $build file names to toolchain format]) ++AC_CACHE_VAL(lt_cv_to_tool_file_cmd, ++[#assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac + ]) ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) ++_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], ++ [0], [convert $build files to toolchain format])dnl ++])# _LT_PATH_CONVERSION_FUNCTIONS +diff --git a/ltmain.sh b/ltmain.sh +index 9503ec85d70..70e856e0659 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -1,10 +1,9 @@ +-# Generated from ltmain.m4sh. + +-# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a ++# libtool (GNU libtool) 2.4 + # Written by Gordon Matzigkeit , 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 8d1e561c942..a0291dfbfa7 100755 +--- a/opcodes/configure ++++ b/opcodes/configure +@@ -680,6 +680,9 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL ++ac_ct_AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -798,6 +801,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_targets + enable_werror +@@ -1462,6 +1466,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + + Some influential environment variables: + CC C compiler command +@@ -5403,8 +5409,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -5444,7 +5450,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -6130,8 +6136,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -6180,6 +6186,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -6196,6 +6276,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -6364,7 +6449,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -6518,6 +6604,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -6531,11 +6632,164 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -6551,7 +6805,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6571,11 +6825,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -6591,7 +6849,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -6610,6 +6868,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -6621,16 +6883,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -6972,8 +7290,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -7009,6 +7327,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -7050,6 +7369,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -7061,7 +7392,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -7087,8 +7418,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -7098,8 +7429,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -7136,6 +7467,16 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ + + + +@@ -7152,6 +7493,45 @@ fi + + + ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -7363,6 +7743,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -7926,6 +8423,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -8091,7 +8590,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -8180,7 +8680,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -8478,8 +8978,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -8645,6 +9143,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -8707,7 +9211,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -8764,13 +9268,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8831,6 +9339,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -9181,7 +9694,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -9280,12 +9794,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -9299,8 +9813,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -9318,8 +9832,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9365,8 +9879,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -9496,7 +10010,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9509,22 +10029,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -9536,7 +10063,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + + int +@@ -9549,22 +10082,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -9609,20 +10149,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -9683,7 +10266,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -9691,7 +10274,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -9707,7 +10290,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -9731,10 +10314,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -9813,23 +10396,36 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9914,7 +10510,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9933,9 +10529,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -10511,8 +11107,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -10545,13 +11142,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -10643,7 +11298,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -11439,7 +12094,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11442 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11483,10 +12138,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -11545,7 +12200,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11548 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -11589,10 +12244,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -13756,13 +14411,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -13777,14 +14439,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -13817,12 +14482,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -13877,8 +14542,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -13888,12 +14558,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -13909,7 +14581,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -13945,6 +14616,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -14710,7 +15382,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -14813,19 +15486,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -14855,6 +15551,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -14864,6 +15566,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -14978,12 +15683,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -15070,9 +15775,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -15088,6 +15790,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -15120,210 +15825,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +diff --git a/zlib/configure b/zlib/configure +index de6fa7e9960..cce448b6a53 100755 +--- a/zlib/configure ++++ b/zlib/configure +@@ -646,8 +646,11 @@ OTOOL + LIPO + NMEDIT + DSYMUTIL ++MANIFEST_TOOL + RANLIB ++ac_ct_AR + AR ++DLLTOOL + OBJDUMP + LN_S + NM +@@ -774,6 +777,7 @@ enable_static + with_pic + enable_fast_install + with_gnu_ld ++with_libtool_sysroot + enable_libtool_lock + enable_host_shared + ' +@@ -1428,6 +1432,8 @@ Optional Packages: + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-libtool-sysroot=DIR Search for dependent libraries within DIR ++ (or the compiler's sysroot if not specified). + + Some influential environment variables: + CC C compiler command +@@ -4147,8 +4153,8 @@ esac + + + +-macro_version='2.2.7a' +-macro_revision='1.3134' ++macro_version='2.4' ++macro_revision='1.3293' + + + +@@ -4188,7 +4194,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 + $as_echo_n "checking how to print strings... " >&6; } + # Test print first, because it will be a builtin if present. +-if test "X`print -r -- -n 2>/dev/null`" = X-n && \ ++if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' + elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then +@@ -5004,8 +5010,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; + # Try some XSI features + xsi_shell=no + ( _lt_dummy="a/b/c" +- test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ +- = c,a/b,, \ ++ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +@@ -5054,6 +5060,80 @@ esac + + + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 ++$as_echo_n "checking how to convert $build file names to $host format... " >&6; } ++if ${lt_cv_to_host_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ++ ;; ++ esac ++ ;; ++ *-*-cygwin* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ++ ;; ++ *-*-cygwin* ) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++ * ) # otherwise, assume *nix ++ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ++ ;; ++ esac ++ ;; ++ * ) # unhandled hosts (and "normal" native builds) ++ lt_cv_to_host_file_cmd=func_convert_file_noop ++ ;; ++esac ++ ++fi ++ ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 ++$as_echo "$lt_cv_to_host_file_cmd" >&6; } ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 ++$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } ++if ${lt_cv_to_tool_file_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ #assume ordinary cross tools, or native build. ++lt_cv_to_tool_file_cmd=func_convert_file_noop ++case $host in ++ *-*-mingw* ) ++ case $build in ++ *-*-mingw* ) # actually msys ++ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ++ ;; ++ esac ++ ;; ++esac ++ ++fi ++ ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 ++$as_echo "$lt_cv_to_tool_file_cmd" >&6; } ++ ++ ++ ++ ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 + $as_echo_n "checking for $LD option to reload object files... " >&6; } + if ${lt_cv_ld_reload_flag+:} false; then : +@@ -5070,6 +5150,11 @@ case $reload_flag in + esac + reload_cmds='$LD$reload_flag -o $output$reload_objs' + case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ if test "$GCC" != yes; then ++ reload_cmds=false ++ fi ++ ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' +@@ -5238,7 +5323,8 @@ mingw* | pw32*) + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else +- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ # Keep this pattern in sync with the one in func_win32_libid. ++ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; +@@ -5392,6 +5478,21 @@ esac + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 + $as_echo "$lt_cv_deplibs_check_method" >&6; } ++ ++file_magic_glob= ++want_nocaseglob=no ++if test "$build" = "$host"; then ++ case $host_os in ++ mingw* | pw32*) ++ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then ++ want_nocaseglob=yes ++ else ++ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` ++ fi ++ ;; ++ esac ++fi ++ + file_magic_cmd=$lt_cv_file_magic_cmd + deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown +@@ -5405,11 +5506,165 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + if test -n "$ac_tool_prefix"; then +- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +-set dummy ${ac_tool_prefix}ar; ac_word=$2 ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 ++$as_echo_n "checking how to associate runtime and link libraries... " >&6; } ++if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_sharedlib_from_linklib_cmd='unknown' ++ ++case $host_os in ++cygwin* | mingw* | pw32* | cegcc*) ++ # two different shell functions defined in ltmain.sh ++ # decide which to use based on capabilities of $DLLTOOL ++ case `$DLLTOOL --help 2>&1` in ++ *--identify-strict*) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ++ ;; ++ *) ++ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ++ ;; ++ esac ++ ;; ++*) ++ # fallback: assume linklib IS sharedlib ++ lt_cv_sharedlib_from_linklib_cmd="$ECHO" ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 ++$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } ++sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd ++test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ for ac_prog in ar ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_AR+:} false; then : +@@ -5425,7 +5680,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_AR="${ac_tool_prefix}ar" ++ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -5445,11 +5700,15 @@ $as_echo "no" >&6; } + fi + + ++ test -n "$AR" && break ++ done + fi +-if test -z "$ac_cv_prog_AR"; then ++if test -z "$AR"; then + ac_ct_AR=$AR +- # Extract the first word of "ar", so it can be a program name with args. +-set dummy ar; ac_word=$2 ++ for ac_prog in ar ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_ac_ct_AR+:} false; then : +@@ -5465,7 +5724,7 @@ do + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then +- ac_cv_prog_ac_ct_AR="ar" ++ ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +@@ -5484,6 +5743,10 @@ else + $as_echo "no" >&6; } + fi + ++ ++ test -n "$ac_ct_AR" && break ++done ++ + if test "x$ac_ct_AR" = x; then + AR="false" + else +@@ -5495,16 +5758,72 @@ ac_tool_warned=yes ;; + esac + AR=$ac_ct_AR + fi +-else +- AR="$ac_cv_prog_AR" + fi + +-test -z "$AR" && AR=ar +-test -z "$AR_FLAGS" && AR_FLAGS=cru ++: ${AR=ar} ++: ${AR_FLAGS=cru} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 ++$as_echo_n "checking for archiver @FILE support... " >&6; } ++if ${lt_cv_ar_at_file+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ar_at_file=no ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ + ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ echo conftest.$ac_objext > conftest.lst ++ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -eq 0; then ++ # Ensure the archiver fails upon bogus file names. ++ rm -f conftest.$ac_objext libconftest.a ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 ++ (eval $lt_ar_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; } ++ if test "$ac_status" -ne 0; then ++ lt_cv_ar_at_file=@ ++ fi ++ fi ++ rm -f conftest.* libconftest.a + ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 ++$as_echo "$lt_cv_ar_at_file" >&6; } + ++if test "x$lt_cv_ar_at_file" = xno; then ++ archiver_list_spec= ++else ++ archiver_list_spec=$lt_cv_ar_at_file ++fi + + + +@@ -5846,8 +6165,8 @@ esac + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + + # Transform an extracted symbol line into symbol name and symbol address +-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + + # Handle CRLF in mingw tool chain + opt_cr= +@@ -5883,6 +6202,7 @@ for ac_symprfx in "" "_"; do + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi ++ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no +@@ -5924,6 +6244,18 @@ _LT_EOF + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext ++/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ ++#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) ++/* DATA imports from DLLs on WIN32 con't be const, because runtime ++ relocations are performed -- see ld's documentation on pseudo-relocs. */ ++# define LT_DLSYM_CONST ++#elif defined(__osf__) ++/* This system does not cope well with relocations in const data. */ ++# define LT_DLSYM_CONST ++#else ++# define LT_DLSYM_CONST const ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -5935,7 +6267,7 @@ _LT_EOF + cat <<_LT_EOF >> conftest.$ac_ext + + /* The mapping between symbol names and symbols. */ +-const struct { ++LT_DLSYM_CONST struct { + const char *name; + void *address; + } +@@ -5961,8 +6293,8 @@ static const void *lt_preloaded_setup() { + _LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext +- lt_save_LIBS="$LIBS" +- lt_save_CFLAGS="$CFLAGS" ++ lt_globsym_save_LIBS=$LIBS ++ lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 +@@ -5972,8 +6304,8 @@ _LT_EOF + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi +- LIBS="$lt_save_LIBS" +- CFLAGS="$lt_save_CFLAGS" ++ LIBS=$lt_globsym_save_LIBS ++ CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi +@@ -6010,6 +6342,19 @@ else + $as_echo "ok" >&6; } + fi + ++# Response file support. ++if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ nm_file_list_spec='@' ++elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then ++ nm_file_list_spec='@' ++fi ++ ++ ++ ++ ++ ++ ++ + + + +@@ -6027,6 +6372,41 @@ fi + + + ++ ++ ++ ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 ++$as_echo_n "checking for sysroot... " >&6; } ++ ++# Check whether --with-libtool-sysroot was given. ++if test "${with_libtool_sysroot+set}" = set; then : ++ withval=$with_libtool_sysroot; ++else ++ with_libtool_sysroot=no ++fi ++ ++ ++lt_sysroot= ++case ${with_libtool_sysroot} in #( ++ yes) ++ if test "$GCC" = yes; then ++ lt_sysroot=`$CC --print-sysroot 2>/dev/null` ++ fi ++ ;; #( ++ /*) ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` ++ ;; #( ++ no|'') ++ ;; #( ++ *) ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5 ++$as_echo "${with_libtool_sysroot}" >&6; } ++ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ++ ;; ++esac ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 ++$as_echo "${lt_sysroot:-no}" >&6; } + + + +@@ -6241,6 +6621,123 @@ esac + + need_locks="$enable_libtool_lock" + ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. ++set dummy ${ac_tool_prefix}mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$MANIFEST_TOOL"; then ++ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL ++if test -n "$MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 ++$as_echo "$MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ++ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL ++ # Extract the first word of "mt", so it can be a program name with args. ++set dummy mt; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_MANIFEST_TOOL"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL ++if test -n "$ac_ct_MANIFEST_TOOL"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 ++$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_MANIFEST_TOOL" = x; then ++ MANIFEST_TOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL ++ fi ++else ++ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" ++fi ++ ++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 ++$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } ++if ${lt_cv_path_mainfest_tool+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_path_mainfest_tool=no ++ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 ++ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out ++ cat conftest.err >&5 ++ if $GREP 'Manifest Tool' conftest.out > /dev/null; then ++ lt_cv_path_mainfest_tool=yes ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 ++$as_echo "$lt_cv_path_mainfest_tool" >&6; } ++if test "x$lt_cv_path_mainfest_tool" != xyes; then ++ MANIFEST_TOOL=: ++fi ++ ++ ++ ++ ++ + + case $host_os in + rhapsody* | darwin*) +@@ -6807,6 +7304,8 @@ _LT_EOF + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 ++ echo "$RANLIB libconftest.a" >&5 ++ $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF + int main() { return 0;} + _LT_EOF +@@ -7269,7 +7768,8 @@ fi + LIBTOOL_DEPS="$ltmain" + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(SHELL) $(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + + + +@@ -7358,7 +7858,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, +@@ -7656,8 +8156,6 @@ fi + lt_prog_compiler_pic= + lt_prog_compiler_static= + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +-$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' +@@ -7823,6 +8321,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; ++ nagfor*) ++ # NAG Fortran compiler ++ lt_prog_compiler_wl='-Wl,-Wl,,' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) +@@ -7885,7 +8389,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in +- f77* | f90* | f95*) ++ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; +@@ -7942,13 +8446,17 @@ case $host_os in + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; + esac +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +-$as_echo "$lt_prog_compiler_pic" >&6; } +- +- +- +- + ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++if ${lt_cv_prog_compiler_pic+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 ++$as_echo "$lt_cv_prog_compiler_pic" >&6; } ++lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + + # + # Check to make sure the PIC flag actually works. +@@ -8009,6 +8517,11 @@ fi + + + ++ ++ ++ ++ ++ + # + # Check to make sure the static flag actually works. + # +@@ -8359,7 +8872,8 @@ _LT_EOF + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes +- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ++ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' +@@ -8458,12 +8972,12 @@ _LT_EOF + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' +- archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ +- $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac +@@ -8477,8 +8991,8 @@ _LT_EOF + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + +@@ -8496,8 +9010,8 @@ _LT_EOF + + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -8543,8 +9057,8 @@ _LT_EOF + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi +@@ -8674,7 +9188,13 @@ _LT_EOF + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. +- if test x$gcc_no_link = xyes; then ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -8690,22 +9210,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" +@@ -8717,7 +9244,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + else + # Determine the default libpath from the value encoded in an + # empty executable. +- if test x$gcc_no_link = xyes; then ++ if test "${lt_cv_aix_libpath+set}" = set; then ++ aix_libpath=$lt_cv_aix_libpath ++else ++ if ${lt_cv_aix_libpath_+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -8733,22 +9266,29 @@ main () + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : + +-lt_aix_libpath_sed=' +- /Import File Strings/,/^$/ { +- /^0/ { +- s/^0 *\(.*\)$/\1/ +- p +- } +- }' +-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-# Check for a 64-bit object if we didn't find anything. +-if test -z "$aix_libpath"; then +- aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +-fi ++ lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\([^ ]*\) *$/\1/ ++ p ++ } ++ }' ++ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ # Check for a 64-bit object if we didn't find anything. ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++ fi + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ if test -z "$lt_cv_aix_libpath_"; then ++ lt_cv_aix_libpath_="/usr/lib:/lib" ++ fi ++ ++fi ++ ++ aix_libpath=$lt_cv_aix_libpath_ ++fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, +@@ -8793,20 +9333,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. +- hardcode_libdir_flag_spec=' ' +- allow_undefined_flag=unsupported +- # Tell ltmain to make .lib files, not .a files. +- libext=lib +- # Tell ltmain to make .dll files, not .so files. +- shrext_cmds=".dll" +- # FIXME: Setting linknames here is a bad hack. +- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' +- # The linker will automatically build a .lib file if we build a DLL. +- old_archive_from_new_cmds='true' +- # FIXME: Should let the user specify the lib program. +- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' +- fix_srcfile_path='`cygpath -w "$srcfile"`' +- enable_shared_with_static_runtimes=yes ++ case $cc_basename in ++ cl*) ++ # Native MSVC ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ file_list_spec='@' ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; ++ else ++ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; ++ fi~ ++ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ ++ linknames=' ++ # The linker will not automatically build a static lib if we build a DLL. ++ # _LT_TAGVAR(old_archive_from_new_cmds, )='true' ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ # Don't use ranlib ++ old_postinstall_cmds='chmod 644 $oldlib' ++ postlink_cmds='lt_outputfile="@OUTPUT@"~ ++ lt_tool_outputfile="@TOOL_OUTPUT@"~ ++ case $lt_outputfile in ++ *.exe|*.EXE) ;; ++ *) ++ lt_outputfile="$lt_outputfile.exe" ++ lt_tool_outputfile="$lt_tool_outputfile.exe" ++ ;; ++ esac~ ++ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then ++ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; ++ $RM "$lt_outputfile.manifest"; ++ fi' ++ ;; ++ *) ++ # Assume MSVC wrapper ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ esac + ;; + + darwin* | rhapsody*) +@@ -8867,7 +9450,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) +- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no +@@ -8875,7 +9458,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux9*) + if test "$GCC" = yes; then +- archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi +@@ -8891,7 +9474,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi +@@ -8915,10 +9498,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) +- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else +@@ -8997,26 +9580,39 @@ fi + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then +- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. +- save_LDFLAGS="$LDFLAGS" +- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" +- if test x$gcc_no_link = xyes; then ++ # This should be the same for all languages, so no per-tag cache variable. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 ++$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } ++if ${lt_cv_irix_exported_symbol+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +-int foo(void) {} ++int foo (void) { return 0; } + _ACEOF + if ac_fn_c_try_link "$LINENO"; then : +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' +- ++ lt_cv_irix_exported_symbol=yes ++else ++ lt_cv_irix_exported_symbol=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +- LDFLAGS="$save_LDFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 ++$as_echo "$lt_cv_irix_exported_symbol" >&6; } ++ if test "$lt_cv_irix_exported_symbol" = yes; then ++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' +@@ -9101,7 +9697,7 @@ rm -f core conftest.err conftest.$ac_objext \ + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' +- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' +@@ -9120,9 +9716,9 @@ rm -f core conftest.err conftest.$ac_objext \ + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' +- archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ +- $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) +@@ -9698,8 +10294,9 @@ cygwin* | mingw* | pw32* | cegcc*) + need_version=no + need_lib_prefix=no + +- case $GCC,$host_os in +- yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ case $GCC,$cc_basename in ++ yes,*) ++ # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ +@@ -9732,13 +10329,71 @@ cygwin* | mingw* | pw32* | cegcc*) + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ++ dynamic_linker='Win32 ld.exe' ++ ;; ++ ++ *,cl*) ++ # Native MSVC ++ libname_spec='$name' ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ library_names_spec='${libname}.dll.lib' ++ ++ case $build_os in ++ mingw*) ++ sys_lib_search_path_spec= ++ lt_save_ifs=$IFS ++ IFS=';' ++ for lt_path in $LIB ++ do ++ IFS=$lt_save_ifs ++ # Let DOS variable expansion print the short 8.3 style file name. ++ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` ++ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" ++ done ++ IFS=$lt_save_ifs ++ # Convert to MSYS style. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ++ ;; ++ cygwin*) ++ # Convert to unix form, then to dos form, then back to unix form ++ # but this time dos style (no spaces!) so that the unix form looks ++ # like /cygdrive/c/PROGRA~1:/cygdr... ++ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` ++ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` ++ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ ;; ++ *) ++ sys_lib_search_path_spec="$LIB" ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # FIXME: find the short name or the path components, as spaces are ++ # common. (e.g. "Program Files" -> "PROGRA~1") ++ ;; ++ esac ++ ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ dynamic_linker='Win32 link.exe' + ;; + + *) ++ # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ dynamic_linker='Win32 ld.exe' + ;; + esac +- dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; +@@ -9830,7 +10485,7 @@ haiku*) + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes +- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib' ++ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +@@ -10644,7 +11299,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10647 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -10688,10 +11343,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -10750,7 +11405,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 10753 "configure" ++#line $LINENO "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -10794,10 +11449,10 @@ else + /* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ + #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +-void fnord () __attribute__((visibility("default"))); ++int fnord () __attribute__((visibility("default"))); + #endif + +-void fnord () { int i=42; } ++int fnord () { return 42; } + int main () + { + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); +@@ -12267,13 +12922,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' + lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' + lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' + lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' ++lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' + reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' + reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' + OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' + deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' + file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' ++file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' ++want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' ++sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' + AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' + AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' ++archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' + STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' + RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' + old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +@@ -12288,14 +12950,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de + lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' ++nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' ++lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' + objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' + MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' + lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' + lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' + need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' ++MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' + LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +@@ -12328,12 +12993,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q + hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' + inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' + link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' + always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' + export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' + exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' + include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' + prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' ++postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' + file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' + variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' + need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +@@ -12388,8 +13053,13 @@ reload_flag \ + OBJDUMP \ + deplibs_check_method \ + file_magic_cmd \ ++file_magic_glob \ ++want_nocaseglob \ ++DLLTOOL \ ++sharedlib_from_linklib_cmd \ + AR \ + AR_FLAGS \ ++archiver_list_spec \ + STRIP \ + RANLIB \ + CC \ +@@ -12399,12 +13069,14 @@ lt_cv_sys_global_symbol_pipe \ + lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++nm_file_list_spec \ + lt_prog_compiler_no_builtin_flag \ +-lt_prog_compiler_wl \ + lt_prog_compiler_pic \ ++lt_prog_compiler_wl \ + lt_prog_compiler_static \ + lt_cv_prog_compiler_c_o \ + need_locks \ ++MANIFEST_TOOL \ + DSYMUTIL \ + NMEDIT \ + LIPO \ +@@ -12420,7 +13092,6 @@ no_undefined_flag \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ +-fix_srcfile_path \ + exclude_expsyms \ + include_expsyms \ + file_list_spec \ +@@ -12456,6 +13127,7 @@ module_cmds \ + module_expsym_cmds \ + export_symbols_cmds \ + prelink_cmds \ ++postlink_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + finish_cmds \ +@@ -13054,7 +13726,8 @@ $as_echo X"$file" | + # NOTE: Changes made to this file will be lost: look at ltmain.sh. + # + # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +-# 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ++# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, ++# Inc. + # Written by Gordon Matzigkeit, 1996 + # + # This file is part of GNU Libtool. +@@ -13157,19 +13830,42 @@ SP2NL=$lt_lt_SP2NL + # turn newlines into spaces. + NL2SP=$lt_lt_NL2SP + ++# convert \$build file names to \$host format. ++to_host_file_cmd=$lt_cv_to_host_file_cmd ++ ++# convert \$build files to toolchain format. ++to_tool_file_cmd=$lt_cv_to_tool_file_cmd ++ + # An object symbol dumper. + OBJDUMP=$lt_OBJDUMP + + # Method to check whether dependent libraries are shared objects. + deplibs_check_method=$lt_deplibs_check_method + +-# Command to use when deplibs_check_method == "file_magic". ++# Command to use when deplibs_check_method = "file_magic". + file_magic_cmd=$lt_file_magic_cmd + ++# How to find potential files when deplibs_check_method = "file_magic". ++file_magic_glob=$lt_file_magic_glob ++ ++# Find potential files using nocaseglob when deplibs_check_method = "file_magic". ++want_nocaseglob=$lt_want_nocaseglob ++ ++# DLL creation program. ++DLLTOOL=$lt_DLLTOOL ++ ++# Command to associate shared and link libraries. ++sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd ++ + # The archiver. + AR=$lt_AR ++ ++# Flags to create an archive. + AR_FLAGS=$lt_AR_FLAGS + ++# How to feed a file listing to the archiver. ++archiver_list_spec=$lt_archiver_list_spec ++ + # A symbol stripping program. + STRIP=$lt_STRIP + +@@ -13199,6 +13895,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + ++# Specify filename containing input files for \$NM. ++nm_file_list_spec=$lt_nm_file_list_spec ++ ++# The root where to search for dependent libraries,and in which our libraries should be installed. ++lt_sysroot=$lt_sysroot ++ + # The name of the directory that contains temporary libtool files. + objdir=$objdir + +@@ -13208,6 +13910,9 @@ MAGIC_CMD=$MAGIC_CMD + # Must we lock files when doing compilation? + need_locks=$lt_need_locks + ++# Manifest tool. ++MANIFEST_TOOL=$lt_MANIFEST_TOOL ++ + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + +@@ -13322,12 +14027,12 @@ with_gcc=$GCC + # Compiler flag to turn off builtin functions. + no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +-# How to pass a linker flag through the compiler. +-wl=$lt_lt_prog_compiler_wl +- + # Additional compiler flags for building library objects. + pic_flag=$lt_lt_prog_compiler_pic + ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ + # Compiler flag to prevent dynamic linking. + link_static_flag=$lt_lt_prog_compiler_static + +@@ -13414,9 +14119,6 @@ inherit_rpath=$inherit_rpath + # Whether libtool must link a program against all its dependency libraries. + link_all_deplibs=$link_all_deplibs + +-# Fix the shell variable \$srcfile for the compiler. +-fix_srcfile_path=$lt_fix_srcfile_path +- + # Set to "yes" if exported symbols are required. + always_export_symbols=$always_export_symbols + +@@ -13432,6 +14134,9 @@ include_expsyms=$lt_include_expsyms + # Commands necessary for linking programs (against libraries) with templates. + prelink_cmds=$lt_prelink_cmds + ++# Commands necessary for finishing linking programs. ++postlink_cmds=$lt_postlink_cmds ++ + # Specify filename containing input files. + file_list_spec=$lt_file_list_spec + +@@ -13464,210 +14169,169 @@ ltmain="$ac_aux_dir/ltmain.sh" + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? +- sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- case $xsi_shell in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result="${1##*/}" +-} +- +-# func_dirname_and_basename file append nondir_replacement +-# perform func_basename and func_dirname in a single function +-# call: +-# dirname: Compute the dirname of FILE. If nonempty, +-# add APPEND to the result, otherwise set result +-# to NONDIR_REPLACEMENT. +-# value returned in "$func_dirname_result" +-# basename: Compute filename of FILE. +-# value retuned in "$func_basename_result" +-# Implementation must be kept synchronized with func_dirname +-# and func_basename. For efficiency, we do not delegate to +-# those functions but instead duplicate the functionality here. +-func_dirname_and_basename () +-{ +- case ${1} in +- */*) func_dirname_result="${1%/*}${2}" ;; +- * ) func_dirname_result="${3}" ;; +- esac +- func_basename_result="${1##*/}" +-} +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-func_stripname () +-{ +- # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are +- # positional parameters, so assign one to ordinary parameter first. +- func_stripname_result=${3} +- func_stripname_result=${func_stripname_result#"${1}"} +- func_stripname_result=${func_stripname_result%"${2}"} +-} +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=${1%%=*} +- func_opt_split_arg=${1#*=} +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- case ${1} in +- *.lo) func_lo2o_result=${1%.lo}.${objext} ;; +- *) func_lo2o_result=${1} ;; +- esac +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=${1%.*}.lo +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=$(( $* )) +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=${#1} +-} +- +-_LT_EOF +- ;; +- *) # Bourne compatible functions. +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_dirname file append nondir_replacement +-# Compute the dirname of FILE. If nonempty, add APPEND to the result, +-# otherwise set result to NONDIR_REPLACEMENT. +-func_dirname () +-{ +- # Extract subdirectory from the argument. +- func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` +- if test "X$func_dirname_result" = "X${1}"; then +- func_dirname_result="${3}" +- else +- func_dirname_result="$func_dirname_result${2}" +- fi +-} +- +-# func_basename file +-func_basename () +-{ +- func_basename_result=`$ECHO "${1}" | $SED "$basename"` +-} +- +- +-# func_stripname prefix suffix name +-# strip PREFIX and SUFFIX off of NAME. +-# PREFIX and SUFFIX must not contain globbing or regex special +-# characters, hashes, percent signs, but SUFFIX may contain a leading +-# dot (in which case that matches only a dot). +-# func_strip_suffix prefix name +-func_stripname () +-{ +- case ${2} in +- .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; +- *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; +- esac +-} +- +-# sed scripts: +-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +-my_sed_long_arg='1s/^-[^=]*=//' +- +-# func_opt_split +-func_opt_split () +-{ +- func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` +- func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` +-} +- +-# func_lo2o object +-func_lo2o () +-{ +- func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +-} +- +-# func_xform libobj-or-source +-func_xform () +-{ +- func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +-} +- +-# func_arith arithmetic-term... +-func_arith () +-{ +- func_arith_result=`expr "$@"` +-} +- +-# func_len string +-# STRING may not start with a hyphen. +-func_len () +-{ +- func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +-} +- +-_LT_EOF +-esac +- +-case $lt_shell_append in +- yes) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1+=\$2" +-} +-_LT_EOF +- ;; +- *) +- cat << \_LT_EOF >> "$cfgfile" +- +-# func_append var value +-# Append VALUE to the end of shell variable VAR. +-func_append () +-{ +- eval "$1=\$$1\$2" +-} +- +-_LT_EOF +- ;; +- esac +- +- +- sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ +- || (rm -f "$cfgfile"; exit 1) +- +- mv -f "$cfgfile" "$ofile" || ++ sed '$q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ if test x"$xsi_shell" = xyes; then ++ sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ ++func_dirname ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_basename ()$/,/^} # func_basename /c\ ++func_basename ()\ ++{\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ ++func_dirname_and_basename ()\ ++{\ ++\ case ${1} in\ ++\ */*) func_dirname_result="${1%/*}${2}" ;;\ ++\ * ) func_dirname_result="${3}" ;;\ ++\ esac\ ++\ func_basename_result="${1##*/}"\ ++} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ ++func_stripname ()\ ++{\ ++\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ ++\ # positional parameters, so assign one to ordinary parameter first.\ ++\ func_stripname_result=${3}\ ++\ func_stripname_result=${func_stripname_result#"${1}"}\ ++\ func_stripname_result=${func_stripname_result%"${2}"}\ ++} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ ++func_split_long_opt ()\ ++{\ ++\ func_split_long_opt_name=${1%%=*}\ ++\ func_split_long_opt_arg=${1#*=}\ ++} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ ++func_split_short_opt ()\ ++{\ ++\ func_split_short_opt_arg=${1#??}\ ++\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ ++} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ ++func_lo2o ()\ ++{\ ++\ case ${1} in\ ++\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ ++\ *) func_lo2o_result=${1} ;;\ ++\ esac\ ++} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_xform ()$/,/^} # func_xform /c\ ++func_xform ()\ ++{\ ++ func_xform_result=${1%.*}.lo\ ++} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_arith ()$/,/^} # func_arith /c\ ++func_arith ()\ ++{\ ++ func_arith_result=$(( $* ))\ ++} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_len ()$/,/^} # func_len /c\ ++func_len ()\ ++{\ ++ func_len_result=${#1}\ ++} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++fi ++ ++if test x"$lt_shell_append" = xyes; then ++ sed -e '/^func_append ()$/,/^} # func_append /c\ ++func_append ()\ ++{\ ++ eval "${1}+=\\${2}"\ ++} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ ++func_append_quoted ()\ ++{\ ++\ func_quote_for_eval "${2}"\ ++\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ ++} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++test 0 -eq $? || _lt_function_replace_fail=: ++ ++ ++ # Save a `func_append' function call where possible by direct use of '+=' ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++else ++ # Save a `func_append' function call even when '+=' is not available ++ sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ ++ && mv -f "$cfgfile.tmp" "$cfgfile" \ ++ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") ++ test 0 -eq $? || _lt_function_replace_fail=: ++fi ++ ++if test x"$_lt_function_replace_fail" = x":"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 ++$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} ++fi ++ ++ ++ mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch deleted file mode 100644 index 463de8063..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ef4ad1cb9ff1b5a871ffa792a71b3ad6d14eb3dc Mon Sep 17 00:00:00 2001 -From: Zhenhua Luo -Date: Sat, 11 Jun 2016 22:08:29 -0500 -Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic - -Signed-off-by: Zhenhua Luo - -Upstream-Status: Pending ---- - opcodes/ppc-opc.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c -index 7ef91d819b..145953d3c4 100644 ---- a/opcodes/ppc-opc.c -+++ b/opcodes/ppc-opc.c -@@ -5709,7 +5709,6 @@ const struct powerpc_opcode powerpc_opcodes[] = { - {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, - - {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, --{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}}, - - {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, - -@@ -5763,7 +5762,7 @@ const struct powerpc_opcode powerpc_opcodes[] = { - - {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, - {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, --{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}}, -+{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9, 0, {WC}}, - - {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, - diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch deleted file mode 100644 index 6acde1f78..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0014-Detect-64-bit-MIPS-targets.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 2f7f2389764ef1d699f6ad32057314024b7e84e7 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 31 Mar 2017 11:42:03 -0700 -Subject: [PATCH] Detect 64-bit MIPS targets - -Add mips64 target triplets and default to N64 - -Upstream-Status: Submitted -https://sourceware.org/ml/binutils/2016-08/msg00048.html - -Signed-off-by: Khem Raj ---- - gold/configure.tgt | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/gold/configure.tgt b/gold/configure.tgt -index aa7ec552ae..470515062e 100644 ---- a/gold/configure.tgt -+++ b/gold/configure.tgt -@@ -153,6 +153,13 @@ aarch64*-*) - targ_big_endian=false - targ_extra_big_endian=true - ;; -+mips*64*el*-*-*|mips*64*le*-*-*) -+ targ_obj=mips -+ targ_machine=EM_MIPS_RS3_LE -+ targ_size=64 -+ targ_big_endian=false -+ targ_extra_big_endian=true -+ ;; - mips*el*-*-*|mips*le*-*-*) - targ_obj=mips - targ_machine=EM_MIPS_RS3_LE -@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*) - targ_big_endian=false - targ_extra_big_endian=true - ;; -+mips*64*-*-*) -+ targ_obj=mips -+ targ_machine=EM_MIPS -+ targ_size=64 -+ targ_big_endian=true -+ targ_extra_big_endian=false -+ ;; - mips*-*-*) - targ_obj=mips - targ_machine=EM_MIPS diff --git a/poky/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch new file mode 100644 index 000000000..69a238378 --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils/0014-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch @@ -0,0 +1,52 @@ +From f791a5d84475c02356f16679b7f4ee9c9c3408aa Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 2 Mar 2015 01:42:38 +0000 +Subject: [PATCH 14/17] Fix rpath in libtool when sysroot is enabled + +Enabling sysroot support in libtool exposed a bug where the final +library had an RPATH encoded into it which still pointed to the +sysroot. This works around the issue until it gets sorted out +upstream. + +Fix suggested by Richard Purdie + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Scott Garman +Signed-off-by: Khem Raj +--- + ltmain.sh | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/ltmain.sh b/ltmain.sh +index 70e856e0659..11ee684cccf 100644 +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -8035,9 +8035,11 @@ EOF + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ func_stripname '=' '' "$libdir" ++ libdir=$func_stripname_result + 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 +@@ -8770,6 +8772,10 @@ EOF + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ func_stripname '=' '' "$libdir" ++ libdir=$func_stripname_result + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch b/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch index a794719bd..e848f146b 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0015-sync-with-OE-libtool-changes.patch @@ -1,7 +1,7 @@ -From 392d474a72d37b669f53ab9f0fa913b958af93f6 Mon Sep 17 00:00:00 2001 +From e087f96e219d47c4d2244c3f32397e56d41bfdec Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 6 Mar 2017 23:33:27 -0800 -Subject: [PATCH] sync with OE libtool changes +Subject: [PATCH 15/17] sync with OE libtool changes Apply these patches from our libtool patches as not only are redundant RPATHs a waste of space but they can cause incorrect linking when native packages are @@ -26,7 +26,7 @@ Signed-off-by: Khem Raj 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/ltmain.sh b/ltmain.sh -index 11ee684ccc..3b19ac1532 100644 +index 11ee684cccf..3b19ac15328 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -8053,8 +8053,16 @@ EOF @@ -84,3 +84,6 @@ index 11ee684ccc..3b19ac1532 100644 fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch b/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch index c694b42dc..400b79823 100644 --- a/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch +++ b/poky/meta/recipes-devtools/binutils/binutils/0016-Check-for-clang-before-checking-gcc-version.patch @@ -1,7 +1,7 @@ -From 67590a44c1256491fa674426f0170d5d05377d05 Mon Sep 17 00:00:00 2001 +From ae5a7d622dc9addb2ca9fc85889c45964c025a9c 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 +Subject: [PATCH 16/17] Check for clang before checking gcc version Clang advertises itself to be gcc 4.2.1, so when compiling this test here fails since gcc < 4.4.5 did not support -static-libstdc++ but thats @@ -18,10 +18,10 @@ Signed-off-by: Khem Raj 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configure b/configure -index 590b03c2da0..46f116fdb54 100755 +index 6782f8b6ab8..72f5766b363 100755 --- a/configure +++ b/configure -@@ -5140,7 +5140,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +@@ -5143,7 +5143,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31,10 +31,10 @@ index 590b03c2da0..46f116fdb54 100755 #endif int main() {} diff --git a/configure.ac b/configure.ac -index d3f85e6f5d5..c0eb1343121 100644 +index 55beb1dea46..3f9e613e2d9 100644 --- a/configure.ac +++ b/configure.ac -@@ -1309,7 +1309,7 @@ if test "$GCC" = yes; then +@@ -1312,7 +1312,7 @@ if test "$GCC" = yes; then AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc]) AC_LANG_PUSH(C++) AC_LINK_IFELSE([AC_LANG_SOURCE([ @@ -44,5 +44,5 @@ index d3f85e6f5d5..c0eb1343121 100644 #endif int main() {}])], -- -2.26.1 +2.28.0 diff --git a/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch b/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch deleted file mode 100644 index be59f9dca..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/0017-binutils-drop-redundant-program_name-definition-fno-.patch +++ /dev/null @@ -1,61 +0,0 @@ -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: Backport (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/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch deleted file mode 100644 index 53e3caf44..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils/CVE-2020-0551.patch +++ /dev/null @@ -1,549 +0,0 @@ -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/poky/meta/recipes-devtools/binutils/binutils_2.34.bb b/poky/meta/recipes-devtools/binutils/binutils_2.34.bb deleted file mode 100644 index 2e645e1ed..000000000 --- a/poky/meta/recipes-devtools/binutils/binutils_2.34.bb +++ /dev/null @@ -1,65 +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-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/poky/meta/recipes-devtools/binutils/binutils_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils_2.35.bb new file mode 100644 index 000000000..2e645e1ed --- /dev/null +++ b/poky/meta/recipes-devtools/binutils/binutils_2.35.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/poky/meta/recipes-devtools/build-compare/build-compare_git.bb b/poky/meta/recipes-devtools/build-compare/build-compare_git.bb deleted file mode 100644 index 74a954db4..000000000 --- a/poky/meta/recipes-devtools/build-compare/build-compare_git.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Build Result Compare Script" -DESCRIPTION = "This package contains scripts to find out if the build result\ -differs to a former build." -HOMEPAGE = "https://github.com/openSUSE/build-compare" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SRC_URI = "git://github.com/openSUSE/build-compare.git" - -# Date matches entry in build-compare.changes and date of SRCREV. -# -SRCREV = "102d844ce052c6dec6c56ee1d471bde72a1b4633" -PE = "1" -PV = "2020.05.29+git${SRCPV}" -UPSTREAM_CHECK_COMMITS = "1" - -S = "${WORKDIR}/git" - -BBCLASSEXTEND = "native nativesdk" - -do_install() { - install -d ${D}/${bindir} - install -m 755 functions.sh ${D}/${bindir} - install -m 755 pkg-diff.sh ${D}/${bindir} - install -m 755 same-build-result.sh ${D}/${bindir} - install -m 755 srpm-check.sh ${D}/${bindir} -} - -RDEPENDS_${PN} += "bash" diff --git a/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb deleted file mode 100644 index 852583dfd..000000000 --- a/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "a fast C/C++ compiler cache" -DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \ -by caching the result of previous compilations and detecting when the \ -same compilation is being done again. Supported languages are C, C\+\+, \ -Objective-C and Objective-C++." -HOMEPAGE = "http://ccache.samba.org" -SECTION = "devel" - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" - -DEPENDS = "zlib" - -SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" -SRC_URI[sha256sum] = "447ddf21a5f0ffa6b6d26839ae876a6d17d0d7e3533926cdf78ecd11dad793f8" - -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/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb new file mode 100644 index 000000000..fd004f4c9 --- /dev/null +++ b/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb @@ -0,0 +1,32 @@ +SUMMARY = "a fast C/C++ compiler cache" +DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \ +by caching the result of previous compilations and detecting when the \ +same compilation is being done again. Supported languages are C, C\+\+, \ +Objective-C and Objective-C++." +HOMEPAGE = "http://ccache.samba.org" +SECTION = "devel" + +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" + +DEPENDS = "zlib" + +SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI[sha256sum] = "34309a59d4b6b6b33756366aa9d3144a4655587be9f914476b4c0e2d36365f01" + +UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" + +inherit autotools + +# 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/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb b/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb index c52f136be..d92b9c304 100644 --- a/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb +++ b/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb @@ -17,6 +17,7 @@ RRECOMMENDS_${PN}-server = "avahi-daemon" SRC_URI = "git://github.com/distcc/distcc.git \ file://fix-gnome.patch \ file://separatebuilddir.patch \ + file://0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch \ file://default \ file://distcc \ file://distcc.service" diff --git a/poky/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch b/poky/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch new file mode 100644 index 000000000..86c07c11f --- /dev/null +++ b/poky/meta/recipes-devtools/distcc/files/0001-Fix-build-with-gcc-10-which-defaults-to-fno-common-c.patch @@ -0,0 +1,34 @@ +From 98530865795300008fe06bb647a6fc2dddfc7967 Mon Sep 17 00:00:00 2001 +From: Romain Geissler +Date: Mon, 27 Jan 2020 09:28:43 +0000 +Subject: [PATCH] Fix build with gcc 10 which defaults to -fno-common (cf + https://gcc.gnu.org/gcc-10/porting_to.html) + +This fixes the following link error I see when I use the latest gcc 10 +git branch: +/opt/1A/toolchain/x86_64-v20.0.7/lib/gcc/x86_64-1a-linux-gnu/10.0.1/../../../../x86_64-1a-linux-gnu/bin/ld: src/serve.o:(.bss+0x0): multiple definition of `stats_text'; src/prefork.o:(.bss+0x0): first defined here +/opt/1A/toolchain/x86_64-v20.0.7/lib/gcc/x86_64-1a-linux-gnu/10.0.1/../../../../x86_64-1a-linux-gnu/bin/ld: src/stats.o:(.data+0x20): multiple definition of `stats_text'; src/prefork.o:(.bss+0x0): first defined here +collect2: error: ld returned 1 exit status + +Upstream-Status: Backport [https://github.com/distcc/distcc/pull/373] +Signed-off-by: Khem Raj +--- + src/stats.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/stats.h b/src/stats.h +index 9bde285..74d4690 100644 +--- a/src/stats.h ++++ b/src/stats.h +@@ -33,7 +33,7 @@ enum stats_e { STATS_TCP_ACCEPT, STATS_REJ_BAD_REQ, STATS_REJ_OVERLOAD, + STATS_COMPILE_OK, STATS_COMPILE_ERROR, STATS_COMPILE_TIMEOUT, + STATS_CLI_DISCONN, STATS_OTHER, STATS_ENUM_MAX }; + +-const char *stats_text[20]; ++extern const char *stats_text[20]; + + int dcc_stats_init(void); + void dcc_stats_init_kid(void); +-- +2.28.0 + diff --git a/poky/meta/recipes-devtools/flex/flex/check-funcs.patch b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch index 037ca81fd..762275e7f 100644 --- a/poky/meta/recipes-devtools/flex/flex/check-funcs.patch +++ b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch @@ -1,10 +1,4 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From c42de062bbdc7c31d7181c10a74202d493280ada Mon Sep 17 00:00:00 2001 -From: Explorer09 -Date: Tue, 27 Feb 2018 09:10:12 +0800 -Subject: [PATCH] build: Move dnl comments out of AC_CHECK_FUNCS +Subject: build: Move dnl comments out of AC_CHECK_FUNCS Due to a bug, autoheader (2.69) will treat M4 dnl comments in a quoted argument of AC_CHECK_FUNCS as function tokens and generate a lot of @@ -20,28 +14,20 @@ I have reported the autoheader bug here: As a workaround, let's move comments out of AC_CHECK_FUNCS. +Upstream-Status: Backport +Signed-off-by: Ross Burton + Signed-off-by: Kang-Che Sung +Signed-off-by: Zang Ruochen --- - configure.ac | 29 +++++++++++++---------------- - 1 file changed, 13 insertions(+), 16 deletions(-) + configure.ac | 28 +++++++++++++--------------- + 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac -index 55e774b0..d0f3b7da 100644 +index 55e774b..5ea3a93 100644 --- a/configure.ac +++ b/configure.ac -@@ -166,6 +166,7 @@ strtol dnl - AC_CHECK_FUNCS([dnl - pow dnl Used only by "examples/manual/expr" - setlocale dnl Needed only if NLS is enabled -+reallocarr dnl NetBSD function. Use reallocarray if not available. - reallocarray dnl OpenBSD function. We have replacement if not available. - ]) - -diff --git a/configure.ac b/configure.ac -index 3c977a4e..9c53590f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -158,22 +158,19 @@ AC_FUNC_REALLOC +@@ -153,21 +153,19 @@ AC_FUNC_REALLOC AS_IF([test "$cross_compiling" = yes], AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation])) @@ -58,7 +44,6 @@ index 3c977a4e..9c53590f 100644 -AC_CHECK_FUNCS([dnl -pow dnl Used only by "examples/manual/expr" -setlocale dnl Needed only if NLS is enabled --reallocarr dnl NetBSD function. Use reallocarray if not available. -reallocarray dnl OpenBSD function. We have replacement if not available. -]) +dnl Autoheader (<= 2.69) bug: "dnl" comments in a quoted argument of @@ -77,3 +62,6 @@ index 3c977a4e..9c53590f 100644 AC_CONFIG_FILES( Makefile +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc deleted file mode 100644 index 5f310301b..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc +++ /dev/null @@ -1,121 +0,0 @@ -require gcc-common.inc - -# Third digit in PV should be incremented after a minor release - -PV = "10.1.0" - -# BINV should be incremented to a revision after a minor gcc release - -BINV = "10.1.0" - -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-10.1:${FILE_DIRNAME}/gcc-10.1/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 \ -" - -BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" -#RELEASE ?= "93a49d2d2292893b9b7f38132df949c70942838c" -#BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip" -SRC_URI = "\ - ${BASEURI} \ - file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ - 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-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ - file://0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ - file://0022-aarch64-Add-support-for-musl-ldso.patch \ - file://0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ - file://0024-handle-sysroot-support-for-nativesdk-gcc.patch \ - file://0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ - file://0026-Fix-various-_FOR_BUILD-and-related-variables.patch \ - file://0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ - file://0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ - file://0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ - file://0030-sync-gcc-stddef.h-with-musl.patch \ - file://0031-fix-segmentation-fault-in-precompiled-header-generat.patch \ - file://0032-Fix-for-testsuite-failure.patch \ - file://0033-Re-introduce-spe-commandline-options.patch \ - file://0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ - file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ - file://0036-Enable-CET-in-cross-compiler-if-possible.patch \ - file://0037-mingw32-Enable-operation_not_supported.patch \ - file://0038-libatomic-Do-not-enforce-march-on-aarch64.patch \ - file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \ - file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \ - file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \ - file://pr96130.patch \ -" -SRC_URI[sha256sum] = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2" - -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" -# For dev release snapshotting -#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 \ - --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-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/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch deleted file mode 100644 index 73de4c759..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch +++ /dev/null @@ -1,202 +0,0 @@ -CVE: CVE-2020-13844 -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001 -From: Matthew Malcomson -Date: Thu, 9 Jul 2020 09:11:58 +0100 -Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation - flags - -Here we introduce the flags that will be used for straight line speculation. - -The new flag introduced is `-mharden-sls=`. -This flag can take arguments of `none`, `all`, or a comma seperated list of one -or more of `retbr` or `blr`. -`none` indicates no special mitigation of the straight line speculation -vulnerability. -`all` requests all mitigations currently implemented. -`retbr` requests that the RET and BR instructions have a speculation barrier -inserted after them. -`blr` requests that BLR instructions are replaced by a BL to a function stub -using a BR with a speculation barrier after it. - -Setting this on a per-function basis using attributes or the like is not -enabled, but may be in the future. - -gcc/ChangeLog: - -2020-06-02 Matthew Malcomson - - * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): - New. - (aarch64_harden_sls_blr_p): New. - * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): - New. - (aarch64_harden_sls_retbr_p): New. - (aarch64_harden_sls_blr_p): New. - (aarch64_validate_sls_mitigation): New. - (aarch64_override_options): Parse options for SLS mitigation. - * config/aarch64/aarch64.opt (-mharden-sls): New option. - * doc/invoke.texi: Document new option. ---- - gcc/config/aarch64/aarch64-protos.h | 3 ++ - gcc/config/aarch64/aarch64.c | 76 +++++++++++++++++++++++++++++++++++++ - gcc/config/aarch64/aarch64.opt | 4 ++ - gcc/doc/invoke.texi | 12 ++++++ - 4 files changed, 95 insertions(+) - -diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h -index 723d9ba..eb5f4b4 100644 ---- a/gcc/config/aarch64/aarch64-protos.h -+++ b/gcc/config/aarch64/aarch64-protos.h -@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; - - tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); - -+extern bool aarch64_harden_sls_retbr_p (void); -+extern bool aarch64_harden_sls_blr_p (void); -+ - #endif /* GCC_AARCH64_PROTOS_H */ -diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c -index b86434a..437a9cf 100644 ---- a/gcc/config/aarch64/aarch64.c -+++ b/gcc/config/aarch64/aarch64.c -@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res, - return false; - } - -+/* Straight line speculation indicators. */ -+enum aarch64_sls_hardening_type -+{ -+ SLS_NONE = 0, -+ SLS_RETBR = 1, -+ SLS_BLR = 2, -+ SLS_ALL = 3, -+}; -+static enum aarch64_sls_hardening_type aarch64_sls_hardening; -+ -+/* Return whether we should mitigatate Straight Line Speculation for the RET -+ and BR instructions. */ -+bool -+aarch64_harden_sls_retbr_p (void) -+{ -+ return aarch64_sls_hardening & SLS_RETBR; -+} -+ -+/* Return whether we should mitigatate Straight Line Speculation for the BLR -+ instruction. */ -+bool -+aarch64_harden_sls_blr_p (void) -+{ -+ return aarch64_sls_hardening & SLS_BLR; -+} -+ -+/* As of yet we only allow setting these options globally, in the future we may -+ allow setting them per function. */ -+static void -+aarch64_validate_sls_mitigation (const char *const_str) -+{ -+ char *token_save = NULL; -+ char *str = NULL; -+ -+ if (strcmp (const_str, "none") == 0) -+ { -+ aarch64_sls_hardening = SLS_NONE; -+ return; -+ } -+ if (strcmp (const_str, "all") == 0) -+ { -+ aarch64_sls_hardening = SLS_ALL; -+ return; -+ } -+ -+ char *str_root = xstrdup (const_str); -+ str = strtok_r (str_root, ",", &token_save); -+ if (!str) -+ error ("invalid argument given to %<-mharden-sls=%>"); -+ -+ int temp = SLS_NONE; -+ while (str) -+ { -+ if (strcmp (str, "blr") == 0) -+ temp |= SLS_BLR; -+ else if (strcmp (str, "retbr") == 0) -+ temp |= SLS_RETBR; -+ else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0) -+ { -+ error ("%<%s%> must be by itself for %<-mharden-sls=%>", str); -+ break; -+ } -+ else -+ { -+ error ("invalid argument %<%s%> for %<-mharden-sls=%>", str); -+ break; -+ } -+ str = strtok_r (NULL, ",", &token_save); -+ } -+ aarch64_sls_hardening = (aarch64_sls_hardening_type) temp; -+ free (str_root); -+} -+ - /* Parses CONST_STR for branch protection features specified in - aarch64_branch_protect_types, and set any global variables required. Returns - the parsing result and assigns LAST_STR to the last processed token from -@@ -14738,6 +14811,9 @@ aarch64_override_options (void) - selected_arch = NULL; - selected_tune = NULL; - -+ if (aarch64_harden_sls_string) -+ aarch64_validate_sls_mitigation (aarch64_harden_sls_string); -+ - if (aarch64_branch_protection_string) - aarch64_validate_mbranch_protection (aarch64_branch_protection_string); - -diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt -index d99d14c..5170361 100644 ---- a/gcc/config/aarch64/aarch64.opt -+++ b/gcc/config/aarch64/aarch64.opt -@@ -71,6 +71,10 @@ mgeneral-regs-only - Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save - Generate code which uses only the general registers. - -+mharden-sls= -+Target RejectNegative Joined Var(aarch64_harden_sls_string) -+Generate code to mitigate against straight line speculation. -+ - mfix-cortex-a53-835769 - Target Report Var(aarch64_fix_a53_err835769) Init(2) Save - Workaround for ARM Cortex-A53 Erratum number 835769. -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index a2794a6..bd5b77a 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}. - -msign-return-address=@var{scope} @gol - -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf} - +@var{b-key}]|@var{bti} @gol -+-mharden-sls=@var{opts} @gol - -march=@var{name} -mcpu=@var{name} -mtune=@var{name} @gol - -moverride=@var{string} -mverbose-cost-dump @gol - -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol -@@ -17065,6 +17066,17 @@ functions. The optional argument @samp{b-key} can be used to sign the functions - with the B-key instead of the A-key. - @samp{bti} turns on branch target identification mechanism. - -+@item -mharden-sls=@var{opts} -+@opindex mharden-sls -+Enable compiler hardening against straight line speculation (SLS). -+@var{opts} is a comma-separated list of the following options: -+@table @samp -+@item retbr -+@item blr -+@end table -+In addition, @samp{-mharden-sls=all} enables all SLS hardening while -+@samp{-mharden-sls=none} disables all SLS hardening. -+ - @item -msve-vector-bits=@var{bits} - @opindex msve-vector-bits - Specify the number of bits in an SVE vector register. This option only has --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch deleted file mode 100644 index 82ae9f8d1..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,39 +0,0 @@ -From f2a5dc3bc7e5727d6bf77e1c6e8a31a6f000883d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:37:11 +0400 -Subject: [PATCH] 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 4cc938ebb7d..226a64939d1 100755 ---- a/configure -+++ b/configure -@@ -7722,7 +7722,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 c78d9cbea62..f024f4bac9b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3227,7 +3227,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/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch deleted file mode 100644 index 823cc8b66..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch +++ /dev/null @@ -1,607 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001 -From: Matthew Malcomson -Date: Thu, 9 Jul 2020 09:11:59 +0100 -Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR - instructions - -Instructions following RET or BR are not necessarily executed. In order -to avoid speculation past RET and BR we can simply append a speculation -barrier. - -Since these speculation barriers will not be architecturally executed, -they are not expected to add a high performance penalty. - -The speculation barrier is to be SB when targeting architectures which -have this enabled, and DSB SY + ISB otherwise. - -We add tests for each of the cases where such an instruction was seen. - -This is implemented by modifying each machine description pattern that -emits either a RET or a BR instruction. We choose not to use something -like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the -`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn` -patterns and we find it preferable to implement the functionality in the -same way for every pattern. - -There is one particular case which is slightly tricky. The -implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs -to be mitigated against. The trampoline template is used *once* per -compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the -builtin macro __LIBGCC_TRAMPOLINE_SIZE__. -In the future we may implement function specific attributes to turn on -and off hardening on a per-function basis. -The fixed nature of the trampoline described above implies it will be -safer to ensure this speculation barrier is always used. - -Testing: - Bootstrap and regtest done on aarch64-none-linux - Used a temporary hack(1) to use these options on every test in the - testsuite and a script to check that the output never emitted an - unmitigated RET or BR. - -1) Temporary hack was a change to the testsuite to always use -`-save-temps` and run a script on the assembly output of those -compilations which produced one to ensure every RET or BR is immediately -followed by a speculation barrier. - -gcc/ChangeLog: - - * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. - * config/aarch64/aarch64.c (aarch64_output_casesi): Emit - speculation barrier after BR instruction if needs be. - (aarch64_trampoline_init): Handle ptr_mode value & adjust size - of code copied. - (aarch64_sls_barrier): New. - (aarch64_asm_trampoline_template): Add needed barriers. - * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. - (TARGET_SB): New. - (TRAMPOLINE_SIZE): Account for barrier. - * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, - simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): - Emit barrier if needs be, also account for possible barrier using - "sls_length" attribute. - (sls_length): New attribute. - (length): Determine default using any non-default sls_length - value. - -gcc/testsuite/ChangeLog: - - * gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test. - * gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c: - New test. - * gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file. - * lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok): - New proc. ---- - gcc/config/aarch64/aarch64-protos.h | 1 + - gcc/config/aarch64/aarch64.c | 41 ++++++- - gcc/config/aarch64/aarch64.h | 10 +- - gcc/config/aarch64/aarch64.md | 76 +++++++++---- - .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c | 21 ++++ - .../aarch64/sls-mitigation/sls-miti-retbr.c | 119 +++++++++++++++++++++ - .../aarch64/sls-mitigation/sls-mitigation.exp | 73 +++++++++++++ - gcc/testsuite/lib/target-supports.exp | 2 +- - 8 files changed, 318 insertions(+), 25 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c - create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c - create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp - -diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h -index eb5f4b4..ee0ffde 100644 ---- a/gcc/config/aarch64/aarch64-protos.h -+++ b/gcc/config/aarch64/aarch64-protos.h -@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; - - tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); - -+const char *aarch64_sls_barrier (int); - extern bool aarch64_harden_sls_retbr_p (void); - extern bool aarch64_harden_sls_blr_p (void); - -diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c -index 437a9cf..44e3d1f 100644 ---- a/gcc/config/aarch64/aarch64.c -+++ b/gcc/config/aarch64/aarch64.c -@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) - static void - aarch64_asm_trampoline_template (FILE *f) - { -- int offset1 = 16; -- int offset2 = 20; -+ int offset1 = 24; -+ int offset2 = 28; - - if (aarch64_bti_enabled ()) - { -@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f) - } - asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]); - -+ /* We always emit a speculation barrier. -+ This is because the same trampoline template is used for every nested -+ function. Since nested functions are not particularly common or -+ performant we don't worry too much about the extra instructions to copy -+ around. -+ This is not yet a problem, since we have not yet implemented function -+ specific attributes to choose between hardening against straight line -+ speculation or not, but such function specific attributes are likely to -+ happen in the future. */ -+ asm_fprintf (f, "\tdsb\tsy\n\tisb\n"); -+ - /* The trampoline needs an extra padding instruction. In case if BTI is - enabled the padding instruction is replaced by the BTI instruction at - the beginning. */ -@@ -10890,10 +10901,14 @@ static void - aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) - { - rtx fnaddr, mem, a_tramp; -- const int tramp_code_sz = 16; -+ const int tramp_code_sz = 24; - - /* Don't need to copy the trailing D-words, we fill those in below. */ -- emit_block_move (m_tramp, assemble_trampoline_template (), -+ /* We create our own memory address in Pmode so that `emit_block_move` can -+ use parts of the backend which expect Pmode addresses. */ -+ rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0)); -+ emit_block_move (gen_rtx_MEM (BLKmode, temp), -+ assemble_trampoline_template (), - GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL); - mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz); - fnaddr = XEXP (DECL_RTL (fndecl), 0); -@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands) - output_asm_insn (buf, operands); - output_asm_insn (patterns[index][1], operands); - output_asm_insn ("br\t%3", operands); -+ output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()), -+ operands); - assemble_label (asm_out_file, label); - return ""; - } -@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack () - #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI - #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND - -+/* Helper function for straight line speculation. -+ Return what barrier should be emitted for straight line speculation -+ mitigation. -+ When not mitigating against straight line speculation this function returns -+ an empty string. -+ When mitigating against straight line speculation, use: -+ * SB when the v8.5-A SB extension is enabled. -+ * DSB+ISB otherwise. */ -+const char * -+aarch64_sls_barrier (int mitigation_required) -+{ -+ return mitigation_required -+ ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb") -+ : ""; -+} -+ - /* Target-specific selftests. */ - - #if CHECKING_P -diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h -index 1ce23c6..c21015f 100644 ---- a/gcc/config/aarch64/aarch64.h -+++ b/gcc/config/aarch64/aarch64.h -@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version; - #define AARCH64_ISA_F32MM (aarch64_isa_flags & AARCH64_FL_F32MM) - #define AARCH64_ISA_F64MM (aarch64_isa_flags & AARCH64_FL_F64MM) - #define AARCH64_ISA_BF16 (aarch64_isa_flags & AARCH64_FL_BF16) -+#define AARCH64_ISA_SB (aarch64_isa_flags & AARCH64_FL_SB) - - /* Crypto is an optional extension to AdvSIMD. */ - #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) -@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version; - #define TARGET_FIX_ERR_A53_835769_DEFAULT 1 - #endif - -+/* SB instruction is enabled through +sb. */ -+#define TARGET_SB (AARCH64_ISA_SB) -+ - /* Apply the workaround for Cortex-A53 erratum 835769. */ - #define TARGET_FIX_ERR_A53_835769 \ - ((aarch64_fix_a53_err835769 == 2) \ -@@ -1058,8 +1062,10 @@ typedef struct - - #define RETURN_ADDR_RTX aarch64_return_addr - --/* BTI c + 3 insns + 2 pointer-sized entries. */ --#define TRAMPOLINE_SIZE (TARGET_ILP32 ? 24 : 32) -+/* BTI c + 3 insns -+ + sls barrier of DSB + ISB. -+ + 2 pointer-sized entries. */ -+#define TRAMPOLINE_SIZE (24 + (TARGET_ILP32 ? 8 : 16)) - - /* Trampolines contain dwords, so must be dword aligned. */ - #define TRAMPOLINE_ALIGNMENT 64 -diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md -index 8c8be3c..dda04ee 100644 ---- a/gcc/config/aarch64/aarch64.md -+++ b/gcc/config/aarch64/aarch64.md -@@ -407,10 +407,25 @@ - ;; Attribute that specifies whether the alternative uses MOVPRFX. - (define_attr "movprfx" "no,yes" (const_string "no")) - -+;; Attribute to specify that an alternative has the length of a single -+;; instruction plus a speculation barrier. -+(define_attr "sls_length" "none,retbr,casesi" (const_string "none")) -+ - (define_attr "length" "" - (cond [(eq_attr "movprfx" "yes") - (const_int 8) -- ] (const_int 4))) -+ -+ (eq_attr "sls_length" "retbr") -+ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4) -+ (match_test "TARGET_SB") (const_int 8)] -+ (const_int 12)) -+ -+ (eq_attr "sls_length" "casesi") -+ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16) -+ (match_test "TARGET_SB") (const_int 20)] -+ (const_int 24)) -+ ] -+ (const_int 4))) - - ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has - ;; no predicated insns. -@@ -447,8 +462,12 @@ - (define_insn "indirect_jump" - [(set (pc) (match_operand:DI 0 "register_operand" "r"))] - "" -- "br\\t%0" -- [(set_attr "type" "branch")] -+ { -+ output_asm_insn ("br\\t%0", operands); -+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); -+ } -+ [(set_attr "type" "branch") -+ (set_attr "sls_length" "retbr")] - ) - - (define_insn "jump" -@@ -765,7 +784,7 @@ - "* - return aarch64_output_casesi (operands); - " -- [(set_attr "length" "16") -+ [(set_attr "sls_length" "casesi") - (set_attr "type" "branch")] - ) - -@@ -844,18 +863,23 @@ - [(return)] - "" - { -+ const char *ret = NULL; - if (aarch64_return_address_signing_enabled () - && TARGET_ARMV8_3 - && !crtl->calls_eh_return) - { - if (aarch64_ra_sign_key == AARCH64_KEY_B) -- return "retab"; -+ ret = "retab"; - else -- return "retaa"; -+ ret = "retaa"; - } -- return "ret"; -+ else -+ ret = "ret"; -+ output_asm_insn (ret, operands); -+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); - } -- [(set_attr "type" "branch")] -+ [(set_attr "type" "branch") -+ (set_attr "sls_length" "retbr")] - ) - - (define_expand "return" -@@ -867,8 +891,12 @@ - (define_insn "simple_return" - [(simple_return)] - "" -- "ret" -- [(set_attr "type" "branch")] -+ { -+ output_asm_insn ("ret", operands); -+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); -+ } -+ [(set_attr "type" "branch") -+ (set_attr "sls_length" "retbr")] - ) - - (define_insn "*cb1" -@@ -1066,10 +1094,16 @@ - (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) - (return)] - "SIBLING_CALL_P (insn)" -- "@ -- br\\t%0 -- b\\t%c0" -- [(set_attr "type" "branch, branch")] -+ { -+ if (which_alternative == 0) -+ { -+ output_asm_insn ("br\\t%0", operands); -+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); -+ } -+ return "b\\t%c0"; -+ } -+ [(set_attr "type" "branch, branch") -+ (set_attr "sls_length" "retbr,none")] - ) - - (define_insn "*sibcall_value_insn" -@@ -1080,10 +1114,16 @@ - (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) - (return)] - "SIBLING_CALL_P (insn)" -- "@ -- br\\t%1 -- b\\t%c1" -- [(set_attr "type" "branch, branch")] -+ { -+ if (which_alternative == 0) -+ { -+ output_asm_insn ("br\\t%1", operands); -+ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); -+ } -+ return "b\\t%c1"; -+ } -+ [(set_attr "type" "branch, branch") -+ (set_attr "sls_length" "retbr,none")] - ) - - ;; Call subroutine returning any type. -diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c -new file mode 100644 -index 0000000..fa1887a ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c -@@ -0,0 +1,21 @@ -+/* Avoid ILP32 since pacret is only available for LP64 */ -+/* { dg-do compile { target { ! ilp32 } } } */ -+/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */ -+ -+/* Testing the do_return pattern for retaa and retab. */ -+long retbr_subcall(void); -+long retbr_do_return_retaa(void) -+{ -+ return retbr_subcall()+1; -+} -+ -+__attribute__((target("branch-protection=pac-ret+b-key"))) -+long retbr_do_return_retab(void) -+{ -+ return retbr_subcall()+1; -+} -+ -+/* Ensure there are no BR or RET instructions which are not directly followed -+ by a speculation barrier. */ -+/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */ -+/* { dg-final { scan-assembler-not {ret\t} } } */ -diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c -new file mode 100644 -index 0000000..76b8d03 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c -@@ -0,0 +1,119 @@ -+/* We ensure that -Wpedantic is off since it complains about the trampolines -+ we explicitly want to test. */ -+/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */ -+/* -+ Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR -+ instructions. -+ */ -+typedef int (foo) (int, int); -+typedef void (bar) (int, int); -+struct sls_testclass { -+ foo *x; -+ bar *y; -+ int left; -+ int right; -+}; -+ -+int -+retbr_sibcall_value_insn (struct sls_testclass x) -+{ -+ return x.x(x.left, x.right); -+} -+ -+void -+retbr_sibcall_insn (struct sls_testclass x) -+{ -+ x.y(x.left, x.right); -+} -+ -+/* Aim to test two different returns. -+ One that introduces a tail call in the middle of the function, and one that -+ has a normal return. */ -+int -+retbr_multiple_returns (struct sls_testclass x) -+{ -+ int temp; -+ if (x.left % 10) -+ return x.x(x.left, 100); -+ else if (x.right % 20) -+ { -+ return x.x(x.left * x.right, 100); -+ } -+ temp = x.left % x.right; -+ temp *= 100; -+ temp /= 2; -+ return temp % 3; -+} -+ -+void -+retbr_multiple_returns_void (struct sls_testclass x) -+{ -+ if (x.left % 10) -+ { -+ x.y(x.left, 100); -+ } -+ else if (x.right % 20) -+ { -+ x.y(x.left * x.right, 100); -+ } -+ return; -+} -+ -+/* Testing the casesi jump via register. */ -+__attribute__ ((optimize ("Os"))) -+int -+retbr_casesi_dispatch (struct sls_testclass x) -+{ -+ switch (x.left) -+ { -+ case -5: -+ return -2; -+ case -3: -+ return -1; -+ case 0: -+ return 0; -+ case 3: -+ return 1; -+ case 5: -+ break; -+ default: -+ __builtin_unreachable (); -+ } -+ return x.right; -+} -+ -+/* Testing the BR in trampolines is mitigated against. */ -+void f1 (void *); -+void f3 (void *, void (*)(void *)); -+void f2 (void *); -+ -+int -+retbr_trampolines (void *a, int b) -+{ -+ if (!b) -+ { -+ f1 (a); -+ return 1; -+ } -+ if (b) -+ { -+ void retbr_tramp_internal (void *c) -+ { -+ if (c == a) -+ f2 (c); -+ } -+ f3 (a, retbr_tramp_internal); -+ } -+ return 0; -+} -+ -+/* Testing the indirect_jump pattern. */ -+void -+retbr_indirect_jump (int *buf) -+{ -+ __builtin_longjmp(buf, 1); -+} -+ -+/* Ensure there are no BR or RET instructions which are not directly followed -+ by a speculation barrier. */ -+/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */ -diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp -new file mode 100644 -index 0000000..8122503 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp -@@ -0,0 +1,73 @@ -+# Regression driver for SLS mitigation on AArch64. -+# Copyright (C) 2020 Free Software Foundation, Inc. -+# Contributed by ARM Ltd. -+# -+# This file is part of GCC. -+# -+# GCC is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3, or (at your option) -+# any later version. -+# -+# GCC is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GCC; see the file COPYING3. If not see -+# . */ -+ -+# Exit immediately if this isn't an AArch64 target. -+if {![istarget aarch64*-*-*] } then { -+ return -+} -+ -+# Load support procs. -+load_lib gcc-dg.exp -+load_lib torture-options.exp -+ -+# If a testcase doesn't have special options, use these. -+global DEFAULT_CFLAGS -+if ![info exists DEFAULT_CFLAGS] then { -+ set DEFAULT_CFLAGS " " -+} -+ -+# Initialize `dg'. -+dg-init -+torture-init -+ -+# Use different architectures as well as the normal optimisation options. -+# (i.e. use both SB and DSB+ISB barriers). -+ -+set save-dg-do-what-default ${dg-do-what-default} -+# Main loop. -+# Run with torture tests (i.e. a bunch of different optimisation levels) just -+# to increase test coverage. -+set dg-do-what-default assemble -+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ -+ "-save-temps" $DEFAULT_CFLAGS -+ -+# Run the same tests but this time with SB extension. -+# Since not all supported assemblers will support that extension we decide -+# whether to assemble or just compile based on whether the extension is -+# supported for the available assembler. -+ -+set templist {} -+foreach x $DG_TORTURE_OPTIONS { -+ lappend templist "$x -march=armv8.3-a+sb " -+ lappend templist "$x -march=armv8-a+sb " -+} -+set-torture-options $templist -+if { [check_effective_target_aarch64_asm_sb_ok] } { -+ set dg-do-what-default assemble -+} else { -+ set dg-do-what-default compile -+} -+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ -+ "-save-temps" $DEFAULT_CFLAGS -+set dg-do-what-default ${save-dg-do-what-default} -+ -+# All done. -+torture-finish -+dg-finish -diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp -index 8a186dd..9d2e093 100644 ---- a/gcc/testsuite/lib/target-supports.exp -+++ b/gcc/testsuite/lib/target-supports.exp -@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } { - # various architecture extensions via the .arch_extension pseudo-op. - - foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve" -- "i8mm" "f32mm" "f64mm" "bf16" } { -+ "i8mm" "f32mm" "f64mm" "bf16" "sb" } { - eval [string map [list FUNC $aarch64_ext] { - proc check_effective_target_aarch64_asm_FUNC_ok { } { - if { [istarget aarch64*-*-*] } { --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-gcc-poison-system-directories.patch deleted file mode 100644 index 30a848601..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-gcc-poison-system-directories.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 74cc21f474402cf3578e37e1d7a1a22bbd070f6a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH] gcc: poison-system-directories - -Add /sw/include and /opt/include based on the original -zecke-no-host-includes.patch patch. The original patch checked for -/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 65a82410abc..415f38fa1f4 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -682,6 +682,10 @@ Wreturn-local-addr - Common Var(warn_return_local_addr) Init(1) Warning - Warn about returning a pointer/reference to a local or temporary variable. - -+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 809e7b26823..5adeaeed36b 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -224,6 +224,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 cd3d9516fce..8de766a942c 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -1010,6 +1010,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 -@@ -1766,6 +1767,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 -@@ -30235,6 +30238,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 0de3b4bf97b..8bfd6feb780 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6595,6 +6595,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 f98161391a0..f12d8d12150 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -348,6 +348,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol -+-Wno-poison-system-directories @gol - -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol - -Wrestrict -Wno-return-local-addr -Wreturn-type @gol - -Wno-scalar-storage-order -Wsequence-point @gol -@@ -6924,6 +6925,14 @@ made up of data only and thus requires no special treatment. But, for - most targets, it is made up of code and thus requires the stack to be - made executable in order for the program to work properly. - -+@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 9f790db0daf..b2200c5185a 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1041,6 +1041,8 @@ proper position among the other output files. */ - "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ - "%X %{o*} %{e*} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ -+ %{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 8a2bda00f80..9098ab044ab 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch deleted file mode 100644 index 716a36717..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch +++ /dev/null @@ -1,658 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001 -From: Matthew Malcomson -Date: Thu, 9 Jul 2020 09:11:59 +0100 -Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction - -This patch introduces the mitigation for Straight Line Speculation past -the BLR instruction. - -This mitigation replaces BLR instructions with a BL to a stub which uses -a BR to jump to the original value. These function stubs are then -appended with a speculation barrier to ensure no straight line -speculation happens after these jumps. - -When optimising for speed we use a set of stubs for each function since -this should help the branch predictor make more accurate predictions -about where a stub should branch. - -When optimising for size we use one set of stubs for all functions. -This set of stubs can have human readable names, and we are using -`__call_indirect_x` for register x. - -When BTI branch protection is enabled the BLR instruction can jump to a -`BTI c` instruction using any register, while the BR instruction can -only jump to a `BTI c` instruction using the x16 or x17 registers. -Hence, in order to ensure this transformation is safe we mov the value -of the original register into x16 and use x16 for the BR. - -As an example when optimising for size: -a - BLR x0 -instruction would get transformed to something like - BL __call_indirect_x0 -where __call_indirect_x0 labels a thunk that contains -__call_indirect_x0: - MOV X16, X0 - BR X16 - - -The first version of this patch used local symbols specific to a -compilation unit to try and avoid relocations. -This was mistaken since functions coming from the same compilation unit -can still be in different sections, and the assembler will insert -relocations at jumps between sections. - -On any relocation the linker is permitted to emit a veneer to handle -jumps between symbols that are very far apart. The registers x16 and -x17 may be clobbered by these veneers. -Hence the function stubs cannot rely on the values of x16 and x17 being -the same as just before the function stub is called. - -Similar can be said for the hot/cold partitioning of single functions, -so function-local stubs have the same restriction. - -This updated version of the patch never emits function stubs for x16 and -x17, and instead forces other registers to be used. - -Given the above, there is now no benefit to local symbols (since they -are not enough to avoid dealing with linker intricacies). This patch -now uses global symbols with hidden visibility each stored in their own -COMDAT section. This means stubs can be shared between compilation -units while still avoiding the PLT indirection. - -This patch also removes the `__call_indirect_x30` stub (and -function-local equivalent) which would simply jump back to the original -location. - -The function-local stubs are emitted to the assembly output file in one -chunk, which means we need not add the speculation barrier directly -after each one. -This is because we know for certain that the instructions directly after -the BR in all but the last function stub will be from another one of -these stubs and hence will not contain a speculation gadget. -Instead we add a speculation barrier at the end of the sequence of -stubs. - -The global stubs are emitted in COMDAT/.linkonce sections by -themselves so that the linker can remove duplicates from multiple object -files. This means they are not emitted in one chunk, and each one must -include the speculation barrier. - -Another difference is that since the global stubs are shared across -compilation units we do not know that all functions will be targeting an -architecture supporting the SB instruction. -Rather than provide multiple stubs for each architecture, we provide a -stub that will work for all architectures -- using the DSB+ISB barrier. - -This mitigation does not apply for BLR instructions in the following -places: -- Some accesses to thread-local variables use a code sequence with a BLR - instruction. This code sequence is part of the binary interface between - compiler and linker. If this BLR instruction needs to be mitigated, it'd - probably be best to do so in the linker. It seems that the code sequence - for thread-local variable access is unlikely to lead to a Spectre Revalation - Gadget. -- PLT stubs are produced by the linker and each contain a BLR instruction. - It seems that at most only after the last PLT stub a Spectre Revalation - Gadget might appear. - -Testing: - Bootstrap and regtest on AArch64 - (with BOOT_CFLAGS="-mharden-sls=retbr,blr") - Used a temporary hack(1) in gcc-dg.exp to use these options on every - test in the testsuite, a slight modification to emit the speculation - barrier after every function stub, and a script to check that the - output never emitted a BLR, or unmitigated BR or RET instruction. - Similar on an aarch64-none-elf cross-compiler. - -1) Temporary hack emitted a speculation barrier at the end of every stub -function, and used a script to ensure that: - a) Every RET or BR is immediately followed by a speculation barrier. - b) No BLR instruction is emitted by compiler. - -gcc/ChangeLog: - - * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): - New declaration. - * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new - stub registers class. - (aarch64_class_max_nregs): Likewise. - (aarch64_register_move_cost): Likewise. - (aarch64_sls_shared_thunks): Global array to store stub labels. - (aarch64_sls_emit_function_stub): New. - (aarch64_create_blr_label): New. - (aarch64_sls_emit_blr_function_thunks): New. - (aarch64_sls_emit_shared_blr_thunks): New. - (aarch64_asm_file_end): New. - (aarch64_indirect_call_asm): New. - (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. - (TARGET_ASM_FUNCTION_EPILOGUE): Use - aarch64_sls_emit_blr_function_thunks. - * config/aarch64/aarch64.h (STB_REGNUM_P): New. - (enum reg_class): Add STUB_REGS class. - (machine_function): Introduce `call_via` array for - function-local stub labels. - * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use - aarch64_indirect_call_asm to emit code when hardening BLR - instructions. - * config/aarch64/constraints.md (Ucr): New constraint - representing registers for indirect calls. Is GENERAL_REGS - usually, and STUB_REGS when hardening BLR instruction against - SLS. - * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class - is also a general register. - -gcc/testsuite/ChangeLog: - - * gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test. - * gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test. ---- - gcc/config/aarch64/aarch64-protos.h | 1 + - gcc/config/aarch64/aarch64.c | 225 ++++++++++++++++++++- - gcc/config/aarch64/aarch64.h | 15 ++ - gcc/config/aarch64/aarch64.md | 11 +- - gcc/config/aarch64/constraints.md | 9 + - gcc/config/aarch64/predicates.md | 3 +- - .../aarch64/sls-mitigation/sls-miti-blr-bti.c | 40 ++++ - .../aarch64/sls-mitigation/sls-miti-blr.c | 33 +++ - 8 files changed, 328 insertions(+), 9 deletions(-) - create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c - create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c - -diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h -index ee0ffde..839f801 100644 ---- a/gcc/config/aarch64/aarch64-protos.h -+++ b/gcc/config/aarch64/aarch64-protos.h -@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; - tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); - - const char *aarch64_sls_barrier (int); -+const char *aarch64_indirect_call_asm (rtx); - extern bool aarch64_harden_sls_retbr_p (void); - extern bool aarch64_harden_sls_blr_p (void); - -diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c -index 2389d49..0f7bba3 100644 ---- a/gcc/config/aarch64/aarch64.c -+++ b/gcc/config/aarch64/aarch64.c -@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x) - enum reg_class - aarch64_regno_regclass (unsigned regno) - { -+ if (STUB_REGNUM_P (regno)) -+ return STUB_REGS; -+ - if (GP_REGNUM_P (regno)) - return GENERAL_REGS; - -@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode) - unsigned int nregs, vec_flags; - switch (regclass) - { -+ case STUB_REGS: - case TAILCALL_ADDR_REGS: - case POINTER_REGS: - case GENERAL_REGS: -@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode, - = aarch64_tune_params.regmove_cost; - - /* Caller save and pointer regs are equivalent to GENERAL_REGS. */ -- if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS) -+ if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS -+ || to == STUB_REGS) - to = GENERAL_REGS; - -- if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS) -+ if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS -+ || from == STUB_REGS) - from = GENERAL_REGS; - - /* Make RDFFR very expensive. In particular, if we know that the FFR -@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required) - : ""; - } - -+static GTY (()) tree aarch64_sls_shared_thunks[30]; -+static GTY (()) bool aarch64_sls_shared_thunks_needed = false; -+const char *indirect_symbol_names[30] = { -+ "__call_indirect_x0", -+ "__call_indirect_x1", -+ "__call_indirect_x2", -+ "__call_indirect_x3", -+ "__call_indirect_x4", -+ "__call_indirect_x5", -+ "__call_indirect_x6", -+ "__call_indirect_x7", -+ "__call_indirect_x8", -+ "__call_indirect_x9", -+ "__call_indirect_x10", -+ "__call_indirect_x11", -+ "__call_indirect_x12", -+ "__call_indirect_x13", -+ "__call_indirect_x14", -+ "__call_indirect_x15", -+ "", /* "__call_indirect_x16", */ -+ "", /* "__call_indirect_x17", */ -+ "__call_indirect_x18", -+ "__call_indirect_x19", -+ "__call_indirect_x20", -+ "__call_indirect_x21", -+ "__call_indirect_x22", -+ "__call_indirect_x23", -+ "__call_indirect_x24", -+ "__call_indirect_x25", -+ "__call_indirect_x26", -+ "__call_indirect_x27", -+ "__call_indirect_x28", -+ "__call_indirect_x29", -+}; -+ -+/* Function to create a BLR thunk. This thunk is used to mitigate straight -+ line speculation. Instead of a simple BLR that can be speculated past, -+ we emit a BL to this thunk, and this thunk contains a BR to the relevant -+ register. These thunks have the relevant speculation barries put after -+ their indirect branch so that speculation is blocked. -+ -+ We use such a thunk so the speculation barriers are kept off the -+ architecturally executed path in order to reduce the performance overhead. -+ -+ When optimizing for size we use stubs shared by the linked object. -+ When optimizing for performance we emit stubs for each function in the hope -+ that the branch predictor can better train on jumps specific for a given -+ function. */ -+rtx -+aarch64_sls_create_blr_label (int regnum) -+{ -+ gcc_assert (STUB_REGNUM_P (regnum)); -+ if (optimize_function_for_size_p (cfun)) -+ { -+ /* For the thunks shared between different functions in this compilation -+ unit we use a named symbol -- this is just for users to more easily -+ understand the generated assembly. */ -+ aarch64_sls_shared_thunks_needed = true; -+ const char *thunk_name = indirect_symbol_names[regnum]; -+ if (aarch64_sls_shared_thunks[regnum] == NULL) -+ { -+ /* Build a decl representing this function stub and record it for -+ later. We build a decl here so we can use the GCC machinery for -+ handling sections automatically (through `get_named_section` and -+ `make_decl_one_only`). That saves us a lot of trouble handling -+ the specifics of different output file formats. */ -+ tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL, -+ get_identifier (thunk_name), -+ build_function_type_list (void_type_node, -+ NULL_TREE)); -+ DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL, -+ NULL_TREE, void_type_node); -+ TREE_PUBLIC (decl) = 1; -+ TREE_STATIC (decl) = 1; -+ DECL_IGNORED_P (decl) = 1; -+ DECL_ARTIFICIAL (decl) = 1; -+ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl)); -+ resolve_unique_section (decl, 0, false); -+ aarch64_sls_shared_thunks[regnum] = decl; -+ } -+ -+ return gen_rtx_SYMBOL_REF (Pmode, thunk_name); -+ } -+ -+ if (cfun->machine->call_via[regnum] == NULL) -+ cfun->machine->call_via[regnum] -+ = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ()); -+ return cfun->machine->call_via[regnum]; -+} -+ -+/* Helper function for aarch64_sls_emit_blr_function_thunks and -+ aarch64_sls_emit_shared_blr_thunks below. */ -+static void -+aarch64_sls_emit_function_stub (FILE *out_file, int regnum) -+{ -+ /* Save in x16 and branch to that function so this transformation does -+ not prevent jumping to `BTI c` instructions. */ -+ asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum); -+ asm_fprintf (out_file, "\tbr\tx16\n"); -+} -+ -+/* Emit all BLR stubs for this particular function. -+ Here we emit all the BLR stubs needed for the current function. Since we -+ emit these stubs in a consecutive block we know there will be no speculation -+ gadgets between each stub, and hence we only emit a speculation barrier at -+ the end of the stub sequences. -+ -+ This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook. */ -+void -+aarch64_sls_emit_blr_function_thunks (FILE *out_file) -+{ -+ if (! aarch64_harden_sls_blr_p ()) -+ return; -+ -+ bool any_functions_emitted = false; -+ /* We must save and restore the current function section since this assembly -+ is emitted at the end of the function. This means it can be emitted *just -+ after* the cold section of a function. That cold part would be emitted in -+ a different section. That switch would trigger a `.cfi_endproc` directive -+ to be emitted in the original section and a `.cfi_startproc` directive to -+ be emitted in the new section. Switching to the original section without -+ restoring would mean that the `.cfi_endproc` emitted as a function ends -+ would happen in a different section -- leaving an unmatched -+ `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc` -+ in the standard text section. */ -+ section *save_text_section = in_section; -+ switch_to_section (function_section (current_function_decl)); -+ for (int regnum = 0; regnum < 30; ++regnum) -+ { -+ rtx specu_label = cfun->machine->call_via[regnum]; -+ if (specu_label == NULL) -+ continue; -+ -+ targetm.asm_out.print_operand (out_file, specu_label, 0); -+ asm_fprintf (out_file, ":\n"); -+ aarch64_sls_emit_function_stub (out_file, regnum); -+ any_functions_emitted = true; -+ } -+ if (any_functions_emitted) -+ /* Can use the SB if needs be here, since this stub will only be used -+ by the current function, and hence for the current target. */ -+ asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true)); -+ switch_to_section (save_text_section); -+} -+ -+/* Emit shared BLR stubs for the current compilation unit. -+ Over the course of compiling this unit we may have converted some BLR -+ instructions to a BL to a shared stub function. This is where we emit those -+ stub functions. -+ This function is for the stubs shared between different functions in this -+ compilation unit. We share when optimizing for size instead of speed. -+ -+ This function is called through the TARGET_ASM_FILE_END hook. */ -+void -+aarch64_sls_emit_shared_blr_thunks (FILE *out_file) -+{ -+ if (! aarch64_sls_shared_thunks_needed) -+ return; -+ -+ for (int regnum = 0; regnum < 30; ++regnum) -+ { -+ tree decl = aarch64_sls_shared_thunks[regnum]; -+ if (!decl) -+ continue; -+ -+ const char *name = indirect_symbol_names[regnum]; -+ switch_to_section (get_named_section (decl, NULL, 0)); -+ ASM_OUTPUT_ALIGN (out_file, 2); -+ targetm.asm_out.globalize_label (out_file, name); -+ /* Only emits if the compiler is configured for an assembler that can -+ handle visibility directives. */ -+ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN); -+ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function"); -+ ASM_OUTPUT_LABEL (out_file, name); -+ aarch64_sls_emit_function_stub (out_file, regnum); -+ /* Use the most conservative target to ensure it can always be used by any -+ function in the translation unit. */ -+ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n"); -+ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl); -+ } -+} -+ -+/* Implement TARGET_ASM_FILE_END. */ -+void -+aarch64_asm_file_end () -+{ -+ aarch64_sls_emit_shared_blr_thunks (asm_out_file); -+ /* Since this function will be called for the ASM_FILE_END hook, we ensure -+ that what would be called otherwise (e.g. `file_end_indicate_exec_stack` -+ for FreeBSD) still gets called. */ -+#ifdef TARGET_ASM_FILE_END -+ TARGET_ASM_FILE_END (); -+#endif -+} -+ -+const char * -+aarch64_indirect_call_asm (rtx addr) -+{ -+ gcc_assert (REG_P (addr)); -+ if (aarch64_harden_sls_blr_p ()) -+ { -+ rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr)); -+ output_asm_insn ("bl\t%0", &stub_label); -+ } -+ else -+ output_asm_insn ("blr\t%0", &addr); -+ return ""; -+} -+ - /* Target-specific selftests. */ - - #if CHECKING_P -@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p - #undef TARGET_MD_ASM_ADJUST - #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust - -+#undef TARGET_ASM_FILE_END -+#define TARGET_ASM_FILE_END aarch64_asm_file_end -+ -+#undef TARGET_ASM_FUNCTION_EPILOGUE -+#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks -+ - struct gcc_target targetm = TARGET_INITIALIZER; - - #include "gt-aarch64.h" -diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h -index 8e0fc37..7331450 100644 ---- a/gcc/config/aarch64/aarch64.h -+++ b/gcc/config/aarch64/aarch64.h -@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version; - #define GP_REGNUM_P(REGNO) \ - (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM)) - -+/* Registers known to be preserved over a BL instruction. This consists of the -+ GENERAL_REGS without x16, x17, and x30. The x30 register is changed by the -+ BL instruction itself, while the x16 and x17 registers may be used by -+ veneers which can be inserted by the linker. */ -+#define STUB_REGNUM_P(REGNO) \ -+ (GP_REGNUM_P (REGNO) \ -+ && (REGNO) != R16_REGNUM \ -+ && (REGNO) != R17_REGNUM \ -+ && (REGNO) != R30_REGNUM) \ -+ - #define FP_REGNUM_P(REGNO) \ - (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM)) - -@@ -667,6 +677,7 @@ enum reg_class - { - NO_REGS, - TAILCALL_ADDR_REGS, -+ STUB_REGS, - GENERAL_REGS, - STACK_REG, - POINTER_REGS, -@@ -689,6 +700,7 @@ enum reg_class - { \ - "NO_REGS", \ - "TAILCALL_ADDR_REGS", \ -+ "STUB_REGS", \ - "GENERAL_REGS", \ - "STACK_REG", \ - "POINTER_REGS", \ -@@ -708,6 +720,7 @@ enum reg_class - { \ - { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \ - { 0x00030000, 0x00000000, 0x00000000 }, /* TAILCALL_ADDR_REGS */\ -+ { 0x3ffcffff, 0x00000000, 0x00000000 }, /* STUB_REGS */ \ - { 0x7fffffff, 0x00000000, 0x00000003 }, /* GENERAL_REGS */ \ - { 0x80000000, 0x00000000, 0x00000000 }, /* STACK_REG */ \ - { 0xffffffff, 0x00000000, 0x00000003 }, /* POINTER_REGS */ \ -@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function - struct aarch64_frame frame; - /* One entry for each hard register. */ - bool reg_is_wrapped_separately[LAST_SAVED_REGNUM]; -+ /* One entry for each general purpose register. */ -+ rtx call_via[SP_REGNUM]; - bool label_is_assembled; - } machine_function; - #endif -diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md -index dda04ee..43da754 100644 ---- a/gcc/config/aarch64/aarch64.md -+++ b/gcc/config/aarch64/aarch64.md -@@ -1022,16 +1022,15 @@ - ) - - (define_insn "*call_insn" -- [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf")) -+ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf")) - (match_operand 1 "" "")) - (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) - (clobber (reg:DI LR_REGNUM))] - "" - "@ -- blr\\t%0 -+ * return aarch64_indirect_call_asm (operands[0]); - bl\\t%c0" -- [(set_attr "type" "call, call")] --) -+ [(set_attr "type" "call, call")]) - - (define_expand "call_value" - [(parallel -@@ -1050,13 +1049,13 @@ - - (define_insn "*call_value_insn" - [(set (match_operand 0 "" "") -- (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf")) -+ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf")) - (match_operand 2 "" ""))) - (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) - (clobber (reg:DI LR_REGNUM))] - "" - "@ -- blr\\t%1 -+ * return aarch64_indirect_call_asm (operands[1]); - bl\\t%c1" - [(set_attr "type" "call, call")] - ) -diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md -index d993268..8cc6f50 100644 ---- a/gcc/config/aarch64/constraints.md -+++ b/gcc/config/aarch64/constraints.md -@@ -24,6 +24,15 @@ - (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS" - "@internal Registers suitable for an indirect tail call") - -+(define_register_constraint "Ucr" -+ "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS" -+ "@internal Registers to be used for an indirect call. -+ This is usually the general registers, but when we are hardening against -+ Straight Line Speculation we disallow x16, x17, and x30 so we can use -+ indirection stubs. These indirection stubs cannot use the above registers -+ since they will be reached by a BL that may have to go through a linker -+ veneer.") -+ - (define_register_constraint "w" "FP_REGS" - "Floating point and SIMD vector registers.") - -diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md -index 215fcec..1754b1e 100644 ---- a/gcc/config/aarch64/predicates.md -+++ b/gcc/config/aarch64/predicates.md -@@ -32,7 +32,8 @@ - - (define_predicate "aarch64_general_reg" - (and (match_operand 0 "register_operand") -- (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) -+ (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS -+ || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) - - ;; Return true if OP a (const_int 0) operand. - (define_predicate "const0_operand" -diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c -new file mode 100644 -index 0000000..b1fb754 ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c -@@ -0,0 +1,40 @@ -+/* { dg-do compile } */ -+/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */ -+/* -+ Ensure that the SLS hardening of BLR leaves no BLR instructions. -+ Here we also check that there are no BR instructions with anything except an -+ x16 or x17 register. This is because a `BTI c` instruction can be branched -+ to using a BLR instruction using any register, but can only be branched to -+ with a BR using an x16 or x17 register. -+ */ -+typedef int (foo) (int, int); -+typedef void (bar) (int, int); -+struct sls_testclass { -+ foo *x; -+ bar *y; -+ int left; -+ int right; -+}; -+ -+/* We test both RTL patterns for a call which returns a value and a call which -+ does not. */ -+int blr_call_value (struct sls_testclass x) -+{ -+ int retval = x.x(x.left, x.right); -+ if (retval % 10) -+ return 100; -+ return 9; -+} -+ -+int blr_call (struct sls_testclass x) -+{ -+ x.y(x.left, x.right); -+ if (x.left % 10) -+ return 100; -+ return 9; -+} -+ -+/* { dg-final { scan-assembler-not {\tblr\t} } } */ -+/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */ -+/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */ -+ -diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c -new file mode 100644 -index 0000000..88bafff ---- /dev/null -+++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c -@@ -0,0 +1,33 @@ -+/* { dg-additional-options "-mharden-sls=blr -save-temps" } */ -+/* Ensure that the SLS hardening of BLR leaves no BLR instructions. -+ We only test that all BLR instructions have been removed, not that the -+ resulting code makes sense. */ -+typedef int (foo) (int, int); -+typedef void (bar) (int, int); -+struct sls_testclass { -+ foo *x; -+ bar *y; -+ int left; -+ int right; -+}; -+ -+/* We test both RTL patterns for a call which returns a value and a call which -+ does not. */ -+int blr_call_value (struct sls_testclass x) -+{ -+ int retval = x.x(x.left, x.right); -+ if (retval % 10) -+ return 100; -+ return 9; -+} -+ -+int blr_call (struct sls_testclass x) -+{ -+ x.y(x.left, x.right); -+ if (x.left % 10) -+ return 100; -+ return 9; -+} -+ -+/* { dg-final { scan-assembler-not {\tblr\t} } } */ -+/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */ --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch deleted file mode 100644 index 27237feb5..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6e3395c0bc933bdc3242d1dead4896d0aa4e11a8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:08:31 +0400 -Subject: [PATCH] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET - -Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. - -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 226a64939d1..b31dc137fc9 100755 ---- a/configure -+++ b/configure -@@ -6971,6 +6971,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0004-64-bit-multilib-hack.patch deleted file mode 100644 index 7c751bef6..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0004-64-bit-multilib-hack.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 85a7c5aeb82ed61e6ef6d8e061b9da9e6a4a652c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:10:06 +0400 -Subject: [PATCH] 64-bit multilib hack. - -GCC has internal multilib handling code but it assumes a very specific rigid directory -layout. The build system implementation of multilib layout is very generic and allows -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 83e59e33b85..b1356be1fb4 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 1171e218578..5e057b7e5db 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 ceb58d3b5f3..43fe2bf28ab 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 264a7e27524..dc9d440f66b 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) $< diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0005-optional-libstdc.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0005-optional-libstdc.patch deleted file mode 100644 index 4020c9e3c..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0005-optional-libstdc.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 6ddfb0bfcd1eea71acd37ab06f7a4510b9f1d12b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:12:56 +0400 -Subject: [PATCH] optional libstdc - -gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ -will not run correctly since by default the linker will try to link against libstdc++ -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 c49da99d395..35f712e2c84 100644 ---- a/gcc/c-family/c.opt -+++ b/gcc/c-family/c.opt -@@ -2025,6 +2025,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 0ab63bcd211..7b081e9e4f0 100644 ---- a/gcc/cp/g++spec.c -+++ b/gcc/cp/g++spec.c -@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, - 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 f12d8d12150..cf6cb428e7d 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -230,6 +230,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-tag -Wcatch-value -Wcatch-value=@var{n} @gol - -Wno-class-conversion -Wclass-memaccess @gol -@@ -599,7 +602,7 @@ Objective-C and Objective-C++ Dialects}. - -pie -pthread -r -rdynamic @gol - -s -static -static-pie -static-libgcc -static-libstdc++ @gol - -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol ---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}} - -@@ -14407,6 +14410,33 @@ Specify that the program entry point is @var{entry}. The argument is - interpreted by the linker; the GNU linker accepts either a symbol name - or an address. - -+@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 b2200c5185a..f8be58ce0a6 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1051,6 +1051,7 @@ proper position among the other output files. */ - %(mflib) " STACK_SPLIT_SPEC "\ - %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ - %{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\ -+ %{!nostdlib++:}\ - %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}" - #endif - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0006-COLLECT_GCC_OPTIONS.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0006-COLLECT_GCC_OPTIONS.patch deleted file mode 100644 index 9fbbe8070..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0006-COLLECT_GCC_OPTIONS.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a6c90d3a9c5010b4aa7cc30467cf81ca7e0f430e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:16:28 +0400 -Subject: [PATCH] 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 f8be58ce0a6..48b0f9dde81 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -4806,6 +4806,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; diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch deleted file mode 100644 index a764bdd0f..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 5670d4489f119d2da661734895ac0be99b606d1b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:17:25 +0400 -Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B} - -Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that -the source can be shared between gcc-cross-initial, -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 543b477ff18..a67d2cc18d6 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 8de766a942c..b26e8fc7fee 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12705,8 +12705,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 8bfd6feb780..26fa46802c7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -2138,8 +2138,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 d2c677a4a42..d03852481cb 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. diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0008-fortran-cross-compile-hack.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0008-fortran-cross-compile-hack.patch deleted file mode 100644 index 714db3bef..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0008-fortran-cross-compile-hack.patch +++ /dev/null @@ -1,43 +0,0 @@ -From f05062625e7a4751be723595a2f7a4b7fbeff311 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:20:01 +0400 -Subject: [PATCH] fortran cross-compile hack. - -* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used -used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross -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 b4cf854ddb3..e8e0ac3b1cf 100755 ---- a/libgfortran/configure -+++ b/libgfortran/configure -@@ -13090,7 +13090,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 711dc60ff78..3c9bbfbf47d 100644 ---- a/libgfortran/configure.ac -+++ b/libgfortran/configure.ac -@@ -258,7 +258,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0009-cpp-honor-sysroot.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0009-cpp-honor-sysroot.patch deleted file mode 100644 index 8ad6853d8..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0009-cpp-honor-sysroot.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 1d76de7f1f5c99f1fa1a4b14aedad3d702e4e136 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:22:00 +0400 -Subject: [PATCH] cpp: honor sysroot. - -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile -preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location -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 0ad4a33b93e..16c744f4f90 100644 ---- a/gcc/cp/lang-specs.h -+++ b/gcc/cp/lang-specs.h -@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see - {".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 48b0f9dde81..c87f603955f 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1348,7 +1348,7 @@ static const struct compiler default_compilers[] = - %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, - {".i", "@cpp-output", 0, 0, 0}, - {"@cpp-output", -- "%{!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}, diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0010-MIPS64-Default-to-N64-ABI.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0010-MIPS64-Default-to-N64-ABI.patch deleted file mode 100644 index 625e2d870..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0010-MIPS64-Default-to-N64-ABI.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4fad4433c96bc9d0d9d124f9674fb3389f6f426e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:23:08 +0400 -Subject: [PATCH] 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 cf1a87e2efd..37c4221a39f 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -2511,29 +2511,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch deleted file mode 100644 index e35797633..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch +++ /dev/null @@ -1,243 +0,0 @@ -From 8fc016a53c22c19feccbfa13ebdf19090dc67058 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:24:50 +0400 -Subject: [PATCH] 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 e25fcac3c59..01aca0c6542 100644 ---- a/gcc/config/alpha/linux-elf.h -+++ b/gcc/config/alpha/linux-elf.h -@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see - #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 5bdcfa0c5d3..0c0332f317f 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 0ec3aa53189..abfa9566d74 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 9f823f125ed..e0390b7d5e3 100644 ---- a/gcc/config/i386/linux.h -+++ b/gcc/config/i386/linux.h -@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see - . */ - - #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 6cb68d1ccfa..7de09ec857c 100644 ---- a/gcc/config/i386/linux64.h -+++ b/gcc/config/i386/linux64.h -@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #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 95654bcdb5a..0c1a8118a26 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - 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 54446e58e5f..4786ee304c1 100644 ---- a/gcc/config/mips/linux.h -+++ b/gcc/config/mips/linux.h -@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see - #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 4afef7c228c..01997330741 100644 ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see - 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 34776c8421e..967c1c43c63 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -419,24 +419,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 c1d0441d488..81373eb8336 100644 ---- a/gcc/config/sh/linux.h -+++ b/gcc/config/sh/linux.h -@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see - "/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 81201e67a2f..8b6fc577594 100644 ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); - 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 a1a0efd8f28..85d1084afc2 100644 ---- a/gcc/config/sparc/linux64.h -+++ b/gcc/config/sparc/linux64.h -@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see - 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 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0012-gcc-Fix-argument-list-too-long-error.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0012-gcc-Fix-argument-list-too-long-error.patch deleted file mode 100644 index acbd75f13..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0012-gcc-Fix-argument-list-too-long-error.patch +++ /dev/null @@ -1,37 +0,0 @@ -From a22d1264049d29b90663cf5667049ae6f9b7a5ce Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:26:37 +0400 -Subject: [PATCH] gcc: Fix argument list too long error. - -There would be an "Argument list too long" error when the -build directory is longer than 200, this is caused by: - -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 a67d2cc18d6..480c9366418 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -3606,7 +3606,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype - # We keep the directory structure for files in config or c-family and .def - # files. All other files are flattened to a single directory. - $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) -- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ -+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ - for file in $$headers; do \ - if [ -f $$file ] ; then \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0013-Disable-sdt.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0013-Disable-sdt.patch deleted file mode 100644 index 207cdb57a..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0013-Disable-sdt.patch +++ /dev/null @@ -1,110 +0,0 @@ -From fa47586935a18ecfc2ad5586802e326e21741b7b Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:28:10 +0400 -Subject: [PATCH] Disable sdt. - -We don't list dtrace in DEPENDS so we shouldn't be depending on this header. -It may or may not exist from preivous builds though. To be determinstic, disable -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 b26e8fc7fee..6080f86145e 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29789,12 +29789,12 @@ fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 - $as_echo_n "checking sys/sdt.h in the target C library... " >&6; } - have_sys_sdt_h=no --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 26fa46802c7..42be5252778 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6190,15 +6190,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 9f9c5a2419a..71ed13b815b 100755 ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -22615,11 +22615,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- 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 699e55fd829..5c7a7bda439 100644 ---- a/libstdc++-v3/configure.ac -+++ b/libstdc++-v3/configure.ac -@@ -241,7 +241,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN - GLIBCXX_CHECK_SC_NPROC_ONLN - GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP - GLIBCXX_CHECK_SYSCTL_HW_NCPU --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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0014-libtool.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0014-libtool.patch deleted file mode 100644 index f4e70c3b1..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0014-libtool.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 6ecd478881468934444ff85611fd43f7033b1e81 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:29:11 +0400 -Subject: [PATCH] libtool - -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 -when running on am x86_64 build host. - -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 70990740b6c..ee938056bef 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch deleted file mode 100644 index bc2674abc..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch +++ /dev/null @@ -1,40 +0,0 @@ -From de4427fa49c07dc651ee6ceaf5c5078700ca3b08 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:30:32 +0400 -Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI. - -The LINK_SPEC for linux gets overwritten by linux-eabi.h which -means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result -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 0c0332f317f..7b3769e8459 100644 ---- a/gcc/config/arm/linux-eabi.h -+++ b/gcc/config/arm/linux-eabi.h -@@ -91,10 +91,14 @@ - #define MUSL_DYNAMIC_LINKER \ - "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.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) - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch deleted file mode 100644 index 1dc4bb859..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 6b363c2c1c089ee900efa6013aefba1003840a37 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 09:33:04 +0400 -Subject: [PATCH] Use the multilib config files from ${B} instead of using the - ones from ${S} - -Use the multilib config files from ${B} instead of using the ones from ${S} -so that the source can be shared between gcc-cross-initial, -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 6080f86145e..825a9652329 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12685,10 +12685,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_}${omp_device_property_tmake_file}" - -@@ -12699,6 +12709,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */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 42be5252778..6099eb3251f 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -2118,10 +2118,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_}${omp_device_property_tmake_file}" - -@@ -2132,6 +2142,10 @@ tm_file_list="options.h" - tm_include_list="options.h insn-constants.h" - for f in $tm_file; do - case $f in -+ */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/poky/meta/recipes-devtools/gcc/gcc-10.1/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch deleted file mode 100644 index 05f12847e..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 08752c2f1d21553301bee5757c453c6a36cbe03c Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:39:38 +0000 -Subject: [PATCH] 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 ee938056bef..9ebc7e3d1e0 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0018-export-CPP.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0018-export-CPP.patch deleted file mode 100644 index 886a1221d..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0018-export-CPP.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 5c3d66378c7ff60ca11a875aa4aa6f8a8529d43a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 09:40:59 +0000 -Subject: [PATCH] export CPP - -The OE environment sets and exports CPP as being the target gcc. When -building gcc-cross-canadian for a mingw targetted sdk, the following can be found -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 36e369df6e7..c717903bb13 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; \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0019-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0019-Ensure-target-gcc-headers-can-be-included.patch deleted file mode 100644 index 2797b2c22..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0019-Ensure-target-gcc-headers-can-be-included.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 378b752c5d9a3dba4e58cdadf8b4b4f34ea99a76 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 20 Feb 2015 10:25:11 +0000 -Subject: [PATCH] Ensure target gcc headers can be included - -There are a few headers installed as part of the OpenEmbedded -gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe -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 480c9366418..011c7ac2db6 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 -@@ -2946,6 +2947,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 af38cc494ea..2f43b88a0c3 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/poky/meta/recipes-devtools/gcc/gcc-10.1/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch deleted file mode 100644 index c3baf8b45..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 870e805d705d99d9b9d7dbd09727f9c1d2ad9c1d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 3 Mar 2015 08:21:19 +0000 -Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix - is provided - -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html - -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 9ebc7e3d1e0..7ea79fa8be6 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch deleted file mode 100644 index abee48669..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch +++ /dev/null @@ -1,26 +0,0 @@ -From aba42de763a619355471efd1573561b0cbf51162 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:15:27 -0700 -Subject: [PATCH] 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 e587e2e9ad6..ddc62895693 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" diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0022-aarch64-Add-support-for-musl-ldso.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0022-aarch64-Add-support-for-musl-ldso.patch deleted file mode 100644 index c55b66d4b..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0022-aarch64-Add-support-for-musl-ldso.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d63820a78d92f302410358293546f01c7ad17bd8 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 28 Apr 2015 23:18:39 -0700 -Subject: [PATCH] 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 ddc62895693..b301825313a 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}" diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch deleted file mode 100644 index 80c4d2292..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 3474e16ad4ea8cf4e0e330568e3bc9039e723dce Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 5 Jul 2015 20:25:18 -0700 -Subject: [PATCH] libcc1: fix libcc1's install path and rpath - -* Install libcc1.so and libcc1plugin.so into - $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we - 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 c005b0dad4a..ec31d35b7b9 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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0024-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0024-handle-sysroot-support-for-nativesdk-gcc.patch deleted file mode 100644 index 1a65ece7b..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0024-handle-sysroot-support-for-nativesdk-gcc.patch +++ /dev/null @@ -1,346 +0,0 @@ -From bb1f359e34649516e61305e9748534cce7e0ee70 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:39:54 +0000 -Subject: [PATCH] handle sysroot support for nativesdk-gcc - -Being able to build a nativesdk gcc is useful, particularly in cases -where the host compiler may be of an incompatible version (or a 32 -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 ---- - gcc/c-family/c-opts.c | 4 +-- - gcc/cppdefault.c | 63 ++++++++++++++++++++++++++----------------- - gcc/cppdefault.h | 13 ++++----- - gcc/gcc.c | 20 +++++++++----- - gcc/incpath.c | 12 ++++----- - gcc/prefix.c | 6 +++-- - 6 files changed, 70 insertions(+), 48 deletions(-) - -diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c -index 58ba0948e79..806bbcfb7a5 100644 ---- a/gcc/c-family/c-opts.c -+++ b/gcc/c-family/c-opts.c -@@ -1409,8 +1409,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain) - size_t prefix_len, suffix_len; - - suffix_len = strlen (suffix); -- prefix = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR; -- prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len; -+ prefix = iprefix ? iprefix : GCC_INCLUDE_DIRVAR; -+ prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7; - - path = (char *) xmalloc (prefix_len + suffix_len + 1); - memcpy (path, prefix, prefix_len); -diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c -index 2f43b88a0c3..6b6be04686c 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; -+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,33 +109,24 @@ 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 } - }; - #endif /* no INCLUDE_DEFAULTS */ - --#ifdef GCC_INCLUDE_DIR --const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR; --const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8; --#else --const char cpp_GCC_INCLUDE_DIR[] = ""; --const size_t cpp_GCC_INCLUDE_DIR_len = 0; --#endif -- - /* The configured prefix. */ --const char cpp_PREFIX[] = PREFIX; --const size_t cpp_PREFIX_len = sizeof PREFIX - 1; --const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX; -+char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX; -+char EXEC_PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; - - /* This value is set by cpp_relocated at runtime */ - const char *gcc_exec_prefix; -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h -index a681264f75e..5e10a2fa140 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++. */ -@@ -50,17 +51,13 @@ struct default_include - }; - - extern const struct default_include cpp_include_defaults[]; --extern const char cpp_GCC_INCLUDE_DIR[]; --extern const size_t cpp_GCC_INCLUDE_DIR_len; -+extern char GCC_INCLUDE_DIRVAR[] __attribute__ ((section (".gccrelocprefix"))); - - /* The configure-time prefix, i.e., the value supplied as the argument - to --prefix=. */ --extern const char cpp_PREFIX[]; -+extern char PREFIXVAR[] __attribute__ ((section (".gccrelocprefix"))); - /* The length of the configure-time prefix. */ --extern const size_t cpp_PREFIX_len; --/* The configure-time execution prefix. This is typically the lib/gcc -- subdirectory of cpp_PREFIX. */ --extern const char cpp_EXEC_PREFIX[]; -+extern char EXEC_PREFIXVAR[] __attribute__ ((section (".gccrelocprefix"))); - /* The run-time execution prefix. This is typically the lib/gcc - subdirectory of the actual installation. */ - extern const char *gcc_exec_prefix; -diff --git a/gcc/gcc.c b/gcc/gcc.c -index c87f603955f..535d5c3bb65 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL; - #endif - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; - -+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; -@@ -526,6 +528,7 @@ or with constant text in a single argument. - %G process LIBGCC_SPEC as a spec. - %R Output the concatenation of target_system_root and - target_sysroot_suffix. -+ %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. -@@ -1499,10 +1502,10 @@ static const char *gcc_libexec_prefix; - gcc_exec_prefix is set because, in that case, we know where the - compiler has been installed, and use paths relative to that - location instead. */ --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 -@@ -1510,9 +1513,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; - static const char *md_exec_prefix = MD_EXEC_PREFIX; - static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; - static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; --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 -@@ -5952,6 +5955,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) -diff --git a/gcc/incpath.c b/gcc/incpath.c -index 9098ab044ab..bfad4ebe382 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, - int relocated = cpp_relocated (); - size_t len; - -- if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0) -+ if (iprefix && (len = strlen(GCC_INCLUDE_DIRVAR) - 7) != 0) - { - /* Look for directories that start with the standard prefix. - "Translate" them, i.e. replace /usr/local/lib/gcc... with -@@ -145,7 +145,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, - now. */ - if (sysroot && p->add_sysroot) - continue; -- if (!filename_ncmp (p->fname, cpp_GCC_INCLUDE_DIR, len)) -+ if (!filename_ncmp (p->fname, GCC_INCLUDE_DIRVAR, len)) - { - char *str = concat (iprefix, p->fname + len, NULL); - if (p->multilib == 1 && imultilib) -@@ -185,7 +185,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, - free (sysroot_no_trailing_dir_separator); - } - else if (!p->add_sysroot && relocated -- && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len)) -+ && !filename_ncmp (p->fname, PREFIXVAR, strlen(PREFIXVAR))) - { - static const char *relocated_prefix; - char *ostr; -@@ -202,12 +202,12 @@ add_standard_paths (const char *sysroot, const char *iprefix, - dummy = concat (gcc_exec_prefix, "dummy", NULL); - relocated_prefix - = make_relative_prefix (dummy, -- cpp_EXEC_PREFIX, -- cpp_PREFIX); -+ EXEC_PREFIXVAR, -+ PREFIXVAR); - free (dummy); - } - ostr = concat (relocated_prefix, -- p->fname + cpp_PREFIX_len, -+ p->fname + strlen(PREFIXVAR), - NULL); - str = update_path (ostr, p->component); - free (ostr); -diff --git a/gcc/prefix.c b/gcc/prefix.c -index 1a403e535bd..3257ed3cd3e 100644 ---- a/gcc/prefix.c -+++ b/gcc/prefix.c -@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3. If not see - #include "prefix.h" - #include "common/common-target.h" - --static const char *std_prefix = PREFIX; -+static const char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX; -+ -+static const char *std_prefix = PREFIXVAR; - - static const char *get_key_value (char *); - static char *translate_name (char *); -@@ -212,7 +214,7 @@ translate_name (char *name) - prefix = getenv (key); - - if (prefix == 0) -- prefix = PREFIX; -+ prefix = PREFIXVAR; - - /* We used to strip trailing DIR_SEPARATORs here, but that can - sometimes yield a result with no separator when one was coded diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch deleted file mode 100644 index abf1f8491..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 9c0c73ee48dbee2aad57f4dcdad1b7b74e77b944 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:41:45 +0000 -Subject: [PATCH] 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 535d5c3bb65..04647ae812d 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -2616,7 +2616,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); - } - -@@ -2628,6 +2628,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) diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0026-Fix-various-_FOR_BUILD-and-related-variables.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0026-Fix-various-_FOR_BUILD-and-related-variables.patch deleted file mode 100644 index 97bf2f3a7..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0026-Fix-various-_FOR_BUILD-and-related-variables.patch +++ /dev/null @@ -1,134 +0,0 @@ -From 3a003af8804dda90fdf4862eca5f66cb12faaf02 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 7 Dec 2015 23:42:45 +0000 -Subject: [PATCH] Fix various _FOR_BUILD and related variables - -When doing a FOR_BUILD thing, you have to override CFLAGS with -CFLAGS_FOR_BUILD. And if you use C++, you also have to override -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 c717903bb13..5abc649868d 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; \ -@@ -776,6 +781,7 @@ BASE_FLAGS_TO_PASS = \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ -+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ - "EXPECT=$(EXPECT)" \ - "FLEX=$(FLEX)" \ - "INSTALL=$(INSTALL)" \ -diff --git a/Makefile.tpl b/Makefile.tpl -index efed1511750..778beb705b4 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 011c7ac2db6..2f1165f7b5e 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 825a9652329..ff46cf58960 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -12314,7 +12314,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \ -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 6099eb3251f..b3c345b61dc 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1898,7 +1898,7 @@ else - CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ - CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ - LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ -- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ -+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ - ${realsrcdir}/configure \ - --enable-languages=${enable_languages-all} \ - ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch deleted file mode 100644 index 3cd75b718..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4e53d0ae70af85af0e112a48a3e4dfe4c39f4a8d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 2 Feb 2016 10:26:10 -0800 -Subject: [PATCH] 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 4bdcdcca1f0..e7943a9d640 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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch deleted file mode 100644 index 2a6769a82..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 5db0404eb770ac477fd99d444226bcf021067584 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 27 Jun 2017 18:10:54 -0700 -Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets - -when -fstack-protector options are enabled we need to -link with ssp_shared on musl since it does not provide -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 0c1a8118a26..bdc2a2d0659 100644 ---- a/gcc/config/linux.h -+++ b/gcc/config/linux.h -@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - { 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 b7026fcbee7..dd54d6c393e 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 967c1c43c63..dc5e4d97975 100644 ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -452,6 +452,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} \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch deleted file mode 100644 index 767cba038..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch +++ /dev/null @@ -1,26 +0,0 @@ -From fbc926dbf6a47fa623b9c94cd9b09a0e90448fdc Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 4 May 2016 21:11:34 -0700 -Subject: [PATCH] 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 c997553447c..330352c2c81 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) && \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0030-sync-gcc-stddef.h-with-musl.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0030-sync-gcc-stddef.h-with-musl.patch deleted file mode 100644 index 4f18907a1..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0030-sync-gcc-stddef.h-with-musl.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 24dc04dc8d69e3bf61322615b3ef18e02ccd311e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 3 Feb 2017 12:56:00 -0800 -Subject: [PATCH] sync gcc stddef.h with musl - -musl defines ptrdiff_t size_t and wchar_t -so dont define them here if musl is definining them - -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 9d67eac4947..6cb5edbedb4 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. */ - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0031-fix-segmentation-fault-in-precompiled-header-generat.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0031-fix-segmentation-fault-in-precompiled-header-generat.patch deleted file mode 100644 index 702279af0..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0031-fix-segmentation-fault-in-precompiled-header-generat.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 27b8ba5555ada2dab076988529bfb84d00a4b901 Mon Sep 17 00:00:00 2001 -From: Juro Bystricky -Date: Mon, 19 Mar 2018 22:31:20 -0700 -Subject: [PATCH] fix segmentation fault in precompiled header generation - -Prevent a segmentation fault which occurs when using incorrect -structure trying to access name of some named operators, such as -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 56ac3a1dd73..73a951148b3 100644 ---- a/libcpp/lex.c -+++ b/libcpp/lex.c -@@ -3311,11 +3311,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; diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0032-Fix-for-testsuite-failure.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0032-Fix-for-testsuite-failure.patch deleted file mode 100644 index 0a0767b44..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0032-Fix-for-testsuite-failure.patch +++ /dev/null @@ -1,255 +0,0 @@ -From 2512aacf023c679d86d8f40caff4f6ff412b32ff 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/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 28d85d37712..c93266bd4bc 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 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0033-Re-introduce-spe-commandline-options.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0033-Re-introduce-spe-commandline-options.patch deleted file mode 100644 index ba7c2b8fd..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0033-Re-introduce-spe-commandline-options.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 3fc06241ce37e2e4b3ed21ace28d347eb511448d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 6 Jun 2018 12:10:22 -0700 -Subject: [PATCH] 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 f95b8279270..0e52d51409d 100644 ---- a/gcc/config/rs6000/rs6000.opt -+++ b/gcc/config/rs6000/rs6000.opt -@@ -344,6 +344,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. diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch deleted file mode 100644 index 4ce9dc6de..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch +++ /dev/null @@ -1,83 +0,0 @@ -From b42ff59c3fe2967d37815c8db72a47b9b7f585b4 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 24 Oct 2015 20:09:53 +0000 -Subject: [PATCH] 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-expand.c (ix86_expand_builtin): Make __builtin_cpu_init - call __cpu_indicator_init_local instead of __cpu_indicator_init. - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - gcc/config/i386/i386-expand.c | 4 ++-- - libgcc/config/i386/cpuinfo.c | 6 +++--- - libgcc/config/i386/t-linux | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c -index 48f00c5fcfc..468f5f71fac 100644 ---- a/gcc/config/i386/i386-expand.c -+++ b/gcc/config/i386/i386-expand.c -@@ -10941,10 +10941,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, - { - case IX86_BUILTIN_CPU_INIT: - { -- /* 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 00322c58622..f42bbb8af98 100644 ---- a/libgcc/config/i386/cpuinfo.c -+++ b/libgcc/config/i386/cpuinfo.c -@@ -508,7 +508,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) diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch deleted file mode 100644 index dd1bf6ded..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch +++ /dev/null @@ -1,182 +0,0 @@ -From 0395060a7dcf98c5f5a65103f6aaa71d6b862259 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Tue, 10 Mar 2020 08:26:53 -0700 -Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining - reproducibility - -Inserting line numbers into generated code means its not always reproducible wth -differing versions of host gcc. Void the issue by not adding these. - -Upstream-Status: Inappropriate [OE Reproducibility specific] - -Signed-off-by: Richard Purdie -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 981577481af..d5700fff401 100644 ---- a/gcc/gengtype.c -+++ b/gcc/gengtype.c -@@ -991,7 +991,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt, - /* Create a fake field with the given type and name. NEXT is the next - field in the chain. */ - #define create_field(next,type,name) \ -- create_field_all (next,type,name, 0, this_file, __LINE__) -+ create_field_all (next,type,name, 0, this_file, 0) - - /* Like create_field, but the field is only valid when condition COND - is true. */ -@@ -1024,7 +1024,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name, - } - - #define create_optional_field(next,type,name,cond) \ -- create_optional_field_(next,type,name,cond,__LINE__) -+ create_optional_field_(next,type,name,cond,0) - - /* Reverse a linked list of 'struct pair's in place. */ - pair_p -@@ -5187,7 +5187,7 @@ main (int argc, char **argv) - /* These types are set up with #define or else outside of where - we can see them. We should initialize them before calling - read_input_list. */ --#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \ -+#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \ - Call;} while (0) - POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos)); - POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos)); -diff --git a/gcc/genmodes.c b/gcc/genmodes.c -index bd78310ea24..dbd02c51a4c 100644 ---- a/gcc/genmodes.c -+++ b/gcc/genmodes.c -@@ -430,7 +430,7 @@ complete_all_modes (void) - } - - /* For each mode in class CLASS, construct a corresponding complex mode. */ --#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__) -+#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0) - static void - make_complex_modes (enum mode_class cl, - const char *file, unsigned int line) -@@ -489,7 +489,7 @@ make_complex_modes (enum mode_class cl, - having as many components as necessary. ORDER is the sorting order - of the mode, with smaller numbers indicating a higher priority. */ - #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \ -- make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__) -+ make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0) - #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0) - static void ATTRIBUTE_UNUSED - make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width, -@@ -541,7 +541,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width, - /* Create a vector of booleans called NAME with COUNT elements and - BYTESIZE bytes in total. */ - #define VECTOR_BOOL_MODE(NAME, COUNT, BYTESIZE) \ -- make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, __LINE__) -+ make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, 0) - static void ATTRIBUTE_UNUSED - make_vector_bool_mode (const char *name, unsigned int count, - unsigned int bytesize, const char *file, -@@ -563,7 +563,7 @@ make_vector_bool_mode (const char *name, unsigned int count, - /* Input. */ - - #define _SPECIAL_MODE(C, N) \ -- make_special_mode (MODE_##C, #N, __FILE__, __LINE__) -+ make_special_mode (MODE_##C, #N, __FILE__, 0) - #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N) - #define CC_MODE(N) _SPECIAL_MODE (CC, N) - -@@ -576,7 +576,7 @@ make_special_mode (enum mode_class cl, const char *name, - - #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y) - #define FRACTIONAL_INT_MODE(N, B, Y) \ -- make_int_mode (#N, B, Y, __FILE__, __LINE__) -+ make_int_mode (#N, B, Y, __FILE__, 0) - - static void - make_int_mode (const char *name, -@@ -589,16 +589,16 @@ make_int_mode (const char *name, - } - - #define FRACT_MODE(N, Y, F) \ -- make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__) -+ make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0) - - #define UFRACT_MODE(N, Y, F) \ -- make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__) -+ make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0) - - #define ACCUM_MODE(N, Y, I, F) \ -- make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__) -+ make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0) - - #define UACCUM_MODE(N, Y, I, F) \ -- make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__) -+ make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0) - - /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT, - FILE, and LINE. */ -@@ -619,7 +619,7 @@ make_fixed_point_mode (enum mode_class cl, - - #define FLOAT_MODE(N, Y, F) FRACTIONAL_FLOAT_MODE (N, -1U, Y, F) - #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \ -- make_float_mode (#N, B, Y, #F, __FILE__, __LINE__) -+ make_float_mode (#N, B, Y, #F, __FILE__, 0) - - static void - make_float_mode (const char *name, -@@ -636,7 +636,7 @@ make_float_mode (const char *name, - #define DECIMAL_FLOAT_MODE(N, Y, F) \ - FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F) - #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F) \ -- make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__) -+ make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0) - - static void - make_decimal_float_mode (const char *name, -@@ -651,7 +651,7 @@ make_decimal_float_mode (const char *name, - } - - #define RESET_FLOAT_FORMAT(N, F) \ -- reset_float_format (#N, #F, __FILE__, __LINE__) -+ reset_float_format (#N, #F, __FILE__, 0) - static void ATTRIBUTE_UNUSED - reset_float_format (const char *name, const char *format, - const char *file, unsigned int line) -@@ -672,7 +672,7 @@ reset_float_format (const char *name, const char *format, - - /* __intN support. */ - #define INT_N(M,PREC) \ -- make_int_n (#M, PREC, __FILE__, __LINE__) -+ make_int_n (#M, PREC, __FILE__, 0) - static void ATTRIBUTE_UNUSED - make_int_n (const char *m, int bitsize, - const char *file, unsigned int line) -@@ -701,7 +701,7 @@ make_int_n (const char *m, int bitsize, - /* Partial integer modes are specified by relation to a full integer - mode. */ - #define PARTIAL_INT_MODE(M,PREC,NAME) \ -- make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__) -+ make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0) - static void ATTRIBUTE_UNUSED - make_partial_integer_mode (const char *base, const char *name, - unsigned int precision, -@@ -728,7 +728,7 @@ make_partial_integer_mode (const char *base, const char *name, - /* A single vector mode can be specified by naming its component - mode and the number of components. */ - #define VECTOR_MODE(C, M, N) \ -- make_vector_mode (MODE_##C, #M, N, __FILE__, __LINE__); -+ make_vector_mode (MODE_##C, #M, N, __FILE__, 0); - static void ATTRIBUTE_UNUSED - make_vector_mode (enum mode_class bclass, - const char *base, -@@ -771,7 +771,7 @@ make_vector_mode (enum mode_class bclass, - - /* Adjustability. */ - #define _ADD_ADJUST(A, M, X, C1, C2) \ -- new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__) -+ new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0) - - #define ADJUST_NUNITS(M, X) _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM) - #define ADJUST_BYTESIZE(M, X) _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM) diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch deleted file mode 100644 index af8064282..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 87a5ace658f2294b025e0420ef03ade1f45d926c Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Fri, 8 May 2020 06:11:05 -0700 -Subject: [PATCH] Enable CET in cross compiler if possible - -Don't perform CET run-time check for host when cross compiling. Instead, -enable CET in cross compiler if possible so that it will run on both CET -and non-CET hosts. - -config/ - - PR bootstrap/94998 - * cet.m4 (GCC_CET_HOST_FLAGS): Enable CET in cross compiler if - possible. - -libiberty/ - - PR bootstrap/94998 - * configure: Regenerated. - -lto-plugin/ - - PR bootstrap/94998 - * configure: Regenerated. - -Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/gcc/patch/20200508131105.170077-1-hjl.tools@gmail.com/] -Signed-off-by: Khem Raj ---- - config/cet.m4 | 18 ++++++++++++------ - libiberty/configure | 12 +++++++++--- - lto-plugin/configure | 16 +++++++++++----- - 3 files changed, 32 insertions(+), 14 deletions(-) - -diff --git a/config/cet.m4 b/config/cet.m4 -index ea616b728a9..d9608699cd5 100644 ---- a/config/cet.m4 -+++ b/config/cet.m4 -@@ -111,7 +111,8 @@ if test x$may_have_cet = xyes; then - fi - - if test x$may_have_cet = xyes; then -- AC_TRY_RUN([ -+ if test x$cross_compiling = xno; then -+ AC_TRY_RUN([ - static void - foo (void) - { -@@ -137,12 +138,17 @@ main () - bar (); - return 0; - } -- ], -- [have_cet=no], -- [have_cet=yes]) -- if test x$enable_cet = xno -a x$have_cet = xyes; then -- AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host]) -+ ], -+ [have_cet=no], -+ [have_cet=yes]) -+ if test x$enable_cet = xno -a x$have_cet = xyes; then -+ AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host]) -+ fi - fi -+else -+ # Enable CET in cross compiler if possible so that it will run on both -+ # CET and non-CET hosts. -+ have_cet=yes - fi - if test x$enable_cet = xyes; then - $1="-fcf-protection" -diff --git a/libiberty/configure b/libiberty/configure -index bb76cf1b823..3f82c5bb865 100755 ---- a/libiberty/configure -+++ b/libiberty/configure -@@ -5375,7 +5375,8 @@ rm -f core conftest.err conftest.$ac_objext \ - fi - - if test x$may_have_cet = xyes; then -- if test "$cross_compiling" = yes; then : -+ if test x$cross_compiling = xno; then -+ if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - as_fn_error $? "cannot run test program while cross compiling -@@ -5420,9 +5421,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- if test x$enable_cet = xno -a x$have_cet = xyes; then -- as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 -+ if test x$enable_cet = xno -a x$have_cet = xyes; then -+ as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 -+ fi - fi -+else -+ # Enable CET in cross compiler if possible so that it will run on both -+ # CET and non-CET hosts. -+ have_cet=yes - fi - if test x$enable_cet = xyes; then - CET_HOST_FLAGS="-fcf-protection" -diff --git a/lto-plugin/configure b/lto-plugin/configure -index 1baf6cc70b8..36c6ecc5875 100755 ---- a/lto-plugin/configure -+++ b/lto-plugin/configure -@@ -5768,7 +5768,8 @@ rm -f core conftest.err conftest.$ac_objext \ - fi - - if test x$may_have_cet = xyes; then -- if test "$cross_compiling" = yes; then : -+ if test x$cross_compiling = xno; then -+ if test "$cross_compiling" = yes; then : - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - as_fn_error $? "cannot run test program while cross compiling -@@ -5813,9 +5814,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - -- if test x$enable_cet = xno -a x$have_cet = xyes; then -- as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 -+ if test x$enable_cet = xno -a x$have_cet = xyes; then -+ as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 -+ fi - fi -+else -+ # Enable CET in cross compiler if possible so that it will run on both -+ # CET and non-CET hosts. -+ have_cet=yes - fi - if test x$enable_cet = xyes; then - CET_HOST_FLAGS="-fcf-protection" -@@ -11941,7 +11947,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11944 "configure" -+#line 11950 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -12047,7 +12053,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 12050 "configure" -+#line 12056 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0037-mingw32-Enable-operation_not_supported.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0037-mingw32-Enable-operation_not_supported.patch deleted file mode 100644 index de82a3a53..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0037-mingw32-Enable-operation_not_supported.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 6f87a095f0e696bec07a50df789c9db8bdbca43d Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 12 May 2020 10:39:09 -0700 -Subject: [PATCH] mingw32: Enable operation_not_supported - -Fixes nativesdk build errors on mingw32 gcc-runtime - -Upstream-Status: Pending -Signed-off-by: Khem Raj ---- - libstdc++-v3/config/os/mingw32/error_constants.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h -index 68ac72a78fb..71cd5815b81 100644 ---- a/libstdc++-v3/config/os/mingw32/error_constants.h -+++ b/libstdc++-v3/config/os/mingw32/error_constants.h -@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION - #ifdef _GLIBCXX_HAVE_EPERM - operation_not_permitted = EPERM, - #endif --// operation_not_supported = EOPNOTSUPP, -+ operation_not_supported = EOPNOTSUPP, - #ifdef _GLIBCXX_HAVE_EWOULDBLOCK - operation_would_block = EWOULDBLOCK, - #endif diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch deleted file mode 100644 index 3946acea1..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 38d262bfe7c0c894c364dc6e4dc7971e78a73974 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Wed, 13 May 2020 15:10:38 -0700 -Subject: [PATCH] libatomic: Do not enforce march on aarch64 - -OE passes the right options via gcc compiler cmdline via TUNE_CCARGS -this can conflict between -mcpu settings and -march setting here, since --mcpu will translate into an appropriate -march, lets depend on that -instead of setting it explicitly - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Khem Raj ---- - libatomic/Makefile.am | 1 - - libatomic/Makefile.in | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am -index 133fbbca77e..ac1ca645876 100644 ---- a/libatomic/Makefile.am -+++ b/libatomic/Makefile.am -@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS))) - ## On a target-specific basis, include alternates to be selected by IFUNC. - if HAVE_IFUNC - if ARCH_AARCH64_LINUX --IFUNC_OPTIONS = -march=armv8-a+lse - libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))) - endif - if ARCH_ARM_LINUX -diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in -index a51807e95c9..97df2d7ff03 100644 ---- a/libatomic/Makefile.in -+++ b/libatomic/Makefile.in -@@ -431,7 +431,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) - libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \ - _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \ - $(am__append_3) $(am__append_4) --@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse - @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 - @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586 - @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch deleted file mode 100644 index f0e6f85e2..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 0d03c0ee5213703ec6d9ffa632fa5298d83adaaa Mon Sep 17 00:00:00 2001 -From: Jakub Jelinek -Date: Mon, 13 Jul 2020 18:25:53 +0200 -Subject: [PATCH] ipa-fnsummary: Fix ICE with switch predicates [PR96130] - -The following testcase ICEs since r10-3199. -There is a switch with default label, where the controlling expression has -range just 0..7 and there are case labels for all those 8 values, but -nothing has yet optimized away the default. -Since r10-3199, set_switch_stmt_execution_predicate sets the switch to -default label's edge's predicate to a false predicate and then -compute_bb_predicates propagates the predicates through the cfg, but false -predicates aren't really added. The caller of compute_bb_predicates -in one place handles NULL bb->aux as false predicate: - if (fbi.info) - { - if (bb->aux) - bb_predicate = *(predicate *) bb->aux; - else - bb_predicate = false; - } - else - bb_predicate = true; -but then in two further spots that the patch below is changing -it assumes bb->aux must be non-NULL. Those two spots are guarded by a -condition that is only true if fbi.info is non-NULL, so I think the right -fix is to treat NULL aux as false predicate in those spots too. - -2020-07-13 Jakub Jelinek - - PR ipa/96130 - * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux - as false predicate. - - * gcc.dg/torture/pr96130.c: New test. - -(cherry picked from commit 776e48e0931db69f158f40e5cb8e15463d879a42) ---- - gcc/ipa-fnsummary.c | 10 ++++++++-- - gcc/testsuite/gcc.dg/torture/pr96130.c | 26 ++++++++++++++++++++++++++ - 2 files changed, 34 insertions(+), 2 deletions(-) - create mode 100644 gcc/testsuite/gcc.dg/torture/pr96130.c - -diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c -index 045a0ecf766..55a0b272a96 100644 ---- a/gcc/ipa-fnsummary.c -+++ b/gcc/ipa-fnsummary.c -@@ -2766,7 +2766,10 @@ analyze_function_body (struct cgraph_node *node, bool early) - edge ex; - unsigned int j; - class tree_niter_desc niter_desc; -- bb_predicate = *(predicate *) loop->header->aux; -+ if (loop->header->aux) -+ bb_predicate = *(predicate *) loop->header->aux; -+ else -+ bb_predicate = false; - - exits = get_loop_exit_edges (loop); - FOR_EACH_VEC_ELT (exits, j, ex) -@@ -2799,7 +2802,10 @@ analyze_function_body (struct cgraph_node *node, bool early) - for (unsigned i = 0; i < loop->num_nodes; i++) - { - gimple_stmt_iterator gsi; -- bb_predicate = *(predicate *) body[i]->aux; -+ if (body[i]->aux) -+ bb_predicate = *(predicate *) body[i]->aux; -+ else -+ bb_predicate = false; - for (gsi = gsi_start_bb (body[i]); !gsi_end_p (gsi); - gsi_next (&gsi)) - { -diff --git a/gcc/testsuite/gcc.dg/torture/pr96130.c b/gcc/testsuite/gcc.dg/torture/pr96130.c -new file mode 100644 -index 00000000000..f722b9ad2a9 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/torture/pr96130.c -@@ -0,0 +1,26 @@ -+/* PR ipa/96130 */ -+/* { dg-do compile } */ -+ -+struct S { unsigned j : 3; }; -+int k, l, m; -+ -+void -+foo (struct S x) -+{ -+ while (l != 5) -+ switch (x.j) -+ { -+ case 1: -+ case 3: -+ case 4: -+ case 6: -+ case 2: -+ case 5: -+ l = m; -+ case 7: -+ case 0: -+ k = 0; -+ default: -+ break; -+ } -+} --- -2.18.4 - diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.2.inc b/poky/meta/recipes-devtools/gcc/gcc-10.2.inc new file mode 100644 index 000000000..7625af511 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-10.2.inc @@ -0,0 +1,120 @@ +require gcc-common.inc + +# Third digit in PV should be incremented after a minor release + +PV = "10.2.0" + +# BINV should be incremented to a revision after a minor gcc release + +BINV = "10.2.0" + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:" + +DEPENDS =+ "mpfr gmp libmpc zlib flex-native" +NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native" + +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 \ +" + +BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" +#RELEASE ?= "93a49d2d2292893b9b7f38132df949c70942838c" +#BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip" +SRC_URI = "\ + ${BASEURI} \ + file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ + 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-Don-t-search-host-directory-during-relink-if-inst_pr.patch \ + file://0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \ + file://0022-aarch64-Add-support-for-musl-ldso.patch \ + file://0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch \ + file://0024-handle-sysroot-support-for-nativesdk-gcc.patch \ + file://0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch \ + file://0026-Fix-various-_FOR_BUILD-and-related-variables.patch \ + file://0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch \ + file://0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \ + file://0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \ + file://0030-sync-gcc-stddef.h-with-musl.patch \ + file://0031-fix-segmentation-fault-in-precompiled-header-generat.patch \ + file://0032-Fix-for-testsuite-failure.patch \ + file://0033-Re-introduce-spe-commandline-options.patch \ + file://0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \ + file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ + file://0036-mingw32-Enable-operation_not_supported.patch \ + file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \ + file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \ + file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \ + file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \ + file://0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch \ +" +SRC_URI[sha256sum] = "b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c" + +S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" +# For dev release snapshotting +#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 \ + --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-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/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index 553ef7fe6..db17ae468 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -106,7 +106,7 @@ do_install () { rm -f ${D}${bindir}/*c++ # We don't care about the gcc- copies - rm -f ${D}${bindir}/*gcc-?.?* + rm -f ${D}${bindir}/*gcc-${BINV}* # Cleanup empty directories which are not shipped # we use rmdir instead of 'rm -f' to ensure the non empty directories are not deleted diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.1.bb deleted file mode 100644 index bf53c5cd7..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.1.bb +++ /dev/null @@ -1,5 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross-canadian.inc - - - diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb new file mode 100644 index 000000000..bf53c5cd7 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_10.2.bb @@ -0,0 +1,5 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-cross-canadian.inc + + + diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_10.1.bb deleted file mode 100644 index b43cca0c5..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-cross_10.1.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-cross.inc - diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb new file mode 100644 index 000000000..b43cca0c5 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb @@ -0,0 +1,3 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-cross.inc + diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.1.bb deleted file mode 100644 index 40a6c4fef..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-cross_${PV}.bb -require gcc-crosssdk.inc diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb new file mode 100644 index 000000000..40a6c4fef --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_10.2.bb @@ -0,0 +1,2 @@ +require recipes-devtools/gcc/gcc-cross_${PV}.bb +require gcc-crosssdk.inc diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc index df1432e68..9dcce2653 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -138,6 +138,10 @@ do_install_append_class-target () { ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext fi + if [ "${TARGET_ARCH}" == "x86_64" -a "${MULTILIB_VARIANTS}" != "" ];then + ln -sf ../${X86ARCH32}${TARGET_VENDOR}-${TARGET_OS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}/32 + fi + if [ "${TCLIBC}" != "glibc" ]; then case "${TARGET_OS}" in "linux-musl" | "linux-*spe") extra_target_os="linux";; diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_10.1.bb deleted file mode 100644 index dd430b57e..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-runtime_10.1.bb +++ /dev/null @@ -1,2 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require gcc-runtime.inc diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb new file mode 100644 index 000000000..dd430b57e --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb @@ -0,0 +1,2 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require gcc-runtime.inc diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.1.bb deleted file mode 100644 index f3c705811..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.1.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/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.bb new file mode 100644 index 000000000..f3c705811 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_10.2.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/poky/meta/recipes-devtools/gcc/gcc-source_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc-source_10.1.bb deleted file mode 100644 index b890fa33e..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc-source_10.1.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/poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc-source_10.2.bb new file mode 100644 index 000000000..b890fa33e --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc-source_10.2.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/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch new file mode 100644 index 000000000..c060accd9 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch @@ -0,0 +1,66 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From fd2ec4542fd2975e6d3f2f1c1a2639945a84f9e1 Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek +Date: Mon, 3 Aug 2020 22:55:28 +0200 +Subject: [PATCH] aarch64: Fix up __aarch64_cas16_acq_rel fallback + +As mentioned in the PR, the fallback path when LSE is unavailable writes +incorrect registers to the memory if the previous content compares equal +to x0, x1 - it writes copy of x0, x1 from the start of function, but it +should write x2, x3. + +2020-08-03 Jakub Jelinek + + PR target/96402 + * config/aarch64/lse.S (__aarch64_cas16_acq_rel): Use x2, x3 instead + of x(tmp0), x(tmp1) in STXP arguments. + + * gcc.target/aarch64/pr96402.c: New test. + +(cherry picked from commit 90b43856fdff7d96d93d22970eca8a86c56e0ddc) +--- + gcc/testsuite/gcc.target/aarch64/pr96402.c | 16 ++++++++++++++++ + libgcc/config/aarch64/lse.S | 2 +- + 2 files changed, 17 insertions(+), 1 deletion(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/pr96402.c + +diff --git a/gcc/testsuite/gcc.target/aarch64/pr96402.c b/gcc/testsuite/gcc.target/aarch64/pr96402.c +new file mode 100644 +index 00000000000..fa2dddfac15 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/pr96402.c +@@ -0,0 +1,16 @@ ++/* PR target/96402 */ ++/* { dg-do run { target int128 } } */ ++/* { dg-options "-moutline-atomics" } */ ++ ++int ++main () ++{ ++ __int128 a = 0; ++ __sync_val_compare_and_swap (&a, (__int128) 0, (__int128) 1); ++ if (a != 1) ++ __builtin_abort (); ++ __sync_val_compare_and_swap (&a, (__int128) 1, (((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL); ++ if (a != ((((__int128) 0xdeadbeeffeedbac1ULL) << 64) | 0xabadcafe00c0ffeeULL)) ++ __builtin_abort (); ++ return 0; ++} +diff --git a/libgcc/config/aarch64/lse.S b/libgcc/config/aarch64/lse.S +index 64691c601c1..c8fbfbce4fd 100644 +--- a/libgcc/config/aarch64/lse.S ++++ b/libgcc/config/aarch64/lse.S +@@ -203,7 +203,7 @@ STARTFN NAME(cas) + cmp x0, x(tmp0) + ccmp x1, x(tmp1), #0, eq + bne 1f +- STXP w(tmp2), x(tmp0), x(tmp1), [x4] ++ STXP w(tmp2), x2, x3, [x4] + cbnz w(tmp2), 0b + 1: ret + +-- +2.26.2 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch new file mode 100644 index 000000000..73de4c759 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch @@ -0,0 +1,202 @@ +CVE: CVE-2020-13844 +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:58 +0100 +Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation + flags + +Here we introduce the flags that will be used for straight line speculation. + +The new flag introduced is `-mharden-sls=`. +This flag can take arguments of `none`, `all`, or a comma seperated list of one +or more of `retbr` or `blr`. +`none` indicates no special mitigation of the straight line speculation +vulnerability. +`all` requests all mitigations currently implemented. +`retbr` requests that the RET and BR instructions have a speculation barrier +inserted after them. +`blr` requests that BLR instructions are replaced by a BL to a function stub +using a BR with a speculation barrier after it. + +Setting this on a per-function basis using attributes or the like is not +enabled, but may be in the future. + +gcc/ChangeLog: + +2020-06-02 Matthew Malcomson + + * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): + New. + (aarch64_harden_sls_blr_p): New. + * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): + New. + (aarch64_harden_sls_retbr_p): New. + (aarch64_harden_sls_blr_p): New. + (aarch64_validate_sls_mitigation): New. + (aarch64_override_options): Parse options for SLS mitigation. + * config/aarch64/aarch64.opt (-mharden-sls): New option. + * doc/invoke.texi: Document new option. +--- + gcc/config/aarch64/aarch64-protos.h | 3 ++ + gcc/config/aarch64/aarch64.c | 76 +++++++++++++++++++++++++++++++++++++ + gcc/config/aarch64/aarch64.opt | 4 ++ + gcc/doc/invoke.texi | 12 ++++++ + 4 files changed, 95 insertions(+) + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index 723d9ba..eb5f4b4 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + ++extern bool aarch64_harden_sls_retbr_p (void); ++extern bool aarch64_harden_sls_blr_p (void); ++ + #endif /* GCC_AARCH64_PROTOS_H */ +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index b86434a..437a9cf 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res, + return false; + } + ++/* Straight line speculation indicators. */ ++enum aarch64_sls_hardening_type ++{ ++ SLS_NONE = 0, ++ SLS_RETBR = 1, ++ SLS_BLR = 2, ++ SLS_ALL = 3, ++}; ++static enum aarch64_sls_hardening_type aarch64_sls_hardening; ++ ++/* Return whether we should mitigatate Straight Line Speculation for the RET ++ and BR instructions. */ ++bool ++aarch64_harden_sls_retbr_p (void) ++{ ++ return aarch64_sls_hardening & SLS_RETBR; ++} ++ ++/* Return whether we should mitigatate Straight Line Speculation for the BLR ++ instruction. */ ++bool ++aarch64_harden_sls_blr_p (void) ++{ ++ return aarch64_sls_hardening & SLS_BLR; ++} ++ ++/* As of yet we only allow setting these options globally, in the future we may ++ allow setting them per function. */ ++static void ++aarch64_validate_sls_mitigation (const char *const_str) ++{ ++ char *token_save = NULL; ++ char *str = NULL; ++ ++ if (strcmp (const_str, "none") == 0) ++ { ++ aarch64_sls_hardening = SLS_NONE; ++ return; ++ } ++ if (strcmp (const_str, "all") == 0) ++ { ++ aarch64_sls_hardening = SLS_ALL; ++ return; ++ } ++ ++ char *str_root = xstrdup (const_str); ++ str = strtok_r (str_root, ",", &token_save); ++ if (!str) ++ error ("invalid argument given to %<-mharden-sls=%>"); ++ ++ int temp = SLS_NONE; ++ while (str) ++ { ++ if (strcmp (str, "blr") == 0) ++ temp |= SLS_BLR; ++ else if (strcmp (str, "retbr") == 0) ++ temp |= SLS_RETBR; ++ else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0) ++ { ++ error ("%<%s%> must be by itself for %<-mharden-sls=%>", str); ++ break; ++ } ++ else ++ { ++ error ("invalid argument %<%s%> for %<-mharden-sls=%>", str); ++ break; ++ } ++ str = strtok_r (NULL, ",", &token_save); ++ } ++ aarch64_sls_hardening = (aarch64_sls_hardening_type) temp; ++ free (str_root); ++} ++ + /* Parses CONST_STR for branch protection features specified in + aarch64_branch_protect_types, and set any global variables required. Returns + the parsing result and assigns LAST_STR to the last processed token from +@@ -14738,6 +14811,9 @@ aarch64_override_options (void) + selected_arch = NULL; + selected_tune = NULL; + ++ if (aarch64_harden_sls_string) ++ aarch64_validate_sls_mitigation (aarch64_harden_sls_string); ++ + if (aarch64_branch_protection_string) + aarch64_validate_mbranch_protection (aarch64_branch_protection_string); + +diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt +index d99d14c..5170361 100644 +--- a/gcc/config/aarch64/aarch64.opt ++++ b/gcc/config/aarch64/aarch64.opt +@@ -71,6 +71,10 @@ mgeneral-regs-only + Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save + Generate code which uses only the general registers. + ++mharden-sls= ++Target RejectNegative Joined Var(aarch64_harden_sls_string) ++Generate code to mitigate against straight line speculation. ++ + mfix-cortex-a53-835769 + Target Report Var(aarch64_fix_a53_err835769) Init(2) Save + Workaround for ARM Cortex-A53 Erratum number 835769. +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index a2794a6..bd5b77a 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}. + -msign-return-address=@var{scope} @gol + -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf} + +@var{b-key}]|@var{bti} @gol ++-mharden-sls=@var{opts} @gol + -march=@var{name} -mcpu=@var{name} -mtune=@var{name} @gol + -moverride=@var{string} -mverbose-cost-dump @gol + -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol +@@ -17065,6 +17066,17 @@ functions. The optional argument @samp{b-key} can be used to sign the functions + with the B-key instead of the A-key. + @samp{bti} turns on branch target identification mechanism. + ++@item -mharden-sls=@var{opts} ++@opindex mharden-sls ++Enable compiler hardening against straight line speculation (SLS). ++@var{opts} is a comma-separated list of the following options: ++@table @samp ++@item retbr ++@item blr ++@end table ++In addition, @samp{-mharden-sls=all} enables all SLS hardening while ++@samp{-mharden-sls=none} disables all SLS hardening. ++ + @item -msve-vector-bits=@var{bits} + @opindex msve-vector-bits + Specify the number of bits in an SVE vector register. This option only has +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file mode 100644 index 000000000..82ae9f8d1 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch @@ -0,0 +1,39 @@ +From f2a5dc3bc7e5727d6bf77e1c6e8a31a6f000883d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:37:11 +0400 +Subject: [PATCH] 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 4cc938ebb7d..226a64939d1 100755 +--- a/configure ++++ b/configure +@@ -7722,7 +7722,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 c78d9cbea62..f024f4bac9b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3227,7 +3227,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/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch new file mode 100644 index 000000000..823cc8b66 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch @@ -0,0 +1,607 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:59 +0100 +Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR + instructions + +Instructions following RET or BR are not necessarily executed. In order +to avoid speculation past RET and BR we can simply append a speculation +barrier. + +Since these speculation barriers will not be architecturally executed, +they are not expected to add a high performance penalty. + +The speculation barrier is to be SB when targeting architectures which +have this enabled, and DSB SY + ISB otherwise. + +We add tests for each of the cases where such an instruction was seen. + +This is implemented by modifying each machine description pattern that +emits either a RET or a BR instruction. We choose not to use something +like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the +`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn` +patterns and we find it preferable to implement the functionality in the +same way for every pattern. + +There is one particular case which is slightly tricky. The +implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs +to be mitigated against. The trampoline template is used *once* per +compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the +builtin macro __LIBGCC_TRAMPOLINE_SIZE__. +In the future we may implement function specific attributes to turn on +and off hardening on a per-function basis. +The fixed nature of the trampoline described above implies it will be +safer to ensure this speculation barrier is always used. + +Testing: + Bootstrap and regtest done on aarch64-none-linux + Used a temporary hack(1) to use these options on every test in the + testsuite and a script to check that the output never emitted an + unmitigated RET or BR. + +1) Temporary hack was a change to the testsuite to always use +`-save-temps` and run a script on the assembly output of those +compilations which produced one to ensure every RET or BR is immediately +followed by a speculation barrier. + +gcc/ChangeLog: + + * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. + * config/aarch64/aarch64.c (aarch64_output_casesi): Emit + speculation barrier after BR instruction if needs be. + (aarch64_trampoline_init): Handle ptr_mode value & adjust size + of code copied. + (aarch64_sls_barrier): New. + (aarch64_asm_trampoline_template): Add needed barriers. + * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. + (TARGET_SB): New. + (TRAMPOLINE_SIZE): Account for barrier. + * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, + simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): + Emit barrier if needs be, also account for possible barrier using + "sls_length" attribute. + (sls_length): New attribute. + (length): Determine default using any non-default sls_length + value. + +gcc/testsuite/ChangeLog: + + * gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test. + * gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c: + New test. + * gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file. + * lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok): + New proc. +--- + gcc/config/aarch64/aarch64-protos.h | 1 + + gcc/config/aarch64/aarch64.c | 41 ++++++- + gcc/config/aarch64/aarch64.h | 10 +- + gcc/config/aarch64/aarch64.md | 76 +++++++++---- + .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c | 21 ++++ + .../aarch64/sls-mitigation/sls-miti-retbr.c | 119 +++++++++++++++++++++ + .../aarch64/sls-mitigation/sls-mitigation.exp | 73 +++++++++++++ + gcc/testsuite/lib/target-supports.exp | 2 +- + 8 files changed, 318 insertions(+), 25 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index eb5f4b4..ee0ffde 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + ++const char *aarch64_sls_barrier (int); + extern bool aarch64_harden_sls_retbr_p (void); + extern bool aarch64_harden_sls_blr_p (void); + +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index 437a9cf..44e3d1f 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED) + static void + aarch64_asm_trampoline_template (FILE *f) + { +- int offset1 = 16; +- int offset2 = 20; ++ int offset1 = 24; ++ int offset2 = 28; + + if (aarch64_bti_enabled ()) + { +@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f) + } + asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]); + ++ /* We always emit a speculation barrier. ++ This is because the same trampoline template is used for every nested ++ function. Since nested functions are not particularly common or ++ performant we don't worry too much about the extra instructions to copy ++ around. ++ This is not yet a problem, since we have not yet implemented function ++ specific attributes to choose between hardening against straight line ++ speculation or not, but such function specific attributes are likely to ++ happen in the future. */ ++ asm_fprintf (f, "\tdsb\tsy\n\tisb\n"); ++ + /* The trampoline needs an extra padding instruction. In case if BTI is + enabled the padding instruction is replaced by the BTI instruction at + the beginning. */ +@@ -10890,10 +10901,14 @@ static void + aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value) + { + rtx fnaddr, mem, a_tramp; +- const int tramp_code_sz = 16; ++ const int tramp_code_sz = 24; + + /* Don't need to copy the trailing D-words, we fill those in below. */ +- emit_block_move (m_tramp, assemble_trampoline_template (), ++ /* We create our own memory address in Pmode so that `emit_block_move` can ++ use parts of the backend which expect Pmode addresses. */ ++ rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0)); ++ emit_block_move (gen_rtx_MEM (BLKmode, temp), ++ assemble_trampoline_template (), + GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL); + mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz); + fnaddr = XEXP (DECL_RTL (fndecl), 0); +@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands) + output_asm_insn (buf, operands); + output_asm_insn (patterns[index][1], operands); + output_asm_insn ("br\t%3", operands); ++ output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()), ++ operands); + assemble_label (asm_out_file, label); + return ""; + } +@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack () + #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI + #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND + ++/* Helper function for straight line speculation. ++ Return what barrier should be emitted for straight line speculation ++ mitigation. ++ When not mitigating against straight line speculation this function returns ++ an empty string. ++ When mitigating against straight line speculation, use: ++ * SB when the v8.5-A SB extension is enabled. ++ * DSB+ISB otherwise. */ ++const char * ++aarch64_sls_barrier (int mitigation_required) ++{ ++ return mitigation_required ++ ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb") ++ : ""; ++} ++ + /* Target-specific selftests. */ + + #if CHECKING_P +diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h +index 1ce23c6..c21015f 100644 +--- a/gcc/config/aarch64/aarch64.h ++++ b/gcc/config/aarch64/aarch64.h +@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version; + #define AARCH64_ISA_F32MM (aarch64_isa_flags & AARCH64_FL_F32MM) + #define AARCH64_ISA_F64MM (aarch64_isa_flags & AARCH64_FL_F64MM) + #define AARCH64_ISA_BF16 (aarch64_isa_flags & AARCH64_FL_BF16) ++#define AARCH64_ISA_SB (aarch64_isa_flags & AARCH64_FL_SB) + + /* Crypto is an optional extension to AdvSIMD. */ + #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO) +@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version; + #define TARGET_FIX_ERR_A53_835769_DEFAULT 1 + #endif + ++/* SB instruction is enabled through +sb. */ ++#define TARGET_SB (AARCH64_ISA_SB) ++ + /* Apply the workaround for Cortex-A53 erratum 835769. */ + #define TARGET_FIX_ERR_A53_835769 \ + ((aarch64_fix_a53_err835769 == 2) \ +@@ -1058,8 +1062,10 @@ typedef struct + + #define RETURN_ADDR_RTX aarch64_return_addr + +-/* BTI c + 3 insns + 2 pointer-sized entries. */ +-#define TRAMPOLINE_SIZE (TARGET_ILP32 ? 24 : 32) ++/* BTI c + 3 insns ++ + sls barrier of DSB + ISB. ++ + 2 pointer-sized entries. */ ++#define TRAMPOLINE_SIZE (24 + (TARGET_ILP32 ? 8 : 16)) + + /* Trampolines contain dwords, so must be dword aligned. */ + #define TRAMPOLINE_ALIGNMENT 64 +diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md +index 8c8be3c..dda04ee 100644 +--- a/gcc/config/aarch64/aarch64.md ++++ b/gcc/config/aarch64/aarch64.md +@@ -407,10 +407,25 @@ + ;; Attribute that specifies whether the alternative uses MOVPRFX. + (define_attr "movprfx" "no,yes" (const_string "no")) + ++;; Attribute to specify that an alternative has the length of a single ++;; instruction plus a speculation barrier. ++(define_attr "sls_length" "none,retbr,casesi" (const_string "none")) ++ + (define_attr "length" "" + (cond [(eq_attr "movprfx" "yes") + (const_int 8) +- ] (const_int 4))) ++ ++ (eq_attr "sls_length" "retbr") ++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4) ++ (match_test "TARGET_SB") (const_int 8)] ++ (const_int 12)) ++ ++ (eq_attr "sls_length" "casesi") ++ (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16) ++ (match_test "TARGET_SB") (const_int 20)] ++ (const_int 24)) ++ ] ++ (const_int 4))) + + ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has + ;; no predicated insns. +@@ -447,8 +462,12 @@ + (define_insn "indirect_jump" + [(set (pc) (match_operand:DI 0 "register_operand" "r"))] + "" +- "br\\t%0" +- [(set_attr "type" "branch")] ++ { ++ output_asm_insn ("br\\t%0", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_insn "jump" +@@ -765,7 +784,7 @@ + "* + return aarch64_output_casesi (operands); + " +- [(set_attr "length" "16") ++ [(set_attr "sls_length" "casesi") + (set_attr "type" "branch")] + ) + +@@ -844,18 +863,23 @@ + [(return)] + "" + { ++ const char *ret = NULL; + if (aarch64_return_address_signing_enabled () + && TARGET_ARMV8_3 + && !crtl->calls_eh_return) + { + if (aarch64_ra_sign_key == AARCH64_KEY_B) +- return "retab"; ++ ret = "retab"; + else +- return "retaa"; ++ ret = "retaa"; + } +- return "ret"; ++ else ++ ret = "ret"; ++ output_asm_insn (ret, operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); + } +- [(set_attr "type" "branch")] ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_expand "return" +@@ -867,8 +891,12 @@ + (define_insn "simple_return" + [(simple_return)] + "" +- "ret" +- [(set_attr "type" "branch")] ++ { ++ output_asm_insn ("ret", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ [(set_attr "type" "branch") ++ (set_attr "sls_length" "retbr")] + ) + + (define_insn "*cb1" +@@ -1066,10 +1094,16 @@ + (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) + (return)] + "SIBLING_CALL_P (insn)" +- "@ +- br\\t%0 +- b\\t%c0" +- [(set_attr "type" "branch, branch")] ++ { ++ if (which_alternative == 0) ++ { ++ output_asm_insn ("br\\t%0", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ return "b\\t%c0"; ++ } ++ [(set_attr "type" "branch, branch") ++ (set_attr "sls_length" "retbr,none")] + ) + + (define_insn "*sibcall_value_insn" +@@ -1080,10 +1114,16 @@ + (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) + (return)] + "SIBLING_CALL_P (insn)" +- "@ +- br\\t%1 +- b\\t%c1" +- [(set_attr "type" "branch, branch")] ++ { ++ if (which_alternative == 0) ++ { ++ output_asm_insn ("br\\t%1", operands); ++ return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()); ++ } ++ return "b\\t%c1"; ++ } ++ [(set_attr "type" "branch, branch") ++ (set_attr "sls_length" "retbr,none")] + ) + + ;; Call subroutine returning any type. +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c +new file mode 100644 +index 0000000..fa1887a +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c +@@ -0,0 +1,21 @@ ++/* Avoid ILP32 since pacret is only available for LP64 */ ++/* { dg-do compile { target { ! ilp32 } } } */ ++/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */ ++ ++/* Testing the do_return pattern for retaa and retab. */ ++long retbr_subcall(void); ++long retbr_do_return_retaa(void) ++{ ++ return retbr_subcall()+1; ++} ++ ++__attribute__((target("branch-protection=pac-ret+b-key"))) ++long retbr_do_return_retab(void) ++{ ++ return retbr_subcall()+1; ++} ++ ++/* Ensure there are no BR or RET instructions which are not directly followed ++ by a speculation barrier. */ ++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */ ++/* { dg-final { scan-assembler-not {ret\t} } } */ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c +new file mode 100644 +index 0000000..76b8d03 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c +@@ -0,0 +1,119 @@ ++/* We ensure that -Wpedantic is off since it complains about the trampolines ++ we explicitly want to test. */ ++/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */ ++/* ++ Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR ++ instructions. ++ */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++int ++retbr_sibcall_value_insn (struct sls_testclass x) ++{ ++ return x.x(x.left, x.right); ++} ++ ++void ++retbr_sibcall_insn (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++} ++ ++/* Aim to test two different returns. ++ One that introduces a tail call in the middle of the function, and one that ++ has a normal return. */ ++int ++retbr_multiple_returns (struct sls_testclass x) ++{ ++ int temp; ++ if (x.left % 10) ++ return x.x(x.left, 100); ++ else if (x.right % 20) ++ { ++ return x.x(x.left * x.right, 100); ++ } ++ temp = x.left % x.right; ++ temp *= 100; ++ temp /= 2; ++ return temp % 3; ++} ++ ++void ++retbr_multiple_returns_void (struct sls_testclass x) ++{ ++ if (x.left % 10) ++ { ++ x.y(x.left, 100); ++ } ++ else if (x.right % 20) ++ { ++ x.y(x.left * x.right, 100); ++ } ++ return; ++} ++ ++/* Testing the casesi jump via register. */ ++__attribute__ ((optimize ("Os"))) ++int ++retbr_casesi_dispatch (struct sls_testclass x) ++{ ++ switch (x.left) ++ { ++ case -5: ++ return -2; ++ case -3: ++ return -1; ++ case 0: ++ return 0; ++ case 3: ++ return 1; ++ case 5: ++ break; ++ default: ++ __builtin_unreachable (); ++ } ++ return x.right; ++} ++ ++/* Testing the BR in trampolines is mitigated against. */ ++void f1 (void *); ++void f3 (void *, void (*)(void *)); ++void f2 (void *); ++ ++int ++retbr_trampolines (void *a, int b) ++{ ++ if (!b) ++ { ++ f1 (a); ++ return 1; ++ } ++ if (b) ++ { ++ void retbr_tramp_internal (void *c) ++ { ++ if (c == a) ++ f2 (c); ++ } ++ f3 (a, retbr_tramp_internal); ++ } ++ return 0; ++} ++ ++/* Testing the indirect_jump pattern. */ ++void ++retbr_indirect_jump (int *buf) ++{ ++ __builtin_longjmp(buf, 1); ++} ++ ++/* Ensure there are no BR or RET instructions which are not directly followed ++ by a speculation barrier. */ ++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp +new file mode 100644 +index 0000000..8122503 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp +@@ -0,0 +1,73 @@ ++# Regression driver for SLS mitigation on AArch64. ++# Copyright (C) 2020 Free Software Foundation, Inc. ++# Contributed by ARM Ltd. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . */ ++ ++# Exit immediately if this isn't an AArch64 target. ++if {![istarget aarch64*-*-*] } then { ++ return ++} ++ ++# Load support procs. ++load_lib gcc-dg.exp ++load_lib torture-options.exp ++ ++# If a testcase doesn't have special options, use these. ++global DEFAULT_CFLAGS ++if ![info exists DEFAULT_CFLAGS] then { ++ set DEFAULT_CFLAGS " " ++} ++ ++# Initialize `dg'. ++dg-init ++torture-init ++ ++# Use different architectures as well as the normal optimisation options. ++# (i.e. use both SB and DSB+ISB barriers). ++ ++set save-dg-do-what-default ${dg-do-what-default} ++# Main loop. ++# Run with torture tests (i.e. a bunch of different optimisation levels) just ++# to increase test coverage. ++set dg-do-what-default assemble ++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ ++ "-save-temps" $DEFAULT_CFLAGS ++ ++# Run the same tests but this time with SB extension. ++# Since not all supported assemblers will support that extension we decide ++# whether to assemble or just compile based on whether the extension is ++# supported for the available assembler. ++ ++set templist {} ++foreach x $DG_TORTURE_OPTIONS { ++ lappend templist "$x -march=armv8.3-a+sb " ++ lappend templist "$x -march=armv8-a+sb " ++} ++set-torture-options $templist ++if { [check_effective_target_aarch64_asm_sb_ok] } { ++ set dg-do-what-default assemble ++} else { ++ set dg-do-what-default compile ++} ++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ ++ "-save-temps" $DEFAULT_CFLAGS ++set dg-do-what-default ${save-dg-do-what-default} ++ ++# All done. ++torture-finish ++dg-finish +diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp +index 8a186dd..9d2e093 100644 +--- a/gcc/testsuite/lib/target-supports.exp ++++ b/gcc/testsuite/lib/target-supports.exp +@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } { + # various architecture extensions via the .arch_extension pseudo-op. + + foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve" +- "i8mm" "f32mm" "f64mm" "bf16" } { ++ "i8mm" "f32mm" "f64mm" "bf16" "sb" } { + eval [string map [list FUNC $aarch64_ext] { + proc check_effective_target_aarch64_asm_FUNC_ok { } { + if { [istarget aarch64*-*-*] } { +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch new file mode 100644 index 000000000..30a848601 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch @@ -0,0 +1,200 @@ +From 74cc21f474402cf3578e37e1d7a1a22bbd070f6a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:59:00 +0400 +Subject: [PATCH] gcc: poison-system-directories + +Add /sw/include and /opt/include based on the original +zecke-no-host-includes.patch patch. The original patch checked for +/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 65a82410abc..415f38fa1f4 100644 +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -682,6 +682,10 @@ Wreturn-local-addr + Common Var(warn_return_local_addr) Init(1) Warning + Warn about returning a pointer/reference to a local or temporary variable. + ++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 809e7b26823..5adeaeed36b 100644 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -224,6 +224,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 cd3d9516fce..8de766a942c 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -1010,6 +1010,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 +@@ -1766,6 +1767,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 +@@ -30235,6 +30238,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 0de3b4bf97b..8bfd6feb780 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6595,6 +6595,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 f98161391a0..f12d8d12150 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -348,6 +348,7 @@ Objective-C and Objective-C++ Dialects}. + -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol + -Wparentheses -Wno-pedantic-ms-format @gol + -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol ++-Wno-poison-system-directories @gol + -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol + -Wrestrict -Wno-return-local-addr -Wreturn-type @gol + -Wno-scalar-storage-order -Wsequence-point @gol +@@ -6924,6 +6925,14 @@ made up of data only and thus requires no special treatment. But, for + most targets, it is made up of code and thus requires the stack to be + made executable in order for the program to work properly. + ++@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 9f790db0daf..b2200c5185a 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1041,6 +1041,8 @@ proper position among the other output files. */ + "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ + "%X %{o*} %{e*} %{N} %{n} %{r}\ + %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ ++ %{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 8a2bda00f80..9098ab044ab 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch new file mode 100644 index 000000000..716a36717 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch @@ -0,0 +1,658 @@ +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001 +From: Matthew Malcomson +Date: Thu, 9 Jul 2020 09:11:59 +0100 +Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction + +This patch introduces the mitigation for Straight Line Speculation past +the BLR instruction. + +This mitigation replaces BLR instructions with a BL to a stub which uses +a BR to jump to the original value. These function stubs are then +appended with a speculation barrier to ensure no straight line +speculation happens after these jumps. + +When optimising for speed we use a set of stubs for each function since +this should help the branch predictor make more accurate predictions +about where a stub should branch. + +When optimising for size we use one set of stubs for all functions. +This set of stubs can have human readable names, and we are using +`__call_indirect_x` for register x. + +When BTI branch protection is enabled the BLR instruction can jump to a +`BTI c` instruction using any register, while the BR instruction can +only jump to a `BTI c` instruction using the x16 or x17 registers. +Hence, in order to ensure this transformation is safe we mov the value +of the original register into x16 and use x16 for the BR. + +As an example when optimising for size: +a + BLR x0 +instruction would get transformed to something like + BL __call_indirect_x0 +where __call_indirect_x0 labels a thunk that contains +__call_indirect_x0: + MOV X16, X0 + BR X16 + + +The first version of this patch used local symbols specific to a +compilation unit to try and avoid relocations. +This was mistaken since functions coming from the same compilation unit +can still be in different sections, and the assembler will insert +relocations at jumps between sections. + +On any relocation the linker is permitted to emit a veneer to handle +jumps between symbols that are very far apart. The registers x16 and +x17 may be clobbered by these veneers. +Hence the function stubs cannot rely on the values of x16 and x17 being +the same as just before the function stub is called. + +Similar can be said for the hot/cold partitioning of single functions, +so function-local stubs have the same restriction. + +This updated version of the patch never emits function stubs for x16 and +x17, and instead forces other registers to be used. + +Given the above, there is now no benefit to local symbols (since they +are not enough to avoid dealing with linker intricacies). This patch +now uses global symbols with hidden visibility each stored in their own +COMDAT section. This means stubs can be shared between compilation +units while still avoiding the PLT indirection. + +This patch also removes the `__call_indirect_x30` stub (and +function-local equivalent) which would simply jump back to the original +location. + +The function-local stubs are emitted to the assembly output file in one +chunk, which means we need not add the speculation barrier directly +after each one. +This is because we know for certain that the instructions directly after +the BR in all but the last function stub will be from another one of +these stubs and hence will not contain a speculation gadget. +Instead we add a speculation barrier at the end of the sequence of +stubs. + +The global stubs are emitted in COMDAT/.linkonce sections by +themselves so that the linker can remove duplicates from multiple object +files. This means they are not emitted in one chunk, and each one must +include the speculation barrier. + +Another difference is that since the global stubs are shared across +compilation units we do not know that all functions will be targeting an +architecture supporting the SB instruction. +Rather than provide multiple stubs for each architecture, we provide a +stub that will work for all architectures -- using the DSB+ISB barrier. + +This mitigation does not apply for BLR instructions in the following +places: +- Some accesses to thread-local variables use a code sequence with a BLR + instruction. This code sequence is part of the binary interface between + compiler and linker. If this BLR instruction needs to be mitigated, it'd + probably be best to do so in the linker. It seems that the code sequence + for thread-local variable access is unlikely to lead to a Spectre Revalation + Gadget. +- PLT stubs are produced by the linker and each contain a BLR instruction. + It seems that at most only after the last PLT stub a Spectre Revalation + Gadget might appear. + +Testing: + Bootstrap and regtest on AArch64 + (with BOOT_CFLAGS="-mharden-sls=retbr,blr") + Used a temporary hack(1) in gcc-dg.exp to use these options on every + test in the testsuite, a slight modification to emit the speculation + barrier after every function stub, and a script to check that the + output never emitted a BLR, or unmitigated BR or RET instruction. + Similar on an aarch64-none-elf cross-compiler. + +1) Temporary hack emitted a speculation barrier at the end of every stub +function, and used a script to ensure that: + a) Every RET or BR is immediately followed by a speculation barrier. + b) No BLR instruction is emitted by compiler. + +gcc/ChangeLog: + + * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): + New declaration. + * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new + stub registers class. + (aarch64_class_max_nregs): Likewise. + (aarch64_register_move_cost): Likewise. + (aarch64_sls_shared_thunks): Global array to store stub labels. + (aarch64_sls_emit_function_stub): New. + (aarch64_create_blr_label): New. + (aarch64_sls_emit_blr_function_thunks): New. + (aarch64_sls_emit_shared_blr_thunks): New. + (aarch64_asm_file_end): New. + (aarch64_indirect_call_asm): New. + (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. + (TARGET_ASM_FUNCTION_EPILOGUE): Use + aarch64_sls_emit_blr_function_thunks. + * config/aarch64/aarch64.h (STB_REGNUM_P): New. + (enum reg_class): Add STUB_REGS class. + (machine_function): Introduce `call_via` array for + function-local stub labels. + * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use + aarch64_indirect_call_asm to emit code when hardening BLR + instructions. + * config/aarch64/constraints.md (Ucr): New constraint + representing registers for indirect calls. Is GENERAL_REGS + usually, and STUB_REGS when hardening BLR instruction against + SLS. + * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class + is also a general register. + +gcc/testsuite/ChangeLog: + + * gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test. + * gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test. +--- + gcc/config/aarch64/aarch64-protos.h | 1 + + gcc/config/aarch64/aarch64.c | 225 ++++++++++++++++++++- + gcc/config/aarch64/aarch64.h | 15 ++ + gcc/config/aarch64/aarch64.md | 11 +- + gcc/config/aarch64/constraints.md | 9 + + gcc/config/aarch64/predicates.md | 3 +- + .../aarch64/sls-mitigation/sls-miti-blr-bti.c | 40 ++++ + .../aarch64/sls-mitigation/sls-miti-blr.c | 33 +++ + 8 files changed, 328 insertions(+), 9 deletions(-) + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c + create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c + +diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h +index ee0ffde..839f801 100644 +--- a/gcc/config/aarch64/aarch64-protos.h ++++ b/gcc/config/aarch64/aarch64-protos.h +@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names; + tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *); + + const char *aarch64_sls_barrier (int); ++const char *aarch64_indirect_call_asm (rtx); + extern bool aarch64_harden_sls_retbr_p (void); + extern bool aarch64_harden_sls_blr_p (void); + +diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c +index 2389d49..0f7bba3 100644 +--- a/gcc/config/aarch64/aarch64.c ++++ b/gcc/config/aarch64/aarch64.c +@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x) + enum reg_class + aarch64_regno_regclass (unsigned regno) + { ++ if (STUB_REGNUM_P (regno)) ++ return STUB_REGS; ++ + if (GP_REGNUM_P (regno)) + return GENERAL_REGS; + +@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode) + unsigned int nregs, vec_flags; + switch (regclass) + { ++ case STUB_REGS: + case TAILCALL_ADDR_REGS: + case POINTER_REGS: + case GENERAL_REGS: +@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode, + = aarch64_tune_params.regmove_cost; + + /* Caller save and pointer regs are equivalent to GENERAL_REGS. */ +- if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS) ++ if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS ++ || to == STUB_REGS) + to = GENERAL_REGS; + +- if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS) ++ if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS ++ || from == STUB_REGS) + from = GENERAL_REGS; + + /* Make RDFFR very expensive. In particular, if we know that the FFR +@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required) + : ""; + } + ++static GTY (()) tree aarch64_sls_shared_thunks[30]; ++static GTY (()) bool aarch64_sls_shared_thunks_needed = false; ++const char *indirect_symbol_names[30] = { ++ "__call_indirect_x0", ++ "__call_indirect_x1", ++ "__call_indirect_x2", ++ "__call_indirect_x3", ++ "__call_indirect_x4", ++ "__call_indirect_x5", ++ "__call_indirect_x6", ++ "__call_indirect_x7", ++ "__call_indirect_x8", ++ "__call_indirect_x9", ++ "__call_indirect_x10", ++ "__call_indirect_x11", ++ "__call_indirect_x12", ++ "__call_indirect_x13", ++ "__call_indirect_x14", ++ "__call_indirect_x15", ++ "", /* "__call_indirect_x16", */ ++ "", /* "__call_indirect_x17", */ ++ "__call_indirect_x18", ++ "__call_indirect_x19", ++ "__call_indirect_x20", ++ "__call_indirect_x21", ++ "__call_indirect_x22", ++ "__call_indirect_x23", ++ "__call_indirect_x24", ++ "__call_indirect_x25", ++ "__call_indirect_x26", ++ "__call_indirect_x27", ++ "__call_indirect_x28", ++ "__call_indirect_x29", ++}; ++ ++/* Function to create a BLR thunk. This thunk is used to mitigate straight ++ line speculation. Instead of a simple BLR that can be speculated past, ++ we emit a BL to this thunk, and this thunk contains a BR to the relevant ++ register. These thunks have the relevant speculation barries put after ++ their indirect branch so that speculation is blocked. ++ ++ We use such a thunk so the speculation barriers are kept off the ++ architecturally executed path in order to reduce the performance overhead. ++ ++ When optimizing for size we use stubs shared by the linked object. ++ When optimizing for performance we emit stubs for each function in the hope ++ that the branch predictor can better train on jumps specific for a given ++ function. */ ++rtx ++aarch64_sls_create_blr_label (int regnum) ++{ ++ gcc_assert (STUB_REGNUM_P (regnum)); ++ if (optimize_function_for_size_p (cfun)) ++ { ++ /* For the thunks shared between different functions in this compilation ++ unit we use a named symbol -- this is just for users to more easily ++ understand the generated assembly. */ ++ aarch64_sls_shared_thunks_needed = true; ++ const char *thunk_name = indirect_symbol_names[regnum]; ++ if (aarch64_sls_shared_thunks[regnum] == NULL) ++ { ++ /* Build a decl representing this function stub and record it for ++ later. We build a decl here so we can use the GCC machinery for ++ handling sections automatically (through `get_named_section` and ++ `make_decl_one_only`). That saves us a lot of trouble handling ++ the specifics of different output file formats. */ ++ tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL, ++ get_identifier (thunk_name), ++ build_function_type_list (void_type_node, ++ NULL_TREE)); ++ DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL, ++ NULL_TREE, void_type_node); ++ TREE_PUBLIC (decl) = 1; ++ TREE_STATIC (decl) = 1; ++ DECL_IGNORED_P (decl) = 1; ++ DECL_ARTIFICIAL (decl) = 1; ++ make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl)); ++ resolve_unique_section (decl, 0, false); ++ aarch64_sls_shared_thunks[regnum] = decl; ++ } ++ ++ return gen_rtx_SYMBOL_REF (Pmode, thunk_name); ++ } ++ ++ if (cfun->machine->call_via[regnum] == NULL) ++ cfun->machine->call_via[regnum] ++ = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ()); ++ return cfun->machine->call_via[regnum]; ++} ++ ++/* Helper function for aarch64_sls_emit_blr_function_thunks and ++ aarch64_sls_emit_shared_blr_thunks below. */ ++static void ++aarch64_sls_emit_function_stub (FILE *out_file, int regnum) ++{ ++ /* Save in x16 and branch to that function so this transformation does ++ not prevent jumping to `BTI c` instructions. */ ++ asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum); ++ asm_fprintf (out_file, "\tbr\tx16\n"); ++} ++ ++/* Emit all BLR stubs for this particular function. ++ Here we emit all the BLR stubs needed for the current function. Since we ++ emit these stubs in a consecutive block we know there will be no speculation ++ gadgets between each stub, and hence we only emit a speculation barrier at ++ the end of the stub sequences. ++ ++ This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook. */ ++void ++aarch64_sls_emit_blr_function_thunks (FILE *out_file) ++{ ++ if (! aarch64_harden_sls_blr_p ()) ++ return; ++ ++ bool any_functions_emitted = false; ++ /* We must save and restore the current function section since this assembly ++ is emitted at the end of the function. This means it can be emitted *just ++ after* the cold section of a function. That cold part would be emitted in ++ a different section. That switch would trigger a `.cfi_endproc` directive ++ to be emitted in the original section and a `.cfi_startproc` directive to ++ be emitted in the new section. Switching to the original section without ++ restoring would mean that the `.cfi_endproc` emitted as a function ends ++ would happen in a different section -- leaving an unmatched ++ `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc` ++ in the standard text section. */ ++ section *save_text_section = in_section; ++ switch_to_section (function_section (current_function_decl)); ++ for (int regnum = 0; regnum < 30; ++regnum) ++ { ++ rtx specu_label = cfun->machine->call_via[regnum]; ++ if (specu_label == NULL) ++ continue; ++ ++ targetm.asm_out.print_operand (out_file, specu_label, 0); ++ asm_fprintf (out_file, ":\n"); ++ aarch64_sls_emit_function_stub (out_file, regnum); ++ any_functions_emitted = true; ++ } ++ if (any_functions_emitted) ++ /* Can use the SB if needs be here, since this stub will only be used ++ by the current function, and hence for the current target. */ ++ asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true)); ++ switch_to_section (save_text_section); ++} ++ ++/* Emit shared BLR stubs for the current compilation unit. ++ Over the course of compiling this unit we may have converted some BLR ++ instructions to a BL to a shared stub function. This is where we emit those ++ stub functions. ++ This function is for the stubs shared between different functions in this ++ compilation unit. We share when optimizing for size instead of speed. ++ ++ This function is called through the TARGET_ASM_FILE_END hook. */ ++void ++aarch64_sls_emit_shared_blr_thunks (FILE *out_file) ++{ ++ if (! aarch64_sls_shared_thunks_needed) ++ return; ++ ++ for (int regnum = 0; regnum < 30; ++regnum) ++ { ++ tree decl = aarch64_sls_shared_thunks[regnum]; ++ if (!decl) ++ continue; ++ ++ const char *name = indirect_symbol_names[regnum]; ++ switch_to_section (get_named_section (decl, NULL, 0)); ++ ASM_OUTPUT_ALIGN (out_file, 2); ++ targetm.asm_out.globalize_label (out_file, name); ++ /* Only emits if the compiler is configured for an assembler that can ++ handle visibility directives. */ ++ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN); ++ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function"); ++ ASM_OUTPUT_LABEL (out_file, name); ++ aarch64_sls_emit_function_stub (out_file, regnum); ++ /* Use the most conservative target to ensure it can always be used by any ++ function in the translation unit. */ ++ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n"); ++ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl); ++ } ++} ++ ++/* Implement TARGET_ASM_FILE_END. */ ++void ++aarch64_asm_file_end () ++{ ++ aarch64_sls_emit_shared_blr_thunks (asm_out_file); ++ /* Since this function will be called for the ASM_FILE_END hook, we ensure ++ that what would be called otherwise (e.g. `file_end_indicate_exec_stack` ++ for FreeBSD) still gets called. */ ++#ifdef TARGET_ASM_FILE_END ++ TARGET_ASM_FILE_END (); ++#endif ++} ++ ++const char * ++aarch64_indirect_call_asm (rtx addr) ++{ ++ gcc_assert (REG_P (addr)); ++ if (aarch64_harden_sls_blr_p ()) ++ { ++ rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr)); ++ output_asm_insn ("bl\t%0", &stub_label); ++ } ++ else ++ output_asm_insn ("blr\t%0", &addr); ++ return ""; ++} ++ + /* Target-specific selftests. */ + + #if CHECKING_P +@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p + #undef TARGET_MD_ASM_ADJUST + #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust + ++#undef TARGET_ASM_FILE_END ++#define TARGET_ASM_FILE_END aarch64_asm_file_end ++ ++#undef TARGET_ASM_FUNCTION_EPILOGUE ++#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks ++ + struct gcc_target targetm = TARGET_INITIALIZER; + + #include "gt-aarch64.h" +diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h +index 8e0fc37..7331450 100644 +--- a/gcc/config/aarch64/aarch64.h ++++ b/gcc/config/aarch64/aarch64.h +@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version; + #define GP_REGNUM_P(REGNO) \ + (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM)) + ++/* Registers known to be preserved over a BL instruction. This consists of the ++ GENERAL_REGS without x16, x17, and x30. The x30 register is changed by the ++ BL instruction itself, while the x16 and x17 registers may be used by ++ veneers which can be inserted by the linker. */ ++#define STUB_REGNUM_P(REGNO) \ ++ (GP_REGNUM_P (REGNO) \ ++ && (REGNO) != R16_REGNUM \ ++ && (REGNO) != R17_REGNUM \ ++ && (REGNO) != R30_REGNUM) \ ++ + #define FP_REGNUM_P(REGNO) \ + (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM)) + +@@ -667,6 +677,7 @@ enum reg_class + { + NO_REGS, + TAILCALL_ADDR_REGS, ++ STUB_REGS, + GENERAL_REGS, + STACK_REG, + POINTER_REGS, +@@ -689,6 +700,7 @@ enum reg_class + { \ + "NO_REGS", \ + "TAILCALL_ADDR_REGS", \ ++ "STUB_REGS", \ + "GENERAL_REGS", \ + "STACK_REG", \ + "POINTER_REGS", \ +@@ -708,6 +720,7 @@ enum reg_class + { \ + { 0x00000000, 0x00000000, 0x00000000 }, /* NO_REGS */ \ + { 0x00030000, 0x00000000, 0x00000000 }, /* TAILCALL_ADDR_REGS */\ ++ { 0x3ffcffff, 0x00000000, 0x00000000 }, /* STUB_REGS */ \ + { 0x7fffffff, 0x00000000, 0x00000003 }, /* GENERAL_REGS */ \ + { 0x80000000, 0x00000000, 0x00000000 }, /* STACK_REG */ \ + { 0xffffffff, 0x00000000, 0x00000003 }, /* POINTER_REGS */ \ +@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function + struct aarch64_frame frame; + /* One entry for each hard register. */ + bool reg_is_wrapped_separately[LAST_SAVED_REGNUM]; ++ /* One entry for each general purpose register. */ ++ rtx call_via[SP_REGNUM]; + bool label_is_assembled; + } machine_function; + #endif +diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md +index dda04ee..43da754 100644 +--- a/gcc/config/aarch64/aarch64.md ++++ b/gcc/config/aarch64/aarch64.md +@@ -1022,16 +1022,15 @@ + ) + + (define_insn "*call_insn" +- [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf")) ++ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf")) + (match_operand 1 "" "")) + (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI) + (clobber (reg:DI LR_REGNUM))] + "" + "@ +- blr\\t%0 ++ * return aarch64_indirect_call_asm (operands[0]); + bl\\t%c0" +- [(set_attr "type" "call, call")] +-) ++ [(set_attr "type" "call, call")]) + + (define_expand "call_value" + [(parallel +@@ -1050,13 +1049,13 @@ + + (define_insn "*call_value_insn" + [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf")) ++ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf")) + (match_operand 2 "" ""))) + (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI) + (clobber (reg:DI LR_REGNUM))] + "" + "@ +- blr\\t%1 ++ * return aarch64_indirect_call_asm (operands[1]); + bl\\t%c1" + [(set_attr "type" "call, call")] + ) +diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md +index d993268..8cc6f50 100644 +--- a/gcc/config/aarch64/constraints.md ++++ b/gcc/config/aarch64/constraints.md +@@ -24,6 +24,15 @@ + (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS" + "@internal Registers suitable for an indirect tail call") + ++(define_register_constraint "Ucr" ++ "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS" ++ "@internal Registers to be used for an indirect call. ++ This is usually the general registers, but when we are hardening against ++ Straight Line Speculation we disallow x16, x17, and x30 so we can use ++ indirection stubs. These indirection stubs cannot use the above registers ++ since they will be reached by a BL that may have to go through a linker ++ veneer.") ++ + (define_register_constraint "w" "FP_REGS" + "Floating point and SIMD vector registers.") + +diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md +index 215fcec..1754b1e 100644 +--- a/gcc/config/aarch64/predicates.md ++++ b/gcc/config/aarch64/predicates.md +@@ -32,7 +32,8 @@ + + (define_predicate "aarch64_general_reg" + (and (match_operand 0 "register_operand") +- (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) ++ (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS ++ || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS"))) + + ;; Return true if OP a (const_int 0) operand. + (define_predicate "const0_operand" +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c +new file mode 100644 +index 0000000..b1fb754 +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c +@@ -0,0 +1,40 @@ ++/* { dg-do compile } */ ++/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */ ++/* ++ Ensure that the SLS hardening of BLR leaves no BLR instructions. ++ Here we also check that there are no BR instructions with anything except an ++ x16 or x17 register. This is because a `BTI c` instruction can be branched ++ to using a BLR instruction using any register, but can only be branched to ++ with a BR using an x16 or x17 register. ++ */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++/* We test both RTL patterns for a call which returns a value and a call which ++ does not. */ ++int blr_call_value (struct sls_testclass x) ++{ ++ int retval = x.x(x.left, x.right); ++ if (retval % 10) ++ return 100; ++ return 9; ++} ++ ++int blr_call (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++ if (x.left % 10) ++ return 100; ++ return 9; ++} ++ ++/* { dg-final { scan-assembler-not {\tblr\t} } } */ ++/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */ ++/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */ ++ +diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c +new file mode 100644 +index 0000000..88bafff +--- /dev/null ++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c +@@ -0,0 +1,33 @@ ++/* { dg-additional-options "-mharden-sls=blr -save-temps" } */ ++/* Ensure that the SLS hardening of BLR leaves no BLR instructions. ++ We only test that all BLR instructions have been removed, not that the ++ resulting code makes sense. */ ++typedef int (foo) (int, int); ++typedef void (bar) (int, int); ++struct sls_testclass { ++ foo *x; ++ bar *y; ++ int left; ++ int right; ++}; ++ ++/* We test both RTL patterns for a call which returns a value and a call which ++ does not. */ ++int blr_call_value (struct sls_testclass x) ++{ ++ int retval = x.x(x.left, x.right); ++ if (retval % 10) ++ return 100; ++ return 9; ++} ++ ++int blr_call (struct sls_testclass x) ++{ ++ x.y(x.left, x.right); ++ if (x.left % 10) ++ return 100; ++ return 9; ++} ++ ++/* { dg-final { scan-assembler-not {\tblr\t} } } */ ++/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */ +-- +2.7.4 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch new file mode 100644 index 000000000..27237feb5 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch @@ -0,0 +1,70 @@ +From 6e3395c0bc933bdc3242d1dead4896d0aa4e11a8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:08:31 +0400 +Subject: [PATCH] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET + +Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it. + +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 226a64939d1..b31dc137fc9 100755 +--- a/configure ++++ b/configure +@@ -6971,6 +6971,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch new file mode 100644 index 000000000..7c751bef6 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch @@ -0,0 +1,116 @@ +From 85a7c5aeb82ed61e6ef6d8e061b9da9e6a4a652c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:10:06 +0400 +Subject: [PATCH] 64-bit multilib hack. + +GCC has internal multilib handling code but it assumes a very specific rigid directory +layout. The build system implementation of multilib layout is very generic and allows +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 83e59e33b85..b1356be1fb4 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 1171e218578..5e057b7e5db 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 ceb58d3b5f3..43fe2bf28ab 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 264a7e27524..dc9d440f66b 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) $< diff --git a/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch b/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch new file mode 100644 index 000000000..4020c9e3c --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0005-optional-libstdc.patch @@ -0,0 +1,122 @@ +From 6ddfb0bfcd1eea71acd37ab06f7a4510b9f1d12b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:12:56 +0400 +Subject: [PATCH] optional libstdc + +gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ +will not run correctly since by default the linker will try to link against libstdc++ +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 c49da99d395..35f712e2c84 100644 +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -2025,6 +2025,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 0ab63bcd211..7b081e9e4f0 100644 +--- a/gcc/cp/g++spec.c ++++ b/gcc/cp/g++spec.c +@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options, + 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 f12d8d12150..cf6cb428e7d 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -230,6 +230,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-tag -Wcatch-value -Wcatch-value=@var{n} @gol + -Wno-class-conversion -Wclass-memaccess @gol +@@ -599,7 +602,7 @@ Objective-C and Objective-C++ Dialects}. + -pie -pthread -r -rdynamic @gol + -s -static -static-pie -static-libgcc -static-libstdc++ @gol + -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol +--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}} + +@@ -14407,6 +14410,33 @@ Specify that the program entry point is @var{entry}. The argument is + interpreted by the linker; the GNU linker accepts either a symbol name + or an address. + ++@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 b2200c5185a..f8be58ce0a6 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1051,6 +1051,7 @@ proper position among the other output files. */ + %(mflib) " STACK_SPLIT_SPEC "\ + %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \ + %{!nostdlib:%{!r:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}}\ ++ %{!nostdlib++:}\ + %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} \n%(post_link) }}}}}}" + #endif + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch b/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch new file mode 100644 index 000000000..9fbbe8070 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0006-COLLECT_GCC_OPTIONS.patch @@ -0,0 +1,35 @@ +From a6c90d3a9c5010b4aa7cc30467cf81ca7e0f430e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:16:28 +0400 +Subject: [PATCH] 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 f8be58ce0a6..48b0f9dde81 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -4806,6 +4806,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; diff --git a/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch new file mode 100644 index 000000000..a764bdd0f --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch @@ -0,0 +1,92 @@ +From 5670d4489f119d2da661734895ac0be99b606d1b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:17:25 +0400 +Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B} + +Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that +the source can be shared between gcc-cross-initial, +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 543b477ff18..a67d2cc18d6 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 8de766a942c..b26e8fc7fee 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12705,8 +12705,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 8bfd6feb780..26fa46802c7 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -2138,8 +2138,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 d2c677a4a42..d03852481cb 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. diff --git a/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch new file mode 100644 index 000000000..714db3bef --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0008-fortran-cross-compile-hack.patch @@ -0,0 +1,43 @@ +From f05062625e7a4751be723595a2f7a4b7fbeff311 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:20:01 +0400 +Subject: [PATCH] fortran cross-compile hack. + +* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used +used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross +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 b4cf854ddb3..e8e0ac3b1cf 100755 +--- a/libgfortran/configure ++++ b/libgfortran/configure +@@ -13090,7 +13090,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 711dc60ff78..3c9bbfbf47d 100644 +--- a/libgfortran/configure.ac ++++ b/libgfortran/configure.ac +@@ -258,7 +258,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch b/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch new file mode 100644 index 000000000..8ad6853d8 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0009-cpp-honor-sysroot.patch @@ -0,0 +1,51 @@ +From 1d76de7f1f5c99f1fa1a4b14aedad3d702e4e136 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:22:00 +0400 +Subject: [PATCH] cpp: honor sysroot. + +Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile +preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location +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 0ad4a33b93e..16c744f4f90 100644 +--- a/gcc/cp/lang-specs.h ++++ b/gcc/cp/lang-specs.h +@@ -66,5 +66,5 @@ along with GCC; see the file COPYING3. If not see + {".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 48b0f9dde81..c87f603955f 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1348,7 +1348,7 @@ static const struct compiler default_compilers[] = + %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, + {".i", "@cpp-output", 0, 0, 0}, + {"@cpp-output", +- "%{!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}, diff --git a/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch new file mode 100644 index 000000000..625e2d870 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0010-MIPS64-Default-to-N64-ABI.patch @@ -0,0 +1,54 @@ +From 4fad4433c96bc9d0d9d124f9674fb3389f6f426e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:23:08 +0400 +Subject: [PATCH] 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 cf1a87e2efd..37c4221a39f 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -2511,29 +2511,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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch new file mode 100644 index 000000000..e35797633 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch @@ -0,0 +1,243 @@ +From 8fc016a53c22c19feccbfa13ebdf19090dc67058 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:24:50 +0400 +Subject: [PATCH] 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 e25fcac3c59..01aca0c6542 100644 +--- a/gcc/config/alpha/linux-elf.h ++++ b/gcc/config/alpha/linux-elf.h +@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see + #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 5bdcfa0c5d3..0c0332f317f 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 0ec3aa53189..abfa9566d74 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 9f823f125ed..e0390b7d5e3 100644 +--- a/gcc/config/i386/linux.h ++++ b/gcc/config/i386/linux.h +@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see + . */ + + #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 6cb68d1ccfa..7de09ec857c 100644 +--- a/gcc/config/i386/linux64.h ++++ b/gcc/config/i386/linux64.h +@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + #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 95654bcdb5a..0c1a8118a26 100644 +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + 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 54446e58e5f..4786ee304c1 100644 +--- a/gcc/config/mips/linux.h ++++ b/gcc/config/mips/linux.h +@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see + #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 4afef7c228c..01997330741 100644 +--- a/gcc/config/riscv/linux.h ++++ b/gcc/config/riscv/linux.h +@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see + 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 34776c8421e..967c1c43c63 100644 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -419,24 +419,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 c1d0441d488..81373eb8336 100644 +--- a/gcc/config/sh/linux.h ++++ b/gcc/config/sh/linux.h +@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see + "/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 81201e67a2f..8b6fc577594 100644 +--- a/gcc/config/sparc/linux.h ++++ b/gcc/config/sparc/linux.h +@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); + 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 a1a0efd8f28..85d1084afc2 100644 +--- a/gcc/config/sparc/linux64.h ++++ b/gcc/config/sparc/linux64.h +@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see + 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 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch new file mode 100644 index 000000000..88e1715b5 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0012-gcc-Fix-argument-list-too-long-error.patch @@ -0,0 +1,41 @@ +From a22d1264049d29b90663cf5667049ae6f9b7a5ce Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:26:37 +0400 +Subject: [PATCH] gcc: Fix argument list too long error. + +There would be an "Argument list too long" error when the +build directory is longer than 200, this is caused by: + +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 + +RP: gcc then added *.h and *.def additions to this list, breaking the original +fix. Add the sort to the original gcc code, leaving the tr+sort to fix the original +issue but include the new files too as reported by Zhuang + +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 a67d2cc18d6..480c9366418 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3606,7 +3606,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype + # We keep the directory structure for files in config or c-family and .def + # files. All other files are flattened to a single directory. + $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) +- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ ++ headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ + for file in $$headers; do \ + if [ -f $$file ] ; then \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch b/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch new file mode 100644 index 000000000..207cdb57a --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0013-Disable-sdt.patch @@ -0,0 +1,110 @@ +From fa47586935a18ecfc2ad5586802e326e21741b7b Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:28:10 +0400 +Subject: [PATCH] Disable sdt. + +We don't list dtrace in DEPENDS so we shouldn't be depending on this header. +It may or may not exist from preivous builds though. To be determinstic, disable +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 b26e8fc7fee..6080f86145e 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29789,12 +29789,12 @@ fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 + $as_echo_n "checking sys/sdt.h in the target C library... " >&6; } + have_sys_sdt_h=no +-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 26fa46802c7..42be5252778 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6190,15 +6190,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 9f9c5a2419a..71ed13b815b 100755 +--- a/libstdc++-v3/configure ++++ b/libstdc++-v3/configure +@@ -22615,11 +22615,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu + +- 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 699e55fd829..5c7a7bda439 100644 +--- a/libstdc++-v3/configure.ac ++++ b/libstdc++-v3/configure.ac +@@ -241,7 +241,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN + GLIBCXX_CHECK_SC_NPROC_ONLN + GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP + GLIBCXX_CHECK_SYSCTL_HW_NCPU +-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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch b/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch new file mode 100644 index 000000000..f4e70c3b1 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0014-libtool.patch @@ -0,0 +1,39 @@ +From 6ecd478881468934444ff85611fd43f7033b1e81 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:29:11 +0400 +Subject: [PATCH] libtool + +libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64 +when running on am x86_64 build host. + +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 70990740b6c..ee938056bef 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch new file mode 100644 index 000000000..bc2674abc --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch @@ -0,0 +1,40 @@ +From de4427fa49c07dc651ee6ceaf5c5078700ca3b08 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:30:32 +0400 +Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI. + +The LINK_SPEC for linux gets overwritten by linux-eabi.h which +means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result +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 0c0332f317f..7b3769e8459 100644 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -91,10 +91,14 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.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) + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch new file mode 100644 index 000000000..1dc4bb859 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch @@ -0,0 +1,99 @@ +From 6b363c2c1c089ee900efa6013aefba1003840a37 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 09:33:04 +0400 +Subject: [PATCH] Use the multilib config files from ${B} instead of using the + ones from ${S} + +Use the multilib config files from ${B} instead of using the ones from ${S} +so that the source can be shared between gcc-cross-initial, +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 6080f86145e..825a9652329 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12685,10 +12685,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_}${omp_device_property_tmake_file}" + +@@ -12699,6 +12709,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */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 42be5252778..6099eb3251f 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -2118,10 +2118,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_}${omp_device_property_tmake_file}" + +@@ -2132,6 +2142,10 @@ tm_file_list="options.h" + tm_include_list="options.h insn-constants.h" + for f in $tm_file; do + case $f in ++ */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/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch new file mode 100644 index 000000000..05f12847e --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch @@ -0,0 +1,28 @@ +From 08752c2f1d21553301bee5757c453c6a36cbe03c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:39:38 +0000 +Subject: [PATCH] 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 ee938056bef..9ebc7e3d1e0 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch b/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch new file mode 100644 index 000000000..886a1221d --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0018-export-CPP.patch @@ -0,0 +1,50 @@ +From 5c3d66378c7ff60ca11a875aa4aa6f8a8529d43a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 09:40:59 +0000 +Subject: [PATCH] export CPP + +The OE environment sets and exports CPP as being the target gcc. When +building gcc-cross-canadian for a mingw targetted sdk, the following can be found +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 36e369df6e7..c717903bb13 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; \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch new file mode 100644 index 000000000..2797b2c22 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch @@ -0,0 +1,57 @@ +From 378b752c5d9a3dba4e58cdadf8b4b4f34ea99a76 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 20 Feb 2015 10:25:11 +0000 +Subject: [PATCH] Ensure target gcc headers can be included + +There are a few headers installed as part of the OpenEmbedded +gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe +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 480c9366418..011c7ac2db6 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 +@@ -2946,6 +2947,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 af38cc494ea..2f43b88a0c3 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/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch new file mode 100644 index 000000000..c3baf8b45 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0020-Don-t-search-host-directory-during-relink-if-inst_pr.patch @@ -0,0 +1,35 @@ +From 870e805d705d99d9b9d7dbd09727f9c1d2ad9c1d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 3 Mar 2015 08:21:19 +0000 +Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix + is provided + +http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html + +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 9ebc7e3d1e0..7ea79fa8be6 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 diff --git a/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch new file mode 100644 index 000000000..abee48669 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0021-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch @@ -0,0 +1,26 @@ +From aba42de763a619355471efd1573561b0cbf51162 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:15:27 -0700 +Subject: [PATCH] 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 e587e2e9ad6..ddc62895693 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" diff --git a/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch b/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch new file mode 100644 index 000000000..c55b66d4b --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0022-aarch64-Add-support-for-musl-ldso.patch @@ -0,0 +1,25 @@ +From d63820a78d92f302410358293546f01c7ad17bd8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Apr 2015 23:18:39 -0700 +Subject: [PATCH] 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 ddc62895693..b301825313a 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}" diff --git a/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch new file mode 100644 index 000000000..80c4d2292 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0023-libcc1-fix-libcc1-s-install-path-and-rpath.patch @@ -0,0 +1,51 @@ +From 3474e16ad4ea8cf4e0e330568e3bc9039e723dce Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sun, 5 Jul 2015 20:25:18 -0700 +Subject: [PATCH] libcc1: fix libcc1's install path and rpath + +* Install libcc1.so and libcc1plugin.so into + $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we + 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 c005b0dad4a..ec31d35b7b9 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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch new file mode 100644 index 000000000..1a65ece7b --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch @@ -0,0 +1,346 @@ +From bb1f359e34649516e61305e9748534cce7e0ee70 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:39:54 +0000 +Subject: [PATCH] handle sysroot support for nativesdk-gcc + +Being able to build a nativesdk gcc is useful, particularly in cases +where the host compiler may be of an incompatible version (or a 32 +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 +--- + gcc/c-family/c-opts.c | 4 +-- + gcc/cppdefault.c | 63 ++++++++++++++++++++++++++----------------- + gcc/cppdefault.h | 13 ++++----- + gcc/gcc.c | 20 +++++++++----- + gcc/incpath.c | 12 ++++----- + gcc/prefix.c | 6 +++-- + 6 files changed, 70 insertions(+), 48 deletions(-) + +diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c +index 58ba0948e79..806bbcfb7a5 100644 +--- a/gcc/c-family/c-opts.c ++++ b/gcc/c-family/c-opts.c +@@ -1409,8 +1409,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain) + size_t prefix_len, suffix_len; + + suffix_len = strlen (suffix); +- prefix = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR; +- prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len; ++ prefix = iprefix ? iprefix : GCC_INCLUDE_DIRVAR; ++ prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7; + + path = (char *) xmalloc (prefix_len + suffix_len + 1); + memcpy (path, prefix, prefix_len); +diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c +index 2f43b88a0c3..6b6be04686c 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; ++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,33 +109,24 @@ 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 } + }; + #endif /* no INCLUDE_DEFAULTS */ + +-#ifdef GCC_INCLUDE_DIR +-const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR; +-const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8; +-#else +-const char cpp_GCC_INCLUDE_DIR[] = ""; +-const size_t cpp_GCC_INCLUDE_DIR_len = 0; +-#endif +- + /* The configured prefix. */ +-const char cpp_PREFIX[] = PREFIX; +-const size_t cpp_PREFIX_len = sizeof PREFIX - 1; +-const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX; ++char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX; ++char EXEC_PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX; + + /* This value is set by cpp_relocated at runtime */ + const char *gcc_exec_prefix; +diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h +index a681264f75e..5e10a2fa140 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++. */ +@@ -50,17 +51,13 @@ struct default_include + }; + + extern const struct default_include cpp_include_defaults[]; +-extern const char cpp_GCC_INCLUDE_DIR[]; +-extern const size_t cpp_GCC_INCLUDE_DIR_len; ++extern char GCC_INCLUDE_DIRVAR[] __attribute__ ((section (".gccrelocprefix"))); + + /* The configure-time prefix, i.e., the value supplied as the argument + to --prefix=. */ +-extern const char cpp_PREFIX[]; ++extern char PREFIXVAR[] __attribute__ ((section (".gccrelocprefix"))); + /* The length of the configure-time prefix. */ +-extern const size_t cpp_PREFIX_len; +-/* The configure-time execution prefix. This is typically the lib/gcc +- subdirectory of cpp_PREFIX. */ +-extern const char cpp_EXEC_PREFIX[]; ++extern char EXEC_PREFIXVAR[] __attribute__ ((section (".gccrelocprefix"))); + /* The run-time execution prefix. This is typically the lib/gcc + subdirectory of the actual installation. */ + extern const char *gcc_exec_prefix; +diff --git a/gcc/gcc.c b/gcc/gcc.c +index c87f603955f..535d5c3bb65 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL; + #endif + static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; + ++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; +@@ -526,6 +528,7 @@ or with constant text in a single argument. + %G process LIBGCC_SPEC as a spec. + %R Output the concatenation of target_system_root and + target_sysroot_suffix. ++ %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. +@@ -1499,10 +1502,10 @@ static const char *gcc_libexec_prefix; + gcc_exec_prefix is set because, in that case, we know where the + compiler has been installed, and use paths relative to that + location instead. */ +-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 +@@ -1510,9 +1513,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; + static const char *md_exec_prefix = MD_EXEC_PREFIX; + static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; + static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; +-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 +@@ -5952,6 +5955,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) +diff --git a/gcc/incpath.c b/gcc/incpath.c +index 9098ab044ab..bfad4ebe382 100644 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -131,7 +131,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, + int relocated = cpp_relocated (); + size_t len; + +- if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0) ++ if (iprefix && (len = strlen(GCC_INCLUDE_DIRVAR) - 7) != 0) + { + /* Look for directories that start with the standard prefix. + "Translate" them, i.e. replace /usr/local/lib/gcc... with +@@ -145,7 +145,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, + now. */ + if (sysroot && p->add_sysroot) + continue; +- if (!filename_ncmp (p->fname, cpp_GCC_INCLUDE_DIR, len)) ++ if (!filename_ncmp (p->fname, GCC_INCLUDE_DIRVAR, len)) + { + char *str = concat (iprefix, p->fname + len, NULL); + if (p->multilib == 1 && imultilib) +@@ -185,7 +185,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, + free (sysroot_no_trailing_dir_separator); + } + else if (!p->add_sysroot && relocated +- && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len)) ++ && !filename_ncmp (p->fname, PREFIXVAR, strlen(PREFIXVAR))) + { + static const char *relocated_prefix; + char *ostr; +@@ -202,12 +202,12 @@ add_standard_paths (const char *sysroot, const char *iprefix, + dummy = concat (gcc_exec_prefix, "dummy", NULL); + relocated_prefix + = make_relative_prefix (dummy, +- cpp_EXEC_PREFIX, +- cpp_PREFIX); ++ EXEC_PREFIXVAR, ++ PREFIXVAR); + free (dummy); + } + ostr = concat (relocated_prefix, +- p->fname + cpp_PREFIX_len, ++ p->fname + strlen(PREFIXVAR), + NULL); + str = update_path (ostr, p->component); + free (ostr); +diff --git a/gcc/prefix.c b/gcc/prefix.c +index 1a403e535bd..3257ed3cd3e 100644 +--- a/gcc/prefix.c ++++ b/gcc/prefix.c +@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3. If not see + #include "prefix.h" + #include "common/common-target.h" + +-static const char *std_prefix = PREFIX; ++static const char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX; ++ ++static const char *std_prefix = PREFIXVAR; + + static const char *get_key_value (char *); + static char *translate_name (char *); +@@ -212,7 +214,7 @@ translate_name (char *name) + prefix = getenv (key); + + if (prefix == 0) +- prefix = PREFIX; ++ prefix = PREFIXVAR; + + /* We used to strip trailing DIR_SEPARATORs here, but that can + sometimes yield a result with no separator when one was coded diff --git a/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch new file mode 100644 index 000000000..abf1f8491 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0025-Search-target-sysroot-gcc-version-specific-dirs-with.patch @@ -0,0 +1,99 @@ +From 9c0c73ee48dbee2aad57f4dcdad1b7b74e77b944 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:41:45 +0000 +Subject: [PATCH] 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 535d5c3bb65..04647ae812d 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -2616,7 +2616,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); + } + +@@ -2628,6 +2628,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) diff --git a/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch b/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch new file mode 100644 index 000000000..97bf2f3a7 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0026-Fix-various-_FOR_BUILD-and-related-variables.patch @@ -0,0 +1,134 @@ +From 3a003af8804dda90fdf4862eca5f66cb12faaf02 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 7 Dec 2015 23:42:45 +0000 +Subject: [PATCH] Fix various _FOR_BUILD and related variables + +When doing a FOR_BUILD thing, you have to override CFLAGS with +CFLAGS_FOR_BUILD. And if you use C++, you also have to override +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 c717903bb13..5abc649868d 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; \ +@@ -776,6 +781,7 @@ BASE_FLAGS_TO_PASS = \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ ++ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ + "EXPECT=$(EXPECT)" \ + "FLEX=$(FLEX)" \ + "INSTALL=$(INSTALL)" \ +diff --git a/Makefile.tpl b/Makefile.tpl +index efed1511750..778beb705b4 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 011c7ac2db6..2f1165f7b5e 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 825a9652329..ff46cf58960 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -12314,7 +12314,7 @@ else + CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \ +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 6099eb3251f..b3c345b61dc 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1898,7 +1898,7 @@ else + CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ +- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ ++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + ${realsrcdir}/configure \ + --enable-languages=${enable_languages-all} \ + ${enable_obsolete+--enable-obsolete="$enable_obsolete"} \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch new file mode 100644 index 000000000..3cd75b718 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0027-nios2-Define-MUSL_DYNAMIC_LINKER.patch @@ -0,0 +1,25 @@ +From 4e53d0ae70af85af0e112a48a3e4dfe4c39f4a8d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 2 Feb 2016 10:26:10 -0800 +Subject: [PATCH] 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 4bdcdcca1f0..e7943a9d640 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 \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch new file mode 100644 index 000000000..2a6769a82 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch @@ -0,0 +1,84 @@ +From 5db0404eb770ac477fd99d444226bcf021067584 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 27 Jun 2017 18:10:54 -0700 +Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets + +when -fstack-protector options are enabled we need to +link with ssp_shared on musl since it does not provide +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 0c1a8118a26..bdc2a2d0659 100644 +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + { 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 b7026fcbee7..dd54d6c393e 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 967c1c43c63..dc5e4d97975 100644 +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -452,6 +452,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} \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch new file mode 100644 index 000000000..767cba038 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0029-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch @@ -0,0 +1,26 @@ +From fbc926dbf6a47fa623b9c94cd9b09a0e90448fdc Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 4 May 2016 21:11:34 -0700 +Subject: [PATCH] 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 c997553447c..330352c2c81 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) && \ diff --git a/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch new file mode 100644 index 000000000..4f18907a1 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0030-sync-gcc-stddef.h-with-musl.patch @@ -0,0 +1,88 @@ +From 24dc04dc8d69e3bf61322615b3ef18e02ccd311e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 3 Feb 2017 12:56:00 -0800 +Subject: [PATCH] sync gcc stddef.h with musl + +musl defines ptrdiff_t size_t and wchar_t +so dont define them here if musl is definining them + +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 9d67eac4947..6cb5edbedb4 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. */ + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch b/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch new file mode 100644 index 000000000..702279af0 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0031-fix-segmentation-fault-in-precompiled-header-generat.patch @@ -0,0 +1,57 @@ +From 27b8ba5555ada2dab076988529bfb84d00a4b901 Mon Sep 17 00:00:00 2001 +From: Juro Bystricky +Date: Mon, 19 Mar 2018 22:31:20 -0700 +Subject: [PATCH] fix segmentation fault in precompiled header generation + +Prevent a segmentation fault which occurs when using incorrect +structure trying to access name of some named operators, such as +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 56ac3a1dd73..73a951148b3 100644 +--- a/libcpp/lex.c ++++ b/libcpp/lex.c +@@ -3311,11 +3311,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; diff --git a/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch b/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch new file mode 100644 index 000000000..0a0767b44 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0032-Fix-for-testsuite-failure.patch @@ -0,0 +1,255 @@ +From 2512aacf023c679d86d8f40caff4f6ff412b32ff 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/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 28d85d37712..c93266bd4bc 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 + diff --git a/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch b/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch new file mode 100644 index 000000000..ba7c2b8fd --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0033-Re-introduce-spe-commandline-options.patch @@ -0,0 +1,38 @@ +From 3fc06241ce37e2e4b3ed21ace28d347eb511448d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 6 Jun 2018 12:10:22 -0700 +Subject: [PATCH] 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 f95b8279270..0e52d51409d 100644 +--- a/gcc/config/rs6000/rs6000.opt ++++ b/gcc/config/rs6000/rs6000.opt +@@ -344,6 +344,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. diff --git a/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch new file mode 100644 index 000000000..4ce9dc6de --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0034-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch @@ -0,0 +1,83 @@ +From b42ff59c3fe2967d37815c8db72a47b9b7f585b4 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:09:53 +0000 +Subject: [PATCH] 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-expand.c (ix86_expand_builtin): Make __builtin_cpu_init + call __cpu_indicator_init_local instead of __cpu_indicator_init. + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + gcc/config/i386/i386-expand.c | 4 ++-- + libgcc/config/i386/cpuinfo.c | 6 +++--- + libgcc/config/i386/t-linux | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c +index 48f00c5fcfc..468f5f71fac 100644 +--- a/gcc/config/i386/i386-expand.c ++++ b/gcc/config/i386/i386-expand.c +@@ -10941,10 +10941,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, + { + case IX86_BUILTIN_CPU_INIT: + { +- /* 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 00322c58622..f42bbb8af98 100644 +--- a/libgcc/config/i386/cpuinfo.c ++++ b/libgcc/config/i386/cpuinfo.c +@@ -508,7 +508,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) diff --git a/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch new file mode 100644 index 000000000..dd1bf6ded --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch @@ -0,0 +1,182 @@ +From 0395060a7dcf98c5f5a65103f6aaa71d6b862259 Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Tue, 10 Mar 2020 08:26:53 -0700 +Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining + reproducibility + +Inserting line numbers into generated code means its not always reproducible wth +differing versions of host gcc. Void the issue by not adding these. + +Upstream-Status: Inappropriate [OE Reproducibility specific] + +Signed-off-by: Richard Purdie +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 981577481af..d5700fff401 100644 +--- a/gcc/gengtype.c ++++ b/gcc/gengtype.c +@@ -991,7 +991,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt, + /* Create a fake field with the given type and name. NEXT is the next + field in the chain. */ + #define create_field(next,type,name) \ +- create_field_all (next,type,name, 0, this_file, __LINE__) ++ create_field_all (next,type,name, 0, this_file, 0) + + /* Like create_field, but the field is only valid when condition COND + is true. */ +@@ -1024,7 +1024,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name, + } + + #define create_optional_field(next,type,name,cond) \ +- create_optional_field_(next,type,name,cond,__LINE__) ++ create_optional_field_(next,type,name,cond,0) + + /* Reverse a linked list of 'struct pair's in place. */ + pair_p +@@ -5187,7 +5187,7 @@ main (int argc, char **argv) + /* These types are set up with #define or else outside of where + we can see them. We should initialize them before calling + read_input_list. */ +-#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \ ++#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \ + Call;} while (0) + POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos)); + POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos)); +diff --git a/gcc/genmodes.c b/gcc/genmodes.c +index bd78310ea24..dbd02c51a4c 100644 +--- a/gcc/genmodes.c ++++ b/gcc/genmodes.c +@@ -430,7 +430,7 @@ complete_all_modes (void) + } + + /* For each mode in class CLASS, construct a corresponding complex mode. */ +-#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__) ++#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0) + static void + make_complex_modes (enum mode_class cl, + const char *file, unsigned int line) +@@ -489,7 +489,7 @@ make_complex_modes (enum mode_class cl, + having as many components as necessary. ORDER is the sorting order + of the mode, with smaller numbers indicating a higher priority. */ + #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \ +- make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__) ++ make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0) + #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0) + static void ATTRIBUTE_UNUSED + make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width, +@@ -541,7 +541,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width, + /* Create a vector of booleans called NAME with COUNT elements and + BYTESIZE bytes in total. */ + #define VECTOR_BOOL_MODE(NAME, COUNT, BYTESIZE) \ +- make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, __LINE__) ++ make_vector_bool_mode (#NAME, COUNT, BYTESIZE, __FILE__, 0) + static void ATTRIBUTE_UNUSED + make_vector_bool_mode (const char *name, unsigned int count, + unsigned int bytesize, const char *file, +@@ -563,7 +563,7 @@ make_vector_bool_mode (const char *name, unsigned int count, + /* Input. */ + + #define _SPECIAL_MODE(C, N) \ +- make_special_mode (MODE_##C, #N, __FILE__, __LINE__) ++ make_special_mode (MODE_##C, #N, __FILE__, 0) + #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N) + #define CC_MODE(N) _SPECIAL_MODE (CC, N) + +@@ -576,7 +576,7 @@ make_special_mode (enum mode_class cl, const char *name, + + #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y) + #define FRACTIONAL_INT_MODE(N, B, Y) \ +- make_int_mode (#N, B, Y, __FILE__, __LINE__) ++ make_int_mode (#N, B, Y, __FILE__, 0) + + static void + make_int_mode (const char *name, +@@ -589,16 +589,16 @@ make_int_mode (const char *name, + } + + #define FRACT_MODE(N, Y, F) \ +- make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__) ++ make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0) + + #define UFRACT_MODE(N, Y, F) \ +- make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__) ++ make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0) + + #define ACCUM_MODE(N, Y, I, F) \ +- make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__) ++ make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0) + + #define UACCUM_MODE(N, Y, I, F) \ +- make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__) ++ make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0) + + /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT, + FILE, and LINE. */ +@@ -619,7 +619,7 @@ make_fixed_point_mode (enum mode_class cl, + + #define FLOAT_MODE(N, Y, F) FRACTIONAL_FLOAT_MODE (N, -1U, Y, F) + #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \ +- make_float_mode (#N, B, Y, #F, __FILE__, __LINE__) ++ make_float_mode (#N, B, Y, #F, __FILE__, 0) + + static void + make_float_mode (const char *name, +@@ -636,7 +636,7 @@ make_float_mode (const char *name, + #define DECIMAL_FLOAT_MODE(N, Y, F) \ + FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F) + #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F) \ +- make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__) ++ make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0) + + static void + make_decimal_float_mode (const char *name, +@@ -651,7 +651,7 @@ make_decimal_float_mode (const char *name, + } + + #define RESET_FLOAT_FORMAT(N, F) \ +- reset_float_format (#N, #F, __FILE__, __LINE__) ++ reset_float_format (#N, #F, __FILE__, 0) + static void ATTRIBUTE_UNUSED + reset_float_format (const char *name, const char *format, + const char *file, unsigned int line) +@@ -672,7 +672,7 @@ reset_float_format (const char *name, const char *format, + + /* __intN support. */ + #define INT_N(M,PREC) \ +- make_int_n (#M, PREC, __FILE__, __LINE__) ++ make_int_n (#M, PREC, __FILE__, 0) + static void ATTRIBUTE_UNUSED + make_int_n (const char *m, int bitsize, + const char *file, unsigned int line) +@@ -701,7 +701,7 @@ make_int_n (const char *m, int bitsize, + /* Partial integer modes are specified by relation to a full integer + mode. */ + #define PARTIAL_INT_MODE(M,PREC,NAME) \ +- make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__) ++ make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0) + static void ATTRIBUTE_UNUSED + make_partial_integer_mode (const char *base, const char *name, + unsigned int precision, +@@ -728,7 +728,7 @@ make_partial_integer_mode (const char *base, const char *name, + /* A single vector mode can be specified by naming its component + mode and the number of components. */ + #define VECTOR_MODE(C, M, N) \ +- make_vector_mode (MODE_##C, #M, N, __FILE__, __LINE__); ++ make_vector_mode (MODE_##C, #M, N, __FILE__, 0); + static void ATTRIBUTE_UNUSED + make_vector_mode (enum mode_class bclass, + const char *base, +@@ -771,7 +771,7 @@ make_vector_mode (enum mode_class bclass, + + /* Adjustability. */ + #define _ADD_ADJUST(A, M, X, C1, C2) \ +- new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__) ++ new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0) + + #define ADJUST_NUNITS(M, X) _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM) + #define ADJUST_BYTESIZE(M, X) _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM) diff --git a/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch b/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch new file mode 100644 index 000000000..de82a3a53 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0036-mingw32-Enable-operation_not_supported.patch @@ -0,0 +1,26 @@ +From 6f87a095f0e696bec07a50df789c9db8bdbca43d Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 12 May 2020 10:39:09 -0700 +Subject: [PATCH] mingw32: Enable operation_not_supported + +Fixes nativesdk build errors on mingw32 gcc-runtime + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + libstdc++-v3/config/os/mingw32/error_constants.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h +index 68ac72a78fb..71cd5815b81 100644 +--- a/libstdc++-v3/config/os/mingw32/error_constants.h ++++ b/libstdc++-v3/config/os/mingw32/error_constants.h +@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + #ifdef _GLIBCXX_HAVE_EPERM + operation_not_permitted = EPERM, + #endif +-// operation_not_supported = EOPNOTSUPP, ++ operation_not_supported = EOPNOTSUPP, + #ifdef _GLIBCXX_HAVE_EWOULDBLOCK + operation_would_block = EWOULDBLOCK, + #endif diff --git a/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch b/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch new file mode 100644 index 000000000..3946acea1 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0037-libatomic-Do-not-enforce-march-on-aarch64.patch @@ -0,0 +1,42 @@ +From 38d262bfe7c0c894c364dc6e4dc7971e78a73974 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 13 May 2020 15:10:38 -0700 +Subject: [PATCH] libatomic: Do not enforce march on aarch64 + +OE passes the right options via gcc compiler cmdline via TUNE_CCARGS +this can conflict between -mcpu settings and -march setting here, since +-mcpu will translate into an appropriate -march, lets depend on that +instead of setting it explicitly + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Khem Raj +--- + libatomic/Makefile.am | 1 - + libatomic/Makefile.in | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am +index 133fbbca77e..ac1ca645876 100644 +--- a/libatomic/Makefile.am ++++ b/libatomic/Makefile.am +@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS))) + ## On a target-specific basis, include alternates to be selected by IFUNC. + if HAVE_IFUNC + if ARCH_AARCH64_LINUX +-IFUNC_OPTIONS = -march=armv8-a+lse + libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))) + endif + if ARCH_ARM_LINUX +diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in +index a51807e95c9..97df2d7ff03 100644 +--- a/libatomic/Makefile.in ++++ b/libatomic/Makefile.in +@@ -431,7 +431,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) + libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \ + _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \ + $(am__append_3) $(am__append_4) +-@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse + @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64 + @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586 + @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 diff --git a/poky/meta/recipes-devtools/gcc/gcc_10.1.bb b/poky/meta/recipes-devtools/gcc/gcc_10.1.bb deleted file mode 100644 index 7d9359058..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc_10.1.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/poky/meta/recipes-devtools/gcc/gcc_10.2.bb b/poky/meta/recipes-devtools/gcc/gcc_10.2.bb new file mode 100644 index 000000000..7d9359058 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc_10.2.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/poky/meta/recipes-devtools/gcc/libgcc-initial_10.1.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_10.1.bb deleted file mode 100644 index 0c698c26e..000000000 --- a/poky/meta/recipes-devtools/gcc/libgcc-initial_10.1.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/poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.bb new file mode 100644 index 000000000..0c698c26e --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/libgcc-initial_10.2.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/poky/meta/recipes-devtools/gcc/libgcc_10.1.bb b/poky/meta/recipes-devtools/gcc/libgcc_10.1.bb deleted file mode 100644 index ea210a113..000000000 --- a/poky/meta/recipes-devtools/gcc/libgcc_10.1.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/poky/meta/recipes-devtools/gcc/libgcc_10.2.bb b/poky/meta/recipes-devtools/gcc/libgcc_10.2.bb new file mode 100644 index 000000000..ea210a113 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/libgcc_10.2.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/poky/meta/recipes-devtools/gcc/libgfortran_10.1.bb b/poky/meta/recipes-devtools/gcc/libgfortran_10.1.bb deleted file mode 100644 index 71dd8b4bd..000000000 --- a/poky/meta/recipes-devtools/gcc/libgfortran_10.1.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-devtools/gcc/gcc-${PV}.inc -require libgfortran.inc - diff --git a/poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb b/poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb new file mode 100644 index 000000000..71dd8b4bd --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/libgfortran_10.2.bb @@ -0,0 +1,3 @@ +require recipes-devtools/gcc/gcc-${PV}.inc +require libgfortran.inc + diff --git a/poky/meta/recipes-devtools/git/git_2.27.0.bb b/poky/meta/recipes-devtools/git/git_2.27.0.bb deleted file mode 100644 index 8022659ad..000000000 --- a/poky/meta/recipes-devtools/git/git_2.27.0.bb +++ /dev/null @@ -1,10 +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.sha256sum] = "77ded85cbe42b1ffdc2578b460a1ef5d23bcbc6683eabcafbb0d394dffe2e787" -SRC_URI[manpages.sha256sum] = "414e4b17133e54d846f6bfa2479f9757c50e16c013eb76167a492ae5409b8947" - diff --git a/poky/meta/recipes-devtools/git/git_2.28.0.bb b/poky/meta/recipes-devtools/git/git_2.28.0.bb new file mode 100644 index 000000000..e90787d06 --- /dev/null +++ b/poky/meta/recipes-devtools/git/git_2.28.0.bb @@ -0,0 +1,9 @@ +require git.inc + +EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \ + ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \ + " +EXTRA_OEMAKE += "NO_GETTEXT=1" + +SRC_URI[tarball.sha256sum] = "f914c60a874d466c1e18467c864a910dd4ea22281ba6d4d58077cb0c3f115170" +SRC_URI[manpages.sha256sum] = "3cfca28a88d5b8112ea42322b797a500a14d0acddea391aed0462aff1ab11bf7" diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb index 54eb5e48a..200b1f185 100644 --- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb +++ b/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 = "696cd4a4eab1ee9fefbb7e38dbab291d741d0c5a" -PV = "20200621+git${SRCPV}" +SRCREV = "2593751ef276497e312d7c4ce7fd049614c7bf80" +PV = "20200721+git${SRCPV}" SRC_URI = "git://git.savannah.gnu.org/config.git \ file://gnu-configize.in" diff --git a/poky/meta/recipes-devtools/go/go-1.14.inc b/poky/meta/recipes-devtools/go/go-1.14.inc index 105011695..8f8ed89de 100644 --- a/poky/meta/recipes-devtools/go/go-1.14.inc +++ b/poky/meta/recipes-devtools/go/go-1.14.inc @@ -1,7 +1,7 @@ require go-common.inc GO_BASEVERSION = "1.14" -GO_MINOR = ".4" +GO_MINOR = ".7" PV .= "${GO_MINOR}" FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" @@ -18,4 +18,4 @@ SRC_URI += "\ 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] = "7011af3bbc2ac108d1b82ea8abb87b2e63f78844f0259be20cde4d42c5c40584" +SRC_URI[main.sha256sum] = "064392433563660c73186991c0a315787688e7c38a561e26647686f89b6c30e3" diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb deleted file mode 100644 index 72c988944..000000000 --- a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb +++ /dev/null @@ -1,46 +0,0 @@ -# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. - -SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" -HOMEPAGE = " http://golang.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -PROVIDES = "go-native" - -SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" -SRC_URI[go_linux_amd64.sha256sum] = "aed845e4185a0b2a3c3d5e1d0a35491702c55889192bb9c30e67a3de6849c067" -SRC_URI[go_linux_arm64.sha256sum] = "05dc46ada4e23a1f58e72349f7c366aae2e9c7a7f1e7653095538bc5bba5e077" - -UPSTREAM_CHECK_URI = "https://golang.org/dl/" -UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" - -S = "${WORKDIR}/go" - -inherit goarch native - -do_compile() { - : -} - -make_wrapper() { - rm -f ${D}${bindir}/$1 - cat <${D}${bindir}/$1 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$1 -} - -do_install() { - find ${S} -depth -type d -name testdata -exec rm -rf {} + - - install -d ${D}${bindir} ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ - - for f in ${S}/bin/* - do - make_wrapper `basename $f` - done -} diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.14.7.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.14.7.bb new file mode 100644 index 000000000..3452ca46d --- /dev/null +++ b/poky/meta/recipes-devtools/go/go-binary-native_1.14.7.bb @@ -0,0 +1,46 @@ +# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. + +SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" +HOMEPAGE = " http://golang.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +PROVIDES = "go-native" + +SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" +SRC_URI[go_linux_amd64.sha256sum] = "4a7fa60f323ee1416a4b1425aefc37ea359e9d64df19c326a58953a97ad41ea5" +SRC_URI[go_linux_arm64.sha256sum] = "fe5b6f6e441f3cb7b53ebf1a010bbebcb720ac98124984cfe2e51d72b8a58c71" + +UPSTREAM_CHECK_URI = "https://golang.org/dl/" +UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" + +S = "${WORKDIR}/go" + +inherit goarch native + +do_compile() { + : +} + +make_wrapper() { + rm -f ${D}${bindir}/$1 + cat <${D}${bindir}/$1 +#!/bin/bash +here=\`dirname \$0\` +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" +END + chmod +x ${D}${bindir}/$1 +} + +do_install() { + find ${S} -depth -type d -name testdata -exec rm -rf {} + + + install -d ${D}${bindir} ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ + + for f in ${S}/bin/* + do + make_wrapper `basename $f` + done +} diff --git a/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch b/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch deleted file mode 100644 index a45cfb61b..000000000 --- a/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 099016b7e8d70a6d5dd814e788bba08d33d48426 Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Mon, 4 May 2020 19:41:16 +0200 -Subject: [PATCH 1/3] Protect array_list_del_idx against size_t overflow. - -If the assignment of stop overflows due to idx and count being -larger than SIZE_T_MAX in sum, out of boundary access could happen. - -It takes invalid usage of this function for this to happen, but -I decided to add this check so array_list_del_idx is as safe against -bad usage as the other arraylist functions. - -Upstream-Status: Backport [https://github.com/json-c/json-c/commit/31243e4d1204ef78be34b0fcae73221eee6b83be] -CVE: CVE-2020-12762 -Signed-off-by: Chee Yang Lee - ---- - arraylist.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/arraylist.c b/arraylist.c -index 12ad8af6d3..e5524aca75 100644 ---- a/arraylist.c -+++ b/arraylist.c -@@ -136,6 +136,9 @@ int array_list_del_idx(struct array_list *arr, size_t idx, size_t count) - { - size_t i, stop; - -+ /* Avoid overflow in calculation with large indices. */ -+ if (idx > SIZE_T_MAX - count) -+ return -1; - stop = idx + count; - if (idx >= arr->length || stop > arr->length) - return -1; - -From 77d935b7ae7871a1940cd827e850e6063044ec45 Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Mon, 4 May 2020 19:46:45 +0200 -Subject: [PATCH 2/3] Prevent division by zero in linkhash. - -If a linkhash with a size of zero is created, then modulo operations -are prone to division by zero operations. - -Purely protective measure against bad usage. ---- - linkhash.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/linkhash.c b/linkhash.c -index 7ea58c0abf..f05cc38030 100644 ---- a/linkhash.c -+++ b/linkhash.c -@@ -12,6 +12,7 @@ - - #include "config.h" - -+#include - #include - #include - #include -@@ -499,6 +500,8 @@ struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn, lh_hash_fn *h - int i; - struct lh_table *t; - -+ /* Allocate space for elements to avoid divisions by zero. */ -+ assert(size > 0); - t = (struct lh_table *)calloc(1, sizeof(struct lh_table)); - if (!t) - return NULL; - -From d07b91014986900a3a75f306d302e13e005e9d67 Mon Sep 17 00:00:00 2001 -From: Tobias Stoeckmann -Date: Mon, 4 May 2020 19:47:25 +0200 -Subject: [PATCH 3/3] Fix integer overflows. - -The data structures linkhash and printbuf are limited to 2 GB in size -due to a signed integer being used to track their current size. - -If too much data is added, then size variable can overflow, which is -an undefined behaviour in C programming language. - -Assuming that a signed int overflow just leads to a negative value, -like it happens on many sytems (Linux i686/amd64 with gcc), then -printbuf is vulnerable to an out of boundary write on 64 bit systems. ---- - linkhash.c | 7 +++++-- - printbuf.c | 19 ++++++++++++++++--- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/linkhash.c b/linkhash.c -index f05cc38030..51e90b13a2 100644 ---- a/linkhash.c -+++ b/linkhash.c -@@ -580,9 +580,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con - { - unsigned long n; - -- if (t->count >= t->size * LH_LOAD_FACTOR) -- if (lh_table_resize(t, t->size * 2) != 0) -+ if (t->count >= t->size * LH_LOAD_FACTOR) { -+ /* Avoid signed integer overflow with large tables. */ -+ int new_size = INT_MAX / 2 < t->size ? t->size * 2 : INT_MAX; -+ if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0) - return -1; -+ } - - n = h % t->size; - -diff --git a/printbuf.c b/printbuf.c -index 976c12dde5..00822fac4f 100644 ---- a/printbuf.c -+++ b/printbuf.c -@@ -15,6 +15,7 @@ - - #include "config.h" - -+#include - #include - #include - #include -@@ -65,10 +66,16 @@ static int printbuf_extend(struct printbuf *p, int min_size) - - if (p->size >= min_size) - return 0; -- -- new_size = p->size * 2; -- if (new_size < min_size + 8) -+ /* Prevent signed integer overflows with large buffers. */ -+ if (min_size > INT_MAX - 8) -+ return -1; -+ if (p->size > INT_MAX / 2) - new_size = min_size + 8; -+ else { -+ new_size = p->size * 2; -+ if (new_size < min_size + 8) -+ new_size = min_size + 8; -+ } - #ifdef PRINTBUF_DEBUG - MC_DEBUG("printbuf_memappend: realloc " - "bpos=%d min_size=%d old_size=%d new_size=%d\n", -@@ -83,6 +90,9 @@ static int printbuf_extend(struct printbuf *p, int min_size) - - int printbuf_memappend(struct printbuf *p, const char *buf, int size) - { -+ /* Prevent signed integer overflows with large buffers. */ -+ if (size > INT_MAX - p->bpos - 1) -+ return -1; - if (p->size <= p->bpos + size + 1) - { - if (printbuf_extend(p, p->bpos + size + 1) < 0) -@@ -100,6 +110,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len) - - if (offset == -1) - offset = pb->bpos; -+ /* Prevent signed integer overflows with large buffers. */ -+ if (len > INT_MAX - offset) -+ return -1; - size_needed = offset + len; - if (pb->size < size_needed) - { diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb b/poky/meta/recipes-devtools/json-c/json-c_0.14.bb deleted file mode 100644 index 1d501d129..000000000 --- a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "C bindings for apps which will manipulate JSON data" -DESCRIPTION = "JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C." -HOMEPAGE = "https://github.com/json-c/json-c/wiki" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2" - -SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \ - file://CVE-2020-12762.patch \ -" - -SRC_URI[sha256sum] = "b377de08c9b23ca3b37d9a9828107dff1de5ce208ff4ebb35005a794f30c6870" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+)-\d+" - -RPROVIDES_${PN} = "libjson" - -inherit cmake - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.15.bb b/poky/meta/recipes-devtools/json-c/json-c_0.15.bb new file mode 100644 index 000000000..2968590dd --- /dev/null +++ b/poky/meta/recipes-devtools/json-c/json-c_0.15.bb @@ -0,0 +1,18 @@ +SUMMARY = "C bindings for apps which will manipulate JSON data" +DESCRIPTION = "JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C." +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[sha256sum] = "b8d80a1ddb718b3ba7492916237bbf86609e9709fb007e7f7d4322f02341a4c6" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "json-c-(?P\d+(\.\d+)+)-\d+" + +RPROVIDES_${PN} = "libjson" + +inherit cmake + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch new file mode 100644 index 000000000..e3784cc9e --- /dev/null +++ b/poky/meta/recipes-devtools/libdnf/libdnf/enable_test_data_dir_set.patch @@ -0,0 +1,26 @@ +libdnf: allow reproducible binary builds + +Use a dummy directory for test data if not built WITH_TESTS. Allow for overriding +TESTDATADIR, since the default is guaranteed to be wrong for target builds. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater + + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -133,7 +133,12 @@ add_definitions(-DG_LOG_DOMAIN=\\"libdnf + add_definitions(-D_FILE_OFFSET_BITS=64) + + # tests +-add_definitions(-DTESTDATADIR=\\"${CMAKE_SOURCE_DIR}/data/tests\\") ++if(NOT WITH_TESTS) ++ set(TEST_DATA_DIR "/notests") ++elseif(NOT DEFINED TEST_DATA_DIR) ++ set(TEST_DATA_DIR "${CMAKE_SOURCE_DIR}/data/tests") ++endif() ++add_definitions(-DTESTDATADIR=\\"${TEST_DATA_DIR}\\") + + # librhsm + if(ENABLE_RHSM_SUPPORT) diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb index 947b2f234..37991e6d8 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb +++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb @@ -8,6 +8,7 @@ SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \ file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ file://0001-Add-WITH_TESTS-option.patch \ file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \ + file://enable_test_data_dir_set.patch \ " SRCREV = "46a28d0cf09277fffc11392e5e362a2eda0d53a8" diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb index d24ed761b..4c2d49031 100644 --- a/poky/meta/recipes-devtools/llvm/llvm_git.bb +++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb @@ -19,7 +19,7 @@ inherit cmake pkgconfig PROVIDES += "llvm${PV}" -MAJOR_VERSION = "9" +MAJOR_VERSION = "10" MINOR_VERSION = "0" PATCH_VERSION = "1" @@ -29,7 +29,7 @@ LLVM_RELEASE = "${PV}" LLVM_DIR = "llvm${LLVM_RELEASE}" BRANCH = "release/${MAJOR_VERSION}.x" -SRCREV = "c1a0a213378a458fbea1a5c77b315c7dce08fd05" +SRCREV = "ef32c611aa214dea855364efd7ba451ec5ec3f74" SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH} \ file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \ file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc index ffa17b306..607093a15 100644 --- a/poky/meta/recipes-devtools/meson/meson.inc +++ b/poky/meta/recipes-devtools/meson/meson.inc @@ -16,7 +16,7 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ file://0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch \ " -SRC_URI[sha256sum] = "f2bdf4cf0694e696b48261cdd14380fb1d0fe33d24744d8b2df0c12f33ebb662" +SRC_URI[sha256sum] = "0a1ae2bfe2ae14ac47593537f93290fb79e9b775c55b4c53c282bc3ca3745b35" SRC_URI_append_class-native = " \ file://0001-Make-CPU-family-warnings-fatal.patch \ diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch index 39b1af52e..623e32957 100644 --- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch +++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch @@ -1,7 +1,7 @@ -From 62c415eedb62905de76e2e0bbd156a947705cab2 Mon Sep 17 00:00:00 2001 +From 5624b5835af747b601780ad14646f9c1fb854931 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 +Subject: [PATCH 1/2] Make CPU family warnings fatal Upstream-Status: Inappropriate [OE specific] Signed-off-by: Ross Burton @@ -12,23 +12,23 @@ Signed-off-by: Ross Burton 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index 17058df..18bbf86 100644 +index 219b62e..d1be65b 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py -@@ -225,7 +225,7 @@ class MachineInfo: +@@ -199,7 +199,7 @@ class MachineInfo: cpu_family = literal['cpu_family'] if cpu_family not in known_cpu_families: -- mlog.warning('Unknown CPU family %s, please report this at https://github.com/mesonbuild/meson/issues/new' % cpu_family) -+ raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % cpu_family) +- mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family)) ++ raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family)) endian = literal['endian'] if endian not in ('little', 'big'): diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py -index a2f78a4..59fcb07 100644 +index bf09a88..8eabe78 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py -@@ -364,9 +364,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str: +@@ -375,9 +375,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str: trial = 'parisc' if trial not in known_cpu_families: @@ -39,3 +39,6 @@ index a2f78a4..59fcb07 100644 return trial +-- +2.24.0 + diff --git a/poky/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch b/poky/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch index 35c18f078..a1f8422d4 100644 --- a/poky/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch +++ b/poky/meta/recipes-devtools/meson/meson/0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch @@ -1,4 +1,4 @@ -From 7be634fa9705d0367f48a91305f9acb642ff0a11 Mon Sep 17 00:00:00 2001 +From 64aa6718c290e150dafd8da83f31cb08af00af0e Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 27 May 2020 16:43:05 +0000 Subject: [PATCH] gnome.py: prefix g-i paths with PKG_CONFIG_SYSROOT_DIR @@ -9,33 +9,29 @@ determine when a custom variable is a path) Upstream-Status: Pending Signed-off-by: Alexander Kanavin + --- - mesonbuild/modules/gnome.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) + mesonbuild/modules/gnome.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 89d5d5d..d75f2e5 100644 +index 52016f4..2b72ee4 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -739,17 +739,17 @@ class GnomeModule(ExtensionModule): - if giscanner.found(): - giscanner_path = giscanner.get_command()[0] - if not any(x in giscanner_path for x in gi_util_dirs_check): -- giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}) -+ giscanner = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}) - else: -- giscanner = self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}) -+ giscanner = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {}) - - gicompiler = self.interpreter.find_program_impl('g-ir-compiler') - if gicompiler.found(): - gicompiler_path = gicompiler.get_command()[0] - if not any(x in gicompiler_path for x in gi_util_dirs_check): -- gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}) -+ gicompiler = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}) - else: -- gicompiler = self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}) -+ gicompiler = os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {}) - - ns = kwargs.pop('namespace') - nsversion = kwargs.pop('nsversion') +@@ -410,14 +410,14 @@ class GnomeModule(ExtensionModule): + if giscanner is not None: + self.giscanner = ExternalProgram.from_entry('g-ir-scanner', giscanner) + elif self.gir_dep.type_name == 'pkgconfig': +- self.giscanner = ExternalProgram('g_ir_scanner', self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})) ++ self.giscanner = ExternalProgram('g_ir_scanner', os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_scanner', {})) + else: + self.giscanner = self.interpreter.find_program_impl('g-ir-scanner') + gicompiler = state.environment.lookup_binary_entry(MachineChoice.HOST, 'g-ir-compiler') + if gicompiler is not None: + self.gicompiler = ExternalProgram.from_entry('g-ir-compiler', gicompiler) + elif self.gir_dep.type_name == 'pkgconfig': +- self.gicompiler = ExternalProgram('g_ir_compiler', self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})) ++ self.gicompiler = ExternalProgram('g_ir_compiler', os.environ['PKG_CONFIG_SYSROOT_DIR'] + self.gir_dep.get_pkgconfig_variable('g_ir_compiler', {})) + else: + self.gicompiler = self.interpreter.find_program_impl('g-ir-compiler') + return self.gir_dep, self.giscanner, self.gicompiler diff --git a/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch b/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch index a25c39227..c0ad01e9d 100644 --- a/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch +++ b/poky/meta/recipes-devtools/meson/meson/0001-modules-python.py-do-not-substitute-python-s-install.patch @@ -1,4 +1,4 @@ -From 1d178fb2928d325e339b15972890ceced863d3ec Mon Sep 17 00:00:00 2001 +From 214e559d394491b1376e4cc370f75151117a3f83 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 18 Apr 2019 17:36:11 +0200 Subject: [PATCH] modules/python.py: do not substitute python's install prefix @@ -10,15 +10,16 @@ b) shouldn't be necessary as Python's prefix ought to be correct in the first pl Upstream-Status: Pending Signed-off-by: Alexander Kanavin + --- mesonbuild/modules/python.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py -index 6e2c63b..f5a37ac 100644 +index 2f0c644..d2aa565 100644 --- a/mesonbuild/modules/python.py +++ b/mesonbuild/modules/python.py -@@ -254,7 +254,7 @@ import sysconfig +@@ -251,7 +251,7 @@ INTROSPECT_COMMAND = '''import sysconfig import json import sys @@ -27,8 +28,8 @@ index 6e2c63b..f5a37ac 100644 def links_against_libpython(): from distutils.core import Distribution, Extension -@@ -279,12 +279,11 @@ class PythonInstallation(ExternalProgramHolder): - ExternalProgramHolder.__init__(self, python) +@@ -276,12 +276,11 @@ class PythonInstallation(ExternalProgramHolder): + ExternalProgramHolder.__init__(self, python, interpreter.subproject) self.interpreter = interpreter self.subproject = self.interpreter.subproject - prefix = self.interpreter.environment.coredata.get_builtin_option('prefix') diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch index bb06d9924..dce463e5b 100644 --- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch +++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch @@ -1,4 +1,4 @@ -From d976d5a8abd6d42edf794d2a4c211fc6697fb14c Mon Sep 17 00:00:00 2001 +From 4b283d545152092fec12b9d80219161d11002c72 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 @@ -13,7 +13,7 @@ Signed-off-by: Peter Kjellerstedt 1 file changed, 1 insertion(+) diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py -index 18bbf86..e76315e 100644 +index dc20616..f54adcd 100644 --- a/mesonbuild/envconfig.py +++ b/mesonbuild/envconfig.py @@ -36,6 +36,7 @@ _T = T.TypeVar('_T') diff --git a/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch b/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch index 38e50d72f..4653a72a2 100644 --- a/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch +++ b/poky/meta/recipes-devtools/meson/meson/disable-rpath-handling.patch @@ -1,4 +1,4 @@ -From 3af10fa8cd4e97181288d72227dea712290fd5e6 Mon Sep 17 00:00:00 2001 +From 9e3fcf192c1ca068d310c648c311f9d850214421 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 23 Nov 2018 15:28:28 +0000 Subject: [PATCH] meson: Disable rpath stripping at install time @@ -16,17 +16,17 @@ Upstream-Status: Submitted [https://github.com/mesonbuild/meson/issues/2567] 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py -index ace0569..85bd8df 100644 +index 0be01fe..5406cab 100644 --- a/mesonbuild/minstall.py +++ b/mesonbuild/minstall.py -@@ -508,8 +508,11 @@ class Installer: +@@ -512,8 +512,11 @@ class Installer: if file_copied: self.did_install_something = True try: -- depfixer.fix_rpath(outname, install_rpath, final_path, +- depfixer.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path, - install_name_mappings, verbose=False) + if install_rpath: -+ depfixer.fix_rpath(outname, install_rpath, final_path, ++ depfixer.fix_rpath(outname, t.rpath_dirs_to_remove, install_rpath, final_path, + install_name_mappings, verbose=False) + else: + print("RPATH changes at install time disabled") diff --git a/poky/meta/recipes-devtools/meson/meson_0.54.3.bb b/poky/meta/recipes-devtools/meson/meson_0.54.3.bb deleted file mode 100644 index de9b905c1..000000000 --- a/poky/meta/recipes-devtools/meson/meson_0.54.3.bb +++ /dev/null @@ -1,4 +0,0 @@ -include meson.inc - -BBCLASSEXTEND = "native" - diff --git a/poky/meta/recipes-devtools/meson/meson_0.55.0.bb b/poky/meta/recipes-devtools/meson/meson_0.55.0.bb new file mode 100644 index 000000000..de9b905c1 --- /dev/null +++ b/poky/meta/recipes-devtools/meson/meson_0.55.0.bb @@ -0,0 +1,4 @@ +include meson.inc + +BBCLASSEXTEND = "native" + diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb deleted file mode 100644 index 67add2c25..000000000 --- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb +++ /dev/null @@ -1,65 +0,0 @@ -include meson.inc - -inherit nativesdk -inherit siteinfo - -SRC_URI += "file://meson-setup.py \ - file://meson-wrapper" - -def meson_endian(prefix, d): - arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS") - sitedata = siteinfo_data_for_machine(arch, os, d) - if "endian-little" in sitedata: - return "little" - elif "endian-big" in sitedata: - return "big" - else: - bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) - -# The cross file 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. -do_install_append() { - install -d ${D}${datadir}/meson - cat >${D}${datadir}/meson/meson.cross.template <${D}${datadir}/meson/meson.cross.template < - -From 287964d54b64bed833adba307e1d920f8fcf0cbc Mon Sep 17 00:00:00 2001 -From: Ozkan Sezer -Date: Wed, 7 Aug 2019 15:50:50 +0300 -Subject: [PATCH] fix pa_add_headers.m4 for development versions of autoconf - (bug 3392471) - -Signed-off-by: H. Peter Anvin (Intel) ---- - autoconf/m4/pa_add_headers.m4 | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/aclocal.m4 b/aclocal.m4 -index 1af2dd5d..6ce3e6c1 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -169,7 +169,8 @@ dnl -------------------------------------------------------------------------- - AC_DEFUN(_PA_ADD_HEADER, - [AC_CHECK_HEADERS([$1],[ac_includes_default="$ac_includes_default - #include <$1>" --])]) -+]) -+]) - - AC_DEFUN(PA_ADD_HEADERS, - [m4_map_args_w([$1],[_PA_ADD_HEADER(],[)])]) diff --git a/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch b/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch index d94fd3290..0ede8a832 100644 --- a/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch +++ b/poky/meta/recipes-devtools/nasm/nasm/0001-stdlib-Add-strlcat.patch @@ -1,12 +1,13 @@ -From 8a204171004fa0d7d21389530c744d215e99efb0 Mon Sep 17 00:00:00 2001 +From 1c5023002bad3a5b0bbc181fdb324160beace733 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Tue, 19 Nov 2019 12:47:30 -0600 -Subject: [PATCH 1/2] stdlib: Add strlcat +Subject: [PATCH] stdlib: Add strlcat Adds strlcat which can be used to safely concatenate strings Upstream-Status: Submitted [https://bugzilla.nasm.us/show_bug.cgi?id=3392635] Signed-off-by: Joshua Watt + --- Makefile.in | 2 +- configure.ac | 2 ++ @@ -16,10 +17,10 @@ Signed-off-by: Joshua Watt create mode 100644 stdlib/strlcat.c diff --git a/Makefile.in b/Makefile.in -index 32ef3d91..ff7eb447 100644 +index bfae1f8..156dc4c 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -93,7 +93,7 @@ NASM = asm/nasm.$(O) +@@ -101,7 +101,7 @@ NASM = asm/nasm.$(O) NDISASM = disasm/ndisasm.$(O) LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ @@ -27,20 +28,20 @@ index 32ef3d91..ff7eb447 100644 + stdlib/strnlen.$(O) stdlib/strrchrnul.$(O) stdlib/strlcat.$(O) \ \ nasmlib/ver.$(O) \ - nasmlib/crc64.$(O) nasmlib/malloc.$(O) nasmlib/errfile.$(O) \ + nasmlib/alloc.$(O) nasmlib/asprintf.$(O) nasmlib/errfile.$(O) \ diff --git a/configure.ac b/configure.ac -index 38b3b596..b4e88778 100644 +index 7b72769..14fd033 100644 --- a/configure.ac +++ b/configure.ac -@@ -152,6 +152,7 @@ AC_CHECK_FUNCS([vsnprintf _vsnprintf]) - AC_CHECK_FUNCS([snprintf _snprintf]) +@@ -234,6 +234,7 @@ PA_FUNC_SNPRINTF + PA_FUNC_VSNPRINTF AC_CHECK_FUNCS([strlcpy]) AC_CHECK_FUNCS([strrchrnul]) +AC_CHECK_FUNCS([strlcat]) dnl These types are POSIX-specific, and Windows does it differently... AC_CHECK_TYPES([struct _stati64]) -@@ -170,6 +171,7 @@ AC_CHECK_DECLS(strsep) +@@ -253,6 +254,7 @@ AC_CHECK_DECLS(strsep) AC_CHECK_DECLS(strlcpy) AC_CHECK_DECLS(strnlen) AC_CHECK_DECLS(strrchrnul) @@ -49,10 +50,10 @@ index 38b3b596..b4e88778 100644 dnl Check for missing types AC_TYPE_UINTPTR_T diff --git a/include/compiler.h b/include/compiler.h -index 4178c98e..8153d297 100644 +index b4fd3a8..7fb4821 100644 --- a/include/compiler.h +++ b/include/compiler.h -@@ -159,6 +159,10 @@ size_t strlcpy(char *, const char *, size_t); +@@ -169,6 +169,10 @@ size_t strlcpy(char *, const char *, size_t); char *strrchrnul(const char *, int); #endif @@ -65,7 +66,7 @@ index 4178c98e..8153d297 100644 # include diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c new file mode 100644 -index 00000000..7084d460 +index 0000000..7084d46 --- /dev/null +++ b/stdlib/strlcat.c @@ -0,0 +1,43 @@ @@ -112,6 +113,3 @@ index 00000000..7084d460 + +#endif + --- -2.23.0 - diff --git a/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch b/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch index bbfae2e8a..f788e0fd4 100644 --- a/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch +++ b/poky/meta/recipes-devtools/nasm/nasm/0002-Add-debug-prefix-map-option.patch @@ -1,7 +1,7 @@ -From fa677c1caf6b8192971920cf5c1aa8cb33c74605 Mon Sep 17 00:00:00 2001 +From bb4e42ad3a0cdd23a1d1797e6299c76b474867c0 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 +Subject: [PATCH] Add --debug-prefix-map option Adds an option to remap file prefixes in output object files. This is analogous to the "-fdebug-prefix-map" option in GCC, and allows files to @@ -9,47 +9,48 @@ 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 ++++++++++++++++++++++++++-- + asm/nasm.c | 26 +++++++++++++++++++++++++- include/nasmlib.h | 9 +++++++++ nasm.txt | 4 ++++ nasmlib/filename.c | 20 ++++++++++++++++++++ output/outas86.c | 4 +++- output/outcoff.c | 4 ++-- - output/outelf.c | 8 ++++---- + output/outelf.c | 2 +- output/outieee.c | 2 +- output/outobj.c | 2 +- stdlib/strlcat.c | 2 +- test/elfdebugprefix.asm | 6 ++++++ test/performtest.pl | 12 ++++++++++-- - 12 files changed, 87 insertions(+), 14 deletions(-) + 12 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 test/elfdebugprefix.asm diff --git a/asm/nasm.c b/asm/nasm.c -index 1c5a5fc5..5d45103c 100644 +index a0e1719..fc6c62e 100644 --- a/asm/nasm.c +++ b/asm/nasm.c -@@ -841,7 +841,8 @@ enum text_options { - OPT_BEFORE, +@@ -938,7 +938,8 @@ enum text_options { OPT_LIMIT, OPT_KEEP_ALL, -- OPT_NO_LINE -+ OPT_NO_LINE, + OPT_NO_LINE, +- OPT_DEBUG ++ OPT_DEBUG, + 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}, + enum need_arg { + ARG_NO, +@@ -970,6 +971,7 @@ static const struct textargs textopts[] = { + {"keep-all", OPT_KEEP_ALL, ARG_NO, 0}, + {"no-line", OPT_NO_LINE, ARG_NO, 0}, + {"debug", OPT_DEBUG, ARG_MAYBE, 0}, + {"debug-prefix-map", OPT_DEBUG_PREFIX_MAP, true, 0}, - {NULL, OPT_BOGUS, false, 0} + {NULL, OPT_BOGUS, ARG_NO, 0} }; -@@ -1217,6 +1219,26 @@ static bool process_arg(char *p, char *q, int pass) - case OPT_NO_LINE: - pp_noline = true; +@@ -1332,6 +1334,26 @@ static bool process_arg(char *p, char *q, int pass) + case OPT_DEBUG: + debug_nasm = param ? strtoul(param, NULL, 10) : debug_nasm+1; break; + case OPT_DEBUG_PREFIX_MAP: { + struct debug_prefix_list *d; @@ -72,24 +73,22 @@ index 1c5a5fc5..5d45103c 100644 + } + break; case OPT_HELP: - help(0); + help(stdout); exit(0); -@@ -2010,7 +2032,9 @@ static void help(const char xopt) - " --lpostfix str append the given string to all other symbols\n" - " --keep-all output files will not be removed even if an error happens\n" - " --no-line ignore %%line directives in input\n" -- " --limit-X val set execution limit X\n"); -+ " --limit-X val set execution limit X\n" -+ " --debug-prefix-map base=dest\n" -+ " remap paths starting with 'base' to 'dest' in output files\n"); +@@ -2297,6 +2319,8 @@ static void help(FILE *out) + " -w-x disable warning x (also -Wno-x)\n" + " -w[+-]error promote all warnings to errors (also -Werror)\n" + " -w[+-]error=x promote warning x to errors (also -Werror=x)\n" ++ " --debug-prefix-map base=dest\n" ++ " remap paths starting with 'base' to 'dest' in output files\n" + , out); - for (i = 0; i <= LIMIT_MAX; i++) { - printf(" %-15s %s (default ", + fprintf(out, " %-20s %s\n", diff --git a/include/nasmlib.h b/include/nasmlib.h -index e57d0e6d..cf921547 100644 +index e9bfbcc..98fc653 100644 --- a/include/nasmlib.h +++ b/include/nasmlib.h -@@ -195,10 +195,19 @@ int64_t readstrnum(char *str, int length, bool *warn); +@@ -250,10 +250,19 @@ int64_t readstrnum(char *str, int length, bool *warn); */ int32_t seg_alloc(void); @@ -110,7 +109,7 @@ index e57d0e6d..cf921547 100644 /* * Utility macros... diff --git a/nasm.txt b/nasm.txt -index a28202f9..443c06b2 100644 +index cc7fa27..d3485c9 100644 --- a/nasm.txt +++ b/nasm.txt @@ -147,6 +147,10 @@ OPTIONS @@ -125,7 +124,7 @@ index a28202f9..443c06b2 100644 ------ This man page does not fully describe the syntax of *nasm*'s assembly language, diff --git a/nasmlib/filename.c b/nasmlib/filename.c -index 172ae0bc..fda2be41 100644 +index 172ae0b..fda2be4 100644 --- a/nasmlib/filename.c +++ b/nasmlib/filename.c @@ -39,6 +39,8 @@ @@ -160,10 +159,10 @@ index 172ae0bc..fda2be41 100644 + return dest; +} diff --git a/output/outas86.c b/output/outas86.c -index 3f9867b9..d5f4f966 100644 +index 54b22f8..c4a412c 100644 --- a/output/outas86.c +++ b/output/outas86.c -@@ -113,6 +113,8 @@ static void as86_sect_write(struct Section *, const uint8_t *, +@@ -110,6 +110,8 @@ static void as86_sect_write(struct Section *, const uint8_t *, static void as86_init(void) { @@ -172,7 +171,7 @@ index 3f9867b9..d5f4f966 100644 stext.data = saa_init(1L); stext.datalen = 0L; stext.head = stext.last = NULL; -@@ -134,7 +136,7 @@ static void as86_init(void) +@@ -131,7 +133,7 @@ static void as86_init(void) strslen = 0; /* as86 module name = input file minus extension */ @@ -182,10 +181,10 @@ index 3f9867b9..d5f4f966 100644 static void as86_cleanup(void) diff --git a/output/outcoff.c b/output/outcoff.c -index a2fd302c..bcf576fb 100644 +index bcd9ff3..15bfcf3 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, +@@ -1095,14 +1095,14 @@ static void coff_symbol(char *name, int32_t strpos, int32_t value, static void coff_write_symbols(void) { @@ -203,48 +202,23 @@ index a2fd302c..bcf576fb 100644 /* diff --git a/output/outelf.c b/output/outelf.c -index de99d076..203b5dc0 100644 +index 61af020..1292958 100644 --- a/output/outelf.c +++ b/output/outelf.c -@@ -1,5 +1,5 @@ - /* ----------------------------------------------------------------------- * -- * -+ * - * Copyright 1996-2017 The NASM Authors - All Rights Reserved - * See the file AUTHORS included with the NASM distribution for - * the specific copyright holders. -@@ -14,7 +14,7 @@ - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. -- * -+ * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -@@ -315,7 +315,7 @@ elf_directive(enum directive directive, char *value, int pass) +@@ -553,7 +553,7 @@ static void elf_init(void) + }; + const char * const *p; - static void elf_init(void) - { - strlcpy(elf_module, inname, sizeof(elf_module)); + filename_debug_remap(elf_module, inname, sizeof(elf_module)); sects = NULL; nsects = sectlen = 0; syms = saa_init((int32_t)sizeof(struct elf_symbol)); -@@ -868,7 +868,7 @@ static void elf32_out(int32_t segto, const void *data, - " segment base references"); - } else { - if (wrt == NO_SEG) { -- /* -+ /* - * The if() is a hack to deal with compilers which - * don't handle switch() statements with 64-bit - * expressions. diff --git a/output/outieee.c b/output/outieee.c -index 3a28942d..f61824e4 100644 +index 4cc0f0f..2468724 100644 --- a/output/outieee.c +++ b/output/outieee.c -@@ -209,7 +209,7 @@ static void ieee_unqualified_name(char *, char *); +@@ -207,7 +207,7 @@ static void ieee_unqualified_name(char *, char *); */ static void ieee_init(void) { @@ -254,10 +228,10 @@ index 3a28942d..f61824e4 100644 fpubhead = NULL; fpubtail = &fpubhead; diff --git a/output/outobj.c b/output/outobj.c -index b4f2c499..55bba4a1 100644 +index 0d4d311..d8dd6a0 100644 --- a/output/outobj.c +++ b/output/outobj.c -@@ -640,7 +640,7 @@ static enum directive_result obj_directive(enum directive, char *, int); +@@ -638,7 +638,7 @@ static enum directive_result obj_directive(enum directive, char *); static void obj_init(void) { @@ -267,7 +241,7 @@ index b4f2c499..55bba4a1 100644 any_segs = false; fpubhead = NULL; diff --git a/stdlib/strlcat.c b/stdlib/strlcat.c -index 7084d460..ee93dea3 100644 +index 7084d46..ee93dea 100644 --- a/stdlib/strlcat.c +++ b/stdlib/strlcat.c @@ -29,7 +29,7 @@ size_t strlcat(char *dest, const char *src, size_t size) @@ -281,7 +255,7 @@ index 7084d460..ee93dea3 100644 /* destination was not NULL terminated. Return the initial size */ diff --git a/test/elfdebugprefix.asm b/test/elfdebugprefix.asm new file mode 100644 -index 00000000..a67ba29c +index 0000000..a67ba29 --- /dev/null +++ b/test/elfdebugprefix.asm @@ -0,0 +1,6 @@ @@ -292,7 +266,7 @@ index 00000000..a67ba29c + ret + diff --git a/test/performtest.pl b/test/performtest.pl -index f7865b39..096f9604 100755 +index f7865b3..096f960 100755 --- a/test/performtest.pl +++ b/test/performtest.pl @@ -42,14 +42,22 @@ sub perform { @@ -320,6 +294,3 @@ index f7865b39..096f9604 100755 #Move the output to the test dir mkpath("$outputdir/$testname/$subname"); foreach(split / /,$files) { --- -2.23.0 - diff --git a/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch b/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch deleted file mode 100644 index 6e3f909d0..000000000 --- a/poky/meta/recipes-devtools/nasm/nasm/CVE-2018-19755.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 3079f7966dbed4497e36d5067cbfd896a90358cb Mon Sep 17 00:00:00 2001 -From: Cyrill Gorcunov -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/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch b/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch deleted file mode 100644 index d45d2cb46..000000000 --- a/poky/meta/recipes-devtools/nasm/nasm/CVE-2019-14248.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 93d41d82963b2cfd0b24c906f5a8daf53281b559 Mon Sep 17 00:00:00 2001 -From: "H. Peter Anvin (Intel)" -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/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb deleted file mode 100644 index c40be8fbb..000000000 --- a/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb +++ /dev/null @@ -1,26 +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://CVE-2018-19755.patch \ - file://CVE-2019-14248.patch \ - file://0001-stdlib-Add-strlcat.patch \ - file://0002-Add-debug-prefix-map-option.patch \ - file://0001-fix-pa_add_headers.m4-for-development-versions-of-au.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/poky/meta/recipes-devtools/nasm/nasm_2.15.03.bb b/poky/meta/recipes-devtools/nasm/nasm_2.15.03.bb new file mode 100644 index 000000000..5c4e28de0 --- /dev/null +++ b/poky/meta/recipes-devtools/nasm/nasm_2.15.03.bb @@ -0,0 +1,21 @@ +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-stdlib-Add-strlcat.patch \ + file://0002-Add-debug-prefix-map-option.patch \ + " + +SRC_URI[sha256sum] = "04e7343d9bf112bffa9fda86f6c7c8b120c2ccd700b882e2db9f57484b1bd778" + +EXTRA_AUTORECONF_append = " -I autoconf/m4" + +inherit autotools + +BBCLASSEXTEND = "native" + +DEPENDS = "groff-native" + +CVE_PRODUCT = "netwide_assembler" diff --git a/poky/meta/recipes-devtools/perl/files/perl-cross-makefile.patch b/poky/meta/recipes-devtools/perl/files/perl-cross-makefile.patch new file mode 100644 index 000000000..5d3f99820 --- /dev/null +++ b/poky/meta/recipes-devtools/perl/files/perl-cross-makefile.patch @@ -0,0 +1,29 @@ +Makefile: Avoid continual rebuilds of miniperl and associated races + +In the Yocto Project, when we run "make install" we notice miniperl +rebuilding multiple times. Usually this is harmless however sometimes +race issues occur such as miniperl not being executable. + +The issue is that crosspatch is a phony target so it always rebuilds. +Adding this as a dependency of miniperl means miniperl always rebuilds +too. + +Avoid this by injecting a direct dependency avoiding the phony target. +miniperl is then only rebuilt when its input changes as desired. + +Signed-off-by: Richard Purdie richard.purdie@linuxfoundation.org +Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/95] + +Index: perl-5.32.0/Makefile +=================================================================== +--- perl-5.32.0.orig/Makefile ++++ perl-5.32.0/Makefile +@@ -56,7 +56,7 @@ crosspatch: $(CROSSPATCHED) + + # A minor fix for buildroot, force crosspatching when running "make perl modules" + # instead of "make all". +-miniperlmain$O: crosspatch ++miniperlmain$O: $(CROSSPATCHED) + + # Original versions are not saved anymore; patch generally takes care of this, + # and if that fails, reaching for the source tarball is the safest option. diff --git a/poky/meta/recipes-devtools/perl/perl_5.32.0.bb b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb index 1adfd90e7..bba8263b9 100644 --- a/poky/meta/recipes-devtools/perl/perl_5.32.0.bb +++ b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb @@ -20,6 +20,7 @@ SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ file://0002-Constant-Fix-up-shebang.patch \ file://determinism.patch \ + file://perl-cross-makefile.patch \ " SRC_URI_append_class-native = " \ file://perl-configpm-switch.patch \ @@ -138,6 +139,11 @@ do_install() { # Fix up shared library rm ${D}/${libdir}/perl5/${PV}/*/CORE/libperl.so ln -sf ../../../../libperl.so.${PERL_LIB_VER} $(echo ${D}/${libdir}/perl5/${PV}/*/CORE)/libperl.so + + # Try to catch Bug #13946 + if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then + bbfatal 'non-arch specific Storable.pm found! See https://bugzilla.yoctoproject.org/show_bug.cgi?id=13946' + fi } do_install_append_class-target() { diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 201e3570d..86c9363d6 100644 --- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch @@ -1,4 +1,4 @@ -From 234c3da52da09b28db5b2c4d33ebe9c800c461ac Mon Sep 17 00:00:00 2001 +From 768e1f2f14c9f1b3f9bd0e017c3f6183b45616e8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 17 Jul 2018 10:13:38 +0800 Subject: [PATCH] conditionally do not fetch code by easy_install @@ -9,16 +9,15 @@ internet by easy_install. Upstream-Status: Inappropriate [oe specific] Signed-off-by: Hongxu Jia - --- setuptools/command/easy_install.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 5a9576f..f5961cb 100644 +index bcbd4f58..6455afda 100644 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py -@@ -656,6 +656,11 @@ class easy_install(Command): +@@ -653,6 +653,11 @@ class easy_install(Command): os.path.exists(tmpdir) and rmtree(rmtree_safe(tmpdir)) def easy_install(self, spec, deps=False): @@ -27,6 +26,9 @@ index 5a9576f..f5961cb 100644 + "Please add its native recipe to DEPENDS." % spec) + return None + - if not self.editable: - self.install_site_py() - + with self._tmpdir() as tmpdir: + if not isinstance(spec, Requirement): + if URL_SCHEME(spec): +-- +2.25.1 + diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc deleted file mode 100644 index ecf120575..000000000 --- a/poky/meta/recipes-devtools/python/python-setuptools.inc +++ /dev/null @@ -1,60 +0,0 @@ -SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" -HOMEPAGE = "https://pypi.org/project/setuptools" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=9a33897f1bca1160d7aad3835152e158" - -PYPI_PACKAGE_EXT = "zip" - -inherit pypi - -SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" - -SRC_URI += "file://0001-change-shebang-to-python3.patch" - -SRC_URI[sha256sum] = "843037738d1e34e8b326b5e061f474aca6ef9d7ece41329afbc8aac6195a3920" - -DEPENDS += "${PYTHON_PN}" - -RDEPENDS_${PN} = "\ - ${PYTHON_PN}-2to3 \ - ${PYTHON_PN}-compile \ - ${PYTHON_PN}-compression \ - ${PYTHON_PN}-ctypes \ - ${PYTHON_PN}-distutils \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-html \ - ${PYTHON_PN}-json \ - ${PYTHON_PN}-netserver \ - ${PYTHON_PN}-numbers \ - ${PYTHON_PN}-pickle \ - ${PYTHON_PN}-pkgutil \ - ${PYTHON_PN}-plistlib \ - ${PYTHON_PN}-shell \ - ${PYTHON_PN}-stringold \ - ${PYTHON_PN}-threading \ - ${PYTHON_PN}-unittest \ - ${PYTHON_PN}-xml \ -" -do_install_prepend() { - install -d ${D}${PYTHON_SITEPACKAGES_DIR} -} - -BBCLASSEXTEND = "native nativesdk" - -# The pkg-resources module can be used by itself, without the package downloader -# and easy_install. Ship it in a separate package so that it can be used by -# minimal distributions. -PACKAGES =+ "${PYTHON_PN}-pkg-resources " -FILES_${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" -RDEPENDS_${PYTHON_PN}-pkg-resources = "\ - ${PYTHON_PN}-compression \ - ${PYTHON_PN}-email \ - ${PYTHON_PN}-plistlib \ - ${PYTHON_PN}-pprint \ -" -# Due to the way OE-Core implemented native recipes, the native class cannot -# have a dependency on something that is not a recipe name. Work around that by -# manually setting RPROVIDES. -RDEPENDS_${PN}_append = " ${PYTHON_PN}-pkg-resources" -RPROVIDES_append_class-native = " ${PYTHON_PN}-pkg-resources-native" diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb deleted file mode 100644 index 0dc1ed862..000000000 --- a/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -require python-setuptools.inc -inherit setuptools3 - -do_install_append() { - mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install -} diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_49.3.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_49.3.1.bb new file mode 100644 index 000000000..1c500e468 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-setuptools_49.3.1.bb @@ -0,0 +1,65 @@ +SUMMARY = "Download, build, install, upgrade, and uninstall Python packages" +HOMEPAGE = "https://pypi.org/project/setuptools" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=1;endline=19;md5=9a33897f1bca1160d7aad3835152e158" + +PYPI_PACKAGE_EXT = "zip" + +inherit pypi setuptools3 + +SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" + +SRC_URI += "file://0001-change-shebang-to-python3.patch" + +SRC_URI[sha256sum] = "1c7b51fba5d83160d540d18b2bf08fd546357488adf9ddbca08cc1e997bd5c18" + +DEPENDS += "${PYTHON_PN}" + +RDEPENDS_${PN} = "\ + ${PYTHON_PN}-2to3 \ + ${PYTHON_PN}-compile \ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-distutils \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-html \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-netserver \ + ${PYTHON_PN}-numbers \ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pkgutil \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-stringold \ + ${PYTHON_PN}-threading \ + ${PYTHON_PN}-unittest \ + ${PYTHON_PN}-xml \ +" + +do_install_prepend() { + install -d ${D}${PYTHON_SITEPACKAGES_DIR} +} + +do_install_append() { + mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install +} + +BBCLASSEXTEND = "native nativesdk" + +# The pkg-resources module can be used by itself, without the package downloader +# and easy_install. Ship it in a separate package so that it can be used by +# minimal distributions. +PACKAGES =+ "${PYTHON_PN}-pkg-resources " +FILES_${PYTHON_PN}-pkg-resources = "${PYTHON_SITEPACKAGES_DIR}/pkg_resources/*" +RDEPENDS_${PYTHON_PN}-pkg-resources = "\ + ${PYTHON_PN}-compression \ + ${PYTHON_PN}-email \ + ${PYTHON_PN}-plistlib \ + ${PYTHON_PN}-pprint \ +" +# Due to the way OE-Core implemented native recipes, the native class cannot +# have a dependency on something that is not a recipe name. Work around that by +# manually setting RPROVIDES. +RDEPENDS_${PN}_append = " ${PYTHON_PN}-pkg-resources" +RPROVIDES_append_class-native = " ${PYTHON_PN}-pkg-resources-native" diff --git a/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch b/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch deleted file mode 100644 index ee3d64552..000000000 --- a/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 5e94e315119117898ce1a2798641848f61d796b1 Mon Sep 17 00:00:00 2001 -From: Mingli Yu -Date: Thu, 9 Jul 2020 07:58:44 +0000 -Subject: [PATCH] configure.ac: define a path for profile data - -There comes below error when use ccache 3.7.10 to compile python3 -and check [1] for more details. - | Python-3.8.3/Modules/_contextvarsmodule.c:43:1: error: source locations for function 'PyInit__contextvars' have changed, the profile data may be out of date [-Werror=coverage-mismatch] - -That's because the logic for profile directory changes a little in -[2] after ccache upgrades to 3.7.10. - -So define a profile directory path accordingly to fix the above error. - -[1] https://github.com/ccache/ccache/issues/615 -[2] https://github.com/ccache/ccache/commit/91a2954eb47b4a106e2be6cf611917b895108e35 - -Upstream-Status: Submitted [https://github.com/python/cpython/pull/21408] - -Signed-off-by: Mingli Yu ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 08fe397..bb15bda 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1332,8 +1332,8 @@ case $cc_basename in - fi - ;; - *) -- PGO_PROF_GEN_FLAG="-fprofile-generate" -- PGO_PROF_USE_FLAG="-fprofile-use -fprofile-correction" -+ PGO_PROF_GEN_FLAG="-fprofile-generate=$(pwd)" -+ PGO_PROF_USE_FLAG="-fprofile-use=$(pwd) -fprofile-correction" - LLVM_PROF_MERGER="true" - LLVM_PROF_FILE="" - ;; --- -2.26.2 - diff --git a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py index fd12baad8..6806f2317 100644 --- a/poky/meta/recipes-devtools/python/python3/get_module_deps3.py +++ b/poky/meta/recipes-devtools/python/python3/get_module_deps3.py @@ -9,6 +9,7 @@ debug=False import sys +import os # We can get a list of the modules which are currently required to run python # so we run python-core and get its modules, we then import what we need @@ -48,8 +49,19 @@ current_module = str(sys.argv[1]).rstrip() if(debug==True): log = open('log_%s' % current_module,'w') log.write('Module %s generated the following dependencies:\n' % current_module) -try: - importlib.import_module('%s' % current_module) +try: + m = importlib.import_module(current_module) + # handle python packages which may not include all modules in the __init__ + if os.path.basename(m.__file__) == "__init__.py": + modulepath = os.path.dirname(m.__file__) + for i in os.listdir(modulepath): + if i.startswith("_") or not(i.endswith(".py")): + continue + submodule = "{}.{}".format(current_module, i[:-3]) + try: + importlib.import_module(submodule) + except: + pass # ignore all import or other exceptions raised during import except ImportError as e: if (debug==True): log.write('Module was not found') @@ -107,6 +119,8 @@ for item in dif: dep_path = dep_path.replace(soabi,'*') print (dep_path) continue + if "_sysconfigdata" in dep_path: + dep_path = dep_path.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") if (debug==True): log.write(dep_path+'\n') @@ -140,6 +154,8 @@ for item in dif: log.write(cached) cached = fix_path(cached) cached = cached.replace(cpython_tag,'*') + if "_sysconfigdata" in cached: + cached = cached.replace(sysconfig._get_sysconfigdata_name(), "_sysconfigdata*") print (cached) if debug==True: diff --git a/poky/meta/recipes-devtools/python/python3/python3-manifest.json b/poky/meta/recipes-devtools/python/python3/python3-manifest.json index 3bcc9b866..69aecb700 100644 --- a/poky/meta/recipes-devtools/python/python3/python3-manifest.json +++ b/poky/meta/recipes-devtools/python/python3/python3-manifest.json @@ -285,7 +285,7 @@ "${libdir}/python${PYTHON_MAJMIN}/operator.py", "${libdir}/python${PYTHON_MAJMIN}/optparse.py", "${libdir}/python${PYTHON_MAJMIN}/os.py", - "${libdir}/python${PYTHON_MAJMIN}/pathlib.py", + "${libdir}/python${PYTHON_MAJMIN}/pathlib.py", "${libdir}/python${PYTHON_MAJMIN}/pkgutil.py", "${libdir}/python${PYTHON_MAJMIN}/platform.py", "${libdir}/python${PYTHON_MAJMIN}/posixpath.py", @@ -313,6 +313,8 @@ "${libdir}/python${PYTHON_MAJMIN}/tokenize.py", "${libdir}/python${PYTHON_MAJMIN}/traceback.py", "${libdir}/python${PYTHON_MAJMIN}/types.py", + "${libdir}/python${PYTHON_MAJMIN}/urllib", + "${libdir}/python${PYTHON_MAJMIN}/urllib/parse.py", "${libdir}/python${PYTHON_MAJMIN}/warnings.py", "${libdir}/python${PYTHON_MAJMIN}/weakref.py", "${prefix}/lib/python${PYTHON_MAJMIN}/config*/*[!.a]" @@ -324,7 +326,7 @@ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_compression.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_markupbase.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sitebuiltins.*.pyc", - "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata.*.pyc", + "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/_weakrefset.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/abc.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/argparse.*.pyc", @@ -359,7 +361,7 @@ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/operator.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/optparse.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/os.*.pyc", - "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pathlib.*.pyc", + "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pathlib.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/pkgutil.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/platform.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/posixpath.*.pyc", @@ -397,7 +399,9 @@ "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__", "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/abc.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/machinery.*.pyc", - "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc" + "${libdir}/python${PYTHON_MAJMIN}/importlib/__pycache__/util.*.pyc", + "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", + "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__/parse.*.pyc" ] }, "crypt": { @@ -427,7 +431,10 @@ "ctypes": { "summary": "Python C types support", "rdepends": [ - "core" + "core", + "crypt", + "io", + "math" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/ctypes", @@ -537,7 +544,10 @@ "distutils": { "summary": "Python Distribution Utilities", "rdepends": [ - "core" + "compression", + "core", + "email", + "stringold" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/distutils" @@ -548,7 +558,6 @@ "summary": "Python framework for running examples in docstrings", "rdepends": [ "asyncio", - "compression", "core", "debugger", "difflib", @@ -577,7 +586,9 @@ "datetime", "io", "math", - "netclient" + "mime", + "netclient", + "stringold" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/email", @@ -648,7 +659,6 @@ "io": { "summary": "Python low-level I/O", "rdepends": [ - "compression", "core", "crypt", "math", @@ -690,7 +700,11 @@ "summary": "Python logging support", "rdepends": [ "core", - "stringold" + "io", + "netserver", + "pickle", + "stringold", + "threading" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/logging" @@ -824,11 +838,18 @@ "summary": "Python multiprocessing support", "rdepends": [ "core", + "crypt", + "ctypes", "io", - "pickle" + "math", + "mmap", + "netclient", + "pickle", + "threading" ], "files": [ "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_multiprocessing.*.so", + "${libdir}/python${PYTHON_MAJMIN}/lib-dynload/_posixshmem.*.so", "${libdir}/python${PYTHON_MAJMIN}/multiprocessing" ], "cached": [] @@ -855,10 +876,9 @@ "${libdir}/python${PYTHON_MAJMIN}/mimetypes.py", "${libdir}/python${PYTHON_MAJMIN}/nntplib.py", "${libdir}/python${PYTHON_MAJMIN}/poplib.py", + "${libdir}/python${PYTHON_MAJMIN}/secrets.py", "${libdir}/python${PYTHON_MAJMIN}/smtplib.py", "${libdir}/python${PYTHON_MAJMIN}/telnetlib.py", - "${libdir}/python${PYTHON_MAJMIN}/urllib", - "${libdir}/python${PYTHON_MAJMIN}/urllib/__pycache__", "${libdir}/python${PYTHON_MAJMIN}/uuid.py" ], "cached": [ @@ -868,6 +888,7 @@ "${libdir}/python${PYTHON_MAJMIN}/__pycache__/mimetypes.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/nntplib.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/poplib.*.pyc", + "${libdir}/python${PYTHON_MAJMIN}/__pycache__/secrets.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/smtplib.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/telnetlib.*.pyc", "${libdir}/python${PYTHON_MAJMIN}/__pycache__/uuid.*.pyc" @@ -876,7 +897,6 @@ "netserver": { "summary": "Python Internet Protocol servers", "rdepends": [ - "compression", "core", "crypt", "datetime", @@ -992,8 +1012,7 @@ "pydoc": { "summary": "Python interactive help support", "rdepends": [ - "core", - "netclient" + "core" ], "files": [ "${bindir}/pydoc*", @@ -1017,7 +1036,6 @@ "shell": { "summary": "Python shell-like functionality", "rdepends": [ - "compression", "core", "stringold" ], @@ -1150,7 +1168,6 @@ "summary": "Python unit testing framework", "rdepends": [ "asyncio", - "compression", "core", "difflib", "io", @@ -1185,7 +1202,6 @@ "venv": { "summary": "Provides support for creating lightweight virtual environments with their own site directories, optionally isolated from system site directories.", "rdepends": [ - "compression", "core", "logging", "stringold" @@ -1211,7 +1227,21 @@ "xmlrpc": { "summary": "Python XML-RPC support", "rdepends": [ + "compression", "core", + "crypt", + "datetime", + "email", + "fcntl", + "html", + "io", + "math", + "mime", + "netclient", + "netserver", + "numbers", + "pydoc", + "stringold", "xml" ], "files": [ diff --git a/poky/meta/recipes-devtools/python/python3_3.8.3.bb b/poky/meta/recipes-devtools/python/python3_3.8.3.bb deleted file mode 100644 index 7e0f35ce4..000000000 --- a/poky/meta/recipes-devtools/python/python3_3.8.3.bb +++ /dev/null @@ -1,362 +0,0 @@ -SUMMARY = "The Python Programming Language" -HOMEPAGE = "http://www.python.org" -LICENSE = "PSFv2" -SECTION = "devel/python" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=203a6dbc802ee896020a47161e759642" - -SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ - file://run-ptest \ - file://create_manifest3.py \ - file://get_module_deps3.py \ - file://python3-manifest.json \ - file://check_build_completeness.py \ - file://cgi_py.patch \ - file://0001-Do-not-add-usr-lib-termcap-to-linker-flags-to-avoid-.patch \ - ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', 'file://avoid_warning_about_tkinter.patch', d)} \ - file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \ - file://python-config.patch \ - file://0001-Makefile.pre-use-qemu-wrapper-when-gathering-profile.patch \ - file://0001-Do-not-hardcode-lib-as-location-for-site-packages-an.patch \ - file://0001-python3-use-cc_basename-to-replace-CC-for-checking-c.patch \ - file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \ - file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \ - file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \ - file://crosspythonpath.patch \ - file://reformat_sysconfig.py \ - file://0001-Use-FLAG_REF-always-for-interned-strings.patch \ - file://0001-test_locale.py-correct-the-test-output-format.patch \ - file://0017-setup.py-do-not-report-missing-dependencies-for-disa.patch \ - file://0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch \ - file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \ - file://0001-configure.ac-fix-LIBPL.patch \ - file://0001-python3-Do-not-hardcode-lib-for-distutils.patch \ - file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \ - file://0001-configure.ac-define-a-path-for-profile-data.patch \ - " - -SRC_URI_append_class-native = " \ - file://0001-distutils-sysconfig-append-STAGING_LIBDIR-python-sys.patch \ - file://12-distutils-prefix-is-inside-staging-area.patch \ - file://0001-Don-t-search-system-for-headers-libraries.patch \ - " - -SRC_URI[md5sum] = "3000cf50aaa413052aef82fd2122ca78" -SRC_URI[sha256sum] = "dfab5ec723c218082fe3d5d7ae17ecbdebffa9a1aea4d64aa3a2ecdd2e795864" - -# exclude pre-releases for both python 2.x and 3.x -UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P\d+(\.\d+)+).tar" - -CVE_PRODUCT = "python" - -# This is not exploitable when glibc has CVE-2016-10739 fixed. -CVE_CHECK_WHITELIST += "CVE-2019-18348" - -PYTHON_MAJMIN = "3.8" - -S = "${WORKDIR}/Python-${PV}" - -BBCLASSEXTEND = "native nativesdk" - -inherit autotools pkgconfig qemu ptest multilib_header update-alternatives - -MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" - -ALTERNATIVE_${PN}-dev = "python3-config" -ALTERNATIVE_LINK_NAME[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config" -ALTERNATIVE_TARGET[python3-config] = "${bindir}/python${PYTHON_MAJMIN}-config-${MULTILIB_SUFFIX}" - - -DEPENDS = "bzip2-replacement-native libffi bzip2 openssl sqlite3 zlib virtual/libintl xz virtual/crypt util-linux libtirpc libnsl2" -DEPENDS_append_class-target = " python3-native" -DEPENDS_append_class-nativesdk = " python3-native" - -EXTRA_OECONF = " --without-ensurepip --enable-shared" -EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}" - -export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" - -EXTRANATIVEPATH += "python3-native" - -CACHED_CONFIGUREVARS = " \ - ac_cv_file__dev_ptmx=yes \ - ac_cv_file__dev_ptc=no \ - ac_cv_working_tzset=yes \ -" - -def possibly_include_pgo(d): - # PGO currently causes builds to not be reproducible, so disable it for - # now. See YOCTO #13407 - if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': - return 'pgo' - - return '' - -PACKAGECONFIG_class-target ??= "readline ${@possibly_include_pgo(d)} gdbm" -PACKAGECONFIG_class-native ??= "readline gdbm" -PACKAGECONFIG_class-nativesdk ??= "readline gdbm" -PACKAGECONFIG[readline] = ",,readline" -# Use profile guided optimisation by running PyBench inside qemu-user -PACKAGECONFIG[pgo] = "--enable-optimizations,,qemu-native" -PACKAGECONFIG[tk] = ",,tk" -PACKAGECONFIG[gdbm] = ",,gdbm" - -do_configure_prepend () { - mkdir -p ${B}/Modules - cat > ${B}/Modules/Setup.local << EOF -*disabled* -${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)} -${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)} -EOF -} - -CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" - -EXTRA_OEMAKE = '\ - STAGING_LIBDIR=${STAGING_LIBDIR} \ - STAGING_INCDIR=${STAGING_INCDIR} \ - LIB=${baselib} \ -' - -do_compile_prepend_class-target() { - if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then - qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" - cat >pgo-wrapper < ${B}/Modules/Setup.local << EOF +*disabled* +${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '_gdbm _dbm', d)} +${@bb.utils.contains('PACKAGECONFIG', 'readline', '', 'readline', d)} +EOF +} + +CPPFLAGS_append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid" + +EXTRA_OEMAKE = '\ + STAGING_LIBDIR=${STAGING_LIBDIR} \ + STAGING_INCDIR=${STAGING_INCDIR} \ + LIB=${baselib} \ +' + +do_compile_prepend_class-target() { + if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then + qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}" + cat >pgo-wrapper < configure | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/configure b/configure -index 36646e7b..48912a94 100755 ---- a/configure -+++ b/configure -@@ -1601,6 +1601,10 @@ for opt do +Index: qemu-5.1.0/configure +=================================================================== +--- qemu-5.1.0.orig/configure ++++ qemu-5.1.0/configure +@@ -1640,6 +1640,10 @@ for opt do ;; - --gdb=*) gdb_bin="$optarg" + --disable-libdaxctl) libdaxctl=no ;; + --enable-libudev) libudev="yes" + ;; @@ -27,6 +27,3 @@ index 36646e7b..48912a94 100755 *) echo "ERROR: unknown option $opt" echo "Try '$0 --help' for more information" --- -2.24.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch index ae89ae09d..46c9da08a 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch @@ -20,11 +20,11 @@ Signed-off-by: Sakib Sajal hw/usb/dev-wacom.c | 94 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) -diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c -index 8ed57b3b..1502928b 100644 ---- a/hw/usb/dev-wacom.c -+++ b/hw/usb/dev-wacom.c -@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = { +Index: qemu-5.1.0/hw/usb/dev-wacom.c +=================================================================== +--- qemu-5.1.0.orig/hw/usb/dev-wacom.c ++++ qemu-5.1.0/hw/usb/dev-wacom.c +@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings [STR_SERIALNUMBER] = "1", }; @@ -114,7 +114,7 @@ index 8ed57b3b..1502928b 100644 static const USBDescIface desc_iface_wacom = { .bInterfaceNumber = 0, .bNumEndpoints = 1, -@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = { +@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wac 0x00, /* u8 country_code */ 0x01, /* u8 num_descriptors */ 0x22, /* u8 type: Report */ @@ -123,7 +123,7 @@ index 8ed57b3b..1502928b 100644 }, }, }, -@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p, +@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USB } switch (request) { @@ -139,6 +139,3 @@ index 8ed57b3b..1502928b 100644 case WACOM_SET_REPORT: if (s->mouse_grabbed) { qemu_remove_mouse_event_handler(s->eh_entry); --- -2.24.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch index 6e38d814c..678e05946 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch @@ -15,10 +15,10 @@ Signed-off-by: Sakib Sajal linux-user/syscall.c | 2 ++ 1 file changed, 2 insertions(+) -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index d6f8cc97..a61420e7 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c +Index: qemu-5.1.0/linux-user/syscall.c +=================================================================== +--- qemu-5.1.0.orig/linux-user/syscall.c ++++ qemu-5.1.0/linux-user/syscall.c @@ -109,7 +109,9 @@ #include #include @@ -28,7 +28,4 @@ index d6f8cc97..a61420e7 100644 +#endif #include #include - #include "linux_loop.h" --- -2.24.0 - + #ifdef HAVE_DRM_H diff --git a/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch index 3d268870f..f379948f1 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch @@ -16,11 +16,11 @@ Signed-off-by: Sakib Sajal tests/Makefile.include | 8 ++++++++ 1 file changed, 8 insertions(+) -diff --git a/tests/Makefile.include b/tests/Makefile.include -index 51de6762..1ea4d322 100644 ---- a/tests/Makefile.include -+++ b/tests/Makefile.include -@@ -941,4 +941,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) +Index: qemu-5.1.0/tests/Makefile.include +=================================================================== +--- qemu-5.1.0.orig/tests/Makefile.include ++++ qemu-5.1.0/tests/Makefile.include +@@ -982,4 +982,12 @@ all: $(QEMU_IOTESTS_HELPERS-y) -include $(wildcard tests/qtest/*.d) -include $(wildcard tests/qtest/libqos/*.d) @@ -33,6 +33,3 @@ index 51de6762..1ea4d322 100644 + done + endif --- -2.24.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch index 012d60d8f..33cef4221 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch @@ -15,13 +15,13 @@ Signed-off-by: Jason Wessel Signed-off-by: Roy Li --- - hw/mips/mips_malta.c | 2 +- + hw/mips/malta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c -index 92e9ca5b..3a7f3954 100644 ---- a/hw/mips/mips_malta.c -+++ b/hw/mips/mips_malta.c +Index: qemu-5.1.0/hw/mips/malta.c +=================================================================== +--- qemu-5.1.0.orig/hw/mips/malta.c ++++ qemu-5.1.0/hw/mips/malta.c @@ -59,7 +59,7 @@ #define ENVP_ADDR 0x80002000l diff --git a/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch index bc30397e8..71f537f9b 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch @@ -12,11 +12,11 @@ Signed-off-by: Ross Burton configure | 9 --------- 1 file changed, 9 deletions(-) -diff --git a/configure b/configure -index 6099be1d..a766017b 100755 ---- a/configure -+++ b/configure -@@ -5390,15 +5390,6 @@ fi +Index: qemu-5.1.0/configure +=================================================================== +--- qemu-5.1.0.orig/configure ++++ qemu-5.1.0/configure +@@ -5751,15 +5751,6 @@ fi # check if we have valgrind/valgrind.h valgrind_h=no diff --git a/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch index 2c5b241e4..02ebbee1a 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch @@ -11,11 +11,11 @@ Signed-off-by: Sakib Sajal configure | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/configure b/configure -index 83c65439..6bdf488c 100755 ---- a/configure -+++ b/configure -@@ -6251,10 +6251,6 @@ write_c_skeleton +Index: qemu-5.1.0/configure +=================================================================== +--- qemu-5.1.0.orig/configure ++++ qemu-5.1.0/configure +@@ -6515,10 +6515,6 @@ write_c_skeleton if test "$gcov" = "yes" ; then QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS" QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS" @@ -26,6 +26,3 @@ index 83c65439..6bdf488c 100755 fi if test "$have_asan" = "yes"; then --- -2.24.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch index 0810ae84c..98fd5e913 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch @@ -51,11 +51,11 @@ Signed-off-by: Patrick Ohly qapi/char.json | 5 +++ 3 files changed, 109 insertions(+) -diff --git a/chardev/char-socket.c b/chardev/char-socket.c -index 185fe38d..54fa4234 100644 ---- a/chardev/char-socket.c -+++ b/chardev/char-socket.c -@@ -1288,6 +1288,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock, +Index: qemu-5.1.0/chardev/char-socket.c +=================================================================== +--- qemu-5.1.0.orig/chardev/char-socket.c ++++ qemu-5.1.0/chardev/char-socket.c +@@ -1292,6 +1292,67 @@ static bool qmp_chardev_validate_socket( return true; } @@ -123,7 +123,7 @@ index 185fe38d..54fa4234 100644 static void qmp_chardev_open_socket(Chardev *chr, ChardevBackend *backend, -@@ -1296,6 +1357,9 @@ static void qmp_chardev_open_socket(Chardev *chr, +@@ -1300,6 +1361,9 @@ static void qmp_chardev_open_socket(Char { SocketChardev *s = SOCKET_CHARDEV(chr); ChardevSocket *sock = backend->u.socket.data; @@ -133,7 +133,7 @@ index 185fe38d..54fa4234 100644 bool do_nodelay = sock->has_nodelay ? sock->nodelay : false; bool is_listen = sock->has_server ? sock->server : true; bool is_telnet = sock->has_telnet ? sock->telnet : false; -@@ -1361,6 +1425,14 @@ static void qmp_chardev_open_socket(Chardev *chr, +@@ -1365,6 +1429,14 @@ static void qmp_chardev_open_socket(Char update_disconnected_filename(s); @@ -148,13 +148,15 @@ index 185fe38d..54fa4234 100644 if (s->is_listen) { if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270, is_waitconnect, errp) < 0) { -@@ -1380,9 +1452,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, +@@ -1384,11 +1456,27 @@ static void qemu_chr_parse_socket(QemuOp const char *host = qemu_opt_get(opts, "host"); const char *port = qemu_opt_get(opts, "port"); const char *fd = qemu_opt_get(opts, "fd"); +#ifndef _WIN32 + const char *cmd = qemu_opt_get(opts, "cmd"); +#endif + bool tight = qemu_opt_get_bool(opts, "tight", true); + bool abstract = qemu_opt_get_bool(opts, "abstract", false); SocketAddressLegacy *addr; ChardevSocket *sock; @@ -171,19 +173,19 @@ index 185fe38d..54fa4234 100644 + } + } else +#endif -+ if ((!!path + !!fd + !!host) != 1) { error_setg(errp, "Exactly one of 'path', 'fd' or 'host' required"); -@@ -1425,12 +1514,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend, +@@ -1431,12 +1519,24 @@ static void qemu_chr_parse_socket(QemuOp sock->has_tls_authz = qemu_opt_get(opts, "tls-authz"); sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz")); +- addr = g_new0(SocketAddressLegacy, 1); +#ifndef _WIN32 + sock->cmd = g_strdup(cmd); +#endif + - addr = g_new0(SocketAddressLegacy, 1); ++ addr = g_new0(SocketAddressLegacy, 1); +#ifndef _WIN32 + if (path || cmd) { +#else @@ -197,28 +199,28 @@ index 185fe38d..54fa4234 100644 +#else q_unix->path = g_strdup(path); +#endif + q_unix->tight = tight; + q_unix->abstract = abstract; } else if (host) { - addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET; - addr->u.inet.data = g_new(InetSocketAddress, 1); -diff --git a/chardev/char.c b/chardev/char.c -index 7b6b2cb1..0c2ca64b 100644 ---- a/chardev/char.c -+++ b/chardev/char.c -@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = { - },{ +Index: qemu-5.1.0/chardev/char.c +=================================================================== +--- qemu-5.1.0.orig/chardev/char.c ++++ qemu-5.1.0/chardev/char.c +@@ -826,6 +826,9 @@ QemuOptsList qemu_chardev_opts = { .name = "path", .type = QEMU_OPT_STRING, -+ },{ + },{ + .name = "cmd", + .type = QEMU_OPT_STRING, - },{ ++ },{ .name = "host", .type = QEMU_OPT_STRING, -diff --git a/qapi/char.json b/qapi/char.json -index a6e81ac7..517962c6 100644 ---- a/qapi/char.json -+++ b/qapi/char.json -@@ -247,6 +247,10 @@ + },{ +Index: qemu-5.1.0/qapi/char.json +=================================================================== +--- qemu-5.1.0.orig/qapi/char.json ++++ qemu-5.1.0/qapi/char.json +@@ -250,6 +250,10 @@ # # @addr: socket address to listen on (server=true) # or connect to (server=false) @@ -229,7 +231,7 @@ index a6e81ac7..517962c6 100644 # @tls-creds: the ID of the TLS credentials object (since 2.6) # @tls-authz: the ID of the QAuthZ authorization object against which # the client's x509 distinguished name will be validated. This -@@ -272,6 +276,7 @@ +@@ -276,6 +280,7 @@ ## { 'struct': 'ChardevSocket', 'data': { 'addr': 'SocketAddressLegacy', diff --git a/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch index 89baad9b7..034ac5782 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch @@ -29,11 +29,11 @@ Signed-off-by: He Zhe hw/intc/apic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/hw/intc/apic.c b/hw/intc/apic.c -index 2a74f7b4..4d5da365 100644 ---- a/hw/intc/apic.c -+++ b/hw/intc/apic.c -@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev) +Index: qemu-5.1.0/hw/intc/apic.c +=================================================================== +--- qemu-5.1.0.orig/hw/intc/apic.c ++++ qemu-5.1.0/hw/intc/apic.c +@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *de APICCommonState *s = APIC(dev); uint32_t lvt0; diff --git a/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch index 30bb4ddf2..d20f04ee5 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch @@ -18,11 +18,11 @@ Signed-off-by: Alistair Francis linux-user/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/linux-user/main.c b/linux-user/main.c -index 6ff7851e..ebff0485 100644 ---- a/linux-user/main.c -+++ b/linux-user/main.c -@@ -78,7 +78,7 @@ int have_guest_base; +Index: qemu-5.1.0/linux-user/main.c +=================================================================== +--- qemu-5.1.0.orig/linux-user/main.c ++++ qemu-5.1.0/linux-user/main.c +@@ -92,7 +92,7 @@ static int last_log_mask; (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32)) /* There are a number of places where we assign reserved_va to a variable of type abi_ulong and expect it to fit. Avoid the last page. */ diff --git a/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch b/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch index eef3f3f97..f2a44986b 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch @@ -28,29 +28,29 @@ Signed-off-by: Sakib Sajal linux-user/syscall.c | 5 +---- 4 files changed, 10 insertions(+), 23 deletions(-) -diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h -index 49384bb6..93b12519 100644 ---- a/include/exec/cpu-all.h -+++ b/include/exec/cpu-all.h -@@ -162,12 +162,8 @@ extern unsigned long guest_base; - extern int have_guest_base; - extern unsigned long reserved_va; - --#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS --#define GUEST_ADDR_MAX (~0ul) --#else --#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \ +Index: qemu-5.1.0/include/exec/cpu-all.h +=================================================================== +--- qemu-5.1.0.orig/include/exec/cpu-all.h ++++ qemu-5.1.0/include/exec/cpu-all.h +@@ -176,11 +176,8 @@ extern unsigned long reserved_va; + * avoid setting bits at the top of guest addresses that might need + * to be used for tags. + */ +-#define GUEST_ADDR_MAX_ \ +- ((MIN_CONST(TARGET_VIRT_ADDR_SPACE_BITS, TARGET_ABI_BITS) <= 32) ? \ +- UINT32_MAX : ~0ul) +-#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : GUEST_ADDR_MAX_) +- +#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \ - (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1) --#endif ++ (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1) #else #include "exec/hwaddr.h" -diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h -index 53de1975..cf19ed2e 100644 ---- a/include/exec/cpu_ldst.h -+++ b/include/exec/cpu_ldst.h -@@ -70,7 +70,10 @@ typedef uint64_t abi_ptr; +Index: qemu-5.1.0/include/exec/cpu_ldst.h +=================================================================== +--- qemu-5.1.0.orig/include/exec/cpu_ldst.h ++++ qemu-5.1.0/include/exec/cpu_ldst.h +@@ -75,7 +75,10 @@ typedef uint64_t abi_ptr; #if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS #define guest_addr_valid(x) (1) #else @@ -62,11 +62,11 @@ index 53de1975..cf19ed2e 100644 #endif #define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base) -diff --git a/linux-user/mmap.c b/linux-user/mmap.c -index e3780337..1d4aba95 100644 ---- a/linux-user/mmap.c -+++ b/linux-user/mmap.c -@@ -71,7 +71,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot) +Index: qemu-5.1.0/linux-user/mmap.c +=================================================================== +--- qemu-5.1.0.orig/linux-user/mmap.c ++++ qemu-5.1.0/linux-user/mmap.c +@@ -71,7 +71,7 @@ int target_mprotect(abi_ulong start, abi return -TARGET_EINVAL; len = TARGET_PAGE_ALIGN(len); end = start + len; @@ -75,18 +75,18 @@ index e3780337..1d4aba95 100644 return -TARGET_ENOMEM; } prot &= PROT_READ | PROT_WRITE | PROT_EXEC; -@@ -467,8 +467,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, +@@ -467,8 +467,8 @@ abi_long target_mmap(abi_ulong start, ab * It can fail only on 64-bit host with 32-bit target. * On any other target/host host mmap() handles this error correctly. */ -- if (!guest_range_valid(start, len)) { +- if (end < start || !guest_range_valid(start, len)) { - errno = ENOMEM; -+ if ((unsigned long)start + len - 1 > (abi_ulong) -1) { ++ if (end < start || ((unsigned long)start + len - 1 > (abi_ulong) -1)) { + errno = EINVAL; goto fail; } -@@ -604,10 +604,8 @@ int target_munmap(abi_ulong start, abi_ulong len) +@@ -604,10 +604,8 @@ int target_munmap(abi_ulong start, abi_u if (start & ~TARGET_PAGE_MASK) return -TARGET_EINVAL; len = TARGET_PAGE_ALIGN(len); @@ -98,7 +98,7 @@ index e3780337..1d4aba95 100644 mmap_lock(); end = start + len; real_start = start & qemu_host_page_mask; -@@ -662,13 +660,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, +@@ -662,13 +660,6 @@ abi_long target_mremap(abi_ulong old_add int prot; void *host_addr; @@ -112,11 +112,11 @@ index e3780337..1d4aba95 100644 mmap_lock(); if (flags & MREMAP_FIXED) { -diff --git a/linux-user/syscall.c b/linux-user/syscall.c -index 05f03919..d6f8cc97 100644 ---- a/linux-user/syscall.c -+++ b/linux-user/syscall.c -@@ -4287,9 +4287,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env, +Index: qemu-5.1.0/linux-user/syscall.c +=================================================================== +--- qemu-5.1.0.orig/linux-user/syscall.c ++++ qemu-5.1.0/linux-user/syscall.c +@@ -4336,9 +4336,6 @@ static inline abi_ulong do_shmat(CPUArch return -TARGET_EINVAL; } } @@ -126,7 +126,7 @@ index 05f03919..d6f8cc97 100644 mmap_lock(); -@@ -7247,7 +7244,7 @@ static int open_self_maps(void *cpu_env, int fd) +@@ -7376,7 +7373,7 @@ static int open_self_maps(void *cpu_env, const char *path; max = h2g_valid(max - 1) ? @@ -135,6 +135,3 @@ index 05f03919..d6f8cc97 100644 if (page_check_range(h2g(min), max - min, flags) == -1) { continue; --- -2.24.0 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch index 34df78b7f..d7e3fffdd 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch @@ -14,11 +14,11 @@ Signed-off-by: He Zhe configure | 48 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) -diff --git a/configure b/configure -index 72f11aca..cac271ce 100755 ---- a/configure -+++ b/configure -@@ -2875,6 +2875,30 @@ has_libgcrypt() { +Index: qemu-5.1.0/configure +=================================================================== +--- qemu-5.1.0.orig/configure ++++ qemu-5.1.0/configure +@@ -3084,6 +3084,30 @@ has_libgcrypt() { return 0 } @@ -49,7 +49,7 @@ index 72f11aca..cac271ce 100755 if test "$nettle" != "no"; then pass="no" -@@ -2915,7 +2939,14 @@ fi +@@ -3124,7 +3148,14 @@ fi if test "$gcrypt" != "no"; then pass="no" @@ -65,7 +65,7 @@ index 72f11aca..cac271ce 100755 gcrypt_cflags=$(libgcrypt-config --cflags) gcrypt_libs=$(libgcrypt-config --libs) # Debian has removed -lgpg-error from libgcrypt-config -@@ -2925,15 +2956,16 @@ if test "$gcrypt" != "no"; then +@@ -3134,15 +3165,16 @@ if test "$gcrypt" != "no"; then then gcrypt_libs="$gcrypt_libs -lgpg-error" fi diff --git a/poky/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/poky/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch deleted file mode 100644 index e5ebfc126..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 0a53e906510cce1f32bc04a11e81ea40f834dac4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= -Date: Wed, 12 Aug 2015 15:11:30 -0500 -Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add custom_debug.h with function for print backtrace information. -When pthread_kill fails in qemu_cpu_kick_thread display backtrace and -current cpu information. - -Upstream-Status: Inappropriate -Signed-off-by: Aníbal Limón - ---- - cpus.c | 5 +++++ - custom_debug.h | 24 ++++++++++++++++++++++++ - 2 files changed, 29 insertions(+) - create mode 100644 custom_debug.h - -diff --git a/cpus.c b/cpus.c -index e83f72b4..e6e2576e 100644 ---- a/cpus.c -+++ b/cpus.c -@@ -1769,6 +1769,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg) - return NULL; - } - -+#include "custom_debug.h" -+ - static void qemu_cpu_kick_thread(CPUState *cpu) - { - #ifndef _WIN32 -@@ -1781,6 +1783,9 @@ static void qemu_cpu_kick_thread(CPUState *cpu) - err = pthread_kill(cpu->thread->thread, SIG_IPI); - if (err && err != ESRCH) { - fprintf(stderr, "qemu:%s: %s", __func__, strerror(err)); -+ fprintf(stderr, "CPU #%d:\n", cpu->cpu_index); -+ cpu_dump_state(cpu, stderr, 0); -+ backtrace_print(); - exit(1); - } - #else /* _WIN32 */ -diff --git a/custom_debug.h b/custom_debug.h -new file mode 100644 -index 00000000..f029e455 ---- /dev/null -+++ b/custom_debug.h -@@ -0,0 +1,24 @@ -+#include -+#include -+#define BACKTRACE_MAX 128 -+static void backtrace_print(void) -+{ -+ int nfuncs = 0; -+ void *buf[BACKTRACE_MAX]; -+ char **symbols; -+ int i; -+ -+ nfuncs = backtrace(buf, BACKTRACE_MAX); -+ -+ symbols = backtrace_symbols(buf, nfuncs); -+ if (symbols == NULL) { -+ fprintf(stderr, "backtrace_print failed to get symbols"); -+ return; -+ } -+ -+ fprintf(stderr, "Backtrace ...\n"); -+ for (i = 0; i < nfuncs; i++) -+ fprintf(stderr, "%s\n", symbols[i]); -+ -+ free(symbols); -+} diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch deleted file mode 100644 index 19f26ae5b..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 5c4fe018c025740fef4a0a4421e8162db0c3eefd Mon Sep 17 00:00:00 2001 -From: Eric Blake -Date: Mon, 8 Jun 2020 13:26:37 -0500 -Subject: [PATCH] nbd/server: Avoid long error message assertions - CVE-2020-10761 - -Ever since commit 36683283 (v2.8), the server code asserts that error -strings sent to the client are well-formed per the protocol by not -exceeding the maximum string length of 4096. At the time the server -first started sending error messages, the assertion could not be -triggered, because messages were completely under our control. -However, over the years, we have added latent scenarios where a client -could trigger the server to attempt an error message that would -include the client's information if it passed other checks first: - -- requesting NBD_OPT_INFO/GO on an export name that is not present - (commit 0cfae925 in v2.12 echoes the name) - -- requesting NBD_OPT_LIST/SET_META_CONTEXT on an export name that is - not present (commit e7b1948d in v2.12 echoes the name) - -At the time, those were still safe because we flagged names larger -than 256 bytes with a different message; but that changed in commit -93676c88 (v4.2) when we raised the name limit to 4096 to match the NBD -string limit. (That commit also failed to change the magic number -4096 in nbd_negotiate_send_rep_err to the just-introduced named -constant.) So with that commit, long client names appended to server -text can now trigger the assertion, and thus be used as a denial of -service attack against a server. As a mitigating factor, if the -server requires TLS, the client cannot trigger the problematic paths -unless it first supplies TLS credentials, and such trusted clients are -less likely to try to intentionally crash the server. - -We may later want to further sanitize the user-supplied strings we -place into our error messages, such as scrubbing out control -characters, but that is less important to the CVE fix, so it can be a -later patch to the new nbd_sanitize_name. - -Consideration was given to changing the assertion in -nbd_negotiate_send_rep_verr to instead merely log a server error and -truncate the message, to avoid leaving a latent path that could -trigger a future CVE DoS on any new error message. However, this -merely complicates the code for something that is already (correctly) -flagging coding errors, and now that we are aware of the long message -pitfall, we are less likely to introduce such errors in the future, -which would make such error handling dead code. - -Reported-by: Xueqiang Wei -CC: qemu-stable@nongnu.org -Fixes: https://bugzilla.redhat.com/1843684 CVE-2020-10761 -Fixes: 93676c88d7 -Signed-off-by: Eric Blake -Message-Id: <20200610163741.3745251-2-eblake@redhat.com> -Reviewed-by: Vladimir Sementsov-Ogievskiy - -Upstream-Status: Backport [https://github.com/qemu/qemu/commit/5c4fe018c025740fef4a0a4421e8162db0c3eefd] -CVE: CVE-2020-10761 -Signed-off-by: Chee Yang Lee - ---- - nbd/server.c | 23 ++++++++++++++++++++--- - tests/qemu-iotests/143 | 4 ++++ - tests/qemu-iotests/143.out | 2 ++ - 3 files changed, 26 insertions(+), 3 deletions(-) - -diff --git a/nbd/server.c b/nbd/server.c -index 02b1ed08014..20754e9ebc3 100644 ---- a/nbd/server.c -+++ b/nbd/server.c -@@ -217,7 +217,7 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, - - msg = g_strdup_vprintf(fmt, va); - len = strlen(msg); -- assert(len < 4096); -+ assert(len < NBD_MAX_STRING_SIZE); - trace_nbd_negotiate_send_rep_err(msg); - ret = nbd_negotiate_send_rep_len(client, type, len, errp); - if (ret < 0) { -@@ -231,6 +231,19 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, - return 0; - } - -+/* -+ * Return a malloc'd copy of @name suitable for use in an error reply. -+ */ -+static char * -+nbd_sanitize_name(const char *name) -+{ -+ if (strnlen(name, 80) < 80) { -+ return g_strdup(name); -+ } -+ /* XXX Should we also try to sanitize any control characters? */ -+ return g_strdup_printf("%.80s...", name); -+} -+ - /* Send an error reply. - * Return -errno on error, 0 on success. */ - static int GCC_FMT_ATTR(4, 5) -@@ -595,9 +608,11 @@ static int nbd_negotiate_handle_info(NBDClient *client, Error **errp) - - exp = nbd_export_find(name); - if (!exp) { -+ g_autofree char *sane_name = nbd_sanitize_name(name); -+ - return nbd_negotiate_send_rep_err(client, NBD_REP_ERR_UNKNOWN, - errp, "export '%s' not present", -- name); -+ sane_name); - } - - /* Don't bother sending NBD_INFO_NAME unless client requested it */ -@@ -995,8 +1010,10 @@ static int nbd_negotiate_meta_queries(NBDClient *client, - - meta->exp = nbd_export_find(export_name); - if (meta->exp == NULL) { -+ g_autofree char *sane_name = nbd_sanitize_name(export_name); -+ - return nbd_opt_drop(client, NBD_REP_ERR_UNKNOWN, errp, -- "export '%s' not present", export_name); -+ "export '%s' not present", sane_name); - } - - ret = nbd_opt_read(client, &nb_queries, sizeof(nb_queries), errp); -diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 -index f649b361950..d2349903b1b 100755 ---- a/tests/qemu-iotests/143 -+++ b/tests/qemu-iotests/143 -@@ -58,6 +58,10 @@ _send_qemu_cmd $QEMU_HANDLE \ - $QEMU_IO_PROG -f raw -c quit \ - "nbd+unix:///no_such_export?socket=$SOCK_DIR/nbd" 2>&1 \ - | _filter_qemu_io | _filter_nbd -+# Likewise, with longest possible name permitted in NBD protocol -+$QEMU_IO_PROG -f raw -c quit \ -+ "nbd+unix:///$(printf %4096d 1 | tr ' ' a)?socket=$SOCK_DIR/nbd" 2>&1 \ -+ | _filter_qemu_io | _filter_nbd | sed 's/aaaa*aa/aa--aa/' - - _send_qemu_cmd $QEMU_HANDLE \ - "{ 'execute': 'quit' }" \ -diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out -index 1f4001c6013..fc9c0a761fa 100644 ---- a/tests/qemu-iotests/143.out -+++ b/tests/qemu-iotests/143.out -@@ -5,6 +5,8 @@ QA output created by 143 - {"return": {}} - qemu-io: can't open device nbd+unix:///no_such_export?socket=SOCK_DIR/nbd: Requested export not available - server reported: export 'no_such_export' not present -+qemu-io: can't open device nbd+unix:///aa--aa1?socket=SOCK_DIR/nbd: Requested export not available -+server reported: export 'aa--aa...' not present - { 'execute': 'quit' } - {"return": {}} - {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13361.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13361.patch deleted file mode 100644 index e0acc70f3..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13361.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 369ff955a8497988d079c4e3fa1e93c2570c1c69 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Fri, 15 May 2020 01:36:08 +0530 -Subject: [PATCH] es1370: check total frame count against current frame - -A guest user may set channel frame count via es1370_write() -such that, in es1370_transfer_audio(), total frame count -'size' is lesser than the number of frames that are processed -'cnt'. - - int cnt = d->frame_cnt >> 16; - int size = d->frame_cnt & 0xffff; - -if (size < cnt), it results in incorrect calculations leading -to OOB access issue(s). Add check to avoid it. - -Reported-by: Ren Ding -Reported-by: Hanqing Zhao -Signed-off-by: Prasad J Pandit -Message-id: 20200514200608.1744203-1-ppandit@redhat.com -Signed-off-by: Gerd Hoffmann - -Upstream-Status: Backport [https://lists.gnu.org/archive/html/qemu-devel/2020-05/msg03983.html] -CVE: CVE-2020-13361 -Signed-off-by: Chee Yang Lee ---- - hw/audio/es1370.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/hw/audio/es1370.c b/hw/audio/es1370.c -index 89c4dabcd44..5f8a83ff562 100644 ---- a/hw/audio/es1370.c -+++ b/hw/audio/es1370.c -@@ -643,6 +643,9 @@ static void es1370_transfer_audio (ES1370State *s, struct chan *d, int loop_sel, - int csc_bytes = (csc + 1) << d->shift; - int cnt = d->frame_cnt >> 16; - int size = d->frame_cnt & 0xffff; -+ if (size < cnt) { -+ return; -+ } - int left = ((size - cnt + 1) << 2) + d->leftover; - int transferred = 0; - int temp = MIN (max, MIN (left, csc_bytes)); -@@ -651,7 +654,7 @@ static void es1370_transfer_audio (ES1370State *s, struct chan *d, int loop_sel, - addr += (cnt << 2) + d->leftover; - - if (index == ADC_CHANNEL) { -- while (temp) { -+ while (temp > 0) { - int acquired, to_copy; - - to_copy = MIN ((size_t) temp, sizeof (tmpbuf)); -@@ -669,7 +672,7 @@ static void es1370_transfer_audio (ES1370State *s, struct chan *d, int loop_sel, - else { - SWVoiceOut *voice = s->dac_voice[index]; - -- while (temp) { -+ while (temp > 0) { - int copied, to_copy; - - to_copy = MIN ((size_t) temp, sizeof (tmpbuf)); diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch deleted file mode 100644 index af8d4ba8f..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch +++ /dev/null @@ -1,55 +0,0 @@ -From f50ab86a2620bd7e8507af865b164655ee921661 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Thu, 14 May 2020 00:55:38 +0530 -Subject: [PATCH] megasas: use unsigned type for reply_queue_head and check - index - -A guest user may set 'reply_queue_head' field of MegasasState to -a negative value. Later in 'megasas_lookup_frame' it is used to -index into s->frames[] array. Use unsigned type to avoid OOB -access issue. - -Also check that 'index' value stays within s->frames[] bounds -through the while() loop in 'megasas_lookup_frame' to avoid OOB -access. - -Reported-by: Ren Ding -Reported-by: Hanqing Zhao -Reported-by: Alexander Bulekov -Signed-off-by: Prasad J Pandit -Acked-by: Alexander Bulekov -Message-Id: <20200513192540.1583887-2-ppandit@redhat.com> -Signed-off-by: Paolo Bonzini - -Upstream-Status: Backport [f50ab86a2620bd7e8507af865b164655ee921661] -CVE: CVE-2020-13362 -Signed-off-by: Sakib Sajal ---- - hw/scsi/megasas.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c -index af18c88b65..6ce598cd69 100644 ---- a/hw/scsi/megasas.c -+++ b/hw/scsi/megasas.c -@@ -112,7 +112,7 @@ typedef struct MegasasState { - uint64_t reply_queue_pa; - void *reply_queue; - int reply_queue_len; -- int reply_queue_head; -+ uint16_t reply_queue_head; - int reply_queue_tail; - uint64_t consumer_pa; - uint64_t producer_pa; -@@ -445,7 +445,7 @@ static MegasasCmd *megasas_lookup_frame(MegasasState *s, - - index = s->reply_queue_head; - -- while (num < s->fw_cmds) { -+ while (num < s->fw_cmds && index < MEGASAS_MAX_FRAMES) { - if (s->frames[index].pa && s->frames[index].pa == frame) { - cmd = &s->frames[index]; - break; --- -2.20.1 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch deleted file mode 100644 index 4d12ae8f1..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 77f55eac6c433e23e82a1b88b2d74f385c4c7d82 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Tue, 26 May 2020 16:47:43 +0530 -Subject: [PATCH] exec: set map length to zero when returning NULL -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When mapping physical memory into host's virtual address space, -'address_space_map' may return NULL if BounceBuffer is in_use. -Set and return '*plen = 0' to avoid later NULL pointer dereference. - -Reported-by: Alexander Bulekov -Fixes: https://bugs.launchpad.net/qemu/+bug/1878259 -Suggested-by: Paolo Bonzini -Suggested-by: Peter Maydell -Signed-off-by: Prasad J Pandit -Message-Id: <20200526111743.428367-1-ppandit@redhat.com> -Reviewed-by: Philippe Mathieu-Daudé -Signed-off-by: Paolo Bonzini - -Upstream-Status: Backport [77f55eac6c433e23e82a1b88b2d74f385c4c7d82] -CVE: CVE-2020-13659 -Signed-off-by: Sakib Sajal ---- - exec.c | 1 + - include/exec/memory.h | 3 ++- - 2 files changed, 3 insertions(+), 1 deletion(-) - -diff --git a/exec.c b/exec.c -index 9cbde85d8c..778263f1c6 100644 ---- a/exec.c -+++ b/exec.c -@@ -3540,6 +3540,7 @@ void *address_space_map(AddressSpace *as, - - if (!memory_access_is_direct(mr, is_write)) { - if (atomic_xchg(&bounce.in_use, true)) { -+ *plen = 0; - return NULL; - } - /* Avoid unbounded allocations */ -diff --git a/include/exec/memory.h b/include/exec/memory.h -index bd7fdd6081..af8ca7824e 100644 ---- a/include/exec/memory.h -+++ b/include/exec/memory.h -@@ -2314,7 +2314,8 @@ bool address_space_access_valid(AddressSpace *as, hwaddr addr, hwaddr len, - /* address_space_map: map a physical memory region into a host virtual address - * - * May map a subset of the requested range, given by and returned in @plen. -- * May return %NULL if resources needed to perform the mapping are exhausted. -+ * May return %NULL and set *@plen to zero(0), if resources needed to perform -+ * the mapping are exhausted. - * Use only for reads OR writes - not for read-modify-write operations. - * Use cpu_register_map_client() to know when retrying the map operation is - * likely to succeed. --- -2.20.1 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch deleted file mode 100644 index 049dab914..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch +++ /dev/null @@ -1,53 +0,0 @@ -From f7d6a635fa3b7797f9d072e280f065bf3cfcd24d Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Thu, 4 Jun 2020 17:05:25 +0530 -Subject: [PATCH] pci: assert configuration access is within bounds -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -While accessing PCI configuration bytes, assert that -'address + len' is within PCI configuration space. - -Generally it is within bounds. This is more of a defensive -assert, in case a buggy device was to send 'address' which -may go out of bounds. - -Suggested-by: Philippe Mathieu-Daudé -Signed-off-by: Prasad J Pandit -Message-Id: <20200604113525.58898-1-ppandit@redhat.com> -Reviewed-by: Michael S. Tsirkin -Signed-off-by: Michael S. Tsirkin - -Upstream-Status: Backport [f7d6a635fa3b7797f9d072e280f065bf3cfcd24d] -CVE: CVE-2020-13791 -Signed-off-by: Sakib Sajal ---- - hw/pci/pci.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/hw/pci/pci.c b/hw/pci/pci.c -index 70c66965f5..7bf2ae6d92 100644 ---- a/hw/pci/pci.c -+++ b/hw/pci/pci.c -@@ -1381,6 +1381,8 @@ uint32_t pci_default_read_config(PCIDevice *d, - { - uint32_t val = 0; - -+ assert(address + len <= pci_config_size(d)); -+ - if (pci_is_express_downstream_port(d) && - ranges_overlap(address, len, d->exp.exp_cap + PCI_EXP_LNKSTA, 2)) { - pcie_sync_bridge_lnk(d); -@@ -1394,6 +1396,8 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val_in, int - int i, was_irq_disabled = pci_irq_disabled(d); - uint32_t val = val_in; - -+ assert(addr + l <= pci_config_size(d)); -+ - for (i = 0; i < l; val >>= 8, ++i) { - uint8_t wmask = d->wmask[addr + i]; - uint8_t w1cmask = d->w1cmask[addr + i]; --- -2.20.1 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch deleted file mode 100644 index 52bfafbba..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch +++ /dev/null @@ -1,63 +0,0 @@ -From a98610c429d52db0937c1e48659428929835c455 Mon Sep 17 00:00:00 2001 -From: Prasad J Pandit -Date: Thu, 4 Jun 2020 14:38:30 +0530 -Subject: [PATCH] ati-vga: check mm_index before recursive call - (CVE-2020-13800) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -While accessing VGA registers via ati_mm_read/write routines, -a guest may set 's->regs.mm_index' such that it leads to infinite -recursion. Check mm_index value to avoid such recursion. Log an -error message for wrong values. - -Reported-by: Ren Ding -Reported-by: Hanqing Zhao -Reported-by: Yi Ren -Message-id: 20200604090830.33885-1-ppandit@redhat.com -Suggested-by: BALATON Zoltan -Suggested-by: Philippe Mathieu-Daudé -Signed-off-by: Prasad J Pandit -Signed-off-by: Gerd Hoffmann - -Upstream-Status: Backport [a98610c429d52db0937c1e48659428929835c455] -CVE: CVE-2020-13800 -Signed-off-by: Sakib Sajal ---- - hw/display/ati.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/hw/display/ati.c b/hw/display/ati.c -index 065f197678..67604e68de 100644 ---- a/hw/display/ati.c -+++ b/hw/display/ati.c -@@ -285,8 +285,11 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size) - if (idx <= s->vga.vram_size - size) { - val = ldn_le_p(s->vga.vram_ptr + idx, size); - } -- } else { -+ } else if (s->regs.mm_index > MM_DATA + 3) { - val = ati_mm_read(s, s->regs.mm_index + addr - MM_DATA, size); -+ } else { -+ qemu_log_mask(LOG_GUEST_ERROR, -+ "ati_mm_read: mm_index too small: %u\n", s->regs.mm_index); - } - break; - case BIOS_0_SCRATCH ... BUS_CNTL - 1: -@@ -520,8 +523,11 @@ static void ati_mm_write(void *opaque, hwaddr addr, - if (idx <= s->vga.vram_size - size) { - stn_le_p(s->vga.vram_ptr + idx, size, data); - } -- } else { -+ } else if (s->regs.mm_index > MM_DATA + 3) { - ati_mm_write(s, s->regs.mm_index + addr - MM_DATA, data, size); -+ } else { -+ qemu_log_mask(LOG_GUEST_ERROR, -+ "ati_mm_write: mm_index too small: %u\n", s->regs.mm_index); - } - break; - case BIOS_0_SCRATCH ... BUS_CNTL - 1: --- -2.20.1 - diff --git a/poky/meta/recipes-devtools/qemu/qemu/find_datadir.patch b/poky/meta/recipes-devtools/qemu/qemu/find_datadir.patch index 74e9ba56c..9a4c11267 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/find_datadir.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/find_datadir.patch @@ -9,8 +9,10 @@ Upstream-Status: Submitted [qemu-devel@nongnu.org] Signed-off-by: Joe Slater ---- a/os-posix.c -+++ b/os-posix.c +Index: qemu-5.1.0/os-posix.c +=================================================================== +--- qemu-5.1.0.orig/os-posix.c ++++ qemu-5.1.0/os-posix.c @@ -82,8 +82,9 @@ void os_setup_signal_handling(void) /* @@ -19,10 +21,10 @@ Signed-off-by: Joe Slater * When running from the build tree this will be "$bindir/../pc-bios". - * Otherwise, this is CONFIG_QEMU_DATADIR. + * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure. - */ - char *os_find_datadir(void) - { -@@ -93,6 +94,12 @@ char *os_find_datadir(void) + * + * The caller must use g_free() to free the returned data when it is + * no longer required. +@@ -96,6 +97,12 @@ char *os_find_datadir(void) exec_dir = qemu_get_exec_dir(); g_return_val_if_fail(exec_dir != NULL, NULL); diff --git a/poky/meta/recipes-devtools/qemu/qemu_5.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_5.0.0.bb deleted file mode 100644 index 9b0949026..000000000 --- a/poky/meta/recipes-devtools/qemu/qemu_5.0.0.bb +++ /dev/null @@ -1,33 +0,0 @@ -BBCLASSEXTEND = "nativesdk" - -require qemu.inc - -# error: a parameter list without types is only allowed in a function definition -# void (*_function)(sigval_t); -COMPATIBLE_HOST_libc-musl = 'null' - -DEPENDS = "glib-2.0 zlib pixman bison-native" - -RDEPENDS_${PN}_class-target += "bash" - -# Does not compile for -Og because that level does not clean up dead-code. -# See lockable.h. -# -DEBUG_BUILD = "0" - -EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" -EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" -EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" - -do_install_append_class-nativesdk() { - ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} -} - -PACKAGECONFIG ??= " \ - fdt sdl kvm \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ -" -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ -" diff --git a/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb new file mode 100644 index 000000000..9b0949026 --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb @@ -0,0 +1,33 @@ +BBCLASSEXTEND = "nativesdk" + +require qemu.inc + +# error: a parameter list without types is only allowed in a function definition +# void (*_function)(sigval_t); +COMPATIBLE_HOST_libc-musl = 'null' + +DEPENDS = "glib-2.0 zlib pixman bison-native" + +RDEPENDS_${PN}_class-target += "bash" + +# Does not compile for -Og because that level does not clean up dead-code. +# See lockable.h. +# +DEBUG_BUILD = "0" + +EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" +EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" + +do_install_append_class-nativesdk() { + ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} +} + +PACKAGECONFIG ??= " \ + fdt sdl kvm \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ +" +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ +" diff --git a/poky/meta/recipes-devtools/rpm/files/environment.d-rpm.sh b/poky/meta/recipes-devtools/rpm/files/environment.d-rpm.sh new file mode 100644 index 000000000..9b669a18d --- /dev/null +++ b/poky/meta/recipes-devtools/rpm/files/environment.d-rpm.sh @@ -0,0 +1 @@ +export RPM_CONFIGDIR="$OECORE_NATIVE_SYSROOT/usr/lib/rpm" diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb index b5a0ac938..c9258632d 100644 --- a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb +++ b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb @@ -25,6 +25,7 @@ LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://COPYING;md5=c0bf017c0fd1920e6158a333acabfd4a" SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.15.x \ + file://environment.d-rpm.sh \ file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \ file://0001-Do-not-read-config-files-from-HOME.patch \ file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \ @@ -112,6 +113,9 @@ do_install_append_class-nativesdk() { done rm -rf ${D}/var + + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d + install -m 644 ${WORKDIR}/environment.d-rpm.sh ${D}${SDKPATHNATIVE}/environment-setup.d/rpm.sh } # Rpm's make install creates var/tmp which clashes with base-files packaging @@ -129,6 +133,7 @@ do_install_append () { FILES_${PN} += "${libdir}/rpm-plugins/*.so \ " +FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh" FILES_${PN}-dev += "${libdir}/rpm-plugins/*.la \ " diff --git a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch index 038a67209..4ba766528 100644 --- a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch +++ b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch @@ -1,4 +1,4 @@ -From 5ae38baadd40a996da3d19a147f37e7f1f3355bf Mon Sep 17 00:00:00 2001 +From 1f29584e57f5fda09970c66f3b94f4720e09c1bb Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 12 Apr 2016 15:51:54 +0100 Subject: [PATCH] rsync: remove upstream's rebuild logic @@ -10,14 +10,14 @@ Upstream-Status: Inappropriate Signed-off-by: Ross Burton --- - Makefile.in | 50 -------------------------------------------------- - 1 file changed, 50 deletions(-) + Makefile.in | 54 ----------------------------------------------------- + 1 file changed, 54 deletions(-) diff --git a/Makefile.in b/Makefile.in -index 31ddc43..41c9a93 100644 +index 672fcc4..c12d8d4 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -167,56 +167,6 @@ gen: conf proto.h man +@@ -168,60 +168,6 @@ gen: conf proto.h man gensend: gen rsync -aic $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ @@ -56,6 +56,10 @@ index 31ddc43..41c9a93 100644 - ./config.status --recheck - ./config.status - +-.PHONY: restatus +-restatus: +- ./config.status +- -Makefile: Makefile.in config.status configure.sh config.h.in - @if test -f Makefile; then cp -p Makefile Makefile.old; else touch Makefile.old; fi - @./config.status diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb deleted file mode 100644 index ea6b1ce38..000000000 --- a/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb +++ /dev/null @@ -1,58 +0,0 @@ -SUMMARY = "File synchronization tool" -HOMEPAGE = "http://rsync.samba.org/" -BUGTRACKER = "http://rsync.samba.org/bugzilla.html" -SECTION = "console/network" -# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0) -# Includes opennsh and xxhash dynamic link exception -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=9e5a4f9b3a253d51520617aa54f8eb26" - -DEPENDS = "popt" - -SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ - file://rsyncd.conf \ - file://makefile-no-rebuild.patch \ - " - -SRC_URI[sha256sum] = "95f2dd62979b500a99b34c1a6453a0787ada0330e4bec7fcffad37b9062d58d3" - -# -16548 required for v3.1.3pre1. Already in v3.1.3. -CVE_CHECK_WHITELIST += " CVE-2017-16548 " - -inherit autotools-brokensep - -PACKAGECONFIG ??= "acl attr \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" - -PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl," -PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[xxhash] = "--enable-xxhash,--disable-xxhash,xxhash" -PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" - -# By default, if crosscompiling, rsync disables a number of -# capabilities, hardlinking symlinks and special files (i.e. devices) -CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes" - -EXTRA_OEMAKE = 'STRIP=""' -EXTRA_OECONF = "--disable-simd --disable-md2man --disable-asm" - -# rsync 3.0 uses configure.sh instead of configure, and -# makefile checks the existence of configure.sh -do_configure_prepend () { - rm -f ${S}/configure ${S}/configure.sh -} - -do_configure_append () { - cp -f ${S}/configure ${S}/configure.sh -} - -do_install_append() { - install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir} -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.2.2.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.2.bb new file mode 100644 index 000000000..182628f4b --- /dev/null +++ b/poky/meta/recipes-devtools/rsync/rsync_3.2.2.bb @@ -0,0 +1,58 @@ +SUMMARY = "File synchronization tool" +HOMEPAGE = "http://rsync.samba.org/" +BUGTRACKER = "http://rsync.samba.org/bugzilla.html" +SECTION = "console/network" +# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0) +# Includes opennsh and xxhash dynamic link exception +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=9e5a4f9b3a253d51520617aa54f8eb26" + +DEPENDS = "popt" + +SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ + file://rsyncd.conf \ + file://makefile-no-rebuild.patch \ + " + +SRC_URI[sha256sum] = "644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8" + +# -16548 required for v3.1.3pre1. Already in v3.1.3. +CVE_CHECK_WHITELIST += " CVE-2017-16548 " + +inherit autotools-brokensep + +PACKAGECONFIG ??= "acl attr \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" + +PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl," +PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[xxhash] = "--enable-xxhash,--disable-xxhash,xxhash" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" + +# By default, if crosscompiling, rsync disables a number of +# capabilities, hardlinking symlinks and special files (i.e. devices) +CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes" + +EXTRA_OEMAKE = 'STRIP=""' +EXTRA_OECONF = "--disable-simd --disable-md2man --disable-asm" + +# rsync 3.0 uses configure.sh instead of configure, and +# makefile checks the existence of configure.sh +do_configure_prepend () { + rm -f ${S}/configure ${S}/configure.sh +} + +do_configure_append () { + cp -f ${S}/configure ${S}/configure.sh +} + +do_install_append() { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir} +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/strace/strace_5.7.bb b/poky/meta/recipes-devtools/strace/strace_5.7.bb deleted file mode 100644 index c184d035a..000000000 --- a/poky/meta/recipes-devtools/strace/strace_5.7.bb +++ /dev/null @@ -1,55 +0,0 @@ -SUMMARY = "System call tracing tool" -HOMEPAGE = "http://strace.io" -SECTION = "console/utils" -LICENSE = "LGPL-2.1+ & GPL-2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=c756d9d5dabc27663df64f0bf492166c" - -SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ - file://disable-git-version-gen.patch \ - file://update-gawk-paths.patch \ - file://Makefile-ptest.patch \ - file://run-ptest \ - file://mips-SIGEMT.patch \ - file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \ - file://ptest-spacesave.patch \ - file://uintptr_t.patch \ - file://0001-strace-fix-reproducibilty-issues.patch \ - " -SRC_URI[sha256sum] = "b284b59f9bcd95b9728cea5bd5c0edc5ebe360af73dc76fbf6334f11c777ccd8" - -inherit autotools ptest - -PACKAGECONFIG_class-target ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ -" - -PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5" -PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" - -EXTRA_OECONF += "--enable-mpers=no --disable-gcc-Werror" - -CFLAGS_append_libc-musl = " -Dsigcontext_struct=sigcontext" - -TESTDIR = "tests" -PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)" - -do_install_append() { - # We don't ship strace-graph here because it needs perl - rm ${D}${bindir}/strace-graph -} - -do_compile_ptest() { - oe_runmake -C ${TESTDIR} buildtest-TESTS -} - -do_install_ptest() { - oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR} - install -m 755 ${S}/test-driver ${D}${PTEST_PATH} - install -m 644 ${B}/config.h ${D}${PTEST_PATH} - sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile -} - -RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed" - -BBCLASSEXTEND = "native" -TOOLCHAIN = "gcc" diff --git a/poky/meta/recipes-devtools/strace/strace_5.8.bb b/poky/meta/recipes-devtools/strace/strace_5.8.bb new file mode 100644 index 000000000..70d5940f6 --- /dev/null +++ b/poky/meta/recipes-devtools/strace/strace_5.8.bb @@ -0,0 +1,55 @@ +SUMMARY = "System call tracing tool" +HOMEPAGE = "http://strace.io" +SECTION = "console/utils" +LICENSE = "LGPL-2.1+ & GPL-2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c756d9d5dabc27663df64f0bf492166c" + +SRC_URI = "https://strace.io/files/${PV}/strace-${PV}.tar.xz \ + file://disable-git-version-gen.patch \ + file://update-gawk-paths.patch \ + file://Makefile-ptest.patch \ + file://run-ptest \ + file://mips-SIGEMT.patch \ + file://0001-caps-abbrev.awk-fix-gawk-s-path.patch \ + file://ptest-spacesave.patch \ + file://uintptr_t.patch \ + file://0001-strace-fix-reproducibilty-issues.patch \ + " +SRC_URI[sha256sum] = "df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9" + +inherit autotools ptest + +PACKAGECONFIG_class-target ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ +" + +PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,bluez5" +PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" + +EXTRA_OECONF += "--enable-mpers=no --disable-gcc-Werror" + +CFLAGS_append_libc-musl = " -Dsigcontext_struct=sigcontext" + +TESTDIR = "tests" +PTEST_BUILD_HOST_PATTERN = "^(DEB_CHANGELOGTIME|RPM_CHANGELOGTIME|WARN_CFLAGS_FOR_BUILD|LDFLAGS_FOR_BUILD)" + +do_install_append() { + # We don't ship strace-graph here because it needs perl + rm ${D}${bindir}/strace-graph +} + +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR} + install -m 755 ${S}/test-driver ${D}${PTEST_PATH} + install -m 644 ${B}/config.h ${D}${PTEST_PATH} + sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile +} + +RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed" + +BBCLASSEXTEND = "native" +TOOLCHAIN = "gcc" diff --git a/poky/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch b/poky/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch deleted file mode 100644 index ac9dc8c83..000000000 --- a/poky/meta/recipes-devtools/vala/vala/0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 2460d7b79f7e90dcfeebde5e9c53d9b6798a1f3c Mon Sep 17 00:00:00 2001 -From: Martin Jansa -Date: Tue, 21 Feb 2012 17:12:50 +0100 -Subject: [PATCH] git-version-gen: don't append -dirty if we're not in git - repo - -* for example if we have some dirty directory and we unpack clean vala tarball in it, then it will append -dirty - -Signed-off-by: Martin Jansa - -Upstream-Status: Inappropriate [OE-Specific] ---- - build-aux/git-version-gen | 25 ++++++++++++++----------- - 1 files changed, 14 insertions(+), 11 deletions(-) - -diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen -index 0fa6faa..1d1f9d2 100755 ---- a/build-aux/git-version-gen -+++ b/build-aux/git-version-gen -@@ -126,18 +126,21 @@ fi - - v=`echo "$v" |sed 's/^v//'` - --# Don't declare a version "dirty" merely because a time stamp has changed. --git status > /dev/null 2>&1 -+if test -d .git -+then -+ # Don't declare a version "dirty" merely because a time stamp has changed. -+ git status > /dev/null 2>&1 - --dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= --case "$dirty" in -- '') ;; -- *) # Append the suffix only if there isn't one already. -- case $v in -- *-dirty) ;; -- *) v="$v-dirty" ;; -- esac ;; --esac -+ dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= -+ case "$dirty" in -+ '') ;; -+ *) # Append the suffix only if there isn't one already. -+ case $v in -+ *-dirty) ;; -+ *) v="$v-dirty" ;; -+ esac ;; -+ esac -+fi - - # Omit the trailing newline, so that m4_esyscmd can use the result directly. - echo "$v" | tr -d '\012' --- -1.7.8.4 - diff --git a/poky/meta/recipes-devtools/vala/vala_0.48.6.bb b/poky/meta/recipes-devtools/vala/vala_0.48.6.bb deleted file mode 100644 index 9dace1348..000000000 --- a/poky/meta/recipes-devtools/vala/vala_0.48.6.bb +++ /dev/null @@ -1,7 +0,0 @@ -require ${BPN}.inc - -SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \ - file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \ - " - -SRC_URI[sha256sum] = "d18d08ed030ce0e0f044f4c15c9df3c25b15beaf8700e45e43b736a6debf9707" diff --git a/poky/meta/recipes-devtools/vala/vala_0.48.7.bb b/poky/meta/recipes-devtools/vala/vala_0.48.7.bb new file mode 100644 index 000000000..2e61db105 --- /dev/null +++ b/poky/meta/recipes-devtools/vala/vala_0.48.7.bb @@ -0,0 +1,5 @@ +require ${BPN}.inc + +SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch" + +SRC_URI[sha256sum] = "28de33e28da24500cc1675c3a6ced1301c9a6a5e6dd06193569001f9ce9a5c53" diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch index 8ecfde141..75a3841f2 100644 --- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch +++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch @@ -1,4 +1,4 @@ -From 1c6c017e56ec536f5cceacdb02092777d390debb Mon Sep 17 00:00:00 2001 +From afecc8791f904dc1893858d68a642b491356c74b Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Wed, 28 May 2014 18:59:54 +0200 Subject: [PATCH] ethtool: use serial-tests config needed by ptest. @@ -15,11 +15,11 @@ Upstream-Status: Inappropriate 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 1169b7f..ed82524 100644 +index 19223f7..8a58d15 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. - AC_INIT(ethtool, 5.7, netdev@vger.kernel.org) + AC_INIT(ethtool, 5.8, netdev@vger.kernel.org) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([ethtool.c]) -AM_INIT_AUTOMAKE([gnu subdir-objects]) diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.7.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.7.bb deleted file mode 100644 index d9fc30cb5..000000000 --- a/poky/meta/recipes-extended/ethtool/ethtool_5.7.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Display or change ethernet card settings" -DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." -HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" -SECTION = "console/network" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" - -SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ - file://run-ptest \ - file://avoid_parallel_tests.patch \ - " - -SRC_URI[sha256sum] = "c2e16f8bf510c5822f8e25061c2533972308a421767c54abcacb1038b08bb782" - -UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" - -inherit autotools ptest bash-completion pkgconfig - -RDEPENDS_${PN}-ptest += "make" - -PACKAGECONFIG ?= "netlink" -PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl," - -do_compile_ptest() { - oe_runmake buildtest-TESTS -} - -do_install_ptest () { - cp ${B}/Makefile ${D}${PTEST_PATH} - install ${B}/test-cmdline ${D}${PTEST_PATH} - install ${B}/test-features ${D}${PTEST_PATH} - install ${B}/ethtool ${D}${PTEST_PATH}/ethtool - sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile -} diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.8.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.8.bb new file mode 100644 index 000000000..0403f0e3a --- /dev/null +++ b/poky/meta/recipes-extended/ethtool/ethtool_5.8.bb @@ -0,0 +1,37 @@ +SUMMARY = "Display or change ethernet card settings" +DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces." +HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/" +SECTION = "console/network" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216" + +SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \ + file://run-ptest \ + file://avoid_parallel_tests.patch \ + " + +SRC_URI[sha256sum] = "91e8bbda48a7fd5d374efacca542364ceb3a6c1f286f024b64ec40ccc799e125" + +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/" + +inherit autotools ptest bash-completion pkgconfig + +RDEPENDS_${PN}-ptest += "make" + +PACKAGECONFIG ?= "netlink" +PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl," + +do_compile_ptest() { + oe_runmake buildtest-TESTS +} + +do_install_ptest () { + cp ${B}/Makefile ${D}${PTEST_PATH} + install ${B}/test-cmdline ${D}${PTEST_PATH} + if ${@bb.utils.contains('PACKAGECONFIG', 'netlink', 'false', 'true', d)}; then + install ${B}/test-features ${D}${PTEST_PATH} + fi + install ${B}/ethtool ${D}${PTEST_PATH}/ethtool + sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile +} diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch new file mode 100644 index 000000000..d7c5f034e --- /dev/null +++ b/poky/meta/recipes-extended/ghostscript/ghostscript/CVE-2020-15900.patch @@ -0,0 +1,54 @@ +From 5d499272b95a6b890a1397e11d20937de000d31b Mon Sep 17 00:00:00 2001 +From: Ray Johnston +Date: Wed, 22 Jul 2020 09:57:54 -0700 +Subject: [PATCH] Bug 702582, CVE 2020-15900 Memory Corruption in Ghostscript + 9.52 + +Fix the 'rsearch' calculation for the 'post' size to give the correct +size. Previous calculation would result in a size that was too large, +and could underflow to max uint32_t. Also fix 'rsearch' to return the +correct 'pre' string with empty string match. + +A future change may 'undefine' this undocumented, non-standard operator +during initialization as we do with the many other non-standard internal +PostScript operators and procedures. + +Upstream-Status: Backport [https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d499272b95a6b890a1397e11d20937de000d31b] +CVE: CVE-2020-15900 +Signed-off-by: Chee Yang Lee +--- + psi/zstring.c | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/psi/zstring.c b/psi/zstring.c +index 33662dafa..58e1af2b3 100644 +--- a/psi/zstring.c ++++ b/psi/zstring.c +@@ -142,13 +142,18 @@ search_impl(i_ctx_t *i_ctx_p, bool forward) + return 0; + found: + op->tas.type_attrs = op1->tas.type_attrs; +- op->value.bytes = ptr; +- r_set_size(op, size); ++ op->value.bytes = ptr; /* match */ ++ op->tas.rsize = size; /* match */ + push(2); +- op[-1] = *op1; +- r_set_size(op - 1, ptr - op[-1].value.bytes); +- op1->value.bytes = ptr + size; +- r_set_size(op1, count + (!forward ? (size - 1) : 0)); ++ op[-1] = *op1; /* pre */ ++ op[-3].value.bytes = ptr + size; /* post */ ++ if (forward) { ++ op[-1].tas.rsize = ptr - op[-1].value.bytes; /* pre */ ++ op[-3].tas.rsize = count; /* post */ ++ } else { ++ op[-1].tas.rsize = count; /* pre */ ++ op[-3].tas.rsize -= count + size; /* post */ ++ } + make_true(op); + return 0; + } +-- +2.17.1 + diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_9.52.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_9.52.bb index 4cdb6e00d..65135f582 100644 --- a/poky/meta/recipes-extended/ghostscript/ghostscript_9.52.bb +++ b/poky/meta/recipes-extended/ghostscript/ghostscript_9.52.bb @@ -34,6 +34,7 @@ SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/d SRC_URI = "${SRC_URI_BASE} \ file://ghostscript-9.21-prevent_recompiling.patch \ file://cups-no-gcrypt.patch \ + file://CVE-2020-15900.patch \ " SRC_URI_class-native = "${SRC_URI_BASE} \ diff --git a/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch b/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch index acef5ccbe..671fce4ac 100644 --- a/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch +++ b/poky/meta/recipes-extended/logrotate/logrotate/act-as-mv-when-rotate.patch @@ -1,4 +1,4 @@ -From ef1ea905831c5bcd63e04149571c10d75ff8f028 Mon Sep 17 00:00:00 2001 +From 17d57a2a923a4af53c8910a9999aebeab3f5d83a Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Tue, 17 Feb 2015 21:08:07 -0800 Subject: [PATCH] Act as the "mv" command when rotate log @@ -15,10 +15,10 @@ Signed-off-by: Robert Yang 1 file changed, 59 insertions(+), 12 deletions(-) diff --git a/logrotate.c b/logrotate.c -index 25902bc..afa1a90 100644 +index 45b3eb6..231371a 100644 --- a/logrotate.c +++ b/logrotate.c -@@ -1434,6 +1434,53 @@ static int findNeedRotating(struct logInfo *log, int logNum, int force) +@@ -1463,6 +1463,53 @@ static int findNeedRotating(const struct logInfo *log, unsigned logNum, int forc return 0; } @@ -72,7 +72,7 @@ index 25902bc..afa1a90 100644 /* find the rotated file with the highest index */ static int findLastRotated(const struct logNames *rotNames, const char *fileext, const char *compext) -@@ -1911,15 +1958,15 @@ static int prerotateSingleLog(struct logInfo *log, int logNum, +@@ -1958,15 +2005,15 @@ static int prerotateSingleLog(const struct logInfo *log, unsigned logNum, } message(MESS_DEBUG, @@ -91,7 +91,7 @@ index 25902bc..afa1a90 100644 oldName, newName, strerror(errno)); hasErrors = 1; } -@@ -2002,10 +2049,10 @@ static int rotateSingleLog(struct logInfo *log, int logNum, +@@ -2051,10 +2098,10 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum, return 1; } @@ -105,7 +105,7 @@ index 25902bc..afa1a90 100644 log->files[logNum], tmpFilename, strerror(errno)); hasErrors = 1; -@@ -2014,11 +2061,11 @@ static int rotateSingleLog(struct logInfo *log, int logNum, +@@ -2063,11 +2110,11 @@ static int rotateSingleLog(const struct logInfo *log, unsigned logNum, free(tmpFilename); } else { @@ -120,7 +120,7 @@ index 25902bc..afa1a90 100644 log->files[logNum], rotNames->finalName, strerror(errno)); hasErrors = 1; -@@ -2424,7 +2471,7 @@ static int rotateLogSet(struct logInfo *log, int force) +@@ -2480,7 +2527,7 @@ static int rotateLogSet(const struct logInfo *log, int force) return hasErrors; } @@ -129,16 +129,16 @@ index 25902bc..afa1a90 100644 { struct logState *p; FILE *f; -@@ -2629,7 +2676,7 @@ static int writeState(const char *stateFilename) +@@ -2659,7 +2706,7 @@ static int writeState(const char *stateFilename) fclose(f); if (error == 0) { - if (rename(tmpFilename, stateFilename)) { + if (mvFile(tmpFilename, stateFilename, log, prev_acl)) { + message(MESS_ERROR, "error renaming temp state file %s to %s: %s\n", + tmpFilename, stateFilename, strerror(errno)); unlink(tmpFilename); - error = 1; - message(MESS_ERROR, "error renaming temp state file %s to %s\n", -@@ -2987,7 +3034,7 @@ int main(int argc, const char **argv) +@@ -3073,7 +3120,7 @@ int main(int argc, const char **argv) rc |= rotateLogSet(log, force); if (!debug) diff --git a/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch b/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch index 9ba531f81..d7f9a02cc 100644 --- a/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch +++ b/poky/meta/recipes-extended/logrotate/logrotate/disable-check-different-filesystems.patch @@ -1,4 +1,4 @@ -From a3fdf3dbdd6ecc0f2550a765dcb9bb274bce8ea8 Mon Sep 17 00:00:00 2001 +From 16c1833ade4c036b30b8761d2c4a5bd85cc65c44 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Tue, 8 Jan 2019 06:27:06 +0000 Subject: [PATCH] Disable the check for different filesystems @@ -15,10 +15,10 @@ Signed-off-by: Robert Yang 1 file changed, 9 deletions(-) diff --git a/config.c b/config.c -index f027c7e..026136c 100644 +index d2488f1..1de3745 100644 --- a/config.c +++ b/config.c -@@ -1873,15 +1873,6 @@ duperror: +@@ -1902,15 +1902,6 @@ duperror: } free(ld); @@ -28,7 +28,7 @@ index f027c7e..026136c 100644 - message(MESS_ERROR, - "%s:%d olddir %s and log file %s " - "are on different devices\n", configFile, -- lineNum, newlog->oldDir, newlog->files[i]); +- lineNum, newlog->oldDir, newlog->files[j]); - goto error; - } } diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.16.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.16.0.bb deleted file mode 100644 index 1c9df5a3c..000000000 --- a/poky/meta/recipes-extended/logrotate/logrotate_3.16.0.bb +++ /dev/null @@ -1,92 +0,0 @@ -SUMMARY = "Rotates, compresses, removes and mails system log files" -SECTION = "console/utils" -HOMEPAGE = "https://github.com/logrotate/logrotate/issues" -LICENSE = "GPLv2" - -# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox? - -DEPENDS="coreutils popt" - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "logrotate-(?P\d+(\.\d+)+).tar" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \ - file://act-as-mv-when-rotate.patch \ - file://0001-Update-the-manual.patch \ - file://disable-check-different-filesystems.patch \ - " - -SRC_URI[md5sum] = "faf729e0e24bfaafaa677bc6deb46ed8" -SRC_URI[sha256sum] = "442f6fdf61c349eeae5f76799878b88fe45a11c8863a38b618bac6988f4a7ce5" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" - -PACKAGECONFIG[acl] = ",,acl" -PACKAGECONFIG[selinux] = ",,libselinux" - -CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \ - ${sysconfdir}/logrotate.conf \ - ${sysconfdir}/logrotate.d/btmp \ - ${sysconfdir}/logrotate.d/wtmp" - -# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our -# optimization variables, so use it rather than EXTRA_CFLAGS. -EXTRA_OEMAKE = "\ - LFS= \ - OS_NAME='${OS_NAME}' \ - 'CC=${CC}' \ - 'RPM_OPT_FLAGS=${CFLAGS}' \ - 'EXTRA_LDFLAGS=${LDFLAGS}' \ - ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \ -" - -# OS_NAME in the makefile defaults to `uname -s`. The behavior for -# freebsd/netbsd is questionable, so leave it as Linux, which only sets -# INSTALL=install and BASEDIR=/usr. -OS_NAME = "Linux" - -inherit autotools systemd - -SYSTEMD_SERVICE_${PN} = "\ - ${BPN}.service \ - ${BPN}.timer \ -" - -LOGROTATE_OPTIONS ?= "" - -LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily" -LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h" -LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true" - -do_install(){ - oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} - mkdir -p ${D}${sysconfdir}/logrotate.d - mkdir -p ${D}${localstatedir}/lib - install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf - install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp - install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp - touch ${D}${localstatedir}/lib/logrotate.status - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service - install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer - [ -z "${LOGROTATE_OPTIONS}" ] || - sed -ri \ - -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \ - ${D}${systemd_system_unitdir}/logrotate.service - sed -ri \ - -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \ - -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \ - -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \ - ${D}${systemd_system_unitdir}/logrotate.timer - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - mkdir -p ${D}${sysconfdir}/cron.daily - install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate - fi -} diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.17.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.17.0.bb new file mode 100644 index 000000000..08001f38e --- /dev/null +++ b/poky/meta/recipes-extended/logrotate/logrotate_3.17.0.bb @@ -0,0 +1,91 @@ +SUMMARY = "Rotates, compresses, removes and mails system log files" +SECTION = "console/utils" +HOMEPAGE = "https://github.com/logrotate/logrotate/issues" +LICENSE = "GPLv2" + +# TODO: Document coreutils dependency. Why not RDEPENDS? Why not busybox? + +DEPENDS="coreutils popt" + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "logrotate-(?P\d+(\.\d+)+).tar" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz \ + file://act-as-mv-when-rotate.patch \ + file://0001-Update-the-manual.patch \ + file://disable-check-different-filesystems.patch \ + " + +SRC_URI[sha256sum] = "58cc2178ff57faa3c0490181cce041345aeca6cff18dba1c5cd1398bf1c19294" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" + +PACKAGECONFIG[acl] = ",,acl" +PACKAGECONFIG[selinux] = ",,libselinux" + +CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \ + ${sysconfdir}/logrotate.conf \ + ${sysconfdir}/logrotate.d/btmp \ + ${sysconfdir}/logrotate.d/wtmp" + +# If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our +# optimization variables, so use it rather than EXTRA_CFLAGS. +EXTRA_OEMAKE = "\ + LFS= \ + OS_NAME='${OS_NAME}' \ + 'CC=${CC}' \ + 'RPM_OPT_FLAGS=${CFLAGS}' \ + 'EXTRA_LDFLAGS=${LDFLAGS}' \ + ${@bb.utils.contains('PACKAGECONFIG', 'acl', 'WITH_ACL=yes', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'WITH_SELINUX=yes', '', d)} \ +" + +# OS_NAME in the makefile defaults to `uname -s`. The behavior for +# freebsd/netbsd is questionable, so leave it as Linux, which only sets +# INSTALL=install and BASEDIR=/usr. +OS_NAME = "Linux" + +inherit autotools systemd + +SYSTEMD_SERVICE_${PN} = "\ + ${BPN}.service \ + ${BPN}.timer \ +" + +LOGROTATE_OPTIONS ?= "" + +LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily" +LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h" +LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true" + +do_install(){ + oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir} + mkdir -p ${D}${sysconfdir}/logrotate.d + mkdir -p ${D}${localstatedir}/lib + install -p -m 644 ${S}/examples/logrotate.conf ${D}${sysconfdir}/logrotate.conf + install -p -m 644 ${S}/examples/btmp ${D}${sysconfdir}/logrotate.d/btmp + install -p -m 644 ${S}/examples/wtmp ${D}${sysconfdir}/logrotate.d/wtmp + touch ${D}${localstatedir}/lib/logrotate.status + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service + install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer + [ -z "${LOGROTATE_OPTIONS}" ] || + sed -ri \ + -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \ + ${D}${systemd_system_unitdir}/logrotate.service + sed -ri \ + -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \ + -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \ + -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \ + ${D}${systemd_system_unitdir}/logrotate.timer + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + mkdir -p ${D}${sysconfdir}/cron.daily + install -p -m 0755 ${S}/examples/logrotate.cron ${D}${sysconfdir}/cron.daily/logrotate + fi +} diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch b/poky/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch new file mode 100644 index 000000000..6b665030c --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch @@ -0,0 +1,34 @@ +From 13ef88cdccfe3f58c53d57806866b91e310eb272 Mon Sep 17 00:00:00 2001 +From: "Mingde (Matthew) Zeng" +Date: Wed, 29 Jul 2020 08:47:09 -0400 +Subject: [PATCH] Remove OOM tests from runtest/mm + +Disable OOM tests, as they might cause oeqa ssh connection lost + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Mingde (Matthew) Zeng + +--- + runtest/mm | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/runtest/mm b/runtest/mm +index a09f39c1e..76fa82754 100644 +--- a/runtest/mm ++++ b/runtest/mm +@@ -73,12 +73,6 @@ ksm06 ksm06 + ksm06_1 ksm06 -n 10 + ksm06_2 ksm06 -n 10000 + +-oom01 oom01 +-oom02 oom02 +-oom03 oom03 +-oom04 oom04 +-oom05 oom05 +- + swapping01 swapping01 -i 5 + + thp01 thp01 -I 120 +-- +2.27.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp_20200515.bb b/poky/meta/recipes-extended/ltp/ltp_20200515.bb index b283add12..0c7044d04 100644 --- a/poky/meta/recipes-extended/ltp/ltp_20200515.bb +++ b/poky/meta/recipes-extended/ltp/ltp_20200515.bb @@ -37,6 +37,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \ file://0001-ptrace01-Fix-missing-format-string.patch \ file://0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch \ file://0001-syscalls-copy_file_range02-Expect-EFBIG-in-subcase-m.patch \ + file://0001-Remove-OOM-tests-from-runtest-mm.patch \ " S = "${WORKDIR}/git" @@ -50,7 +51,7 @@ export exec_prefix = "/opt/${PN}" PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" -EXTRA_OECONF = " --with-power-management-testsuite --with-realtime-testsuite --with-open-posix-testsuite " +EXTRA_OECONF = " --with-realtime-testsuite --with-open-posix-testsuite " # ltp network/rpc test cases ftbfs when libtirpc is found EXTRA_OECONF += " --without-tirpc " diff --git a/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch new file mode 100644 index 000000000..4c6e24931 --- /dev/null +++ b/poky/meta/recipes-extended/minicom/minicom/0001-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,35 @@ +From b65152ebc03832972115e6d98e50cb6190d01793 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +Date: Mon, 3 Feb 2020 13:18:13 +0100 +Subject: [PATCH 1/3] Drop superfluous global variable definitions + +The file minicom.c, by including the minicom.h header, already defines +the global variables 'dial_user' and 'dial_pass'. The object file +minicom.o is always linked to dial.o. Thus the definitions in dial.c +can be dropped. + +This fixes linking with gcc 10 which uses -fno-common by default, +disallowing multiple global variable definitions. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/dial.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/dial.c b/src/dial.c +index eada5ee..d9d481f 100644 +--- a/src/dial.c ++++ b/src/dial.c +@@ -146,8 +146,6 @@ static int newtype; + /* Access to ".dialdir" denied? */ + static int dendd = 0; + static char *tagged; +-char *dial_user; +-char *dial_pass; + + /* Change the baud rate. Treat all characters in the given array as if + * they were key presses within the comm parameters dialog (C-A P) and +-- +2.24.1 + diff --git a/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch new file mode 100644 index 000000000..1740051e0 --- /dev/null +++ b/poky/meta/recipes-extended/minicom/minicom/0002-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,37 @@ +From 924bd2da3a00e030e29d82b74ef82900bd50b475 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +Date: Mon, 3 Feb 2020 13:18:33 +0100 +Subject: [PATCH 2/3] Drop superfluous global variable definitions + +The only place where the EXTERN macro mechanism is used to define the +global variables 'vt_outmap' and 'vt_inmap' is minicom.c (by defining +an empty EXTERN macro and including the minicom.h header). The file +vt100.c already defines these variables. The vt100.o object file is +always linked to minicom.o. Thus it is safe not to define the +variables in minicom.c and only declare them in the minicom.h header. + +This fixes linking with gcc 10 which uses -fno-common by default, +disallowing multiple global variable definitions. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/minicom.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/minicom.h b/src/minicom.h +index 061c013..0f9693b 100644 +--- a/src/minicom.h ++++ b/src/minicom.h +@@ -141,7 +141,7 @@ EXTERN int sbcolor; /* Status Bar Background Color */ + EXTERN int st_attr; /* Status Bar attributes. */ + + /* jl 04.09.97 conversion tables */ +-EXTERN unsigned char vt_outmap[256], vt_inmap[256]; ++extern unsigned char vt_outmap[256], vt_inmap[256]; + + /* MARK updated 02/17/95 - history buffer */ + EXTERN int num_hist_lines; /* History buffer size */ +-- +2.24.1 + diff --git a/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch b/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch new file mode 100644 index 000000000..58cd58eda --- /dev/null +++ b/poky/meta/recipes-extended/minicom/minicom/0003-Drop-superfluous-global-variable-definitions.patch @@ -0,0 +1,42 @@ +From a4fc603b3641d2efe31479116eb7ba66932901c7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +Date: Mon, 3 Feb 2020 13:21:41 +0100 +Subject: [PATCH 3/3] Drop superfluous global variable definitions + +The only place where the EXTERN macro mechanism is used to define the +global variables 'portfd_is_socket', 'portfd_is_connected' and +'portfd_sock_addr' is minicom.c (by defining an empty EXTERN macro and +including the minicom.h header). The source file sysdep1_s.c already +defines these variables. The sysdep1_s.o object file is always linked +to minicom.o. Thus it is safe to drop the definitions from minicom.c +and only declare the variables in the minicom.h header. + +This fixes linking with gcc 10 which uses -fno-common by default, +disallowing multiple global variable definitions. + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + src/minicom.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/minicom.h b/src/minicom.h +index 0f9693b..1e7cb8c 100644 +--- a/src/minicom.h ++++ b/src/minicom.h +@@ -113,9 +113,9 @@ EXTERN char *dial_user; /* Our username there */ + EXTERN char *dial_pass; /* Our password */ + + #ifdef USE_SOCKET +-EXTERN int portfd_is_socket; /* File descriptor is a unix socket */ +-EXTERN int portfd_is_connected; /* 1 if the socket is connected */ +-EXTERN struct sockaddr_un portfd_sock_addr; /* the unix socket address */ ++extern int portfd_is_socket; /* File descriptor is a unix socket */ ++extern int portfd_is_connected; /* 1 if the socket is connected */ ++extern struct sockaddr_un portfd_sock_addr; /* the unix socket address */ + #define portfd_connected ((portfd_is_socket && !portfd_is_connected) \ + ? -1 : portfd) + #else +-- +2.24.1 + diff --git a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb index 1e6f1317e..03034864c 100644 --- a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb +++ b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb @@ -11,6 +11,9 @@ SRC_URI = "${DEBIAN_MIRROR}/main/m/${BPN}/${BPN}_${PV}.orig.tar.gz \ file://allow.to.disable.lockdev.patch \ file://0001-fix-minicom-h-v-return-value-is-not-0.patch \ file://0001-Fix-build-issus-surfaced-due-to-musl.patch \ + file://0001-Drop-superfluous-global-variable-definitions.patch \ + file://0002-Drop-superfluous-global-variable-definitions.patch \ + file://0003-Drop-superfluous-global-variable-definitions.patch \ " SRC_URI[md5sum] = "9021cb8c5445f6e6e74b2acc39962d62" diff --git a/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch b/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch deleted file mode 100644 index 523d434b7..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch +++ /dev/null @@ -1,381 +0,0 @@ -From eb04ef31571f6c707eacaba6846feeebfab518e6 Mon Sep 17 00:00:00 2001 -From: Bernd Eckenfels -Date: Thu, 29 May 2003 02:09:14 +0000 -Subject: [PATCH] added 'ull' prefix to unsigned long long constants to make - gcc 3.3 happy - -Signed-off-by: Martin Jansa -Upstream-Status: Backport [https://sourceforge.net/p/net-tools/code/ci/eb04ef31571f6c707eacaba6846feeebfab518e6] ---- - lib/interface.c | 299 ++++++++++++++++++++++++++---------------------- - 1 file changed, 161 insertions(+), 138 deletions(-) - -diff -uNr net-tools-1.60.orig/lib/interface.c net-tools-1.60/lib/interface.c ---- net-tools-1.60.orig/lib/interface.c 2020-06-16 10:04:16.308411879 +0000 -+++ net-tools-1.60/lib/interface.c 2020-06-16 10:05:15.697264291 +0000 -@@ -23,7 +23,6 @@ - #include - #include - #include --#include - - #if HAVE_AFIPX - #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) -@@ -654,6 +653,8 @@ - const char *Rext = "B"; - const char *Text = "B"; - -+ static char flags[200]; -+ - #if HAVE_AFIPX - static struct aftype *ipxtype = NULL; - #endif -@@ -685,32 +686,68 @@ - if (hw == NULL) - hw = get_hwntype(-1); - -- printf(_("%-9s Link encap:%s "), ptr->name, hw->title); -- /* For some hardware types (eg Ash, ATM) we don't print the -- hardware address if it's null. */ -- if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && -- hw->suppress_null_addr))) -- printf(_("HWaddr %s "), hw->print(ptr->hwaddr)); --#ifdef IFF_PORTSEL -- if (ptr->flags & IFF_PORTSEL) { -- printf(_("Media:%s"), if_port_text[ptr->map.port][0]); -- if (ptr->flags & IFF_AUTOMEDIA) -- printf(_("(auto)")); -- } -+ sprintf(flags, "flags=%d<", ptr->flags); -+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */ -+ if (ptr->flags == 0) -+ strcat(flags,">"); -+ if (ptr->flags & IFF_UP) -+ strcat(flags,_("UP,")); -+ if (ptr->flags & IFF_BROADCAST) -+ strcat(flags,_("BROADCAST,")); -+ if (ptr->flags & IFF_DEBUG) -+ strcat(flags,_("DEBUG,")); -+ if (ptr->flags & IFF_LOOPBACK) -+ strcat(flags,_("LOOPBACK,")); -+ if (ptr->flags & IFF_POINTOPOINT) -+ strcat(flags,_("POINTOPOINT,")); -+ if (ptr->flags & IFF_NOTRAILERS) -+ strcat(flags,_("NOTRAILERS,")); -+ if (ptr->flags & IFF_RUNNING) -+ strcat(flags,_("RUNNING,")); -+ if (ptr->flags & IFF_NOARP) -+ strcat(flags,_("NOARP,")); -+ if (ptr->flags & IFF_PROMISC) -+ strcat(flags,_("PROMISC,")); -+ if (ptr->flags & IFF_ALLMULTI) -+ strcat(flags,_("ALLMULTI,")); -+ if (ptr->flags & IFF_SLAVE) -+ strcat(flags,_("SLAVE,")); -+ if (ptr->flags & IFF_MASTER) -+ strcat(flags,_("MASTER,")); -+ if (ptr->flags & IFF_MULTICAST) -+ strcat(flags,_("MULTICAST,")); -+#ifdef HAVE_DYNAMIC -+ if (ptr->flags & IFF_DYNAMIC) -+ strcat(flags,_("DYNAMIC,")); -+#endif -+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */ -+ if (flags[strlen(flags)-1] == ',') -+ flags[strlen(flags)-1] = '>'; -+ else -+ flags[strlen(flags)-1] = 0; -+ -+ -+ printf(_("%s: %s mtu %d metric %d"), -+ ptr->name, flags, ptr->mtu, ptr->metric ? ptr->metric : 1); -+#ifdef SIOCSKEEPALIVE -+ if (ptr->outfill || ptr->keepalive) -+ printf(_(" outfill %d keepalive %d"), -+ ptr->outfill, ptr->keepalive); - #endif - printf("\n"); - - #if HAVE_AFINET - if (ptr->has_ip) { -- printf(_(" %s addr:%s "), ap->name, -+ printf(_(" %s %s"), ap->name, - ap->sprint(&ptr->addr, 1)); -- if (ptr->flags & IFF_POINTOPOINT) { -- printf(_(" P-t-P:%s "), ap->sprint(&ptr->dstaddr, 1)); -- } -+ printf(_(" netmask %s"), ap->sprint(&ptr->netmask, 1)); - if (ptr->flags & IFF_BROADCAST) { -- printf(_(" Bcast:%s "), ap->sprint(&ptr->broadaddr, 1)); -+ printf(_(" broadcast %s"), ap->sprint(&ptr->broadaddr, 1)); - } -- printf(_(" Mask:%s\n"), ap->sprint(&ptr->netmask, 1)); -+ if (ptr->flags & IFF_POINTOPOINT) { -+ printf(_(" destination %s"), ap->sprint(&ptr->dstaddr, 1)); -+ } -+ printf("\n"); - } - #endif - -@@ -727,29 +764,30 @@ - addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7]); - inet6_aftype.input(1, addr6, (struct sockaddr *) &sap); -- printf(_(" inet6 addr: %s/%d"), -- inet6_aftype.sprint((struct sockaddr *) &sap, 1), plen); -- printf(_(" Scope:")); -- switch (scope) { -- case 0: -- printf(_("Global")); -- break; -- case IPV6_ADDR_LINKLOCAL: -- printf(_("Link")); -- break; -- case IPV6_ADDR_SITELOCAL: -- printf(_("Site")); -- break; -- case IPV6_ADDR_COMPATv4: -- printf(_("Compat")); -- break; -- case IPV6_ADDR_LOOPBACK: -- printf(_("Host")); -- break; -- default: -- printf(_("Unknown")); -+ printf(_(" %s %s prefixlen %d"), -+ inet6_aftype.name, -+ inet6_aftype.sprint((struct sockaddr *) &sap, 1), -+ plen); -+ printf(_(" scopeid 0x%x"), scope); -+ -+ flags[0] = '<'; flags[1] = 0; -+ if (scope & IPV6_ADDR_COMPATv4) { -+ strcat(flags, _("compat,")); -+ scope -= IPV6_ADDR_COMPATv4; - } -- printf("\n"); -+ if (scope == 0) -+ strcat(flags, _("global,")); -+ if (scope & IPV6_ADDR_LINKLOCAL) -+ strcat(flags, _("link,")); -+ if (scope & IPV6_ADDR_SITELOCAL) -+ strcat(flags, _("site,")); -+ if (scope & IPV6_ADDR_LOOPBACK) -+ strcat(flags, _("host,")); -+ if (flags[strlen(flags)-1] == ',') -+ flags[strlen(flags)-1] = '>'; -+ else -+ flags[strlen(flags)-1] = 0; -+ printf("%s\n", flags); - } - } - fclose(f); -@@ -762,17 +800,17 @@ - - if (ipxtype != NULL) { - if (ptr->has_ipx_bb) -- printf(_(" IPX/Ethernet II addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_bb, 1)); -+ printf(_(" %s Ethernet-II %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_bb, 1)); - if (ptr->has_ipx_sn) -- printf(_(" IPX/Ethernet SNAP addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_sn, 1)); -+ printf(_(" %s Ethernet-SNAP %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_sn, 1)); - if (ptr->has_ipx_e2) -- printf(_(" IPX/Ethernet 802.2 addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_e2, 1)); -+ printf(_(" %s Ethernet802.2 %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e2, 1)); - if (ptr->has_ipx_e3) -- printf(_(" IPX/Ethernet 802.3 addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_e3, 1)); -+ printf(_(" %s Ethernet802.3 %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e3, 1)); - } - #endif - -@@ -781,7 +819,7 @@ - ddptype = get_afntype(AF_APPLETALK); - if (ddptype != NULL) { - if (ptr->has_ddp) -- printf(_(" EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr, 1)); -+ printf(_(" %s %s\n"), ddptype->name, ddptype->sprint(&ptr->ddpaddr, 1)); - } - #endif - -@@ -790,53 +828,30 @@ - ectype = get_afntype(AF_ECONET); - if (ectype != NULL) { - if (ptr->has_econet) -- printf(_(" econet addr:%s\n"), ectype->sprint(&ptr->ecaddr, 1)); -+ printf(_(" %s %s\n"), ectype->name, ectype->sprint(&ptr->ecaddr, 1)); - } - #endif - -- printf(" "); -- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */ -- if (ptr->flags == 0) -- printf(_("[NO FLAGS] ")); -- if (ptr->flags & IFF_UP) -- printf(_("UP ")); -- if (ptr->flags & IFF_BROADCAST) -- printf(_("BROADCAST ")); -- if (ptr->flags & IFF_DEBUG) -- printf(_("DEBUG ")); -- if (ptr->flags & IFF_LOOPBACK) -- printf(_("LOOPBACK ")); -- if (ptr->flags & IFF_POINTOPOINT) -- printf(_("POINTOPOINT ")); -- if (ptr->flags & IFF_NOTRAILERS) -- printf(_("NOTRAILERS ")); -- if (ptr->flags & IFF_RUNNING) -- printf(_("RUNNING ")); -- if (ptr->flags & IFF_NOARP) -- printf(_("NOARP ")); -- if (ptr->flags & IFF_PROMISC) -- printf(_("PROMISC ")); -- if (ptr->flags & IFF_ALLMULTI) -- printf(_("ALLMULTI ")); -- if (ptr->flags & IFF_SLAVE) -- printf(_("SLAVE ")); -- if (ptr->flags & IFF_MASTER) -- printf(_("MASTER ")); -- if (ptr->flags & IFF_MULTICAST) -- printf(_("MULTICAST ")); --#ifdef HAVE_DYNAMIC -- if (ptr->flags & IFF_DYNAMIC) -- printf(_("DYNAMIC ")); --#endif -- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */ -- printf(_(" MTU:%d Metric:%d"), -- ptr->mtu, ptr->metric ? ptr->metric : 1); --#ifdef SIOCSKEEPALIVE -- if (ptr->outfill || ptr->keepalive) -- printf(_(" Outfill:%d Keepalive:%d"), -- ptr->outfill, ptr->keepalive); -+ /* For some hardware types (eg Ash, ATM) we don't print the -+ hardware address if it's null. */ -+ if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && -+ hw->suppress_null_addr))) -+ printf(_(" %s %s"), hw->name, hw->print(ptr->hwaddr)); -+ else -+ printf(_(" %s"), hw->name); -+ if (ptr->tx_queue_len != -1) -+ printf(_(" txqueuelen %d"), ptr->tx_queue_len); -+ printf(" (%s)\n", hw->title); -+ -+#ifdef IFF_PORTSEL -+ if (ptr->flags & IFF_PORTSEL) { -+ printf(_(" media %s"), if_port_text[ptr->map.port][0]); -+ if (ptr->flags & IFF_AUTOMEDIA) -+ printf(_("autoselect")); -+ printf("\n"); -+ } - #endif -- printf("\n"); -+ - - /* If needed, display the interface statistics. */ - -@@ -845,19 +860,9 @@ - * not for the aliases, although strictly speaking they're shared - * by all addresses. - */ -- printf(" "); -- -- printf(_("RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"), -- ptr->stats.rx_packets, ptr->stats.rx_errors, -- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors, -- ptr->stats.rx_frame_errors); -- if (can_compress) -- printf(_(" compressed:%lu\n"), ptr->stats.rx_compressed); - - rx = ptr->stats.rx_bytes; -- tx = ptr->stats.tx_bytes; - short_rx = rx * 10; -- short_tx = tx * 10; - if (rx > 1125899906842624ull) { - short_rx /= 1125899906842624ull; - Rext = "PiB"; -@@ -874,6 +879,8 @@ - short_rx /= 1024; - Rext = "KiB"; - } -+ tx = ptr->stats.tx_bytes; -+ short_tx = tx * 10; - if (tx > 1125899906842624ull) { - short_tx /= 1125899906842624ull; - Text = "PiB"; -@@ -891,37 +898,50 @@ - Text = "KiB"; - } - -- printf(" "); -- printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"), -- ptr->stats.tx_packets, ptr->stats.tx_errors, -- ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors, -- ptr->stats.tx_carrier_errors); -- printf(_(" collisions:%lu "), ptr->stats.collisions); -- if (can_compress) -- printf(_("compressed:%lu "), ptr->stats.tx_compressed); -- if (ptr->tx_queue_len != -1) -- printf(_("txqueuelen:%d "), ptr->tx_queue_len); -- printf("\n "); -- printf(_("RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"), -+ printf(" "); -+ printf(_("RX packets %llu bytes %llu (%lu.%lu %s)\n"), -+ ptr->stats.rx_packets, - rx, (unsigned long)(short_rx / 10), -- (unsigned long)(short_rx % 10), Rext, -- tx, (unsigned long)(short_tx / 10), -- (unsigned long)(short_tx % 10), Text); -+ (unsigned long)(short_rx % 10), Rext); -+ if (can_compress) { -+ printf(" "); -+ printf(_("RX compressed:%lu\n"), ptr->stats.rx_compressed); -+ } -+ printf(" "); -+ printf(_("RX errors %lu dropped %lu overruns %lu frame %lu\n"), -+ ptr->stats.rx_errors, ptr->stats.rx_dropped, -+ ptr->stats.rx_fifo_errors, ptr->stats.rx_frame_errors); -+ -+ -+ printf(" "); -+ printf(_("TX packets %llu bytes %llu (%lu.%lu %s)\n"), -+ ptr->stats.tx_packets, -+ tx, (unsigned long)(short_tx / 10), -+ (unsigned long)(short_tx % 10), Text); -+ if (can_compress) { -+ printf(" "); -+ printf(_("TX compressed %lu\n"), ptr->stats.tx_compressed); -+ } -+ printf(" "); -+ printf(_("TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"), -+ ptr->stats.tx_errors, -+ ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors, -+ ptr->stats.tx_carrier_errors, ptr->stats.collisions); - } - - if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || - ptr->map.base_addr >= 0x100)) { -- printf(" "); -+ printf(" device "); - if (ptr->map.irq) -- printf(_("Interrupt:%d "), ptr->map.irq); -+ printf(_("interrupt %d "), ptr->map.irq); - if (ptr->map.base_addr >= 0x100) /* Only print devices using it for - I/O maps */ -- printf(_("Base address:0x%x "), ptr->map.base_addr); -+ printf(_("base 0x%x "), ptr->map.base_addr); - if (ptr->map.mem_start) { -- printf(_("Memory:%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end); -+ printf(_("memory 0x%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end); - } - if (ptr->map.dma) -- printf(_("DMA chan:%x "), ptr->map.dma); -+ printf(_(" dma 0x%x"), ptr->map.dma); - printf("\n"); - } - printf("\n"); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch b/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch deleted file mode 100644 index 8be45ccac..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 08abfcd923e9f37d1902db26771b1dc6731eb265 Mon Sep 17 00:00:00 2001 -From: Jiri Popelka -Date: Fri, 27 Sep 2013 18:40:06 +0200 -Subject: [PATCH 1/1] lib/inet6.c:INET6_rresolve() - various fixes - -1) Fall-back to numeric address if getnameinfo fails. - Reverse lookup is not mandatory, therefore its fail - is not an error. Just return numeric address in that case. - This makes netstat/route show IPv6 address instead of - [UNKNOWN] in case of DNS problems. - -2) Pass length of 'name' buffer into function. - 'name' is a pointer and therefore sizeof(name) - returns size of pointer and not size of the buffer. - see http://stackoverflow.com/questions/14298710/c-pointers-and-arrays-sizeof-operator - The sizeof() usage was added with commit 604785adc, - so I checked all the other changes in that commit - and they seem to be OK. - -3) remove unused 's' variable - -Upstream-Status: Pending - -Signed-off-by: Shan Hai -Signed-off-by: Jianchuan Wang ---- - lib/inet6.c | 21 ++++++++++----------- - 1 file changed, 10 insertions(+), 11 deletions(-) - -diff --git a/lib/inet6.c b/lib/inet6.c -index 9a484a0..2a9c459 100644 ---- a/lib/inet6.c -+++ b/lib/inet6.c -@@ -84,10 +84,9 @@ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6) - #endif - - --static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric) -+static int INET6_rresolve(char *name, size_t namelen, -+ struct sockaddr_in6 *sin6, int numeric) - { -- int s; -- - /* Grmpf. -FvK */ - if (sin6->sin6_family != AF_INET6) { - #ifdef DEBUG -@@ -98,21 +97,20 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric) - return (-1); - } - if (numeric & 0x7FFF) { -- inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80); -+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen); - return (0); - } - if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { - if (numeric & 0x8000) -- strcpy(name, "default"); -+ safe_strncpy(name, "default", namelen); - else -- strcpy(name, "[::]"); -+ safe_strncpy(name, "[::]", namelen); - return (0); - } - -- if ((s = getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6), -- name, 255 /* !! */ , NULL, 0, 0))) { -- fputs("getnameinfo failed\n", stderr); -- return -1; -+ if (getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6), -+ name, namelen , NULL, 0, 0)) { -+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen); - } - return (0); - } -@@ -143,7 +141,8 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric) - - if (sap->sa_family == 0xFFFF || sap->sa_family == 0) - return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff)); -- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0) -+ if (INET6_rresolve(buff, sizeof(buff), -+ (struct sockaddr_in6 *) sap, numeric) != 0) - return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff)); - return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr)); - } --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch b/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch new file mode 100644 index 000000000..f15d3654c --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch @@ -0,0 +1,15 @@ +Description: Add missing headers + +Upstream-Status: Pending +Signed-off-by: Martin Jansa + +--- a/netstat.c ++++ b/netstat.c +@@ -88,6 +88,7 @@ + #include + #include + #include ++#include + + #include "net-support.h" + #include "pathnames.h" diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch b/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch new file mode 100644 index 000000000..74d74668c --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch @@ -0,0 +1,26 @@ +Description: Accept "pointtopoint" as a synonym for "pointopoint" +Bug-Debian: https://bugs.debian.org/443075 +Author: Justin Pryzby + +Upstream-Status: Pending +Signed-off-by: Martin Jansa + +--- a/ifconfig.c ++++ b/ifconfig.c +@@ -644,14 +644,14 @@ + spp++; + continue; + } +- if (!strcmp(*spp, "-pointopoint")) { ++ if (!strcmp(*spp, "-pointopoint") || !strcmp(*spp, "-pointtopoint")) { + goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; + if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0) + fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); + continue; + } +- if (!strcmp(*spp, "pointopoint")) { ++ if (!strcmp(*spp, "pointopoint") || !strcmp(*spp, "pointtopoint")) { + if (*(spp + 1) != NULL) { + spp++; + safe_strncpy(host, *spp, (sizeof host)); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch b/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch new file mode 100644 index 000000000..782b94bc6 --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch @@ -0,0 +1,22 @@ +Description: Bug#541172: netstat.c exit codes + +Upstream-Status: Pending +Signed-off-by: Martin Jansa + +--- a/netstat.c ++++ b/netstat.c +@@ -2237,12 +2237,14 @@ + parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); + #else + ENOSUPP("netstat", "AF INET"); ++ exit(1); + #endif + } else if(!strcmp(afname, "inet6")) { + #if HAVE_AFINET6 + parsesnmp6(flag_raw, flag_tcp, flag_udp); + #else + ENOSUPP("netstat", "AF INET6"); ++ exit(1); + #endif + } else { + printf(_("netstat: No statistics support for specified address family: %s\n"), afname); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch b/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch deleted file mode 100644 index 06f81420e..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 81814dc2b14843009193efd307d814c26baa61f0 Mon Sep 17 00:00:00 2001 -From: Jiri Popelka -Date: Wed, 7 Dec 2011 19:14:09 +0100 -Subject: [PATCH] ifconfig interface:0 del will remove the aliased IP on IA64 - -Upstream-Status: Backport - -commit 81814dc2b14843009193efd307d814c26baa61f0 from -git://git.code.sf.net/p/net-tools/code - ---- - ifconfig.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ifconfig.c b/ifconfig.c -index bc405c6..dae8922 100644 ---- a/ifconfig.c -+++ b/ifconfig.c -@@ -890,7 +890,9 @@ int main(int argc, char **argv) - continue; - } - -- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long)); -+ /* Clear "ip" in case sizeof(unsigned long) > sizeof(sin.sin_addr.s_addr) */ -+ ip = 0; -+ memcpy(&ip, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr)); - - if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) { - fprintf(stderr, _("Interface %s not initialized\n"), --- -1.7.9.5 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch b/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch deleted file mode 100644 index f694d594b..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch +++ /dev/null @@ -1,100 +0,0 @@ -Adjust headers for non-glibc cases -especially exposed by musl - -Signed-off-by: Khem Raj -Upstream-Status: Pending - -Index: net-tools-1.60/lib/inet6_gr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet6_gr.c -+++ net-tools-1.60/lib/inet6_gr.c -@@ -23,7 +23,7 @@ - #include - #include - #include --#ifndef __GLIBC__ -+#ifdef HAVE_IPV6_ROUTE_H - #include /* glibc doesn't have this */ - #endif - #include "version.h" -Index: net-tools-1.60/lib/inet6_sr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet6_sr.c -+++ net-tools-1.60/lib/inet6_sr.c -@@ -23,10 +23,10 @@ - #include - #include - #include --#ifdef __GLIBC__ --#include --#else -+#ifdef HAVE_IPV6_ROUTE_H - #include /* glibc does not have this */ -+#else -+#include - #endif - #include "version.h" - #include "net-support.h" -Index: net-tools-1.60/lib/inet_sr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet_sr.c -+++ net-tools-1.60/lib/inet_sr.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include "version.h" - #include "net-support.h" - #include "pathnames.h" -Index: net-tools-1.60/lib/util-ank.c -=================================================================== ---- net-tools-1.60.orig/lib/util-ank.c -+++ net-tools-1.60/lib/util-ank.c -@@ -14,6 +14,7 @@ - * Rani Assaf 980929: resolve addresses - */ - -+#include - #include - #include - #include -Index: net-tools-1.60/mii-tool.c -=================================================================== ---- net-tools-1.60.orig/mii-tool.c -+++ net-tools-1.60/mii-tool.c -@@ -47,10 +47,6 @@ static char Version[] = "$Id: mii-tool.c - #include - #include - --#ifndef __GLIBC__ --#include --#include --#endif - #include "mii.h" - #include "version.h" - -Index: net-tools-1.60/netstat.c -=================================================================== ---- net-tools-1.60.orig/netstat.c -+++ net-tools-1.60/netstat.c -@@ -87,6 +87,7 @@ - #include - #include - #include -+#include - - #include "net-support.h" - #include "pathnames.h" -Index: net-tools-1.60/slattach.c -=================================================================== ---- net-tools-1.60.orig/slattach.c -+++ net-tools-1.60/slattach.c -@@ -44,6 +44,7 @@ - #include - #include - #include -+#include - #include - - #if defined(__GLIBC__) diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch deleted file mode 100644 index 78daf6c3e..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch +++ /dev/null @@ -1,635 +0,0 @@ -From 23276afe270009420cfbc52bffafdd25ac0817fe Mon Sep 17 00:00:00 2001 -From: Li Zhou -Date: Thu, 14 Jan 2016 17:01:29 +0800 -Subject: [PATCH 1/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou ---- - netstat.c | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- - statistics.c | 68 +++++++++- - 2 files changed, 465 insertions(+), 14 deletions(-) - -Index: net-tools-1.60/netstat.c -=================================================================== ---- net-tools-1.60.orig/netstat.c -+++ net-tools-1.60/netstat.c -@@ -58,6 +58,7 @@ - * - *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one() - *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale -+ *20050516 {1.40} Ivan Skytte Joergensen:Added SCTP support - * - * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General -@@ -106,7 +107,7 @@ - #endif - - /* prototypes for statistics.c */ --void parsesnmp(int, int, int); -+void parsesnmp(int, int, int, int); - void inittab(void); - void parsesnmp6(int, int, int); - void inittab6(void); -@@ -119,6 +120,28 @@ typedef enum { - SS_DISCONNECTING /* in process of disconnecting */ - } socket_state; - -+#define SCTP_NSTATES 9 /* The number of states in array*/ -+ -+static const char *sctp_state[] = { -+ N_("EMPTY"), -+ N_("CLOSED"), -+ N_("COOKIE_WAIT"), -+ N_("COOKIE_ECHOED"), -+ N_("ESTABLISHED"), -+ N_("SHUTDOWN_PENDING"), -+ N_("SHUTDOWN_SENT"), -+ N_("SHUTDOWN_RECEIVED"), -+ N_("SHUTDOWN_ACK_SENT") -+}; -+ -+#define SCTP_NTYPES 3 /* The number of types in array */ -+ -+static const char *sctp_type[] = { -+ N_("udp"), -+ N_("udp-high-bw"), -+ N_("tcp") -+}; -+ - #define SO_ACCEPTCON (1<<16) /* performed a listen */ - #define SO_WAITDATA (1<<17) /* wait data to read */ - #define SO_NOSPACE (1<<18) /* no space to write */ -@@ -149,6 +172,7 @@ int flag_opt = 0; - int flag_raw = 0; - int flag_tcp = 0; - int flag_udp = 0; -+int flag_sctp= 0; - int flag_igmp= 0; - int flag_rom = 0; - int flag_exp = 1; -@@ -995,6 +1019,365 @@ static int udp_info(void) - udp_do_one); - } - -+static const char *sctp_socket_type_str(int type) { -+ if(type>=0 && type=0 && state=0 && state<=10) -+ return tcp_state[state]; -+ else { -+ static char state_str_buf[64]; -+ sprintf(state_str_buf,"UNKNOWN(%d)",state); -+ return state_str_buf; -+ } -+} -+ -+static struct aftype *process_sctp_addr_str(const char *addr_str, struct sockaddr *sa) -+{ -+ if (strchr(addr_str,':')) { -+#if HAVE_AFINET6 -+ extern struct aftype inet6_aftype; -+ /* Demangle what the kernel gives us */ -+ struct in6_addr in6; -+ char addr6_str[INET6_ADDRSTRLEN]; -+ unsigned u0,u1,u2,u3,u4,u5,u6,u7; -+ sscanf(addr_str, "%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X", -+ &u0, &u1, &u2, &u3, &u4, &u5, &u6, &u7); -+ in6.s6_addr16[0] = htons(u0); -+ in6.s6_addr16[1] = htons(u1); -+ in6.s6_addr16[2] = htons(u2); -+ in6.s6_addr16[3] = htons(u3); -+ in6.s6_addr16[4] = htons(u4); -+ in6.s6_addr16[5] = htons(u5); -+ in6.s6_addr16[6] = htons(u6); -+ in6.s6_addr16[7] = htons(u7); -+ -+ inet_ntop(AF_INET6, &in6, addr6_str, sizeof(addr6_str)); -+ inet6_aftype.input(1, addr6_str, sa); -+ sa->sa_family = AF_INET6; -+#endif -+ } else { -+ ((struct sockaddr_in*)sa)->sin_addr.s_addr = inet_addr(addr_str); -+ sa->sa_family = AF_INET; -+ } -+ return get_afntype(sa->sa_family); -+} -+ -+static void sctp_eps_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, port; -+ int uid; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr; -+#else -+ struct sockaddr_in localaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *lport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ -+ if(lnr == 0) { -+ /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ lport_str=strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ port = atoi(lport_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary address */ -+ char local_addr[64]; -+ char local_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ int first=1; -+ char local_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ for(this_local_addr=strtok(laddrs_str," \t\n"); -+ this_local_addr; -+ this_local_addr=strtok(0," \t\n")) -+ { -+ char local_addr[64]; -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp "); -+ else -+ printf(" "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ first = 0; -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static void sctp_assoc_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, state2, lport,rport; -+ int uid; -+ unsigned rxqueue,txqueue; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr,remoteaddr; -+#else -+ struct sockaddr_in localaddr,remoteaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *st_str; -+ const char *txqueue_str; -+ const char *rxqueue_str; -+ const char *lport_str,*rport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ const char *praddr_str; -+ char *raddrs_str; -+ -+ if(lnr == 0) { -+ /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ st_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ txqueue_str = strtok(0," \t\n"); -+ rxqueue_str = strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ lport_str=strtok(0," \t\n"); -+ rport_str=strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ praddr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"<->\t\n"); -+ raddrs_str=strtok(0,"<->\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ state2 = atoi(st_str); -+ txqueue = atoi(txqueue_str); -+ rxqueue = atoi(rxqueue_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ lport = atoi(lport_str); -+ rport = atoi(rport_str); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary addresses */ -+ char local_addr[64]; -+ char local_port[16]; -+ char remote_addr[64]; -+ char remote_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp"); -+ printf(" %6u %6u ", rxqueue, txqueue); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-23s", buffer); -+ printf(" "); -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ printf("%-23s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ const char *this_remote_addr; -+ char *ss1,*ss2; -+ int first=1; -+ char local_port[16]; -+ char remote_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -+ while(this_local_addr || this_remote_addr) { -+ char local_addr[64]; -+ char remote_addr[64]; -+ if(this_local_addr) { -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ } -+ if(this_remote_addr) { -+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ } -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp %6u %6u ", rxqueue, txqueue); -+ else -+ printf(" "); -+ if(this_local_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ else -+ sprintf(buffer,"%s", local_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ printf(" "); -+ if(this_remote_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ else -+ sprintf(buffer,"%s", remote_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ -+ first = 0; -+ this_local_addr=strtok_r(0," \t\n",&ss1); -+ this_remote_addr=strtok_r(0," \t\n",&ss2); -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static int sctp_info_eps(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_EPS) -+#define _PATH_PROCNET_SCTP_EPS "/proc/net/sctp/eps" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_EPS, "AF INET (sctp)", -+ sctp_eps_do_one); -+} -+ -+static int sctp_info_assocs(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_ASSOCS) -+#define _PATH_PROCNET_SCTP_ASSOCS "/proc/net/sctp/assocs" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_ASSOCS, "AF INET (sctp)", -+ sctp_assoc_do_one); -+} -+ -+static int sctp_info(void) -+{ -+ if(flag_all) -+ sctp_info_eps(); -+ return sctp_info_assocs(); -+} -+ - static void raw_do_one(int lnr, const char *line) - { - char buffer[8192], local_addr[64], rem_addr[64]; -@@ -1558,7 +1941,7 @@ static void usage(void) - fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); - fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); - -- fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); -+ fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); - fprintf(stderr, _(" =Use '-6|-4' or '-A ' or '--'; default: %s\n"), DFLT_AF); - fprintf(stderr, _(" List of possible address families (which support routing):\n")); - print_aflist(1); /* 1 = routeable */ -@@ -1583,6 +1966,7 @@ int main - {"protocol", 1, 0, 'A'}, - {"tcp", 0, 0, 't'}, - {"udp", 0, 0, 'u'}, -+ {"sctp", 0, 0, 'S' }, - {"raw", 0, 0, 'w'}, - {"unix", 0, 0, 'x'}, - {"listening", 0, 0, 'l'}, -@@ -1613,7 +1997,7 @@ int main - getroute_init(); /* Set up AF routing support */ - - afname[0] = '\0'; -- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuWVv?wxl64", longopts, &lop)) != EOF) -+ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuSWVv?wxl64", longopts, &lop)) != EOF) - switch (i) { - case -1: - break; -@@ -1705,10 +2089,12 @@ int main - case 't': - flag_tcp++; - break; -- - case 'u': - flag_udp++; - break; -+ case 'S': -+ flag_sctp++; -+ break; - case 'w': - flag_raw++; - break; -@@ -1726,13 +2112,13 @@ int main - if (flag_int + flag_rou + flag_mas + flag_sta > 1) - usage(); - -- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw)) -- flag_tcp = flag_udp = flag_raw = 1; -+ if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw)) -+ flag_tcp = flag_udp = flag_sctp = flag_raw = 1; - -- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) -+ if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) - flag_inet = flag_inet6 = 1; - -- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx -+ flag_arg = flag_tcp + flag_udp + flag_sctp + flag_raw + flag_unx + flag_ipx - + flag_ax25 + flag_netrom + flag_igmp + flag_x25; - - if (flag_mas) { -@@ -1760,7 +2146,7 @@ int main - char buf[256]; - if (!afname[0]) { - inittab(); -- parsesnmp(flag_raw, flag_tcp, flag_udp); -+ parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); - } else { - safe_strncpy(buf, afname, sizeof(buf)); - tmp1 = buf; -@@ -1815,7 +2201,7 @@ int main - return (i); - } - for (;;) { -- if (!flag_arg || flag_tcp || flag_udp || flag_raw) { -+ if (!flag_arg || flag_tcp || flag_udp || flag_sctp || flag_raw) { - #if HAVE_AFINET - prg_cache_load(); - printf(_("Active Internet connections ")); /* xxx */ -@@ -1854,6 +2240,11 @@ int main - if (i) - return (i); - } -+ if (!flag_arg || flag_sctp) { -+ i = sctp_info(); -+ if (i) -+ return (i); -+ } - if (!flag_arg || flag_raw) { - i = raw_info(); - if (i) -Index: net-tools-1.60/statistics.c -=================================================================== ---- net-tools-1.60.orig/statistics.c -+++ net-tools-1.60/statistics.c -@@ -21,7 +21,7 @@ - #define UFWARN(x) - #endif - --int print_static,f_raw,f_tcp,f_udp,f_unknown = 1; -+int print_static,f_raw,f_tcp,f_udp,f_sctp,f_unknown = 1; - - enum State { - number = 0, opt_number, i_forward, i_inp_icmp, i_outp_icmp, i_rto_alg, -@@ -297,6 +297,27 @@ struct entry Tcpexttab[] = - { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number }, - }; - -+struct entry Sctptab[] = -+{ -+ {"SctpCurrEstab", N_("%u Current Associations"), number}, -+ {"SctpActiveEstabs", N_("%u Active Associations"), number}, -+ {"SctpPassiveEstabs", N_("%u Passive Associations"), number}, -+ {"SctpAborteds", N_("%u Number of Aborteds "), number}, -+ {"SctpShutdowns", N_("%u Number of Graceful Terminations"), number}, -+ {"SctpOutOfBlues", N_("%u Number of Out of Blue packets"), number}, -+ {"SctpChecksumErrors", N_("%u Number of Packets with invalid Checksum"), number}, -+ {"SctpOutCtrlChunks", N_("%u Number of control chunks sent"), number}, -+ {"SctpOutOrderChunks", N_("%u Number of ordered chunks sent"), number}, -+ {"SctpOutUnorderChunks", N_("%u Number of Unordered chunks sent"), number}, -+ {"SctpInCtrlChunks", N_("%u Number of control chunks received"), number}, -+ {"SctpInOrderChunks", N_("%u Number of ordered chunks received"), number}, -+ {"SctpInUnorderChunks", N_("%u Number of Unordered chunks received"), number}, -+ {"SctpFragUsrMsgs", N_("%u Number of messages fragmented"), number}, -+ {"SctpReasmUsrMsgs", N_("%u Number of messages reassembled "), number}, -+ {"SctpOutSCTPPacks", N_("%u Number of SCTP packets sent"), number}, -+ {"SctpInSCTPPacks", N_("%u Number of SCTP packets received"), number}, -+}; -+ - struct tabtab { - char *title; - struct entry *tab; -@@ -310,6 +331,7 @@ struct tabtab snmptabs[] = - {"Icmp", Icmptab, sizeof(Icmptab), &f_raw}, - {"Tcp", Tcptab, sizeof(Tcptab), &f_tcp}, - {"Udp", Udptab, sizeof(Udptab), &f_udp}, -+ {"Sctp", Sctptab, sizeof(Sctptab), &f_sctp}, - {"TcpExt", Tcpexttab, sizeof(Tcpexttab), &f_tcp}, - {NULL} - }; -@@ -499,12 +521,40 @@ void process6_fd(FILE *f) - - } - --void parsesnmp(int flag_raw, int flag_tcp, int flag_udp) -+/* Process a file with name-value lines (like /proc/net/sctp/snmp) */ -+void process_fd2(FILE *f, const char *filename) -+{ -+ char buf1[1024]; -+ char *sp; -+ struct tabtab *tab; -+ -+ tab = newtable(snmptabs, "Sctp"); -+ -+ while (fgets(buf1, sizeof buf1, f)) { -+ sp = buf1 + strcspn(buf1, " \t\n"); -+ if (!sp) -+ goto formaterr; -+ *sp = '\0'; -+ sp++; -+ -+ sp += strspn(sp, " \t\n"); -+ -+ if (*sp != '\0' && *(tab->flag)) -+ printval(tab, buf1, strtoul(sp, 0, 10)); -+ } -+ return; -+ -+formaterr: -+ fprintf(stderr,_("error parsing %s\n"), filename); -+ return; -+} -+ -+void parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp) - { - FILE *f; - -- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; -- -+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp; -+ - f = proc_fopen("/proc/net/snmp"); - if (!f) { - perror(_("cannot open /proc/net/snmp")); -@@ -530,6 +580,16 @@ void parsesnmp(int flag_raw, int flag_tc - - fclose(f); - } -+ -+ f = fopen("/proc/net/sctp/snmp", "r"); -+ if (f) { -+ process_fd2(f,"/proc/net/sctp/snmp"); -+ if (ferror(f)) -+ perror("/proc/net/sctp/snmp"); -+ -+ fclose(f); -+ } -+ - return; - } - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch deleted file mode 100644 index d34e65132..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 14287b594e1f02b811f889fb515c1a51b72c08d4 Mon Sep 17 00:00:00 2001 -From: Li Zhou -Date: Thu, 14 Jan 2016 17:07:48 +0800 -Subject: [PATCH 2/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou ---- - netstat.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/netstat.c b/netstat.c -index 5d1a4a1..56a15c2 100644 ---- a/netstat.c -+++ b/netstat.c -@@ -2104,7 +2104,7 @@ int main - usage(); - - if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw)) -- flag_tcp = flag_udp = flag_sctp = flag_raw = 1; -+ flag_tcp = flag_udp = flag_raw = 1; - - if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) - flag_inet = flag_inet6 = 1; --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch deleted file mode 100644 index 8b2ecab70..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch +++ /dev/null @@ -1,363 +0,0 @@ -From 1d386279a449a1a6b96b88a71f35bf13b14b2c2c Mon Sep 17 00:00:00 2001 -From: Li Zhou -Date: Thu, 14 Jan 2016 17:11:24 +0800 -Subject: [PATCH 3/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou ---- - netstat.c | 282 ++++++++++++++++++++++++-------------------------------------- - 1 file changed, 108 insertions(+), 174 deletions(-) - -diff --git a/netstat.c b/netstat.c -index 56a15c2..86adadb 100644 ---- a/netstat.c -+++ b/netstat.c -@@ -1095,23 +1095,21 @@ static void sctp_eps_do_one(int lnr, char *line) - const char *lport_str; - const char *uid_str; - const char *inode_str; -- const char *pladdr_str; - char *laddrs_str; - - if(lnr == 0) { -- /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/ -+ /* ENDPT SOCK STY SST HBKT LPORT UID INODE LADDRS */ - return; - } - -- strtok(line," \t\n"); /*skip ptr*/ -- strtok(0," \t\n"); /*skip ptr*/ -+ strtok(line," \t\n"); /*skip endpt*/ -+ strtok(0," \t\n"); /*skip sock*/ - sty_str = strtok(0," \t\n"); - sst_str = strtok(0," \t\n"); - strtok(0," \t\n"); /*skip hash bucket*/ - lport_str=strtok(0," \t\n"); - uid_str = strtok(0," \t\n"); - inode_str = strtok(0," \t\n"); -- pladdr_str = strtok(0," \t\n"); - laddrs_str=strtok(0,"\t\n"); - - type = atoi(sty_str); -@@ -1119,61 +1117,35 @@ static void sctp_eps_do_one(int lnr, char *line) - port = atoi(lport_str); - uid = atoi(uid_str); - inode = strtoul(inode_str,0,0); -- -- if(flag_sctp<=1) { -- /* only print the primary address */ -- char local_addr[64]; -- char local_port[16]; -- -- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(port), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- printf("sctp "); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-47s", buffer); -- printf(" %-12s", sctp_socket_state_str(state)); -- } else { -- /*print all addresses*/ -- const char *this_local_addr; -- int first=1; -- char local_port[16]; -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(port), "sctp", -- flag_not & FLAG_NUM_PORT)); -- for(this_local_addr=strtok(laddrs_str," \t\n"); -- this_local_addr; -- this_local_addr=strtok(0," \t\n")) -- { -- char local_addr[64]; -- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); - -- if(!first) printf("\n"); -- if(first) -- printf("sctp "); -- else -- printf(" "); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-47s", buffer); -- printf(" %-12s", first?sctp_socket_state_str(state):""); -- first = 0; -- } -+ const char *this_local_addr; -+ int first=1; -+ char local_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", flag_not & FLAG_NUM_PORT)); -+ for(this_local_addr=strtok(laddrs_str," \t\n"); -+ this_local_addr; -+ this_local_addr=strtok(0," \t\n")) -+ { -+ char local_addr[64]; -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp "); -+ else -+ printf(" "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-55s", buffer); -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ first = 0; - } -- - finish_this_one(uid,inode,""); - } - -@@ -1199,32 +1171,29 @@ static void sctp_assoc_do_one(int lnr, char *line) - const char *lport_str,*rport_str; - const char *uid_str; - const char *inode_str; -- const char *pladdr_str; - char *laddrs_str; -- const char *praddr_str; - char *raddrs_str; -- -+ - if(lnr == 0) { -- /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/ -+ /* ASSOC SOCK STY SST ST HBKT ASSOC-ID TX_QUEUE RX_QUEUE UID INODE LPORT RPORT LADDRS <-> RADDRS */ - return; - } -- -- strtok(line," \t\n"); /*skip ptr*/ -- strtok(0," \t\n"); /*skip ptr*/ -+ -+ strtok(line," \t\n"); /*skip assoc*/ -+ strtok(0," \t\n"); /*skip sock*/ - sty_str = strtok(0," \t\n"); - sst_str = strtok(0," \t\n"); - st_str = strtok(0," \t\n"); - strtok(0," \t\n"); /*skip hash bucket*/ -+ strtok(0," \t\n"); /*skip hash assoc-id*/ - txqueue_str = strtok(0," \t\n"); - rxqueue_str = strtok(0," \t\n"); - uid_str = strtok(0," \t\n"); - inode_str = strtok(0," \t\n"); - lport_str=strtok(0," \t\n"); - rport_str=strtok(0," \t\n"); -- pladdr_str = strtok(0," \t\n"); -- praddr_str = strtok(0," \t\n"); -- laddrs_str=strtok(0,"<->\t\n"); -- raddrs_str=strtok(0,"<->\t\n"); -+ laddrs_str = strtok(0,"<->\t\n"); -+ raddrs_str = strtok(0,"<->\t\n"); - - type = atoi(sty_str); - state = atoi(sst_str); -@@ -1235,116 +1204,81 @@ static void sctp_assoc_do_one(int lnr, char *line) - inode = strtoul(inode_str,0,0); - lport = atoi(lport_str); - rport = atoi(rport_str); -- -- if(flag_sctp<=1) { -- /* only print the primary addresses */ -- char local_addr[64]; -- char local_port[16]; -- char remote_addr[64]; -- char remote_port[16]; -- -- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(lport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr); -- if(ap) -- safe_strncpy(remote_addr, -- ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -- sizeof(remote_addr)); -- else -- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -- -- snprintf(remote_port, sizeof(remote_port), "%s", -- get_sname(htons(rport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- printf("sctp"); -- printf(" %6u %6u ", rxqueue, txqueue); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-23s", buffer); -- printf(" "); -- sprintf(buffer,"%s:%s", remote_addr, remote_port); -- printf("%-23s", buffer); -- printf(" %-12s", sctp_socket_state_str(state)); -- } else { -- /*print all addresses*/ -- const char *this_local_addr; -- const char *this_remote_addr; -- char *ss1,*ss2; -- int first=1; -- char local_port[16]; -- char remote_port[16]; -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(lport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- snprintf(remote_port, sizeof(remote_port), "%s", -- get_sname(htons(rport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -- this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -- while(this_local_addr || this_remote_addr) { -- char local_addr[64]; -- char remote_addr[64]; -- if(this_local_addr) { -- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- } -- if(this_remote_addr) { -- ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -- if(ap) -- safe_strncpy(remote_addr, -- ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -- sizeof(remote_addr)); -- else -- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -- } - -- if(!first) printf("\n"); -- if(first) -- printf("sctp %6u %6u ", rxqueue, txqueue); -- else -- printf(" "); -- if(this_local_addr) { -- if(first) -- sprintf(buffer,"%s:%s", local_addr, local_port); -+ /*print all addresses*/ -+ const char *this_local_addr; -+ const char *this_remote_addr; -+ char *ss1,*ss2; -+ int first=1; -+ char local_port[16]; -+ char remote_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -+ while(this_local_addr || this_remote_addr) { -+ char local_addr[64]; -+ char remote_addr[64]; -+ -+ if(this_local_addr) { -+ if (this_local_addr[0] == '*') { -+ /* skip * */ -+ this_local_addr++; -+ } -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), sizeof(local_addr)); - else -- sprintf(buffer,"%s", local_addr); -- printf("%-23s", buffer); -- } else -- printf("%-23s", ""); -- printf(" "); -- if(this_remote_addr) { -- if(first) -- sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ } -+ if(this_remote_addr) { -+ if (this_remote_addr[0] == '*') { -+ /* skip * */ -+ this_remote_addr++; -+ } -+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), sizeof(remote_addr)); - else -- sprintf(buffer,"%s", remote_addr); -- printf("%-23s", buffer); -- } else -- printf("%-23s", ""); -- -- printf(" %-12s", first?sctp_socket_state_str(state):""); -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ } - -- first = 0; -- this_local_addr=strtok_r(0," \t\n",&ss1); -- this_remote_addr=strtok_r(0," \t\n",&ss2); -- } -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp %6u %6u ", rxqueue, txqueue); -+ else -+ printf(" "); -+ if(this_local_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ else -+ sprintf(buffer,"%s", local_addr); -+ printf("%-27s", buffer); -+ } else -+ printf("%-27s", ""); -+ printf(" "); -+ if(this_remote_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ else -+ sprintf(buffer,"%s", remote_addr); -+ printf("%-27s", buffer); -+ } else -+ printf("%-27s", ""); -+ -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ -+ first = 0; -+ this_local_addr=strtok_r(0," \t\n",&ss1); -+ this_remote_addr=strtok_r(0," \t\n",&ss2); - } -- - finish_this_one(uid,inode,""); - } - --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch deleted file mode 100644 index 505eeb048..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 4d56645ea144a34f7cdd3e3ede6452d81fbae251 Mon Sep 17 00:00:00 2001 -From: Randy MacLeod -Date: Sat, 8 Oct 2016 14:42:54 +0800 -Subject: [PATCH] iptunnel.c: include linux/ip.h to fix building with linux-4.8 - -Fix a build error when using the linux-4.8 headers that results in: - -In file included from -.../sysroots/qemuarm64/usr/include/linux/if_tunnel.h:6:0, - from iptunnel.c:39: -.../qemuarm64/usr/include/linux/ip.h:85:8: error: redefinition of -'struct iphdr' - struct iphdr { - ^~~~~ -In file included from iptunnel.c:29:0: -.../qemuarm64/usr/include/netinet/ip.h:44:8: note: originally defined here - struct iphdr - ^~~~~ - -Upstream-Status: Submitted [1] - -[1] https://sourceforge.net/p/net-tools/mailman/message/35413022/ - -Signed-off-by: Randy MacLeod -Signed-off-by: Jackie Huang ---- - iptunnel.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/iptunnel.c b/iptunnel.c -index 4943d83..acfcbc7 100644 ---- a/iptunnel.c -+++ b/iptunnel.c -@@ -26,7 +26,6 @@ - #include - #include - #include --#include - #include - #if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)) - #include -@@ -36,6 +35,7 @@ - #include - #endif - #include -+#include - #include - - #include "config.h" --- -2.8.3 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb b/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb new file mode 100644 index 000000000..e97731073 --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb @@ -0,0 +1,110 @@ +SUMMARY = "Basic networking tools" +DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system" +HOMEPAGE = "http://net-tools.berlios.de/" +BUGTRACKER = "http://bugs.debian.org/net-tools" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba" + +PV = "1.60-20181103+git${SRCPV}" +SRCREV = "0eebece8c964e3cfa8a018f42b2e7e751a7009a0" +SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https \ + file://net-tools-config.h \ + file://net-tools-config.make \ + file://Add_missing_headers.patch \ + file://Bug_443075-ifconfig.c-pointtopoint_spelling.patch \ + file://Bug_541172-netstat.c-exit-codes.patch \ +" + +UPSTREAM_VERSION_UNKNOWN = "1" + +S = "${WORKDIR}/git" + +inherit gettext + +# The Makefile is lame, no parallel build +PARALLEL_MAKE = "" + +PACKAGECONFIG ??= "hostname arp serial plip" +PACKAGECONFIG[hostname] = "" +PACKAGECONFIG[arp] = "" +PACKAGECONFIG[serial] = "" +PACKAGECONFIG[plip] = "" + +do_configure() { + # net-tools has its own config mechanism requiring "make config" + # we pre-generate desired options and copy to source directory instead + cp ${WORKDIR}/net-tools-config.h ${S}/config.h + cp ${WORKDIR}/net-tools-config.make ${S}/config.make + + if [ "${USE_NLS}" = "no" ]; then + sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make + fi + + if ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'true', 'false', d)} ; then + echo "#define HAVE_HOSTNAME_TOOLS 1" >> ${S}/config.h + echo "#define HAVE_HOSTNAME_SYMLINKS 1" >> ${S}/config.h + echo "HAVE_HOSTNAME_TOOLS=1" >> ${S}/config.make + echo "HAVE_HOSTNAME_SYMLINKS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'true', 'false', d)} ; then + echo "#define HAVE_ARP_TOOLS 1" >> ${S}/config.h + echo "HAVE_ARP_TOOLS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'true', 'false', d)} ; then + echo "#define HAVE_SERIAL_TOOLS 1" >> ${S}/config.h + echo "HAVE_SERIAL_TOOLS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'true', 'false', d)} ; then + echo "#define HAVE_PLIP_TOOLS 1" >> ${S}/config.h + echo "HAVE_PLIP_TOOLS=1" >> ${S}/config.make + fi +} + +do_compile() { + # net-tools use COPTS/LOPTS to allow adding custom options + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" +} + +do_install() { + # We don't need COPTS or LOPTS, but let's be consistent. + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install + + if [ "${base_bindir}" != "/bin" ]; then + mkdir -p ${D}/${base_bindir} + mv ${D}/bin/* ${D}/${base_bindir}/ + rmdir ${D}/bin + fi + if [ "${base_sbindir}" != "/sbin" ]; then + mkdir ${D}/${base_sbindir} + mv ${D}/sbin/* ${D}/${base_sbindir}/ + rmdir ${D}/sbin + fi +} + +inherit update-alternatives + +base_sbindir_progs = "ipmaddr iptunnel mii-tool nameif \ + ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'arp rarp', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'plipconfig', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'slattach', '', d)} \ +" +base_bindir_progs = "ifconfig netstat route \ + ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'dnsdomainname domainname hostname nisdomainname ypdomainname', '', d)} \ +" + +ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}" +ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}" +ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" +ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" +ALTERNATIVE_PRIORITY[hostname.1] = "10" + +python __anonymous() { + for prog in d.getVar('base_sbindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog)) + for prog in d.getVar('base_bindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) +} +ALTERNATIVE_PRIORITY = "100" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb deleted file mode 100644 index 8bd30fc6d..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb +++ /dev/null @@ -1,132 +0,0 @@ -SUMMARY = "Basic networking tools" -DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system" -HOMEPAGE = "http://net-tools.berlios.de/" -BUGTRACKER = "http://bugs.debian.org/net-tools" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba" - -SRC_URI = "http://snapshot.debian.org/archive/debian/20050312T000000Z/pool/main/n/${BPN}/${BPN}_1.60.orig.tar.gz;name=tarball \ - http://snapshot.debian.org/archive/debian//20150831T093342Z/pool/main/n/${BPN}/${BPN}_${PV}.diff.gz;apply=no;name=patch \ - file://net-tools-config.h \ - file://net-tools-config.make \ - file://ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch \ - file://musl-fixes.patch \ - file://net-tools-1.60-sctp1.patch \ - file://net-tools-1.60-sctp2-quiet.patch \ - file://net-tools-1.60-sctp3-addrs.patch \ - file://0001-lib-inet6.c-INET6_rresolve-various-fixes.patch \ - file://net-tools-fix-building-with-linux-4.8.patch \ - file://0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch \ - " - -# for this package we're mostly interested in tracking debian patches, -# and not in the upstream version where all development has effectively stopped -UPSTREAM_CHECK_REGEX = "(?P((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)" - -S = "${WORKDIR}/net-tools-1.60" - -SRC_URI[tarball.md5sum] = "ecaf37acb5b5daff4bdda77785fd916d" -SRC_URI[tarball.sha256sum] = "ec67967cf7b1a3a3828a84762fbc013ac50ee5dc9aa3095d5c591f302c2de0f5" - -SRC_URI[patch.md5sum] = "ea3592f49ac8380962bc4d9b66c7e7e9" -SRC_URI[patch.sha256sum] = "aeeeafaff68866a446f01bb639d4e0146a60af34dcd20e31a3e46585022fc76c" - -# the package is taken from snapshots.debian.org; that source is static and goes stale -# so we check the latest upstream from a directory that does get updated -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/net-tools/" - -inherit gettext - -do_patch[depends] += "quilt-native:do_populate_sysroot" - -# The Makefile is lame, no parallel build -PARALLEL_MAKE = "" - -# Unlike other Debian packages, net-tools *.diff.gz contains another series of -# patches maintained by quilt. So manually apply them before applying other local -# patches. Also remove all temp files before leaving, because do_patch() will pop -# up all previously applied patches in the start -nettools_do_patch() { - cd ${S} - # it's important that we only pop the existing patches when they've - # been applied, otherwise quilt will climb the directory tree - # and reverse out some completely different set of patches - if [ -d ${S}/patches ]; then - # whilst this is the default directory, doing it like this - # defeats the directory climbing that quilt will otherwise - # do; note the directory must exist to defeat this, hence - # the test inside which we operate - QUILT_PATCHES=${S}/patches quilt pop -a - fi - if [ -d ${S}/.pc-nettools ]; then - rm -rf ${S}/.pc - mv ${S}/.pc-nettools ${S}/.pc - QUILT_PATCHES=${S}/debian/patches quilt pop -a - rm -rf ${S}/.pc ${S}/debian - fi - patch -p1 < ${WORKDIR}/${BPN}_${PV}.diff - QUILT_PATCHES=${S}/debian/patches quilt push -a - mv ${S}/.pc ${S}/.pc-nettools -} - -do_unpack[cleandirs] += "${S}" - -# We invoke base do_patch at end, to incorporate any local patch -python do_patch() { - bb.build.exec_func('nettools_do_patch', d) - bb.build.exec_func('patch_do_patch', d) -} - -do_configure() { - # net-tools has its own config mechanism requiring "make config" - # we pre-generate desired options and copy to source directory instead - cp ${WORKDIR}/net-tools-config.h ${S}/config.h - cp ${WORKDIR}/net-tools-config.make ${S}/config.make - - if [ "${USE_NLS}" = "no" ]; then - sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make - fi -} - -do_compile() { - # net-tools use COPTS/LOPTS to allow adding custom options - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" -} - -do_install() { - # We don't need COPTS or LOPTS, but let's be consistent. - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install - - if [ "${base_bindir}" != "/bin" ]; then - mkdir -p ${D}/${base_bindir} - mv ${D}/bin/* ${D}/${base_bindir}/ - rmdir ${D}/bin - fi - if [ "${base_sbindir}" != "/sbin" ]; then - mkdir ${D}/${base_sbindir} - mv ${D}/sbin/* ${D}/${base_sbindir}/ - rmdir ${D}/sbin - fi -} - -inherit update-alternatives - -base_sbindir_progs = "arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig rarp route slattach" -base_bindir_progs = "dnsdomainname domainname hostname netstat nisdomainname ypdomainname" - -ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}" -ALTERNATIVE_${PN}-doc += "hostname.1 dnsdomainname.1" -ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" -ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" -ALTERNATIVE_PRIORITY[hostname.1] = "10" - -python __anonymous() { - for prog in d.getVar('base_sbindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog)) - for prog in d.getVar('base_bindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) -} -ALTERNATIVE_PRIORITY = "100" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb b/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb index e321cd2b2..d24035b67 100644 --- a/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb +++ b/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb @@ -28,4 +28,4 @@ do_install() { install -m 0755 pbzip2 ${D}${bindir}/ } -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb deleted file mode 100644 index 8ea0476db..000000000 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ - file://no_daddr_t.patch \ - " -SRC_URI[sha256sum] = "6a333650fb5c85c5221f10d2cf890e9fc56530696e118d975fbbe96126c06963" - -DEPENDS = "coreutils-native" - -PROVIDES = "stress" -RPROVIDES_${PN} = "stress" -RREPLACES_${PN} = "stress" -RCONFLICTS_${PN} = "stress" - -inherit bash-completion - -do_install() { - oe_runmake DESTDIR=${D} install -} - diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.18.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.18.bb new file mode 100644 index 000000000..c668d8cbd --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.18.bb @@ -0,0 +1,27 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + file://no_daddr_t.patch \ + " +SRC_URI[sha256sum] = "07c82a5c89538b5b696a79192faa70d0232352004c9e532946f7f3613d0adf23" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install + ln -s stress-ng ${D}${bindir}/stress +} + diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb deleted file mode 100644 index d6bc1a9c3..000000000 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb +++ /dev/null @@ -1,47 +0,0 @@ -require sudo.inc - -SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - " - -PAM_SRC_URI = "file://sudo.pam" - -SRC_URI[sha256sum] = "294116cefe10a02773917fc7440d8384b925955bc96a6e0eaa1977c83b34adff" - -DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" - -CACHED_CONFIGUREVARS = " \ - ac_cv_type_rsize_t=no \ - ac_cv_path_MVPROG=${base_bindir}/mv \ - ac_cv_path_BSHELLPROG=${base_bindir}/sh \ - ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ - ac_cv_path_VIPROG=${base_bindir}/vi \ - " - -EXTRA_OECONF += " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ - --with-rundir=/run/sudo \ - --with-vardir=/var/lib/sudo \ - " - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo - if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then - echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo - sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers - fi - fi - - chmod 4111 ${D}${bindir}/sudo - chmod 0440 ${D}${sysconfdir}/sudoers - - # Explicitly remove the /sudo directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo -} - -FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" -FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ - ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb new file mode 100644 index 000000000..5756b2e14 --- /dev/null +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb @@ -0,0 +1,47 @@ +require sudo.inc + +SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + " + +PAM_SRC_URI = "file://sudo.pam" + +SRC_URI[sha256sum] = "7c98d201f181c47152711b9f391e0f6b5545f3ef8926298a3e8bc6288e118314" + +DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" + +CACHED_CONFIGUREVARS = " \ + ac_cv_type_rsize_t=no \ + ac_cv_path_MVPROG=${base_bindir}/mv \ + ac_cv_path_BSHELLPROG=${base_bindir}/sh \ + ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ + ac_cv_path_VIPROG=${base_bindir}/vi \ + " + +EXTRA_OECONF += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-rundir=/run/sudo \ + --with-vardir=/var/lib/sudo \ + " + +do_install_append () { + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo + if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then + echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo + sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers + fi + fi + + chmod 4111 ${D}${bindir}/sudo + chmod 0440 ${D}${sysconfdir}/sudoers + + # Explicitly remove the /sudo directory to avoid QA error + rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo +} + +FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" +FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ + ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch b/poky/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch new file mode 100644 index 000000000..4bf5bfba9 --- /dev/null +++ b/poky/meta/recipes-gnome/gcr/gcr/0001-meson-Make-sure-gcr-oids.h-is-built.patch @@ -0,0 +1,36 @@ +From 9fca6ae0aa7355c27d0922c561b9fbe18dde5b3d Mon Sep 17 00:00:00 2001 +From: Niels De Graef +Date: Fri, 19 Jun 2020 22:37:31 +0200 +Subject: [PATCH 1/1] meson: Make sure gcr-oids.h is built + +Fixes https://gitlab.gnome.org/GNOME/gcr/-/issues/48 +--- + gcr/meson.build | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- end of original header --- + +Upstream-Status: Backport [https://github.com/GNOME/gcr.git] + +Signed-off-by: Joe Slater + +--- +diff --git a/gcr/meson.build b/gcr/meson.build +index 199452f..06c3a63 100644 +--- a/gcr/meson.build ++++ b/gcr/meson.build +@@ -178,7 +178,10 @@ endif + gcr_base_dep = declare_dependency( + link_with: gcr_base_lib, + include_directories: include_directories('..'), +- sources: gcr_enums_gen[1], # Make sure gcr-enum-types-base.h can be included ++ sources: [ ++ gcr_enums_gen[1], ++ gcr_oids[1], ++ ], + ) + + if get_option('introspection') +-- +2.7.4 + diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb b/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb index d5a88dfb3..ff455a68e 100644 --- a/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb +++ b/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb @@ -18,6 +18,8 @@ inherit gnomebase gtk-icon-cache gtk-doc features_check upstream-version-is-even REQUIRED_DISTRO_FEATURES = "x11" SRC_URI += " file://0001-meson.build-correctly-set-internal-vapi-dependencies.patch" +SRC_URI += " file://0001-meson-Make-sure-gcr-oids.h-is-built.patch" + SRC_URI[archive.md5sum] = "adc65563b6b458507b9a578a8b68fb61" SRC_URI[archive.sha256sum] = "aaf9bed017a2263c6145c89a1a84178f9f40f238426463e4ae486694ef5f6601" diff --git a/poky/meta/recipes-gnome/gnome/gconf/python3.patch b/poky/meta/recipes-gnome/gnome/gconf/python3.patch new file mode 100644 index 000000000..7c022a2e1 --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/gconf/python3.patch @@ -0,0 +1,60 @@ +gconf: use python3 + +Convert gsettings-schema-convert to use python3. + +Upstream-Status: Inappropriate [gconf is deprecated] + +Signed-off-by: Joe Slater + + +--- a/gsettings/gsettings-schema-convert ++++ b/gsettings/gsettings-schema-convert +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # vim: set ts=4 sw=4 et: coding=UTF-8 + # + # Copyright (c) 2010, Novell, Inc. +@@ -603,7 +603,7 @@ class SimpleSchemaParser: + for line in lines: + current_line_nb += 1 + self.parse_line(line) +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + raise GSettingsSchemaConvertException('%s:%s: %s' % (os.path.basename(self.file), current_line_nb, e)) + + return self.root +@@ -1095,7 +1095,7 @@ def main(args): + try: + parser = GConfSchemaParser(argfile, options.gettext_domain, options.schema_id, options.keep_underscores) + schema_root = parser.parse() +- except SyntaxError, e: ++ except SyntaxError as e: + raise GSettingsSchemaConvertException('\'%s\' does not look like a valid gconf schema file: %s' % (argfile, e)) + else: + # autodetect if file is XML or not +@@ -1104,7 +1104,7 @@ def main(args): + schema_root = parser.parse() + if not options.simple and not options.xml: + options.simple = True +- except SyntaxError, e: ++ except SyntaxError as e: + parser = SimpleSchemaParser(argfile) + schema_root = parser.parse() + if not options.simple and not options.xml: +@@ -1127,13 +1127,13 @@ def main(args): + fout = open(options.output, 'w') + fout.write(output) + fout.close() +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + fout.close() + if os.path.exists(options.output): + os.unlink(options.output) + raise e + +- except GSettingsSchemaConvertException, e: ++ except GSettingsSchemaConvertException as e: + print >> sys.stderr, '%s' % e + return 1 + diff --git a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb index b8466d483..ff365551d 100644 --- a/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb +++ b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -15,6 +15,7 @@ SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;na file://remove_plus_from_invalid_characters_list.patch \ file://unable-connect-dbus.patch \ file://create_config_directory.patch \ + file://python3.patch \ " SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c" @@ -52,6 +53,8 @@ FILES_${PN} += "${libdir}/GConf/* \ ${datadir}/dbus-1/services/*.service \ ${datadir}/dbus-1/system-services/*.service \ " +RDEPENDS_${PN} = "python3-xml" + FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd" BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb index 7eefdd3e2..4d80f00e1 100644 --- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.64.1.bb @@ -131,6 +131,11 @@ do_compile_prepend() { export GIR_EXTRA_LIBS_PATH=$B/.libs } +do_install_prepend() { + # This prevents g-ir-scanner from writing cache data to $HOME + export GI_SCANNER_DISABLE_CACHE=1 +} + # Our wrappers need to be available system-wide, because they will be used # to build introspection files for all other gobject-based packages do_install_append_class-target() { diff --git a/poky/meta/recipes-gnome/libhandy/libhandy_git.bb b/poky/meta/recipes-gnome/libhandy/libhandy_git.bb index 64258941e..9f7401464 100644 --- a/poky/meta/recipes-gnome/libhandy/libhandy_git.bb +++ b/poky/meta/recipes-gnome/libhandy/libhandy_git.bb @@ -2,7 +2,7 @@ SUMMARY = "A library full of GTK+ widgets for mobile phones" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -SRC_URI = "git://source.puri.sm/Librem5/${BPN}.git;protocol=https" +SRC_URI = "git://gitlab.gnome.org/GNOME/${BPN}.git;protocol=https" SRCREV = "7a193d7692c9c76a1a94f17c4d30b585f77d177c" S = "${WORKDIR}/git" PV = "0.0.13" diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb deleted file mode 100644 index 337299ff6..000000000 --- a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "Library for rendering SVG files" -DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ -associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ -Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ -the screen or to generate output for printing." -HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" -BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" - -RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6" - -SECTION = "x11/utils" -DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango" -BBCLASSEXTEND = "native nativesdk" - -inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection - -SRC_URI += "file://gtk-option.patch \ - file://0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch \ - file://0001-Remove-non-reproducible-SRCDIR.patch \ -" - -SRC_URI[archive.md5sum] = "4949d313b0c5d9161a5c259104af5568" -SRC_URI[archive.sha256sum] = "cff4dd3c3b78bfe99d8fcfad3b8ba1eee3289a0823c0e118d78106be6b84c92b" - -CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" - -PACKAGECONFIG ??= "gdkpixbuf" -# The gdk-pixbuf loader -PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" -# GTK+ test application (rsvg-view) -PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3" - -do_install_append() { - # Loadable modules don't need .a or .la on Linux - rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la -} - -PACKAGES =+ "librsvg-gtk rsvg" -FILES_rsvg = "${bindir}/rsvg* \ - ${datadir}/pixmaps/svg-viewer.svg \ - ${datadir}/themes" -FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \ - ${datadir}/thumbnailers/librsvg.thumbnailer" -RRECOMMENDS_librsvg-gtk = "gdk-pixbuf-bin" - -PIXBUF_PACKAGES = "librsvg-gtk" diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb new file mode 100644 index 000000000..acdbc1f1b --- /dev/null +++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb @@ -0,0 +1,49 @@ +SUMMARY = "Library for rendering SVG files" +DESCRIPTION = "A small library to render Scalable Vector Graphics (SVG), \ +associated with the GNOME Project. It renders SVG files to Cairo surfaces. \ +Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to \ +the screen or to generate output for printing." +HOMEPAGE = "https://gitlab.gnome.org/GNOME/librsvg" +BUGTRACKER = "https://gitlab.gnome.org/GNOME/librsvg/issues" + +RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6" + +SECTION = "x11/utils" +DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango" +BBCLASSEXTEND = "native nativesdk" + +inherit gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection + +SRC_URI += "file://gtk-option.patch \ + file://0001-Auto-detect-Bsymbolic-fixes-configure-on-macOS.patch \ + file://0001-Remove-non-reproducible-SRCDIR.patch \ +" + +SRC_URI[archive.sha256sum] = "f7628905f1cada84e87e2b14883ed57d8094dca3281d5bcb24ece4279e9a92ba" + +CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + +PACKAGECONFIG ??= "gdkpixbuf" +# The gdk-pixbuf loader +PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" +# GTK+ test application (rsvg-view) +PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3" + +do_install_append() { + # Loadable modules don't need .a or .la on Linux + rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la +} + +PACKAGES =+ "librsvg-gtk rsvg" +FILES_rsvg = "${bindir}/rsvg* \ + ${datadir}/pixmaps/svg-viewer.svg \ + ${datadir}/themes" +FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so \ + ${datadir}/thumbnailers/librsvg.thumbnailer" +RRECOMMENDS_librsvg-gtk = "gdk-pixbuf-bin" + +PIXBUF_PACKAGES = "librsvg-gtk" diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc b/poky/meta/recipes-graphics/cogl/cogl-1.0.inc index 1c5d0b79c..d581ad1c0 100644 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0.inc +++ b/poky/meta/recipes-graphics/cogl/cogl-1.0.inc @@ -21,7 +21,7 @@ EDEPENDS_GL = "virtual/libgl libdrm" EDEPENDS_GLES2 = "virtual/libgles2" EDEPENDS_KMS = "libdrm virtual/egl" EDEPENDS_EGL = "virtual/egl" -EDEPENDS_X11 = "virtual/libx11 libxcomposite libxfixes libxi libxrandr" +EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr" EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland" # Extra RDEPENDS for PACKAGECONFIG diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.8.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.8.bb deleted file mode 100644 index 3c4a5b5a2..000000000 --- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.6.8.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Text shaping library" -DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" -SECTION = "libs" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=8f787620b7d3866d9552fd1924c07572 \ - file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc" - -UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" -UPSTREAM_CHECK_REGEX = "harfbuzz-(?P\d+(\.\d+)+).tar" - -SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "c8d4f2aeed6e576bd42f9dc6def1b1ae" -SRC_URI[sha256sum] = "6648a571a27f186e47094121f0095e1b809e918b3037c630c7f38ffad86e3035" - -inherit autotools pkgconfig lib_package gtk-doc - -PACKAGECONFIG ??= "cairo fontconfig freetype glib icu" -PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo" -PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig" -PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype" -PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0" -PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2" -PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu" - -PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" - -LEAD_SONAME = "libharfbuzz.so" - -do_install_append() { - # If no tools are installed due to PACKAGECONFIG then this directory is - #still installed, so remove it to stop packaging wanings. - rmdir --ignore-fail-on-non-empty ${D}${bindir} -} - -FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" -FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ - ${libdir}/libharfbuzz-icu.so \ - ${libdir}/pkgconfig/harfbuzz-icu.pc \ -" -FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.1.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.1.bb new file mode 100644 index 000000000..08c8f8323 --- /dev/null +++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.1.bb @@ -0,0 +1,43 @@ +SUMMARY = "Text shaping library" +DESCRIPTION = "HarfBuzz is an OpenType text shaping engine." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz" +SECTION = "libs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f787620b7d3866d9552fd1924c07572 \ + file://src/hb-ucd.cc;beginline=1;endline=15;md5=29d4dcb6410429195df67efe3382d8bc" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" +UPSTREAM_CHECK_REGEX = "harfbuzz-(?P\d+(\.\d+)+).tar" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "e95ee43b6bd0d3d1307e2aacf0f9c0050e5baceb21988b367b833028114aa569" + +inherit autotools pkgconfig lib_package gtk-doc + +PACKAGECONFIG ??= "cairo fontconfig freetype glib icu" +PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo" +PACKAGECONFIG[fontconfig] = "--with-fontconfig,--without-fontconfig,fontconfig" +PACKAGECONFIG[freetype] = "--with-freetype,--without-freetype,freetype" +PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0" +PACKAGECONFIG[graphite] = "--with-graphite2,--without-graphite2,graphite2" +PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu" + +PACKAGES =+ "${PN}-icu ${PN}-icu-dev ${PN}-subset" + +LEAD_SONAME = "libharfbuzz.so" + +do_install_append() { + # If no tools are installed due to PACKAGECONFIG then this directory is + #still installed, so remove it to stop packaging wanings. + rmdir --ignore-fail-on-non-empty ${D}${bindir} +} + +FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*" +FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \ + ${libdir}/libharfbuzz-icu.so \ + ${libdir}/pkgconfig/harfbuzz-icu.pc \ +" +FILES_${PN}-subset = "${libdir}/libharfbuzz-subset.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch index 91e59d14e..ee171ad1c 100644 --- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch +++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch @@ -1,4 +1,4 @@ -From dd1d15c75f6ff8ee96cf1e7b74e582bff3183ef6 Mon Sep 17 00:00:00 2001 +From 65857eaee12a21a631750ffcd9e64e0afbbc3af0 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Thu, 14 Nov 2019 13:08:31 -0800 Subject: [PATCH] meson.build: make TLS ELF optional @@ -15,15 +15,15 @@ Signed-off-by: Alistair Francis 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 261b588..311436e 100644 +index c51dde9..c16f78f 100644 --- a/meson.build +++ b/meson.build @@ -392,7 +392,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat endif # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS. --if host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29) -+if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls') +-if not ['windows', 'freebsd'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29) ++if not ['windows', 'freebsd'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls') pre_args += '-DUSE_ELF_TLS' endif diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb deleted file mode 100644 index e50782be1..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb +++ /dev/null @@ -1,15 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" -PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" - -# When NOT using X11, we need to make sure we have swrast available. -DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.4.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.4.bb new file mode 100644 index 000000000..e50782be1 --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.4.bb @@ -0,0 +1,15 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" +PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" + +# When NOT using X11, we need to make sure we have swrast available. +DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index 4fe5f025e..8d8e5288a 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -23,7 +23,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ " -SRC_URI[sha256sum] = "283dff72814c8a80ce1ff8271e3f055895d26f4da3f4362acc49193e635780cb" +SRC_URI[sha256sum] = "6800271c2be2a0447510eb4e9b67edd9521859a4d565310617c4b359eb6799fe" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" @@ -121,6 +121,7 @@ PACKAGECONFIG[dri3] = "-Ddri3=true, -Ddri3=false, xorgproto libxshmfence" VULKAN_DRIVERS = "" VULKAN_DRIVERS_append_x86_class-target = ",intel" VULKAN_DRIVERS_append_x86-64_class-target = ",intel" +VULKAN_DRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${VULKAN_DRIVERS}, -Dvulkan-drivers=''," PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb deleted file mode 100644 index 96e8aa38d..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb +++ /dev/null @@ -1,2 +0,0 @@ -require ${BPN}.inc - diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.1.4.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.4.bb new file mode 100644 index 000000000..96e8aa38d --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa_20.1.4.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + diff --git a/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb index 70b32cf8f..3e1ba196b 100644 --- a/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb +++ b/poky/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb @@ -9,7 +9,7 @@ LICENSE = "BitstreamVera" LIC_FILES_CHKSUM = "file://COPYRIGHT.TXT;md5=27d7484b1e18d0ee4ce538644a3f04be" PR = "r7" -inherit fontcache +inherit allarch fontcache FONT_PACKAGES = "${PN}" diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb index 29b12628d..52821195d 100644 --- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb +++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb @@ -8,7 +8,7 @@ HOMEPAGE = "https://virgil3d.github.io/" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10" -DEPENDS = "libdrm mesa libepoxy" +DEPENDS = "libdrm virtual/libgl libepoxy" SRCREV = "7d204f3927be65fb3365dce01dbcd04d447a4985" SRC_URI = "git://anongit.freedesktop.org/virglrenderer \ file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \ diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.15.6.bb b/poky/meta/recipes-graphics/wayland/libinput_1.15.6.bb deleted file mode 100644 index f81cf7f03..000000000 --- a/poky/meta/recipes-graphics/wayland/libinput_1.15.6.bb +++ /dev/null @@ -1,50 +0,0 @@ -SUMMARY = "Library to handle input devices in Wayland compositors" -DESCRIPTION = "libinput is a library to handle input devices in Wayland \ -compositors and to provide a generic X.Org input driver. It provides \ -device detection, device handling, input device event processing and \ -abstraction so minimize the amount of custom input code compositors need to \ -provide the common set of functionality that users expect." -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" - -DEPENDS = "libevdev udev mtdev libcheck" - -SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ - file://run-ptest \ - file://determinism.patch \ - " -SRC_URI[md5sum] = "b2388a1d6f0dcc944b49bc7239a53be8" -SRC_URI[sha256sum] = "aeedea216a6317ddc6e27c3d54f26b987078780db6a8320cc09e19c25b307f1c" - -UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" - -inherit meson pkgconfig lib_package ptest - -# Patch out build directory, otherwise it leaks into ptest binary -do_configure_append() { - sed -i -e "s,${WORKDIR},,g" config.h - if [ -e "litest-config.h" ]; then - sed -i -e "s,${WORKDIR},,g" litest-config.h - fi -} - -PACKAGECONFIG ??= "" -PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" -PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" - -UDEVDIR = "`pkg-config --variable=udevdir udev`" - -EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ - -Ddocumentation=false \ - ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \ - -Dzshcompletiondir=no" - -# package name changed in 1.8.1 upgrade: make sure package upgrades work -RPROVIDES_${PN} = "libinput" -RREPLACES_${PN} = "libinput" -RCONFLICTS_${PN} = "libinput" - -FILES_${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.16.0.bb b/poky/meta/recipes-graphics/wayland/libinput_1.16.0.bb new file mode 100644 index 000000000..baf5c1d16 --- /dev/null +++ b/poky/meta/recipes-graphics/wayland/libinput_1.16.0.bb @@ -0,0 +1,50 @@ +SUMMARY = "Library to handle input devices in Wayland compositors" +DESCRIPTION = "libinput is a library to handle input devices in Wayland \ +compositors and to provide a generic X.Org input driver. It provides \ +device detection, device handling, input device event processing and \ +abstraction so minimize the amount of custom input code compositors need to \ +provide the common set of functionality that users expect." +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63" + +DEPENDS = "libevdev udev mtdev libcheck" + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ + file://run-ptest \ + file://determinism.patch \ + " +SRC_URI[md5sum] = "b518dae7f603040872739216971ee97b" +SRC_URI[sha256sum] = "83f6d0c94e5e0dd87094ce73f0edb631919617d24a60ee0ab9bd9197411d76e8" + +UPSTREAM_CHECK_REGEX = "libinput-(?P\d+\.\d+\.(?!9\d+)\d+)" + +inherit meson pkgconfig lib_package ptest + +# Patch out build directory, otherwise it leaks into ptest binary +do_configure_append() { + sed -i -e "s,${WORKDIR},,g" config.h + if [ -e "litest-config.h" ]; then + sed -i -e "s,${WORKDIR},,g" litest-config.h + fi +} + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libwacom] = "-Dlibwacom=true,-Dlibwacom=false,libwacom" +PACKAGECONFIG[gui] = "-Ddebug-gui=true,-Ddebug-gui=false,cairo gtk+3" + +UDEVDIR = "`pkg-config --variable=udevdir udev`" + +EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \ + -Ddocumentation=false \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '-Dtests=true -Dinstall-tests=true', '-Dtests=false -Dinstall-tests=false', d)} \ + -Dzshcompletiondir=no" + +# package name changed in 1.8.1 upgrade: make sure package upgrades work +RPROVIDES_${PN} = "libinput" +RREPLACES_${PN} = "libinput" +RCONFLICTS_${PN} = "libinput" + +FILES_${PN}-ptest += "${libexecdir}/libinput/libinput-test-suite" diff --git a/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb b/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb index f8e9e15f8..8fef86482 100644 --- a/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb +++ b/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb @@ -20,7 +20,7 @@ inherit meson pkgconfig useradd features_check # depends on virtual/egl REQUIRED_DISTRO_FEATURES = "opengl" -DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" @@ -31,7 +31,13 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \ ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ - launch" + launch \ + image-jpeg \ + screenshare \ + shell-desktop \ + shell-fullscreen \ + shell-ivi" + # # Compositor choices # @@ -67,6 +73,16 @@ PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clie PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer-1.0" # Weston with PAM support PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam" +# Weston with screen-share support +PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false" +# Traditional desktop shell +PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" +# Fullscreen shell +PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false" +# In-Vehicle Infotainment (IVI) shell +PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false" +# JPEG image loading support +PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" do_install_append() { # Weston doesn't need the .la files to load modules, so wipe them diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch new file mode 100644 index 000000000..765d9ec09 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch @@ -0,0 +1,27 @@ +From c2d730cf79eb3e4bea41f5ed8a8a21092ced8b03 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hanno=20B=C3=B6ck?= +Date: Sun, 2 Feb 2020 14:18:39 +0100 +Subject: [PATCH] i810: Avoid duplicate definition of I810PatternROP + +Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/commit/652d93cbbdc159c0883f1b626ea48e28bac63ae3] +Signed-off-by: Chris Wilson +Signed-off-by: Khem Raj +--- + src/legacy/i810/i810.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h +index 347188c9..19be049c 100644 +--- a/src/legacy/i810/i810.h ++++ b/src/legacy/i810/i810.h +@@ -322,6 +322,6 @@ extern void I810InitMC(ScreenPtr pScreen); + extern const OptionInfoRec *I810AvailableOptions(int chipid, int busid); + + extern const int I810CopyROP[16]; +-const int I810PatternROP[16]; ++extern const int I810PatternROP[16]; + + #endif /* _I810_H_ */ +-- +2.28.0 + diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb index 7ab223623..161371b11 100644 --- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb +++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb @@ -15,6 +15,7 @@ S = "${WORKDIR}/git" SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \ file://0001-Sync-i915_pciids-upto-8717c6b7414f.patch \ + file://0001-i810-Avoid-duplicate-definition-of-I810PatternROP.patch \ " UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch new file mode 100644 index 000000000..473704067 --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Avoid-duplicate-definitions-of-IOPortBase.patch @@ -0,0 +1,45 @@ +From fc04acfd948ac99d04a5dc08c78f3b13bc0c5c41 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 17 Aug 2020 10:50:51 -0700 +Subject: [PATCH] Avoid duplicate definitions of IOPortBase + +This fixed build with gcc10/-fno-common + +Fixes +compiler.h:528: multiple definition of `IOPortBase'; + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + hw/xfree86/common/compiler.h | 2 +- + hw/xfree86/os-support/linux/lnx_video.c | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h +index 2b2008b..c7d617e 100644 +--- a/hw/xfree86/common/compiler.h ++++ b/hw/xfree86/common/compiler.h +@@ -525,7 +525,7 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset, + #define PORT_SIZE short + #endif + +-_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ ++extern _X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ + + static __inline__ void + outb(unsigned PORT_SIZE port, unsigned char val) +diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c +index 04e4509..9dc7316 100644 +--- a/hw/xfree86/os-support/linux/lnx_video.c ++++ b/hw/xfree86/os-support/linux/lnx_video.c +@@ -78,6 +78,7 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem) + /***************************************************************************/ + /* I/O Permissions section */ + /***************************************************************************/ ++_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */ + + #if defined(__powerpc__) + volatile unsigned char *ioBase = NULL; +-- +2.28.0 + diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb index 26815feb3..8c19692de 100644 --- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb +++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb @@ -5,6 +5,7 @@ SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.pat file://0001-test-xtest-Initialize-array-with-braces.patch \ file://sdksyms-no-build-path.patch \ file://0001-drmmode_display.c-add-missing-mi.h-include.patch \ + file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \ " SRC_URI[md5sum] = "a770aec600116444a953ff632f51f839" SRC_URI[sha256sum] = "d17b646bee4ba0fb7850c1cc55b18e3e8513ed5c02bdf38da7e107f84e2d0146" diff --git a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb index 4f1af731d..ea33732a3 100644 --- a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb +++ b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249 DEPENDS = "git-native" -SRCREV = "c66833e1caac25279a5052fceb13213f5e4f79f9" +SRCREV = "df4390b18a500a1a7d4695e1856971f8e36ce517" PR = "r12" PV = "0.2+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch new file mode 100644 index 000000000..a3ba0912d --- /dev/null +++ b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch @@ -0,0 +1,68 @@ +From c5fec6d6368b4103557deb710150119dca438544 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 5 Aug 2020 10:46:39 -0700 +Subject: [PATCH] kexec: Fix build with -fno-common + +Ensure that my_debug is not doubly defined + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + kexec/arch/ppc64/kexec-elf-ppc64.c | 2 -- + kexec/fs2dt.h | 2 +- + 2 files changed, 1 insertion(+), 3 deletions(-) + +--- a/kexec/arch/ppc64/kexec-elf-ppc64.c ++++ b/kexec/arch/ppc64/kexec-elf-ppc64.c +@@ -44,8 +44,6 @@ + uint64_t initrd_base, initrd_size; + unsigned char reuse_initrd = 0; + const char *ramdisk; +-/* Used for enabling printing message from purgatory code */ +-int my_debug = 0; + + int elf_ppc64_probe(const char *buf, off_t len) + { +--- a/kexec/fs2dt.h ++++ b/kexec/fs2dt.h +@@ -30,7 +30,7 @@ extern struct bootblock bb[1]; + + /* Used for enabling printing message from purgatory code + * Only has implemented for PPC64 */ +-int my_debug; ++extern int my_debug; + extern int dt_no_old_root; + + void reserve(unsigned long long where, unsigned long long length); +--- a/kexec/arch/arm64/kexec-arm64.h ++++ b/kexec/arch/arm64/kexec-arm64.h +@@ -50,8 +50,8 @@ int zImage_arm64_load(int argc, char **a + void zImage_arm64_usage(void); + + +-off_t initrd_base; +-off_t initrd_size; ++extern off_t initrd_base; ++extern off_t initrd_size; + + /** + * struct arm64_mem - Memory layout info. +@@ -65,7 +65,7 @@ struct arm64_mem { + }; + + #define arm64_mem_ngv UINT64_MAX +-struct arm64_mem arm64_mem; ++extern struct arm64_mem arm64_mem; + + uint64_t get_phys_offset(void); + uint64_t get_vp_offset(void); +--- a/kexec/arch/x86_64/kexec-bzImage64.c ++++ b/kexec/arch/x86_64/kexec-bzImage64.c +@@ -42,7 +42,6 @@ + #include + + static const int probe_debug = 0; +-int bzImage_support_efi_boot; + + int bzImage64_probe(const char *buf, off_t len) + { diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb index 871b36440..1e81ecc2c 100644 --- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb +++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb @@ -20,6 +20,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://0005-Disable-PIE-during-link.patch \ file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \ file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \ + file://0001-kexec-Fix-build-with-fno-common.patch \ " SRC_URI[md5sum] = "46724b67f32501c5d3e778161347cad9" diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc index 20139a849..b1cb553c7 100644 --- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc @@ -30,7 +30,7 @@ LICENSE = "GPLv2" # # -- RP -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" +LIC_FILES_CHKSUM ?= "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" RECIPE_NO_UPDATE_REASON = "Recipe is updated through a separate process" @@ -46,6 +46,9 @@ python __anonymous () { d.setVar("HEADER_FETCH_VER", "2.6") } +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[0]}" +MIN_VER = "${@oe.utils.trim_version("${PV}", 2).split('.')[1]}" + inherit kernel-arch pkgconfig multilib_header KORG_ARCHIVE_COMPRESSION ?= "xz" @@ -83,7 +86,16 @@ do_install_append_armeb () { } do_install_armmultilib () { - oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h asm/fcntl.h asm/hwcap.h asm/ioctls.h asm/kvm.h asm/kvm_para.h asm/mman.h asm/param.h asm/perf_regs.h asm/bpf_perf_event.h + if [ ${MAJ_VER} -gt 5 ]; then + ARM_KVM_HEADER="" + else + if [ ${MAJ_VER} -eq 5 ] && [ ${MIN_VER} -ge 8 ]; then + ARM_KVM_HEADER="" + else + ARM_KVM_HEADER="asm/kvm.h" + fi + fi + oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h asm/fcntl.h asm/hwcap.h asm/ioctls.h $ARM_KVM_HEADER asm/kvm_para.h asm/mman.h asm/param.h asm/perf_regs.h asm/bpf_perf_event.h oe_multilib_header asm/posix_types.h asm/ptrace.h asm/setup.h asm/sigcontext.h asm/siginfo.h asm/signal.h asm/stat.h asm/statfs.h asm/swab.h asm/types.h asm/unistd.h } diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch index 9d17daa70..5b7c1b6e2 100644 --- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch +++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch @@ -1,4 +1,4 @@ -From 9708dc74d9f49488d669e070982f6224a888d61a Mon Sep 17 00:00:00 2001 +From dc221138c809125dc1bbff8506c70cb7bd846368 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 12 Sep 2018 17:08:58 -0700 Subject: [PATCH] include linux/stddef.h in swab.h uapi header @@ -23,12 +23,13 @@ Cc: Philippe Ombredanne Cc: Kate Stewart Cc: Greg Kroah-Hartman Cc: Thomas Gleixner + --- include/uapi/linux/swab.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h -index 23cd84868cc3..acddbe50a20d 100644 +index 7272f85d6..2912fe463 100644 --- a/include/uapi/linux/swab.h +++ b/include/uapi/linux/swab.h @@ -3,6 +3,7 @@ @@ -37,8 +38,5 @@ index 23cd84868cc3..acddbe50a20d 100644 #include +#include #include + #include #include - --- -2.19.0 - diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb deleted file mode 100644 index 8a12103ee..000000000 --- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.4.bb +++ /dev/null @@ -1,16 +0,0 @@ -require linux-libc-headers.inc - -SRC_URI_append_libc-musl = "\ - file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ - file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ - file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ - file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ - " - -SRC_URI_append = "\ - file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ - file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ -" - -SRC_URI[md5sum] = "ce9b2d974d27408a61c53a30d3f98fb9" -SRC_URI[sha256sum] = "bf338980b1670bca287f9994b7441c2361907635879169c64ae78364efc5f491" diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb new file mode 100644 index 000000000..d76a8a36f --- /dev/null +++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.8.bb @@ -0,0 +1,18 @@ +require linux-libc-headers.inc + +SRC_URI_append_libc-musl = "\ + file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ + file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ + file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ + file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \ + " + +SRC_URI_append = "\ + file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ + file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +SRC_URI[md5sum] = "0e5c4c15266218ef26c50fac0016095b" +SRC_URI[sha256sum] = "e7f75186aa0642114af8f19d99559937300ca27acaf7451b36d4f9b0f85cf1f5" diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb index 0c98535f7..a9c7be0f8 100644 --- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -259,10 +259,12 @@ do_install() { touch -r $kerneldir/build/.config $kerneldir/build/include/config/auto.conf* 2>/dev/null || : if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then - sed -i 's/ifneq "$(CC)" ".*-linux-gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd" - sed -i 's/ifneq "$(LD)" ".*-linux-ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd" + sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd" + sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd" sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd" + # we don't build against the defconfig, so make sure it isn't the trigger for syncconfig + sed -i 's/ifneq "$(KBUILD_DEFCONFIG)".*"\(.*\)"/ifneq "\1" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd" fi # make the scripts python3 safe. We won't be running these, and if they are @@ -288,3 +290,5 @@ RDEPENDS_${PN} = "bc python3 flex bison ${TCLIBC}-utils" RDEPENDS_${PN} += "openssl-dev util-linux" # and x86 needs a bit more for 4.15+ RDEPENDS_${PN} += "${@bb.utils.contains('ARCH', 'x86', 'elfutils', '', d)}" +# 5.8+ needs gcc-plugins libmpc-dev +RDEPENDS_${PN} += "gcc-plugins libmpc-dev" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index caa5b4ef5..cfe3277e8 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "508b4e6ada7f78b3ef5a9dbdd182d13dffe00123" -SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" +SRCREV_machine ?= "22664d170488313b5c2713b6d9c8df6563387728" +SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.51" +LINUX_VERSION ?= "5.4.58" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb new file mode 100644 index 000000000..e23e7dcfb --- /dev/null +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb @@ -0,0 +1,44 @@ +KBRANCH ?= "v5.8/standard/preempt-rt/base" + +require recipes-kernel/linux/linux-yocto.inc + +# Skip processing of this recipe if it is not explicitly specified as the +# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying +# to build multiple virtual/kernel providers, e.g. as dependency of +# core-image-rt-sdk, core-image-rt. +python () { + if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt": + raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") +} + +SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" + +LINUX_VERSION ?= "5.8.1" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +LINUX_KERNEL_TYPE = "preempt-rt" + +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index 86e133f9f..b90b1259a 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.51" +LINUX_VERSION ?= "5.4.58" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "d4c9ad88abadd22f7b2785e8a101523fe9a74dc0" -SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" +SRCREV_machine_qemuarm ?= "d192ae0b9995a7be2a33b12005a95348ec6aae94" +SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb new file mode 100644 index 000000000..36a8ae457 --- /dev/null +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb @@ -0,0 +1,32 @@ +KBRANCH ?= "v5.8/standard/tiny/base" +KBRANCH_qemuarm ?= "v5.8/standard/tiny/arm-versatile-926ejs" + +LINUX_KERNEL_TYPE = "tiny" +KCONFIG_MODE = "--allnoconfig" + +require recipes-kernel/linux/linux-yocto.inc + +LINUX_VERSION ?= "5.8.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +SRCREV_machine_qemuarm ?= "566e869df9400258b6f162bf34933f5b6dcd0115" +SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" + +COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" + +# Functionality flags +KERNEL_FEATURES = "" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index e79793b5f..f85e37d2c 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "601e67d37274e4a0890bcdbe6660c2dbd08d3b97" -SRCREV_machine_qemuarm64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_machine_qemumips ?= "c8543a84037b88da45d0d825216187b42d0c509a" -SRCREV_machine_qemuppc ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_machine_qemuriscv64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_machine_qemux86 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_machine_qemux86-64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_machine_qemumips64 ?= "c741fec6daabb449d08c9f96052be1477fe3c968" -SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc" -SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a" +SRCREV_machine_qemuarm ?= "7bbd138602fda3d69d74674460e73bffdec73cd2" +SRCREV_machine_qemuarm64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_machine_qemumips ?= "e43ed1586cd85a007b0fae3c63d6980d4f5cb336" +SRCREV_machine_qemuppc ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_machine_qemuriscv64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_machine_qemux86 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_machine_qemux86-64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_machine_qemumips64 ?= "d1ff96887c64f70de00add62eb91d4c36f1b181a" +SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd" +SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.51" +LINUX_VERSION ?= "5.4.58" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" @@ -38,7 +38,7 @@ DEPENDS += "openssl-native util-linux-native" PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" -KCONF_BSP_AUDIT_LEVEL = "2" +KCONF_BSP_AUDIT_LEVEL = "1" KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb new file mode 100644 index 000000000..aad689590 --- /dev/null +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb @@ -0,0 +1,55 @@ +KBRANCH ?= "v5.8/standard/base" + +require recipes-kernel/linux/linux-yocto.inc + +# board specific branches +KBRANCH_qemuarm ?= "v5.8/standard/arm-versatile-926ejs" +KBRANCH_qemuarm64 ?= "v5.8/standard/qemuarm64" +KBRANCH_qemumips ?= "v5.8/standard/mti-malta32" +KBRANCH_qemuppc ?= "v5.8/standard/qemuppc" +KBRANCH_qemuriscv64 ?= "v5.8/standard/base" +KBRANCH_qemux86 ?= "v5.8/standard/base" +KBRANCH_qemux86-64 ?= "v5.8/standard/base" +KBRANCH_qemumips64 ?= "v5.8/standard/mti-malta64" + +SRCREV_machine_qemuarm ?= "097417e785af04be0cbe757bc6e24456a3f701fd" +SRCREV_machine_qemuarm64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_machine_qemumips ?= "1fc5490bef8322680d73f6ab2c7b666eccc3bce1" +SRCREV_machine_qemuppc ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_machine_qemuriscv64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_machine_qemux86 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_machine_qemux86-64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_machine_qemumips64 ?= "e61fc06792254eed92c6908a9b35790ed54b0ace" +SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3" +SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c" + +# remap qemuarm to qemuarma15 for the 5.8 kernel +# KMACHINE_qemuarm ?= "qemuarma15" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" +LINUX_VERSION ?= "5.8.1" + +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" +DEPENDS += "openssl-native util-linux-native" +DEPENDS += "gmp-native" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "1" + +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" + +COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb deleted file mode 100644 index c0df0cab3..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb +++ /dev/null @@ -1,42 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit KERNEL MODULE" -DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" -LICENSE = "LGPLv2.1 & GPLv2 & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" - -inherit module - -COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' - -SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - " - -SRC_URI[sha256sum] = "639c03bf8f0e920567f45c96cc7ef749a8fc29ff7fb3fb97263d67f66fb71aef" - -export INSTALL_MOD_DIR="kernel/lttng-modules" - -EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" - -do_install_append() { - # Delete empty directories to avoid QA failures if no modules were built - find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; -} - -python do_package_prepend() { - if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): - bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) -} - -BBCLASSEXTEND = "devupstream:target" -LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" -DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \ - file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ - file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - " -SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260" -PV_class-devupstream = "2.12.1+git${SRCPV}" -S_class-devupstream = "${WORKDIR}/git" -SRCREV_FORMAT ?= "lttng_git" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb new file mode 100644 index 000000000..49b7a116b --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb @@ -0,0 +1,42 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit KERNEL MODULE" +DESCRIPTION = "The lttng-modules 2.0 package contains the kernel tracer modules" +LICENSE = "LGPLv2.1 & GPLv2 & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" + +inherit module + +COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux' + +SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ + file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ + " + +SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca" + +export INSTALL_MOD_DIR="kernel/lttng-modules" + +EXTRA_OEMAKE += "KERNELDIR='${STAGING_KERNEL_DIR}'" + +do_install_append() { + # Delete empty directories to avoid QA failures if no modules were built + find ${D}/${nonarch_base_libdir} -depth -type d -empty -exec rmdir {} \; +} + +python do_package_prepend() { + if not os.path.exists(os.path.join(d.getVar('D'), d.getVar('nonarch_base_libdir')[1:], 'modules')): + bb.warn("%s: no modules were created; this may be due to CONFIG_TRACEPOINTS not being enabled in your kernel." % d.getVar('PN')) +} + +BBCLASSEXTEND = "devupstream:target" +LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" +DEFAULT_PREFERENCE_class-devupstream = "-1" +SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \ + file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ + file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ + " +SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260" +PV_class-devupstream = "2.12.1+git${SRCPV}" +S_class-devupstream = "${WORKDIR}/git" +SRCREV_FORMAT ?= "lttng_git" diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch deleted file mode 100644 index a150d648a..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch +++ /dev/null @@ -1,43 +0,0 @@ -From e5d94cf4882cc6516af52b794c6acb8e4d6469a3 Mon Sep 17 00:00:00 2001 -From: Ovidiu Panait -Date: Mon, 18 May 2020 16:39:26 +0300 -Subject: [PATCH] tests: gen-ust-events-ns/tp.h: Fix build with musl libc - -Fix the following build error with musl libc: -In file included from ../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:14, - from ../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.c:10: -../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:17:10: error: unknown type name 'ino_t'; did you mean 'int8_t'? - 17 | TP_ARGS(ino_t, ns_ino), - | ^~~~~ -../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:17:10: error: unknown type name 'ino_t'; did you mean 'int8_t'? - 17 | TP_ARGS(ino_t, ns_ino), - | ^~~~~ -../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/./tp.h:17:2: error: unknown type name 'ino_t'; did you mean 'int8_t'? - 17 | TP_ARGS(ino_t, ns_ino), - | ^~~~~~~ -../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/./tp.h:17:2: error: unknown type name 'ino_t'; did you mean 'int8_t'? - 17 | TP_ARGS(ino_t, ns_ino), - | ^~~~~~~ - -Upstream-Status: Submitted [https://github.com/lttng/lttng-tools/pull/161] - -Signed-off-by: Ovidiu Panait ---- - tests/utils/testapp/gen-ust-events-ns/tp.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/tests/utils/testapp/gen-ust-events-ns/tp.h b/tests/utils/testapp/gen-ust-events-ns/tp.h -index 4dbfed5..e0ddb29 100644 ---- a/tests/utils/testapp/gen-ust-events-ns/tp.h -+++ b/tests/utils/testapp/gen-ust-events-ns/tp.h -@@ -11,6 +11,7 @@ - #if !defined(_TRACEPOINT_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ) - #define _TRACEPOINT_TP_H - -+#include - #include - - TRACEPOINT_EVENT(tp, tptest, --- -2.17.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.1.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.1.bb deleted file mode 100644 index 094e33db7..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.1.bb +++ /dev/null @@ -1,165 +0,0 @@ -SECTION = "devel" -SUMMARY = "Linux Trace Toolkit Control" -DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \ -to extract program execution details from the Linux operating system \ -and interpret them." - -LICENSE = "GPLv2 & LGPLv2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ - file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ - file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" - -DEPENDS = "liburcu popt libxml2 util-linux" -RDEPENDS_${PN} = "libgcc" -RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed python3-core" -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" -RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" -# babelstats.pl wants getopt-long -RDEPENDS_${PN}-ptest += "perl-module-getopt-long" - -PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ - am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ - PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ -" -PACKAGECONFIG ??= "lttng-ust" -PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" -PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" -PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" -PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" -PACKAGECONFIG_remove_arc = "lttng-ust" - -SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ - file://0001-tests-do-not-strip-a-helper-library.patch \ - file://run-ptest \ - file://lttng-sessiond.service \ - file://0001-tests-regression-disable-the-tools-live-tests.patch \ - file://0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch \ - " - -SRC_URI[sha256sum] = "0de7afc1f40a5acbede933cdfd6cf47b32ff84d02e170a1321f7fc86141585b8" - -inherit autotools ptest pkgconfig useradd python3-dir manpages systemd - -SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" -SYSTEMD_AUTO_ENABLE = "disable" - -USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "tracing" - -FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ - ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" - -# Since files are installed into ${libdir}/lttng/libexec we match -# the libexec insane test so skip it. -# Python module needs to keep _lttng.so -INSANE_SKIP_${PN} = "libexec dev-so" -INSANE_SKIP_${PN}-dbg = "libexec" - -PRIVATE_LIBS_${PN}-ptest = "libfoo.so" - -do_install_append () { - # install systemd unit file - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system -} - -do_install_ptest () { - for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do - install -D "${B}/$f" "${D}${PTEST_PATH}/$f" - done - - for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do - install -D "${S}/$f" "${D}${PTEST_PATH}/$f" - done - - # Prevent 'make check' from recursing into non-test subdirectories. - sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" - - # We don't need these - sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile" - - # We shouldn't need to build anything in tests/utils - sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \ - "${D}${PTEST_PATH}/tests/Makefile" - - # Copy the tests directory tree and the executables and - # Makefiles found within. - for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do - install -d "${D}${PTEST_PATH}/tests/$d" - find "${B}/tests/$d" -maxdepth 1 -executable -type f \ - -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + - # Take all .py scripts for tests using the python bindings. - find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \ - -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + - test -r "${B}/tests/$d/Makefile" && \ - install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" - done - - for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do - for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do - cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f - case $f in - *.so) - install -d ${D}${PTEST_PATH}/tests/$d/ - ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f - # Remove any rpath/runpath to pass QA check. - chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f - ;; - esac - done - done - - chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary - - # - # Use the versioned libs of liblttng-ust-dl. - # - ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py" - if [ -e $ustdl ]; then - sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl - fi - - install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/ - - # We shouldn't need to build anything in tests/regression/tools - sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \ - "${D}${PTEST_PATH}/tests/regression/Makefile" - - # Prevent attempts to update Makefiles during test runs, and - # silence "Making check in $SUBDIR" messages. - find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ - sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ - -e '/echo "Making $$target in $$subdir"; \\/d' \ - -e 's/^srcdir = \(.*\)/srcdir = ./' \ - -e 's/^builddir = \(.*\)/builddir = ./' \ - -e 's/^all-am:.*/all-am:/' \ - {} + - - find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ - touch -r "${B}/Makefile" {} + - - # - # Need to stop generated binaries from rebuilding by removing their source dependencies - # - sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \ - -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \ - -e 's#\(^test.*SOURCES.=\)#disable\1#g' \ - -e 's#\(^test.*LDADD.=\)#disable\1#g' \ - -i ${D}${PTEST_PATH}/tests/unit/Makefile - - # Substitute links to installed binaries. - for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do - exedir="${D}${PTEST_PATH}/src/bin/${prog}" - install -d "$exedir" - case "$prog" in - lttng-consumerd) - ln -s "${libdir}/lttng/libexec/$prog" "$exedir" - ;; - *) - ln -s "${bindir}/$prog" "$exedir" - ;; - esac - done -} diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb new file mode 100644 index 000000000..e9c8e18e2 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb @@ -0,0 +1,164 @@ +SECTION = "devel" +SUMMARY = "Linux Trace Toolkit Control" +DESCRIPTION = "The Linux trace toolkit is a suite of tools designed \ +to extract program execution details from the Linux operating system \ +and interpret them." + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \ + file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \ + file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95" + +DEPENDS = "liburcu popt libxml2 util-linux" +RDEPENDS_${PN} = "libgcc" +RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed python3-core" +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" +RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" +# babelstats.pl wants getopt-long +RDEPENDS_${PN}-ptest += "perl-module-getopt-long" + +PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ + am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ + PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ +" +PACKAGECONFIG ??= "lttng-ust" +PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native" +PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust" +PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod" +PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" +PACKAGECONFIG_remove_arc = "lttng-ust" + +SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \ + file://0001-tests-do-not-strip-a-helper-library.patch \ + file://run-ptest \ + file://lttng-sessiond.service \ + file://0001-tests-regression-disable-the-tools-live-tests.patch \ + " + +SRC_URI[sha256sum] = "9ed9161795ff023b076f9f95afaa4f1f822ec42495c0fa04c586ab8fa74e84f1" + +inherit autotools ptest pkgconfig useradd python3-dir manpages systemd + +SYSTEMD_SERVICE_${PN} = "lttng-sessiond.service" +SYSTEMD_AUTO_ENABLE = "disable" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "tracing" + +FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \ + ${PYTHON_SITEPACKAGES_DIR}/*" +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" + +# Since files are installed into ${libdir}/lttng/libexec we match +# the libexec insane test so skip it. +# Python module needs to keep _lttng.so +INSANE_SKIP_${PN} = "libexec dev-so" +INSANE_SKIP_${PN}-dbg = "libexec" + +PRIVATE_LIBS_${PN}-ptest = "libfoo.so" + +do_install_append () { + # install systemd unit file + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/lttng-sessiond.service ${D}${systemd_unitdir}/system +} + +do_install_ptest () { + for f in Makefile tests/Makefile tests/utils/utils.sh tests/regression/tools/save-load/load-42*.lttng tests/regression/tools/save-load/configuration/load-42*.lttng tests/regression/tools/health/test_health.sh tests/regression/tools/metadata/utils.sh tests/regression/tools/rotation/rotate_utils.sh; do + install -D "${B}/$f" "${D}${PTEST_PATH}/$f" + done + + for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do + install -D "${S}/$f" "${D}${PTEST_PATH}/$f" + done + + # Prevent 'make check' from recursing into non-test subdirectories. + sed -i -e 's!^SUBDIRS = .*!SUBDIRS = tests!' "${D}${PTEST_PATH}/Makefile" + + # We don't need these + sed -i -e '/dist_noinst_SCRIPTS = /,/^$/d' "${D}${PTEST_PATH}/tests/Makefile" + + # We shouldn't need to build anything in tests/utils + sed -i -e 's!am__append_1 = . utils!am__append_1 = . !' \ + "${D}${PTEST_PATH}/tests/Makefile" + + # Copy the tests directory tree and the executables and + # Makefiles found within. + for d in $(find "${B}/tests" -type d -not -name .libs -printf '%P ') ; do + install -d "${D}${PTEST_PATH}/tests/$d" + find "${B}/tests/$d" -maxdepth 1 -executable -type f \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + # Take all .py scripts for tests using the python bindings. + find "${B}/tests/$d" -maxdepth 1 -type f -name "*.py" \ + -exec install -t "${D}${PTEST_PATH}/tests/$d" {} + + test -r "${B}/tests/$d/Makefile" && \ + install -t "${D}${PTEST_PATH}/tests/$d" "${B}/tests/$d/Makefile" + done + + for d in $(find "${B}/tests" -type d -name .libs -printf '%P ') ; do + for f in $(find "${B}/tests/$d" -maxdepth 1 -executable -type f -printf '%P ') ; do + cp ${B}/tests/$d/$f ${D}${PTEST_PATH}/tests/`dirname $d`/$f + case $f in + *.so) + install -d ${D}${PTEST_PATH}/tests/$d/ + ln -s ../$f ${D}${PTEST_PATH}/tests/$d/$f + # Remove any rpath/runpath to pass QA check. + chrpath --delete ${D}${PTEST_PATH}/tests/$d/$f + ;; + esac + done + done + + chrpath --delete ${D}${PTEST_PATH}/tests/utils/testapp/userspace-probe-elf-binary/userspace-probe-elf-binary + + # + # Use the versioned libs of liblttng-ust-dl. + # + ustdl="${D}${PTEST_PATH}/tests/regression/ust/ust-dl/test_ust-dl.py" + if [ -e $ustdl ]; then + sed -i -e 's!:liblttng-ust-dl.so!:liblttng-ust-dl.so.0!' $ustdl + fi + + install ${B}/tests/unit/ini_config/sample.ini ${D}${PTEST_PATH}/tests/unit/ini_config/ + + # We shouldn't need to build anything in tests/regression/tools + sed -i -e 's!^SUBDIRS = tools !SUBDIRS = !' \ + "${D}${PTEST_PATH}/tests/regression/Makefile" + + # Prevent attempts to update Makefiles during test runs, and + # silence "Making check in $SUBDIR" messages. + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \ + -e '/echo "Making $$target in $$subdir"; \\/d' \ + -e 's/^srcdir = \(.*\)/srcdir = ./' \ + -e 's/^builddir = \(.*\)/builddir = ./' \ + -e 's/^all-am:.*/all-am:/' \ + {} + + + find "${D}${PTEST_PATH}" -name Makefile -type f -exec \ + touch -r "${B}/Makefile" {} + + + # + # Need to stop generated binaries from rebuilding by removing their source dependencies + # + sed -e 's#\(^test.*OBJECTS.=\)#disable\1#g' \ + -e 's#\(^test.*DEPENDENCIES.=\)#disable\1#g' \ + -e 's#\(^test.*SOURCES.=\)#disable\1#g' \ + -e 's#\(^test.*LDADD.=\)#disable\1#g' \ + -i ${D}${PTEST_PATH}/tests/unit/Makefile + + # Substitute links to installed binaries. + for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd lttng-crash; do + exedir="${D}${PTEST_PATH}/src/bin/${prog}" + install -d "$exedir" + case "$prog" in + lttng-consumerd) + ln -s "${libdir}/lttng/libexec/$prog" "$exedir" + ;; + *) + ln -s "${bindir}/$prog" "$exedir" + ;; + esac + done +} diff --git a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb index c7edb20ee..1ab248fed 100644 --- a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb +++ b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb @@ -15,8 +15,10 @@ do_compile[depends] += "virtual/kernel:do_compile_kernelmodules" RDEPENDS_${PN}-dev = "" DEPENDS += "bc-native bison-native" +DEPENDS += "gmp-native" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" +EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}"" # Build some host tools under work-shared. CC, LD, and AR are probably # not used, but this is the historical way of invoking "make scripts". diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb index e5bc7dc1b..5faf22a26 100644 --- a/poky/meta/recipes-kernel/perf/perf.bb +++ b/poky/meta/recipes-kernel/perf/perf.bb @@ -70,6 +70,7 @@ SPDX_S = "${S}/tools/perf" LDFLAGS="-ldl -lutil" EXTRA_OEMAKE = '\ + V=1 \ -C ${S}/tools/perf \ O=${B} \ CROSS_COMPILE=${TARGET_PREFIX} \ @@ -201,6 +202,9 @@ do_configure_prepend () { ${S}/tools/perf/Makefile.perf sed -i -e "s,prefix='\$(DESTDIR_SQ)/usr'$,prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \ ${S}/tools/perf/Makefile.perf + # backport https://github.com/torvalds/linux/commit/e4ffd066ff440a57097e9140fa9e16ceef905de8 + sed -i -e 's,\($(Q)$(SHELL) .$(arch_errno_tbl).\) $(CC) $(arch_errno_hdr_dir),\1 $(firstword $(CC)) $(arch_errno_hdr_dir),g' \ + ${S}/tools/perf/Makefile.perf fi sed -i -e "s,--root='/\$(DESTDIR_SQ)',--prefix='\$(DESTDIR_SQ)/usr' --install-lib='\$(DESTDIR)\$(PYTHON_SITEPACKAGES_DIR)',g" \ ${S}/tools/perf/Makefile* diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc index 4ec0703f2..56fa51d61 100644 --- a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,6 +1,6 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "c9c23c987d819d07c6b96b54f8e03188fecd9e46" +SRCREV = "82b8e1a07a31bf37ed05d6ebc5162b054c0be9fd" PV = "4.3" SRC_URI = "git://sourceware.org/git/systemtap.git \ diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb index fd949be8a..3575c460e 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb @@ -10,8 +10,8 @@ SRC_URI[sha256sum] = "833f99b2cbda34e0cfef867ef1d2e6a74fe276bb7fc525a573be32077f inherit allarch do_install() { - install -d ${D}/usr/share/alsa - cp -r ${S}/topology ${D}/usr/share/alsa + install -d "${D}${datadir}/alsa" + cp -r "${S}/topology" "${D}${datadir}/alsa" } PACKAGES = "${PN}" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb index 19eeabff7..7be0df885 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb +++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb @@ -10,9 +10,9 @@ SRC_URI[sha256sum] = "1bc24da04bb27a75e323c9f0fb03e44705b6bb8a8baf255b94b41d457d inherit allarch do_install() { - install -d ${D}/usr/share/alsa - cp -r ${S}/ucm ${D}/usr/share/alsa - cp -r ${S}/ucm2 ${D}/usr/share/alsa + install -d "${D}${datadir}/alsa" + cp -r "${S}/ucm" "${D}${datadir}/alsa" + cp -r "${S}/ucm2" "${D}${datadir}/alsa" } PACKAGES = "${PN}" diff --git a/poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb index 271c2a30a..2061c280e 100644 --- a/poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb +++ b/poky/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb @@ -26,6 +26,8 @@ EXTRA_OECONF += "--disable-doc --disable-Werror" PROVIDES += "virtual/libomxil" +CFLAGS += "-fcommon" + # # The .so files under ${libdir}/bellagio are not intended to be versioned and symlinked. # Make sure they get packaged in the main package. diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb deleted file mode 100644 index aaa66e17a..000000000 --- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" -DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ -mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ -and also can write the decoded audio to WAV." -HOMEPAGE = "http://mpg123.de/" -BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" -SECTION = "multimedia" - -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" - -SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" -SRC_URI[sha256sum] = "00f7bf7ea64fcec2c9d07751d6ad8849343ee09c282ea3b0d5dd486e886e2ff3" - -UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" - -inherit autotools pkgconfig - -# The options should be mutually exclusive for configuration script. -# If both alsa and pulseaudio are specified (as in the default distro features) -# pulseaudio takes precedence. -PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" - -PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" -PACKAGECONFIG[esd] = ",,esound" -PACKAGECONFIG[jack] = ",,jack" -PACKAGECONFIG[openal] = ",,openal-soft" -PACKAGECONFIG[portaudio] = ",,portaudio-v19" -PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" -PACKAGECONFIG[sdl] = ",,libsdl2" - -# Following are possible sound output modules: -# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi -AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" -AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" - -EXTRA_OECONF = " \ - --enable-shared \ - --with-audio='${AUDIOMODS}' \ - ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ - ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ -" -# Fails to build with thumb-1 (qemuarm) -#| {standard input}: Assembler messages: -#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' -#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' -#... -#| make[3]: *** [equalizer.lo] Error 1 -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb new file mode 100644 index 000000000..0746d8d47 --- /dev/null +++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.3.bb @@ -0,0 +1,51 @@ +SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3" +DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \ +mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \ +and also can write the decoded audio to WAV." +HOMEPAGE = "http://mpg123.de/" +BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3" + +SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2" +SRC_URI[sha256sum] = "30c998785a898f2846deefc4d17d6e4683a5a550b7eacf6ea506e30a7a736c6e" + +UPSTREAM_CHECK_REGEX = "mpg123-(?P\d+(\.\d+)+)\.tar" + +inherit autotools pkgconfig + +# The options should be mutually exclusive for configuration script. +# If both alsa and pulseaudio are specified (as in the default distro features) +# pulseaudio takes precedence. +PACKAGECONFIG_ALSA = "${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)}" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}" + +PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib" +PACKAGECONFIG[esd] = ",,esound" +PACKAGECONFIG[jack] = ",,jack" +PACKAGECONFIG[openal] = ",,openal-soft" +PACKAGECONFIG[portaudio] = ",,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio" +PACKAGECONFIG[sdl] = ",,libsdl2" + +# Following are possible sound output modules: +# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi +AUDIOMODS += "${@bb.utils.filter('PACKAGECONFIG', 'alsa esd jack openal portaudio sdl', d)}" +AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}" + +EXTRA_OECONF = " \ + --enable-shared \ + --with-audio='${AUDIOMODS}' \ + ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \ +" +# Fails to build with thumb-1 (qemuarm) +#| {standard input}: Assembler messages: +#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4' +#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24' +#... +#| make[3]: *** [equalizer.lo] Error 1 +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" diff --git a/poky/meta/recipes-multimedia/x264/x264_git.bb b/poky/meta/recipes-multimedia/x264/x264_git.bb index 1ff5348b9..f226fec3c 100644 --- a/poky/meta/recipes-multimedia/x264/x264_git.bb +++ b/poky/meta/recipes-multimedia/x264/x264_git.bb @@ -14,9 +14,9 @@ SRC_URI = "git://github.com/mirror/x264;branch=stable \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "296494a4011f58f32adc54304a2654627558c59a" +SRCREV = "cde9a93319bea766a92e306d69059c76de970190" -PV = "r2991+git${SRCPV}" +PV = "r3011+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-sato/webkit/libwpe_1.6.0.bb b/poky/meta/recipes-sato/webkit/libwpe_1.6.0.bb deleted file mode 100644 index 09c74089c..000000000 --- a/poky/meta/recipes-sato/webkit/libwpe_1.6.0.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit." -HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe" -BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc" -DEPENDS = "virtual/egl libxkbcommon" - -# Workaround build issue with RPi userland EGL libraries. -CFLAGS_append_rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}" - -inherit cmake features_check - -REQUIRED_DISTRO_FEATURES = "opengl" - -SRC_URI[md5sum] = "6e8a2c279dcc3617db5ec7ac4c03d628" -SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "3587c6b8a807f4bb76b268ba74ca82c6b395b90235db41ad8252224456193c90" diff --git a/poky/meta/recipes-sato/webkit/libwpe_1.7.1.bb b/poky/meta/recipes-sato/webkit/libwpe_1.7.1.bb new file mode 100644 index 000000000..e25d9404a --- /dev/null +++ b/poky/meta/recipes-sato/webkit/libwpe_1.7.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "General-purpose library specifically developed for the WPE-flavored port of WebKit." +HOMEPAGE = "https://github.com/WebPlatformForEmbedded/libwpe" +BUGTRACKER = "https://github.com/WebPlatformForEmbedded/libwpe/issues" + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc" +DEPENDS = "virtual/egl libxkbcommon" + +# Workaround build issue with RPi userland EGL libraries. +CFLAGS_append_rpi = " ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '-D_GNU_SOURCE', d)}" + +inherit cmake features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "a784b7fa0c658b28071100f6f6749b0d85bbcddd82de028e07672ce13982d340" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch new file mode 100644 index 000000000..d8bb8efb8 --- /dev/null +++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch @@ -0,0 +1,66 @@ +From cb929f59b527fe890376e47613dfe1434a320bc0 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 11 Aug 2020 15:44:48 -0700 +Subject: [PATCH] [clang 11] fix build errors due to -WWc++11-narrowing + +https://bugs.webkit.org/show_bug.cgi?id=211193 + +Reviewed by Adrian Perez de Castro. + +Fixes the following errors, + +Source/WebCore/html/MediaElementSession.cpp:1059:9: error: type 'WebCore::RenderMedia *' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing] +m_element.renderer(), +^~~~~~~~~~~~~~~~~~~~ + +Source/WebCore/style/StyleResolver.cpp:106:55: error: type 'const char [4]' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing] +m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; + ^~~~~ +Source/WebCore/style/StyleResolver.cpp:106:55: note: insert an explicit cast to silence this issue +m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; + ^~~~~ + static_cast( ) + +* html/HTMLMediaElement.h: +(WebCore::HTMLMediaElement::hasRenderer const): +MediaElementSession was implicitly casting a pointer to a bool, +which is not allowed with modern Clang checks. Add a helper method +to encapsulate the now required static_cast. +* html/MediaElementSession.cpp: Use the new helper method to see +if the HTMLMediaElement has an associated renderer. +(WebCore::MediaElementSession::updateMediaUsageIfChanged): +* style/StyleResolver.cpp: This was calling MediaQueryEvaluator { +"all" }; and seemingly expecting to cast a const char[] to a bool, +or maybe String? It's confusing because of the MediaQueryEvaluator +API. If it was implicitly converting to bool then that could be +unintentional. Such casts are not allowed either now. The +MediaQueryEvaluator's default constructor says it returns true for +"all", which appears to be the original intent of this call, so I +replaced it with that. +(WebCore::Style::Resolver::Resolver): + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@260951 268f45cc-cd09-0410-ab3c-d52691b4dbfc + +Upstream-Status: Backport [https://github.com/WebKit/webkit/commit/c3cf651016e4cdcb4350598d4a586821071f91bf.patch] + +Signed-off-by: Khem Raj +--- + Source/WebCore/style/StyleResolver.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/style/StyleResolver.cpp b/Source/WebCore/style/StyleResolver.cpp +index 8bf371a0..34580ddb 100644 +--- a/Source/WebCore/style/StyleResolver.cpp ++++ b/Source/WebCore/style/StyleResolver.cpp +@@ -107,7 +107,7 @@ Resolver::Resolver(Document& document) + if (view) + m_mediaQueryEvaluator = MediaQueryEvaluator { view->mediaType() }; + else +- m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; ++ m_mediaQueryEvaluator = MediaQueryEvaluator { }; + + if (root) { + m_rootDefaultStyle = styleForElement(*root, m_document.renderStyle(), nullptr, RuleMatchingBehavior::MatchOnlyUserAgentRules).renderStyle; +-- +2.28.0 + diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb deleted file mode 100644 index 015809226..000000000 --- a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb +++ /dev/null @@ -1,131 +0,0 @@ -SUMMARY = "WebKit web rendering engine for the GTK+ platform" -HOMEPAGE = "https://www.webkitgtk.org/" -BUGTRACKER = "https://bugs.webkit.org/" - -LICENSE = "BSD & LGPLv2+" -LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ - file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ - file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ - file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ - " - -SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ - file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ - file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ - file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ - file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ - file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ - file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \ - file://cross-compile.patch \ - file://0001-Fix-build-with-musl.patch \ - file://include_array.patch \ - " -SRC_URI[sha256sum] = "f0898ac072c220e13a4aee819408421a6cb56a6eb89170ceafe52468b0903522" - -inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc - -ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" -REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" - -CVE_PRODUCT = "webkitgtk webkitgtk\+" - -DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libgcrypt \ - gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ - pango icu bison-native gawk intltool-native libwebp \ - atk udev harfbuzz jpeg libpng librsvg libtheora libvorbis \ - ruby-native libnotify gstreamer1.0-plugins-bad \ - gettext-native glib-2.0 glib-2.0-native libtasn1 \ - " - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ - enchant \ - libsecret \ - " - -PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" -PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" -PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" -PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" -PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" -PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" -PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" -PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" -PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" -PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" -PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" - -# webkitgtk is full of /usr/bin/env python, particular for generating docs -do_configure[postfuncs] += "setup_python_link" -setup_python_link() { - if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then - ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python - fi -} - -EXTRA_OECMAKE = " \ - -DPORT=GTK \ - -DCMAKE_BUILD_TYPE=Release \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ - ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ - -DENABLE_MINIBROWSER=ON \ - -DPYTHON_EXECUTABLE=`which python3` \ - -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ - " - -# Javascript JIT is not supported on ARC -EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " -# By default 25-bit "medium" calls are used on ARC -# which is not enough for binaries larger than 32 MiB -CFLAGS_append_arc = " -mlong-calls" -CXXFLAGS_append_arc = " -mlong-calls" - -# Javascript JIT is not supported on powerpc -EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " - -# ARM JIT code does not build on ARMv4/5/6 anymore -EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " - -EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " -EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " - -# JIT not supported on MIPS either -EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " - -# JIT not supported on X32 -# An attempt was made to upstream JIT support for x32 in -# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as -# unresolved due to limited X32 adoption. -EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " - -SECURITY_CFLAGS_remove_aarch64 = "-fpie" -SECURITY_CFLAGS_append_aarch64 = " -fPIE" - -FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" - -RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" - -# http://errors.yoctoproject.org/Errors/Details/20370/ -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" -ARM_INSTRUCTION_SET_armv6 = "arm" - -# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 -# https://bugs.webkit.org/show_bug.cgi?id=159880 -# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. -# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). -ARM_INSTRUCTION_SET_armv7a = "thumb" -ARM_INSTRUCTION_SET_armv7r = "thumb" -ARM_INSTRUCTION_SET_armv7ve = "thumb" - -# introspection inside qemu-arm hangs forever on musl/arm builds -# therefore disable GI_DATA -GI_DATA_ENABLED_libc-musl_armv7a = "False" -GI_DATA_ENABLED_libc-musl_armv7ve = "False" - -# Can't be built with ccache -CCACHE_DISABLE = "1" diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb new file mode 100644 index 000000000..8ebb3709a --- /dev/null +++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.4.bb @@ -0,0 +1,132 @@ +SUMMARY = "WebKit web rendering engine for the GTK+ platform" +HOMEPAGE = "https://www.webkitgtk.org/" +BUGTRACKER = "https://bugs.webkit.org/" + +LICENSE = "BSD & LGPLv2+" +LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \ + file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \ + file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \ + file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \ + " + +SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \ + file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \ + file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \ + file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \ + file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \ + file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \ + file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \ + file://cross-compile.patch \ + file://0001-Fix-build-with-musl.patch \ + file://include_array.patch \ + file://0001-clang-11-fix-build-errors-due-to-WWc-11-narrowing.patch \ + " +SRC_URI[sha256sum] = "821952e8c9303ed752f1fb1d4283f612c25249d00d705d2b79c2db1bc49c9464" + +inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc + +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" +REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}" + +CVE_PRODUCT = "webkitgtk webkitgtk\+" + +DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libgcrypt \ + gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \ + pango icu bison-native gawk intltool-native libwebp \ + atk udev harfbuzz jpeg libpng librsvg libtheora libvorbis \ + ruby-native libnotify gstreamer1.0-plugins-bad \ + gettext-native glib-2.0 glib-2.0-native libtasn1 \ + " + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \ + enchant \ + libsecret \ + " + +PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland libwpe wpebackend-fdo wayland-native" +PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11 libxcomposite libxdamage libxrender libxt" +PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue" +PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant2" +PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2" +PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl" +PACKAGECONFIG[opengl] = "-DENABLE_OPENGL=ON,-DENABLE_OPENGL=OFF,virtual/libgl" +PACKAGECONFIG[libsecret] = "-DUSE_LIBSECRET=ON,-DUSE_LIBSECRET=OFF,libsecret" +PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen" +PACKAGECONFIG[woff2] = "-DUSE_WOFF2=ON,-DUSE_WOFF2=OFF,woff2" +PACKAGECONFIG[openjpeg] = "-DUSE_OPENJPEG=ON,-DUSE_OPENJPEG=OFF,openjpeg" + +# webkitgtk is full of /usr/bin/env python, particular for generating docs +do_configure[postfuncs] += "setup_python_link" +setup_python_link() { + if [ ! -e ${STAGING_BINDIR_NATIVE}/python ]; then + ln -s `which python3` ${STAGING_BINDIR_NATIVE}/python + fi +} + +EXTRA_OECMAKE = " \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \ + ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \ + -DENABLE_MINIBROWSER=ON \ + -DPYTHON_EXECUTABLE=`which python3` \ + -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ + " + +# Javascript JIT is not supported on ARC +EXTRA_OECMAKE_append_arc = " -DENABLE_JIT=OFF " +# By default 25-bit "medium" calls are used on ARC +# which is not enough for binaries larger than 32 MiB +CFLAGS_append_arc = " -mlong-calls" +CXXFLAGS_append_arc = " -mlong-calls" + +# Javascript JIT is not supported on powerpc +EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF " + +# ARM JIT code does not build on ARMv4/5/6 anymore +EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF " +EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF " + +EXTRA_OECMAKE_append_mipsarch = " -DUSE_LD_GOLD=OFF " +EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF " + +# JIT not supported on MIPS either +EXTRA_OECMAKE_append_mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " + +# JIT not supported on X32 +# An attempt was made to upstream JIT support for x32 in +# https://bugs.webkit.org/show_bug.cgi?id=100450, but this was closed as +# unresolved due to limited X32 adoption. +EXTRA_OECMAKE_append_x86-x32 = " -DENABLE_JIT=OFF " + +SECURITY_CFLAGS_remove_aarch64 = "-fpie" +SECURITY_CFLAGS_append_aarch64 = " -fPIE" + +FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so" + +RRECOMMENDS_${PN} += "ca-certificates shared-mime-info" + +# http://errors.yoctoproject.org/Errors/Details/20370/ +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv6 = "arm" + +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474 +# https://bugs.webkit.org/show_bug.cgi?id=159880 +# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime. +# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb). +ARM_INSTRUCTION_SET_armv7a = "thumb" +ARM_INSTRUCTION_SET_armv7r = "thumb" +ARM_INSTRUCTION_SET_armv7ve = "thumb" + +# introspection inside qemu-arm hangs forever on musl/arm builds +# therefore disable GI_DATA +GI_DATA_ENABLED_libc-musl_armv7a = "False" +GI_DATA_ENABLED_libc-musl_armv7ve = "False" + +# Can't be built with ccache +CCACHE_DISABLE = "1" diff --git a/poky/meta/recipes-support/bash-completion/bash-completion_2.10.bb b/poky/meta/recipes-support/bash-completion/bash-completion_2.10.bb deleted file mode 100644 index 041af7490..000000000 --- a/poky/meta/recipes-support/bash-completion/bash-completion_2.10.bb +++ /dev/null @@ -1,37 +0,0 @@ -SUMMARY = "Programmable Completion for Bash 4" -HOMEPAGE = "http://bash-completion.alioth.debian.org/" -BUGTRACKER = "https://alioth.debian.org/projects/bash-completion/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" - -SECTION = "console/utils" - -SRC_URI = "https://github.com/scop/bash-completion/releases/download/${PV}/${BPN}-${PV}.tar.xz" - -SRC_URI[md5sum] = "f376ae3266cc70017aa833c39b76f984" -SRC_URI[sha256sum] = "123c17998e34b937ce57bb1b111cd817bc369309e9a8047c0bcf06ead4a3ec92" -UPSTREAM_CHECK_REGEX = "bash-completion-(?P(?!2008).+)\.tar" -UPSTREAM_CHECK_URI = "https://github.com/scop/bash-completion/releases" - -PARALLEL_MAKE = "" - -inherit autotools - -do_install_append() { - # compatdir - install -d ${D}${sysconfdir}/bash_completion.d/ - echo '. ${datadir}/${BPN}/bash_completion' >${D}${sysconfdir}/bash_completion - -} - -RDEPENDS_${PN} = "bash" - -# Some recipes are providing ${PN}-bash-completion packages -PACKAGES =+ "${PN}-extra" -FILES_${PN}-extra = "${datadir}/${BPN}/completions/ \ - ${datadir}/${BPN}/helpers/" - -FILES_${PN}-dev += "${datadir}/cmake" - -BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb b/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb new file mode 100644 index 000000000..da0baa7af --- /dev/null +++ b/poky/meta/recipes-support/bash-completion/bash-completion_2.11.bb @@ -0,0 +1,37 @@ +SUMMARY = "Programmable Completion for Bash 4" +HOMEPAGE = "http://bash-completion.alioth.debian.org/" +BUGTRACKER = "https://alioth.debian.org/projects/bash-completion/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SECTION = "console/utils" + +SRC_URI = "https://github.com/scop/bash-completion/releases/download/${PV}/${BPN}-${PV}.tar.xz" + +SRC_URI[md5sum] = "2514c6772d0de6254758b98c53f91861" +SRC_URI[sha256sum] = "73a8894bad94dee83ab468fa09f628daffd567e8bef1a24277f1e9a0daf911ac" +UPSTREAM_CHECK_REGEX = "bash-completion-(?P(?!2008).+)\.tar" +UPSTREAM_CHECK_URI = "https://github.com/scop/bash-completion/releases" + +PARALLEL_MAKE = "" + +inherit autotools + +do_install_append() { + # compatdir + install -d ${D}${sysconfdir}/bash_completion.d/ + echo '. ${datadir}/${BPN}/bash_completion' >${D}${sysconfdir}/bash_completion + +} + +RDEPENDS_${PN} = "bash" + +# Some recipes are providing ${PN}-bash-completion packages +PACKAGES =+ "${PN}-extra" +FILES_${PN}-extra = "${datadir}/${BPN}/completions/ \ + ${datadir}/${BPN}/helpers/" + +FILES_${PN}-dev += "${datadir}/cmake" + +BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-support/curl/curl_7.71.1.bb b/poky/meta/recipes-support/curl/curl_7.71.1.bb deleted file mode 100644 index f028f1fdd..000000000 --- a/poky/meta/recipes-support/curl/curl_7.71.1.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "Command line tool and library for client-side URL transfers" -HOMEPAGE = "http://curl.haxx.se/" -BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" -SECTION = "console/network" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" - -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ - file://0001-replace-krb5-config-with-pkg-config.patch \ -" - -SRC_URI[sha256sum] = "9d52a4d80554f9b0d460ea2be5d7be99897a1a9f681ffafe739169afd6b4f224" - -CVE_PRODUCT = "curl libcurl" -inherit autotools pkgconfig binconfig multilib_header - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" -PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" -PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" - -# 'ares' and 'threaded-resolver' are mutually exclusive -PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" -PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" -PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" -PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," -PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" -PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," -PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," -PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," -PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" -PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" -PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" -PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt," -PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" -PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," -PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," -PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" -PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," -PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," -PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," -PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" -PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" -PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," -PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," -PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" -PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" -PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" - -EXTRA_OECONF = " \ - --disable-libcurl-option \ - --disable-ntlm-wb \ - --enable-crypto-auth \ - --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ - --without-libmetalink \ - --without-libpsl \ - --enable-debug \ - --enable-optimize \ - --disable-curldebug \ -" - -do_install_append_class-target() { - # cleanup buildpaths from curl-config - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - ${D}${bindir}/curl-config -} - -PACKAGES =+ "lib${BPN}" - -FILES_lib${BPN} = "${libdir}/lib*.so.*" -RRECOMMENDS_lib${BPN} += "ca-certificates" - -FILES_${PN} += "${datadir}/zsh" - -inherit multilib_script -MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/curl/curl_7.72.0.bb b/poky/meta/recipes-support/curl/curl_7.72.0.bb new file mode 100644 index 000000000..e7f549269 --- /dev/null +++ b/poky/meta/recipes-support/curl/curl_7.72.0.bb @@ -0,0 +1,83 @@ +SUMMARY = "Command line tool and library for client-side URL transfers" +HOMEPAGE = "http://curl.haxx.se/" +BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" +SECTION = "console/network" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" + +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://0001-replace-krb5-config-with-pkg-config.patch \ +" + +SRC_URI[sha256sum] = "ad91970864102a59765e20ce16216efc9d6ad381471f7accceceab7d905703ef" + +CVE_PRODUCT = "curl libcurl" +inherit autotools pkgconfig binconfig multilib_header + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" +PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" +PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" + +# 'ares' and 'threaded-resolver' are mutually exclusive +PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" +PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" +PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" +PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" +PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," +PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," +PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," +PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" +PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" +PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" +PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt," +PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" +PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," +PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," +PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" +PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," +PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," +PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," +PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" +PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," +PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," +PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" +PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" +PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" + +EXTRA_OECONF = " \ + --disable-libcurl-option \ + --disable-ntlm-wb \ + --enable-crypto-auth \ + --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ + --without-libmetalink \ + --without-libpsl \ + --enable-debug \ + --enable-optimize \ + --disable-curldebug \ +" + +do_install_append_class-target() { + # cleanup buildpaths from curl-config + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + ${D}${bindir}/curl-config +} + +PACKAGES =+ "lib${BPN}" + +FILES_lib${BPN} = "${libdir}/lib*.so.*" +RRECOMMENDS_lib${BPN} += "ca-certificates" + +FILES_${PN} += "${datadir}/zsh" + +inherit multilib_script +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_151.bb b/poky/meta/recipes-support/diffoscope/diffoscope_151.bb deleted file mode 100644 index 9b39b4435..000000000 --- a/poky/meta/recipes-support/diffoscope/diffoscope_151.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "in-depth comparison of files, archives, and directories" -HOMEPAGE = "https://diffoscope.org/" -LICENSE = "GPL-3.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -PYPI_PACKAGE = "diffoscope" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "f15e04aa537f0a3d91c99bf631c604668f4eea8f6552c5f93ea9be2bf014df84" - -RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" - -# Dependencies don't build for musl -COMPATIBLE_HOST_libc-musl = 'null' - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_153.bb b/poky/meta/recipes-support/diffoscope/diffoscope_153.bb new file mode 100644 index 000000000..77f5254ae --- /dev/null +++ b/poky/meta/recipes-support/diffoscope/diffoscope_153.bb @@ -0,0 +1,17 @@ +SUMMARY = "in-depth comparison of files, archives, and directories" +HOMEPAGE = "https://diffoscope.org/" +LICENSE = "GPL-3.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +PYPI_PACKAGE = "diffoscope" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "b5104b5e72252df45ba6b7cbb0169e2e3407715b6b063fa5b38a2649b0d719a2" + +RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" + +# Dependencies don't build for musl +COMPATIBLE_HOST_libc-musl = 'null' + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb index ba9e6f06d..53d78b427 100644 --- a/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb +++ b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb @@ -12,6 +12,6 @@ UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" inherit meson lib_package pkgconfig -CVE_PRODUCT = "gnu_fribidi" +CVE_PRODUCT = "gnu_fribidi fribidi" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb b/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb index 9fc1ae24a..b51534351 100644 --- a/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb +++ b/poky/meta/recipes-support/gpgme/gpgme_1.13.1.bb @@ -59,7 +59,7 @@ EXTRA_OECONF += '--enable-languages="${LANGUAGES}" \ --disable-lang-python-test \ ' -inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} +inherit autotools texinfo binconfig-disabled pkgconfig distutils-common-base ${PYTHON_INHERIT} multilib_header export PKG_CONFIG='pkg-config' @@ -83,3 +83,7 @@ do_configure_prepend () { rm -f ${S}/m4/libassuan.m4 rm -f ${S}/m4/python.m4 } + +do_install_append() { + oe_multilib_header gpgme.h +} diff --git a/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch b/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch index 912f33f16..81fdd2a15 100644 --- a/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch +++ b/poky/meta/recipes-support/libcap/files/0001-tests-do-not-statically-link-a-test.patch @@ -1,4 +1,4 @@ -From 24d59c99bcba065f1f40f49f870a5f6483b4b078 Mon Sep 17 00:00:00 2001 +From e4fe6890e07821d60f01f000a95f7944f3d68139 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 15 Jan 2020 17:16:28 +0100 Subject: [PATCH] tests: do not statically link a test @@ -13,10 +13,10 @@ Signed-off-by: Alexander Kanavin 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Makefile b/tests/Makefile -index f9cec56..aa0d09b 100644 +index 876a8b9..93a0e3a 100644 --- a/tests/Makefile +++ b/tests/Makefile -@@ -29,23 +29,23 @@ psx_test_wrap: psx_test.c $(DEPS) +@@ -26,23 +26,23 @@ psx_test: psx_test.c $(DEPS) run_libcap_psx_test: libcap_psx_test libcap_psx_test: libcap_psx_test.c $(DEPS) @@ -43,4 +43,4 @@ index f9cec56..aa0d09b 100644 + $(CC) $(CFLAGS) $< -o $@ clean: - rm -f psx_test psx_test_wrap libcap_psx_test libcap_launch_test *~ + rm -f psx_test libcap_psx_test libcap_launch_test *~ diff --git a/poky/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch b/poky/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch index 26d108c20..e8f1df98c 100644 --- a/poky/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch +++ b/poky/meta/recipes-support/libcap/files/0002-tests-do-not-run-target-executables.patch @@ -1,4 +1,4 @@ -From 6309554225e05e76167eda4e0df383fb3d1a62c3 Mon Sep 17 00:00:00 2001 +From 5583b48c04d5bf50b56473d88d990c3f0bc45c14 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 20 Dec 2019 16:54:05 +0100 Subject: [PATCH] tests: do not run target executables @@ -7,23 +7,20 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin --- - tests/Makefile | 3 --- - 1 file changed, 3 deletions(-) + tests/Makefile | 2 -- + 1 file changed, 2 deletions(-) diff --git a/tests/Makefile b/tests/Makefile -index 95e4ca6..7162cf0 100644 +index bfedbc2..876a8b9 100644 --- a/tests/Makefile +++ b/tests/Makefile -@@ -19,8 +19,6 @@ sudotest: test +@@ -19,13 +19,11 @@ sudotest: test run_libcap_launch_test run_libcap_launch_test install: all - run_psx_test: psx_test psx_test_wrap + run_psx_test: psx_test - ./psx_test -- ./psx_test_wrap psx_test: psx_test.c $(DEPS) - $(CC) $(CFLAGS) $(IPATH) -DNOWRAP $< -o $@ $(LIBPSXLIB) -@@ -29,7 +27,6 @@ psx_test_wrap: psx_test.c $(DEPS) $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LIBPSXLIB) -Wl,-wrap,pthread_create run_libcap_psx_test: libcap_psx_test diff --git a/poky/meta/recipes-support/libcap/libcap_2.36.bb b/poky/meta/recipes-support/libcap/libcap_2.36.bb deleted file mode 100644 index 2c98db6ee..000000000 --- a/poky/meta/recipes-support/libcap/libcap_2.36.bb +++ /dev/null @@ -1,76 +0,0 @@ -SUMMARY = "Library for getting/setting POSIX.1e capabilities" -HOMEPAGE = "http://sites.google.com/site/fullycapable/" - -# no specific GPL version required -LICENSE = "BSD | GPLv2" -LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1" - -DEPENDS = "hostperl-runtime-native gperf-native" - -SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ - file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ - file://0002-tests-do-not-run-target-executables.patch \ - file://0001-tests-do-not-statically-link-a-test.patch \ - " -SRC_URI[sha256sum] = "5048c849bdbbe24d2ca59463142cb279abec5edf3ab6731ab35a596bcf538a49" - -UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" - -inherit lib_package - -# do NOT pass target cflags to host compilations -# -do_configure() { - # libcap uses := for compilers, fortunately, it gives us a hint - # on what should be replaced with ?= - sed -e 's,:=,?=,g' -i Make.Rules - sed -e 's,^BUILD_CFLAGS ?= ,BUILD_CFLAGS := $(BUILD_CFLAGS) ,' -i Make.Rules -} - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" -PACKAGECONFIG_class-native ??= "" - -PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" - -EXTRA_OEMAKE = " \ - INDENT= \ - lib='${baselib}' \ - RAISE_SETFCAP=no \ - DYNAMIC=yes \ - BUILD_GPERF=yes \ -" - -EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}" - -# these are present in the libcap defaults, so include in our CFLAGS too -CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" - -do_compile() { - oe_runmake ${PACKAGECONFIG_CONFARGS} -} - -do_install() { - oe_runmake install \ - ${PACKAGECONFIG_CONFARGS} \ - DESTDIR="${D}" \ - prefix="${prefix}" \ - SBINDIR="${sbindir}" -} - -do_install_append() { - # Move the library to base_libdir - install -d ${D}${base_libdir} - if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then - mv ${D}${libdir}/libcap* ${D}${base_libdir} - if [ -d ${D}${libdir}/security ]; then - mv ${D}${libdir}/security ${D}${base_libdir} - fi - fi -} - -FILES_${PN}-dev += "${base_libdir}/*.so" - -# pam files -FILES_${PN} += "${base_libdir}/security/*.so" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libcap/libcap_2.42.bb b/poky/meta/recipes-support/libcap/libcap_2.42.bb new file mode 100644 index 000000000..48f8f9262 --- /dev/null +++ b/poky/meta/recipes-support/libcap/libcap_2.42.bb @@ -0,0 +1,76 @@ +SUMMARY = "Library for getting/setting POSIX.1e capabilities" +HOMEPAGE = "http://sites.google.com/site/fullycapable/" + +# no specific GPL version required +LICENSE = "BSD | GPLv2" +LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1" + +DEPENDS = "hostperl-runtime-native gperf-native" + +SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \ + file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \ + file://0002-tests-do-not-run-target-executables.patch \ + file://0001-tests-do-not-statically-link-a-test.patch \ + " +SRC_URI[sha256sum] = "3605a9cb60076547ea9f64989e0ba576da9508e4653e8dc40ae54c0d6f443dfd" + +UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs/${BPN}2/" + +inherit lib_package + +# do NOT pass target cflags to host compilations +# +do_configure() { + # libcap uses := for compilers, fortunately, it gives us a hint + # on what should be replaced with ?= + sed -e 's,:=,?=,g' -i Make.Rules + sed -e 's,^BUILD_CFLAGS ?= ,BUILD_CFLAGS := $(BUILD_CFLAGS) ,' -i Make.Rules +} + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" +PACKAGECONFIG_class-native ??= "" + +PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam" + +EXTRA_OEMAKE = " \ + INDENT= \ + lib='${baselib}' \ + RAISE_SETFCAP=no \ + DYNAMIC=yes \ + BUILD_GPERF=yes \ +" + +EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}" + +# these are present in the libcap defaults, so include in our CFLAGS too +CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" + +do_compile() { + oe_runmake ${PACKAGECONFIG_CONFARGS} +} + +do_install() { + oe_runmake install \ + ${PACKAGECONFIG_CONFARGS} \ + DESTDIR="${D}" \ + prefix="${prefix}" \ + SBINDIR="${sbindir}" +} + +do_install_append() { + # Move the library to base_libdir + install -d ${D}${base_libdir} + if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then + mv ${D}${libdir}/libcap* ${D}${base_libdir} + if [ -d ${D}${libdir}/security ]; then + mv ${D}${libdir}/security ${D}${base_libdir} + fi + fi +} + +FILES_${PN}-dev += "${base_libdir}/*.so" + +# pam files +FILES_${PN} += "${base_libdir}/security/*.so" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.9.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.9.0.bb deleted file mode 100644 index a2116a492..000000000 --- a/poky/meta/recipes-support/libevdev/libevdev_1.9.0.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Wrapper library for evdev devices" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" -SECTION = "libs" - -LICENSE = "MIT-X" -LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ - file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" - -SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \ - file://determinism.patch" -SRC_URI[md5sum] = "13c3f0911f9326d4b9fa103365f84421" -SRC_URI[sha256sum] = "e7e18a64264f2dea19b6c50a481f8c062529d42919ccda0bc861495bce28eb9e" - -inherit autotools pkgconfig - -UPSTREAM_CHECK_REGEX = "libevdev-(?P(\d+\.)+(?!90\d+)\d+)" diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.9.1.bb b/poky/meta/recipes-support/libevdev/libevdev_1.9.1.bb new file mode 100644 index 000000000..633e0af99 --- /dev/null +++ b/poky/meta/recipes-support/libevdev/libevdev_1.9.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "Wrapper library for evdev devices" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" +SECTION = "libs" + +LICENSE = "MIT-X" +LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ + file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" + +SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz \ + file://determinism.patch" +SRC_URI[md5sum] = "58286a834ae14536caf9cab8633419cf" +SRC_URI[sha256sum] = "f5603c48c5afd76b14df7a5124e0a94a102f8da0d45826192325069d1bbc7acb" + +inherit autotools pkgconfig + +UPSTREAM_CHECK_REGEX = "libevdev-(?P(\d+\.)+(?!90\d+)\d+)" diff --git a/poky/meta/recipes-support/libexif/libexif_0.6.22.bb b/poky/meta/recipes-support/libexif/libexif_0.6.22.bb index a520d5c9f..2478ba07d 100644 --- a/poky/meta/recipes-support/libexif/libexif_0.6.22.bb +++ b/poky/meta/recipes-support/libexif/libexif_0.6.22.bb @@ -17,3 +17,5 @@ UPSTREAM_CHECK_URI = "https://github.com/libexif/libexif/releases/" inherit autotools gettext EXTRA_OECONF += "--disable-docs" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libffi/libffi_3.3.bb b/poky/meta/recipes-support/libffi/libffi_3.3.bb index e5beb985c..9dfdb9e39 100644 --- a/poky/meta/recipes-support/libffi/libffi_3.3.bb +++ b/poky/meta/recipes-support/libffi/libffi_3.3.bb @@ -28,7 +28,7 @@ EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'" inherit autotools texinfo multilib_header do_install_append() { - oe_multilib_header ffi.h + oe_multilib_header ffi.h ffitarget.h } FILES_${PN}-dev += "${libdir}/libffi-${PV}" diff --git a/poky/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch b/poky/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch new file mode 100644 index 000000000..e11487fe9 --- /dev/null +++ b/poky/meta/recipes-support/libunwind/libunwind/0001-Fix-compilation-with-fno-common.patch @@ -0,0 +1,448 @@ +From 00d18b21dcb9723c4f13889a39a760a654782370 Mon Sep 17 00:00:00 2001 +From: Yichao Yu +Date: Tue, 31 Mar 2020 00:43:32 -0400 +Subject: [PATCH] Fix compilation with -fno-common. + +Making all other archs consistent with IA64 which should not have this problem. +Also move the FIXME to the correct place. + +Also add some minimum comments about this... + +Upstream-Status: Backport [https://github.com/libunwind/libunwind/pull/166] +Signed-off-by: Khem Raj +--- + src/aarch64/Ginit.c | 15 +++++++-------- + src/arm/Ginit.c | 15 +++++++-------- + src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++ + src/hppa/Ginit.c | 15 +++++++-------- + src/ia64/Ginit.c | 1 + + src/mi/Gfind_dynamic_proc_info.c | 1 + + src/mips/Ginit.c | 15 +++++++-------- + src/ppc32/Ginit.c | 11 +++++++---- + src/ppc64/Ginit.c | 11 +++++++---- + src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++ + src/s390x/Ginit.c | 15 +++++++-------- + src/sh/Ginit.c | 15 +++++++-------- + src/tilegx/Ginit.c | 15 +++++++-------- + src/x86/Ginit.c | 15 +++++++-------- + src/x86_64/Ginit.c | 15 +++++++-------- + 15 files changed, 89 insertions(+), 80 deletions(-) + +diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c +index dec235c..3538976 100644 +--- a/src/aarch64/Ginit.c ++++ b/src/aarch64/Ginit.c +@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -78,7 +71,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/arm/Ginit.c b/src/arm/Ginit.c +index 2720d06..0bac0d7 100644 +--- a/src/arm/Ginit.c ++++ b/src/arm/Ginit.c +@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coredump/_UPT_get_dyn_info_list_addr.c +index 0d11905..739ed05 100644 +--- a/src/coredump/_UPT_get_dyn_info_list_addr.c ++++ b/src/coredump/_UPT_get_dyn_info_list_addr.c +@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + + #else + ++/* XXX fix me: there is currently no way to locate the dyn-info list ++ by a remote unwinder. On ia64, this is done via a special ++ unwind-table entry. Perhaps something similar can be done with ++ DWARF2 unwind info. */ ++ + static inline int + get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + int *countp) +diff --git a/src/hppa/Ginit.c b/src/hppa/Ginit.c +index 461e4b9..265455a 100644 +--- a/src/hppa/Ginit.c ++++ b/src/hppa/Ginit.c +@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -81,7 +74,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/ia64/Ginit.c b/src/ia64/Ginit.c +index b09a2ad..8601bb3 100644 +--- a/src/ia64/Ginit.c ++++ b/src/ia64/Ginit.c +@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + if (!_U_dyn_info_list_addr) + return -UNW_ENOINFO; + #endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. + *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } +diff --git a/src/mi/Gfind_dynamic_proc_info.c b/src/mi/Gfind_dynamic_proc_info.c +index 98d3501..2e7c62e 100644 +--- a/src/mi/Gfind_dynamic_proc_info.c ++++ b/src/mi/Gfind_dynamic_proc_info.c +@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, + return -UNW_ENOINFO; + #endif + ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. + list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr (); + for (di = list->first; di; di = di->next) + if (ip >= di->start_ip && ip < di->end_ip) +diff --git a/src/mips/Ginit.c b/src/mips/Ginit.c +index 3df170c..bf7a8f5 100644 +--- a/src/mips/Ginit.c ++++ b/src/mips/Ginit.c +@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -86,7 +79,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c +index c5312d9..f8d6886 100644 +--- a/src/ppc32/Ginit.c ++++ b/src/ppc32/Ginit.c +@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -104,7 +101,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/ppc64/Ginit.c b/src/ppc64/Ginit.c +index 4c88cd6..7bfb395 100644 +--- a/src/ppc64/Ginit.c ++++ b/src/ppc64/Ginit.c +@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -108,7 +105,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/ptrace/_UPT_get_dyn_info_list_addr.c +index cc5ed04..16671d4 100644 +--- a/src/ptrace/_UPT_get_dyn_info_list_addr.c ++++ b/src/ptrace/_UPT_get_dyn_info_list_addr.c +@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + + #else + ++/* XXX fix me: there is currently no way to locate the dyn-info list ++ by a remote unwinder. On ia64, this is done via a special ++ unwind-table entry. Perhaps something similar can be done with ++ DWARF2 unwind info. */ ++ + static inline int + get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, + int *countp) +diff --git a/src/s390x/Ginit.c b/src/s390x/Ginit.c +index f0886ac..db01743 100644 +--- a/src/s390x/Ginit.c ++++ b/src/s390x/Ginit.c +@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space; + + unw_addr_space_t unw_local_addr_space = &local_addr_space; + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- + static inline void * + uc_addr (ucontext_t *uc, int reg) + { +@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -90,7 +83,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/sh/Ginit.c b/src/sh/Ginit.c +index 52988a7..9fe96d2 100644 +--- a/src/sh/Ginit.c ++++ b/src/sh/Ginit.c +@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -75,7 +68,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/tilegx/Ginit.c b/src/tilegx/Ginit.c +index 7564a55..925e641 100644 +--- a/src/tilegx/Ginit.c ++++ b/src/tilegx/Ginit.c +@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -81,7 +74,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c +index f6b8dc2..3cec74a 100644 +--- a/src/x86/Ginit.c ++++ b/src/x86/Ginit.c +@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg) + + # endif /* UNW_LOCAL_ONLY */ + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -71,7 +64,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c +index 6161da6..5c4e426 100644 +--- a/src/x86_64/Ginit.c ++++ b/src/x86_64/Ginit.c +@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space; + + unw_addr_space_t unw_local_addr_space = &local_addr_space; + +-HIDDEN unw_dyn_info_list_t _U_dyn_info_list; +- +-/* XXX fix me: there is currently no way to locate the dyn-info list +- by a remote unwinder. On ia64, this is done via a special +- unwind-table entry. Perhaps something similar can be done with +- DWARF2 unwind info. */ +- + static void + put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg) + { +@@ -66,7 +59,13 @@ static int + get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr, + void *arg) + { +- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list; ++#ifndef UNW_LOCAL_ONLY ++# pragma weak _U_dyn_info_list_addr ++ if (!_U_dyn_info_list_addr) ++ return -UNW_ENOINFO; ++#endif ++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so. ++ *dyn_info_list_addr = _U_dyn_info_list_addr (); + return 0; + } + +-- +2.28.0 + diff --git a/poky/meta/recipes-support/libunwind/libunwind_1.4.0.bb b/poky/meta/recipes-support/libunwind/libunwind_1.4.0.bb index 34c2249e9..2193bd831 100644 --- a/poky/meta/recipes-support/libunwind/libunwind_1.4.0.bb +++ b/poky/meta/recipes-support/libunwind/libunwind_1.4.0.bb @@ -8,6 +8,7 @@ SRC_URI = "http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PV file://0005-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \ file://0006-Fix-for-X32.patch \ file://sigset_t.patch \ + file://0001-Fix-compilation-with-fno-common.patch \ " SRC_URI_append_libc-musl = " file://musl-header-conflict.patch" diff --git a/poky/meta/recipes-support/popt/popt/disable_tests.patch b/poky/meta/recipes-support/popt/popt/disable_tests.patch deleted file mode 100644 index 016cf66a2..000000000 --- a/poky/meta/recipes-support/popt/popt/disable_tests.patch +++ /dev/null @@ -1,21 +0,0 @@ -Use of $(top_srcdir) in TESTS is an error which causes -automake-1.13 to abort. Just remove tests. - -Upstream-Status: Inappropriate [disable feature] - -Signed-off-by: Marko Lindqvist -diff -Nurd popt-1.16/Makefile.am popt-1.16/Makefile.am ---- popt-1.16/Makefile.am 2010-05-04 23:55:54.000000000 +0300 -+++ popt-1.16/Makefile.am 2013-01-02 13:34:29.540361391 +0200 -@@ -34,11 +34,6 @@ - - noinst_SCRIPTS = testit.sh - --TESTS_ENVIRONMENT = \ --test1="$(top_builddir)/test1" -- --TESTS = $(top_srcdir)/testit.sh -- - include_HEADERS = popt.h - - usrlibdir = $(libdir) diff --git a/poky/meta/recipes-support/popt/popt/pkgconfig_fix.patch b/poky/meta/recipes-support/popt/popt/pkgconfig_fix.patch deleted file mode 100644 index 0bddbf8c9..000000000 --- a/poky/meta/recipes-support/popt/popt/pkgconfig_fix.patch +++ /dev/null @@ -1,15 +0,0 @@ -Upstream-Status: Pending - -Install the pkgconfig file into libdir. - ---- popt-1.16.orig/Makefile.am 2012-04-26 13:42:54.021139813 +0800 -+++ popt-1.16/Makefile.am 2012-04-26 13:36:03.552096912 +0800 -@@ -47,7 +47,7 @@ - libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c - libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@ - --pkgconfigdir = $(prefix)/lib/pkgconfig -+pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = popt.pc - - if HAVE_LD_VERSION_SCRIPT diff --git a/poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch b/poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch deleted file mode 100644 index 7d74aadff..000000000 --- a/poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch +++ /dev/null @@ -1,21 +0,0 @@ -Upstream-Status: pending - -This patch avoids this error with automake 1.12: - -| configure.ac:49: error: automatic de-ANSI-fication support has been removed - -Signed-off-by: Nitin A Kamble -2012/05/02 - -Index: popt-1.16/configure.ac -=================================================================== ---- popt-1.16.orig/configure.ac -+++ popt-1.16/configure.ac -@@ -46,7 +46,6 @@ AC_GCC_TRADITIONAL - AC_SYS_LARGEFILE - - AC_ISC_POSIX --AM_C_PROTOTYPES - - AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h) - diff --git a/poky/meta/recipes-support/popt/popt_1.16.bb b/poky/meta/recipes-support/popt/popt_1.16.bb deleted file mode 100644 index 27e49c2ca..000000000 --- a/poky/meta/recipes-support/popt/popt_1.16.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Library for parsing command line options" -HOMEPAGE = "http://rpm5.org/" -SECTION = "libs" - -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d" -PR = "r3" - -DEPENDS = "virtual/libiconv" - -SRC_URI = "http://anduin.linuxfromscratch.org/BLFS/popt/popt-${PV}.tar.gz \ - file://pkgconfig_fix.patch \ - file://popt_fix_for_automake-1.12.patch \ - file://disable_tests.patch \ - " - -SRC_URI[md5sum] = "3743beefa3dd6247a73f8f7a32c14c33" -SRC_URI[sha256sum] = "e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8" - -inherit autotools gettext - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/popt/popt_1.18.bb b/poky/meta/recipes-support/popt/popt_1.18.bb new file mode 100644 index 000000000..022ece5f4 --- /dev/null +++ b/poky/meta/recipes-support/popt/popt_1.18.bb @@ -0,0 +1,15 @@ +SUMMARY = "Library for parsing command line options" +HOMEPAGE = "https://www.rpm.org/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d" + +DEPENDS = "virtual/libiconv" + +SRC_URI = "http://ftp.rpm.org/popt/releases/popt-1.x/${BP}.tar.gz" +SRC_URI[sha256sum] = "5159bc03a20b28ce363aa96765f37df99ea4d8850b1ece17d1e6ad5c24fdc5d1" + +inherit autotools gettext + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/re2c/re2c/CVE-2020-11958.patch b/poky/meta/recipes-support/re2c/re2c/CVE-2020-11958.patch deleted file mode 100644 index 43462e642..000000000 --- a/poky/meta/recipes-support/re2c/re2c/CVE-2020-11958.patch +++ /dev/null @@ -1,41 +0,0 @@ -From c4603ba5ce229db83a2a4fb93e6d4b4e3ec3776a Mon Sep 17 00:00:00 2001 -From: Ulya Trofimovich -Date: Fri, 17 Apr 2020 22:47:14 +0100 -Subject: [PATCH] Fix crash in lexer refill (reported by Agostino Sarubbo). - -The crash happened in a rare case of a very long lexeme that doen't fit -into the buffer, forcing buffer reallocation. - -The crash was caused by an incorrect calculation of the shift offset -(it was smaller than necessary). As a consequence, the data from buffer -start and up to the beginning of the current lexeme was not discarded -(as it should have been), resulting in less free space for new data than -expected. - -Upstream-Status: Backport [https://github.com/skvadrik/re2c/commit/c4603ba5ce229db83a2a4fb93e6d4b4e3ec3776a] -CVE: CVE-2020-11958 -Signed-off-by: Lee Chee Yang ---- - src/parse/scanner.cc | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/parse/scanner.cc b/src/parse/scanner.cc -index 1d6e9efa..bd651314 100644 ---- a/src/parse/scanner.cc -+++ b/src/parse/scanner.cc -@@ -155,13 +155,14 @@ bool Scanner::fill(size_t need) - if (!buf) fatal("out of memory"); - - memmove(buf, tok, copy); -- shift_ptrs_and_fpos(buf - bot); -+ shift_ptrs_and_fpos(buf - tok); - delete [] bot; - bot = buf; - - free = BSIZE - copy; - } - -+ DASSERT(lim + free <= bot + BSIZE); - if (!read(free)) { - eof = lim; - memset(lim, 0, YYMAXFILL); diff --git a/poky/meta/recipes-support/re2c/re2c_1.3.bb b/poky/meta/recipes-support/re2c/re2c_1.3.bb deleted file mode 100644 index e9053acdf..000000000 --- a/poky/meta/recipes-support/re2c/re2c_1.3.bb +++ /dev/null @@ -1,16 +0,0 @@ -SUMMARY = "Tool for writing very fast and very flexible scanners" -HOMEPAGE = "http://re2c.sourceforge.net/" -AUTHOR = "Marcus Börger " -SECTION = "devel" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" - -SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz \ - file://CVE-2020-11958.patch \ -" -SRC_URI[sha256sum] = "f37f25ff760e90088e7d03d1232002c2c2672646d5844fdf8e0d51a5cd75a503" -UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases" - -BBCLASSEXTEND = "native nativesdk" - -inherit autotools diff --git a/poky/meta/recipes-support/re2c/re2c_2.0.bb b/poky/meta/recipes-support/re2c/re2c_2.0.bb new file mode 100644 index 000000000..b73b02407 --- /dev/null +++ b/poky/meta/recipes-support/re2c/re2c_2.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Tool for writing very fast and very flexible scanners" +HOMEPAGE = "http://re2c.sourceforge.net/" +AUTHOR = "Marcus Börger " +SECTION = "devel" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d" + +SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "89a9d7ee14be10e3779ea7b2c8ea4a964afce6e76b8dbcd5479940681db46d20" +UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases" + +BBCLASSEXTEND = "native nativesdk" + +inherit autotools diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.32.3.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.32.3.bb deleted file mode 100644 index 1d4e8d477..000000000 --- a/poky/meta/recipes-support/sqlite/sqlite3_3.32.3.bb +++ /dev/null @@ -1,11 +0,0 @@ -require sqlite3.inc - -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" - -SRC_URI = "http://www.sqlite.org/2020/sqlite-autoconf-${SQLITE_PV}.tar.gz" -SRC_URI[md5sum] = "2e3911a3c15e85c2f2d040154bbe5ce3" -SRC_URI[sha256sum] = "a31507123c1c2e3a210afec19525fd7b5bb1e19a6a34ae5b998fbd7302568b66" - -# -19242 is only an issue in specific development branch commits -CVE_CHECK_WHITELIST += "CVE-2019-19242" diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.33.0.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.33.0.bb new file mode 100644 index 000000000..611a1bd92 --- /dev/null +++ b/poky/meta/recipes-support/sqlite/sqlite3_3.33.0.bb @@ -0,0 +1,10 @@ +require sqlite3.inc + +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66" + +SRC_URI = "http://www.sqlite.org/2020/sqlite-autoconf-${SQLITE_PV}.tar.gz" +SRC_URI[sha256sum] = "106a2c48c7f75a298a7557bcc0d5f4f454e5b43811cc738b7ca294d6956bbb15" + +# -19242 is only an issue in specific development branch commits +CVE_CHECK_WHITELIST += "CVE-2019-19242" diff --git a/poky/scripts/lib/checklayer/__init__.py b/poky/scripts/lib/checklayer/__init__.py index f625d5989..fe545607b 100644 --- a/poky/scripts/lib/checklayer/__init__.py +++ b/poky/scripts/lib/checklayer/__init__.py @@ -229,6 +229,20 @@ def add_layers(bblayersconf, layers, logger): f.write("\nBBLAYERS += \"%s\"\n" % path) return True +def check_bblayers(bblayersconf, layer_path, logger): + ''' + If layer_path found in BBLAYERS return True + ''' + import bb.parse + import bb.data + + ldata = bb.parse.handle(bblayersconf, bb.data.init(), include=True) + for bblayer in (ldata.getVar('BBLAYERS') or '').split(): + if os.path.normpath(bblayer) == os.path.normpath(layer_path): + return True + + return False + def check_command(error_msg, cmd, cwd=None): ''' Run a command under a shell, capture stdout and stderr in a single stream, diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py index 2cfdc10ec..14c172357 100644 --- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -13,6 +13,9 @@ import logging import os import shutil +import re + +from glob import glob from wic import WicError from wic.engine import get_custom_config @@ -209,6 +212,57 @@ class BootimgEFIPlugin(SourcePlugin): except KeyError: raise WicError("bootimg-efi requires a loader, none specified") + if get_bitbake_var("IMAGE_BOOT_FILES") is None: + logger.debug('No boot files defined in IMAGE_BOOT_FILES') + else: + boot_files = None + for (fmt, id) in (("_uuid-%s", part.uuid), ("_label-%s", part.label), (None, None)): + if fmt: + var = fmt % id + else: + var = "" + + boot_files = get_bitbake_var("IMAGE_BOOT_FILES" + var) + if boot_files: + break + + logger.debug('Boot files: %s', boot_files) + + # list of tuples (src_name, dst_name) + deploy_files = [] + for src_entry in re.findall(r'[\w;\-\./\*]+', boot_files): + if ';' in src_entry: + dst_entry = tuple(src_entry.split(';')) + if not dst_entry[0] or not dst_entry[1]: + raise WicError('Malformed boot file entry: %s' % src_entry) + else: + dst_entry = (src_entry, src_entry) + + logger.debug('Destination entry: %r', dst_entry) + deploy_files.append(dst_entry) + + cls.install_task = []; + for deploy_entry in deploy_files: + src, dst = deploy_entry + if '*' in src: + # by default install files under their basename + entry_name_fn = os.path.basename + if dst != src: + # unless a target name was given, then treat name + # as a directory and append a basename + entry_name_fn = lambda name: \ + os.path.join(dst, + os.path.basename(name)) + + srcs = glob(os.path.join(kernel_dir, src)) + + logger.debug('Globbed sources: %s', ', '.join(srcs)) + for entry in srcs: + src = os.path.relpath(entry, kernel_dir) + entry_dst_name = entry_name_fn(entry) + cls.install_task.append((src, entry_dst_name)) + else: + cls.install_task.append((src, dst)) @classmethod def do_prepare_partition(cls, part, source_params, creator, cr_workdir, @@ -238,6 +292,12 @@ class BootimgEFIPlugin(SourcePlugin): (staging_kernel_dir, kernel, hdddir, kernel) exec_cmd(install_cmd) + if get_bitbake_var("IMAGE_BOOT_FILES"): + for src_path, dst_path in cls.install_task: + install_cmd = "install -m 0644 -D %s %s" \ + % (os.path.join(kernel_dir, src_path), + os.path.join(hdddir, dst_path)) + exec_cmd(install_cmd) try: if source_params['loader'] == 'grub-efi': diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py index 138986a71..5dbe2558d 100644 --- a/poky/scripts/lib/wic/plugins/source/bootimg-partition.py +++ b/poky/scripts/lib/wic/plugins/source/bootimg-partition.py @@ -141,7 +141,7 @@ class BootimgPartitionPlugin(SourcePlugin): break if not kernel_name: - raise WicError('No kernel file founded') + raise WicError('No kernel file found') # Compose the extlinux.conf extlinux_conf = "default Yocto\n" diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu index f2168c18a..7fb5f7db5 100755 --- a/poky/scripts/runqemu +++ b/poky/scripts/runqemu @@ -478,7 +478,8 @@ class BaseConfig(object): self.qemu_opt_script += ' -display gtk,show-cursor=on' elif arg == 'gl' or arg == 'gl-es': # These args are handled inside sdl or gtk blocks above - pass + if ('gtk' not in sys.argv) and ('sdl' not in sys.argv): + raise RunQemuError('Option %s also needs gtk or sdl option.' % (arg)) elif arg == 'egl-headless': self.set_dri_path() self.qemu_opt_script += ' -vga virtio -display egl-headless,show-cursor=on' @@ -585,10 +586,10 @@ class BaseConfig(object): logger.error("For further help see:") raise RunQemuError(yocto_paravirt_kvm_wiki) - if not os.access(dev_kvm, os.W_OK|os.R_OK): + if not os.access(dev_vhost, os.W_OK|os.R_OK): logger.error("You have no read or write permission on /dev/vhost-net.") logger.error("Please change the ownership of this file as described at:") - raise RunQemuError(yocto_kvm_wiki) + raise RunQemuError(yocto_paravirt_kvm_wiki) def check_fstype(self): """Check and setup FSTYPE""" diff --git a/poky/scripts/yocto-check-layer b/poky/scripts/yocto-check-layer index ca6c79bc8..b7c83c8b5 100755 --- a/poky/scripts/yocto-check-layer +++ b/poky/scripts/yocto-check-layer @@ -24,7 +24,7 @@ import scriptpath scriptpath.add_oe_lib_path() scriptpath.add_bitbake_lib_path() -from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures +from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures, check_bblayers from oeqa.utils.commands import get_bb_vars PROGNAME = 'yocto-check-layer' @@ -138,6 +138,13 @@ def main(): layer['type'] == LayerType.ERROR_BSP_DISTRO: continue + if check_bblayers(bblayersconf, layer['path'], logger): + logger.info("%s already in %s. To capture initial signatures, layer under test should not present " + "in BBLAYERS. Please remove %s from BBLAYERS." % (layer['name'], bblayersconf, layer['name'])) + results[layer['name']] = None + results_status[layer['name']] = 'SKIPPED (Layer under test should not present in BBLAYERS)' + continue + logger.info('') logger.info("Setting up for %s(%s), %s" % (layer['name'], layer['type'], layer['path'])) -- cgit v1.2.3 From c3d88e4d9fcc08e1aae7cc9d0337c0261e996c64 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 2 Oct 2020 09:45:00 -0500 Subject: poky: subtree update:c6bc20857c..b23aa6b753 Anatol Belski (1): bitbake: bitbake: hashserv: Fix localhost sometimes resolved to a wrong IP Andrew Geissler (1): systemd: Upgrade v246.2 -> v246.6 Anibal Limon (1): mesa: update 20.1.6 -> 20.1.8 Bruce Ashfield (2): linux-yocto/beaglebone: Switch to sdhci-omap driver kernel-yocto: add KBUILD_DEFCONFIG search location to failure message Changqing Li (1): sysklogd: fix parallel build issue Charlie Davies (2): bitbake: bitbake: fetch/git: add support for SRC_URI containing spaces in url bitbake: bitbake: tests/fetch: add unit tests for SRC_URI with spaces in url Chee Yang Lee (1): bash : include patch 17 & 18 Chen Qi (2): populate_sdk_ext.bbclass: add ESDK_MANIFEST_EXCLUDES testsdk.py: remove workspace/sources to avoid failure in case of multilib Chris Laplante (3): bitbake.conf: add name of multiconfig to BUILDCFG_HEADER when multiconfig is active cve-check: introduce CVE_CHECK_RECIPE_FILE variable to allow changing of per-recipe check file cve-check: add CVE_CHECK_REPORT_PATCHED variable to suppress reporting of patched CVEs Christian Eggers (1): packagegroup: rrecommend perf also for musl on ARM De Huo (1): bash: fix CVE-2019-18276 Jean-Francois Dagenais (2): bitbake: bitbake: tests/siggen: introduce clean_basepath testcases bitbake: bitbake: siggen: clean_basepath: improve perfo and readability Jens Rehsack (1): image-artifact-names: make variables overridable Jon Mason (1): Space-comma Cleanups Jonathan Richardson (1): cortex-m0.inc: Add tuning for cortex-m0 Kai Kang (2): systemd: disable xdg-autostart generator by default kea: fix conflict between multilibs Khairul Rohaizzat Jamaluddin (1): sphinx: ref-variables: Added entry for IMAGE_EFI_BOOT_FILES Khem Raj (6): ncurses: Create alternative symlinks for st and st-256color packagegroups: remove strace and lttng-tools for rv32/musl qemuboot: Add QB_RNG variable gettext: Fix ptest failure ptest-runner: Backport patch to fix inappropriate ioctl error systemd: Drop 0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch Konrad Weihmann (1): testexport: rename create_tarball method Leif Middelschulte (2): bitbake: fetch2: fix handling of `\` in file:// SRC_URI bitbake: tests/fetch: backslash support in file:// URIs Mark Jonas (2): Add license text for PSF-2.0 Map license names PSF and PSFv2 to PSF-2.0 Mingli Yu (3): kea: create /var/lib/kea and /var/run/kea folder bind: remove -r option for rndc-confgen debianutils: update the debian snapshot version Nicolas Dechesne (3): sphinx: report errors when dependencies are not met README: include detailed information about sphinx sphinx: fix up some trademark and branding issues Norman Stetter (1): sstate.bbclass: Check file ownership before doing 'touch -a' Otavio Salvador (1): openssh: Allow enable/disable of rng-tools recommendation on sshd Peter A. Bigot (1): go-mod.bbclass: use append to add `modcacherw` Quentin Schulz (2): docs: static: theme_overrides.css: fix responsive design on <640px screens docs: fix broken links Randy MacLeod (1): curl: Change SRC_URI from http to https Rasmus Villemoes (1): kernel.bbclass: ensure symlink_kernsrc task gets run even with externalsrc Richard Purdie (15): scripts/oe-build-perf-report: Use python3 from the environment dropbear/openssh: Lower priority of key generation oeqa/qemurunner: Increase serial timeout python3-markupsafe: Import from meta-oe/meta-python python3-jinja2: Import from meta-oe/meta-python buildtools-tarball: Add python3-jinja2 buildtools-tarball: Fix conflicts with oe-selftest and other tooling oeqa/selftest/incompatible_lib: Fix append usage oeqa/selftest/containerimage: Update to match assumptions in configuration ssh-pregen-hostkeys: Add a recipe with pregenerated ssh host keys build-appliance-image: Update to master head revision bitbake: Revert "bitbake-layers: add signal hander to avoid exception" staging: Ensure cleaned dependencies are added oeqa/selftest/devtool: Add sync call to test teardown bitbake: cooker: Avoid tracebacks if data was never setup Ross Burton (11): gettext: no need to depend on bison-native meta: add/fix invalid Upstream-Status tags bitbake: taskexp: update for GTK API changes glibc: make nscd optional utils: respect scheduler affinity in cpu_count() rpm: disable libarchive use sstate: set mode explicitly when creating directories in sstate-cache rpm: add PACKAGECONFIG for the systemd inhibit plugin boost: move the build directory outside of S bitbake: utils: add umask changing context manager bitbake: siggen: use correct umask when writing siginfo Saul Wold (2): testimage: Add testimage_dump_target to kwargs target/ssh.py: Add dump_target support Teoh Jay Shen (1): oeqa/runtime : add test for RTC(Real Time Clock) Tim Orling (1): oeqa/selftest/cases/devtool.py: avoid .pyc race Usama Arif (1): ref-manual: document authentication key variables Wang Mingyu (1): maintainers.inc: Add Zang Ruochen and Wang Mingyu for several recipes Yi Zhao (4): dhcpcd: pass --dbdir to EXTRA_OECONF to set database directory dhcpcd: set --runstatedir to /run dhcpcd: add dhcpcd user to support priviledge separation dhcpcd: set service to conflict with connman akuster (1): libdrm: fix build failure zangrc (4): bind: upgrade 9.16.5 -> 9.16.7 stress-ng: upgrade 0.11.19 -> 0.11.21 pango: upgrade 1.46.1 -> 1.46.2 sudo: upgrade 1.9.2 -> 1.9.3 Signed-off-by: Andrew Geissler Change-Id: I2c19d3b3793ee5a6f42e04817147d75f315943a5 --- poky/bitbake/bin/bitbake-layers | 2 - poky/bitbake/bin/bitbake-selftest | 1 + poky/bitbake/lib/bb/cooker.py | 3 +- poky/bitbake/lib/bb/fetch2/__init__.py | 2 +- poky/bitbake/lib/bb/fetch2/git.py | 12 +- poky/bitbake/lib/bb/siggen.py | 33 +- poky/bitbake/lib/bb/tests/fetch.py | 52 ++ poky/bitbake/lib/bb/tests/siggen.py | 91 +++ poky/bitbake/lib/bb/ui/taskexp.py | 7 +- poky/bitbake/lib/bb/utils.py | 11 + poky/bitbake/lib/hashserv/tests.py | 7 +- poky/documentation/Makefile.sphinx | 4 + poky/documentation/README | 283 +++++++- poky/documentation/_templates/footer.html | 12 + poky/documentation/conf.py | 16 +- .../dev-manual/dev-manual-common-tasks.rst | 13 +- poky/documentation/dev-manual/dev-manual-qemu.rst | 2 +- poky/documentation/dev-manual/dev-manual-start.rst | 10 +- poky/documentation/index.rst | 4 +- .../overview-manual/overview-manual-concepts.rst | 2 +- .../overview-manual-development-environment.rst | 6 +- .../overview-manual/overview-manual-yp-intro.rst | 2 +- poky/documentation/ref-manual/migration-1.5.rst | 2 +- poky/documentation/ref-manual/ref-classes.rst | 4 +- poky/documentation/ref-manual/ref-images.rst | 2 +- poky/documentation/ref-manual/ref-terms.rst | 2 +- poky/documentation/ref-manual/ref-variables.rst | 65 +- .../sdk-manual/sdk-appendix-obtain.rst | 6 +- poky/documentation/sdk-manual/sdk-extensible.rst | 2 +- poky/documentation/sdk-manual/sdk-intro.rst | 4 +- poky/documentation/sdk-manual/sdk-using.rst | 2 +- .../sphinx-static/theme_overrides.css | 2 - poky/documentation/sphinx/yocto-vars.py | 11 +- poky/meta/classes/cve-check.bbclass | 42 +- poky/meta/classes/go-mod.bbclass | 2 +- poky/meta/classes/image-artifact-names.bbclass | 8 +- poky/meta/classes/kernel-yocto.bbclass | 2 +- poky/meta/classes/kernel.bbclass | 5 +- poky/meta/classes/linuxloader.bbclass | 2 +- poky/meta/classes/populate_sdk_ext.bbclass | 6 + poky/meta/classes/qemuboot.bbclass | 4 + poky/meta/classes/rootfs_rpm.bbclass | 2 +- poky/meta/classes/sstate.bbclass | 4 +- poky/meta/classes/staging.bbclass | 2 +- poky/meta/classes/testexport.bbclass | 8 +- poky/meta/classes/testimage.bbclass | 1 + poky/meta/conf/bitbake.conf | 2 +- poky/meta/conf/distro/include/maintainers.inc | 39 +- poky/meta/conf/licenses.conf | 6 +- poky/meta/conf/machine/include/arm/arch-arm64.inc | 10 +- poky/meta/conf/machine/include/arm/arch-armv4.inc | 2 +- poky/meta/conf/machine/include/arm/arch-armv5.inc | 2 +- poky/meta/conf/machine/include/arm/arch-armv6.inc | 2 +- poky/meta/conf/machine/include/arm/arch-armv6m.inc | 2 +- poky/meta/conf/machine/include/arm/arch-armv7a.inc | 2 +- .../meta/conf/machine/include/arm/arch-armv7ve.inc | 2 +- .../conf/machine/include/arm/arch-armv8-2a.inc | 2 +- poky/meta/conf/machine/include/arm/arch-armv8a.inc | 2 +- poky/meta/conf/machine/include/mips/arch-mips.inc | 16 +- poky/meta/conf/machine/include/qemuboot-mips.inc | 2 - poky/meta/conf/machine/include/qemuboot-x86.inc | 2 - poky/meta/conf/machine/include/riscv/qemuriscv.inc | 3 - .../meta/conf/machine/include/tune-arm1136jf-s.inc | 2 +- .../meta/conf/machine/include/tune-arm1176jz-s.inc | 2 +- poky/meta/conf/machine/include/tune-arm920t.inc | 2 +- poky/meta/conf/machine/include/tune-arm926ejs.inc | 2 +- poky/meta/conf/machine/include/tune-arm9tdmi.inc | 2 +- poky/meta/conf/machine/include/tune-cortex-m0.inc | 11 + poky/meta/conf/machine/include/tune-cortexa15.inc | 2 +- poky/meta/conf/machine/include/tune-cortexa17.inc | 2 +- poky/meta/conf/machine/include/tune-cortexa5.inc | 2 +- .../machine/include/tune-cortexa57-cortexa53.inc | 2 +- poky/meta/conf/machine/include/tune-cortexa7.inc | 2 +- .../machine/include/tune-cortexa72-cortexa53.inc | 2 +- .../machine/include/tune-cortexa73-cortexa53.inc | 2 +- poky/meta/conf/machine/include/tune-cortexa8.inc | 2 +- poky/meta/conf/machine/include/tune-cortexa9.inc | 2 +- poky/meta/conf/machine/include/tune-ep9312.inc | 2 +- poky/meta/conf/machine/include/tune-iwmmxt.inc | 2 +- .../conf/machine/include/tune-strongarm1100.inc | 2 +- poky/meta/conf/machine/include/tune-xscale.inc | 2 +- poky/meta/conf/machine/include/x86/arch-x86.inc | 12 +- poky/meta/conf/machine/qemuarm.conf | 2 - poky/meta/conf/machine/qemuarm64.conf | 2 - poky/meta/conf/machine/qemuarmv5.conf | 2 - poky/meta/conf/machine/qemuppc.conf | 2 - poky/meta/files/common-licenses/PSF-2.0 | 49 ++ poky/meta/lib/oe/utils.py | 3 +- poky/meta/lib/oeqa/core/target/qemu.py | 4 + poky/meta/lib/oeqa/core/target/ssh.py | 2 + poky/meta/lib/oeqa/runtime/cases/rtc.py | 38 ++ poky/meta/lib/oeqa/sdkext/testsdk.py | 3 + .../meta/lib/oeqa/selftest/cases/containerimage.py | 3 + poky/meta/lib/oeqa/selftest/cases/devtool.py | 10 +- .../lib/oeqa/selftest/cases/incompatible_lic.py | 2 +- poky/meta/lib/oeqa/utils/qemurunner.py | 2 +- .../0001-avoid-start-failure-with-bind-user.patch | 27 - ...lwresd-V-and-start-log-hide-build-options.patch | 35 - ...-searching-for-json-headers-searches-sysr.patch | 47 -- .../recipes-connectivity/bind/bind-9.16.5/bind9 | 2 - .../bind/bind-9.16.5/conf.patch | 330 ---------- .../bind/bind-9.16.5/generate-rndc-key.sh | 8 - .../init.d-add-support-for-read-only-rootfs.patch | 65 -- .../make-etc-initd-bind-stop-work.patch | 42 -- .../bind/bind-9.16.5/named.service | 22 - .../0001-avoid-start-failure-with-bind-user.patch | 27 + ...lwresd-V-and-start-log-hide-build-options.patch | 35 + ...-searching-for-json-headers-searches-sysr.patch | 47 ++ .../recipes-connectivity/bind/bind-9.16.7/bind9 | 2 + .../bind/bind-9.16.7/conf.patch | 330 ++++++++++ .../bind/bind-9.16.7/generate-rndc-key.sh | 8 + .../init.d-add-support-for-read-only-rootfs.patch | 65 ++ .../make-etc-initd-bind-stop-work.patch | 42 ++ .../bind/bind-9.16.7/named.service | 22 + poky/meta/recipes-connectivity/bind/bind_9.16.5.bb | 123 ---- poky/meta/recipes-connectivity/bind/bind_9.16.7.bb | 123 ++++ .../recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb | 13 +- .../dhcpcd/files/dhcpcd.service | 1 + .../dhcpcd/files/dhcpcd@.service | 3 +- ...create-var-lib-kea-and-var-run-kea-folder.patch | 39 ++ .../kea/files/fix-multilib-conflict.patch | 55 ++ poky/meta/recipes-connectivity/kea/kea_1.7.10.bb | 4 +- .../openssh/openssh/sshdgenkeys.service | 1 + .../recipes-connectivity/openssh/openssh_8.3p1.bb | 10 +- .../ssh-pregen-hostkeys/dropbear_rsa_host_key | Bin 0 -> 805 bytes .../ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key | 9 + .../openssh/ssh_host_ecdsa_key.pub | 1 + .../openssh/ssh_host_ed25519_key | 7 + .../openssh/ssh_host_ed25519_key.pub | 1 + .../ssh-pregen-hostkeys/openssh/ssh_host_rsa_key | 38 ++ .../openssh/ssh_host_rsa_key.pub | 1 + .../ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb | 19 + .../dropbear/dropbear/dropbearkey.service | 1 + ...msgmerge-29-Add-executable-file-mode-bits.patch | 23 + poky/meta/recipes-core/gettext/gettext_0.21.bb | 8 +- poky/meta/recipes-core/glibc/glibc_2.32.bb | 4 +- .../images/build-appliance-image_15.0.0.bb | 2 +- .../meta/recipes-core/images/core-image-minimal.bb | 2 +- poky/meta/recipes-core/meta/buildtools-tarball.bb | 4 + poky/meta/recipes-core/ncurses/ncurses.inc | 5 + .../packagegroups/packagegroup-core-tools-debug.bb | 5 +- .../packagegroup-core-tools-profile.bb | 2 + poky/meta/recipes-core/systemd/systemd.inc | 2 +- .../systemd/0001-Handle-missing-gshadow.patch | 20 +- .../0001-Use-PREFIX-ROOTPREFIX-correctly.patch | 81 --- ...fi_loader_entry_one_shot_stat-has-incompl.patch | 31 - poky/meta/recipes-core/systemd/systemd_246.2.bb | 725 --------------------- poky/meta/recipes-core/systemd/systemd_246.6.bb | 724 ++++++++++++++++++++ .../python/python3-jinja2/run-ptest | 3 + .../python/python3-jinja2_2.11.2.bb | 45 ++ .../python/python3-markupsafe/run-ptest | 3 + .../python/python3-markupsafe_1.1.1.bb | 28 + ...ss-missing-libraries-to-Extension-for-mul.patch | 2 +- .../qemu/qemu-system-native_5.1.0.bb | 2 +- ...01-qemu-Do-not-include-file-if-not-exists.patch | 2 +- poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb | 4 +- poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb | 20 +- .../bash/bash/bash-CVE-2019-18276.patch | 386 +++++++++++ poky/meta/recipes-extended/bash/bash_5.0.bb | 8 + .../ltp/0004-guard-mallocopt-with-__GLIBC__.patch | 2 +- .../stress-ng/stress-ng_0.11.19.bb | 27 - .../stress-ng/stress-ng_0.11.21.bb | 27 + poky/meta/recipes-extended/sudo/sudo_1.9.2.bb | 47 -- poky/meta/recipes-extended/sudo/sudo_1.9.3.bb | 47 ++ .../files/0001-Makefile.am-fixup-issue-17.patch | 43 ++ poky/meta/recipes-extended/sysklogd/sysklogd.inc | 1 + .../files/0001-xf86drm.c-fix-build-failure.patch | 87 +++ poky/meta/recipes-graphics/drm/libdrm_2.4.102.bb | 4 +- poky/meta/recipes-graphics/mesa/mesa-gl_20.1.6.bb | 15 - poky/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb | 15 + poky/meta/recipes-graphics/mesa/mesa.inc | 2 +- poky/meta/recipes-graphics/mesa/mesa_20.1.6.bb | 2 - poky/meta/recipes-graphics/mesa/mesa_20.1.8.bb | 2 + poky/meta/recipes-graphics/pango/pango_1.46.1.bb | 47 -- poky/meta/recipes-graphics/pango/pango_1.46.2.bb | 47 ++ .../recipes-graphics/vulkan/vulkan-demos_git.bb | 2 +- ...t-on-probing-a-non-PCI-platform-device-on.patch | 2 +- poky/meta/recipes-kernel/linux/linux-yocto-dev.bb | 2 +- .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 2 +- .../recipes-kernel/linux/linux-yocto-rt_5.8.bb | 4 +- .../recipes-kernel/linux/linux-yocto-tiny_5.8.bb | 2 +- poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb | 4 +- poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb | 6 +- .../recipes-multimedia/libpng/libpng_1.6.37.bb | 2 +- poky/meta/recipes-support/boost/boost.inc | 12 +- poky/meta/recipes-support/curl/curl_7.72.0.bb | 2 +- .../debianutils/debianutils_4.11.1.bb | 2 +- .../ptest-runner/ptest-runner_2.4.0.bb | 4 +- poky/scripts/oe-build-perf-report | 2 +- poky/scripts/runqemu | 2 +- 190 files changed, 3300 insertions(+), 1955 deletions(-) create mode 100644 poky/bitbake/lib/bb/tests/siggen.py create mode 100644 poky/documentation/_templates/footer.html create mode 100644 poky/meta/conf/machine/include/tune-cortex-m0.inc create mode 100644 poky/meta/files/common-licenses/PSF-2.0 create mode 100644 poky/meta/lib/oeqa/runtime/cases/rtc.py delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/0001-avoid-start-failure-with-bind-user.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/bind9 delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch delete mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.5/named.service create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/bind9 create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch create mode 100644 poky/meta/recipes-connectivity/bind/bind-9.16.7/named.service delete mode 100644 poky/meta/recipes-connectivity/bind/bind_9.16.5.bb create mode 100644 poky/meta/recipes-connectivity/bind/bind_9.16.7.bb create mode 100644 poky/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch create mode 100644 poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub create mode 100644 poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb create mode 100644 poky/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch delete mode 100644 poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch delete mode 100644 poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch delete mode 100644 poky/meta/recipes-core/systemd/systemd_246.2.bb create mode 100644 poky/meta/recipes-core/systemd/systemd_246.6.bb create mode 100644 poky/meta/recipes-devtools/python/python3-jinja2/run-ptest create mode 100644 poky/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb create mode 100644 poky/meta/recipes-devtools/python/python3-markupsafe/run-ptest create mode 100644 poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb create mode 100644 poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch delete mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.19.bb create mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb delete mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.2.bb create mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.3.bb create mode 100644 poky/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch create mode 100644 poky/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch delete mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.1.6.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.1.6.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.1.8.bb delete mode 100644 poky/meta/recipes-graphics/pango/pango_1.46.1.bb create mode 100644 poky/meta/recipes-graphics/pango/pango_1.46.2.bb (limited to 'poky/meta/recipes-devtools/python/python3') diff --git a/poky/bitbake/bin/bitbake-layers b/poky/bitbake/bin/bitbake-layers index 149f1b1ac..ff085d674 100755 --- a/poky/bitbake/bin/bitbake-layers +++ b/poky/bitbake/bin/bitbake-layers @@ -14,7 +14,6 @@ import logging import os import sys import argparse -import signal bindir = os.path.dirname(__file__) topdir = os.path.dirname(bindir) @@ -26,7 +25,6 @@ import bb.msg logger = bb.msg.logger_create('bitbake-layers', sys.stdout) def main(): - signal.signal(signal.SIGPIPE, signal.SIG_DFL) parser = argparse.ArgumentParser( description="BitBake layers utility", epilog="Use %(prog)s --help to get help on a specific command", diff --git a/poky/bitbake/bin/bitbake-selftest b/poky/bitbake/bin/bitbake-selftest index e84d6a559..6c0737416 100755 --- a/poky/bitbake/bin/bitbake-selftest +++ b/poky/bitbake/bin/bitbake-selftest @@ -27,6 +27,7 @@ tests = ["bb.tests.codeparser", "bb.tests.parse", "bb.tests.persist_data", "bb.tests.runqueue", + "bb.tests.siggen", "bb.tests.utils", "hashserv.tests", "layerindexlib.tests.layerindexobj", diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index 5442f7d22..1f4cc1e96 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -1679,7 +1679,8 @@ class BBCooker: if self.hashserv: self.hashserv.process.terminate() self.hashserv.process.join() - bb.event.fire(CookerExit(), self.data) + if hasattr(self, "data"): + bb.event.fire(CookerExit(), self.data) def shutdown(self, force = False): if force: diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py index 7ec1fea5d..551bfb70f 100644 --- a/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/poky/bitbake/lib/bb/fetch2/__init__.py @@ -1520,7 +1520,7 @@ class FetchMethod(object): if urlpath.find("/") != -1: destdir = urlpath.rsplit("/", 1)[0] + '/' bb.utils.mkdirhier("%s/%s" % (unpackdir, destdir)) - cmd = 'cp -fpPRH %s %s' % (file, destdir) + cmd = 'cp -fpPRH "%s" "%s"' % (file, destdir) if not cmd: return diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py index 644ba9238..07064c694 100644 --- a/poky/bitbake/lib/bb/fetch2/git.py +++ b/poky/bitbake/lib/bb/fetch2/git.py @@ -236,7 +236,7 @@ class Git(FetchMethod): ud.unresolvedrev[name] = ud.revisions[name] ud.revisions[name] = self.latest_revision(ud, d, name) - gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.')) + gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.').replace(' ','_')) if gitsrcname.startswith('.'): gitsrcname = gitsrcname[1:] @@ -342,7 +342,7 @@ class Git(FetchMethod): # We do this since git will use a "-l" option automatically for local urls where possible if repourl.startswith("file://"): repourl = repourl[7:] - clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, repourl, ud.clonedir) + clone_cmd = "LANG=C %s clone --bare --mirror \"%s\" %s --progress" % (ud.basecmd, repourl, ud.clonedir) if ud.proto.lower() != 'file': bb.fetch2.check_network_access(d, clone_cmd, ud.url) progresshandler = GitProgressHandler(d) @@ -354,8 +354,8 @@ class Git(FetchMethod): if "origin" in output: runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) - runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir) - fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, repourl) + runfetchcmd("%s remote add --mirror=fetch origin \"%s\"" % (ud.basecmd, repourl), d, workdir=ud.clonedir) + fetch_cmd = "LANG=C %s fetch -f --progress \"%s\" refs/*:refs/*" % (ud.basecmd, repourl) if ud.proto.lower() != 'file': bb.fetch2.check_network_access(d, fetch_cmd, ud.url) progresshandler = GitProgressHandler(d) @@ -504,7 +504,7 @@ class Git(FetchMethod): raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url) repourl = self._get_repo_url(ud) - runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) + runfetchcmd("%s remote set-url origin \"%s\"" % (ud.basecmd, repourl), d, workdir=destdir) if self._contains_lfs(ud, d, destdir): if need_lfs and not self._find_git_lfs(d): @@ -623,7 +623,7 @@ class Git(FetchMethod): d.setVar('_BB_GIT_IN_LSREMOTE', '1') try: repourl = self._get_repo_url(ud) - cmd = "%s ls-remote %s %s" % \ + cmd = "%s ls-remote \"%s\" %s" % \ (ud.basecmd, repourl, search) if ud.proto.lower() != 'file': bb.fetch2.check_network_access(d, cmd, repourl) diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py index ad49d1e2a..86e0e16f3 100644 --- a/poky/bitbake/lib/bb/siggen.py +++ b/poky/bitbake/lib/bb/siggen.py @@ -358,7 +358,8 @@ class SignatureGeneratorBasic(SignatureGenerator): else: sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[tid] - bb.utils.mkdirhier(os.path.dirname(sigfile)) + with bb.utils.umask(0o002): + bb.utils.mkdirhier(os.path.dirname(sigfile)) data = {} data['task'] = task @@ -746,16 +747,26 @@ def list_inline_diff(oldlist, newlist, colors=None): ret.append(item) return '[%s]' % (', '.join(ret)) -def clean_basepath(a): - mc = None - if a.startswith("mc:"): - _, mc, a = a.split(":", 2) - b = a.rsplit("/", 2)[1] + '/' + a.rsplit("/", 2)[2] - if a.startswith("virtual:"): - b = b + ":" + a.rsplit(":", 2)[0] - if mc: - b = b + ":mc:" + mc - return b +def clean_basepath(basepath): + basepath, dir, recipe_task = basepath.rsplit("/", 2) + cleaned = dir + '/' + recipe_task + + if basepath[0] == '/': + return cleaned + + if basepath.startswith("mc:"): + mc, mc_name, basepath = basepath.split(":", 2) + mc_suffix = ':mc:' + mc_name + else: + mc_suffix = '' + + # mc stuff now removed from basepath. Whatever was next, if present will be the first + # suffix. ':/', recipe path start, marks the end of this. Something like + # 'virtual:a[:b[:c]]:/path...' (b and c being optional) + if basepath[0] != '/': + cleaned += ':' + basepath.split(':/', 1)[0] + + return cleaned + mc_suffix def clean_basepaths(a): b = {} diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index 0ecf044f3..5a4db9ca4 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -223,6 +223,21 @@ class URITest(unittest.TestCase): 'query': {}, 'relative': False }, + "git://tfs-example.org:22/tfs/example%20path/example.git": { + 'uri': 'git://tfs-example.org:22/tfs/example%20path/example.git', + 'scheme': 'git', + 'hostname': 'tfs-example.org', + 'port': 22, + 'hostport': 'tfs-example.org:22', + 'path': '/tfs/example path/example.git', + 'userinfo': '', + 'userinfo': '', + 'username': '', + 'password': '', + 'params': {}, + 'query': {}, + 'relative': False + }, "http://somesite.net;someparam=1": { 'uri': 'http://somesite.net;someparam=1', 'scheme': 'http', @@ -584,6 +599,7 @@ class FetcherLocalTest(FetcherTest): touch(os.path.join(self.localsrcdir, 'dir', 'd')) os.makedirs(os.path.join(self.localsrcdir, 'dir', 'subdir')) touch(os.path.join(self.localsrcdir, 'dir', 'subdir', 'e')) + touch(os.path.join(self.localsrcdir, r'backslash\x2dsystemd-unit.device')) self.d.setVar("FILESPATH", self.localsrcdir) def fetchUnpack(self, uris): @@ -601,6 +617,10 @@ class FetcherLocalTest(FetcherTest): tree = self.fetchUnpack(['file://a', 'file://dir/c']) self.assertEqual(tree, ['a', 'dir/c']) + def test_local_backslash(self): + tree = self.fetchUnpack([r'file://backslash\x2dsystemd-unit.device']) + self.assertEqual(tree, [r'backslash\x2dsystemd-unit.device']) + def test_local_wildcard(self): with self.assertRaises(bb.fetch2.ParameterError): tree = self.fetchUnpack(['file://a', 'file://dir/*']) @@ -2080,6 +2100,38 @@ class GitLfsTest(FetcherTest): shutil.rmtree(self.gitdir, ignore_errors=True) fetcher.unpack(self.d.getVar('WORKDIR')) +class GitURLWithSpacesTest(FetcherTest): + test_git_urls = { + "git://tfs-example.org:22/tfs/example%20path/example.git" : { + 'url': 'git://tfs-example.org:22/tfs/example%20path/example.git', + 'gitsrcname': 'tfs-example.org.22.tfs.example_path.example.git', + 'path': '/tfs/example path/example.git' + }, + "git://tfs-example.org:22/tfs/example%20path/example%20repo.git" : { + 'url': 'git://tfs-example.org:22/tfs/example%20path/example%20repo.git', + 'gitsrcname': 'tfs-example.org.22.tfs.example_path.example_repo.git', + 'path': '/tfs/example path/example repo.git' + } + } + + def test_urls(self): + + # Set fake SRCREV to stop git fetcher from trying to contact non-existent git repo + self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40') + + for test_git_url, ref in self.test_git_urls.items(): + + fetcher = bb.fetch.Fetch([test_git_url], self.d) + ud = fetcher.ud[fetcher.urls[0]] + + self.assertEqual(ud.url, ref['url']) + self.assertEqual(ud.path, ref['path']) + self.assertEqual(ud.localfile, os.path.join(self.dldir, "git2", ref['gitsrcname'])) + self.assertEqual(ud.localpath, os.path.join(self.dldir, "git2", ref['gitsrcname'])) + self.assertEqual(ud.lockfile, os.path.join(self.dldir, "git2", ref['gitsrcname'] + '.lock')) + self.assertEqual(ud.clonedir, os.path.join(self.dldir, "git2", ref['gitsrcname'])) + self.assertEqual(ud.fullmirror, os.path.join(self.dldir, "git2_" + ref['gitsrcname'] + '.tar.gz')) + class NPMTest(FetcherTest): def skipIfNoNpm(): import shutil diff --git a/poky/bitbake/lib/bb/tests/siggen.py b/poky/bitbake/lib/bb/tests/siggen.py new file mode 100644 index 000000000..c21ab4e4f --- /dev/null +++ b/poky/bitbake/lib/bb/tests/siggen.py @@ -0,0 +1,91 @@ +# +# BitBake Test for lib/bb/siggen.py +# +# Copyright (C) 2020 Jean-François Dagenais +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import unittest +import logging +import bb +import time + +logger = logging.getLogger('BitBake.TestSiggen') + +import bb.siggen + +class SiggenTest(unittest.TestCase): + + def test_clean_basepath_simple_target_basepath(self): + basepath = '/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + def test_clean_basepath_basic_virtual_basepath(self): + basepath = 'virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + def test_clean_basepath_mc_basepath(self): + basepath = 'mc:somemachine:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:mc:somemachine' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + def test_clean_basepath_virtual_long_prefix_basepath(self): + basepath = 'virtual:something:A:B:C:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:A:B:C' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + def test_clean_basepath_mc_virtual_basepath(self): + basepath = 'mc:somemachine:virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:mc:somemachine' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + def test_clean_basepath_mc_virtual_long_prefix_basepath(self): + basepath = 'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask' + expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:C:B:A:mc:X' + + actual_cleaned = bb.siggen.clean_basepath(basepath) + + self.assertEqual(actual_cleaned, expected_cleaned) + + + # def test_clean_basepath_performance(self): + # input_basepaths = [ + # 'mc:X:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # 'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # 'virtual:something:C:B:A:/different/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # 'virtual:something:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # '/this/is/most/common/input/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # '/and/should/be/tested/with/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # '/more/weight/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask', + # ] + + # time_start = time.time() + + # i = 2000000 + # while i >= 0: + # for basepath in input_basepaths: + # bb.siggen.clean_basepath(basepath) + # i -= 1 + + # elapsed = time.time() - time_start + # print('{} ({}s)'.format(self.id(), round(elapsed, 3))) + + # self.assertTrue(False) diff --git a/poky/bitbake/lib/bb/ui/taskexp.py b/poky/bitbake/lib/bb/ui/taskexp.py index 05e32338c..2b246710c 100644 --- a/poky/bitbake/lib/bb/ui/taskexp.py +++ b/poky/bitbake/lib/bb/ui/taskexp.py @@ -58,7 +58,12 @@ class PackageReverseDepView(Gtk.TreeView): self.current = None self.filter_model = model.filter_new() self.filter_model.set_visible_func(self._filter) - self.sort_model = self.filter_model.sort_new_with_model() + # The introspected API was fixed but we can't rely on a pygobject that hides this. + # https://gitlab.gnome.org/GNOME/pygobject/-/commit/9cdbc56fbac4db2de78dc080934b8f0a7efc892a + if hasattr(Gtk.TreeModelSort, "new_with_model"): + self.sort_model = Gtk.TreeModelSort.new_with_model(self.filter_model) + else: + self.sort_model = self.filter_model.sort_new_with_model() self.sort_model.set_sort_column_id(COL_DEP_PARENT, Gtk.SortType.ASCENDING) self.set_model(self.sort_model) self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PARENT)) diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py index 0b79f92e2..f73d31fb7 100644 --- a/poky/bitbake/lib/bb/utils.py +++ b/poky/bitbake/lib/bb/utils.py @@ -944,6 +944,17 @@ def which(path, item, direction = 0, history = False, executable=False): return "", hist return "" +@contextmanager +def umask(new_mask): + """ + Context manager to set the umask to a specific mask, and restore it afterwards. + """ + current_mask = os.umask(new_mask) + try: + yield + finally: + os.umask(current_mask) + def to_boolean(string, default=None): if not string: return default diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py index b34c43687..4566f2473 100644 --- a/poky/bitbake/lib/hashserv/tests.py +++ b/poky/bitbake/lib/hashserv/tests.py @@ -14,6 +14,7 @@ import sys import tempfile import threading import unittest +import socket class TestHashEquivalenceServer(object): @@ -163,4 +164,8 @@ class TestHashEquivalenceUnixServer(TestHashEquivalenceServer, unittest.TestCase class TestHashEquivalenceTCPServer(TestHashEquivalenceServer, unittest.TestCase): def get_server_addr(self): - return "localhost:0" + # Some hosts cause asyncio module to misbehave, when IPv6 is not enabled. + # If IPv6 is enabled, it should be safe to use localhost directly, in general + # case it is more reliable to resolve the IP address explicitly. + return socket.gethostbyname("localhost") + ":0" + diff --git a/poky/documentation/Makefile.sphinx b/poky/documentation/Makefile.sphinx index c663c2954..c9518558b 100644 --- a/poky/documentation/Makefile.sphinx +++ b/poky/documentation/Makefile.sphinx @@ -9,6 +9,10 @@ SOURCEDIR = . BUILDDIR = _build DESTDIR = final +ifeq ($(shell if which $(SPHINXBUILD) >/dev/null 2>&1; then echo 1; else echo 0; fi),0) +$(error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed") +endif + # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/poky/documentation/README b/poky/documentation/README index d64f2fd2f..fce3cfe17 100644 --- a/poky/documentation/README +++ b/poky/documentation/README @@ -40,16 +40,11 @@ Folders exist for individual manuals as follows: * kernel-dev - The Yocto Project Linux Kernel Development Tasks Manual * ref-manual - The Yocto Project Reference Manual * yocto-project-qs - The Yocto Project Quick Start -* mega-manual - The Yocto Project Mega-Manual, which is an aggregated manual comprised - of all YP manuals and guides * profile-manual - The Yocto Project Profile and Tracing Manual * toaster-manual - The Toaster Manual +* test-manual - The Test Environment Manual -Each folder is self-contained regarding content and figures. Note that there -is a sed file needed to process the links of the mega-manual. The sed file -is located in the tools directory. Also note that the figures folder in the -mega-manual directory contains duplicates of all the figures in the YP folders -directories for all YP manuals and guides. +Each folder is self-contained regarding content and figures. If you want to find HTML versions of the Yocto Project manuals on the web, go to http://www.yoctoproject.org and click on the "Documentation" tab. From @@ -60,34 +55,266 @@ currently being developed. In general, the Yocto Project site (http://www.yoctoproject.org) is a great reference for both information and downloads. -Makefile +poky.yaml +========= + +This file defines variables used for documentation production. The variables +are used to define release pathnames, URLs for the published manuals, etc. + +template ======== +Contains various templates, fonts, and some old PNG files. + +Sphinx +====== + +The Yocto Project documentation was migrated from the original DocBook +format to Sphinx based documentation for the Yocto Project 3.2 +release. This section will provide additional information related to +the Sphinx migration, and guidelines for developers willing to +contribute to the Yocto Project documentation. + + Sphinx is a tool that makes it easy to create intelligent and + beautiful documentation, written by Georg Brandl and licensed under + the BSD license. It was originally created for the Python + documentation. + +Extensive documentation is available on the Sphinx website: +https://www.sphinx-doc.org/en/master/. Sphinx is designed to be +extensible thanks to the ability to write our own custom extensions, +as Python modules, which will be executed during the generation of the +documentation. + +Yocto Project documentation website +=================================== + +A new website has been created to host the Yocto Project +documentation, it can be found at: https://docs.yoctoproject.org/. + +The entire Yocto Project documentation, as well as the BitBake manual +is published on this website, including all previously released +versions. A version switcher was added, as a drop-down menu on the top +of the page to switch back and forth between the various versions of +the current active Yocto Project releases. + +Transition pages have been added (as rst file) to show links to old +versions of the Yocto Project documentation with links to each manual +generated with DocBook. + +How to build the Yocto Project documentation +============================================ + +Sphinx is written in Python. While it might work with Python2, for +obvious reasons, we will only support building the Yocto Project +documentation with Python3. + +Sphinx might be available in your Linux distro packages repositories, +however it is not recommend using distro packages, as they might be +old versions, especially if you are using an LTS version of your +distro. The recommended method to install Sphinx and all required +dependencies is to use the Python Package Index (pip). + +To install all required packages run: -The Makefile processes manual directories to create HTML, PDF, -tarballs, etc. Details on how the Makefile work are documented -inside the Makefile. See that file for more information. + $ pip3 install sphinx sphinx_rtd_theme pyyaml -To build a manual, you run the make command and pass it the name -of the folder containing the manual's contents. -For example, the following command run from the documentation directory -creates an HTML version of the SDK manual. -The DOC variable specifies the manual you are making: +To build the documentation locally, run: - $ make DOC=sdk-manual + $ cd documentation + $ make -f Makefile.sphinx html -poky.ent +The resulting HTML index page will be _build/html/index.html, and you +can browse your own copy of the locally generated documentation with +your browser. + +Sphinx theme and CSS customization +================================== + +The Yocto Project documentation is currently based on the "Read the +Docs" Sphinx theme, with a few changes to make sure the look and feel +of the project documentation is preserved. + +Most of the theme changes can be done using the file +'sphinx-static/theme_overrides.css'. Most CSS changes in this file +were inherited from the DocBook CSS stylesheets. + +Sphinx design guidelines and principles +======================================= + +The initial Docbook to Sphinx migration was done with an automated +tool called Pandoc (https://pandoc.org/). The tool produced some clean +output markdown text files. After the initial automated conversion +additional changes were done to fix up headings, images and links. In +addition Sphinx has built in mechanisms (directives) which were used +to replace similar functions implemented in Docbook such as glossary, +variables substitutions, notes and references. + +Headings ======== -This file defines variables used for documentation production. The variables -are used to define release pathnames, URLs for the published manuals, etc. +The layout of the Yocto Project manuals is organized as follows -template + Book + Chapter + Section + Section + Section + +The following headings styles are defined in Sphinx: + + Book => overline === + Chapter => overline *** + Section => ==== + Section => ---- + Section => ^^^^ + Section => """" or ~~~~ + +With this proposal, we preserve the same TOCs between Sphinx and Docbook. + +Built-in glossary +================= + +Sphinx has a glossary directive. From +https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#glossary: + + This directive must contain a reST definition list with terms and + definitions. The definitions will then be referencable with the + [https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-term + 'term' role]. + +So anywhere in any of the Yocto Project manuals, :term:`VAR` can be +used to refer to an item from the glossary, and a link is created +automatically. A general index of terms is also generated by Sphinx +automatically. + +Global substitutions +==================== + +The Yocto Project documentation makes heavy use of global +variables. In Docbook these variables are stored in the file +poky.ent. This Docbook feature is not handled automatically with +Pandoc. Sphinx has builtin support for substitutions +(https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#substitutions), +however there are important shortcomings. For example they cannot be +used/nested inside code-block sections. + +A Sphinx extension was implemented to support variable substitutions +to mimic the DocBook based documentation behavior. Variabes +substitutions are done while reading/parsing the .rst files. The +pattern for variables substitutions is the same as with DocBook, +e.g. `&VAR;`. + +The implementation of the extension can be found here in the file +documentation/sphinx/yocto-vars.py, this extension is enabled by +default when building the Yocto Project documentation. All variables +are set in a file call poky.yaml, which was initially generated from +poky.ent. The file was converted into YAML so that it is easier to +process by the custom Sphinx extension (which is a Python module). + +For example, the following .rst content will produce the 'expected' +content: + + .. code-block:: + $ mkdir ~/poky-&DISTRO; + or + $ git clone &YOCTO_GIT_URL;/git/poky -b &DISTRO_NAME_NO_CAP; + +Variables can be nested, like it was the case for DocBook: + + YOCTO_HOME_URL : "http://www.yoctoproject.org" + YOCTO_DOCS_URL : "&YOCTO_HOME_URL;/docs" + +Note directive +============== + +Sphinx has a builtin 'note' directive that produces clean Note section +in the output file. There are various types of directives such as +"attention", "caution", "danger", "error", "hint", "important", "tip", +"warning", "admonition" that are supported, and additional directive +can be added as Sphinx extension if needed. + +Figures +======= + +The Yocto Project documentation has many figures/images. Sphinx has a +'figure' directive which is straight forward to use. To include a +figure in the body of the documentation: + + .. image:: figures/YP-flow-diagram.png + +Links and References +==================== + +The following types of links can be used: links to other locations in +the same document, to locations in other documents and to external +websites. + +More information can be found here: +https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html. + +References +========== + +The following extension is enabed by default: +sphinx.ext.autosectionlabel +(https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html). + +This extension allows you to refer sections by their titles. Note that +autosectionlabel_prefix_document is enabled by default, so that we can +insert references from any document. + +For example, to insert an HTML link to a section from +documentaion/manual/intro.rst, use: + + Please check this :ref:`manual/intro:Cross-References to Locations in the Same Document` + +Alternatively a custom text can be used instead of using the section +text: + + Please check this :ref:`section ` + +TIP: The following command can be used to dump all the references that + are defined in the project documentation: + + python -msphinx.ext.intersphinx /html/objects.inv + +This dump contains all links and for each link it shows the default +"Link Text" that Sphinx would use. If the default link text is not +appropriate, a custom link text can be used in the ':ref:' directive. + +Extlinks ======== -Contains various templates, fonts, and some old PNG files. -tools -===== -Contains a tool to convert the DocBook files to PDF format. This folder also -contains the mega-manual.sed file, which is used by Makefile to process -cross-references from within the manual that normally go to an external -manual. +The sphinx.ext.extlinks extension is enabled by default +(https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html#use-the-external-links-extension), +and it is configured with: + + 'yocto_home': ('https://yoctoproject.org%s', None), + 'yocto_wiki': ('https://wiki.yoctoproject.org%s', None), + 'yocto_dl': ('https://downloads.yoctoproject.org%s', None), + 'yocto_lists': ('https://lists.yoctoproject.org%s', None), + 'yocto_bugs': ('https://bugzilla.yoctoproject.org%s', None), + 'yocto_ab': ('https://autobuilder.yoctoproject.org%s', None), + 'yocto_docs': ('https://docs.yoctoproject.org%s', None), + 'yocto_git': ('https://git.yoctoproject.org%s', None), + 'oe_home': ('https://www.openembedded.org%s', None), + 'oe_lists': ('https://lists.openembedded.org%s', None), + +It creates convenient shortcuts which can be used throughout the +documentation rst files, as: + + Please check this :yocto_wiki:`wiki page ` + +Intersphinx links +================= + +The sphinx.ext.intersphinx extension is enabled by default +(https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html), +so that we can cross reference content from other Sphinx based +documentation projects, such as the BitBake manual. + +References to the bitbake manual can be done like this: + + See the ":ref:`-D `" option +or + :term:`bitbake:BB_NUMBER_PARSE_THREADS` diff --git a/poky/documentation/_templates/footer.html b/poky/documentation/_templates/footer.html new file mode 100644 index 000000000..508129ede --- /dev/null +++ b/poky/documentation/_templates/footer.html @@ -0,0 +1,12 @@ +
+
+
+

A Linux Foundation Collaborative Project. +
All Rights Reserved. Linux Foundation® and Yocto Project® are registered trademarks of the Linux Foundation. +
Linux® is a registered trademark of Linus Torvalds. +
© Copyright {{ copyright }} +
Last updated on {{ last_updated }} +

+
+
+ diff --git a/poky/documentation/conf.py b/poky/documentation/conf.py index 34d1bc97a..80d5e8e83 100644 --- a/poky/documentation/conf.py +++ b/poky/documentation/conf.py @@ -27,7 +27,7 @@ release = current_version # -- Project information ----------------------------------------------------- -project = 'The Yocto Project' +project = 'The Yocto Project \xae' copyright = '2010-%s, The Linux Foundation' % datetime.datetime.now().year author = 'The Linux Foundation' @@ -91,10 +91,16 @@ intersphinx_mapping = { # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' -html_theme_options = { - 'sticky_navigation': False, -} +try: + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_options = { + 'sticky_navigation': False, + } +except ImportError: + sys.stderr.write("The Sphinx sphinx_rtd_theme HTML theme was not found.\ + \nPlease make sure to install the sphinx_rtd_theme python package.\n") + sys.exit(1) html_logo = 'sphinx-static/YoctoProject_Logo_RGB.jpg' diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.rst b/poky/documentation/dev-manual/dev-manual-common-tasks.rst index 5eb7c5164..179979c76 100644 --- a/poky/documentation/dev-manual/dev-manual-common-tasks.rst +++ b/poky/documentation/dev-manual/dev-manual-common-tasks.rst @@ -10746,14 +10746,15 @@ varies by component: `bitbake-devel `__ mailing list. -- *"meta-*" trees:* These trees contain Metadata. Use the - `poky `__ mailing list. +- *"meta-\*" trees:* These trees contain Metadata. Use the + `poky `__ mailing list. + +- *Documentation*: For changes to the Yocto Project documentation, use the `docs + `__ mailing list. For changes to other layers hosted in the Yocto Project source -repositories (i.e. ``yoctoproject.org``), tools, and the Yocto Project -documentation, use the `Yocto -Project `__ general -mailing list. +repositories (i.e. ``yoctoproject.org``) and tools use the `Yocto Project +`__ general mailing list. .. note:: diff --git a/poky/documentation/dev-manual/dev-manual-qemu.rst b/poky/documentation/dev-manual/dev-manual-qemu.rst index 88b03745f..2833689d5 100644 --- a/poky/documentation/dev-manual/dev-manual-qemu.rst +++ b/poky/documentation/dev-manual/dev-manual-qemu.rst @@ -81,7 +81,7 @@ available. Follow these general steps to run QEMU: your :term:`Build Directory`. - If you have not built an image, you can go to the - :yocto_dl:`machines/qemu ` area and download a + :yocto_dl:`machines/qemu ` area and download a pre-built image that matches your architecture and can be run on QEMU. diff --git a/poky/documentation/dev-manual/dev-manual-start.rst b/poky/documentation/dev-manual/dev-manual-start.rst index 536d5a9cd..d9c1e4de0 100644 --- a/poky/documentation/dev-manual/dev-manual-start.rst +++ b/poky/documentation/dev-manual/dev-manual-start.rst @@ -380,7 +380,7 @@ as your Yocto Project build host: Depending on your build host, you might have to install different software to support Docker containers. Go to the Docker installation page and read about the platform requirements in "`Supported - Platforms `__" + Platforms `__" your build host needs to run containers. 2. *Choose What To Install:* Depending on whether or not your build host @@ -402,11 +402,11 @@ as your Yocto Project build host: type of the software you need to install: - Install `Docker CE for - Windows `__ + Windows `__ for Windows build hosts that meet requirements. - Install `Docker CE for - Macs `__ + MacOs `__ for Mac build hosts that meet requirements. - Install `Docker Toolbox for @@ -619,7 +619,7 @@ Use the following procedure to locate the latest upstream copy of the 3. *Find the URL Used to Clone the Repository:* At the bottom of the page, note the URL used to clone that repository - (e.g. :yocto_git:`/git/poky`). + (e.g. :yocto_git:`/cgit.cgi/poky`). .. note:: @@ -647,7 +647,7 @@ of a given component. Follow these steps to locate and download a particular tarball: 1. *Access the Index of Releases:* Open a browser and go to - :yocto_dl:`Index of Releases `. The + :yocto_dl:`Index of Releases `. The list represents released components (e.g. ``bitbake``, ``sato``, and so on). diff --git a/poky/documentation/index.rst b/poky/documentation/index.rst index 258ecb81a..821316915 100644 --- a/poky/documentation/index.rst +++ b/poky/documentation/index.rst @@ -5,8 +5,8 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to The Yocto Project's documentation! -============================================= +Welcome to the Yocto Project Documentation +========================================== | diff --git a/poky/documentation/overview-manual/overview-manual-concepts.rst b/poky/documentation/overview-manual/overview-manual-concepts.rst index 3d8dc7afd..6ce5f80af 100644 --- a/poky/documentation/overview-manual/overview-manual-concepts.rst +++ b/poky/documentation/overview-manual/overview-manual-concepts.rst @@ -153,7 +153,7 @@ several pieces of hardware. Many layers exist that work in the Yocto Project development environment. The `Yocto Project Curated Layer -Index `__ +Index `__ and `OpenEmbedded Layer Index `__ both contain layers from which you can use or leverage. diff --git a/poky/documentation/overview-manual/overview-manual-development-environment.rst b/poky/documentation/overview-manual/overview-manual-development-environment.rst index 3b5147d73..bb2c8e72e 100644 --- a/poky/documentation/overview-manual/overview-manual-development-environment.rst +++ b/poky/documentation/overview-manual/overview-manual-development-environment.rst @@ -43,7 +43,7 @@ Wikipedia has a good historical description of the Open Source Philosophy `here `__. You can also find helpful information on how to participate in the Linux Community -`here `__. +`here `__. .. _gs-the-development-host: @@ -185,7 +185,7 @@ development: see the ":ref:`dev-manual/dev-manual-start:accessing source repositories`" Section in the Yocto Project Development Tasks Manual. -- :yocto_dl:`Index of /releases: ` This is an index +- :yocto_dl:`Index of /releases: ` This is an index of releases such as Poky, Pseudo, installers for cross-development toolchains, miscellaneous support and all released versions of Yocto Project in the form of images or tarballs. Downloading and extracting @@ -205,7 +205,7 @@ development: through the "SOFTWARE" menu that allows you to download any Yocto Project release, tool, and Board Support Package (BSP) in tarball form. The tarballs are similar to those found in the - :yocto_dl:`Index of /releases: ` area. + :yocto_dl:`Index of /releases: ` area. .. image:: figures/yp-download.png :align: center diff --git a/poky/documentation/overview-manual/overview-manual-yp-intro.rst b/poky/documentation/overview-manual/overview-manual-yp-intro.rst index 265fbda7f..5cdab7ca4 100644 --- a/poky/documentation/overview-manual/overview-manual-yp-intro.rst +++ b/poky/documentation/overview-manual/overview-manual-yp-intro.rst @@ -224,7 +224,7 @@ your Metadata, the easier it is to cope with future changes. possible. - Familiarize yourself with the `Yocto Project curated layer - index `__ + index `__ or the `OpenEmbedded layer index `__. The latter contains more layers but they are less universally diff --git a/poky/documentation/ref-manual/migration-1.5.rst b/poky/documentation/ref-manual/migration-1.5.rst index ce55199df..fa6ff92f1 100644 --- a/poky/documentation/ref-manual/migration-1.5.rst +++ b/poky/documentation/ref-manual/migration-1.5.rst @@ -185,7 +185,7 @@ been introduced. You can find some of the implications for this change `here `__. The change also means that recipes that install files to ``/var/run`` must be changed. You can find a guide on how to make these changes -`here `__. +`here `__. .. _migration-1.5-removal-of-package-manager-database-within-image-recipes: diff --git a/poky/documentation/ref-manual/ref-classes.rst b/poky/documentation/ref-manual/ref-classes.rst index 60ce8efd2..b007e3482 100644 --- a/poky/documentation/ref-manual/ref-classes.rst +++ b/poky/documentation/ref-manual/ref-classes.rst @@ -1413,7 +1413,9 @@ variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`, :term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set appropriately. The default values used for :term:`FIT_HASH_ALG` and :term:`FIT_SIGN_ALG` in ``kernel-fitimage`` are "sha256" and -"rsa2048" respectively. +"rsa2048" respectively. The keys for signing fitImage can be generated using +the ``kernel-fitimage`` class when both :term:`FIT_GENERATE_KEYS` and +:term:`UBOOT_SIGN_ENABLE` are set to "1". .. _ref-classes-kernel-grub: diff --git a/poky/documentation/ref-manual/ref-images.rst b/poky/documentation/ref-manual/ref-images.rst index f0229c3bb..c88d4d75c 100644 --- a/poky/documentation/ref-manual/ref-images.rst +++ b/poky/documentation/ref-manual/ref-images.rst @@ -42,7 +42,7 @@ Following is a list of supported recipes: `VMware Workstation `__. For more information on this image, see the :yocto_home:`Build - Appliance ` page + Appliance ` page on the Yocto Project website. - ``core-image-base``: A console-only image that fully supports the diff --git a/poky/documentation/ref-manual/ref-terms.rst b/poky/documentation/ref-manual/ref-terms.rst index 6e7e5169c..600cc23c3 100644 --- a/poky/documentation/ref-manual/ref-terms.rst +++ b/poky/documentation/ref-manual/ref-terms.rst @@ -355,7 +355,7 @@ universal, the list includes them just in case: the Source Directory, if you do, the top-level directory name of the Source Directory is derived from the Yocto Project release tarball. For example, downloading and unpacking - :yocto_dl:`releases/yocto/&DISTRO_REL_TAG;/&YOCTO_POKY;.tar.bz2` + :yocto_dl:`/releases/yocto/&DISTRO_REL_TAG;/&YOCTO_POKY;.tar.bz2` results in a Source Directory whose root folder is named ``poky``. It is important to understand the differences between the Source diff --git a/poky/documentation/ref-manual/ref-variables.rst b/poky/documentation/ref-manual/ref-variables.rst index 625a37c15..2d6719df1 100644 --- a/poky/documentation/ref-manual/ref-variables.rst +++ b/poky/documentation/ref-manual/ref-variables.rst @@ -696,7 +696,7 @@ system and gives an overview of their function and contents. compiler. Consequently, the syntax follows Python's Regular Expression (re) syntax. The expressions are compared against the full paths to the files. For complete syntax information, see Python's - documentation at http://docs.python.org/3/library/re.html#re. + documentation at https://docs.python.org/3/library/re.html#regular-expression-syntax. The following example uses a complete regular expression to tell BitBake to ignore all recipe and recipe append files in the @@ -2585,13 +2585,36 @@ system and gives an overview of their function and contents. For guidance on how to create your own file permissions settings table file, examine the existing ``fs-perms.txt``. + FIT_GENERATE_KEYS + Decides whether to generate the keys for signing fitImage if they + don't already exist. The keys are created in ``UBOOT_SIGN_KEYDIR``. + The default value is 0. + FIT_HASH_ALG Specifies the hash algorithm used in creating the FIT Image. For e.g. sha256. + FIT_KEY_GENRSA_ARGS + Arguments to openssl genrsa for generating RSA private key for signing + fitImage. The default value is "-F4". i.e. the public exponent 65537 to + use. + + FIT_KEY_REQ_ARGS + Arguments to openssl req for generating certificate for signing fitImage. + The default value is "-batch -new". batch for non interactive mode + and new for generating new keys. + + FIT_KEY_SIGN_PKCS + Format for public key ceritifcate used in signing fitImage. + The default value is "x509". + FIT_SIGN_ALG Specifies the signature algorithm used in creating the FIT Image. For e.g. rsa2048. + FIT_SIGN_NUMBITS + Size of private key in number of bits used in fitImage. The default + value is "2048". + FONT_EXTRA_RDEPENDS When inheriting the :ref:`fontcache ` class, this variable specifies the runtime dependencies for font packages. @@ -2902,10 +2925,46 @@ system and gives an overview of their function and contents. The base name of image output files. This variable defaults to the recipe name (``${``\ :term:`PN`\ ``}``). + IMAGE_EFI_BOOT_FILES + A space-separated list of files installed into the boot partition + when preparing an image using the Wic tool with the + ``bootimg-efi`` source plugin. By default, + the files are + installed under the same name as the source files. To change the + installed name, separate it from the original name with a semi-colon + (;). Source files need to be located in + :term:`DEPLOY_DIR_IMAGE`. Here are two + examples: + :: + + IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE};bz2" + IMAGE_EFI_BOOT_FILES = "${KERNEL_IMAGETYPE} microcode.cpio" + + Alternatively, source files can be picked up using a glob pattern. In + this case, the destination file must have the same name as the base + name of the source file path. To install files into a directory + within the target location, pass its name after a semi-colon (;). + Here are two examples: + :: + + IMAGE_EFI_BOOT_FILES = "boot/loader/*" + IMAGE_EFI_BOOT_FILES = "boot/loader/*;boot/" + + The first example + installs all files from ``${DEPLOY_DIR_IMAGE}/boot/loader/`` + into the root of the target partition. The second example installs + the same files into a ``boot`` directory within the target partition. + + You can find information on how to use the Wic tool in the + ":ref:`dev-manual/dev-manual-common-tasks:creating partitioned images using wic`" + section of the Yocto Project Development Tasks Manual. Reference + material for Wic is located in the + ":doc:`../ref-manual/ref-kickstart`" chapter. + IMAGE_BOOT_FILES A space-separated list of files installed into the boot partition when preparing an image using the Wic tool with the - ``bootimg-partition`` or ``bootimg-efi`` source plugin. By default, + ``bootimg-partition`` source plugin. By default, the files are installed under the same name as the source files. To change the installed name, separate it from the original name with a semi-colon @@ -3669,7 +3728,7 @@ system and gives an overview of their function and contents. The value in ``INITSCRIPT_PARAMS`` is passed through to the ``update-rc.d`` command. For more information on valid parameters, please see the ``update-rc.d`` manual page at - http://www.tin.org/bin/man.cgi?section=8&topic=update-rc.d. + https://manpages.debian.org/buster/init-system-helpers/update-rc.d.8.en.html INSANE_SKIP Specifies the QA checks to skip for a specific package within a diff --git a/poky/documentation/sdk-manual/sdk-appendix-obtain.rst b/poky/documentation/sdk-manual/sdk-appendix-obtain.rst index ffaed9dee..97ab9169e 100644 --- a/poky/documentation/sdk-manual/sdk-appendix-obtain.rst +++ b/poky/documentation/sdk-manual/sdk-appendix-obtain.rst @@ -17,7 +17,7 @@ and then run the script to hand-install the toolchain. Follow these steps to locate and hand-install the toolchain: 1. *Go to the Installers Directory:* Go to - :yocto_dl:`releases/yocto/yocto-3.1.2/toolchain/` + :yocto_dl:`/releases/yocto/yocto-3.1.2/toolchain/` 2. *Open the Folder for Your Build Host:* Open the folder that matches your :term:`Build Host` (i.e. @@ -204,7 +204,7 @@ Follow these steps to extract the root filesystem: Image File:* You need to find and download the root filesystem image file that is appropriate for your target system. These files are kept in machine-specific folders in the - :yocto_dl:`Index of Releases ` + :yocto_dl:`Index of Releases ` in the "machines" directory. The machine-specific folders of the "machines" directory contain @@ -258,7 +258,7 @@ Follow these steps to extract the root filesystem: Following is an example command that extracts the root filesystem from a previously built root filesystem image that was downloaded - from the :yocto_dl:`Index of Releases `. + from the :yocto_dl:`Index of Releases `. This command extracts the root filesystem into the ``core2-64-sato`` directory: :: diff --git a/poky/documentation/sdk-manual/sdk-extensible.rst b/poky/documentation/sdk-manual/sdk-extensible.rst index 1ad5c46be..0f92ac9f0 100644 --- a/poky/documentation/sdk-manual/sdk-extensible.rst +++ b/poky/documentation/sdk-manual/sdk-extensible.rst @@ -51,7 +51,7 @@ Host` by running the ``*.sh`` installation script. You can download a tarball installer, which includes the pre-built toolchain, the ``runqemu`` script, the internal build system, ``devtool``, and support files from the appropriate -:yocto_dl:`toolchain ` directory within the Index of +:yocto_dl:`toolchain ` directory within the Index of Releases. Toolchains are available for several 32-bit and 64-bit architectures with the ``x86_64`` directories, respectively. The toolchains the Yocto Project provides are based off the diff --git a/poky/documentation/sdk-manual/sdk-intro.rst b/poky/documentation/sdk-manual/sdk-intro.rst index 2e01cf136..82b7bcf3c 100644 --- a/poky/documentation/sdk-manual/sdk-intro.rst +++ b/poky/documentation/sdk-manual/sdk-intro.rst @@ -195,7 +195,7 @@ You just need to follow these general steps: root filesystem images. If you are going to develop your application on hardware, go to the - :yocto_dl:`machines ` download area and choose a + :yocto_dl:`machines ` download area and choose a target machine area from which to download the kernel image and root filesystem. This download area could have several files in it that support development using actual hardware. For example, the area @@ -205,7 +205,7 @@ You just need to follow these general steps: If you are going to develop your application and then run and test it using the QEMU emulator, go to the - :yocto_dl:`machines/qemu ` download area. From this + :yocto_dl:`machines/qemu ` download area. From this area, go down into the directory for your target architecture (e.g. ``qemux86_64`` for an Intel-based 64-bit architecture). Download the kernel, root filesystem, and any other files you need for your diff --git a/poky/documentation/sdk-manual/sdk-using.rst b/poky/documentation/sdk-manual/sdk-using.rst index cd57f07ee..09a194cab 100644 --- a/poky/documentation/sdk-manual/sdk-using.rst +++ b/poky/documentation/sdk-manual/sdk-using.rst @@ -47,7 +47,7 @@ Host` by running the ``*.sh`` installation script. You can download a tarball installer, which includes the pre-built toolchain, the ``runqemu`` script, and support files from the -appropriate :yocto_dl:`toolchain ` directory within +appropriate :yocto_dl:`toolchain ` directory within the Index of Releases. Toolchains are available for several 32-bit and 64-bit architectures with the ``x86_64`` directories, respectively. The toolchains the Yocto Project provides are based off the diff --git a/poky/documentation/sphinx-static/theme_overrides.css b/poky/documentation/sphinx-static/theme_overrides.css index c18053398..55da38a2b 100644 --- a/poky/documentation/sphinx-static/theme_overrides.css +++ b/poky/documentation/sphinx-static/theme_overrides.css @@ -4,8 +4,6 @@ body { font-family: Verdana, Sans, sans-serif; - - min-width: 640px; margin: 0em auto; color: #333; } diff --git a/poky/documentation/sphinx/yocto-vars.py b/poky/documentation/sphinx/yocto-vars.py index 568947299..8083d7da1 100644 --- a/poky/documentation/sphinx/yocto-vars.py +++ b/poky/documentation/sphinx/yocto-vars.py @@ -1,10 +1,19 @@ #!/usr/bin/env python import re -import yaml +import sys import sphinx from sphinx.application import Sphinx +# This extension uses pyyaml, report an explicit +# error message if it's not installed +try: + import yaml +except ImportError: + sys.stderr.write("The Yocto Project Sphinx documentation requires PyYAML.\ + \nPlease make sure to install pyyaml python package.\n") + sys.exit(1) + __version__ = '1.0' # Variables substitutions. Uses {VAR} subst using variables defined in poky.yaml diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass index 02fef7c20..25cefda92 100644 --- a/poky/meta/classes/cve-check.bbclass +++ b/poky/meta/classes/cve-check.bbclass @@ -36,18 +36,21 @@ CVE_CHECK_SUMMARY_FILE_NAME ?= "cve-summary" CVE_CHECK_SUMMARY_FILE ?= "${CVE_CHECK_SUMMARY_DIR}/${CVE_CHECK_SUMMARY_FILE_NAME}" CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve" +CVE_CHECK_RECIPE_FILE ?= "${CVE_CHECK_DIR}/${PN}" CVE_CHECK_MANIFEST ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve" CVE_CHECK_COPY_FILES ??= "1" CVE_CHECK_CREATE_MANIFEST ??= "1" +CVE_CHECK_REPORT_PATCHED ??= "1" + # Whitelist for packages (PN) CVE_CHECK_PN_WHITELIST ?= "" # Whitelist for CVE. If a CVE is found, then it is considered patched. # The value is a string containing space separated CVE values: -# +# # CVE_CHECK_WHITELIST = 'CVE-2014-2524 CVE-2018-1234' -# +# CVE_CHECK_WHITELIST ?= "" python cve_save_summary_handler () { @@ -118,7 +121,7 @@ python cve_check_write_rootfs_manifest () { import shutil if d.getVar("CVE_CHECK_COPY_FILES") == "1": - deploy_file = os.path.join(d.getVar("CVE_CHECK_DIR"), d.getVar("PN")) + deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE") if os.path.exists(deploy_file): bb.utils.remove(deploy_file) @@ -331,12 +334,15 @@ def cve_write_data(d, patched, unpatched, whitelisted, cve_data): bb.utils.mkdirhier(os.path.dirname(cve_file)) for cve in sorted(cve_data): + is_patched = cve in patched + if is_patched and (d.getVar("CVE_CHECK_REPORT_PATCHED") != "1"): + continue write_string += "PACKAGE NAME: %s\n" % d.getVar("PN") write_string += "PACKAGE VERSION: %s%s\n" % (d.getVar("EXTENDPE"), d.getVar("PV")) write_string += "CVE: %s\n" % cve if cve in whitelisted: write_string += "CVE STATUS: Whitelisted\n" - elif cve in patched: + elif is_patched: write_string += "CVE STATUS: Patched\n" else: unpatched_cves.append(cve) @@ -350,20 +356,20 @@ def cve_write_data(d, patched, unpatched, whitelisted, cve_data): if unpatched_cves: bb.warn("Found unpatched CVE (%s), for more information check %s" % (" ".join(unpatched_cves),cve_file)) - with open(cve_file, "w") as f: - bb.note("Writing file %s with CVE information" % cve_file) - f.write(write_string) - - if d.getVar("CVE_CHECK_COPY_FILES") == "1": - cve_dir = d.getVar("CVE_CHECK_DIR") - bb.utils.mkdirhier(cve_dir) - deploy_file = os.path.join(cve_dir, d.getVar("PN")) - with open(deploy_file, "w") as f: + if write_string: + with open(cve_file, "w") as f: + bb.note("Writing file %s with CVE information" % cve_file) f.write(write_string) - if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1": - cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR") - bb.utils.mkdirhier(cvelogpath) + if d.getVar("CVE_CHECK_COPY_FILES") == "1": + deploy_file = d.getVar("CVE_CHECK_RECIPE_FILE") + bb.utils.mkdirhier(os.path.dirname(deploy_file)) + with open(deploy_file, "w") as f: + f.write(write_string) + + if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1": + cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR") + bb.utils.mkdirhier(cvelogpath) - with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f: - f.write("%s" % write_string) + with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f: + f.write("%s" % write_string) diff --git a/poky/meta/classes/go-mod.bbclass b/poky/meta/classes/go-mod.bbclass index 5871d0250..cabb04d0e 100644 --- a/poky/meta/classes/go-mod.bbclass +++ b/poky/meta/classes/go-mod.bbclass @@ -12,7 +12,7 @@ # 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" +GOBUILDFLAGS_append = " -modcacherw" inherit go diff --git a/poky/meta/classes/image-artifact-names.bbclass b/poky/meta/classes/image-artifact-names.bbclass index 5ab8f1b7a..3ac8dd731 100644 --- a/poky/meta/classes/image-artifact-names.bbclass +++ b/poky/meta/classes/image-artifact-names.bbclass @@ -2,11 +2,11 @@ # Specific image creation and rootfs population info. ################################################################## -IMAGE_BASENAME = "${PN}" -IMAGE_VERSION_SUFFIX = "-${DATETIME}" +IMAGE_BASENAME ?= "${PN}" +IMAGE_VERSION_SUFFIX ?= "-${DATETIME}" IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME" -IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}" -IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}" +IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}" +IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}" # IMAGE_NAME is the base name for everything produced when building images. # The actual image that contains the rootfs has an additional suffix (.rootfs diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index a35c5923d..35587dd56 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -155,7 +155,7 @@ do_kernel_metadata() { fi in_tree_defconfig="${WORKDIR}/defconfig" else - bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree" + bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree (${S}/arch/${ARCH}/configs/)" fi fi diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass index 48135b3d4..78def5bbc 100644 --- a/poky/meta/classes/kernel.bbclass +++ b/poky/meta/classes/kernel.bbclass @@ -172,7 +172,10 @@ python do_symlink_kernsrc () { shutil.move(s, kernsrc) os.symlink(kernsrc, s) } -addtask symlink_kernsrc before do_patch after do_unpack +# do_patch is normally ordered before do_configure, but +# externalsrc.bbclass deletes do_patch, breaking the dependency of +# do_configure on do_symlink_kernsrc. +addtask symlink_kernsrc before do_patch do_configure after do_unpack inherit kernel-arch deploy diff --git a/poky/meta/classes/linuxloader.bbclass b/poky/meta/classes/linuxloader.bbclass index 176fd89fd..720e5dfad 100644 --- a/poky/meta/classes/linuxloader.bbclass +++ b/poky/meta/classes/linuxloader.bbclass @@ -4,7 +4,7 @@ def get_musl_loader_arch(d): targetarch = d.getVar("TARGET_ARCH") if targetarch.startswith("microblaze"): - ldso_arch = "microblaze${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el' ,d)}" + ldso_arch = "microblaze${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}" elif targetarch.startswith("mips"): ldso_arch = "mips${ABIEXTENSION}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}${@['', '-sf'][d.getVar('TARGET_FPU') == 'soft']}" elif targetarch == "powerpc": diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index d659b6940..6f35b612c 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -522,12 +522,18 @@ python copy_buildsystem () { # sdk_ext_postinst() below) thus the checksum we take here would always # be different. manifest_file_list = ['conf/*'] + esdk_manifest_excludes = (d.getVar('ESDK_MANIFEST_EXCLUDES') or '').split() + esdk_manifest_excludes_list = [] + for exclude_item in esdk_manifest_excludes: + esdk_manifest_excludes_list += glob.glob(os.path.join(baseoutpath, exclude_item)) manifest_file = os.path.join(baseoutpath, 'conf', 'sdk-conf-manifest') with open(manifest_file, 'w') as f: for item in manifest_file_list: for fn in glob.glob(os.path.join(baseoutpath, item)): if fn == manifest_file: continue + if fn in esdk_manifest_excludes_list: + continue chksum = bb.utils.sha256_file(fn) f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath))) } diff --git a/poky/meta/classes/qemuboot.bbclass b/poky/meta/classes/qemuboot.bbclass index d8f62ef6e..824676216 100644 --- a/poky/meta/classes/qemuboot.bbclass +++ b/poky/meta/classes/qemuboot.bbclass @@ -29,6 +29,9 @@ # QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used # when QB_AUDIO_DRV is set. # +# QB_RNG: Pass-through for host random number generator, it can speedup boot +# in system mode, where system is experiencing entropy starvation +# # QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda # # QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@", @@ -77,6 +80,7 @@ QB_MEM ?= "-m 256" QB_SERIAL_OPT ?= "-serial mon:stdio -serial null" QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}" QB_DEFAULT_FSTYPE ?= "ext4" +QB_RNG ?= "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" QB_OPT_APPEND ?= "" QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@" QB_CMDLINE_IP_SLIRP ?= "ip=dhcp" diff --git a/poky/meta/classes/rootfs_rpm.bbclass b/poky/meta/classes/rootfs_rpm.bbclass index 51f89ea99..82584f386 100644 --- a/poky/meta/classes/rootfs_rpm.bbclass +++ b/poky/meta/classes/rootfs_rpm.bbclass @@ -9,7 +9,7 @@ export STAGING_INCDIR export STAGING_LIBDIR # Add 100Meg of extra space for dnf -IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "" ,d)}" +IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "dnf", " + 102400", "", d)}" # Dnf is python based, so be sure python3-native is available to us. EXTRANATIVEPATH += "python3-native" diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass index 375196ef2..a8ae75101 100644 --- a/poky/meta/classes/sstate.bbclass +++ b/poky/meta/classes/sstate.bbclass @@ -787,7 +787,7 @@ sstate_create_package () { return fi - mkdir -p `dirname ${SSTATE_PKG}` + mkdir --mode=0775 -p `dirname ${SSTATE_PKG}` TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX` # Use pigz if available @@ -847,7 +847,7 @@ python sstate_report_unihash() { sstate_unpack_package () { tar -xvzf ${SSTATE_PKG} # update .siginfo atime on local/NFS mirror - [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo + [ -O ${SSTATE_PKG}.siginfo ] && [ -w ${SSTATE_PKG}.siginfo ] && [ -h ${SSTATE_PKG}.siginfo ] && touch -a ${SSTATE_PKG}.siginfo # Use "! -w ||" to return true for read only files [ ! -w ${SSTATE_PKG} ] || touch --no-dereference ${SSTATE_PKG} [ ! -w ${SSTATE_PKG}.sig ] || [ ! -e ${SSTATE_PKG}.sig ] || touch --no-dereference ${SSTATE_PKG}.sig diff --git a/poky/meta/classes/staging.bbclass b/poky/meta/classes/staging.bbclass index de3a19815..f0a619b35 100644 --- a/poky/meta/classes/staging.bbclass +++ b/poky/meta/classes/staging.bbclass @@ -614,7 +614,7 @@ python staging_taskhandler() { bbtasks = e.tasklist for task in bbtasks: deps = d.getVarFlag(task, "depends") - if deps and "populate_sysroot" in deps: + if task == "do_configure" or (deps and "populate_sysroot" in deps): d.appendVarFlag(task, "prefuncs", " extend_recipe_sysroot") } staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess" diff --git a/poky/meta/classes/testexport.bbclass b/poky/meta/classes/testexport.bbclass index 59cbaefbf..1b0fb44a4 100644 --- a/poky/meta/classes/testexport.bbclass +++ b/poky/meta/classes/testexport.bbclass @@ -137,7 +137,7 @@ def copy_needed_files(d, tc): shutil.rmtree(os.path.join(subdir, dir)) # Create tar file for common parts of testexport - create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR")) + testexport_create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR")) # Copy packages needed for runtime testing package_extraction(d, tc.suites) @@ -146,7 +146,7 @@ def copy_needed_files(d, tc): export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR"), "packages") oe.path.copytree(test_pkg_dir, export_pkg_dir) # Create tar file for packages needed by the DUT - create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir) + testexport_create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir) # Copy SDK if d.getVar("TEST_EXPORT_SDK_ENABLED") == "1": @@ -159,11 +159,11 @@ def copy_needed_files(d, tc): shutil.copy2(tarball_path, export_sdk_dir) # Create tar file for the sdk - create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH"), export_sdk_dir) + testexport_create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH"), export_sdk_dir) bb.plain("Exported tests to: %s" % export_path) -def create_tarball(d, tar_name, src_dir): +def testexport_create_tarball(d, tar_name, src_dir): import tarfile diff --git a/poky/meta/classes/testimage.bbclass b/poky/meta/classes/testimage.bbclass index 6c8bedcd6..e3feef02f 100644 --- a/poky/meta/classes/testimage.bbclass +++ b/poky/meta/classes/testimage.bbclass @@ -319,6 +319,7 @@ def testimage_main(d): target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or "" target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or "" + target_kwargs['testimage_dump_target'] = d.getVar("testimage_dump_target") or "" def export_ssh_agent(d): import os diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index a318d1ca5..e6338b0c7 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -701,7 +701,7 @@ PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native" ################################################################## # Pre-build configuration output -BUILDCFG_HEADER = "Build Configuration:" +BUILDCFG_HEADER = "Build Configuration${@" (mc:${BB_CURRENT_MC})" if d.getVar("BBMULTICONFIG") else ""}:" BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU" BUILDCFG_VARS[type] = "list" BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS" diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc index a094b39b2..5a3f913b0 100644 --- a/poky/meta/conf/distro/include/maintainers.inc +++ b/poky/meta/conf/distro/include/maintainers.inc @@ -78,7 +78,7 @@ RECIPE_MAINTAINER_pn-bmap-tools = "Anuj Mittal " RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin " RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin " RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj " -RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu " RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie " RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie " RECIPE_MAINTAINER_pn-builder = "Richard Purdie " @@ -157,14 +157,14 @@ RECIPE_MAINTAINER_pn-dos2unix = "Khem Raj " RECIPE_MAINTAINER_pn-dosfstools = "Yi Zhao " RECIPE_MAINTAINER_pn-dpkg = "Aníbal Limón " RECIPE_MAINTAINER_pn-dropbear = "Yi Zhao " -RECIPE_MAINTAINER_pn-dtc = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu " RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin " RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang " RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin " RECIPE_MAINTAINER_pn-efivar = "Ross Burton " RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton " -RECIPE_MAINTAINER_pn-elfutils = "Hongxu Jia " -RECIPE_MAINTAINER_pn-ell = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen " +RECIPE_MAINTAINER_pn-ell = "Zang Ruochen " RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal " RECIPE_MAINTAINER_pn-encodings = "Armin Kuster " RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin " @@ -279,7 +279,7 @@ 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-iso-codes = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu " RECIPE_MAINTAINER_pn-itstool = "Andreas Müller " RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae " RECIPE_MAINTAINER_pn-libjpeg-turbo = "Anuj Mittal " @@ -362,15 +362,15 @@ RECIPE_MAINTAINER_pn-libogg = "Anuj Mittal " RECIPE_MAINTAINER_pn-libomxil = "Anuj Mittal " RECIPE_MAINTAINER_pn-libpam = "Anuj Mittal " RECIPE_MAINTAINER_pn-libpcap = "Anuj Mittal " -RECIPE_MAINTAINER_pn-libpciaccess = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu " RECIPE_MAINTAINER_pn-libpcre = "Yi Zhao " RECIPE_MAINTAINER_pn-libpcre2 = "Armin Kuster " -RECIPE_MAINTAINER_pn-libpipeline = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu " 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-librepo = "Wang Mingyu " RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal " RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen " RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao " @@ -391,7 +391,7 @@ 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-liburcu = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu " RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal " RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic " @@ -399,7 +399,7 @@ RECIPE_MAINTAINER_pn-libuv = "Armin Kuster " RECIPE_MAINTAINER_pn-libva = "Anuj Mittal " RECIPE_MAINTAINER_pn-libva-initial = "Anuj Mittal " RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal " -RECIPE_MAINTAINER_pn-libvorbis = "Tanu Kaskinen " +RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen " RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libwpe = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster " @@ -440,7 +440,7 @@ RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster " RECIPE_MAINTAINER_pn-libxv = "Armin Kuster " RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster " RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster " -RECIPE_MAINTAINER_pn-libyaml = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu " RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-linux-dummy = "Alexander Kanavin " RECIPE_MAINTAINER_pn-linux-firmware = "Otavio Salvador " @@ -505,7 +505,7 @@ RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao " RECIPE_MAINTAINER_pn-mpeg2dec = "Alexander Kanavin " RECIPE_MAINTAINER_pn-mpfr = "Khem Raj " RECIPE_MAINTAINER_pn-mpg123 = "Alexander Kanavin " -RECIPE_MAINTAINER_pn-msmtp = "Alexander Kanavin " +RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu " RECIPE_MAINTAINER_pn-mtd-utils = "Denys Dmytriyenko " RECIPE_MAINTAINER_pn-mtdev = "Anuj Mittal " RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal " @@ -580,7 +580,7 @@ RECIPE_MAINTAINER_pn-puzzles = "Anuj Mittal " RECIPE_MAINTAINER_pn-python3 = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-cython = "Oleksandr Kravchuk " -RECIPE_MAINTAINER_pn-python3-dbus = "Oleksandr Kravchuk " +RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen " RECIPE_MAINTAINER_pn-python3-dbusmock = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk " RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt " @@ -589,22 +589,24 @@ RECIPE_MAINTAINER_pn-python3-extras = "Oleksandr Kravchuk -Date: Mon, 15 Oct 2018 16:55:09 +0800 -Subject: [PATCH] avoid start failure with bind user - -Upstream-Status: Pending - -Signed-off-by: Chen Qi ---- - init.d | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/init.d b/init.d -index b2eec60..6e03936 100644 ---- a/init.d -+++ b/init.d -@@ -57,6 +57,7 @@ case "$1" in - modprobe capability >/dev/null 2>&1 || true - if [ ! -f /etc/bind/rndc.key ]; then - /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom -+ chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true - chmod 0640 /etc/bind/rndc.key - fi - if [ -f /var/run/named/named.pid ]; then --- -2.7.4 - diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch deleted file mode 100644 index 5bcc16c9b..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/0001-named-lwresd-V-and-start-log-hide-build-options.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Mon, 27 Aug 2018 21:24:20 +0800 -Subject: [PATCH] `named/lwresd -V' and start log hide build options - -The build options expose build path directories, so hide them. -[snip] -$ named -V -|built by make with *** (options are hidden) -[snip] - -Upstream-Status: Inappropriate [oe-core specific] - -Signed-off-by: Hongxu Jia - -Refreshed for 9.16.0 -Signed-off-by: Armin Kuster - ---- - bin/named/include/named/globals.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: bind-9.16.0/bin/named/include/named/globals.h -=================================================================== ---- bind-9.16.0.orig/bin/named/include/named/globals.h -+++ bind-9.16.0/bin/named/include/named/globals.h -@@ -69,7 +69,7 @@ EXTERN const char *named_g_version I - EXTERN const char *named_g_product INIT(PRODUCT); - EXTERN const char *named_g_description INIT(DESCRIPTION); - EXTERN const char *named_g_srcid INIT(SRCID); --EXTERN const char *named_g_configargs INIT(CONFIGARGS); -+EXTERN const char *named_g_configargs INIT("*** (options are hidden)"); - EXTERN const char *named_g_builder INIT(BUILDER); - EXTERN in_port_t named_g_port INIT(0); - EXTERN isc_dscp_t named_g_dscp INIT(-1); diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch deleted file mode 100644 index f9cdc7ca4..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind-ensure-searching-for-json-headers-searches-sysr.patch +++ /dev/null @@ -1,47 +0,0 @@ -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 - -Bind can fail configure by detecting headers w/o libs[1], or -it can fail the host contamination check as per below: - -ERROR: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. -Rerun configure task after fixing this. The path was 'build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/build' -ERROR: Function failed: do_qa_configure -ERROR: Logfile of failure stored in: build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/temp/log.do_configure.5242 -ERROR: Task 5 (meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure) failed with exit code '1' -NOTE: Tasks Summary: Attempted 773 tasks of which 768 didn't need to be rerun and 1 failed. -No currently running tasks (773 of 781) - -Summary: 1 task failed: - /meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure - -One way to fix it would be to unconditionally disable json in bind -configure[2] but here we fix it by using the path to where we would -put the header if we had json in the sysroot, in case someone wants -to make use of the combination some day. - -[1] https://trac.macports.org/ticket/45305 -[2] https://trac.macports.org/changeset/126406 - -Upstream-Status: Inappropriate [OE Specific] -Signed-off-by: Paul Gortmaker - ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: bind-9.16.4/configure.ac -=================================================================== ---- bind-9.16.4.orig/configure.ac -+++ bind-9.16.4/configure.ac -@@ -1232,7 +1232,7 @@ case "$use_lmdb" in - LMDB_LIBS="" - ;; - auto|yes) -- for d in /usr /usr/local /opt/local -+ for d in "${STAGING_INCDIR}" - do - if test -f "${d}/include/lmdb.h" - then diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind9 deleted file mode 100644 index 968679ff7..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/bind9 +++ /dev/null @@ -1,2 +0,0 @@ -# startup options for the server -OPTIONS="-u bind" diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch deleted file mode 100644 index aad345f9f..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/conf.patch +++ /dev/null @@ -1,330 +0,0 @@ -Upstream-Status: Inappropriate [configuration] - -the patch is imported from openembedded project - -11/30/2010 - Qing He - -diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0 ---- bind-9.3.1.orig/conf/db.0 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.0 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,12 @@ -+; -+; BIND reverse data file for broadcast zone -+; -+$TTL 604800 -+@ IN SOA localhost. root.localhost. ( -+ 1 ; Serial -+ 604800 ; Refresh -+ 86400 ; Retry -+ 2419200 ; Expire -+ 604800 ) ; Negative Cache TTL -+; -+@ IN NS localhost. -diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127 ---- bind-9.3.1.orig/conf/db.127 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.127 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,13 @@ -+; -+; BIND reverse data file for local loopback interface -+; -+$TTL 604800 -+@ IN SOA localhost. root.localhost. ( -+ 1 ; Serial -+ 604800 ; Refresh -+ 86400 ; Retry -+ 2419200 ; Expire -+ 604800 ) ; Negative Cache TTL -+; -+@ IN NS localhost. -+1.0.0 IN PTR localhost. -diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty ---- bind-9.3.1.orig/conf/db.empty 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.empty 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,14 @@ -+; BIND reverse data file for empty rfc1918 zone -+; -+; DO NOT EDIT THIS FILE - it is used for multiple zones. -+; Instead, copy it, edit named.conf, and use that copy. -+; -+$TTL 86400 -+@ IN SOA localhost. root.localhost. ( -+ 1 ; Serial -+ 604800 ; Refresh -+ 86400 ; Retry -+ 2419200 ; Expire -+ 86400 ) ; Negative Cache TTL -+; -+@ IN NS localhost. -diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255 ---- bind-9.3.1.orig/conf/db.255 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.255 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,12 @@ -+; -+; BIND reserve data file for broadcast zone -+; -+$TTL 604800 -+@ IN SOA localhost. root.localhost. ( -+ 1 ; Serial -+ 604800 ; Refresh -+ 86400 ; Retry -+ 2419200 ; Expire -+ 604800 ) ; Negative Cache TTL -+; -+@ IN NS localhost. -diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local ---- bind-9.3.1.orig/conf/db.local 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.local 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,13 @@ -+; -+; BIND data file for local loopback interface -+; -+$TTL 604800 -+@ IN SOA localhost. root.localhost. ( -+ 1 ; Serial -+ 604800 ; Refresh -+ 86400 ; Retry -+ 2419200 ; Expire -+ 604800 ) ; Negative Cache TTL -+; -+@ IN NS localhost. -+@ IN A 127.0.0.1 -diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root ---- bind-9.3.1.orig/conf/db.root 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/db.root 2005-07-10 22:14:00.000000000 +0200 -@@ -0,0 +1,45 @@ -+ -+; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net. -+;; global options: printcmd -+;; Got answer: -+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944 -+;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 -+ -+;; QUESTION SECTION: -+;. IN NS -+ -+;; ANSWER SECTION: -+. 518400 IN NS A.ROOT-SERVERS.NET. -+. 518400 IN NS B.ROOT-SERVERS.NET. -+. 518400 IN NS C.ROOT-SERVERS.NET. -+. 518400 IN NS D.ROOT-SERVERS.NET. -+. 518400 IN NS E.ROOT-SERVERS.NET. -+. 518400 IN NS F.ROOT-SERVERS.NET. -+. 518400 IN NS G.ROOT-SERVERS.NET. -+. 518400 IN NS H.ROOT-SERVERS.NET. -+. 518400 IN NS I.ROOT-SERVERS.NET. -+. 518400 IN NS J.ROOT-SERVERS.NET. -+. 518400 IN NS K.ROOT-SERVERS.NET. -+. 518400 IN NS L.ROOT-SERVERS.NET. -+. 518400 IN NS M.ROOT-SERVERS.NET. -+ -+;; ADDITIONAL SECTION: -+A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 -+B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 -+C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 -+D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 -+E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 -+F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 -+G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 -+H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 -+I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 -+J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 -+K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 -+L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12 -+M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33 -+ -+;; Query time: 81 msec -+;; SERVER: 198.41.0.4#53(a.root-servers.net.) -+;; WHEN: Sun Feb 1 11:27:14 2004 -+;; MSG SIZE rcvd: 436 -+ -diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf ---- bind-9.3.1.orig/conf/named.conf 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/named.conf 2005-07-10 22:33:46.000000000 +0200 -@@ -0,0 +1,49 @@ -+// This is the primary configuration file for the BIND DNS server named. -+// -+// If you are just adding zones, please do that in /etc/bind/named.conf.local -+ -+include "/etc/bind/named.conf.options"; -+ -+// prime the server with knowledge of the root servers -+zone "." { -+ type hint; -+ file "/etc/bind/db.root"; -+}; -+ -+// be authoritative for the localhost forward and reverse zones, and for -+// broadcast zones as per RFC 1912 -+ -+zone "localhost" { -+ type master; -+ file "/etc/bind/db.local"; -+}; -+ -+zone "127.in-addr.arpa" { -+ type master; -+ file "/etc/bind/db.127"; -+}; -+ -+zone "0.in-addr.arpa" { -+ type master; -+ file "/etc/bind/db.0"; -+}; -+ -+zone "255.in-addr.arpa" { -+ type master; -+ file "/etc/bind/db.255"; -+}; -+ -+// zone "com" { type delegation-only; }; -+// zone "net" { type delegation-only; }; -+ -+// From the release notes: -+// Because many of our users are uncomfortable receiving undelegated answers -+// from root or top level domains, other than a few for whom that behaviour -+// has been trusted and expected for quite some length of time, we have now -+// introduced the "root-delegations-only" feature which applies delegation-only -+// logic to all top level domains, and to the root domain. An exception list -+// should be specified, including "MUSEUM" and "DE", and any other top level -+// domains from whom undelegated responses are expected and trusted. -+// root-delegation-only exclude { "DE"; "MUSEUM"; }; -+ -+include "/etc/bind/named.conf.local"; -diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local ---- bind-9.3.1.orig/conf/named.conf.local 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/named.conf.local 2005-07-10 22:14:06.000000000 +0200 -@@ -0,0 +1,8 @@ -+// -+// Do any local configuration here -+// -+ -+// Consider adding the 1918 zones here, if they are not used in your -+// organization -+//include "/etc/bind/zones.rfc1918"; -+ -diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options ---- bind-9.3.1.orig/conf/named.conf.options 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/named.conf.options 2005-07-10 22:14:06.000000000 +0200 -@@ -0,0 +1,24 @@ -+options { -+ directory "/var/cache/bind"; -+ -+ // If there is a firewall between you and nameservers you want -+ // to talk to, you might need to uncomment the query-source -+ // directive below. Previous versions of BIND always asked -+ // questions using port 53, but BIND 8.1 and later use an unprivileged -+ // port by default. -+ -+ // query-source address * port 53; -+ -+ // If your ISP provided one or more IP addresses for stable -+ // nameservers, you probably want to use them as forwarders. -+ // Uncomment the following block, and insert the addresses replacing -+ // the all-0's placeholder. -+ -+ // forwarders { -+ // 0.0.0.0; -+ // }; -+ -+ auth-nxdomain no; # conform to RFC1035 -+ -+}; -+ -diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918 ---- bind-9.3.1.orig/conf/zones.rfc1918 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/conf/zones.rfc1918 2005-07-10 22:14:10.000000000 +0200 -@@ -0,0 +1,20 @@ -+zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+ -+zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -+ -+zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; -diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d ---- bind-9.3.1.orig/init.d 1970-01-01 01:00:00.000000000 +0100 -+++ bind-9.3.1/init.d 2005-07-10 23:09:58.000000000 +0200 -@@ -0,0 +1,70 @@ -+#!/bin/sh -+ -+PATH=/sbin:/bin:/usr/sbin:/usr/bin -+ -+# for a chrooted server: "-u bind -t /var/lib/named" -+# Don't modify this line, change or create /etc/default/bind9. -+OPTIONS="" -+ -+test -f /etc/default/bind9 && . /etc/default/bind9 -+ -+test -x /usr/sbin/rndc || exit 0 -+ -+case "$1" in -+ start) -+ echo -n "Starting domain name service: named" -+ -+ modprobe capability >/dev/null 2>&1 || true -+ if [ ! -f /etc/bind/rndc.key ]; then -+ /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom -+ chmod 0640 /etc/bind/rndc.key -+ fi -+ if [ -f /var/run/named/named.pid ]; then -+ ps `cat /var/run/named/named.pid` > /dev/null && exit 1 -+ fi -+ -+ # dirs under /var/run can go away on reboots. -+ mkdir -p /var/run/named -+ mkdir -p /var/cache/bind -+ chmod 775 /var/run/named -+ chown root:bind /var/run/named >/dev/null 2>&1 || true -+ -+ if [ ! -x /usr/sbin/named ]; then -+ echo "named binary missing - not starting" -+ exit 1 -+ fi -+ if start-stop-daemon --start --quiet --exec /usr/sbin/named \ -+ --pidfile /var/run/named/named.pid -- $OPTIONS; then -+ if [ -x /sbin/resolvconf ] ; then -+ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo -+ fi -+ fi -+ echo "." -+ ;; -+ -+ stop) -+ echo -n "Stopping domain name service: named" -+ if [ -x /sbin/resolvconf ]; then -+ /sbin/resolvconf -d lo -+ fi -+ /usr/sbin/rndc stop >/dev/null 2>&1 -+ echo "." -+ ;; -+ -+ reload) -+ /usr/sbin/rndc reload -+ ;; -+ -+ restart|force-reload) -+ $0 stop -+ sleep 2 -+ $0 start -+ ;; -+ -+ *) -+ echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2 -+ exit 1 -+ ;; -+esac -+ -+exit 0 diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh deleted file mode 100644 index ef915c0ae..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/generate-rndc-key.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -if [ ! -s /etc/bind/rndc.key ]; then - echo -n "Generating /etc/bind/rndc.key:" - /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom - chown root:bind /etc/bind/rndc.key - chmod 0640 /etc/bind/rndc.key -fi diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch deleted file mode 100644 index 11db95ede..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/init.d-add-support-for-read-only-rootfs.patch +++ /dev/null @@ -1,65 +0,0 @@ -Subject: init.d: add support for read-only rootfs - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Chen Qi ---- - init.d | 40 ++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 40 insertions(+) - -diff --git a/init.d b/init.d -index 0111ed4..24677c8 100644 ---- a/init.d -+++ b/init.d -@@ -6,8 +6,48 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin - # Don't modify this line, change or create /etc/default/bind9. - OPTIONS="" - -+test -f /etc/default/rcS && . /etc/default/rcS - test -f /etc/default/bind9 && . /etc/default/bind9 - -+# This function is here because it's possible that /var and / are on different partitions. -+is_on_read_only_partition () { -+ DIRECTORY=$1 -+ dir=`readlink -f $DIRECTORY` -+ while true; do -+ if [ ! -d "$dir" ]; then -+ echo "ERROR: $dir is not a directory" -+ exit 1 -+ else -+ for flag in `awk -v dir=$dir '{ if ($2 == dir) { print "FOUND"; split($4,FLAGS,",") } }; \ -+ END { for (f in FLAGS) print FLAGS[f] }' < /proc/mounts`; do -+ [ "$flag" = "FOUND" ] && partition="read-write" -+ [ "$flag" = "ro" ] && { partition="read-only"; break; } -+ done -+ if [ "$dir" = "/" -o -n "$partition" ]; then -+ break -+ else -+ dir=`dirname $dir` -+ fi -+ fi -+ done -+ [ "$partition" = "read-only" ] && echo "yes" || echo "no" -+} -+ -+bind_mount () { -+ olddir=$1 -+ newdir=$2 -+ mkdir -p $olddir -+ cp -a $newdir/* $olddir -+ mount --bind $olddir $newdir -+} -+ -+# Deal with read-only rootfs -+if [ "$ROOTFS_READ_ONLY" = "yes" ]; then -+ [ "$VERBOSE" != "no" ] && echo "WARN: start bind service in read-only rootfs" -+ [ `is_on_read_only_partition /etc/bind` = "yes" ] && bind_mount /var/volatile/bind/etc /etc/bind -+ [ `is_on_read_only_partition /var/named` = "yes" ] && bind_mount /var/volatile/bind/named /var/named -+fi -+ - test -x /usr/sbin/rndc || exit 0 - - case "$1" in --- -1.7.9.5 - diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch deleted file mode 100644 index 146f3e35d..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/make-etc-initd-bind-stop-work.patch +++ /dev/null @@ -1,42 +0,0 @@ -bind: make "/etc/init.d/bind stop" work - -Upstream-Status: Inappropriate [configuration] - -Add some configurations, make rndc command be able to controls -the named daemon. - -Signed-off-by: Roy Li ---- - conf/named.conf | 5 +++++ - conf/rndc.conf | 5 +++++ - 2 files changed, 10 insertions(+), 0 deletions(-) - create mode 100644 conf/rndc.conf - -diff --git a/conf/named.conf b/conf/named.conf -index 95829cf..c8899e7 100644 ---- a/conf/named.conf -+++ b/conf/named.conf -@@ -47,3 +47,8 @@ zone "255.in-addr.arpa" { - // root-delegation-only exclude { "DE"; "MUSEUM"; }; - - include "/etc/bind/named.conf.local"; -+include "/etc/bind/rndc.key" ; -+controls { -+ inet 127.0.0.1 allow { localhost; } -+ keys { rndc-key; }; -+}; -diff --git a/conf/rndc.conf b/conf/rndc.conf -new file mode 100644 -index 0000000..a0b481d ---- /dev/null -+++ b/conf/rndc.conf -@@ -0,0 +1,5 @@ -+include "/etc/bind/rndc.key"; -+options { -+ default-server localhost; -+ default-key rndc-key; -+}; - --- -1.7.5.4 - diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.5/named.service b/poky/meta/recipes-connectivity/bind/bind-9.16.5/named.service deleted file mode 100644 index cda56ef01..000000000 --- a/poky/meta/recipes-connectivity/bind/bind-9.16.5/named.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Berkeley Internet Name Domain (DNS) -Wants=nss-lookup.target -Before=nss-lookup.target -After=network.target - -[Service] -Type=forking -EnvironmentFile=-/etc/default/bind9 -PIDFile=/run/named/named.pid - -ExecStartPre=@SBINDIR@/generate-rndc-key.sh -ExecStart=@SBINDIR@/named $OPTIONS - -ExecReload=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc reload > /dev/null 2>&1 || @BASE_BINDIR@/kill -HUP $MAINPID' - -ExecStop=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc stop > /dev/null 2>&1 || @BASE_BINDIR@/kill -TERM $MAINPID' - -PrivateTmp=true - -[Install] -WantedBy=multi-user.target diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch new file mode 100644 index 000000000..8db96ec04 --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-avoid-start-failure-with-bind-user.patch @@ -0,0 +1,27 @@ +From 31dde3562f287429eea94b77250d184818b49063 Mon Sep 17 00:00:00 2001 +From: Chen Qi +Date: Mon, 15 Oct 2018 16:55:09 +0800 +Subject: [PATCH] avoid start failure with bind user + +Upstream-Status: Pending + +Signed-off-by: Chen Qi +--- + init.d | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/init.d b/init.d +index b2eec60..6e03936 100644 +--- a/init.d ++++ b/init.d +@@ -57,6 +57,7 @@ case "$1" in + modprobe capability >/dev/null 2>&1 || true + if [ ! -f /etc/bind/rndc.key ]; then + /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom ++ chown root:bind /etc/bind/rndc.key >/dev/null 2>&1 || true + chmod 0640 /etc/bind/rndc.key + fi + if [ -f /var/run/named/named.pid ]; then +-- +2.7.4 + diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch new file mode 100644 index 000000000..5bcc16c9b --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/0001-named-lwresd-V-and-start-log-hide-build-options.patch @@ -0,0 +1,35 @@ +From a3af4a405baf5ff582e82aaba392dd9667d94bdc Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Mon, 27 Aug 2018 21:24:20 +0800 +Subject: [PATCH] `named/lwresd -V' and start log hide build options + +The build options expose build path directories, so hide them. +[snip] +$ named -V +|built by make with *** (options are hidden) +[snip] + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Hongxu Jia + +Refreshed for 9.16.0 +Signed-off-by: Armin Kuster + +--- + bin/named/include/named/globals.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: bind-9.16.0/bin/named/include/named/globals.h +=================================================================== +--- bind-9.16.0.orig/bin/named/include/named/globals.h ++++ bind-9.16.0/bin/named/include/named/globals.h +@@ -69,7 +69,7 @@ EXTERN const char *named_g_version I + EXTERN const char *named_g_product INIT(PRODUCT); + EXTERN const char *named_g_description INIT(DESCRIPTION); + EXTERN const char *named_g_srcid INIT(SRCID); +-EXTERN const char *named_g_configargs INIT(CONFIGARGS); ++EXTERN const char *named_g_configargs INIT("*** (options are hidden)"); + EXTERN const char *named_g_builder INIT(BUILDER); + EXTERN in_port_t named_g_port INIT(0); + EXTERN isc_dscp_t named_g_dscp INIT(-1); diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch new file mode 100644 index 000000000..f9cdc7ca4 --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind-ensure-searching-for-json-headers-searches-sysr.patch @@ -0,0 +1,47 @@ +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 + +Bind can fail configure by detecting headers w/o libs[1], or +it can fail the host contamination check as per below: + +ERROR: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. +Rerun configure task after fixing this. The path was 'build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/build' +ERROR: Function failed: do_qa_configure +ERROR: Logfile of failure stored in: build/tmp/work/core2-64-poky-linux/bind/9.10.2-r1/temp/log.do_configure.5242 +ERROR: Task 5 (meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure) failed with exit code '1' +NOTE: Tasks Summary: Attempted 773 tasks of which 768 didn't need to be rerun and 1 failed. +No currently running tasks (773 of 781) + +Summary: 1 task failed: + /meta/recipes-connectivity/bind/bind_9.10.2.bb, do_configure + +One way to fix it would be to unconditionally disable json in bind +configure[2] but here we fix it by using the path to where we would +put the header if we had json in the sysroot, in case someone wants +to make use of the combination some day. + +[1] https://trac.macports.org/ticket/45305 +[2] https://trac.macports.org/changeset/126406 + +Upstream-Status: Inappropriate [OE Specific] +Signed-off-by: Paul Gortmaker + +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: bind-9.16.4/configure.ac +=================================================================== +--- bind-9.16.4.orig/configure.ac ++++ bind-9.16.4/configure.ac +@@ -1232,7 +1232,7 @@ case "$use_lmdb" in + LMDB_LIBS="" + ;; + auto|yes) +- for d in /usr /usr/local /opt/local ++ for d in "${STAGING_INCDIR}" + do + if test -f "${d}/include/lmdb.h" + then diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind9 new file mode 100644 index 000000000..968679ff7 --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/bind9 @@ -0,0 +1,2 @@ +# startup options for the server +OPTIONS="-u bind" diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch new file mode 100644 index 000000000..aad345f9f --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/conf.patch @@ -0,0 +1,330 @@ +Upstream-Status: Inappropriate [configuration] + +the patch is imported from openembedded project + +11/30/2010 - Qing He + +diff -urN bind-9.3.1.orig/conf/db.0 bind-9.3.1/conf/db.0 +--- bind-9.3.1.orig/conf/db.0 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.0 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,12 @@ ++; ++; BIND reverse data file for broadcast zone ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. +diff -urN bind-9.3.1.orig/conf/db.127 bind-9.3.1/conf/db.127 +--- bind-9.3.1.orig/conf/db.127 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.127 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,13 @@ ++; ++; BIND reverse data file for local loopback interface ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. ++1.0.0 IN PTR localhost. +diff -urN bind-9.3.1.orig/conf/db.empty bind-9.3.1/conf/db.empty +--- bind-9.3.1.orig/conf/db.empty 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.empty 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,14 @@ ++; BIND reverse data file for empty rfc1918 zone ++; ++; DO NOT EDIT THIS FILE - it is used for multiple zones. ++; Instead, copy it, edit named.conf, and use that copy. ++; ++$TTL 86400 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 86400 ) ; Negative Cache TTL ++; ++@ IN NS localhost. +diff -urN bind-9.3.1.orig/conf/db.255 bind-9.3.1/conf/db.255 +--- bind-9.3.1.orig/conf/db.255 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.255 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,12 @@ ++; ++; BIND reserve data file for broadcast zone ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. +diff -urN bind-9.3.1.orig/conf/db.local bind-9.3.1/conf/db.local +--- bind-9.3.1.orig/conf/db.local 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.local 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,13 @@ ++; ++; BIND data file for local loopback interface ++; ++$TTL 604800 ++@ IN SOA localhost. root.localhost. ( ++ 1 ; Serial ++ 604800 ; Refresh ++ 86400 ; Retry ++ 2419200 ; Expire ++ 604800 ) ; Negative Cache TTL ++; ++@ IN NS localhost. ++@ IN A 127.0.0.1 +diff -urN bind-9.3.1.orig/conf/db.root bind-9.3.1/conf/db.root +--- bind-9.3.1.orig/conf/db.root 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/db.root 2005-07-10 22:14:00.000000000 +0200 +@@ -0,0 +1,45 @@ ++ ++; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net. ++;; global options: printcmd ++;; Got answer: ++;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944 ++;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ++ ++;; QUESTION SECTION: ++;. IN NS ++ ++;; ANSWER SECTION: ++. 518400 IN NS A.ROOT-SERVERS.NET. ++. 518400 IN NS B.ROOT-SERVERS.NET. ++. 518400 IN NS C.ROOT-SERVERS.NET. ++. 518400 IN NS D.ROOT-SERVERS.NET. ++. 518400 IN NS E.ROOT-SERVERS.NET. ++. 518400 IN NS F.ROOT-SERVERS.NET. ++. 518400 IN NS G.ROOT-SERVERS.NET. ++. 518400 IN NS H.ROOT-SERVERS.NET. ++. 518400 IN NS I.ROOT-SERVERS.NET. ++. 518400 IN NS J.ROOT-SERVERS.NET. ++. 518400 IN NS K.ROOT-SERVERS.NET. ++. 518400 IN NS L.ROOT-SERVERS.NET. ++. 518400 IN NS M.ROOT-SERVERS.NET. ++ ++;; ADDITIONAL SECTION: ++A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 ++B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201 ++C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12 ++D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90 ++E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10 ++F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241 ++G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4 ++H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53 ++I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17 ++J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30 ++K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129 ++L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12 ++M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33 ++ ++;; Query time: 81 msec ++;; SERVER: 198.41.0.4#53(a.root-servers.net.) ++;; WHEN: Sun Feb 1 11:27:14 2004 ++;; MSG SIZE rcvd: 436 ++ +diff -urN bind-9.3.1.orig/conf/named.conf bind-9.3.1/conf/named.conf +--- bind-9.3.1.orig/conf/named.conf 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf 2005-07-10 22:33:46.000000000 +0200 +@@ -0,0 +1,49 @@ ++// This is the primary configuration file for the BIND DNS server named. ++// ++// If you are just adding zones, please do that in /etc/bind/named.conf.local ++ ++include "/etc/bind/named.conf.options"; ++ ++// prime the server with knowledge of the root servers ++zone "." { ++ type hint; ++ file "/etc/bind/db.root"; ++}; ++ ++// be authoritative for the localhost forward and reverse zones, and for ++// broadcast zones as per RFC 1912 ++ ++zone "localhost" { ++ type master; ++ file "/etc/bind/db.local"; ++}; ++ ++zone "127.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.127"; ++}; ++ ++zone "0.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.0"; ++}; ++ ++zone "255.in-addr.arpa" { ++ type master; ++ file "/etc/bind/db.255"; ++}; ++ ++// zone "com" { type delegation-only; }; ++// zone "net" { type delegation-only; }; ++ ++// From the release notes: ++// Because many of our users are uncomfortable receiving undelegated answers ++// from root or top level domains, other than a few for whom that behaviour ++// has been trusted and expected for quite some length of time, we have now ++// introduced the "root-delegations-only" feature which applies delegation-only ++// logic to all top level domains, and to the root domain. An exception list ++// should be specified, including "MUSEUM" and "DE", and any other top level ++// domains from whom undelegated responses are expected and trusted. ++// root-delegation-only exclude { "DE"; "MUSEUM"; }; ++ ++include "/etc/bind/named.conf.local"; +diff -urN bind-9.3.1.orig/conf/named.conf.local bind-9.3.1/conf/named.conf.local +--- bind-9.3.1.orig/conf/named.conf.local 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf.local 2005-07-10 22:14:06.000000000 +0200 +@@ -0,0 +1,8 @@ ++// ++// Do any local configuration here ++// ++ ++// Consider adding the 1918 zones here, if they are not used in your ++// organization ++//include "/etc/bind/zones.rfc1918"; ++ +diff -urN bind-9.3.1.orig/conf/named.conf.options bind-9.3.1/conf/named.conf.options +--- bind-9.3.1.orig/conf/named.conf.options 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/named.conf.options 2005-07-10 22:14:06.000000000 +0200 +@@ -0,0 +1,24 @@ ++options { ++ directory "/var/cache/bind"; ++ ++ // If there is a firewall between you and nameservers you want ++ // to talk to, you might need to uncomment the query-source ++ // directive below. Previous versions of BIND always asked ++ // questions using port 53, but BIND 8.1 and later use an unprivileged ++ // port by default. ++ ++ // query-source address * port 53; ++ ++ // If your ISP provided one or more IP addresses for stable ++ // nameservers, you probably want to use them as forwarders. ++ // Uncomment the following block, and insert the addresses replacing ++ // the all-0's placeholder. ++ ++ // forwarders { ++ // 0.0.0.0; ++ // }; ++ ++ auth-nxdomain no; # conform to RFC1035 ++ ++}; ++ +diff -urN bind-9.3.1.orig/conf/zones.rfc1918 bind-9.3.1/conf/zones.rfc1918 +--- bind-9.3.1.orig/conf/zones.rfc1918 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/conf/zones.rfc1918 2005-07-10 22:14:10.000000000 +0200 +@@ -0,0 +1,20 @@ ++zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++ ++zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; ++ ++zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; }; +diff -urN bind-9.3.1.orig/init.d bind-9.3.1/init.d +--- bind-9.3.1.orig/init.d 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.3.1/init.d 2005-07-10 23:09:58.000000000 +0200 +@@ -0,0 +1,70 @@ ++#!/bin/sh ++ ++PATH=/sbin:/bin:/usr/sbin:/usr/bin ++ ++# for a chrooted server: "-u bind -t /var/lib/named" ++# Don't modify this line, change or create /etc/default/bind9. ++OPTIONS="" ++ ++test -f /etc/default/bind9 && . /etc/default/bind9 ++ ++test -x /usr/sbin/rndc || exit 0 ++ ++case "$1" in ++ start) ++ echo -n "Starting domain name service: named" ++ ++ modprobe capability >/dev/null 2>&1 || true ++ if [ ! -f /etc/bind/rndc.key ]; then ++ /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom ++ chmod 0640 /etc/bind/rndc.key ++ fi ++ if [ -f /var/run/named/named.pid ]; then ++ ps `cat /var/run/named/named.pid` > /dev/null && exit 1 ++ fi ++ ++ # dirs under /var/run can go away on reboots. ++ mkdir -p /var/run/named ++ mkdir -p /var/cache/bind ++ chmod 775 /var/run/named ++ chown root:bind /var/run/named >/dev/null 2>&1 || true ++ ++ if [ ! -x /usr/sbin/named ]; then ++ echo "named binary missing - not starting" ++ exit 1 ++ fi ++ if start-stop-daemon --start --quiet --exec /usr/sbin/named \ ++ --pidfile /var/run/named/named.pid -- $OPTIONS; then ++ if [ -x /sbin/resolvconf ] ; then ++ echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo ++ fi ++ fi ++ echo "." ++ ;; ++ ++ stop) ++ echo -n "Stopping domain name service: named" ++ if [ -x /sbin/resolvconf ]; then ++ /sbin/resolvconf -d lo ++ fi ++ /usr/sbin/rndc stop >/dev/null 2>&1 ++ echo "." ++ ;; ++ ++ reload) ++ /usr/sbin/rndc reload ++ ;; ++ ++ restart|force-reload) ++ $0 stop ++ sleep 2 ++ $0 start ++ ;; ++ ++ *) ++ echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh new file mode 100644 index 000000000..633e29c0e --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/generate-rndc-key.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ ! -s /etc/bind/rndc.key ]; then + echo -n "Generating /etc/bind/rndc.key:" + /usr/sbin/rndc-confgen -a -b 512 + chown root:bind /etc/bind/rndc.key + chmod 0640 /etc/bind/rndc.key +fi diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch new file mode 100644 index 000000000..11db95ede --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/init.d-add-support-for-read-only-rootfs.patch @@ -0,0 +1,65 @@ +Subject: init.d: add support for read-only rootfs + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Chen Qi +--- + init.d | 40 ++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 40 insertions(+) + +diff --git a/init.d b/init.d +index 0111ed4..24677c8 100644 +--- a/init.d ++++ b/init.d +@@ -6,8 +6,48 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin + # Don't modify this line, change or create /etc/default/bind9. + OPTIONS="" + ++test -f /etc/default/rcS && . /etc/default/rcS + test -f /etc/default/bind9 && . /etc/default/bind9 + ++# This function is here because it's possible that /var and / are on different partitions. ++is_on_read_only_partition () { ++ DIRECTORY=$1 ++ dir=`readlink -f $DIRECTORY` ++ while true; do ++ if [ ! -d "$dir" ]; then ++ echo "ERROR: $dir is not a directory" ++ exit 1 ++ else ++ for flag in `awk -v dir=$dir '{ if ($2 == dir) { print "FOUND"; split($4,FLAGS,",") } }; \ ++ END { for (f in FLAGS) print FLAGS[f] }' < /proc/mounts`; do ++ [ "$flag" = "FOUND" ] && partition="read-write" ++ [ "$flag" = "ro" ] && { partition="read-only"; break; } ++ done ++ if [ "$dir" = "/" -o -n "$partition" ]; then ++ break ++ else ++ dir=`dirname $dir` ++ fi ++ fi ++ done ++ [ "$partition" = "read-only" ] && echo "yes" || echo "no" ++} ++ ++bind_mount () { ++ olddir=$1 ++ newdir=$2 ++ mkdir -p $olddir ++ cp -a $newdir/* $olddir ++ mount --bind $olddir $newdir ++} ++ ++# Deal with read-only rootfs ++if [ "$ROOTFS_READ_ONLY" = "yes" ]; then ++ [ "$VERBOSE" != "no" ] && echo "WARN: start bind service in read-only rootfs" ++ [ `is_on_read_only_partition /etc/bind` = "yes" ] && bind_mount /var/volatile/bind/etc /etc/bind ++ [ `is_on_read_only_partition /var/named` = "yes" ] && bind_mount /var/volatile/bind/named /var/named ++fi ++ + test -x /usr/sbin/rndc || exit 0 + + case "$1" in +-- +1.7.9.5 + diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch new file mode 100644 index 000000000..146f3e35d --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/make-etc-initd-bind-stop-work.patch @@ -0,0 +1,42 @@ +bind: make "/etc/init.d/bind stop" work + +Upstream-Status: Inappropriate [configuration] + +Add some configurations, make rndc command be able to controls +the named daemon. + +Signed-off-by: Roy Li +--- + conf/named.conf | 5 +++++ + conf/rndc.conf | 5 +++++ + 2 files changed, 10 insertions(+), 0 deletions(-) + create mode 100644 conf/rndc.conf + +diff --git a/conf/named.conf b/conf/named.conf +index 95829cf..c8899e7 100644 +--- a/conf/named.conf ++++ b/conf/named.conf +@@ -47,3 +47,8 @@ zone "255.in-addr.arpa" { + // root-delegation-only exclude { "DE"; "MUSEUM"; }; + + include "/etc/bind/named.conf.local"; ++include "/etc/bind/rndc.key" ; ++controls { ++ inet 127.0.0.1 allow { localhost; } ++ keys { rndc-key; }; ++}; +diff --git a/conf/rndc.conf b/conf/rndc.conf +new file mode 100644 +index 0000000..a0b481d +--- /dev/null ++++ b/conf/rndc.conf +@@ -0,0 +1,5 @@ ++include "/etc/bind/rndc.key"; ++options { ++ default-server localhost; ++ default-key rndc-key; ++}; + +-- +1.7.5.4 + diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.7/named.service b/poky/meta/recipes-connectivity/bind/bind-9.16.7/named.service new file mode 100644 index 000000000..cda56ef01 --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind-9.16.7/named.service @@ -0,0 +1,22 @@ +[Unit] +Description=Berkeley Internet Name Domain (DNS) +Wants=nss-lookup.target +Before=nss-lookup.target +After=network.target + +[Service] +Type=forking +EnvironmentFile=-/etc/default/bind9 +PIDFile=/run/named/named.pid + +ExecStartPre=@SBINDIR@/generate-rndc-key.sh +ExecStart=@SBINDIR@/named $OPTIONS + +ExecReload=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc reload > /dev/null 2>&1 || @BASE_BINDIR@/kill -HUP $MAINPID' + +ExecStop=@BASE_BINDIR@/sh -c '@SBINDIR@/rndc stop > /dev/null 2>&1 || @BASE_BINDIR@/kill -TERM $MAINPID' + +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.5.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.5.bb deleted file mode 100644 index 103192490..000000000 --- a/poky/meta/recipes-connectivity/bind/bind_9.16.5.bb +++ /dev/null @@ -1,123 +0,0 @@ -SUMMARY = "ISC Internet Domain Name Server" -HOMEPAGE = "http://www.isc.org/sw/bind/" -SECTION = "console/network" - -LICENSE = "MPL-2.0" -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=188b8d0644bd6835df43b84e3f180be1" - -DEPENDS = "openssl libcap zlib libuv" - -SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \ - 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-named-lwresd-V-and-start-log-hide-build-options.patch \ - file://0001-avoid-start-failure-with-bind-user.patch \ - " - -SRC_URI[sha256sum] = "6378b3e51fef11a8be4794dc48e8111ba92d211c0dfd129a0c296ed06a3dc075" - -UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" -# stay at 9.16 follow the ESV versions divisible by 4 -UPSTREAM_CHECK_REGEX = "(?P9.(16|20|24|28)(\.\d+)+(-P\d+)*)/" - -inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives - -# PACKAGECONFIGs readline and libedit should NOT be set at same time -PACKAGECONFIG ?= "readline" -PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2" -PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline" -PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit" -PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native," - -EXTRA_OECONF = " --with-libtool --disable-devpoll --enable-epoll \ - --with-gssapi=no --with-lmdb=no --with-zlib \ - --sysconfdir=${sysconfdir}/bind \ - --with-openssl=${STAGING_DIR_HOST}${prefix} \ - " -LDFLAGS_append = " -lz" - -inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)} - -# 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_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* ${libdir}/named/*.so*" -FILES_${PN}-staticdev += "${libdir}/*.la" - -PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}" -FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \ - ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}" - -RDEPENDS_${PN}-dev = "" -RDEPENDS_python3-bind = "python3-core python3-ply" diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.7.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.7.bb new file mode 100644 index 000000000..5fc2c1d3c --- /dev/null +++ b/poky/meta/recipes-connectivity/bind/bind_9.16.7.bb @@ -0,0 +1,123 @@ +SUMMARY = "ISC Internet Domain Name Server" +HOMEPAGE = "http://www.isc.org/sw/bind/" +SECTION = "console/network" + +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=188b8d0644bd6835df43b84e3f180be1" + +DEPENDS = "openssl libcap zlib libuv" + +SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \ + 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-named-lwresd-V-and-start-log-hide-build-options.patch \ + file://0001-avoid-start-failure-with-bind-user.patch \ + " + +SRC_URI[sha256sum] = "9f7d1812ebbd26a699f62b6fa8522d5dec57e4bf43af0042a0d60d39ed8314d1" + +UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/" +# stay at 9.16 follow the ESV versions divisible by 4 +UPSTREAM_CHECK_REGEX = "(?P9.(16|20|24|28)(\.\d+)+(-P\d+)*)/" + +inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives + +# PACKAGECONFIGs readline and libedit should NOT be set at same time +PACKAGECONFIG ?= "readline" +PACKAGECONFIG[httpstats] = "--with-libxml2=${STAGING_DIR_HOST}${prefix},--without-libxml2,libxml2" +PACKAGECONFIG[readline] = "--with-readline=-lreadline,,readline" +PACKAGECONFIG[libedit] = "--with-readline=-ledit,,libedit" +PACKAGECONFIG[python3] = "--with-python=yes --with-python-install-dir=${PYTHON_SITEPACKAGES_DIR} , --without-python, python3-ply-native," + +EXTRA_OECONF = " --with-libtool --disable-devpoll --disable-auto-validation --enable-epoll \ + --with-gssapi=no --with-lmdb=no --with-zlib \ + --sysconfdir=${sysconfdir}/bind \ + --with-openssl=${STAGING_DIR_HOST}${prefix} \ + " +LDFLAGS_append = " -lz" + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native distutils3-base', '', d)} + +# 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_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* ${libdir}/named/*.so*" +FILES_${PN}-staticdev += "${libdir}/*.la" + +PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-bind', '', d)}" +FILES_python3-bind = "${sbindir}/dnssec-coverage ${sbindir}/dnssec-checkds \ + ${sbindir}/dnssec-keymgr ${PYTHON_SITEPACKAGES_DIR}" + +RDEPENDS_${PN}-dev = "" +RDEPENDS_python3-bind = "python3-core python3-ply" diff --git a/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb b/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb index 292cb5b00..4344841b5 100644 --- a/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb +++ b/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.2.0.bb @@ -19,7 +19,7 @@ SRC_URI = "https://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz \ SRC_URI[sha256sum] = "fcb2d19672d445bbfd38678fdee4f556ef967a3ea6bd81092d10545df2cb9666" -inherit pkgconfig autotools-brokensep systemd +inherit pkgconfig autotools-brokensep systemd useradd SYSTEMD_SERVICE_${PN} = "dhcpcd.service" @@ -28,12 +28,21 @@ PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" -EXTRA_OECONF = "--enable-ipv4" +EXTRA_OECONF = "--enable-ipv4 \ + --dbdir=${localstatedir}/lib/${BPN} \ + --runstatedir=/run \ + " + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system -d ${localstatedir}/lib/${BPN} -M -s /bin/false -U dhcpcd" do_install_append () { # install systemd unit files install -d ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/dhcpcd*.service ${D}${systemd_unitdir}/system + + chmod 700 ${D}${localstatedir}/lib/${BPN} + chown dhcpcd:dhcpcd ${D}${localstatedir}/lib/${BPN} } FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug" diff --git a/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service b/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service index 86b5a43c3..bbed6d85c 100644 --- a/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service +++ b/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd.service @@ -2,6 +2,7 @@ Description=A minimalistic network configuration daemon with DHCPv4, rdisc and DHCPv6 support Wants=network.target Before=network.target +Conflicts=connman.service [Service] ExecStart=/usr/sbin/dhcpcd -q --nobackground diff --git a/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service b/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service index c81bb05ea..389b076c3 100644 --- a/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service +++ b/poky/meta/recipes-connectivity/dhcpcd/files/dhcpcd@.service @@ -4,10 +4,11 @@ Wants=network.target Before=network.target BindsTo=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device +Conflicts=connman.service [Service] Type=forking -PIDFile=/run/dhcpcd-%I.pid +PIDFile=/run/dhcpcd/%I.pid ExecStart=/usr/sbin/dhcpcd -q %I ExecStop=/usr/sbin/dhcpcd -x %I diff --git a/poky/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch b/poky/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch new file mode 100644 index 000000000..ab3fd8394 --- /dev/null +++ b/poky/meta/recipes-connectivity/kea/files/0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch @@ -0,0 +1,39 @@ +From 639dc25cdabc9d1846000a542c8cc19158b69994 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +Date: Fri, 18 Sep 2020 08:18:08 +0000 +Subject: [PATCH] keactrl.in: create /var/lib/kea and /var/run/kea folder + +Create /var/lib/kea and /var/run/kea folder to fix below error: + # keactrl start + INFO/keactrl: Starting /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf + INFO/keactrl: Starting /usr/sbin/kea-dhcp6 -c /etc/kea/kea-dhcp6.conf + INFO/keactrl: Starting /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf + Unable to use interprocess sync lockfile (No such file or directory): /var/run/kea/logger_lockfile + Service failed: Launch failed: Unable to open PID file '/var/run/kea/kea-ctrl-agent.kea-ctrl-agent.pid' for write + [snip] + ERROR [kea-dhcp4.dhcp4/615.140641792751488] DHCP4_CONFIG_LOAD_FAIL configuration error using file: /etc/kea/kea-dhcp4.conf, reason: Unable to open database: unable to open '/var/lib/kea/kea-leases4.csv' + [snip] + +Upstream-Status: Inappropriate [config specific] + +Signed-off-by: Mingli Yu +--- + src/bin/keactrl/keactrl.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/bin/keactrl/keactrl.in b/src/bin/keactrl/keactrl.in +index 12b2b3f..47cf6f9 100644 +--- a/src/bin/keactrl/keactrl.in ++++ b/src/bin/keactrl/keactrl.in +@@ -482,6 +482,8 @@ case ${command} in + # The variables (dhcp4_srv, dhcp6_serv, dhcp_ddns_srv etc) are set in the + # keactrl.conf file that shellcheck is unable to read. + # shellcheck disable=SC2154 ++ [ -d @LOCALSTATEDIR@/run/kea ] || mkdir -p @LOCALSTATEDIR@/run/kea ++ [ -d @LOCALSTATEDIR@/lib/kea ] || mkdir -p @LOCALSTATEDIR@/lib/kea + run_conditional "dhcp4" "start_server ${dhcp4_srv} -c ${kea_dhcp4_config_file} ${args}" 1 + run_conditional "dhcp6" "start_server ${dhcp6_srv} -c ${kea_dhcp6_config_file} ${args}" 1 + # shellcheck disable=SC2154 +-- +2.26.2 + diff --git a/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch b/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch new file mode 100644 index 000000000..733adf553 --- /dev/null +++ b/poky/meta/recipes-connectivity/kea/files/fix-multilib-conflict.patch @@ -0,0 +1,55 @@ +There are conflict of config files between kea and lib32-kea: + +| Error: Transaction test error: +| file /etc/kea/kea-ctrl-agent.conf conflicts between attempted installs of + lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64 +| file /etc/kea/kea-dhcp4.conf conflicts between attempted installs of + lib32-kea-1.7.10-r0.core2_32 and kea-1.7.10-r0.core2_64 + +Because they are all commented out, replace the expanded libdir path with +'$libdir' in the config files to avoid conflict. + +Signed-off-by: Kai Kang +--- + src/bin/keactrl/kea-ctrl-agent.conf.pre | 3 ++- + src/bin/keactrl/kea-dhcp4.conf.pre | 6 ++++-- + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/bin/keactrl/kea-ctrl-agent.conf.pre b/src/bin/keactrl/kea-ctrl-agent.conf.pre +index 211b7ff..d710ec7 100644 +--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre ++++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre +@@ -45,7 +45,8 @@ + // Agent will fail to start. + "hooks-libraries": [ + // { +-// "library": "@libdir@/kea/hooks/control-agent-commands.so", ++// // Replace $libdir with real library path /usr/lib or /usr/lib64 ++// "library": "$libdir/kea/hooks/control-agent-commands.so", + // "parameters": { + // "param1": "foo" + // } +diff --git a/src/bin/keactrl/kea-dhcp4.conf.pre b/src/bin/keactrl/kea-dhcp4.conf.pre +index 5f77a32..70ae3d9 100644 +--- a/src/bin/keactrl/kea-dhcp4.conf.pre ++++ b/src/bin/keactrl/kea-dhcp4.conf.pre +@@ -252,7 +252,8 @@ + // // of all devices serviced by Kea, including their identifiers + // // (like MAC address), their location in the network, times + // // when they were active etc. +- // "library": "@libdir@/kea/hooks/libdhcp_legal_log.so" ++ // // Replace $libdir with real library path /usr/lib or /usr/lib64 ++ // "library": "$libdir/kea/hooks/libdhcp_legal_log.so" + // "parameters": { + // "path": "/var/lib/kea", + // "base-name": "kea-forensic4" +@@ -269,7 +270,8 @@ + // // of specific options or perhaps even a combination of several + // // options and fields to uniquely identify a client. Those scenarios + // // are addressed by the Flexible Identifiers hook application. +- // "library": "@libdir@/kea/hooks/libdhcp_flex_id.so", ++ // // Replace $libdir with real library path /usr/lib or /usr/lib64 ++ // "library": "$libdir/kea/hooks/libdhcp_flex_id.so", + // "parameters": { + // "identifier-expression": "substring(relay6[0].option[18],0,8)" + // } diff --git a/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb b/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb index e2560b239..2ea4b1275 100644 --- a/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb +++ b/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb @@ -9,9 +9,11 @@ DEPENDS = "boost log4cplus openssl" SRC_URI = "\ http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \ + file://0001-keactrl.in-create-var-lib-kea-and-var-run-kea-folder.patch \ file://kea-dhcp4.service \ file://kea-dhcp6.service \ file://kea-dhcp-ddns.service \ + file://fix-multilib-conflict.patch \ " SRC_URI[sha256sum] = "4e121f0e58b175a827581c69cb1d60778647049fa47f142940dddc9ce58f3c82" @@ -46,7 +48,7 @@ do_install_append() { install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir} sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \ -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - ${D}${systemd_system_unitdir}/kea-dhcp*service + ${D}${systemd_system_unitdir}/kea-dhcp*service ${D}${sbindir}/keactrl } do_install_append() { diff --git a/poky/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service b/poky/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service index 603c33787..fd81793d5 100644 --- a/poky/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service +++ b/poky/meta/recipes-connectivity/openssh/openssh/sshdgenkeys.service @@ -6,3 +6,4 @@ RequiresMountsFor=/var /run ExecStart=@LIBEXECDIR@/sshd_check_keys Type=oneshot RemainAfterExit=yes +Nice=10 diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.3p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.3p1.bb index fad321898..e00732870 100644 --- a/poky/meta/recipes-connectivity/openssh/openssh_8.3p1.bb +++ b/poky/meta/recipes-connectivity/openssh/openssh_8.3p1.bb @@ -42,12 +42,15 @@ SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket" inherit autotools-brokensep ptest -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "rng-tools" PACKAGECONFIG[kerberos] = "--with-kerberos5,--without-kerberos5,krb5" PACKAGECONFIG[ldns] = "--with-ldns,--without-ldns,ldns" PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" PACKAGECONFIG[manpages] = "--with-mantype=man,--with-mantype=cat" +# Add RRECOMMENDS to rng-tools for sshd package +PACKAGECONFIG[rng-tools] = "" + EXTRA_AUTORECONF += "--exclude=aclocal" # login path is hardcoded in sshd @@ -149,7 +152,10 @@ FILES_${PN}-keygen = "${bindir}/ssh-keygen" RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen" RDEPENDS_${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-keyinit pam-plugin-loginuid', '', d)}" -RRECOMMENDS_${PN}-sshd_append_class-target = " rng-tools" +RRECOMMENDS_${PN}-sshd_append_class-target = "\ + ${@bb.utils.filter('PACKAGECONFIG', 'rng-tools', d)} \ +" + # gdb would make attach-ptrace test pass rather than skip but not worth the build dependencies RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make sed sudo coreutils" diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key new file mode 100644 index 000000000..30443c943 Binary files /dev/null and b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/dropbear_rsa_host_key differ diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key new file mode 100644 index 000000000..86c2104ec --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key @@ -0,0 +1,9 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS +1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQRJR6iZxr/NTqQN9NOwV+WPtu42r2eF +rJ0xsnlqw5bpmfz6aDR8RQvVHUZjRGQfR/RXPbQ5x+bjjdm176TuXNhHAAAAqAoE27MKBN +uzAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBElHqJnGv81OpA30 +07BX5Y+27javZ4WsnTGyeWrDlumZ/PpoNHxFC9UdRmNEZB9H9Fc9tDnH5uON2bXvpO5c2E +cAAAAgLiHv/IWhxwosz9BiNILOOPlXaueL5hVTBKUJkpOi48sAAAANcm9vdEBxZW11bWlw +cwECAw== +-----END OPENSSH PRIVATE KEY----- diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub new file mode 100644 index 000000000..a358aeb88 --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ecdsa_key.pub @@ -0,0 +1 @@ +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBElHqJnGv81OpA3007BX5Y+27javZ4WsnTGyeWrDlumZ/PpoNHxFC9UdRmNEZB9H9Fc9tDnH5uON2bXvpO5c2Ec= root@qemupregen diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key new file mode 100644 index 000000000..00ed9adae --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACDHSFTAbJ3OTd1r1E8G5JleCmsJEpQHmdTGtMcYqwWbbwAAAJChFtV0oRbV +dAAAAAtzc2gtZWQyNTUxOQAAACDHSFTAbJ3OTd1r1E8G5JleCmsJEpQHmdTGtMcYqwWbbw +AAAEA8UiUsygsTbP0HkDi5leXpQaVXihDyCHeitkBCItJGhcdIVMBsnc5N3WvUTwbkmV4K +awkSlAeZ1Ma0xxirBZtvAAAADXJvb3RAcWVtdW1pcHM= +-----END OPENSSH PRIVATE KEY----- diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub new file mode 100644 index 000000000..cc0e2f43e --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_ed25519_key.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdIVMBsnc5N3WvUTwbkmV4KawkSlAeZ1Ma0xxirBZtv root@qemupregen diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key new file mode 100644 index 000000000..a8e4406ba --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key @@ -0,0 +1,38 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn +NhAAAAAwEAAQAAAYEA2Q6dzF1xziCQCFq+e+Fv6w0607gNlyKnkhuoRq8G7/HEqXU2eEtC +i3AMUrAP8k7s9kP5vI5CyfSgFuC9MxDV2YL2bsmvRxBSKgg6KbNxkoTaFBqyqHopuWQca8 +KRahvzt5dh9fsmeqamIwgMWKTSwtDHcsbyt84nmO2Z2ZrNXobgueMIj+HiJVgmWn86FQFL +EoONAA+qb4SciPsxvmTlaQ/DMAh3llVo/IMLD9oyAyAI2kbHNnZttlYv5TmY7ICd3yCW8z +PXrxNcEF3Qs1d68gVJxLjLKTlYGzJW2J+RwY+1DJZ0w4lozeQiZXTXVtzcJB0tm2DcvQMz +kqyARmncSUwcPbEClEW6Y2xQnLeSHjexzlCCndiUbBTeG5iRl4OL6DN40iI9Lw2VROtj2Y +59n9PCfaoUs08dsgJLaNrDbRHrCRLSdZJ6OQFiC/nAx/t4e4+wdUgNOqLyJqomdNdaLXPq +tzr9ssrcY5j1DmmwKtzfTI5VM9LRQo+REIiUCNTFAAAFiFh232tYdt9rAAAAB3NzaC1yc2 +EAAAGBANkOncxdcc4gkAhavnvhb+sNOtO4DZcip5IbqEavBu/xxKl1NnhLQotwDFKwD/JO +7PZD+byOQsn0oBbgvTMQ1dmC9m7Jr0cQUioIOimzcZKE2hQasqh6KblkHGvCkWob87eXYf +X7JnqmpiMIDFik0sLQx3LG8rfOJ5jtmdmazV6G4LnjCI/h4iVYJlp/OhUBSxKDjQAPqm+E +nIj7Mb5k5WkPwzAId5ZVaPyDCw/aMgMgCNpGxzZ2bbZWL+U5mOyAnd8glvMz168TXBBd0L +NXevIFScS4yyk5WBsyVtifkcGPtQyWdMOJaM3kImV011bc3CQdLZtg3L0DM5KsgEZp3ElM +HD2xApRFumNsUJy3kh43sc5Qgp3YlGwU3huYkZeDi+gzeNIiPS8NlUTrY9mOfZ/Twn2qFL +NPHbICS2jaw20R6wkS0nWSejkBYgv5wMf7eHuPsHVIDTqi8iaqJnTXWi1z6rc6/bLK3GOY +9Q5psCrc30yOVTPS0UKPkRCIlAjUxQAAAAMBAAEAAAGAGIj+bUtiwdoMbeVUAszIydkE/U +mgv6S7LFjT/KlsL1M017LYJWDcdMaFnhMouksRngSxBg9OnWV5cxyURmFwytVy5bMGjRHb +N8UWTgBqphU+UWdzKngkn0AhtkyYA1aFhgsml5d8EgEkZnFSc/KtoDfZU7AJX519/FtfOK +m27Shx3pE7Nohh97avHyuidR1gTwdvuMIMke57g0BhrxPYmredaKCMZAHjjCeD6JbRcGj+ +ly3I9u8MF8BGSbLpBlLDUFCwP8G5CdmMua8bPJYhPSRqMLQhclI7hc6FaYk+gZV9B74Iv/ +SAxcCwI97dNbE0IAsbbWoUdoKGpAYQ5gOdhu5ioqZwKWjNjB3Xx48mq8xtmIR9HEnYzEnk +b/tDWNRWrGkvNK7vpLvnbsSSKBqOAbMzmQdJxogTgjE5doSmu2/krIMR6KUcUox2ZrR8Ot +JM6bXyNFBviiXmYvw/SZTDrVJu8BPMu5EMS5pBl8jPFBGI/ePk4qg7lWAJeQ89ThtBAAAA +wQDEU4HjomWwJsn9UWdoodXTV5aPY9B1OPkmYnRPtsjSAcXgtBzUXMEOsmXODOK3aQjsE0 +jQKpWDAUcUf6KKZKRehxUN4MlwujCG9czn65S6B8BsP1YUfZQjpNyub8vDBfeKzlxKBEEM +lb4iBT+LEGkihK13H5CbqRg1GDAThZzwrV4pj3S40zgyHhn8JjK4x4djEY6NwkWH8E2DgD +8vYG/FKh5E/VIZtCgtAHa4QNAgGB4VMRn1VpSJzxjCxb1wancAAADBAPT7F34WYEI3Vc52 +p1U5rPa6dZtg5QM14V0+KtMlb3frd0/F+JVj4t6COQ8J9pkOuD0YjOYJuFXIWAAYIjCdWt +cbTi/sSERawOWxrgSwJo2vjt5izrBQtr3N8tiB6KDGa5sdgJl5XzJ0SsdStfBbyhcJO4RV +p9lc+X8OsUfFsClmyIs45vlxBRH06DP6/zmYCAmqvlrfZJKqlpKAEWDDObRy/3+mSNhZ0J +BdmncASiASRlPPIoIHznyA1COUn6+TnwAAAMEA4tH89Dez2JauyPVeCyHAC680vrBKjmMx +WYdpq2Xzd/LNl2L9oc0IEZzerLTuaCh6qsbbk2wWj1nrYXvefz/xUtDR427tvRXckcsWhP +2HYohdYBkwTpp9QuscIV76GdwbTImuNEzvABH1hpTG6DSzqeyf/EVmSq07nptJIs5lpU49 +tW2aWraSvswHR9xfts1U79w9f4BNDy1rTmfuLERTRNF/T9CIFsk9tArLUNT64mhHtoEs8F +9AyGuq6v49bN0bAAAADXJvb3RAcWVtdW1pcHMBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub new file mode 100644 index 000000000..9eb8c3838 --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys/openssh/ssh_host_rsa_key.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZDp3MXXHOIJAIWr574W/rDTrTuA2XIqeSG6hGrwbv8cSpdTZ4S0KLcAxSsA/yTuz2Q/m8jkLJ9KAW4L0zENXZgvZuya9HEFIqCDops3GShNoUGrKoeim5ZBxrwpFqG/O3l2H1+yZ6pqYjCAxYpNLC0MdyxvK3zieY7ZnZms1ehuC54wiP4eIlWCZafzoVAUsSg40AD6pvhJyI+zG+ZOVpD8MwCHeWVWj8gwsP2jIDIAjaRsc2dm22Vi/lOZjsgJ3fIJbzM9evE1wQXdCzV3ryBUnEuMspOVgbMlbYn5HBj7UMlnTDiWjN5CJldNdW3NwkHS2bYNy9AzOSrIBGadxJTBw9sQKURbpjbFCct5IeN7HOUIKd2JRsFN4bmJGXg4voM3jSIj0vDZVE62PZjn2f08J9qhSzTx2yAkto2sNtEesJEtJ1kno5AWIL+cDH+3h7j7B1SA06ovImqiZ011otc+q3Ov2yytxjmPUOabAq3N9MjlUz0tFCj5EQiJQI1MU= root@qemupregen diff --git a/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb new file mode 100644 index 000000000..ddd10e6ee --- /dev/null +++ b/poky/meta/recipes-connectivity/ssh-pregen-hostkeys/ssh-pregen-hostkeys_1.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Pre generated host keys mainly for speeding up our qemu tests" + +SRC_URI = "file://dropbear_rsa_host_key \ + file://openssh" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +INHIBIT_DEFAULT_DEPS = "1" + +do_install () { + install -d ${D}${sysconfdir}/dropbear + install ${WORKDIR}/dropbear_rsa_host_key -m 0600 ${D}${sysconfdir}/dropbear/ + + install -d ${D}${sysconfdir}/ssh + install ${WORKDIR}/openssh/* ${D}${sysconfdir}/ssh/ + chmod 0600 ${D}${sysconfdir}/ssh/* + chmod 0644 ${D}${sysconfdir}/ssh/*.pub +} \ No newline at end of file diff --git a/poky/meta/recipes-core/dropbear/dropbear/dropbearkey.service b/poky/meta/recipes-core/dropbear/dropbear/dropbearkey.service index c49053d57..71a12a611 100644 --- a/poky/meta/recipes-core/dropbear/dropbear/dropbearkey.service +++ b/poky/meta/recipes-core/dropbear/dropbear/dropbearkey.service @@ -11,3 +11,4 @@ Type=oneshot ExecStart=@BASE_BINDIR@/mkdir -p ${DROPBEAR_RSAKEY_DIR} ExecStart=@SBINDIR@/dropbearkey -t rsa -f ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key RemainAfterExit=yes +Nice=10 diff --git a/poky/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch b/poky/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch new file mode 100644 index 000000000..e42a6c0a4 --- /dev/null +++ b/poky/meta/recipes-core/gettext/gettext-0.21/0001-msgmerge-29-Add-executable-file-mode-bits.patch @@ -0,0 +1,23 @@ +From 71988f83b69c4ed98d1b9418da80edf11a931894 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 23 Sep 2020 22:08:34 -0700 +Subject: [PATCH] msgmerge-29: Add executable file mode bits + +This script is installed with default mode bits and executed directly +e.g ./msgmerge-29 when doing make check which results in + +/bin/bash: line 9: ./msgmerge-29: Permission denied + +Upstream-Status: Pending +Signed-off-by: Khem Raj +--- + gettext-tools/tests/msgmerge-29 | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 gettext-tools/tests/msgmerge-29 + +diff --git a/gettext-tools/tests/msgmerge-29 b/gettext-tools/tests/msgmerge-29 +old mode 100644 +new mode 100755 +-- +2.28.0 + diff --git a/poky/meta/recipes-core/gettext/gettext_0.21.bb b/poky/meta/recipes-core/gettext/gettext_0.21.bb index 54305623d..bc14867bb 100644 --- a/poky/meta/recipes-core/gettext/gettext_0.21.bb +++ b/poky/meta/recipes-core/gettext/gettext_0.21.bb @@ -8,11 +8,8 @@ SECTION = "libs" LICENSE = "GPLv3+ & LGPL-2.1+" LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e" -# Because po-gram-gen.y has been modified by fix-CVE-2018-18751.patch, -# it requires yacc which provided by bison-native -# Please remove bison-native from DEPENDS* when next upgrade -DEPENDS = "bison-native gettext-native virtual/libiconv" -DEPENDS_class-native = "bison-native gettext-minimal-native" +DEPENDS = "gettext-native virtual/libiconv" +DEPENDS_class-native = "gettext-minimal-native" PROVIDES = "virtual/libintl virtual/gettext" PROVIDES_class-native = "virtual/gettext-native" RCONFLICTS_${PN} = "proxy-libintl" @@ -24,6 +21,7 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \ file://0001-tests-autopoint-3-unset-MAKEFLAGS.patch \ file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \ file://mingw.patch \ + file://0001-msgmerge-29-Add-executable-file-mode-bits.patch \ " SRC_URI[sha256sum] = "c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12" diff --git a/poky/meta/recipes-core/glibc/glibc_2.32.bb b/poky/meta/recipes-core/glibc/glibc_2.32.bb index 7049e6162..2a0e46438 100644 --- a/poky/meta/recipes-core/glibc/glibc_2.32.bb +++ b/poky/meta/recipes-core/glibc/glibc_2.32.bb @@ -69,13 +69,15 @@ EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \ --enable-stackguard-randomization \ --disable-crypt \ --with-default-link \ - --enable-nscd \ ${@bb.utils.contains_any('SELECTED_OPTIMIZATION', '-O0 -Og', '--disable-werror', '', d)} \ ${GLIBCPIE} \ ${GLIBC_EXTRA_OECONF}" EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}" +PACKAGECONFIG ??= "nscd" +PACKAGECONFIG[nscd] = "--enable-nscd,--disable-nscd" + do_patch_append() { bb.build.exec_func('do_fix_readlib_c', d) } diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb index 134e1da99..8be6171b2 100644 --- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb +++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb @@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk" inherit core-image module-base setuptools3 -SRCREV ?= "e9f2c011573ec906756e5e2b767b36c4f9795623" +SRCREV ?= "20586411649fcad6f0459ce74a581374ab564737" SRC_URI = "git://git.yoctoproject.org/poky \ file://Yocto_Build_Appliance.vmx \ file://Yocto_Build_Appliance.vmxf \ diff --git a/poky/meta/recipes-core/images/core-image-minimal.bb b/poky/meta/recipes-core/images/core-image-minimal.bb index 4630026aa..19f27f839 100644 --- a/poky/meta/recipes-core/images/core-image-minimal.bb +++ b/poky/meta/recipes-core/images/core-image-minimal.bb @@ -9,4 +9,4 @@ LICENSE = "MIT" inherit core-image IMAGE_ROOTFS_SIZE ?= "8192" -IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}" +IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" diff --git a/poky/meta/recipes-core/meta/buildtools-tarball.bb b/poky/meta/recipes-core/meta/buildtools-tarball.bb index 75b71f553..560b8d67b 100644 --- a/poky/meta/recipes-core/meta/buildtools-tarball.bb +++ b/poky/meta/recipes-core/meta/buildtools-tarball.bb @@ -11,6 +11,7 @@ TOOLCHAIN_HOST_TASK ?= "\ nativesdk-python3-modules \ nativesdk-python3-misc \ nativesdk-python3-git \ + nativesdk-python3-jinja2 \ nativesdk-python3-testtools \ nativesdk-python3-subunit \ nativesdk-ncurses-terminfo-base \ @@ -79,6 +80,9 @@ if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then . \$envfile done fi +# We have to unset this else it can confuse oe-selftest and other tools +# which may also use the overlapping namespace. +unset OECORE_NATIVE_SYSROOT EOF if [ "${SDKMACHINE}" = "i686" ]; then diff --git a/poky/meta/recipes-core/ncurses/ncurses.inc b/poky/meta/recipes-core/ncurses/ncurses.inc index 1627fb91d..4b6188966 100644 --- a/poky/meta/recipes-core/ncurses/ncurses.inc +++ b/poky/meta/recipes-core/ncurses/ncurses.inc @@ -273,6 +273,11 @@ inherit update-alternatives ALTERNATIVE_PRIORITY = "100" ALTERNATIVE_ncurses-tools_class-target = "clear reset" +ALTERNATIVE_ncurses-terminfo_class-target = "st st-256color" + +ALTERNATIVE_LINK_NAME[st] = "${datadir}/terminfo/s/st" + +ALTERNATIVE_LINK_NAME[st-256color] = "${datadir}/terminfo/s/st-256color" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb index 81fbdf460..283c1f1a3 100644 --- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb +++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb @@ -13,9 +13,12 @@ PR = "r3" MTRACE = "" MTRACE_libc-glibc = "libc-mtrace" +STRACE = "strace" +STRACE_riscv32_libc-musl = "" + RDEPENDS_${PN} = "\ gdb \ gdbserver \ - strace \ ${MTRACE} \ + ${STRACE} \ " diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb index 17b1391a4..d437e2831 100644 --- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb +++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb @@ -28,6 +28,7 @@ PROFILETOOLS = "\ " PERF = "perf" PERF_libc-musl = "" +PERF_libc-musl_arm = "perf" # systemtap needs elfutils which is not fully buildable on some arches/libcs SYSTEMTAP = "systemtap" @@ -37,6 +38,7 @@ SYSTEMTAP_riscv64 = "" LTTNGTOOLS = "lttng-tools" LTTNGTOOLS_arc = "" +LTTNGTOOLS_riscv32_libc-musl = "" BABELTRACE = "babeltrace" BABELTRACE2 = "babeltrace2" diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc index b0d4fe403..1733565fc 100644 --- a/poky/meta/recipes-core/systemd/systemd.inc +++ b/poky/meta/recipes-core/systemd/systemd.inc @@ -14,7 +14,7 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" -SRCREV = "91b37e6f0982e1e64c63017000248d7441a83a2e" +SRCREV = "2ee1c57c4ff4fd3349cf03c2e89fbd18ca0b3a4a" SRCBRANCH = "v246-stable" SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}" diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch b/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch index 723cd2e52..c5960a0d6 100644 --- a/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch +++ b/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch @@ -14,10 +14,8 @@ Signed-off-by: Alex Kiernan src/shared/userdb.c | 6 ++++++ 3 files changed, 30 insertions(+) -Index: systemd-stable/src/shared/group-record-nss.c -=================================================================== ---- systemd-stable.orig/src/shared/group-record-nss.c -+++ systemd-stable/src/shared/group-record-nss.c +--- a/src/shared/group-record-nss.c ++++ b/src/shared/group-record-nss.c @@ -19,8 +19,10 @@ int nss_group_to_group_record( if (isempty(grp->gr_name)) return -EINVAL; @@ -35,7 +33,7 @@ Index: systemd-stable/src/shared/group-record-nss.c +#if ENABLE_GSHADOW if (sgrp) { - if (hashed_password_valid(sgrp->sg_passwd)) { + if (looks_like_hashed_password(sgrp->sg_passwd)) { g->hashed_password = strv_new(sgrp->sg_passwd); @@ -51,6 +54,7 @@ int nss_group_to_group_record( if (!g->administrators) @@ -119,10 +117,8 @@ Index: systemd-stable/src/shared/group-record-nss.c if (r < 0) return r; -Index: systemd-stable/src/shared/group-record-nss.h -=================================================================== ---- systemd-stable.orig/src/shared/group-record-nss.h -+++ systemd-stable/src/shared/group-record-nss.h +--- a/src/shared/group-record-nss.h ++++ b/src/shared/group-record-nss.h @@ -2,7 +2,11 @@ #pragma once @@ -135,10 +131,8 @@ Index: systemd-stable/src/shared/group-record-nss.h #include "group-record.h" -Index: systemd-stable/src/shared/userdb.c -=================================================================== ---- systemd-stable.orig/src/shared/userdb.c -+++ systemd-stable/src/shared/userdb.c +--- a/src/shared/userdb.c ++++ b/src/shared/userdb.c @@ -930,13 +930,16 @@ int groupdb_iterator_get(UserDBIterator if (gr) { _cleanup_free_ char *buffer = NULL; diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch b/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch deleted file mode 100644 index c61941df9..000000000 --- a/poky/meta/recipes-core/systemd/systemd/0001-Use-PREFIX-ROOTPREFIX-correctly.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 2868e3b72d4ac02860e380d70c9af0d61a985790 Mon Sep 17 00:00:00 2001 -From: Alex Kiernan -Date: Sun, 16 Aug 2020 16:07:12 +0000 -Subject: [PATCH] Use PREFIX/ROOTPREFIX correctly - -Signed-off-by: Alex Kiernan -Upstream-status: Pending [https://github.com/systemd/systemd/issues/16773] ---- - meson.build | 1 + - src/core/systemd.pc.in | 8 ++++---- - src/libsystemd/sd-path/sd-path.c | 8 ++++---- - 3 files changed, 9 insertions(+), 8 deletions(-) - -diff --git a/meson.build b/meson.build -index dbbddb68e232..18618dba0623 100644 ---- a/meson.build -+++ b/meson.build -@@ -226,6 +226,7 @@ conf.set_quoted('SYSTEMD_SHUTDOWN_BINARY_PATH', join_paths(rootlib - conf.set_quoted('SYSTEMCTL_BINARY_PATH', join_paths(rootbindir, 'systemctl')) - conf.set_quoted('SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH', join_paths(rootbindir, 'systemd-tty-ask-password-agent')) - conf.set_quoted('SYSTEMD_STDIO_BRIDGE_BINARY_PATH', join_paths(bindir, 'systemd-stdio-bridge')) -+conf.set_quoted('PREFIX', prefixdir) - conf.set_quoted('ROOTPREFIX', rootprefixdir) - conf.set_quoted('RANDOM_SEED_DIR', randomseeddir) - conf.set_quoted('RANDOM_SEED', join_paths(randomseeddir, 'random-seed')) -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index 8424837824b5..410a126317ad 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir} - tmpfiles_dir=${prefix}/lib/tmpfiles.d - tmpfilesdir=${tmpfiles_dir} - --sysusers_dir=${rootprefix}/lib/sysusers.d -+sysusers_dir=${prefix}/lib/sysusers.d - sysusersdir=${sysusers_dir} - --sysctl_dir=${rootprefix}/lib/sysctl.d -+sysctl_dir=${prefix}/lib/sysctl.d - sysctldir=${sysctl_dir} - --binfmt_dir=${rootprefix}/lib/binfmt.d -+binfmt_dir=${prefix}/lib/binfmt.d - binfmtdir=${binfmt_dir} - --modules_load_dir=${rootprefix}/lib/modules-load.d -+modules_load_dir=${prefix}/lib/modules-load.d - modulesloaddir=${modules_load_dir} - - catalog_dir=${prefix}/lib/systemd/catalog -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c -index 736795d1d797..3572916dc073 100644 ---- a/src/libsystemd/sd-path/sd-path.c -+++ b/src/libsystemd/sd-path/sd-path.c -@@ -371,19 +371,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { - return 0; - - case SD_PATH_SYSUSERS: -- *ret = ROOTPREFIX "/lib/sysusers.d"; -+ *ret = PREFIX "/lib/sysusers.d"; - return 0; - - case SD_PATH_SYSCTL: -- *ret = ROOTPREFIX "/lib/sysctl.d"; -+ *ret = PREFIX "/lib/sysctl.d"; - return 0; - - case SD_PATH_BINFMT: -- *ret = ROOTPREFIX "/lib/binfmt.d"; -+ *ret = PREFIX "/lib/binfmt.d"; - return 0; - - case SD_PATH_MODULES_LOAD: -- *ret = ROOTPREFIX "/lib/modules-load.d"; -+ *ret = PREFIX "/lib/modules-load.d"; - return 0; - - case SD_PATH_CATALOG: --- -2.17.1 - diff --git a/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch b/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch deleted file mode 100644 index 78660691d..000000000 --- a/poky/meta/recipes-core/systemd/systemd/0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f939d3e07e1175caac5cf4cbf54bd8a58c2f198a Mon Sep 17 00:00:00 2001 -From: Alex Kiernan -Date: Fri, 7 Aug 2020 15:30:52 +0000 -Subject: [PATCH] Fix field 'efi_loader_entry_one_shot_stat' has incomplete - type - -| In file included from ../../../../../../workspace/sources/systemd/src/login/logind-gperf.gperf:7: -| ../../../../../../workspace/sources/systemd/src/login/logind.h:131:21: error: field 'efi_loader_entry_one_shot_stat' has incomplete type -| 131 | struct stat efi_loader_entry_one_shot_stat; -| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Upstream-Status: Inappropriate [musl specific] -Signed-off-by: Alex Kiernan ---- - src/login/logind.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/login/logind.h b/src/login/logind.h -index e64ecce8e2..2d4007d84b 100644 ---- a/src/login/logind.h -+++ b/src/login/logind.h -@@ -2,6 +2,9 @@ - #pragma once - - #include -+#include -+#include -+#include - - #include "sd-bus.h" - #include "sd-device.h" diff --git a/poky/meta/recipes-core/systemd/systemd_246.2.bb b/poky/meta/recipes-core/systemd/systemd_246.2.bb deleted file mode 100644 index af10e4212..000000000 --- a/poky/meta/recipes-core/systemd/systemd_246.2.bb +++ /dev/null @@ -1,725 +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 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://0001-Use-PREFIX-ROOTPREFIX-correctly.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://0021-Handle-missing-LOCK_EX.patch \ - file://0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \ - file://0023-Fix-field-efi_loader_entry_one_shot_stat-has-incompl.patch \ - file://0024-test-json.c-define-M_PIl.patch \ - file://0001-do-not-disable-buffer-in-writing-files.patch \ - file://0002-src-login-brightness.c-include-sys-wait.h.patch \ - file://0003-src-basic-copy.c-include-signal.h.patch \ - file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \ - file://0001-Handle-missing-gshadow.patch \ - " - -PAM_PLUGINS = " \ - 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 \ - userdb \ - utmp \ - vconsole \ - xz \ -" - -PACKAGECONFIG_remove_libc-musl = " \ - gshadow \ - idn \ - localed \ - myhostname \ - nss \ - nss-mymachines \ - nss-resolve \ - sysusers \ - userdb \ - utmp \ -" - -CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 " - -# Use the upstream systemd serial-getty@.service and rely on -# systemd-getty-generator instead of using the OE-core specific -# systemd-serialgetty.bb - not enabled by default. -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=,,systemd-compat-units update-rc.d" -# When enabled use reproducble build timestamp if set as time epoch, -# or build time if not. When disabled, time epoch is unset. -def build_epoch(d): - 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[userdb] = "-Duserdb=true,-Duserdb=false" -PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" -PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" -PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" -# 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 - for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do - install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/ - done - - install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ - - 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 \ - ${PN}-udev-rules \ - 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 \ -" - -FILES_${PN}-udev-rules = "\ - ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \ - ${rootlibexecdir}/udev/rules.d/71-seat.rules \ - ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \ - ${rootlibexecdir}/udev/rules.d/99-systemd.rules \ -" - -CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \ - ${sysconfdir}/systemd/journald.conf \ - ${sysconfdir}/systemd/logind.conf \ - ${sysconfdir}/systemd/networkd.conf \ - ${sysconfdir}/systemd/pstore.conf \ - ${sysconfdir}/systemd/resolved.conf \ - ${sysconfdir}/systemd/sleep.conf \ - ${sysconfdir}/systemd/system.conf \ - ${sysconfdir}/systemd/timesyncd.conf \ - ${sysconfdir}/systemd/user.conf \ -" - -FILES_${PN} = " ${base_bindir}/* \ - ${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}/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}) systemd-udev-rules util-linux-agetty util-linux-fsck" -RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" -RDEPENDS_${PN} += "volatile-binds" - -RRECOMMENDS_${PN} += "systemd-extra-utils \ - 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.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/poky/meta/recipes-core/systemd/systemd_246.6.bb b/poky/meta/recipes-core/systemd/systemd_246.6.bb new file mode 100644 index 000000000..c1424a147 --- /dev/null +++ b/poky/meta/recipes-core/systemd/systemd_246.6.bb @@ -0,0 +1,724 @@ +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 \ + " + +# 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://0021-Handle-missing-LOCK_EX.patch \ + file://0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \ + file://0024-test-json.c-define-M_PIl.patch \ + file://0001-do-not-disable-buffer-in-writing-files.patch \ + file://0002-src-login-brightness.c-include-sys-wait.h.patch \ + file://0003-src-basic-copy.c-include-signal.h.patch \ + file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \ + file://0001-Handle-missing-gshadow.patch \ + " + +PAM_PLUGINS = " \ + 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 \ + userdb \ + utmp \ + vconsole \ + xz \ +" + +PACKAGECONFIG_remove_libc-musl = " \ + gshadow \ + idn \ + localed \ + myhostname \ + nss \ + nss-mymachines \ + nss-resolve \ + sysusers \ + userdb \ + utmp \ +" + +CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 " + +# Use the upstream systemd serial-getty@.service and rely on +# systemd-getty-generator instead of using the OE-core specific +# systemd-serialgetty.bb - not enabled by default. +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=,,systemd-compat-units update-rc.d" +# When enabled use reproducble build timestamp if set as time epoch, +# or build time if not. When disabled, time epoch is unset. +def build_epoch(d): + 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[userdb] = "-Duserdb=true,-Duserdb=false" +PACKAGECONFIG[utmp] = "-Dutmp=true,-Dutmp=false" +PACKAGECONFIG[valgrind] = "-DVALGRIND=1,,valgrind" +PACKAGECONFIG[vconsole] = "-Dvconsole=true,-Dvconsole=false,,${PN}-vconsole-setup" +PACKAGECONFIG[xdg-autostart] = "-Dxdg-autostart=true,-Dxdg-autostart=false" +# Verify keymaps on locale change +PACKAGECONFIG[xkbcommon] = "-Dxkbcommon=true,-Dxkbcommon=false,libxkbcommon" +PACKAGECONFIG[xz] = "-Dxz=true,-Dxz=false,xz" +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 + for rule in $(find ${WORKDIR} -maxdepth 1 -type f -name "*.rules"); do + install -m 0644 $rule ${D}${sysconfdir}/udev/rules.d/ + done + + install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/ + + 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 \ + ${PN}-udev-rules \ + 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 \ +" + +FILES_${PN}-udev-rules = "\ + ${rootlibexecdir}/udev/rules.d/70-uaccess.rules \ + ${rootlibexecdir}/udev/rules.d/71-seat.rules \ + ${rootlibexecdir}/udev/rules.d/73-seat-late.rules \ + ${rootlibexecdir}/udev/rules.d/99-systemd.rules \ +" + +CONFFILES_${PN} = "${sysconfdir}/systemd/coredump.conf \ + ${sysconfdir}/systemd/journald.conf \ + ${sysconfdir}/systemd/logind.conf \ + ${sysconfdir}/systemd/networkd.conf \ + ${sysconfdir}/systemd/pstore.conf \ + ${sysconfdir}/systemd/resolved.conf \ + ${sysconfdir}/systemd/sleep.conf \ + ${sysconfdir}/systemd/system.conf \ + ${sysconfdir}/systemd/timesyncd.conf \ + ${sysconfdir}/systemd/user.conf \ +" + +FILES_${PN} = " ${base_bindir}/* \ + ${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}/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}) systemd-udev-rules util-linux-agetty util-linux-fsck" +RDEPENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}" +RDEPENDS_${PN} += "volatile-binds" + +RRECOMMENDS_${PN} += "systemd-extra-utils \ + 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.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/poky/meta/recipes-devtools/python/python3-jinja2/run-ptest b/poky/meta/recipes-devtools/python/python3-jinja2/run-ptest new file mode 100644 index 000000000..5cec71169 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-jinja2/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +pytest diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb b/poky/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb new file mode 100644 index 000000000..89538d2f2 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-jinja2_2.11.2.bb @@ -0,0 +1,45 @@ +DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python." + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462" + +SRC_URI[sha256sum] = "89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0" + +PYPI_PACKAGE = "Jinja2" + +CLEANBROKEN = "1" + +inherit pypi setuptools3 +# ptest disabled in OE-Core for now due to missing dependencies + + +SRC_URI += " \ + file://run-ptest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} + +RDEPENDS_${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ + ${PYTHON_PN}-unixadmin \ +" + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-asyncio \ + ${PYTHON_PN}-crypt \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-json \ + ${PYTHON_PN}-markupsafe \ + ${PYTHON_PN}-math \ + ${PYTHON_PN}-netclient \ + ${PYTHON_PN}-numbers\ + ${PYTHON_PN}-pickle \ + ${PYTHON_PN}-pprint \ + ${PYTHON_PN}-shell \ + ${PYTHON_PN}-threading \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe/run-ptest b/poky/meta/recipes-devtools/python/python3-markupsafe/run-ptest new file mode 100644 index 000000000..5cec71169 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-markupsafe/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh + +pytest diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb b/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb new file mode 100644 index 000000000..403a98a43 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python" +HOMEPAGE = "http://github.com/mitsuhiko/markupsafe" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75" + +SRC_URI[md5sum] = "43fd756864fe42063068e092e220c57b" +SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b" + +PYPI_PACKAGE = "MarkupSafe" +inherit pypi setuptools3 +# ptest disabled in OE-Core for now due to missing dependencies + +RDEPENDS_${PN} += "${PYTHON_PN}-stringold" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI += " \ + file://run-ptest \ +" + +RDEPENDS_${PN}-ptest += " \ + ${PYTHON_PN}-pytest \ +" + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/tests + cp -f ${S}/tests/* ${D}${PTEST_PATH}/tests/ +} diff --git a/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch index d38ed61dd..ea0af02e7 100644 --- a/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch +++ b/poky/meta/recipes-devtools/python/python3/0001-setup.py-pass-missing-libraries-to-Extension-for-mul.patch @@ -46,7 +46,7 @@ ValueError: semaphore or lock released too many times And the semaphore issue also caused multiprocessing.Queue().put() hung. -Upstream-Status: Pensing +Upstream-Status: Pending Signed-off-by: Hongxu Jia Signed-off-by: Alexander Kanavin diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb index 7394385d3..222b55cbc 100644 --- a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_5.1.0.bb @@ -10,7 +10,7 @@ DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native" EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}" PACKAGECONFIG ??= "fdt alsa kvm \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \ " # Handle distros such as CentOS 5 32-bit that do not have kvm support diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch index 678e05946..d6c0f9ebe 100644 --- a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch +++ b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch @@ -6,7 +6,7 @@ Subject: [PATCH] qemu: Do not include file if not exists Script configure checks for if_alg.h and check failed but if_alg.h still included. -Upstream-status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg07188.html] +Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg07188.html] Signed-off-by: Oleksiy Obitotskyy [update patch context] diff --git a/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb b/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb index a4018cc44..599ff82fc 100644 --- a/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu_5.1.0.bb @@ -21,8 +21,8 @@ do_install_append_class-nativesdk() { PACKAGECONFIG ??= " \ fdt sdl kvm \ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \ " PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \ " diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb index c9258632d..a1c520555 100644 --- a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb +++ b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb @@ -49,7 +49,7 @@ SRCREV = "ab2179452c5be276a6b96c591afded485c7e58c3" S = "${WORKDIR}/git" -DEPENDS = "openssl libarchive db file popt xz bzip2 dbus elfutils python3" +DEPENDS = "openssl db file popt xz bzip2 elfutils python3" DEPENDS_append_class-native = " file-replacement-native bzip2-replacement-native" inherit autotools gettext pkgconfig python3native @@ -62,18 +62,22 @@ EXTRA_OECONF_append = " --without-lua --enable-python --with-crypto=openssl" EXTRA_OECONF_append_libc-musl = " --disable-nls --disable-openmp" # --sysconfdir prevents rpm from attempting to access machine-specific configuration in sysroot/etc; we need to have it in rootfs -# # --localstatedir prevents rpm from writing its database to native sysroot when building images -# -# Disable dbus for native, so that rpm doesn't attempt to inhibit shutdown via session dbus even when plugins support is enabled. -# Also disable plugins by default for native. +# Forcibly disable plugins for native/nativesdk, as the inhibit and prioreset +# plugins both behave badly inside builds. EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --localstatedir=/var --disable-plugins" EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --disable-plugins" BBCLASSEXTEND = "native nativesdk" -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'inhibit', '', d)}" +# The inhibit plugin serves no purpose outside of the target +PACKAGECONFIG_remove_class-native = "inhibit" +PACKAGECONFIG_remove_class-nativesdk = "inhibit" + PACKAGECONFIG[imaevm] = "--with-imaevm,,ima-evm-utils" +PACKAGECONFIG[inhibit] = "--enable-inhibit-plugin,--disable-inhibit-plugin,dbus" +PACKAGECONFIG[rpm2archive] = "--with-archive,--without-archive,libarchive" ASNEEDED = "" @@ -95,7 +99,7 @@ WRAPPER_TOOLS = " \ do_install_append_class-native() { for tool in ${WRAPPER_TOOLS}; do - create_wrapper ${D}$tool \ + test -x ${D}$tool && create_wrapper ${D}$tool \ RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ RPM_ETCCONFIGDIR=${STAGING_DIR_NATIVE} \ MAGIC=${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc \ @@ -105,7 +109,7 @@ do_install_append_class-native() { do_install_append_class-nativesdk() { for tool in ${WRAPPER_TOOLS}; do - create_wrapper ${D}$tool \ + test -x ${D}$tool && create_wrapper ${D}$tool \ RPM_CONFIGDIR='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir'), d.getVar('bindir'))}/rpm \ RPM_ETCCONFIGDIR='$'{RPM_ETCCONFIGDIR-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir'), d.getVar('bindir'))}/..} \ MAGIC='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir'), d.getVar('bindir'))}/misc/magic.mgc \ diff --git a/poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch b/poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch new file mode 100644 index 000000000..7b2073201 --- /dev/null +++ b/poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch @@ -0,0 +1,386 @@ +From 951bdaad7a18cc0dc1036bba86b18b90874d39ff Mon Sep 17 00:00:00 2001 +From: Chet Ramey +Date: Mon, 1 Jul 2019 09:03:53 -0400 +Subject: [PATCH] commit bash-20190628 snapshot + +An issue was discovered in disable_priv_mode in shell.c in GNU Bash through 5.0 patch 11. +By default, if Bash is run with its effective UID not equal to its real UID, +it will drop privileges by setting its effective UID to its real UID. +However, it does so incorrectly. On Linux and other systems that support "saved UID" functionality, +the saved UID is not dropped. An attacker with command execution in the shell can use "enable -f" for +runtime loading of a new builtin, which can be a shared object that calls setuid() and therefore +regains privileges. However, binaries running with an effective UID of 0 are unaffected. + +Get the patch from [1] to fix the issue. + +Upstream-Status: Inappropriate [the upstream thinks it doesn't increase the credibility of CVEs in general] +CVE: CVE-2019-18276 + +[1] https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=951bdaa + +Signed-off-by: De Huo +Signed-off-by: Kai Kang +Signed-off-by: Mingli Yu +--- + MANIFEST | 2 ++ + bashline.c | 50 +------------------------------------------------- + builtins/help.def | 2 +- + config.h.in | 10 +++++++++- + configure.ac | 1 + + doc/bash.1 | 3 ++- + doc/bashref.texi | 3 ++- + lib/glob/glob.c | 5 ++++- + pathexp.c | 16 ++++++++++++++-- + shell.c | 8 ++++++++ + tests/glob.tests | 2 ++ + tests/glob6.sub | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + tests/glob7.sub | 11 +++++++++++ + 14 files changed, 122 insertions(+), 56 deletions(-) + create mode 100644 tests/glob6.sub + create mode 100644 tests/glob7.sub + +diff --git a/MANIFEST b/MANIFEST +index 03de221..f9ccad7 100644 +--- a/MANIFEST ++++ b/MANIFEST +@@ -1037,6 +1037,8 @@ tests/extglob3.tests f + tests/extglob3.right f + tests/extglob4.sub f + tests/extglob5.sub f ++tests/glob6.sub f ++tests/glob7.sub f + tests/func.tests f + tests/func.right f + tests/func1.sub f +diff --git a/bashline.c b/bashline.c +index 824ea9d..d86b47d 100644 +--- a/bashline.c ++++ b/bashline.c +@@ -3718,55 +3718,7 @@ static int + completion_glob_pattern (string) + char *string; + { +- register int c; +- char *send; +- int open; +- +- DECLARE_MBSTATE; +- +- open = 0; +- send = string + strlen (string); +- +- while (c = *string++) +- { +- switch (c) +- { +- case '?': +- case '*': +- return (1); +- +- case '[': +- open++; +- continue; +- +- case ']': +- if (open) +- return (1); +- continue; +- +- case '+': +- case '@': +- case '!': +- if (*string == '(') /*)*/ +- return (1); +- continue; +- +- case '\\': +- if (*string++ == 0) +- return (0); +- } +- +- /* Advance one fewer byte than an entire multibyte character to +- account for the auto-increment in the loop above. */ +-#ifdef HANDLE_MULTIBYTE +- string--; +- ADVANCE_CHAR_P (string, send - string); +- string++; +-#else +- ADVANCE_CHAR_P (string, send - string); +-#endif +- } +- return (0); ++ return (glob_pattern_p (string) == 1); + } + + static char *globtext; +diff --git a/builtins/help.def b/builtins/help.def +index 006c4b5..92f9b38 100644 +--- a/builtins/help.def ++++ b/builtins/help.def +@@ -128,7 +128,7 @@ help_builtin (list) + + /* We should consider making `help bash' do something. */ + +- if (glob_pattern_p (list->word->word)) ++ if (glob_pattern_p (list->word->word) == 1) + { + printf ("%s", ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1))); + print_word_list (list, ", "); +diff --git a/config.h.in b/config.h.in +index 8554aec..ad4b1e8 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -1,6 +1,6 @@ + /* config.h -- Configuration file for bash. */ + +-/* Copyright (C) 1987-2009,2011-2012 Free Software Foundation, Inc. ++/* Copyright (C) 1987-2009,2011-2012,2013-2019 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + +@@ -807,6 +807,14 @@ + #undef HAVE_SETREGID + #undef HAVE_DECL_SETREGID + ++/* Define if you have the setregid function. */ ++#undef HAVE_SETRESGID ++#undef HAVE_DECL_SETRESGID ++ ++/* Define if you have the setresuid function. */ ++#undef HAVE_SETRESUID ++#undef HAVE_DECL_SETRESUID ++ + /* Define if you have the setvbuf function. */ + #undef HAVE_SETVBUF + +diff --git a/configure.ac b/configure.ac +index 52b4cdb..549adef 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -810,6 +810,7 @@ AC_CHECK_DECLS([confstr]) + AC_CHECK_DECLS([printf]) + AC_CHECK_DECLS([sbrk]) + AC_CHECK_DECLS([setregid]) ++AC_CHECK_DECLS[(setresuid, setresgid]) + AC_CHECK_DECLS([strcpy]) + AC_CHECK_DECLS([strsignal]) + +diff --git a/doc/bash.1 b/doc/bash.1 +index e6cd08d..9e58a0b 100644 +--- a/doc/bash.1 ++++ b/doc/bash.1 +@@ -4681,7 +4681,8 @@ above). + .PD + .SH "SIMPLE COMMAND EXPANSION" + When a simple command is executed, the shell performs the following +-expansions, assignments, and redirections, from left to right. ++expansions, assignments, and redirections, from left to right, in ++the following order. + .IP 1. + The words that the parser has marked as variable assignments (those + preceding the command name) and redirections are saved for later +diff --git a/doc/bashref.texi b/doc/bashref.texi +index d33cd57..3065126 100644 +--- a/doc/bashref.texi ++++ b/doc/bashref.texi +@@ -2964,7 +2964,8 @@ is not specified. If the file does not exist, it is created. + @cindex command expansion + + When a simple command is executed, the shell performs the following +-expansions, assignments, and redirections, from left to right. ++expansions, assignments, and redirections, from left to right, in ++the following order. + + @enumerate + @item +diff --git a/lib/glob/glob.c b/lib/glob/glob.c +index 398253b..2eaa33e 100644 +--- a/lib/glob/glob.c ++++ b/lib/glob/glob.c +@@ -607,6 +607,7 @@ glob_vector (pat, dir, flags) + register unsigned int i; + int mflags; /* Flags passed to strmatch (). */ + int pflags; /* flags passed to sh_makepath () */ ++ int hasglob; /* return value from glob_pattern_p */ + int nalloca; + struct globval *firstmalloc, *tmplink; + char *convfn; +@@ -648,10 +649,12 @@ glob_vector (pat, dir, flags) + patlen = (pat && *pat) ? strlen (pat) : 0; + + /* If the filename pattern (PAT) does not contain any globbing characters, ++ or contains a pattern with only backslash escapes (hasglob == 2), + we can dispense with reading the directory, and just see if there is + a filename `DIR/PAT'. If there is, and we can access it, just make the + vector to return and bail immediately. */ +- if (skip == 0 && glob_pattern_p (pat) == 0) ++ hasglob = 0; ++ if (skip == 0 && (hasglob = glob_pattern_p (pat)) == 0 || hasglob == 2) + { + int dirlen; + struct stat finfo; +diff --git a/pathexp.c b/pathexp.c +index c1bf2d8..e6c5392 100644 +--- a/pathexp.c ++++ b/pathexp.c +@@ -58,7 +58,10 @@ int extended_glob = EXTGLOB_DEFAULT; + /* Control enabling special handling of `**' */ + int glob_star = 0; + +-/* Return nonzero if STRING has any unquoted special globbing chars in it. */ ++/* Return nonzero if STRING has any unquoted special globbing chars in it. ++ This is supposed to be called when pathname expansion is performed, so ++ it implements the rules in Posix 2.13.3, specifically that an unquoted ++ slash cannot appear in a bracket expression. */ + int + unquoted_glob_pattern_p (string) + register char *string; +@@ -85,10 +88,14 @@ unquoted_glob_pattern_p (string) + continue; + + case ']': +- if (open) ++ if (open) /* XXX - if --open == 0? */ + return (1); + continue; + ++ case '/': ++ if (open) ++ open = 0; ++ + case '+': + case '@': + case '!': +@@ -106,6 +113,11 @@ unquoted_glob_pattern_p (string) + string++; + continue; + } ++ else if (open && *string == '/') ++ { ++ string++; /* quoted slashes in bracket expressions are ok */ ++ continue; ++ } + else if (*string == 0) + return (0); + +diff --git a/shell.c b/shell.c +index a2b2a55..6adabc8 100644 +--- a/shell.c ++++ b/shell.c +@@ -1293,7 +1293,11 @@ disable_priv_mode () + { + int e; + ++#if HAVE_DECL_SETRESUID ++ if (setresuid (current_user.uid, current_user.uid, current_user.uid) < 0) ++#else + if (setuid (current_user.uid) < 0) ++#endif + { + e = errno; + sys_error (_("cannot set uid to %d: effective uid %d"), current_user.uid, current_user.euid); +@@ -1302,7 +1306,11 @@ disable_priv_mode () + exit (e); + #endif + } ++#if HAVE_DECL_SETRESGID ++ if (setresgid (current_user.gid, current_user.gid, current_user.gid) < 0) ++#else + if (setgid (current_user.gid) < 0) ++#endif + sys_error (_("cannot set gid to %d: effective gid %d"), current_user.gid, current_user.egid); + + current_user.euid = current_user.uid; +diff --git a/tests/glob.tests b/tests/glob.tests +index 01913bb..fb012f7 100644 +--- a/tests/glob.tests ++++ b/tests/glob.tests +@@ -12,6 +12,8 @@ ${THIS_SH} ./glob1.sub + ${THIS_SH} ./glob2.sub + ${THIS_SH} ./glob3.sub + ${THIS_SH} ./glob4.sub ++${THIS_SH} ./glob6.sub ++${THIS_SH} ./glob7.sub + + MYDIR=$PWD # save where we are + +diff --git a/tests/glob6.sub b/tests/glob6.sub +new file mode 100644 +index 0000000..b099811 +--- /dev/null ++++ b/tests/glob6.sub +@@ -0,0 +1,54 @@ ++# tests of the backslash-in-glob-patterns discussion on the austin-group ML ++ ++: ${TMPDIR:=/var/tmp} ++ ++ORIG=$PWD ++GLOBDIR=$TMPDIR/bash-glob-$$ ++mkdir $GLOBDIR && cd $GLOBDIR ++ ++# does the pattern matcher allow backslashes as escape characters and remove ++# them as part of matching? ++touch abcdefg ++pat='ab\cd*' ++printf '<%s>\n' $pat ++pat='\.' ++printf '<%s>\n' $pat ++rm abcdefg ++ ++# how about when escaping pattern characters? ++touch '*abc.c' ++a='\**.c' ++printf '%s\n' $a ++rm -f '*abc.c' ++ ++# how about when making the distinction between readable and searchable path ++# components? ++mkdir -m a=x searchable ++mkdir -m a=r readable ++ ++p='searchable/\.' ++printf "%s\n" $p ++ ++p='searchable/\./.' ++printf "%s\n" $p ++ ++p='readable/\.' ++printf "%s\n" $p ++ ++p='readable/\./.' ++printf "%s\n" $p ++ ++printf "%s\n" 'searchable/\.' ++printf "%s\n" 'readable/\.' ++ ++echo */. ++ ++p='*/\.' ++echo $p ++ ++echo */'.' ++ ++rmdir searchable readable ++ ++cd $ORIG ++rmdir $GLOBDIR +diff --git a/tests/glob7.sub b/tests/glob7.sub +new file mode 100644 +index 0000000..0212b8e +--- /dev/null ++++ b/tests/glob7.sub +@@ -0,0 +1,11 @@ ++# according to Posix 2.13.3, a slash in a bracket expression renders that ++# bracket expression invalid ++shopt -s nullglob ++ ++echo 1: [qwe/qwe] ++echo 2: [qwe/ ++echo 3: [qwe/] ++ ++echo 4: [qwe\/qwe] ++echo 5: [qwe\/ ++echo 6: [qwe\/] +-- +1.9.1 + diff --git a/poky/meta/recipes-extended/bash/bash_5.0.bb b/poky/meta/recipes-extended/bash/bash_5.0.bb index 8ff9e6eda..257a03bd8 100644 --- a/poky/meta/recipes-extended/bash/bash_5.0.bb +++ b/poky/meta/recipes-extended/bash/bash_5.0.bb @@ -21,6 +21,8 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-014;apply=yes;striplevel=0;name=patch014 \ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-015;apply=yes;striplevel=0;name=patch015 \ ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-016;apply=yes;striplevel=0;name=patch016 \ + ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-017;apply=yes;striplevel=0;name=patch017 \ + ${GNU_MIRROR}/bash/bash-${PV}-patches/bash50-018;apply=yes;striplevel=0;name=patch018 \ file://execute_cmd.patch \ file://mkbuiltins_have_stringize.patch \ file://build-tests.patch \ @@ -28,6 +30,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ file://run-ptest \ file://run-bash-ptests \ file://fix-run-builtins.patch \ + file://bash-CVE-2019-18276.patch \ " SRC_URI[tarball.md5sum] = "2b44b47b905be16f45709648f671820b" @@ -65,6 +68,11 @@ SRC_URI[patch015.md5sum] = "c4c6ea23d09a74eaa9385438e48fdf02" SRC_URI[patch015.sha256sum] = "a517df2dda93b26d5cbf00effefea93e3a4ccd6652f152f4109170544ebfa05e" SRC_URI[patch016.md5sum] = "a682ed6fa2c2e7a7c3ba6bdeada07fb5" SRC_URI[patch016.sha256sum] = "ffd1d7a54a99fa7f5b1825e4f7e95d8c8876bc2ca151f150e751d429c650b06d" +SRC_URI[patch017.md5sum] = "d9dcaa1d8e7a24850449a1aac43a12a9" +SRC_URI[patch017.sha256sum] = "4cf3b9fafb8a66d411dd5fc9120032533a4012df1dc6ee024c7833373e2ddc31" +SRC_URI[patch018.md5sum] = "a64d950d5de72ae590455b13e6afefcb" +SRC_URI[patch018.sha256sum] = "7c314e375a105a6642e8ed44f3808b9def89d15f7492fe2029a21ba9c0de81d3" + DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" diff --git a/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch index e93886c9c..a187f61f0 100644 --- a/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch +++ b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch @@ -7,7 +7,7 @@ mallocopt is not available on non glibc implementations Signed-off-by: Khem Raj Reviewed-by: Petr Vorel -[ Upstream-Status: accepted in 967612c454aea66770b64f69287671037fe895b3 ] +Upstream-Status: Accepted [967612c454aea66770b64f69287671037fe895b3] --- utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.19.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.19.bb deleted file mode 100644 index f1af99e51..000000000 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.19.bb +++ /dev/null @@ -1,27 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ - file://no_daddr_t.patch \ - " -SRC_URI[sha256sum] = "a50b753f00a9c880eda4f9d72bb82e37149ac24fab4265212e101926a1c20868" - -DEPENDS = "coreutils-native" - -PROVIDES = "stress" -RPROVIDES_${PN} = "stress" -RREPLACES_${PN} = "stress" -RCONFLICTS_${PN} = "stress" - -inherit bash-completion - -do_install() { - oe_runmake DESTDIR=${D} install - ln -s stress-ng ${D}${bindir}/stress -} - diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb new file mode 100644 index 000000000..71671dd04 --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.21.bb @@ -0,0 +1,27 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + file://no_daddr_t.patch \ + " +SRC_URI[sha256sum] = "ee44b71aba20e9c7d10ec4768efa2245d12579fa17e08b9314c17f06f785ae39" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install + ln -s stress-ng ${D}${bindir}/stress +} + diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb deleted file mode 100644 index 5756b2e14..000000000 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.2.bb +++ /dev/null @@ -1,47 +0,0 @@ -require sudo.inc - -SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - " - -PAM_SRC_URI = "file://sudo.pam" - -SRC_URI[sha256sum] = "7c98d201f181c47152711b9f391e0f6b5545f3ef8926298a3e8bc6288e118314" - -DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" - -CACHED_CONFIGUREVARS = " \ - ac_cv_type_rsize_t=no \ - ac_cv_path_MVPROG=${base_bindir}/mv \ - ac_cv_path_BSHELLPROG=${base_bindir}/sh \ - ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ - ac_cv_path_VIPROG=${base_bindir}/vi \ - " - -EXTRA_OECONF += " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ - --with-rundir=/run/sudo \ - --with-vardir=/var/lib/sudo \ - " - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo - if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then - echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo - sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers - fi - fi - - chmod 4111 ${D}${bindir}/sudo - chmod 0440 ${D}${sysconfdir}/sudoers - - # Explicitly remove the /sudo directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo -} - -FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" -FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ - ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.3.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.3.bb new file mode 100644 index 000000000..270625ebe --- /dev/null +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.3.bb @@ -0,0 +1,47 @@ +require sudo.inc + +SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + " + +PAM_SRC_URI = "file://sudo.pam" + +SRC_URI[sha256sum] = "1d9889cc3b3b15ed8c2c7c3de3aa392a3a726838d020815067c080525c3f5837" + +DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" + +CACHED_CONFIGUREVARS = " \ + ac_cv_type_rsize_t=no \ + ac_cv_path_MVPROG=${base_bindir}/mv \ + ac_cv_path_BSHELLPROG=${base_bindir}/sh \ + ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ + ac_cv_path_VIPROG=${base_bindir}/vi \ + " + +EXTRA_OECONF += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-rundir=/run/sudo \ + --with-vardir=/var/lib/sudo \ + " + +do_install_append () { + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo + if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then + echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo + sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers + fi + fi + + chmod 4111 ${D}${bindir}/sudo + chmod 0440 ${D}${sysconfdir}/sudoers + + # Explicitly remove the /sudo directory to avoid QA error + rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo +} + +FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" +FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ + ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch b/poky/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch new file mode 100644 index 000000000..96365648d --- /dev/null +++ b/poky/meta/recipes-extended/sysklogd/files/0001-Makefile.am-fixup-issue-17.patch @@ -0,0 +1,43 @@ +From a4a472c19eaaf03cc0e70797b2d24b540d6424e1 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Wed, 3 Jun 2020 13:39:18 +0800 +Subject: [PATCH] Makefile.am: fixup issue #17 + +only make $(LIBOBJS) depend on $(LTLIBOBJS) still have race condition, +library like pidfile.o may be changed when compile or link for +libsyslog_la_LIBADD, which will cause problem like below: + +ERROR: dwarfsrcfiles failed with exit code 1 (cmd was ['dwarfsrcfiles', /tmp/work/ppc7400-oe-linux/sysklogd/2.1.2-r0/package/usr/lib/libsyslog.a']): +dwarfsrcfiles: tmp/work/ppc7400-oe-linux/sysklogd/2.1.2-r0/package/usr/lib/libsyslog.a: not a valid ELF file + +arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot -shared -fPIC -DPIC .libs/libsyslog_la-syslog.o ../lib/.libs/pidfile.o ../lib/.libs/strlcpy.o ../lib/.libs/strlcat.o -march=armv7ve -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot -O2 -g -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-soname -Wl,libsyslog.so.0 -o .libs/libsyslog.so.0.0.0 +arm-oe-linux-gnueabi-libtool: link: (cd ".libs" && rm -f "libsyslog.so.0" && ln -s "libsyslog.so.0.0.0" "libsyslog.so.0") +arm-oe-linux-gnueabi-libtool: link: (cd ".libs" && rm -f "libsyslog.so" && ln -s "libsyslog.so.0.0.0" "libsyslog.so") +arm-oe-linux-gnueabi-libtool: link: arm-oe-linux-gnueabi-gcc-ar cru .libs/libsyslog.a libsyslog_la-syslog.o ../lib/pidfile.o ../lib/strlcpy.o ../lib/strlcat.o +TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ar: `u' modifier ignored since `D' is the default (see `U') +TOPDIR/tmp-glibc/work/armv7vet2hf-neon-oe-linux-gnueabi/sysklogd/2.1.2-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/../../libexec/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/10.1.0/ar: ../lib/strlcat.o: No such file or directory + +Upstream-Status: Submitted [https://github.com/troglobit/sysklogd/pull/23/commits/e684939559341cb1c6373dfc6469b59e580d80af] + +Signed-off-by: Changqing Li +--- + src/Makefile.am | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index f8a6820..f45c773 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -66,6 +66,7 @@ libsyslog_la_LIBADD = $(LTLIBOBJS) + # ld: syslogd-syslogd.o: in function `main': syslogd.c:417: undefined + # reference to `__pidfile' + # +-# Work around the problem by building one .o from lib at a time, this +-# can be achieved by making LIBOBJS depend on LTLIBOBJS. +-$(LIBOBJS): $(LTLIBOBJS) ++# Work around the problem by make LIBOBJS depend on libsyslog.la, ++# so that LIBOBJS/syslogd/logger will start compile after libsyslog.la ++# is completed ++$(LIBOBJS): $(lib_LTLIBRARIES) +-- +2.17.1 diff --git a/poky/meta/recipes-extended/sysklogd/sysklogd.inc b/poky/meta/recipes-extended/sysklogd/sysklogd.inc index 2e3d9831b..162260f00 100644 --- a/poky/meta/recipes-extended/sysklogd/sysklogd.inc +++ b/poky/meta/recipes-extended/sysklogd/sysklogd.inc @@ -12,6 +12,7 @@ inherit update-rc.d update-alternatives systemd autotools SRC_URI = "git://github.com/troglobit/sysklogd.git;nobranch=1 \ file://sysklogd \ + file://0001-Makefile.am-fixup-issue-17.patch \ " S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch b/poky/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch new file mode 100644 index 000000000..60c996ca8 --- /dev/null +++ b/poky/meta/recipes-graphics/drm/files/0001-xf86drm.c-fix-build-failure.patch @@ -0,0 +1,87 @@ +From c7d89412884de2dbfa543720d185027377e62f21 Mon Sep 17 00:00:00 2001 +From: Heiko Thiery +Date: Fri, 5 Jun 2020 23:46:52 +0200 +Subject: [PATCH] xf86drm.c: fix build failure + +./xf86drm.c: In function 'drmNodeIsDRM': +../xf86drm.c:2825:7: error: "__FreeBSD__" is not defined [-Werror=undef] + #elif __FreeBSD__ + ^ +../xf86drm.c: In function 'drmGetMinorNameForFD': +../xf86drm.c:2938:7: error: "__FreeBSD__" is not defined [-Werror=undef] + #elif __FreeBSD__ + ^ +../xf86drm.c: In function 'drmParsePciBusInfo': +../xf86drm.c:3258:7: error: "__FreeBSD__" is not defined [-Werror=undef] + #elif __FreeBSD__ + ^ +../xf86drm.c: In function 'drmParsePciDeviceInfo': +../xf86drm.c:3427:7: error: "__FreeBSD__" is not defined [-Werror=undef] + #elif __FreeBSD__ + ^ +../xf86drm.c: In function 'drmGetDeviceNameFromFd2': +../xf86drm.c:4305:7: error: "__FreeBSD__" is not defined [-Werror=undef] + #elif __FreeBSD__ + ^ + +Signed-off-by: Heiko Thiery + +Upstream-Status: Backport +Signed-off-by: Armin Kuster + +--- + xf86drm.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/xf86drm.c b/xf86drm.c +index 07a18c4..50a6f09 100644 +--- a/xf86drm.c ++++ b/xf86drm.c +@@ -2822,7 +2822,7 @@ static bool drmNodeIsDRM(int maj, int min) + snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device/drm", + maj, min); + return stat(path, &sbuf) == 0; +-#elif __FreeBSD__ ++#elif defined(__FreeBSD__) + char name[SPECNAMELEN]; + + if (!devname_r(makedev(maj, min), S_IFCHR, name, sizeof(name))) +@@ -2935,7 +2935,7 @@ static char *drmGetMinorNameForFD(int fd, int type) + + closedir(sysdir); + return NULL; +-#elif __FreeBSD__ ++#elif defined(__FreeBSD__) + struct stat sbuf; + char dname[SPECNAMELEN]; + const char *mname; +@@ -3255,7 +3255,7 @@ static int drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info) + info->func = pinfo.func; + + return 0; +-#elif __FreeBSD__ ++#elif defined(__FreeBSD__) + return get_sysctl_pci_bus_info(maj, min, info); + #else + #warning "Missing implementation of drmParsePciBusInfo" +@@ -3424,7 +3424,7 @@ static int drmParsePciDeviceInfo(int maj, int min, + device->subdevice_id = pinfo.subdevice_id; + + return 0; +-#elif __FreeBSD__ ++#elif defined(__FreeBSD__) + drmPciBusInfo info; + struct pci_conf_io pc; + struct pci_match_conf patterns[1]; +@@ -4302,7 +4302,7 @@ drm_public char *drmGetDeviceNameFromFd2(int fd) + free(value); + + return strdup(path); +-#elif __FreeBSD__ ++#elif defined(__FreeBSD__) + return drmGetDeviceNameFromFd(fd); + #else + struct stat sbuf; +-- +1.8.3.1 + diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.102.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.102.bb index fb9a94207..ad512d14a 100644 --- a/poky/meta/recipes-graphics/drm/libdrm_2.4.102.bb +++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.102.bb @@ -10,7 +10,9 @@ LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c5 PROVIDES = "drm" DEPENDS = "libpthread-stubs" -SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz" +SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \ + file://0001-xf86drm.c-fix-build-failure.patch " + SRC_URI[sha256sum] = "8bcbf9336c28e393d76c1f16d7e79e394a7fce8a2e929d52d3ad7ad8525ba05b" inherit meson pkgconfig manpages diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.6.bb deleted file mode 100644 index e50782be1..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.6.bb +++ /dev/null @@ -1,15 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" -PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" - -# When NOT using X11, we need to make sure we have swrast available. -DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb new file mode 100644 index 000000000..e50782be1 --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.8.bb @@ -0,0 +1,15 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" +PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" + +# When NOT using X11, we need to make sure we have swrast available. +DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index af2a5c0f9..dd4619a06 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -23,7 +23,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ " -SRC_URI[sha256sum] = "23bed40114b03ad640c95bfe72cc879ed2f941d0d481b77b5204a1fc567fa93c" +SRC_URI[sha256sum] = "df21351494f7caaec5a3ccc16f14f15512e98d2ecde178bba1d134edc899b961" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.1.6.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.6.bb deleted file mode 100644 index 96e8aa38d..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa_20.1.6.bb +++ /dev/null @@ -1,2 +0,0 @@ -require ${BPN}.inc - diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.1.8.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.8.bb new file mode 100644 index 000000000..96e8aa38d --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa_20.1.8.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + diff --git a/poky/meta/recipes-graphics/pango/pango_1.46.1.bb b/poky/meta/recipes-graphics/pango/pango_1.46.1.bb deleted file mode 100644 index cc6cc1e35..000000000 --- a/poky/meta/recipes-graphics/pango/pango_1.46.1.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "Framework for layout and rendering of internationalized text" -DESCRIPTION = "Pango is a library for laying out and rendering of text, \ -with an emphasis on internationalization. Pango can be used anywhere \ -that text layout is needed, though most of the work on Pango so far has \ -been done in the context of the GTK+ widget toolkit. Pango forms the \ -core of text and font handling for GTK+-2.x." -HOMEPAGE = "http://www.pango.org/" -BUGTRACKER = "http://bugzilla.gnome.org" -SECTION = "libs" -LICENSE = "LGPLv2.0+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" - -GNOMEBASEBUILDCLASS = "meson" - -inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection - -SRC_URI += " file://run-ptest" -SRC_URI[archive.sha256sum] = "fe516b10711bbb6fd75011d66dd08fabfce18f7931aed7415136d53c4aadf1c5" - -DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi" - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ - ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" - -PACKAGECONFIG[x11] = ",,virtual/libx11 libxft" -PACKAGECONFIG[tests] = "-Dinstall-tests=true, -Dinstall-tests=false" -PACKAGECONFIG[thai] = ",,libthai" - -GTKDOC_MESON_OPTION = "gtk_doc" -GIR_MESON_OPTION = 'introspection' - -do_configure_prepend_toolchain-clang() { - sed -i -e "/Werror=implicit-fallthrough/d" ${S}/meson.build -} - -LEAD_SONAME = "libpango-1.0*" - -FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" - -RDEPENDS_${PN}-ptest += "cantarell-fonts" -RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us" - -RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \ - pango-module-basic-fc pango-module-arabic-lang" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/pango/pango_1.46.2.bb b/poky/meta/recipes-graphics/pango/pango_1.46.2.bb new file mode 100644 index 000000000..c41d1e8a9 --- /dev/null +++ b/poky/meta/recipes-graphics/pango/pango_1.46.2.bb @@ -0,0 +1,47 @@ +SUMMARY = "Framework for layout and rendering of internationalized text" +DESCRIPTION = "Pango is a library for laying out and rendering of text, \ +with an emphasis on internationalization. Pango can be used anywhere \ +that text layout is needed, though most of the work on Pango so far has \ +been done in the context of the GTK+ widget toolkit. Pango forms the \ +core of text and font handling for GTK+-2.x." +HOMEPAGE = "http://www.pango.org/" +BUGTRACKER = "http://bugzilla.gnome.org" +SECTION = "libs" +LICENSE = "LGPLv2.0+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" + +GNOMEBASEBUILDCLASS = "meson" + +inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection + +SRC_URI += " file://run-ptest" +SRC_URI[archive.sha256sum] = "d89fab5f26767261b493279b65cfb9eb0955cd44c07c5628d36094609fc51841" + +DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)}" + +PACKAGECONFIG[x11] = ",,virtual/libx11 libxft" +PACKAGECONFIG[tests] = "-Dinstall-tests=true, -Dinstall-tests=false" +PACKAGECONFIG[thai] = ",,libthai" + +GTKDOC_MESON_OPTION = "gtk_doc" +GIR_MESON_OPTION = 'introspection' + +do_configure_prepend_toolchain-clang() { + sed -i -e "/Werror=implicit-fallthrough/d" ${S}/meson.build +} + +LEAD_SONAME = "libpango-1.0*" + +FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}" + +RDEPENDS_${PN}-ptest += "cantarell-fonts" +RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us" + +RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \ + pango-module-basic-fc pango-module-arabic-lang" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb index 9484f010c..4175a5615 100644 --- a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb +++ b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb @@ -39,6 +39,6 @@ EXTRA_OECMAKE = "-DRESOURCE_INSTALL_DIR=${datadir}/vulkan-demos" ANY_OF_DISTRO_FEATURES = "x11 wayland" # Can only pick one of [wayland,xcb] -PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'xcb' ,d)}" +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', 'xcb', d)}" PACKAGECONFIG[wayland] = "-DUSE_WAYLAND_WSI=ON, -DUSE_WAYLAND_WSI=OFF, wayland" PACKAGECONFIG[xcb] = ",,libxcb" diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch index 7b9e3b4ca..8b687d612 100644 --- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch +++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch @@ -10,7 +10,7 @@ case. Signed-off-by: Eric Anholt -Upstream-status: Backport [https://github.com/freedesktop/xorg-xserver/commit/e50c85f4e] +Upstream-Status: Backport [https://github.com/freedesktop/xorg-xserver/commit/e50c85f4e] Signed-off-by: Aníbal Limón --- hw/xfree86/common/xf86platformBus.c | 2 +- diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index c937173d0..fbc62f29c 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -49,6 +49,6 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" KERNEL_VERSION_SANITY_SKIP = "1" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index 73876bb99..eded625bf 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -41,4 +41,4 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" +KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb index d29c5985c..aa01f06d3 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb @@ -12,7 +12,7 @@ python () { } SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67" -SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff" +SRCREV_meta ?= "ffbfe61a194537689c782b20da185e7e4daa9ef9" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" @@ -41,4 +41,4 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" +KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb index d32e5d372..76b61222a 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb @@ -17,7 +17,7 @@ KCONF_BSP_AUDIT_LEVEL = "2" SRCREV_machine_qemuarm ?= "830cb9af40e856615b7a435a4fac57b748ba56d6" SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67" -SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff" +SRCREV_meta ?= "ffbfe61a194537689c782b20da185e7e4daa9ef9" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index fe9369196..d06d653d7 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -50,5 +50,5 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb index 9ff1d5da8..f8e72533f 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb @@ -21,7 +21,7 @@ SRCREV_machine_qemux86 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67" SRCREV_machine_qemux86-64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67" SRCREV_machine_qemumips64 ?= "4faa049b6b7b51c5d12d20c5e9fcf8e0a3ba8d42" SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67" -SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff" +SRCREV_meta ?= "ffbfe61a194537689c782b20da185e7e4daa9ef9" # remap qemuarm to qemuarma15 for the 5.8 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -51,5 +51,5 @@ KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc" KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc" -KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" -KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}" +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}" diff --git a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb b/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb index 8c53d1164..edb2ac614 100644 --- a/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb +++ b/poky/meta/recipes-multimedia/libpng/libpng_1.6.37.bb @@ -20,7 +20,7 @@ BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config" inherit autotools binconfig-disabled pkgconfig # Work around missing symbols -EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}" +EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off", d)}" PACKAGES =+ "${PN}-tools" diff --git a/poky/meta/recipes-support/boost/boost.inc b/poky/meta/recipes-support/boost/boost.inc index ca140d595..ea1bc123b 100644 --- a/poky/meta/recipes-support/boost/boost.inc +++ b/poky/meta/recipes-support/boost/boost.inc @@ -7,6 +7,9 @@ CVE_PRODUCT = "boost:boost" ARM_INSTRUCTION_SET_armv4 = "arm" ARM_INSTRUCTION_SET_armv5 = "arm" +B = "${WORKDIR}/build" +do_configure[cleandirs] = "${B}" + BOOST_LIBS = "\ atomic \ chrono \ @@ -146,7 +149,7 @@ BOOST_PARALLEL_MAKE = "${@oe.utils.parallel_make_argument(d, '-j%d')}" BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \ ${BJAM_TOOLS} \ -sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \ - --build-dir=${S}/${TARGET_SYS} \ + --build-dir=${B} \ --disable-icu \ ${BJAM_EXTRA}' @@ -161,6 +164,7 @@ BJAM_OPTS_append_arm = " abi=aapcs architecture=arm" BJAM_OPTS_append_aarch64 = " abi=aapcs address-model=64 architecture=arm" do_configure() { + cd ${S} cp -f ${S}/boost/config/platform/linux.hpp ${S}/boost/config/platform/linux-gnueabi.hpp # D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation. @@ -184,8 +188,9 @@ do_configure() { } do_compile() { - rm -rf ${S}/${TARGET_SYS} - bjam ${BJAM_OPTS} --prefix=${prefix} \ + cd ${S} + bjam ${BJAM_OPTS} \ + --prefix=${prefix} \ --exec-prefix=${exec_prefix} \ --libdir=${libdir} \ --includedir=${includedir} \ @@ -193,6 +198,7 @@ do_compile() { } do_install() { + cd ${S} bjam ${BJAM_OPTS} \ --libdir=${D}${libdir} \ --includedir=${D}${includedir} \ diff --git a/poky/meta/recipes-support/curl/curl_7.72.0.bb b/poky/meta/recipes-support/curl/curl_7.72.0.bb index a2ae0b690..7d0268253 100644 --- a/poky/meta/recipes-support/curl/curl_7.72.0.bb +++ b/poky/meta/recipes-support/curl/curl_7.72.0.bb @@ -5,7 +5,7 @@ SECTION = "console/network" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ +SRC_URI = "https://curl.haxx.se/download/curl-${PV}.tar.bz2 \ file://0001-replace-krb5-config-with-pkg-config.patch \ " diff --git a/poky/meta/recipes-support/debianutils/debianutils_4.11.1.bb b/poky/meta/recipes-support/debianutils/debianutils_4.11.1.bb index ef7aa5040..3b1767e5e 100644 --- a/poky/meta/recipes-support/debianutils/debianutils_4.11.1.bb +++ b/poky/meta/recipes-support/debianutils/debianutils_4.11.1.bb @@ -3,7 +3,7 @@ SECTION = "base" LICENSE = "GPLv2 & SMAIL_GPL" LIC_FILES_CHKSUM = "file://debian/copyright;md5=9b912cd0cc654134c0ef3424a0705b94" -SRC_URI = "http://snapshot.debian.org/archive/debian/20200525T145753Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz" +SRC_URI = "http://snapshot.debian.org/archive/debian/20200929T025235Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz" # the package is taken from snapshots.debian.org; that source is static and goes stale # so we check the latest upstream from a directory that does get updated UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/" diff --git a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb index 0a3186dac..10b4c5b6a 100644 --- a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb +++ b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.0.bb @@ -7,8 +7,8 @@ HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" -SRCREV = "1e9a84585909b970cc8850d3ea02a7215dcfa5a3" -PV = "2.4.0+git${SRCPV}" +SRCREV = "834670317bd3f6e427e1ac461c07ada6b8936dfd" +PV .= "+git${SRCPV}" SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \ " diff --git a/poky/scripts/oe-build-perf-report b/poky/scripts/oe-build-perf-report index e781f4f03..7ed86a72f 100755 --- a/poky/scripts/oe-build-perf-report +++ b/poky/scripts/oe-build-perf-report @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 # # Examine build performance test results # diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu index e62d869c2..e5e66f345 100755 --- a/poky/scripts/runqemu +++ b/poky/scripts/runqemu @@ -1336,7 +1336,7 @@ class BaseConfig(object): if not os.access(qemu_bin, os.X_OK): raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) - self.qemu_opt = "%s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND')) + self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND')) for ovmf in self.ovmf_bios: format = ovmf.rsplit('.', 1)[-1] -- cgit v1.2.3