Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context. (some low level failure info now)

2021-10-21 Thread Mark Millard via freebsd-current
On 2021-Oct-21, at 16:24, Mark Millard  wrote:

> On 2021-Oct-21, at 11:53, Mark Millard  wrote:
> 
>> On 2021-Oct-21, at 08:27, Tomoaki AOKI  wrote:
>> 
>>> On Thu, 21 Oct 2021 07:40:36 -0700
>>> Mark Millard via freebsd-current  wrote:
>>> 
 
 
 On 2021-Oct-21, at 06:14, Gary Jennejohn  wrote:
 
> On Thu, 21 Oct 2021 01:34:47 -0700
> Mark Millard via freebsd-current  wrote:
> 
>> I get the following crash (amd64 example shown), as reported
>> via gdb afterwards. (devel/llvm13 is just an example context.)
>> 
>> gdb `which dialog4ports` devel/llvm13/dialog4ports.core
>> . . .
>> Core was generated by `/usr/local/bin/dialog4ports'.
>> Program terminated with signal SIGSEGV, Segmentation fault.
>> Address not mapped to object.
>> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 
>> <__xlocale_global_locale>, fmt0=0x201f64 "\"%s\"", 
>> ap=ap@entry=0x7fffcf00) at 
>> /usr/main-src/lib/libc/stdio/vfprintf.c:281
>> 281  if ((fp->_flags & (__SNBF|__SWR|__SRW)) == 
>> (__SNBF|__SWR) &&
>> (gdb) bt
>> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 
>> <__xlocale_global_locale>, fmt0=0x201f64 "\"%s\"", 
>> ap=ap@entry=0x7fffcf00) at 
>> /usr/main-src/lib/libc/stdio/vfprintf.c:281
>> #1  0x000800409283 in fprintf (fp=0x800411660 
>> <__stdio_cancel_cleanup>, fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
>> /usr/main-src/lib/libc/stdio/fprintf.c:57
>> #2  0x0020399d in main (argc=, argv=> out>) at dialog4ports.c:332
>> (gdb) quit
>> 
>> The crash happens after selecting OK but not after selecting Cancel. The
>> display is also odd before that (no line drawing, just odd text instead),
>> but is sufficient to be usable at that stage.
>> 
>> . . .
 
> 
> gdb's disass/s reports the failure point via:
> 
> . . .
> /usr/main-src/lib/libc/stdio/vfprintf.c:
> 279   FLOCKFILE_CANCELSAFE(fp);
>   0x000800412357 <+71>:   mov0xbf082(%rip),%rax# 0x8004d13e0
>   0x00080041235e <+78>:   cmpl   $0x0,(%rax)
>   0x000800412361 <+81>:   je 0x800412370 
>   0x000800412363 <+83>:   mov%rbx,%rdi
>   0x000800412366 <+86>:   call   0x8004c6730 <_flockfile@plt>
>   0x00080041236b <+91>:   mov%rbx,%rsi
>   0x00080041236e <+94>:   jmp0x800412372 
>   0x000800412370 <+96>:   xor%esi,%esi
>   0x000800412372 <+98>:   lea-0xd19(%rip),%rdi# 0x800411660 
> <__stdio_cancel_cleanup>
>   0x000800412379 <+105>:  lea-0x70(%rbp),%rdx
>   0x00080041237d <+109>:  call   0x800384a90 
> <__pthread_cleanup_push_imp_int>
> 
> 280   /* optimise fprintf(stderr) (and other unbuffered Unix files) */
> 281   if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
> => 0x000800412382 <+114>: movzwl 0x10(%rbx),%eax
>   0x000800412386 <+118>:  and$0x1a,%eax
>   0x000800412389 <+121>:  cmp$0xa,%ax
>   0x00080041238d <+125>:  jne0x8004123a9 
> 
> 282   fp->_file >= 0)
>   0x00080041238f <+127>:  cmpw   $0x0,0x12(%rbx)
> 
> 281   if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
>   0x000800412394 <+132>:  js 0x8004123a9 
> . . .
> 
> (gdb) info reg
> rax0x0 0
> rbx0x4d49405065024
> rcx0x7fffd0e0  140737488343264
> rdx0x7fffcfb0  140737488342960
> rsi0x0 0
> rdi0x800411660 34364003936
> rbp0x7fffd020  0x7fffd020
> rsp0x7fffcfb0  0x7fffcfb0
> r8 0x0 0
> r9 0x0 0
> r100x800a330f0 34370433264
> r110x206   518
> r120x8004d4128 34364801320
> r130x2083a02130848
> r140x7fffd0e0  140737488343264
> r150x201f642105188
> rip0x800412382 0x800412382 
> eflags 0x10246 [ PF ZF IF RF ]
> cs 0x4367
> ss 0x3b59
> ds 
> es 
> fs 
> gs 
> fs_base
> gs_base
> 
> where:
> 
> (gdb) disass/s __pthread_cleanup_push_imp_int
> Dump of assembler code for function __pthread_cleanup_push_imp_int:
> /usr/main-src/lib/libc/gen/_pthread_stubs.c:
> 289   STUB_FUNC3(__pthread_cleanup_push_imp, PJT_CLEANUP_PUSH_IMP, void, void 
> *,
>   0x000800384a90 <+0>:push   %rbp
>   0x000800384a91 <+1>:mov%rsp,%rbp
>   0x000800384a94 <+4>:mov0x14c94d(%rip),%rax# 0x8004d13e8
>   0x000800384a9b <+11>:   mov0x3c8(%rax),%rax
>   0x000800384aa2 <+18>:   pop%rbp
>   0x000800384aa3 <+19>:   jmp*%rax
> End of assembler dump.
> 
> 
> It is not obvious that any of

Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Mark Millard via freebsd-current
On 2021-Oct-21, at 11:53, Mark Millard  wrote:

> On 2021-Oct-21, at 08:27, Tomoaki AOKI  wrote:
> 
>> On Thu, 21 Oct 2021 07:40:36 -0700
>> Mark Millard via freebsd-current  wrote:
>> 
>>> 
>>> 
>>> On 2021-Oct-21, at 06:14, Gary Jennejohn  wrote:
>>> 
 On Thu, 21 Oct 2021 01:34:47 -0700
 Mark Millard via freebsd-current  wrote:
 
> I get the following crash (amd64 example shown), as reported
> via gdb afterwards. (devel/llvm13 is just an example context.)
> 
> gdb `which dialog4ports` devel/llvm13/dialog4ports.core
> . . .
> Core was generated by `/usr/local/bin/dialog4ports'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> Address not mapped to object.
> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 
> <__xlocale_global_locale>, fmt0=0x201f64 "\"%s\"", 
> ap=ap@entry=0x7fffcf00) at /usr/main-src/lib/libc/stdio/vfprintf.c:281
> 281   if ((fp->_flags & (__SNBF|__SWR|__SRW)) == 
> (__SNBF|__SWR) &&
> (gdb) bt
> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 
> <__xlocale_global_locale>, fmt0=0x201f64 "\"%s\"", 
> ap=ap@entry=0x7fffcf00) at /usr/main-src/lib/libc/stdio/vfprintf.c:281
> #1  0x000800409283 in fprintf (fp=0x800411660 
> <__stdio_cancel_cleanup>, fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
> /usr/main-src/lib/libc/stdio/fprintf.c:57
> #2  0x0020399d in main (argc=, argv= out>) at dialog4ports.c:332
> (gdb) quit
> 
> The crash happens after selecting OK but not after selecting Cancel. The
> display is also odd before that (no line drawing, just odd text instead),
> but is sufficient to be usable at that stage.
> 
> . . .
>>> 

