Commit Graph

305589 Commits

Author SHA1 Message Date
riastradh 3e7604f627 i386 longjmp: Restore stack first, then signal mask.
Otherwise, a pending signal may be delivered on the wrong stack when
we restore the signal mask.

While here:

- Tidy the code a little bit.
- Sprinkle comments to explain what's going on.
- Use forward branches for statically predicted not-taken.
  => val==0 is unlikely in longjmp

PR lib/57946
2024-04-04 00:46:41 +00:00
riastradh df443a3d17 amd64 longjmp: Restore stack first, then signal mask.
Otherwise, a pending signal may be delivered on the wrong stack when
we restore the signal mask.

While here:

- Tidy the code a little bit.
- Sprinkle comments to explain what's going on.
- Use `xorl %eXX,%eXX' instead of `xorq %rXX,%rXX'.
  => Same effect, one byte shorter, breaks dep chain on more uarches.
- Use forward branches for statically predicted not-taken.
  => val==0 is unlikely in longjmp

PR lib/57946
2024-04-04 00:46:30 +00:00
christos b0c6c15390 remove #include <ieeefp.h> for i386 now that it is included in math_private.h 2024-04-03 18:53:41 +00:00
christos b3579e8037 need <ieeefp.h> for i386. 2024-04-03 14:54:50 +00:00
wiz 3766286601 new sentence, new line 2024-04-03 07:00:06 +00:00
kre 0e71e5a0d1 For i386, if ft[sg]etprec() are to be used, ensure there's a
prototype for them in scope (so include <ieeefp.h>)

Might fix the i386 build.
2024-04-03 04:40:23 +00:00
thorpej 8749255d22 Add a missing barrier in irongate_conf_read0(). 2024-04-03 04:30:30 +00:00
charlotte 9e96eca78b mount(8): Mention the ability to refer to dk(4) wedges in the manpage 2024-04-03 03:54:53 +00:00
christos fb834229e7 fix the cbrtl/powl test 2024-04-03 01:52:28 +00:00
christos d89d80aaff reduce diff with FreeBSD 2024-04-03 01:51:01 +00:00
gutteridge d6274d8bc7 if_iwn.c: pick up proper firmware for Centrino Wireless-N 130
Both variants should use iwlwifi-6000g2b-6 not iwlwifi-6000g2a-6. (It
seems only two specific product variants use iwlwifi-6000g2a-6. We
could simplify by reversing the sense of the test, as OpenBSD does, but
it doesn't seem to matter much, as what we now match seems to be the
full gamut possible, so the simpler diff was chosen here.)

Addresses PR kern/58105 from wandrien.dev@gmail.com, with the
PCI_PRODUCT_INTEL_WIFI_LINK_130_1 match tested by the reporter. Code
inspection of the FreeBSD driver indicates we should safely be able to
match PCI_PRODUCT_INTEL_WIFI_LINK_130_2 also.
2024-04-03 01:13:41 +00:00
uwe 7f922f0376 dk(4): touch up markup, sort options 2024-04-03 00:40:46 +00:00
christos 0ba9bcdd8c fix format. 2024-04-03 00:38:36 +00:00
charlotte 0ba42b7191 dk.4: Document DKWEDGE_METHOD_TOS 2024-04-02 23:46:19 +00:00
charlotte 8a309ac31c Mention DKWEDGE_METHOD_TOS in several kernel config files 2024-04-02 22:56:50 +00:00
riastradh 9ca9147797 bsd.own.mk: No need for MKSLJIT to be set differently from others.
- Use ?=, not =, so mk.conf setting wins.
- Write out per-architecture tabular settings, not a conditional.
- Add comments for the architectures that look like they should have
  sljit but don't.  (XXX Missing comments about powerpc and mips --
  not sure why, is this because modules don't yet work on those
  architectures, or what?)

Tidying for PR 58103: bpfjit.kmod is not built on aarch64.
2024-04-02 22:41:48 +00:00
riastradh 2dda1941ab bsd.own.mk: Enable MKLSJIT on aarch64.
Make sure there's only one copy of the conditional, in bsd.own.mk;
just make sys/modules/Makefile conditional on MKSLJIT so we don't
have to keep these in sync.

As a workaround for PR 58106, tweak the conditional definition of
SLJIT_CACHE_FLUSH to use cpu_icache_sync_range only in _HARDKERNEL,
and use __builtin___clear_cache in userland and in rump kernels.

