Commit Graph

9908 Commits

Author SHA1 Message Date
skrll 7f8c58afc7 KNF 2021-07-25 06:07:42 +00:00
andvar 7991f5a7b8 Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
2021-07-24 21:31:31 +00:00
dholland 4171507047 Abolish all the silly indirection macros for initializing vnode ops tables.
These are things of the form #define foofs_op genfs_op, or #define
foofs_op genfs_eopnotsupp, or similar. They serve no purpose besides
obfuscation, and have gotten cutpasted all over everywhere.
2021-07-18 23:57:13 +00:00
dholland d819c3614f Use macros for the canned parts of device and fifo vnode op tables.
Add GENFS_SPECOP_ENTRIES and GENFS_FIFOOP_ENTRIES macros that contain
the portion of the vnode ops table declaration that is
(conservatively) the same in every fs. Use these in every fs that
supports devices and/or fifos with separate ops tables.

Note that ptyfs works differently (it has one type of vnode with
open-coded dispatch to the specfs code, which I haven't changed in
this commit) and rump/librump/rumpvfs/rumpfs.c has an indirect dynamic
dispatch that already does more or less the same thing, which I also
haven't changed.

Also note that this anticipates a few bits in the next changeset here
and there, and adds missing but unreachable calls in some cases (e.g.
most fses weren't defining whiteout on devices and fifos, but it isn't
reachable there), and it changes parsepath on devices and fifos to
genfs_badop from genfs_parsepath (but it's not reachable there
either).

It appears that devices in kernfs were missing kqfilter, so it's
possible that if you try to use kqueue on /kern/rootdev that it'll
explode.

And finally note that the ops declaration tables aren't
order-dependent. (Other than vop_default_desc has to come first.)
Otherwise this wouldn't work.
2021-07-18 23:56:12 +00:00
kardel b5f331ca20 PR kern/56316: vn_open doesn't follow symlinks
remove setting of O_NOFOLLOW. restores ZFS being able
to open devices via symlinks again.
2021-07-18 07:22:22 +00:00
christos 528f04f801 provide an equivalent alignment for __float128 for clang and i386 that
does not have it. Idea from mrg@
2021-07-17 16:31:51 +00:00
christos a60b166b0e clang does not support __float128 in our configuration and i386 2021-07-14 13:24:58 +00:00
mrg b0a0815669 find libgbm in libgbm.old. 2021-07-14 06:34:33 +00:00
skrll 10ddebb360 Fix a comment 2021-07-13 06:56:09 +00:00
mrg ba02891dc9 move the i18n modules into libX11 directly.
fixes at least alacritty, and saves memory too.
2021-07-13 05:53:12 +00:00
mrg c35012e8f1 also look for libgbm in ${OLD_SUFFIX}. 2021-07-13 05:22:27 +00:00
mrg 119a1bddf6 mknative-gmp for mipsn64* and GMP 6.2.1. 2021-07-12 18:42:39 +00:00
mrg 06cfffb4b6 add mipsn64 support, so native-gmp works, and likely, build.sh tools
on a mipsn64 host.
2021-07-12 18:42:23 +00:00
mrg 0363c856f3 look for libglapi in ${OLD_SUFFIX}. noted by gson. 2021-07-12 09:40:31 +00:00
mrg a1763d54a8 mknative-gmp for GMP 6.2.1 and most platforms. 2021-07-12 09:34:54 +00:00
mrg 6a02a25550 regen for GMP 6.2.1 and i386 and arm64. update docs so i don't forget
that i mostly got 'native-gmp' working last year.
2021-07-12 07:59:51 +00:00
mrg effeba7a85 regen gmp parts for amd64 and gmp 6.2.1. 2021-07-12 07:04:37 +00:00
mrg 16ea282704 define a X86_32_ASAN_BIT_OFFSET macro that defaults differently on
netbsd/i386 than other x86-32 targets.

fixes PR#56280.
2021-07-11 22:41:38 +00:00
mrg a273202eee merge GMP 6.2.1. 2021-07-11 21:15:45 +00:00
mrg 1daf83e636 initial import of GMP 6.2.1. from their NEWS:
Changes between GMP version 6.2.0 and 6.2.1

  BUGS FIXED
  * A possible overflow of type int is avoided for mpz_cmp on huge operands.
  * Overflows are more carefully detected and reported for mpz_pow_ui.
  * A bug in longlong.h for aarch64 sub_ddmmss, not affecting GMP, was healed.

  FEATURES
  * C90 compliance.
  * Initial support for Darwin on arm64, and improved portability.
  * Support for more processors.
