building an 8.4-STABLE i386 poudriere jail on an 10.0-STABLE amd64 host
Ian Lepore
ian at freebsd.org
Fri Feb 20 06:02:07 UTC 2015
On Fri, 2014-08-29 at 17:43 -0700, Don Lewis wrote:
> On 29 Aug, Don Lewis wrote:
>
> > With the patch below, I get further, but now lint is core getting
> > SIGBUS.
> >
> > ===> usr.bin/xlint/llib (all)
> > lint -cghapbx -Cposix /var/poudriere/jails/84STABLEi386/usr/src/usr.bin/xlint/llib/llib-lposix
> > llib-lposix:
> > lint: /usr/obj/i386/var/poudriere/jails/84STABLEi386/usr/src/tmp/usr/libexec/lint1 got signal 10
> > *** Error code 1
> > 1 error
> > *** Error code 2
> > 1 error
> > *** Error code 2
> > 1 error
> > *** Error code 2
> > 1 error
> > *** Error code 2
> > 1 error
> > *** [buildworld] Error code 2
> > 1 error
> > ====>> Error: Failed to 'make buildworld'
>
> I simplified things a bit and am now just doing normal crossbuilds. I'm
> still seeing core dumps, even on amd64 -> amd64 crossbuilds. I'm not
> seeing a reason, though ...
>
> # gdb /usr/obj/tmp/stable8/tmp/usr/libexec/lint1 /usr/obj/tmp/stable8/usr.bin/xlint/llib/lint1.core
> 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 "amd64-marcel-freebsd"...
> Core was generated by `lint1'.
> Program terminated with signal 10, Bus error.
> #0 0x000000000040b061 in getcnode (tp=0x800c1f400, v=0x800c08160)
> at /tmp/stable8/usr.bin/xlint/lint1/tree.c:260
> 260 n->tn_val->v_u = v->v_u;
> (gdb) list
> 255 n->tn_op = CON;
> 256 n->tn_type = tp;
> 257 n->tn_val = tgetblk(sizeof (val_t));
> 258 n->tn_val->v_tspec = tp->t_tspec;
> 259 n->tn_val->v_ansiu = v->v_ansiu;
> 260 n->tn_val->v_u = v->v_u;
> 261 free(v);
> 262 return (n);
> 263 }
> 264
> (gdb) print n
> $1 = (tnode_t *) 0x80068f000
> (gdb) print v
> $2 = (val_t *) 0x800c08160
> (gdb) print *n
> $3 = {tn_op = CON, tn_type = 0x800c1f400, tn_lvalue = 0, tn_cast = 0,
> tn_parn = 0, tn_u = {tn_s = {_tn_left = 0x80068f028, _tn_right = 0x0},
> _tn_sym = 0x80068f028, _tn_val = 0x80068f028, _tn_strg = 0x80068f028}}
> (gdb) print *v
> $4 = {v_tspec = INT, v_ansiu = 0, v_u = {_v_quad = 128,
> _v_ldbl = 4.6658554008095674912363595950328574e-4949}}
> (gdb) print *n->tn_u._tn_val
> $5 = {v_tspec = INT, v_ansiu = 0, v_u = {_v_quad = 0, _v_ldbl = 0}}
> (gdb) print v->v_u
> $6 = {_v_quad = 128, _v_ldbl = 4.6658554008095674912363595950328574e-4949}
> (gdb) print n->tn_u._tn_val->v_u
> $7 = {_v_quad = 0, _v_ldbl = 0}
>
>
>
> Looks like all the pointers are OK, so why the SIGBUS?
A late late followup on this... I committed changes to 8-stable so that
as of r279041 it can be built on a 10 or later build host, modulo this
problem with lint1, which is baffling.
The followup is because I stumbled across a workaround for it: just add
LINT=/usr/bin/lint to your make command line. That allows the
buildworld of 8-stable to complete on my 10-stable machine (amd64
non-cross build).
It would be nice to figure out the lint thing, but at least I've finally
accomplished what I set out to do this morning that I thought would be
easy: build an 8-stable world to test running an 8-stable jail on this
10-stable machine.
-- Ian
More information about the freebsd-stable
mailing list