gdb's disass/s reports the failure point via:

. . .
/usr/main-src/lib/libc/stdio/vfprintf.c:
279 FLOCKFILE_CANCELSAFE(fp);
   0x000800412357 <+71>:mov0xbf082(%rip),%rax# 0x8004d13e0
   0x00080041235e <+78>:cmpl   $0x0,(%rax)
   0x000800412361 <+81>:je 0x800412370 
   0x000800412363 <+83>:mov%rbx,%rdi
   0x000800412366 <+86>:call   0x8004c6730 <_flockfile@plt>
   0x00080041236b <+91>:mov%rbx,%rsi
   0x00080041236e <+94>:jmp0x800412372 
   0x000800412370 <+96>:xor%esi,%esi
   0x000800412372 <+98>:lea-0xd19(%rip),%rdi# 0x800411660 
<__stdio_cancel_cleanup>
   0x000800412379 <+105>:   lea-0x70(%rbp),%rdx
   0x00080041237d <+109>:   call   0x800384a90 
<__pthread_cleanup_push_imp_int>

280 /* optimise fprintf(stderr) (and other unbuffered Unix files) */
281 if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
=> 0x000800412382 <+114>:   movzwl 0x10(%rbx),%eax
   0x000800412386 <+118>:   and$0x1a,%eax
   0x000800412389 <+121>:   cmp$0xa,%ax
   0x00080041238d <+125>:   jne0x8004123a9 

