gptboot broken when compiled with clang 6 and WITHOUT_LOADER_GELI -- clang 5 is OK

Lowell Gilbert freebsd-stable-local at be-well.ilk.org
Thu Apr 26 16:05:55 UTC 2018


Dimitry Andric <dim at FreeBSD.org> writes:

> On 26 Apr 2018, at 12:06, Dimitry Andric <dim at FreeBSD.org> wrote:
>> 
>> On 26 Apr 2018, at 06:17, Dewayne Geraghty <dewayne.geraghty at heuristicsystems.com.au> wrote:
>>> 
>>> Andre, You're not alone.  I think there's a problem with clang6 on i386
>>> FreeBSD 11.1X, refer:
>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227552
>>> https://forums.freebsd.org/threads/uptime-w-i386-breakage.65584/
>>> and perhaps also on amd64, search for
>>> https://bugs.freebsd.org/bugzilla/buglist.cgi?quicksearch=clang&list_id=226390.
>>> 
>>> Without time to investigate I've reverted userland
>>> FreeBSD 11.2-PRERELEASE  r332843M    amd64 1101515 1101509
>>> FreeBSD 11.2-PRERELEASE  r332843M    i386 1101515 1101509
>> 
>> As noted in another post, I cannot reproduce the problems with gptboot,
>> but with FreeBSD-11.2-PRERELEASE-i386-20180420-r332802, I do indeed see
>> w and uptime crashing in libxo:
>> 
>> (gdb) bt
>> #0  ifree (tsd=0x28000000) at arena.h:799
>> #1  0x2814b506 in __free (ptr=0x280601ef) at tsd.h:716
>> #2  0x2808bb07 in xo_do_emit_fields () at /usr/src/contrib/libxo/libxo/libxo.c:6419
>> #3 0x28089a1c in xo_do_emit (xop=<value optimized out>, flags=<value
>> optimized out>, fmt=0x804ad4d "{:time-of-day/%s} ") at
>> /usr/src/contrib/libxo/libxo/libxo.c:6470
>> #4  0x28089b61 in xo_emit (fmt=0x804ad4d "{:time-of-day/%s} ") at /usr/src/contrib/libxo/libxo/libxo.c:6541
>> #5  0x08049f50 in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/usr.bin/w/w.c:475
>> #6  0x080494cd in _start1 ()
>> #7  0x08049448 in _start ()
>> #8  0x00000000 in ?? ()
>> 
>> Not sure if this has anything to do with clang though, it looks more
>> like a double free to me, at first glance.  I'll do some debugging.
>
> Strangely, simply recompiling libxo fixes the problem, or at least works
> around it.  This is on the r332802 snapshot, so I guess the libxo.so.0
> file shipped may be broken, somehow.

Actually, that is a recurring bug
(https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227552)
and does seem to be some kind of initialization problem with clang.


More information about the freebsd-stable mailing list