Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Feb 2015 22:31:48 -0700
From:      Ian Lepore <ian@freebsd.org>
To:        Don Lewis <truckman@FreeBSD.org>
Cc:        gjb@FreeBSD.org, stable@FreeBSD.org
Subject:   Re: building an 8.4-STABLE i386 poudriere jail on an 10.0-STABLE amd64 host
Message-ID:  <1424410308.1108.56.camel@freebsd.org>
In-Reply-To: <201408300043.s7U0hIXf073387@gw.catspoiler.org>
References:  <201408300043.s7U0hIXf073387@gw.catspoiler.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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





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