Reminder: Removal of WITHOUT_ARM_EABI
Andrew Turner
andrew at fubar.geek.nz
Sat Sep 7 14:12:08 UTC 2013
On Thu, 05 Sep 2013 21:15:58 -0600
Ian Lepore <ian at FreeBSD.org> wrote:
> On Thu, 2013-09-05 at 12:59 +0200, Ronald Klop wrote:
> > On Fri, 30 Aug 2013 14:04:52 +0200, Ronald Klop
> > <ronald-freebsd8 at klop.yi.org> wrote:
> >
> > >
> > > Oh wow, for some lucky reason I add rc_info="YES" to rc.conf and
> > > when I rebooted it did an fsck of all filesystems and it booted
> > > into multiuser. I am now logged in and see the same as Ian. Top
> > > does not work. Df hangs. Etc.
> > > I see I don't have debugging symbols compiled in the userland so
> > > I need to rebuild to make gdb happy.
> > >
> > > Ronald.
> >
> > I have some new data. I compiled world with debug symbols and
> > succeeded to boot correctly again (it works if fsck needs to kick
> > in). root@:~ # gdb ps
> > GNU gdb 6.1.1 [FreeBSD]
> > Copyright 2004 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License,
> > and you are
> > welcome to change it and/or distribute copies of it under certain
> > conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show warranty" for
> > details. This GDB was configured as "arm-marcel-freebsd"...
> > (gdb) run axu
> > Starting program: /bin/ps axu
> >
> >
> > ^C
> > Program received signal SIGINT, Interrupt.
> > 0x201cc108 in __mult_D2A (a=<value optimized out>, b=<value
> > optimized out>)
> > at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:311
> > 311 /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c: No such
> > file or director y.
> > in /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c Current
> > language: auto; currently minimal (gdb) bt
> > #0 0x201cc108 in __mult_D2A (a=<value optimized out>, b=<value
> > optimized
> > out>)
> > at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:311
> > #1 0x201cc2d8 in __pow5mult_D2A (b=<value optimized out>,
> > k=<value optimized out>)
> > at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_misc.c:409
> > #2 0x201c2b68 in __dtoa (d0=<value optimized out>,
> > mode=<value optimized out>, ndigits=1, sign=<value optimized
> > out>, rve=<value optimized out>)
> > at /usr/obj/arm.arm/usr/src/lib/libc/gdtoa_dtoa.c:533
> > #3 0x201b8c70 in __vfprintf (fp=0xbfffe238, locale=0x201ec620,
> > fmt0=0xeec8 "%.1f", ap={__ap = 0xbfffe378})
> > at /usr/src/lib/libc/stdio/vfprintf.c:713
> > #4 0x2015a064 in vasprintf_l (str=0xbfffe378, locale=0x201ec620,
> > fmt=0xeec8 "%.1f") at /usr/src/lib/libc/stdio/vasprintf.c:59
> > #5 0x2015a130 in vasprintf (str=0xbfffe378, fmt=0xeec8 "%.1f")
> > at /usr/src/lib/libc/stdio/vasprintf.c:73
> > #6 0x20158748 in asprintf (s=<value optimized out>,
> > fmt=0x20a26338
> > "ºRXºÃè\037\227ã\231aõZu\020ïé\031ýË\220\001ùêÆÛ©iM\001¼µîJͱ
> > ÏÆéÓ.Ð\017$)öä\005ãeZX±.Z&\004 \005×\005")
> > at /usr/src/lib/libc/stdio/asprintf.c:52
> > #7 0x0000b924 in pmem (k=<value optimized out>, ve=<value
> > optimized out>) at /usr/src/bin/ps/print.c:669
> > #8 0x0000d014 in $a () at /usr/src/bin/ps/ps.c:1134
> > #9 0x0000d014 in $a () at /usr/src/bin/ps/ps.c:1134
> >
> > Is it possible this gives an endless loop on armv5?
>
> This is good info, thanks. We've been digging into it a bit more on
> irc. One thing I determined that I'll mention so it saves you some
> grief... you were lucky to get that backtrace, because of all the
> "value optimized out" stuff. If you build the library with -O0 to
> prevent that, the backtrace will contain floating point numbers.
> Then because gdb uses the libc code we're trying to debug to format
> floating point numbers, gdb locks up.
The issue causing the endless loop is that the layout of double
precision floating-point values appears to have changed. I have just
committed r255361 which should fix the issue.
Andrew
More information about the freebsd-arm
mailing list