2021-07-11 21:14:44 +00:00
mrg 9ad12609ef copy the Mesa 19.7.1 build framework into .old. 2021-07-11 20:53:35 +00:00
mrg acf5bb3f32 xorg/lib stuff to enable mesa.old, prepare for new mesa
- rename OLD_PREFIX to OLD_SUFFIX, since it is
- include mesa-which.mk and use ${OLD_SUFFIX} in several places
- remove mesa < 18 support
2021-07-11 20:52:06 +00:00
mrg a0d373eed0 initial import of MPC 1.2.1. from their NEWS:
Changes in version 1.2.1, released in October 2020:
  - Bug fixes:
    - Fix an incompatibility problem with GMP 6.0 and before.
    - Fix an intermediate overflow in asin.
2021-07-11 20:13:00 +00:00
mrg 92221b35e5 remove dead mesa7 support. 2021-07-11 01:13:26 +00:00
mrg b645cd4938 also look in dist/../include. 2021-07-11 00:43:40 +00:00
mrg bca64f6d85 bump minor for for libXfixes 6.0.0's new function 2021-07-11 00:08:06 +00:00
mrg 7af90b5921 remove an old #if 0'd section. 2021-07-10 22:39:56 +00:00
gson 0033969404 When running an individual test case under isolation, make the test
case count on the tp-start line of the output match the number of test
cases actually executed (one) so that the atf-run output is valid
input to atf-report.
2021-07-08 18:10:52 +00:00
thorpej 25ae879cc5 Remote -O0 hack for alpha; root cause has been addressed. 2021-07-06 12:41:00 +00:00
thorpej c7d5f92f8a Remove -O0 hack for alpha; root cause has been addressed. 2021-07-06 12:40:24 +00:00
hgutch fb0e1b46a6 GCC git commit 91f66e78cc141da77ff9e0e3c8519e1af3f26c07[1] introduced
a regression in sh.  In addition to the intended change (based on the
commit message), an apparently unintended change was made, inverting a
comparison.  This broke sh builds and our workaround (so far) was to
compile xlint/lint1 with -O0.

Revert the comparison to what it was before and remove the -O0 hack
from xlint/lint1.

