Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Anyone feel like fixing pkgsrc/emulators/tme ?



I wrote:
> The attached blind patch seems to work around on NetBSD/i386 9.2.

But still fails on NetBSD/amd64 9.2.

The debug build says:
---
% tmesh SUN4-75
assertion "extend >= TME_RECODE_SIZE_8 && extend < ic->tme_recode_ic_reg_size" failed: file "./host/x86/rc-x86-insns.c", line 341, function "_tme_recode_x86_insn_ext"
Abort (core dumped)
%
---

gdb says:
---
% gdb /s/obj.x86_64/pkgsrc/emulators/tme/work.x86_64/tme-0.8/tmesh/.libs/tmesh
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64--netbsd".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /s/obj.x86_64/pkgsrc/emulators/tme/work.x86_64/tme-0.8/tmesh/.libs/tmesh...
(gdb) run SUN4-75
Starting program: /s/obj.x86_64/pkgsrc/emulators/tme/work.x86_64/tme-0.8/tmesh/.libs/tmesh SUN4-75
assertion "extend >= TME_RECODE_SIZE_8 && extend < ic->tme_recode_ic_reg_size" failed: file "./host/x86/rc-x86-insns.c", line 341, function "_tme_recode_x86_insn_ext"

Program received signal SIGABRT, Aborted.
0x000076c0bcf679aa in _lwp_kill () from /usr/lib/libc.so.12
(gdb) bt
#0  0x000076c0bcf679aa in _lwp_kill () from /usr/lib/libc.so.12
#1  0x000076c0bcf6725a in abort () at /usr/src/lib/libc/stdlib/abort.c:74
#2  0x000076c0bcea8507 in __assert13 (file=<optimized out>,
    line=<optimized out>, function=<optimized out>, failedexpr=<optimized out>)
    at /usr/src/lib/libc/gen/assert.c:72
#3  0x000076c0c6c0e54e in _tme_recode_x86_insn_ext (ic=0x76c0c727b000,
    insn=0x7f7fffb09330) at ./host/x86/rc-x86-insns.c:340
#4  0x000076c0c6c120d7 in _tme_recode_x86_tlb_busy (ic=0x76c0c727b000,
    address_type=0x7f7fffb09454, x86_tlb_type=0x7f7fffb093b0)
    at ./host/x86/rc-x86-tlb.c:198
#5  0x000076c0c6c143e1 in _tme_recode_x86_chain_subs (ic=0x76c0c727b000,
    chain=0x7f7fffb09450, chain_thunk=0x76c0c735b240,
    chain_info_call_or_return=16) at ./host/x86/rc-x86-chain.c:787
#6  0x000076c0c6c15271 in tme_recode_chain_thunk (ic=0x76c0c727b000,
    chain=0x7f7fffb09450) at ./host/x86/rc-x86-chain.c:1645
#7  0x000076c0b942dd9c in _tme_sparc32_recode_chain_init (ic=0x76c0c6ebf280)
    at sparc-rc-chain.c:511
#8  0x000076c0b943481a in tme_sparc_recode_init (ic=0x76c0c6ebf280)
    at sparc-recode.c:998
#9  0x000076c0b942359f in tme_sparc_new (ic=0x76c0c6ebf280,
    args=0x76c0c735b1c0, extra=0x0, _output=0x7f7fffb09718) at sparc-misc.c:855
#10 0x000076c0b943d084 in tme_ic_sparc_LTX_cy7c601_new (
    element=0x76c0c73533c8, args=0x76c0c735b1c0, extra=0x0,
    _output=0x7f7fffb09718) at cy7c601.c:259
--Type <RET> for more, q to quit, c to continue without paging--
#11 0x000076c0c6c1638b in tme_element_new (element=0x76c0c73533c8,
    args=0x76c0c735b1c0, extra=0x0, _output=0x7f7fffb09718) at element.c:188
#12 0x000076c0c7005890 in _tmesh_command_connect (tmesh=0x76c0c7343000,
    value=0x7f7fffb09690, _output=0x7f7fffb09718) at tmesh-cmds.c:587
#13 0x000076c0c7005ffd in tmesh_eval (_tmesh=0x76c0c7343000,
    _output=0x7f7fffb09718, _yield=0x7f7fffb09704) at tmesh-cmds.c:899
#14 0x00000000004026a5 in main (argc=2, argv=0x7f7fffb097d8) at tmesh.c:631
(gdb)
---

So it looks disabling "x86" on x86_64 (as kludge) seems to work around:
---
$NetBSD: patch-configure,v 1.1 2020/08/13 05:59:52 tsutsui Exp $

- Fix wrong comparison.

--- configure.orig	2010-06-05 19:57:30.000000000 +0000
+++ configure
@@ -12948,7 +12948,7 @@ echo $ECHO_N "checking for target recode
 
     # get the host recode parts:
     case "${target}" in
-    i[3456789]86-*-netbsd* | x86_64-*-netbsd* | i[3456789]86-*-linux*)
+    i[3456789]86-*-netbsd* | i[3456789]86-*-linux*)
 	recode_hosts="mmap x86"
 	;;
     *) recode_hosts= ;;
@@ -12980,12 +12980,12 @@ fi
 { echo "$as_me:$LINENO: checking for target miscellaneous support" >&5
 echo $ECHO_N "checking for target miscellaneous support... $ECHO_C" >&6; }
 case "${target}" in
-i[3456789]86-* | x86_64-*) misc_hosts="x86" ;;
+i[3456789]86-*) misc_hosts="x86" ;;
 *) misc_hosts=no ;;
 esac
 { echo "$as_me:$LINENO: result: ${misc_hosts}" >&5
 echo "${ECHO_T}${misc_hosts}" >&6; }
-if test "x${misc_hosts}" = no; then
+if test "x${misc_hosts}" = xno; then
     misc_hosts=
 fi
 


---
Izumi Tsutsui
 


Home | Main Index | Thread Index | Old Index