282 fp->_file >= 0)
   0x00080041238f <+127>:   cmpw   $0x0,0x12(%rbx)

281 if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
   0x000800412394 <+132>:   js 0x8004123a9 
. . .

(gdb) info reg
rax0x0 0
rbx0x4d49405065024
rcx0x7fffd0e0  140737488343264
rdx0x7fffcfb0  140737488342960
rsi0x0 0
rdi0x800411660 34364003936
rbp0x7fffd020  0x7fffd020
rsp0x7fffcfb0  0x7fffcfb0
r8 0x0 0
r9 0x0 0
r100x800a330f0 34370433264
r110x206   518
r120x8004d4128 34364801320
r130x2083a02130848
r140x7fffd0e0  140737488343264
r150x201f642105188
rip0x800412382 0x800412382 
eflags 0x10246 [ PF ZF IF RF ]
cs 0x4367
ss 0x3b59
ds 
es 
fs 
gs 
fs_base
gs_base

where:

(gdb) disass/s __pthread_cleanup_push_imp_int
Dump of assembler code for function __pthread_cleanup_push_imp_int:
/usr/main-src/lib/libc/gen/_pthread_stubs.c:
289 STUB_FUNC3(__pthread_cleanup_push_imp, PJT_CLEANUP_PUSH_IMP, void, void 
*,
   0x000800384a90 <+0>: push   %rbp
   0x000800384a91 <+1>: mov%rsp,%rbp
   0x000800384a94 <+4>: mov0x14c94d(%rip),%rax# 0x8004d13e8
   0x000800384a9b <+11>:mov0x3c8(%rax),%rax
   0x000800384aa2 <+18>:pop%rbp
   0x000800384aa3 <+19>:jmp*%rax
End of assembler dump.


It is not obvious that any of this has any relationship with
libtinfow.so.9 or libncursesw.so.9 use unless some memory is
being trashed first.

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Mark Millard via freebsd-current



On 2021-Oct-21, at 08:27, Tomoaki AOKI  wrote:

> On Thu, 21 Oct 2021 07:40:36 -0700
> Mark Millard via freebsd-current  wrote:
> 
>> 
>> 
>> On 2021-Oct-21, at 06:14, Gary Jennejohn  wrote:
>> 
>>> On Thu, 21 Oct 2021 01:34:47 -0700
>>> Mark Millard via freebsd-current  wrote:
>>> 
 I get the following crash (amd64 example shown), as reported
 via gdb afterwards. (devel/llvm13 is just an example context.)
 
 gdb `which dialog4ports` devel/llvm13/dialog4ports.core
 . . .
 Core was generated by `/usr/local/bin/dialog4ports'.
 Program terminated with signal SIGSEGV, Segmentation fault.
 Address not mapped to object.
 #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
 fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
 /usr/main-src/lib/libc/stdio/vfprintf.c:281
 281if ((fp->_flags & (__SNBF|__SWR|__SRW)) == 
 (__SNBF|__SWR) &&
 (gdb) bt
 #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
 fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
 /usr/main-src/lib/libc/stdio/vfprintf.c:281
 #1  0x000800409283 in fprintf (fp=0x800411660 
 <__stdio_cancel_cleanup>, fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
 /usr/main-src/lib/libc/stdio/fprintf.c:57
 #2  0x0020399d in main (argc=, argv=>>> out>) at dialog4ports.c:332
 (gdb) quit
 
 The crash happens after selecting OK but not after selecting Cancel. The
 display is also odd before that (no line drawing, just odd text instead),
 but is sufficient to be usable at that stage.
 
>>> 
>>> This is an indication that something is missing in dialog4ports which
>>> is required by FBSD-14 but not FBSD-13.  I had a similar problem with
>>> dialog4ports under FBSD-14 some weeks ago, because i had a really old
>>> version installed.  After upgrading it using the pkg repositories for
>>> FBSD-14 all problems, in particular garbled text, disappeared.
>>> 
>>> IIRC there were updates to ncurses in FBSD-14 fairly recently which
>>> would explain the problem with old versions of dialog4ports.
>> 
>> I do (and did) my own port builds with poudriere-devel. See the
>> version of ports below. In summary: my dialog4ports is 
>> based on 4116dc2f of ports (CommitDate: 2021-10-17 21:52:37 +).
>> 
>> However it was deliberately built in/for a releng/13.0 based
>> context then also used under main [so:14].
>> 
>> For ports not requiring kernel vintage matching, newer systems
>> versions generally allow running software built for older FreeBSD
>> systems (going back a fair distance, anyway). dialog4ports does
>> not appear to require kernel vintage matching. I do not install
>> any ports requiring kernel vintage matching.
> 
> IIRC, dialog4ports case wouldn't be a kernel-related.
> For ncurses libraries, main (aka 14-current) fully switched to *w ones
> and deleted non-*w ones. And dialog4ports built with 13 and earlier
> crashed on 14.

So I did a chroot into a bectl mount of my stable/13 13S-amd64-nodbg and
looked:

# ldd `which dialog4ports`
/usr/local/bin/dialog4ports:
libncursesw.so.9 => /lib/libncursesw.so.9 (0x800248000)
libm.so.5 => /lib/libm.so.5 (0x8002bc000)
libdialog.so.9 => /usr/lib/libdialog.so.9 (0x8002f3000)
libc.so.7 => /lib/libc.so.7 (0x80032d000)
# ldd /usr/lib/libdialog.so.9
/usr/lib/libdialog.so.9:
libncursesw.so.9 => /lib/libncursesw.so.9 (0x8006a7000)
libm.so.5 => /lib/libm.so.5 (0x80071b000)
libc.so.7 => /lib/libc.so.7 (0x800261000)

This context worked fine for OK selection but note that there
is libncursesw.so.9 use (so: *w in use). The problem is not

libncursesw.so vs. libncurses.so

use. Instead it seems to be the split between:

libncursesw.so.9
and:
libtinfow.so.9

in main [so: 14] that looks to be the difference that matters.
Somehow the binding to libtinfow.so.9 in main is insufficient to
allow full use of the releng/13.0 based dialog4ports build.
(For all I know, this might be expected.)

For reference for the stable/13 test:

# uname -apKU
FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
  amd64 amd64 1400036 1300516

# ~/fbsd-based-on-what-commit.sh 
branch: stable/13
merge-base: 0e5787b1d089310448fdc7b9855f1f0701965d8d
merge-base: CommitDate: 2021-10-09 03:01:17 +
0e5787b1d089 (HEAD -> stable/13, freebsd/stable/13) ti(4): Fix a typo in an 
error message
n247583 (--first-parent --count for merge-base)

The chroot had a mount_null of the same /usr/local/ as was used for the
main [14] activity. (And a mount_null of the same /usr/ports/ that was
in use for the main activity.)

>> 
 I've not had any other of the ports that I built in/for releng/13.0
 (and have used) fail to operate under main [so: under 14]. (But the
 v

Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Tomoaki AOKI
On Thu, 21 Oct 2021 07:40:36 -0700
Mark Millard via freebsd-current  wrote:

> 
> 
> On 2021-Oct-21, at 06:14, Gary Jennejohn  wrote:
> 
> > On Thu, 21 Oct 2021 01:34:47 -0700
> > Mark Millard via freebsd-current  wrote:
> > 
> >> I get the following crash (amd64 example shown), as reported
> >> via gdb afterwards. (devel/llvm13 is just an example context.)
> >> 
> >> gdb `which dialog4ports` devel/llvm13/dialog4ports.core
> >> . . .
> >> Core was generated by `/usr/local/bin/dialog4ports'.
> >> Program terminated with signal SIGSEGV, Segmentation fault.
> >> Address not mapped to object.
> >> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
> >> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
> >> /usr/main-src/lib/libc/stdio/vfprintf.c:281
> >> 281if ((fp->_flags & (__SNBF|__SWR|__SRW)) == 
> >> (__SNBF|__SWR) &&
> >> (gdb) bt
> >> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
> >> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
> >> /usr/main-src/lib/libc/stdio/vfprintf.c:281
> >> #1  0x000800409283 in fprintf (fp=0x800411660 
> >> <__stdio_cancel_cleanup>, fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
> >> /usr/main-src/lib/libc/stdio/fprintf.c:57
> >> #2  0x0020399d in main (argc=, argv= >> out>) at dialog4ports.c:332
> >> (gdb) quit
> >> 
> >> The crash happens after selecting OK but not after selecting Cancel. The
> >> display is also odd before that (no line drawing, just odd text instead),
> >> but is sufficient to be usable at that stage.
> >> 
> > 
> > This is an indication that something is missing in dialog4ports which
> > is required by FBSD-14 but not FBSD-13.  I had a similar problem with
> > dialog4ports under FBSD-14 some weeks ago, because i had a really old
> > version installed.  After upgrading it using the pkg repositories for
> > FBSD-14 all problems, in particular garbled text, disappeared.
> > 
> > IIRC there were updates to ncurses in FBSD-14 fairly recently which
> > would explain the problem with old versions of dialog4ports.
> 
> I do (and did) my own port builds with poudriere-devel. See the
> version of ports below. In summary: my dialog4ports is 
> based on 4116dc2f of ports (CommitDate: 2021-10-17 21:52:37 +).
> 
> However it was deliberately built in/for a releng/13.0 based
> context then also used under main [so:14].
> 
> For ports not requiring kernel vintage matching, newer systems
> versions generally allow running software built for older FreeBSD
> systems (going back a fair distance, anyway). dialog4ports does
> not appear to require kernel vintage matching. I do not install
> any ports requiring kernel vintage matching.

IIRC, dialog4ports case wouldn't be a kernel-related.
For ncurses libraries, main (aka 14-current) fully switched to *w ones
and deleted non-*w ones. And dialog4ports built with 13 and earlier
crashed on 14.


> 
> >> I've not had any other of the ports that I built in/for releng/13.0
> >> (and have used) fail to operate under main [so: under 14]. (But the
> >> variety used is not wide.)
> >> 
> >> For reference . . . 
> >> 
> >> # uname -apKU
> >> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
> >> main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
> >> root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
> >>   amd64 amd64 1400036 1400036
> >> 
> >> (Not a debug build but has debug symbols enabled.)
> >> 
> >> # pwd
> >> /usr/ports
> >> # ~/fbsd-based-on-what-commit.sh 
> >> branch: main
> >> merge-base: 4116dc2f1f6385b42fb668badb6b4c1cbb195f9d
> >> merge-base: CommitDate: 2021-10-17 21:52:37 +
> >> 4116dc2f1f63 (HEAD -> main, freebsd/main, freebsd/HEAD) 
> >> ports-mgmt/poudriere-devel: Update to 3.3.0-1022-g964cf327f
> >> n562472 (--first-parent --count for merge-base)
> 
> The above indicates the vintage of ports that my dialog4ports
> build is based on (in detail): Not all that old at this point.
> 
> >> # file `which dialog4ports`
> >> /usr/local/bin/dialog4ports: ELF 64-bit LSB executable, x86-64, version 1 
> >> (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for 
> >> FreeBSD 13.0 (1300139), FreeBSD-style, with debug_info, not stripped
> >> 
> >> # ldd `which dialog4ports`
> >> /usr/local/bin/dialog4ports:
> >>libncursesw.so.9 => /lib/libncursesw.so.9 (0x800248000)
> >>libm.so.5 => /lib/libm.so.5 (0x800281000)
> >>libdialog.so.9 => /usr/lib/libdialog.so.9 (0x8002b8000)
> >>libc.so.7 => /lib/libc.so.7 (0x8002f6000)
> >>libtinfow.so.9 => /lib/libtinfow.so.9 (0x800703000)
> >> 
> >> Note: The dialog4ports is a non-debug build but with debug symbols,
> >> as is normal for my port builds via poudriere-devel .
> >> 
> >> As for the poudriere-devel build context for the ports:
> >> 
> >> # chroot /usr/obj/DESTDIRs/13_0R-amd64-poud/
> >> # uname -apKU
> >> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
> >> main-n249978-0324

Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Mark Millard via freebsd-current



On 2021-Oct-21, at 06:14, Gary Jennejohn  wrote:

> On Thu, 21 Oct 2021 01:34:47 -0700
> Mark Millard via freebsd-current  wrote:
> 
>> I get the following crash (amd64 example shown), as reported
>> via gdb afterwards. (devel/llvm13 is just an example context.)
>> 
>> gdb `which dialog4ports` devel/llvm13/dialog4ports.core
>> . . .
>> Core was generated by `/usr/local/bin/dialog4ports'.
>> Program terminated with signal SIGSEGV, Segmentation fault.
>> Address not mapped to object.
>> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
>> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
>> /usr/main-src/lib/libc/stdio/vfprintf.c:281
>> 281  if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
>> (gdb) bt
>> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
>> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
>> /usr/main-src/lib/libc/stdio/vfprintf.c:281
>> #1  0x000800409283 in fprintf (fp=0x800411660 <__stdio_cancel_cleanup>, 
>> fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
>> /usr/main-src/lib/libc/stdio/fprintf.c:57
>> #2  0x0020399d in main (argc=, argv=) 
>> at dialog4ports.c:332
>> (gdb) quit
>> 
>> The crash happens after selecting OK but not after selecting Cancel. The
>> display is also odd before that (no line drawing, just odd text instead),
>> but is sufficient to be usable at that stage.
>> 
> 
> This is an indication that something is missing in dialog4ports which
> is required by FBSD-14 but not FBSD-13.  I had a similar problem with
> dialog4ports under FBSD-14 some weeks ago, because i had a really old
> version installed.  After upgrading it using the pkg repositories for
> FBSD-14 all problems, in particular garbled text, disappeared.
> 
> IIRC there were updates to ncurses in FBSD-14 fairly recently which
> would explain the problem with old versions of dialog4ports.

I do (and did) my own port builds with poudriere-devel. See the
version of ports below. In summary: my dialog4ports is 
based on 4116dc2f of ports (CommitDate: 2021-10-17 21:52:37 +).

However it was deliberately built in/for a releng/13.0 based
context then also used under main [so:14].

For ports not requiring kernel vintage matching, newer systems
versions generally allow running software built for older FreeBSD
systems (going back a fair distance, anyway). dialog4ports does
not appear to require kernel vintage matching. I do not install
any ports requiring kernel vintage matching.

>> I've not had any other of the ports that I built in/for releng/13.0
>> (and have used) fail to operate under main [so: under 14]. (But the
>> variety used is not wide.)
>> 
>> For reference . . . 
>> 
>> # uname -apKU
>> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
>> main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
>> root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
>>   amd64 amd64 1400036 1400036
>> 
>> (Not a debug build but has debug symbols enabled.)
>> 
>> # pwd
>> /usr/ports
>> # ~/fbsd-based-on-what-commit.sh 
>> branch: main
>> merge-base: 4116dc2f1f6385b42fb668badb6b4c1cbb195f9d
>> merge-base: CommitDate: 2021-10-17 21:52:37 +
>> 4116dc2f1f63 (HEAD -> main, freebsd/main, freebsd/HEAD) 
>> ports-mgmt/poudriere-devel: Update to 3.3.0-1022-g964cf327f
>> n562472 (--first-parent --count for merge-base)

The above indicates the vintage of ports that my dialog4ports
build is based on (in detail): Not all that old at this point.

>> # file `which dialog4ports`
>> /usr/local/bin/dialog4ports: ELF 64-bit LSB executable, x86-64, version 1 
>> (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 
>> 13.0 (1300139), FreeBSD-style, with debug_info, not stripped
>> 
>> # ldd `which dialog4ports`
>> /usr/local/bin/dialog4ports:
>>  libncursesw.so.9 => /lib/libncursesw.so.9 (0x800248000)
>>  libm.so.5 => /lib/libm.so.5 (0x800281000)
>>  libdialog.so.9 => /usr/lib/libdialog.so.9 (0x8002b8000)
>>  libc.so.7 => /lib/libc.so.7 (0x8002f6000)
>>  libtinfow.so.9 => /lib/libtinfow.so.9 (0x800703000)
>> 
>> Note: The dialog4ports is a non-debug build but with debug symbols,
>> as is normal for my port builds via poudriere-devel .
>> 
>> As for the poudriere-devel build context for the ports:
>> 
>> # chroot /usr/obj/DESTDIRs/13_0R-amd64-poud/
>> # uname -apKU
>> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
>> main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
>> root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
>>   amd64 amd64 1400036 1300139
>> 
>> # cd /usr/13_0R-src/
>> # ~/fbsd-based-on-what-commit.sh 
>> branch: releng/13.0
>> merge-base: 940681634ee17d12225ecd722c07fef1a0bde813
>> merge-base: CommitDate: 2021-08-24 18:23:29 +
>> 940681634ee1 (HEAD -> releng/13.0, freebsd/releng/13.0) Add UPDATING entries 
>> and bump version.
>> n244760 (--first-p

Re: Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Gary Jennejohn
On Thu, 21 Oct 2021 01:34:47 -0700
Mark Millard via freebsd-current  wrote:

> I get the following crash (amd64 example shown), as reported
> via gdb afterwards. (devel/llvm13 is just an example context.)
> 
> gdb `which dialog4ports` devel/llvm13/dialog4ports.core
> . . .
> Core was generated by `/usr/local/bin/dialog4ports'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> Address not mapped to object.
> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
> /usr/main-src/lib/libc/stdio/vfprintf.c:281
> 281   if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
> (gdb) bt
> #0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
> fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
> /usr/main-src/lib/libc/stdio/vfprintf.c:281
> #1  0x000800409283 in fprintf (fp=0x800411660 <__stdio_cancel_cleanup>, 
> fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
> /usr/main-src/lib/libc/stdio/fprintf.c:57
> #2  0x0020399d in main (argc=, argv=) 
> at dialog4ports.c:332
> (gdb) quit
> 
> The crash happens after selecting OK but not after selecting Cancel. The
> display is also odd before that (no line drawing, just odd text instead),
> but is sufficient to be usable at that stage.
> 

This is an indication that something is missing in dialog4ports which
is required by FBSD-14 but not FBSD-13.  I had a similar problem with
dialog4ports under FBSD-14 some weeks ago, because i had a really old
version installed.  After upgrading it using the pkg repositories for
FBSD-14 all problems, in particular garbled text, disappeared.

IIRC there were updates to ncurses in FBSD-14 fairly recently which
would explain the problem with old versions of dialog4ports.

> I've not had any other of the ports that I built in/for releng/13.0
> (and have used) fail to operate under main [so: under 14]. (But the
> variety used is not wide.)
> 
> For reference . . . 
> 
> # uname -apKU
> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
> main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
> root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
>   amd64 amd64 1400036 1400036
> 
> (Not a debug build but has debug symbols enabled.)
> 
> # pwd
> /usr/ports
> # ~/fbsd-based-on-what-commit.sh 
> branch: main
> merge-base: 4116dc2f1f6385b42fb668badb6b4c1cbb195f9d
> merge-base: CommitDate: 2021-10-17 21:52:37 +
> 4116dc2f1f63 (HEAD -> main, freebsd/main, freebsd/HEAD) 
> ports-mgmt/poudriere-devel: Update to 3.3.0-1022-g964cf327f
> n562472 (--first-parent --count for merge-base)
> 
> # file `which dialog4ports`
> /usr/local/bin/dialog4ports: ELF 64-bit LSB executable, x86-64, version 1 
> (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 
> 13.0 (1300139), FreeBSD-style, with debug_info, not stripped
> 
> # ldd `which dialog4ports`
> /usr/local/bin/dialog4ports:
>   libncursesw.so.9 => /lib/libncursesw.so.9 (0x800248000)
>   libm.so.5 => /lib/libm.so.5 (0x800281000)
>   libdialog.so.9 => /usr/lib/libdialog.so.9 (0x8002b8000)
>   libc.so.7 => /lib/libc.so.7 (0x8002f6000)
>   libtinfow.so.9 => /lib/libtinfow.so.9 (0x800703000)
> 
> Note: The dialog4ports is a non-debug build but with debug symbols,
> as is normal for my port builds via poudriere-devel .
> 
> As for the poudriere-devel build context for the ports:
> 
> # chroot /usr/obj/DESTDIRs/13_0R-amd64-poud/
> # uname -apKU
> FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
> main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
> root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
>   amd64 amd64 1400036 1300139
> 
> # cd /usr/13_0R-src/
> # ~/fbsd-based-on-what-commit.sh 
> branch: releng/13.0
> merge-base: 940681634ee17d12225ecd722c07fef1a0bde813
> merge-base: CommitDate: 2021-08-24 18:23:29 +
> 940681634ee1 (HEAD -> releng/13.0, freebsd/releng/13.0) Add UPDATING entries 
> and bump version.
> n244760 (--first-parent --count for merge-base)
> 
> 
> 
> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)
> 
> 


-- 
Gary Jennejohn



Is dialog4ports built in/for releng/13.0 also supposed to work under main [so: 14]? It gets SIGSEGV in my context.

2021-10-21 Thread Mark Millard via freebsd-current
I get the following crash (amd64 example shown), as reported
via gdb afterwards. (devel/llvm13 is just an example context.)

gdb `which dialog4ports` devel/llvm13/dialog4ports.core
. . .
Core was generated by `/usr/local/bin/dialog4ports'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
/usr/main-src/lib/libc/stdio/vfprintf.c:281
281 if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
(gdb) bt
#0  vfprintf_l (fp=0x4d4940, locale=0x8004d4128 <__xlocale_global_locale>, 
fmt0=0x201f64 "\"%s\"", ap=ap@entry=0x7fffcf00) at 
/usr/main-src/lib/libc/stdio/vfprintf.c:281
#1  0x000800409283 in fprintf (fp=0x800411660 <__stdio_cancel_cleanup>, 
fmt=0x7fffcdd0 "0\317\377\377\377\177") at 
/usr/main-src/lib/libc/stdio/fprintf.c:57
#2  0x0020399d in main (argc=, argv=) at 
dialog4ports.c:332
(gdb) quit

The crash happens after selecting OK but not after selecting Cancel. The
display is also odd before that (no line drawing, just odd text instead),
but is sufficient to be usable at that stage.

I've not had any other of the ports that I built in/for releng/13.0
(and have used) fail to operate under main [so: under 14]. (But the
variety used is not wide.)

For reference . . . 

# uname -apKU
FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
  amd64 amd64 1400036 1400036

(Not a debug build but has debug symbols enabled.)

# pwd
/usr/ports
# ~/fbsd-based-on-what-commit.sh 
branch: main
merge-base: 4116dc2f1f6385b42fb668badb6b4c1cbb195f9d
merge-base: CommitDate: 2021-10-17 21:52:37 +
4116dc2f1f63 (HEAD -> main, freebsd/main, freebsd/HEAD) 
ports-mgmt/poudriere-devel: Update to 3.3.0-1022-g964cf327f
n562472 (--first-parent --count for merge-base)

# file `which dialog4ports`
/usr/local/bin/dialog4ports: ELF 64-bit LSB executable, x86-64, version 1 
(FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 
13.0 (1300139), FreeBSD-style, with debug_info, not stripped

# ldd `which dialog4ports`
/usr/local/bin/dialog4ports:
libncursesw.so.9 => /lib/libncursesw.so.9 (0x800248000)
libm.so.5 => /lib/libm.so.5 (0x800281000)
libdialog.so.9 => /usr/lib/libdialog.so.9 (0x8002b8000)
libc.so.7 => /lib/libc.so.7 (0x8002f6000)
libtinfow.so.9 => /lib/libtinfow.so.9 (0x800703000)

Note: The dialog4ports is a non-debug build but with debug symbols,
as is normal for my port builds via poudriere-devel .

As for the poudriere-devel build context for the ports:

# chroot /usr/obj/DESTDIRs/13_0R-amd64-poud/
# uname -apKU
FreeBSD amd64_ZFS 14.0-CURRENT FreeBSD 14.0-CURRENT #3 
main-n249978-032448cd2c52-dirty: Fri Oct  8 23:57:23 PDT 2021 
root@amd64_ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64.amd64/sys/GENERIC-NODBG
  amd64 amd64 1400036 1300139

# cd /usr/13_0R-src/
# ~/fbsd-based-on-what-commit.sh 
branch: releng/13.0
merge-base: 940681634ee17d12225ecd722c07fef1a0bde813
merge-base: CommitDate: 2021-08-24 18:23:29 +
940681634ee1 (HEAD -> releng/13.0, freebsd/releng/13.0) Add UPDATING entries 
and bump version.
n244760 (--first-parent --count for merge-base)



===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)