[1] https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=91f66e78cc141da77ff9e0e3c8519e1af3f26c07
2021-07-05 10:34:25 +00:00
hannken 6a7ac80c8d Add VOP_PARSEPATH to zfs control dir vnode op table. 2021-07-04 11:25:07 +00:00
dholland d8685b0d8e Add VOP_PARSEPATH to zfs's vnode table. "oops"
zfs not being under src/sys strikes again :-(
2021-07-02 17:14:36 +00:00
dholland 723d09ce8e Add containment for the cloning devices hack in vn_open.
Cloning devices (and also things like /dev/stderr) work by allocating
a struct file, stuffing it in the file table (which is a layer
violation), stuffing the file descriptor number for it in a magic
field of struct lwp (which is gross), and then "failing" with one of
two magic errnos, EDUPFD or EMOVEFD.

Before this commit, all callers of vn_open in the kernel (there are
quite a few) were expected to check for these errors and handle the
situation. Needless to say, none of them except for open() itself did,
resulting in internal negative errnos being returned to userspace.

This hack is fairly deeply rooted and cannot be eliminated all at
once. This commit adds logic to handle the magic errnos inside
vn_open; now on success vn_open returns either a vnode or an integer
file descriptor, along with a flag that says whether the underlying
code requested EDUPFD or EMOVEFD. Callers not prepared to cope with
file descriptors can pass NULL for the extra return values, in which
case if a file descriptor would be produced vn_open fails with
EOPNOTSUPP.

Since I'm rearranging vn_open's signature anyway, stop exposing struct
nameidata. Instead, take three arguments: an optional vnode to use as
the starting point (like openat()), the path, and additional namei
flags to use, restricted to NOCHROOT and TRYEMULROOT. (Other namei
behavior, e.g. NOFOLLOW, can be requested via the open flags.)

This change requires a kernel bump. Ride the one an hour ago.
(That was supposed to be coordinated; did not intend to let an hour
slip by. My fault.)
2021-06-29 22:40:53 +00:00
cjep 0c942b0abf PR toolchain/56180. Additional to yesterday's commit in gcc, also needed in
gcc.old. Add configuration so that gcc can find the LTO plugin when
cross-building NetBSD from OpenBSD hosts.
2021-06-29 08:51:03 +00:00
cjep 87a9dd8907 PR toolchain/56180. Add configuration so that gcc can find the LTO
plugin when cross-building NetBSD from OpenBSD hosts. Discussed with mrg.
2021-06-28 09:13:10 +00:00
christos 70753faeff PR/56256: Germain: cvs info doc incorrect for update -D 2021-06-21 02:48:01 +00:00
riastradh fc9d104b4a gdbserver(1): Work around clang build failure. 2021-06-20 12:29:58 +00:00
mrg 5be704ed29 switch m68000, m68k and 32 bit arm to GCC 10. just sh3 left!
special thanks to rin for fixing arm32.
2021-06-19 06:19:35 +00:00
mrg b85d94cb40 don't install the libuv.pc file for pic (but private) libs as well.
avoids triggering a makefs warning when building a file system out
of the DESTDIR directly, using the METALOG files etc:

makefs: Can't open `././libuv.pc' for reading: No such file or directory

(the file was installed, and the obsoleted.)
2021-06-18 22:12:02 +00:00
christos 806070a644 fix sun2 build 2021-06-18 13:57:52 +00:00
christos 309a1eb039 replace our merged version with upstream. 2021-06-17 12:53:43 +00:00
christos e8238f606f use the linker script provided by the package 2021-06-17 12:38:53 +00:00
rin 6144bd9496 Unbreak build; new libfido2 requires OpenBSD-compatible freezero(). 2021-06-17 06:20:56 +00:00
christos 07d9d5661b merge conflicts and update between libfido 1.5.0 and 1.7.0 2021-06-17 01:15:44 +00:00
christos 95dbdf3206 Import libfido2 1.7.0; changes:
Version 1.7.0 (2021-03-29)
- New dependency on zlib.
- Fixed musl build; gh#259.
- hid_win: detect devices with vendor or product IDs > 0x7fff; gh#264.
- Support for FIDO 2.1 authenticator configuration.
- Support for FIDO 2.1 UV token permissions.
- Support for FIDO 2.1 "credBlobs" and "largeBlobs" extensions.
- New API calls:
    fido_assert_blob_len;
    fido_assert_blob_ptr;
    fido_assert_largeblob_key_len;
    fido_assert_largeblob_key_ptr;
    fido_assert_set_hmac_secret;
    fido_cbor_info_maxcredbloblen;
    fido_cred_largeblob_key_len;
    fido_cred_largeblob_key_ptr;
    fido_cred_set_blob;
    fido_dev_enable_entattest;
    fido_dev_force_pin_change;
    fido_dev_has_uv;
    fido_dev_largeblob_get;
    fido_dev_largeblob_get_array;
    fido_dev_largeblob_remove;
    fido_dev_largeblob_set;
    fido_dev_largeblob_set_array;
    fido_dev_set_pin_minlen;
    fido_dev_set_sigmask;
    fido_dev_supports_credman;
    fido_dev_supports_permissions;
    fido_dev_supports_uv;
    fido_dev_toggle_always_uv.
- New fido_init flag to disable fido_dev_open's U2F fallback; gh#282.
- Experimental NFC support on Linux; enable with -DNFC_LINUX.

Version 1.6.0 (2020-12-22)
- Fix OpenSSL 1.0 and Cygwin builds.
- hid_linux: fix build on 32-bit systems.
- hid_osx: allow reads from spawned threads.
- Documentation and reliability fixes.
- New API calls:
    fido_cred_authdata_raw_len;
    fido_cred_authdata_raw_ptr;
    fido_cred_sigcount;
    fido_dev_get_uv_retry_count;
    fido_dev_supports_credman.
- Hardened Windows build.
- Native FreeBSD and NetBSD support.
- Use CTAP2 canonical CBOR when combining hmac-secret and credProtect.
2021-06-17 00:38:06 +00:00
rin 5bf1f32ce9 Update earmv[67]{,hf}{,eb}: hazard has gone, just working fine!
Note that kernel texts for soft-float variants are just same as that for
hard-float counterparts.
2021-06-16 00:56:16 +00:00
rin b1b853acea mknative for config.gcc fix for arm. 2021-06-15 08:23:41 +00:00
rin fd0328c778 Fix GCC10 for arm.
Include order of bpapi.h and netbsd-elf.h was swapped when official
support for arm*--netbsdelf-eabi{,hf} was added to GCC10. This seems to
cause critical inconsistencies, which results in SIGSEGV for as(1) on
earmv6hf{,eb} and some other regressions for many arm variants.

With this fix, everything work just fine as far as I can see.

Thanks skrll and mrg for discussion!
2021-06-15 08:22:23 +00:00
cjep c83e65e698 Whilst debugging the nbmakeinfo tool on an OpenBSD box, I noticed
two changes in OpenBSD's makeinfo sources. One addresses an out of bounds
access issue and the other an off-by-one issue.

Fixes PR toolchain/56179. Reviewed by christos.
2021-06-07 20:27:59 +00:00