PR 58103: bpfjit.kmod is not built on aarch64
2024-04-02 22:37:34 +00:00
charlotte 53b28be123 dk(4): Add support for discovering Atari TOS partitions as wedges
Any partitioning scheme which conforms to the Atari AHDI 3.00 spec should be
recognized by the new DKWEDGE_METHOD_TOS.
2024-04-02 22:30:03 +00:00
riastradh d0ccdab6f4 sljit: Pacify -Wsign-compare.
If these sizes are negative, we're probably in trouble anyway, so
assert nonnegative here.

Needed to resolve PR 58103.
2024-04-02 22:29:57 +00:00
riastradh 717c76abf5 MAKEDEV: Tidy some entries on x86 and Arm.
While here, reduce some diffs arising from ordering and formatting
between these architectures.

Only difference between evbarm and aarch64 now is /dev/vchiq.  Not
sure offhand if it makes sense on aarch64 or only 32-bit Arm.

PR port-amd64/58093: /dev/efi missing on x86
PR port-arm/58100: /dev/ttyVI* missing on aarch64
PR port-arm/58101: /dev/nvme* missing on aarch64
PR port-arm/58102: /dev/raid* missing on aarch64
2024-04-02 22:29:35 +00:00
rillig d5bb47fbc4 sparc/fpsetround: fix the nearby signed integer overflow as well
Same as for sparc64 a few days ago.
2024-04-02 20:42:12 +00:00
christos a7add5bb79 fix lint 2024-04-02 20:27:44 +00:00
christos b9343ab6d9 fix llvm build 2024-04-02 20:04:16 +00:00
christos 16095d554f undo accidental commit. 2024-04-02 18:40:50 +00:00
christos 8f219a4edd PR/58054: Martin Husemann: fix bug in expsign extraction and only use the
code for the floating point formats where it works (does not work for 112
bit mantisa in sparc64)
2024-04-02 18:39:51 +00:00
christos 1718c36352 Back-out unintented commit. 2024-04-02 16:18:23 +00:00
christos 403fd67d9a PR/58104: Kouichi Hashikawa: Use ${TOOL_AWK} 2024-04-02 16:17:29 +00:00
rillig 3b221c13be tests/make: pass PATH onto child processes
This fixes the tests on some Cygwin variant where the shell does not
initialize the PATH environment variable when it's missing.
2024-04-02 15:05:15 +00:00
christos 9cee694b9b Fix DEBUG build. 2024-04-02 14:24:26 +00:00
christos 8e77060493 harmonize with the rest of MD limits files. 2024-04-02 14:21:29 +00:00
christos 3a91ec0ace use ${MKREPRO_TIMESTAMP} for baking in the date and time. 2024-04-02 14:19:02 +00:00
christos 268230053d Use ${TOOL_DATE} (Jan-Benedict Glaw) 2024-04-02 14:15:19 +00:00
christos 01d7b23489 oops the #endif was too far down. 2024-04-02 12:42:35 +00:00
rillig fac77563b5 tests/make: remove test for overly long chdir argument
On Cygwin, the path '/././..././' is normalized before being passed to
the child 'make' process. Since overly long pathnames are not required
to be supported on all platforms, remove the test.
2024-04-02 11:11:00 +00:00
andvar b20c24302f s/Doucments/Documents/ in comment. 2024-04-01 22:56:55 +00:00
christos 7b80984d1c Use the TOOL_GZIP we built as part of tools if available. 2024-04-01 22:23:14 +00:00
christos d3697da1f3 Handle not having SIGINFO (Jan-Benedict Glaw) 2024-04-01 22:20:58 +00:00
riastradh ad49149131 elftoolchain: Be consistent about which ELF header files we use.
1. For tools that use elftoolchain: always use elftoolchain's
   elfdefinitions.h.  Don't even think about looking at the host's
   sys/exec_elf.h, which makes no sense and should never happen.

   (ELF tools that don't use elftoolchain, like m68k-elf2coff,
   continue to use nbincludes/sys/exec_elf.h.  But no more nbincludes
   hacks in elftoolchain.)

2. For kernel components (solaris, zfs, dtrace): always use
   sys/exec_elf.h, even in Solaris components via sys/elf.h.
   elfdefinitions.h is not wired up in the kernel build at all.

