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