| Home | Sort by: relevance | last modified time | path |
| /src/distrib/notes/common/ | |
| main | 1.425 Wed Oct 29 17:02:54 UTC 2008 tsutsui branches: 1.425.2; Update MACHINE_LIST and MACHINE_ARCH_LIST. Wed Oct 29 17:02:54 UTC 2008 tsutsui branches: 1.425.2; Update MACHINE_LIST and MACHINE_ARCH_LIST. 1.425.2.18 Fri Nov 07 07:58:37 UTC 2014 msaitoh Pull up following revision(s) (requested by snj in ticket #1931): share/man/man7/release.7: revision 1.32 distrib/common/Makefile.bootcd: revision 1.18 distrib/notes/macppc/prep.OPENFIRMWARE: revision 1.15 distrib/notes/sparc/install: revision 1.57 etc/Makefile: revision 1.394 distrib/notes/common/main: revision 1.484 PR# install/44593: Please give release ISO's more meaningful names Change release ISO filenames, what was once 'i386cd.iso' will now look like 'NetBSD-5.99.60-i386.iso'. ok snj@ 1.425.2.17 Wed Nov 05 13:11:12 UTC 2014 sborrill Apply patch (requested by snj in ticket 1930): Install fully-populated .iso images in ${RELEASEDIR}/images instead of ${RELEASEDIR}/iso 1.425.2.16 Tue Nov 27 18:12:23 UTC 2012 riz branches: 1.425.2.16.2; Update release notes for 5.2 .2.16 Tue Nov 27 18:12:23 UTC 2012 riz branches: 1.425.2.16.2; Update release notes for 5.2 1.425.2.15 Wed Dec 01 00:28:38 UTC 2010 sborrill Add myself to releng on netbsd-5 branch 1.425.2.14 Sat Nov 06 03:42:21 UTC 2010 snj branches: 1.425.2.14.2; ftpd/sftp glob stuff is covered by SA2010-008. No need to duplicate it. .2.14 Sat Nov 06 03:42:21 UTC 2010 snj branches: 1.425.2.14.2; ftpd/sftp glob stuff is covered by SA2010-008. No need to duplicate it. 1.425.2.13 Fri Nov 05 09:28:46 UTC 2010 sborrill Rename netbsd-compat50-5.1.tgz to compat50-5.1.tgz for consistency. URL approved by spz@ |
| /src/tests/lib/libc/setjmp/ | |
| Makefile | 1.2.54.1 Fri Aug 23 16:56:29 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.2.46.1 Fri Aug 23 16:59:51 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| t_sigstack.c | 1.12.4.2 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.12.2.2 Fri Aug 23 16:56:29 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| /src/lib/libc/arch/i386/gen/ | |
| setjmp.S | 1.17.34.1 Fri Aug 23 16:56:30 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.17.26.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| sigsetjmp.S | 1.18.34.1 Fri Aug 23 16:56:30 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.18.26.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| /src/lib/libc/arch/sh3/gen/ | |
| setjmp.S | 1.10.96.1 Fri Aug 23 16:56:29 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.10.88.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| sigsetjmp.S | 1.9.96.1 Fri Aug 23 16:56:29 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.9.88.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| /src/lib/libc/arch/x86_64/gen/ | |
| __setjmp14.S | 1.3.34.1 Fri Aug 23 16:56:30 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.3.26.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| __sigsetjmp14.S | 1.3.34.1 Fri Aug 23 16:56:30 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.3.26.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| /src/lib/libc/arch/arm/gen/ | |
| setjmp.S | 1.17.28.1 Fri Aug 23 16:59:52 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 (patch) longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) 1.18.2.1 Fri Aug 23 16:56:30 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #795): tests/lib/libc/setjmp/Makefile: revision 1.3 distrib/sets/lists/debug/mi: revision 1.425 lib/libc/arch/sh3/gen/setjmp.S: revision 1.12 lib/libc/arch/i386/gen/sigsetjmp.S: revision 1.19 lib/libc/arch/x86_64/gen/__setjmp14.S: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.10 tests/lib/libc/setjmp/t_sigstack.c: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.12 tests/lib/libc/setjmp/t_sigstack.c: revision 1.1 lib/libc/arch/sh3/gen/sigsetjmp.S: revision 1.11 tests/lib/libc/setjmp/t_sigstack.c: revision 1.2 tests/lib/libc/setjmp/t_sigstack.c: revision 1.3 tests/lib/libc/setjmp/t_sigstack.c: revision 1.4 tests/lib/libc/setjmp/t_sigstack.c: revision 1.5 tests/lib/libc/setjmp/t_sigstack.c: revision 1.6 lib/libc/arch/arm/gen/setjmp.S: revision 1.19 tests/lib/libc/setjmp/t_sigstack.c: revision 1.7 tests/lib/libc/setjmp/t_sigstack.c: revision 1.8 tests/lib/libc/setjmp/t_sigstack.c: revision 1.9 lib/libc/arch/i386/gen/setjmp.S: revision 1.18 lib/libc/arch/x86_64/gen/__sigsetjmp14.S: revision 1.4 distrib/sets/lists/tests/mi: revision 1.1306 longjmp(3): Add test for PR lib/57946. longjmp(3): Paranoia: more error checking in PR lib/57946 test. longjmp(3): Test signal mask vs stack restore with siglongjmp too. PR lib/57946 longjmp(3) t_sigstack: Print which entry failed. PR lib/57946 longjmp(3) t_sigstack: Note aarch64 seems to DTRT. But only by code inspection; it appears to have another problem: on re-entry, the signal handler is called on the normal stack, not on the alternate signal stack. PR lib/57946 longjmp(3) t_sigstack: Use a sigaltstack per handler entry. longjmp evidently doesn't reset the state of whether the process is executing on the alternate signal stack. So when we re-enter the signal handler, the alternate stack appears to be still in use, and the system chooses the original stack for the second call to the signal handler -- which trips our assertion asking to verify that the signal handler is always using an alternate stack. Not strictly necessary for the signal handler to use an alternate stack on re-entry, but this makes it clearer that the signal handler itself is always using the alternate stack so we can verify that the interrupted code is _not_ in the signal handler. With this change, the test now passes on aarch64. PR lib/57946 longjmp(3) t_sigstack: Fix fencepost error. Extremely unlikely to cause trouble, but let's just turn that into `never' to keep it easier for readers. PR lib/57946 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 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 arm 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: - Move the botched sp and lr tests earlier. PR lib/57946 arm has been fixed tests/lib/libc/setjmp/t_sigstack: Add missing comment for 1.10. PR lib/57946 sh3: siglongjmp - restore register context first (PR lib/57946) |
| /src/sys/dev/mii/ | |
| ikphyreg.h | 1.2.34.1 Mon Dec 12 07:18:29 UTC 2016 snj Pull up following revision(s) (requested by msaitoh in ticket #1302): sys/dev/mii/igphyreg.h: revisions 1.7-1.10 sys/dev/mii/ikphyreg.h: revisions 1.3 sys/dev/mii/inbmphyreg.h: revisions 1.4-1.9 sys/dev/mii/mii.h: revisions 1.19-1.20 sys/dev/pci/if_wm.c: revisions 1.390, 1.392-1.395, 1.397, 1.419-1.425, 1.427-1.428, 1.430-1.435, 1.437-1.453 via patch sys/dev/pci/if_wmreg.: revisions 1.89-1.93 via patch sys/dev/pci/if_wmvar.h: revisions 1.31-1.32 Update wm(4) up to if_wm.c rev. 1.453 except MSI/MSI-X, multiqueue and NET_MPSAFE: - Add I219 support. It's not stable so it's disabled by default. - wm_gate_hw_phy_config_ich8lan() is for younger than PCH2. - Drop the host wakeup bit after resetting PHY on PCH and newer devices. - Increase delay while toggling LANPHYPC - Move call of wm_reset() in wm_attach() after setting PHY and NVM related flags because those flags are used in wm_reset(). - Use mutex for NVM access on ICH8 and newer devices. Same as FreeBSD. - Rewrite PHY related lock stuff. Almost the same as FreeBSD. This change will fix a bug that PHY read/write fail on some cases. - Increase delay in wm_phy_resetisblocked(). Same as FreeBSD. - Use semaphore in wm_hv_phy_workaround_ich8lan() and wm_k1_gig_workaround_hv() - Use wm_gii_mdic_readreg/writereg() in wm_access_phy_wakeup_reg_bm() because these functions are called with taking lock. - 82567V_3 is BME1000_E_2(bm). Tested with Advantech AIMB-212 1st Ethernet port. - Use wm_gmii_82544_{read,write}reg() on non-82567 ICH8, 9 and 10. - Remove an 82578 workaround which was for PCH rev < 3. FreeBSD removed this workaround in r228386. - Add an 82578 workaround which is for PHY rev < 2. From FreeBSD and Linux. - Fix wm(4) input drop packet counter. WMREG_RNBC is incremented when there is no available buffers in host memory. However, ethernet controller can receive packets in such case if there is space in phy's FIFO. That is, ethernet controller drops packet only if there is no available buffers *and* there is no space in phy's FIFO. So, the number of dropped packets should be added WMREG_MPC only. - Use MII_ADDRMASK. - Define WMPHY_I217, WMPHY_VF and WMPHY_210. - Use BME1000_PHY_PAGE_SELECT in wm_gmii_bm_{read,write}reg(). This change has no effect because GG82563_PHY_PAGE_SELECT and BME1000_PHY_PAGE_SELECT have the same value. - Fix PHY access on 82567(ICH8 or ICH10), 82574 and 82583: - Use wm_gmii_bm_{read,write}reg() on 82574 and 82573. - Issue page select correctly on BM PHYs. - Fix workaround which did dummy read BM_WUC register. This code was changed to drop BM_WUC_HOST_WU_BIT of BM_PROT_GEN_CFG register in FreeBSD r228386. The code was added rev. 1.149, but the location was not the best. - wm_gmii_hv_{read/write}reg*(): USE PHY address 1 for some special registers. - Add check code for an 82578 workaround. Not completed yet. - wm_release_hw_control(): Remove extra line. No any effect. - Add "10/100" into non-gigabit devices' name. - Call wm_enable_wakeup() in wm_detach() and wm_suspend(). Now wake on lan works on Thinkpad X61(ICH8). - Fix wm_access_phy_wakeup_reg_bm(). This change has no effect because this function is used for WUC register and our driver currenlty doesn't access to it. - Call wm_enable_phy_wakeup() on PCH2 and newer, too. Now these devices can do WOL. Tested with Thinkpad X220(PCH2). - Set CTRL_MEHE correctly (PCH_{LPT,SPT} only). - Add three workarounds for PCH_{LPT,SPT}. - Fix a bug that 8257[56], 82580, I35[04] and I21[01] didn't use wm_{get,release}_hw_control() correctly. - Sync wm_smbustopci() with Linux and FreeBSD. This change effects PCH and newer devices. - Move the location of wm_smbustopci() call. - Fix flag check in wm_get_wakeup() - 8254[17]* and 8257[124] should not set WM_F_ARC_SUBSYS_VALID. - Add missing WM_T_82541_2 and WM_T_82547_2. - Fix WOL related setting of the WUC register for other than PCH* in wm_enable_wakeup(). Tested with 82567V(ICH8) and 82583V. - Use common MII_ADDRMASK. - igphy(4): No binary change: - s/IGPPHY/IGPHY/ - Fix the definition of PLHR_VALID_CHANNEL_* - Fix the definition of MSE_CHANNEL_* - Add MII_IGPHY_POWER_MGMT. - Add some KASSERT. - Add comment. Modify comment. - Add debug code. |
| mii.h | 1.18.2.1 Mon Dec 12 07:18:29 UTC 2016 snj Pull up following revision(s) (requested by msaitoh in ticket #1302): sys/dev/mii/igphyreg.h: revisions 1.7-1.10 sys/dev/mii/ikphyreg.h: revisions 1.3 sys/dev/mii/inbmphyreg.h: revisions 1.4-1.9 sys/dev/mii/mii.h: revisions 1.19-1.20 sys/dev/pci/if_wm.c: revisions 1.390, 1.392-1.395, 1.397, 1.419-1.425, 1.427-1.428, 1.430-1.435, 1.437-1.453 via patch sys/dev/pci/if_wmreg.: revisions 1.89-1.93 via patch sys/dev/pci/if_wmvar.h: revisions 1.31-1.32 Update wm(4) up to if_wm.c rev. 1.453 except MSI/MSI-X, multiqueue and NET_MPSAFE: - Add I219 support. It's not stable so it's disabled by default. - wm_gate_hw_phy_config_ich8lan() is for younger than PCH2. - Drop the host wakeup bit after resetting PHY on PCH and newer devices. - Increase delay while toggling LANPHYPC - Move call of wm_reset() in wm_attach() after setting PHY and NVM related flags because those flags are used in wm_reset(). - Use mutex for NVM access on ICH8 and newer devices. Same as FreeBSD. - Rewrite PHY related lock stuff. Almost the same as FreeBSD. This change will fix a bug that PHY read/write fail on some cases. - Increase delay in wm_phy_resetisblocked(). Same as FreeBSD. - Use semaphore in wm_hv_phy_workaround_ich8lan() and wm_k1_gig_workaround_hv() - Use wm_gii_mdic_readreg/writereg() in wm_access_phy_wakeup_reg_bm() because these functions are called with taking lock. - 82567V_3 is BME1000_E_2(bm). Tested with Advantech AIMB-212 1st Ethernet port. - Use wm_gmii_82544_{read,write}reg() on non-82567 ICH8, 9 and 10. - Remove an 82578 workaround which was for PCH rev < 3. FreeBSD removed this workaround in r228386. - Add an 82578 workaround which is for PHY rev < 2. From FreeBSD and Linux. - Fix wm(4) input drop packet counter. WMREG_RNBC is incremented when there is no available buffers in host memory. However, ethernet controller can receive packets in such case if there is space in phy's FIFO. That is, ethernet controller drops packet only if there is no available buffers *and* there is no space in phy's FIFO. So, the number of dropped packets should be added WMREG_MPC only. - Use MII_ADDRMASK. - Define WMPHY_I217, WMPHY_VF and WMPHY_210. - Use BME1000_PHY_PAGE_SELECT in wm_gmii_bm_{read,write}reg(). This change has no effect because GG82563_PHY_PAGE_SELECT and BME1000_PHY_PAGE_SELECT have the same value. - Fix PHY access on 82567(ICH8 or ICH10), 82574 and 82583: - Use wm_gmii_bm_{read,write}reg() on 82574 and 82573. - Issue page select correctly on BM PHYs. - Fix workaround which did dummy read BM_WUC register. This code was changed to drop BM_WUC_HOST_WU_BIT of BM_PROT_GEN_CFG register in FreeBSD r228386. The code was added rev. 1.149, but the location was not the best. - wm_gmii_hv_{read/write}reg*(): USE PHY address 1 for some special registers. - Add check code for an 82578 workaround. Not completed yet. - wm_release_hw_control(): Remove extra line. No any effect. - Add "10/100" into non-gigabit devices' name. - Call wm_enable_wakeup() in wm_detach() and wm_suspend(). Now wake on lan works on Thinkpad X61(ICH8). - Fix wm_access_phy_wakeup_reg_bm(). This change has no effect because this function is used for WUC register and our driver currenlty doesn't access to it. - Call wm_enable_phy_wakeup() on PCH2 and newer, too. Now these devices can do WOL. Tested with Thinkpad X220(PCH2). - Set CTRL_MEHE correctly (PCH_{LPT,SPT} only). - Add three workarounds for PCH_{LPT,SPT}. - Fix a bug that 8257[56], 82580, I35[04] and I21[01] didn't use wm_{get,release}_hw_control() correctly. - Sync wm_smbustopci() with Linux and FreeBSD. This change effects PCH and newer devices. - Move the location of wm_smbustopci() call. - Fix flag check in wm_get_wakeup() - 8254[17]* and 8257[124] should not set WM_F_ARC_SUBSYS_VALID. - Add missing WM_T_82541_2 and WM_T_82547_2. - Fix WOL related setting of the WUC register for other than PCH* in wm_enable_wakeup(). Tested with 82567V(ICH8) and 82583V. - Use common MII_ADDRMASK. - igphy(4): No binary change: - s/IGPPHY/IGPHY/ - Fix the definition of PLHR_VALID_CHANNEL_* - Fix the definition of MSE_CHANNEL_* - Add MII_IGPHY_POWER_MGMT. - Add some KASSERT. - Add comment. Modify comment. - Add debug code. |
| igphyreg.h | 1.6.36.1 Mon Dec 12 07:18:29 UTC 2016 snj Pull up following revision(s) (requested by msaitoh in ticket #1302): sys/dev/mii/igphyreg.h: revisions 1.7-1.10 sys/dev/mii/ikphyreg.h: revisions 1.3 sys/dev/mii/inbmphyreg.h: revisions 1.4-1.9 sys/dev/mii/mii.h: revisions 1.19-1.20 sys/dev/pci/if_wm.c: revisions 1.390, 1.392-1.395, 1.397, 1.419-1.425, 1.427-1.428, 1.430-1.435, 1.437-1.453 via patch sys/dev/pci/if_wmreg.: revisions 1.89-1.93 via patch sys/dev/pci/if_wmvar.h: revisions 1.31-1.32 Update wm(4) up to if_wm.c rev. 1.453 except MSI/MSI-X, multiqueue and NET_MPSAFE: - Add I219 support. It's not stable so it's disabled by default. - wm_gate_hw_phy_config_ich8lan() is for younger than PCH2. - Drop the host wakeup bit after resetting PHY on PCH and newer devices. - Increase delay while toggling LANPHYPC - Move call of wm_reset() in wm_attach() after setting PHY and NVM related flags because those flags are used in wm_reset(). - Use mutex for NVM access on ICH8 and newer devices. Same as FreeBSD. - Rewrite PHY related lock stuff. Almost the same as FreeBSD. This change will fix a bug that PHY read/write fail on some cases. - Increase delay in wm_phy_resetisblocked(). Same as FreeBSD. - Use semaphore in wm_hv_phy_workaround_ich8lan() and wm_k1_gig_workaround_hv() - Use wm_gii_mdic_readreg/writereg() in wm_access_phy_wakeup_reg_bm() because these functions are called with taking lock. - 82567V_3 is BME1000_E_2(bm). Tested with Advantech AIMB-212 1st Ethernet port. - Use wm_gmii_82544_{read,write}reg() on non-82567 ICH8, 9 and 10. - Remove an 82578 workaround which was for PCH rev < 3. FreeBSD removed this workaround in r228386. - Add an 82578 workaround which is for PHY rev < 2. From FreeBSD and Linux. - Fix wm(4) input drop packet counter. WMREG_RNBC is incremented when there is no available buffers in host memory. However, ethernet controller can receive packets in such case if there is space in phy's FIFO. That is, ethernet controller drops packet only if there is no available buffers *and* there is no space in phy's FIFO. So, the number of dropped packets should be added WMREG_MPC only. - Use MII_ADDRMASK. - Define WMPHY_I217, WMPHY_VF and WMPHY_210. - Use BME1000_PHY_PAGE_SELECT in wm_gmii_bm_{read,write}reg(). This change has no effect because GG82563_PHY_PAGE_SELECT and BME1000_PHY_PAGE_SELECT have the same value. - Fix PHY access on 82567(ICH8 or ICH10), 82574 and 82583: - Use wm_gmii_bm_{read,write}reg() on 82574 and 82573. - Issue page select correctly on BM PHYs. - Fix workaround which did dummy read BM_WUC register. This code was changed to drop BM_WUC_HOST_WU_BIT of BM_PROT_GEN_CFG register in FreeBSD r228386. The code was added rev. 1.149, but the location was not the best. - wm_gmii_hv_{read/write}reg*(): USE PHY address 1 for some special registers. - Add check code for an 82578 workaround. Not completed yet. - wm_release_hw_control(): Remove extra line. No any effect. - Add "10/100" into non-gigabit devices' name. - Call wm_enable_wakeup() in wm_detach() and wm_suspend(). Now wake on lan works on Thinkpad X61(ICH8). - Fix wm_access_phy_wakeup_reg_bm(). This change has no effect because this function is used for WUC register and our driver currenlty doesn't access to it. - Call wm_enable_phy_wakeup() on PCH2 and newer, too. Now these devices can do WOL. Tested with Thinkpad X220(PCH2). - Set CTRL_MEHE correctly (PCH_{LPT,SPT} only). - Add three workarounds for PCH_{LPT,SPT}. - Fix a bug that 8257[56], 82580, I35[04] and I21[01] didn't use wm_{get,release}_hw_control() correctly. - Sync wm_smbustopci() with Linux and FreeBSD. This change effects PCH and newer devices. - Move the location of wm_smbustopci() call. - Fix flag check in wm_get_wakeup() - 8254[17]* and 8257[124] should not set WM_F_ARC_SUBSYS_VALID. - Add missing WM_T_82541_2 and WM_T_82547_2. - Fix WOL related setting of the WUC register for other than PCH* in wm_enable_wakeup(). Tested with 82567V(ICH8) and 82583V. - Use common MII_ADDRMASK. - igphy(4): No binary change: - s/IGPPHY/IGPHY/ - Fix the definition of PLHR_VALID_CHANNEL_* - Fix the definition of MSE_CHANNEL_* - Add MII_IGPHY_POWER_MGMT. - Add some KASSERT. - Add comment. Modify comment. - Add debug code. |
| inbmphyreg.h | 1.3.30.1 Mon Dec 12 07:18:29 UTC 2016 snj Pull up following revision(s) (requested by msaitoh in ticket #1302): sys/dev/mii/igphyreg.h: revisions 1.7-1.10 sys/dev/mii/ikphyreg.h: revisions 1.3 sys/dev/mii/inbmphyreg.h: revisions 1.4-1.9 sys/dev/mii/mii.h: revisions 1.19-1.20 sys/dev/pci/if_wm.c: revisions 1.390, 1.392-1.395, 1.397, 1.419-1.425, 1.427-1.428, 1.430-1.435, 1.437-1.453 via patch sys/dev/pci/if_wmreg.: revisions 1.89-1.93 via patch sys/dev/pci/if_wmvar.h: revisions 1.31-1.32 Update wm(4) up to if_wm.c rev. 1.453 except MSI/MSI-X, multiqueue and NET_MPSAFE: - Add I219 support. It's not stable so it's disabled by default. - wm_gate_hw_phy_config_ich8lan() is for younger than PCH2. - Drop the host wakeup bit after resetting PHY on PCH and newer devices. - Increase delay while toggling LANPHYPC - Move call of wm_reset() in wm_attach() after setting PHY and NVM related flags because those flags are used in wm_reset(). - Use mutex for NVM access on ICH8 and newer devices. Same as FreeBSD. - Rewrite PHY related lock stuff. Almost the same as FreeBSD. This change will fix a bug that PHY read/write fail on some cases. - Increase delay in wm_phy_resetisblocked(). Same as FreeBSD. - Use semaphore in wm_hv_phy_workaround_ich8lan() and wm_k1_gig_workaround_hv() - Use wm_gii_mdic_readreg/writereg() in wm_access_phy_wakeup_reg_bm() because these functions are called with taking lock. - 82567V_3 is BME1000_E_2(bm). Tested with Advantech AIMB-212 1st Ethernet port. - Use wm_gmii_82544_{read,write}reg() on non-82567 ICH8, 9 and 10. - Remove an 82578 workaround which was for PCH rev < 3. FreeBSD removed this workaround in r228386. - Add an 82578 workaround which is for PHY rev < 2. From FreeBSD and Linux. - Fix wm(4) input drop packet counter. WMREG_RNBC is incremented when there is no available buffers in host memory. However, ethernet controller can receive packets in such case if there is space in phy's FIFO. That is, ethernet controller drops packet only if there is no available buffers *and* there is no space in phy's FIFO. So, the number of dropped packets should be added WMREG_MPC only. - Use MII_ADDRMASK. - Define WMPHY_I217, WMPHY_VF and WMPHY_210. - Use BME1000_PHY_PAGE_SELECT in wm_gmii_bm_{read,write}reg(). This change has no effect because GG82563_PHY_PAGE_SELECT and BME1000_PHY_PAGE_SELECT have the same value. - Fix PHY access on 82567(ICH8 or ICH10), 82574 and 82583: - Use wm_gmii_bm_{read,write}reg() on 82574 and 82573. - Issue page select correctly on BM PHYs. - Fix workaround which did dummy read BM_WUC register. This code was changed to drop BM_WUC_HOST_WU_BIT of BM_PROT_GEN_CFG register in FreeBSD r228386. The code was added rev. 1.149, but the location was not the best. - wm_gmii_hv_{read/write}reg*(): USE PHY address 1 for some special registers. - Add check code for an 82578 workaround. Not completed yet. - wm_release_hw_control(): Remove extra line. No any effect. - Add "10/100" into non-gigabit devices' name. - Call wm_enable_wakeup() in wm_detach() and wm_suspend(). Now wake on lan works on Thinkpad X61(ICH8). - Fix wm_access_phy_wakeup_reg_bm(). This change has no effect because this function is used for WUC register and our driver currenlty doesn't access to it. - Call wm_enable_phy_wakeup() on PCH2 and newer, too. Now these devices can do WOL. Tested with Thinkpad X220(PCH2). - Set CTRL_MEHE correctly (PCH_{LPT,SPT} only). - Add three workarounds for PCH_{LPT,SPT}. - Fix a bug that 8257[56], 82580, I35[04] and I21[01] didn't use wm_{get,release}_hw_control() correctly. - Sync wm_smbustopci() with Linux and FreeBSD. This change effects PCH and newer devices. - Move the location of wm_smbustopci() call. - Fix flag check in wm_get_wakeup() - 8254[17]* and 8257[124] should not set WM_F_ARC_SUBSYS_VALID. - Add missing WM_T_82541_2 and WM_T_82547_2. - Fix WOL related setting of the WUC register for other than PCH* in wm_enable_wakeup(). Tested with 82567V(ICH8) and 82583V. - Use common MII_ADDRMASK. - igphy(4): No binary change: - s/IGPPHY/IGPHY/ - Fix the definition of PLHR_VALID_CHANNEL_* - Fix the definition of MSE_CHANNEL_* - Add MII_IGPHY_POWER_MGMT. - Add some KASSERT. - Add comment. Modify comment. - Add debug code. |
| /src/usr.sbin/wg-keygen/ | |
| Makefile | 1.1.10.1 Thu Jan 22 19:51:55 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| /src/sys/dev/usb/ | |
| usbdevs.h | 1.425 Fri Jan 27 06:12:55 UTC 2006 dogcow branches: 1.425.2; 1.425.4; Regen. Fri Jan 27 06:12:55 UTC 2006 dogcow branches: 1.425.2; 1.425.4; Regen. .2; 1.425.4; Regen. 1.425.4.2 Wed Jun 07 15:51:25 UTC 2006 kardel Sync with head. 1.425.4.1 Sat Apr 22 11:39:38 UTC 2006 simonb Sync with head. 1.425.2.1 Sat Sep 09 02:55:33 UTC 2006 rpaulo sync with head |
| usbdevs_data.h | 1.425 Wed Dec 07 10:18:10 UTC 2005 augustss branches: 1.425.2; Regen. Wed Dec 07 10:18:10 UTC 2005 augustss branches: 1.425.2; Regen. 1.425.2.2 Sat Feb 18 15:39:12 UTC 2006 yamt sync with head. 1.425.2.1 Wed Feb 01 14:52:20 UTC 2006 yamt sync with head. |
| /src/distrib/evbarm/instkernel/sshramdisk/ | |
| Makefile | 1.28.4.1 Thu Jan 22 19:51:52 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| list | 1.6.2.1 Thu Jan 22 19:51:52 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| /src/distrib/sets/lists/xdebug/ | |
| mi | 1.51.2.1 Thu Jan 22 19:51:55 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| /src/rescue/ | |
| list | 1.55.6.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| Makefile | 1.42.10.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| /src/lib/libpam/modules/pam_ssh/ | |
| Makefile | 1.14.2.1 Thu Jan 22 19:51:54 UTC 2026 martin Pull up following revision(s) (requested by snj in ticket #150): distrib/sets/lists/debug/shl.mi: revision 1.380 crypto/external/bsd/openssh/lib/Makefile: revision 1.45 distrib/sets/lists/debug/shl.mi: revision 1.381 crypto/external/bsd/openssh/lib/Makefile: revision 1.46 distrib/sets/lists/debug/shl.mi: revision 1.382 distrib/evbarm/instkernel/sshramdisk/list: revision 1.7 share/mk/bsd.lib.mk: revision 1.423 share/mk/bsd.lib.mk: revision 1.425 distrib/sets/lists/comp/mi: revision 1.2503 distrib/sets/lists/comp/mi: revision 1.2504 distrib/evbarm/instkernel/sshramdisk/Makefile: revision 1.31 distrib/sets/lists/base/shl.mi: revision 1.1019 rescue/list: revision 1.56 etc/mtree/NetBSD.dist.compat.in: revision 1.9 distrib/sets/lists/debug/mi: revision 1.494 distrib/sets/lists/debug/mi: revision 1.495 distrib/sets/lists/base/mi: revision 1.1371 distrib/sets/lists/base/mi: revision 1.1372 distrib/sets/lists/comp/shl.mi: revision 1.362 etc/mtree/NetBSD.dist.base: revision 1.262 lib/libpam/modules/pam_ssh/Makefile: revision 1.15 share/mk/bsd.prog.mk: revision 1.358 share/mk/bsd.prog.mk: revision 1.359 usr.sbin/wg-keygen/Makefile: revision 1.2 usr.sbin/wg-keygen/Makefile: revision 1.3 distrib/sets/lists/base/shl.mi: revision 1.1020 share/mk/bsd.README: revision 1.457 crypto/external/bsd/openssh/Makefile.inc: revision 1.18 distrib/sets/lists/xdebug/mi: revision 1.52 rescue/Makefile: revision 1.43 Add logic for /usr/lib/private libraries. New variables for makefiles to define: <bsd.lib.mk> LIBSUBDIR -- If nonempty, install library into ${LIBDIR}/${LIBSUBDIR} instead of ${LIBDIR}. Typically set either to empty or to `private'. <bsd.lib.mk> LIBDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking library. Note: Should only be used inside private libraries, not inside public libraries to link against private libraries, which can't work -- see comment. <bsd.prog.mk> PROGDPSUBDIRS -- List of subdirectories _subdir_ to add -L${SHLIBDIR}/${_subdir_} -Wl,-R${SHLIBDIR}/${_subdir_} to ldflags when linking program. (XXX bsd.lib.mk/bsd.prog.mk should figure LIBDPSUBDIRS/PROGDPSUBDIRS out automatically by LIBDPLIBS/PROGDPLIBS, but for now we don't have that mechanism -- TBD in subsequent work.) Libraries that we want to install because we use them in binaries we ship, but that we want to keep private from applications so we don't have to worry about ABI breakage or leakage into pkgsrc builds, should generally set: LIBSUBDIR= private # Install into /usr/lib/private. NOCOMPAT= # defined # Don't build compat lib. NOLINKLIB= # defined # Don't install .so link or .a lib. (XXX Maybe we should have a `LIBISPRIVATE= installed' or something for this combination of options, but for now I'm putting in the minimal mechanism to implement this and we can condense a common pattern later.) Programs using the library will also have to set PROGDPSUBDIRS+= private so that they will get the rpath /usr/lib/private. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Install libssh.so in /usr/lib/private. This way it doesn't get exposed to applications accidentally, and we don't need to worry about breaking ABI when updating openssh in base. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib openssh: Do build and install compat libssh after all. Even though it's not exposed for applications to _link_ against, it is used by the dynamically _loadable_ pam_ssh module, which exists as a compat module and therefore needs libssh as a compat library to be installed somewhere. That somewhere will be /usr/lib/${COMPAT_ARCH}/private. Should fix problems like: dependall ===> compat/sparc64/sparc/../../../lib/libpam/modules/pam_ssh nbmake[11]: don't know how to make /home/source/ab/HEAD/src/crypto/external/bsd/openssh/lib/libssh.a. Stop Verified in an amd64 build that the compat i386 pam_ssh.so is linked correctly: (chroot HEAD)# ldd /usr/lib/i386/security/pam_ssh.so.4 /usr/lib/i386/security/pam_ssh.so.4: -lssh.50 => /usr/lib/i386/private/libssh.so.50 -lcrypto.16 => /usr/lib/i386/libcrypto.so.16 -lcrypt.1 => /usr/lib/i386/libcrypt.so.1 -lgcc_s.1 => /usr/lib/i386/libgcc_s.so.1 -lc.12 => /usr/lib/i386/libc.so.12 -lz.1 => /usr/lib/i386/libz.so.1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib wg-keygen(8): Find private libssh.so. Should fix: /usr/sbin/wg-keygen: Shared object "libssh.so.50" not found PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib evbarm/instkernel/sshramdisk: Get libssh out of objdir now. Should fix problems like: --- ramdiskbin.link --- # link sshramdisk/ramdiskbin.link /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: cannot find -lssh: No such file or directory /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/lib/gcc/armv6eb--netbsdelf-eabihf/14.3.0/../../../../armv6eb--netbsdelf-eabihf/bin/ld: have you installed the static version of the ssh library ? collect2: error: ld returned 1 exit status *** Failed target: ramdiskbin.link *** In directory: /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-obj/home/source/ab/HEAD/src/distrib/evbarm/instkernel/sshramdisk *** Failed commands: ${_MKTARGET_LINK} => @echo '# ' " link " sshramdisk/ramdiskbin.link ${_CCLINK.${:Uramdiskbin}} ${_LDFLAGS.${:Uramdiskbin}} ${_LDSTATIC.${:Uramdiskbin}} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} ${_PROGLDOPTS} ${_LDADD.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/armv6eb--netbsdelf-eabihf-gcc --sysroot=/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest -static -o ramdiskbin.link ramdiskbin.o -Wl,-rpath-link,/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/lib -L=/lib -L/home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-dest/usr/lib cat.cro chmod.cro cp.cro dd.cro df.cro ed.cro ln.cro ls.cro mkdir.cro mv.cro pax.cro pwd.cro rm.cro rmdir.cro sh.cro stty.cro sync.cro sleep.cro chown.cro disklabel.cro fdisk.cro fsck.cro fsck_msdos.cro fsck_ffs.cro gpt.cro ifconfig.cro init.cro mknod.cro mount.cro mount_cd9660.cro mount_ext2fs.cro mount_ffs.cro mount_kernfs.cro mount_msdos.cro mount_nfs.cro mount_tmpfs.cro newfs.cro newfs_ext2fs.cro ping.cro reboot.cro restore.cro route.cro shutdown.cro slattach.cro swapctl.cro umount.cro ftp.cro tip.cro gzip.cro less.cro sed.cro tset.cro chroot.cro sshd.cro sysinst.cro progress.cro dhcpcd.cro libhack.o -ledit -lutil -lcurses -lterminfo -lrmt -lcrypt -ll -lm -lz -lprop -lssh -lcrypto -lpthread ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${:Uramdiskbin}} => /home/builds/ab/HEAD/evbarm-earmv6hfeb/20251217070550Z-tools/bin/nbctfmerge -t -g -L VERSION -g -o ramdiskbin.link ramdiskbin.o *** [ramdiskbin.link] Error code 1 PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib distrib/sets/lists/comp: libssh is private for lint too. Might fix: checkflist ===> distrib/sets ====== 1 missing files in DESTDIR ======== Files in flist but missing from DESTDIR. File wasn't installed ? ------------------------------------------ ./usr/libdata/lint/llib-lssh.ln ======== end of 1 missing files ========== PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib PR/58648: Fix MKDEBUG=yes build: 1. if NOLINKLIB is set don't install libfoo_g.a and libfoo_p.a libraries. libfoo.a, libfoo_p.a were not being installed already, just make the testing consistent 2. Move .a libraries from shl.mi to mi where they belong. 3. Make stray libfoo_g.a libraries that were install accidentally before obsolete. rescue/list: Touch for CRUNCHGEN_FLAGS change for libssh. PR lib/58648: private shared libraries should go in /usr/lib/private, not /usr/lib |
| /src/sys/kern/ | |
| vfs_subr.c | 1.425 Thu Sep 01 09:04:08 UTC 2011 christos branches: 1.425.2; Check for v_type before v_rdev because it is cheaper and safer. Thu Sep 01 09:04:08 UTC 2011 christos branches: 1.425.2; Check for v_type before v_rdev because it is cheaper and safer. 1.425.2.3 Thu May 22 11:41:04 UTC 2014 yamt sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") 1.425.2.2 Wed May 23 10:08:12 UTC 2012 yamt sync with head. 1.425.2.1 Tue Apr 17 00:08:31 UTC 2012 yamt sync with head |
| /src/sys/uvm/ | |
| uvm_map.c | 1.425 Thu Aug 15 11:33:21 UTC 2024 riastradh uvm_map(9): Apply the same orig_hint clamp again to the same entry. Previous change dealt with case like length=0x1000 and: [0x7defb000,0x7defc000) entry above orig_hint (entry->next) 0x77895000 orig_hint [0x77894000,0x77895000) entry below orig_hint (entry) by changing entry->next->start - length to MIN(orig_hint, entry->next->start - length) in order to enforce monotonicity of search. In this case, if the tree search for a gap has failed, we retry with a list search with exactly the same orig_hint and entry -- nothing has changed them (only hint and tmp). So apply the same clamping. PR kern/51254: uvm assertion "!topdown || hint <= orig_hint" failed 1.362.2.6 Sat Aug 24 08:24:36 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #804): sys/uvm/uvm_map.c: revision 1.423 (patch) sys/uvm/uvm_map.c: revision 1.425 (patch) uvm_map(9): Make sure search in the nearest gap is monotonic. The algorithm, on a hint clamped to the VM bounds, works as follows (assuming topdown VM): 1. Make sure the hint is aligned, by subtracting the remainderin uvm_map_align_va. 2. If the hint is equal to the VM max, try the first free gap. 3. If the hint is not equal to the VM max, but is already in use, try the next gap _below_ the entry covering hint. 4. If the hint is not equal to the VM max and is not already in use, try gap between the entry below hint and the next entry after it, above hint. In the last case, `entry' is the one below hint, and `entry->next' is the one above it. We would take entry->next->start - length as the next candidate hint. However, this algorithm is supposed to be a monotonic search through the address space, and we might wind up with something like: [0x7defb000,0x7defc000) entry above hint (entry->next) 0x77895000 hint [0x77894000,0x77895000) entry below hint (entry) In this case, if length=0x1000, we would take 0x7defb000 - 0x1000 = 0x7defa000 as the next candidate hint, but this violates monotonicity of the search. Instead, take the _smallest_ of orig_hint or entry->next->start - length, to avoid violating monotonicity, so hint <= orig_hint. I didn't commit this change before because it didn't seem to fix all the manifestations of the problem, but we have more diagnostics now so maybe we will find there is a _different_ violation of the same invariants once this is committed -- and I'm pretty sure this change is necessary to guarantee monotonicity in some cases (but I'm still not sure why we're only hitting the problem on sh3). PR kern/51254: uvm assertion "!topdown || hint <= orig_hint" failed uvm_map(9): Apply the same orig_hint clamp again to the same entry. Previous change dealt with case like length=0x1000 and: [0x7defb000,0x7defc000) entry above orig_hint (entry->next) 0x77895000 orig_hint [0x77894000,0x77895000) entry below orig_hint (entry) by changing entry->next->start - length to MIN(orig_hint, entry->next->start - length) in order to enforce monotonicity of search. In this case, if the tree search for a gap has failed, we retry with a list search with exactly the same orig_hint and entry -- nothing has changed them (only hint and tmp). So apply the same clamping. PR kern/51254: uvm assertion "!topdown || hint <= orig_hint" failed 1.403.2.3 Sat Aug 24 08:22:16 UTC 2024 martin Pull up following revision(s) (requested by riastradh in ticket #804): sys/uvm/uvm_map.c: revision 1.423 sys/uvm/uvm_map.c: revision 1.425 uvm_map(9): Make sure search in the nearest gap is monotonic. The algorithm, on a hint clamped to the VM bounds, works as follows (assuming topdown VM): 1. Make sure the hint is aligned, by subtracting the remainderin uvm_map_align_va. 2. If the hint is equal to the VM max, try the first free gap. 3. If the hint is not equal to the VM max, but is already in use, try the next gap _below_ the entry covering hint. 4. If the hint is not equal to the VM max and is not already in use, try gap between the entry below hint and the next entry after it, above hint. In the last case, `entry' is the one below hint, and `entry->next' is the one above it. We would take entry->next->start - length as the next candidate hint. However, this algorithm is supposed to be a monotonic search through the address space, and we might wind up with something like: [0x7defb000,0x7defc000) entry above hint (entry->next) 0x77895000 hint [0x77894000,0x77895000) entry below hint (entry) In this case, if length=0x1000, we would take 0x7defb000 - 0x1000 = 0x7defa000 as the next candidate hint, but this violates monotonicity of the search. Instead, take the _smallest_ of orig_hint or entry->next->start - length, to avoid violating monotonicity, so hint <= orig_hint. I didn't commit this change before because it didn't seem to fix all the manifestations of the problem, but we have more diagnostics now so maybe we will find there is a _different_ violation of the same invariants once this is committed -- and I'm pretty sure this change is necessary to guarantee monotonicity in some cases (but I'm still not sure why we're only hitting the problem on sh3). PR kern/51254: uvm assertion "!topdown || hint <= orig_hint" failed uvm_map(9): Apply the same orig_hint clamp again to the same entry. Previous change dealt with case like length=0x1000 and: [0x7defb000,0x7defc000) entry above orig_hint (entry->next) 0x77895000 orig_hint [0x77894000,0x77895000) entry below orig_hint (entry) by changing entry->next->start - length to MIN(orig_hint, entry->next->start - length) in order to enforce monotonicity of search. In this case, if the tree search for a gap has failed, we retry with a list search with exactly the same orig_hint and entry -- nothing has changed them (only hint and tmp). So apply the same clamping. PR kern/51254: uvm assertion "!topdown || hint <= orig_hint" failed |