3. For most userland components that involve libelf: use
   elfdefinitions.h via libelf header files (libelf.h, gelf.h).

   libdtrace in particular requires _all_ R_* reloc type definitions,
   but sys/exec_elf.h brings in only the _current machine's_ R_*
   reloc type definitions.  (While here: Use uintptr_t instead of
   Elf_Addr for pointer-to-integer cast, since Elf_Addr is MD and
   provided only by sys/exec_elf.h, not by elfdefinitions.h.)

   And most userland components using libelf don't rely on any
   properties of the current machine from sys/exec_elf.h, so they can
   use libelf's elfdefinition.h.

   Exceptions:

   - dtrace drti.c relies on link.h -> link_elf.h -> sys/exec_elf.h,
     but it also relies on sys/dtrace.h -> sys/elf.h ->
     elfdefinitions.h like other userland components using sys/elf.h.

   - kdump-ioctl.c uses sys/exec_elf.h directly and sys/dtrace.h ->
     sys/elf.h -> elfdefinitions like other userland components using
     sys/elf.h.

   - t_ptrace_wait.c (via t_ptrace_core_wait.h) uses libelf to parse
     core files, but relies on sys/exec_elf.h for struct
     netbsd_elfcore_procinfo.

   None of these exceptions needs all R_* reloc type definitions, so
   as a workaround, we can just suppress libelf's elfdefinitions.h by
   defining _SYS_ELFDEFINITIONS_H_ and use sys/exec_elf.h in these
   exceptions.

And undo the whole BUILTIN_ELF_HEADERS mistake.  This was:

- half bogus workarounds for missing build_install dependencies in
  tools/Makefile, which are no longer missing now, and
- half futile attempt to use src/sys/sys/exec_elf.h via nbincludes in
  tools involving libelf instead of libelf's elfdefinitions.h, which
  collides.

Longer-term, we may wish to unify sys/exec_elf.h and libelf's
elfdefinitions.h, so we don't have to play these games.

But at least now the games are limited to three .c files (one of
which is generated by Makefile.ioctl-c), rather than haphazardly
applied tree-wide by monstrous kludges in widely used .h files with
broken hackarounds to get the tools build lurching to completion.
2024-04-01 18:33:22 +00:00
skrll 9dafaafcc9 Return the correct error from {fetch,store}_user_data and fix
futex_wake_op_op: [0.273033s] Failed: /usr/src/tests/lib/libc/sys/t_futex_ops.c:942: Expected errno 14, got 1, in __futex(&futex_word, FUTEX_WAKE_OP | flags, 0, NULL, NULL, 0, op) == -1
2024-04-01 16:24:01 +00:00
jakllsch 7406ef8d73 ti_gpio: add gpio(4) interrupt support
tested with gpiopps(4) on Beagle Bone Black
2024-04-01 15:52:08 +00:00
rillig 9b0e4f6f67 make: remove unreachable code in handling .for loops 2024-04-01 12:33:27 +00:00
rillig 311476f316 make: exit immediately after reading a null byte from a makefile
The chance of other garbage bytes in such a file is just too high.
2024-04-01 12:26:02 +00:00
macallan a78c8d274c make gftfb_restore_palette() grab the default colour map from rasops instead
of just writing the driver's map into the hardware ( which may have been
modified by the likes of wsfb )
With this we get a readable console even when exiting X in a less than
graceful manner.
2024-04-01 09:48:58 +00:00
rillig 99770e084d tests/snprintb_m: test null-terminated output in error case
While here, clean up the buffer handling for the visualized array
content in case of a failed test.
2024-04-01 09:15:51 +00:00
rillig 24a52b6ecd snprintb: remove redundant memset in kernel mode
The provided buffer is already null-terminated by finish_buffer, even in
error cases, there is no need to repeat the same work.
2024-04-01 08:53:42 +00:00
christos a7487e8acc hook gzip to the build so that we can test it in other OS's. Not used yet. 2024-04-01 02:22:38 +00:00
christos ce9d65703d make it work as a tool 2024-04-01 02:21:39 +00:00
christos d8b33778ce - -n is the default on SMALL, so accept the flag silently.
- conditionalize TIMESPEC_TO_TIMEVAL
- add nbtool_config.h
2024-04-01 02:20:52 +00:00
christos 7ba93f1a9b Start for a TOOL_GZIP 2024-04-01 02:19:41 +00:00
christos 878fdbc71b revert previous, riastradh fixed it correctly and this is not needed. 2024-04-01 02:18:30 +00:00