Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jul 2019 11:47:00 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 239493] signal SIGABRT in .__sys_thr_kill () from /lib/libc.so.7 on r350103 ppc64
Message-ID:  <bug-239493-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D239493

            Bug ID: 239493
           Summary: signal SIGABRT in .__sys_thr_kill () from
                    /lib/libc.so.7 on r350103 ppc64
           Product: Base System
           Version: CURRENT
          Hardware: powerpc
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: dclarke@blastwave.org

This is entirely repeatable :=20

hydra$ cat foo.c=20

#if ! defined (__cplusplus)
#include <stdlib.h>

void lshift_com (rp, up, n, cnt)
  unsigned long *rp;
  unsigned long *up;
  long n;
  unsigned cnt;
{
  unsigned long high_limb, low_limb;
  unsigned tnc;
  long i;
  up +=3D n;
  rp +=3D n;
  tnc =3D 8 * sizeof (unsigned long) - cnt;
  low_limb =3D *--up;
  high_limb =3D low_limb << cnt;
  for (i =3D n - 1; i !=3D 0; i--)
    {
      low_limb =3D *--up;
      *--rp =3D ~(high_limb | (low_limb >> tnc));
      high_limb =3D low_limb << cnt;
    }
  *--rp =3D ~high_limb;
}

int main () {
  unsigned long *r, *r2;
  unsigned long a[88 + 1];
  long i;
  for (i =3D 0; i < 88 + 1; i++)
    a[i] =3D ~0L;
  r =3D malloc (10000 * sizeof (unsigned long));
  r2 =3D r;
  for (i =3D 0; i < 528; i +=3D 23)
    {
      lshift_com (r2, a,
                  i / (8 * sizeof (unsigned long)) + 1,
                  i % (8 * sizeof (unsigned long)));
      r2 +=3D 88 + 1;
    }
  if (r[2048] !=3D 0 || r[2049] !=3D 0 || r[2050] !=3D 0 || r[2051] !=3D 0 =
||
      r[2052] !=3D 0 || r[2053] !=3D 0 || r[2054] !=3D 0)
    abort ();
  free (r);
  return 0;
}

#else

int main () {
  return 0;
}

#endif

hydra$=20


hydra$ uname -apKU
FreeBSD hydra 13.0-CURRENT FreeBSD 13.0-CURRENT r350103 GENERIC  powerpc
powerpc64 1300036 1300036
hydra$=20

hydra$=20
hydra$ $CC $CFLAGS -o foo foo.c=20
hydra$=20

hydra$=20
hydra$ date -u=20
Sun Jul 28 11:44:29 UTC 2019
hydra$=20

hydra$ gdb ./foo
GNU gdb (GDB) 8.3 [GDB v8.3 for FreeBSD]
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.htm=
l>
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 "powerpc64-portbld-freebsd13.0".
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 ./foo...
warning: File
"/opt/bw/build/gmp-6.1.2_FreeBSD_13.0-CURRENT_r350103_ppc64.001/.gdbinit"
auto-loading has been declined by your `auto-load safe-path' set to
"$debugdir:$datadir/auto-load".
To enable execution of this file add
        add-auto-load-safe-path
/opt/bw/build/gmp-6.1.2_FreeBSD_13.0-CURRENT_r350103_ppc64.001/.gdbinit
line to your configuration file "/home/dclarke/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/home/dclarke/.gdbinit".
--Type <RET> for more, q to quit, c to continue without paging--c
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the she=
ll:
        info "(gdb)Auto-loading safe path"
(gdb) run
Starting program:
/opt/bw/build/gmp-6.1.2_FreeBSD_13.0-CURRENT_r350103_ppc64.001/foo=20

Program received signal SIGABRT, Aborted.
0x000000081026b898 in .__sys_thr_kill () from /lib/libc.so.7
(gdb) bt
#0  0x000000081026b898 in .__sys_thr_kill () from /lib/libc.so.7
#1  0x000000081026af3c in .__raise () from /lib/libc.so.7
#2  0x00000008101cf41c in abort () from /lib/libc.so.7
#3  0x0000000010000cb4 in main () at foo.c:51
(gdb) quit
A debugging session is active.

        Inferior 1 [process 3386] will be killed.

Quit anyway? (y or n) y
hydra$=20


Runs fine on my release x86_64 boxen.

hydra$=20
hydra$ ./foo
Abort trap (core dumped)
hydra$ echo $?
134
hydra$=20
hydra$ ls -l foo.core
-rw-------  1 dclarke  devl  10264576 Jul 28 11:45 foo.core
hydra$=20


--=20
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken
GreyBeard and suspenders optional

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-239493-227>