Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 2015 10:19:39 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r289477 - head/sys/arm/mv
Message-ID:  <1445185179.71631.50.camel@freebsd.org>
In-Reply-To: <20151018094602.GF2257@kib.kiev.ua>
References:  <201510180103.t9I13h0w056671@repo.freebsd.org> <20151018094602.GF2257@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2015-10-18 at 12:46 +0300, Konstantin Belousov wrote:
> On Sun, Oct 18, 2015 at 01:03:43AM +0000, Ian Lepore wrote:
> > Author: ian
> > Date: Sun Oct 18 01:03:43 2015
> > New Revision: 289477
> > URL: https://svnweb.freebsd.org/changeset/base/289477
> > 
> > Log:
> >   Fix a strange macro re-definition compile error.  If the
> > VM_MAXUSER_ADDRESS
> >   value is defined as a config option the definition is emitted
> > into
> >   opt_global.h which is force-included into everything.  In
> > addition, the
> >   symbol is emitted by the genassym mechanism, but that by its
> > nature reduces
> >   the value to a 0xnnnnnnnn number.  When compiling a .S file you
> > end up
> >   with two different definitions of the macro (they evaluate to the
> > same
> >   number, but the text is different, upsetting the compiler).
> >   
> >   Nothing has changed about this code for a while but the compile
> > error is
> >   new, so this must be fallout from the clang 3.7 update or
> > something.
> > 
> > Modified:
> >   head/sys/arm/mv/std-pj4b.mv
> > 
> > Modified: head/sys/arm/mv/std-pj4b.mv
> > ===================================================================
> > ===========
> > --- head/sys/arm/mv/std-pj4b.mv	Sun Oct 18 00:59:28 2015	
> > (r289476)
> > +++ head/sys/arm/mv/std-pj4b.mv	Sun Oct 18 01:03:43 2015	
> > (r289477)
> > @@ -5,4 +5,8 @@ cpu		CPU_MV_PJ4B
> >  machine 	arm	armv6
> >  makeoptions	CONF_CFLAGS="-march=armv7a"
> >  
> > -options		VM_MAXUSER_ADDRESS="(KERNBASE
> > -(1024*1024*1024))"
> > +# This was originally defined as "(KERNBASE-(1024*1024*1024))" but
> > that
> > +# (in opt_global.h) clashed with the value emitted by genassym
> > which
> > +# reduces the original macro text to its numeric value.  The only
> > way
> > +# to avoid that is to define it here as the numeric value genassym
> > emits.
> > +options		VM_MAXUSER_ADDRESS="0x80000000"
> 
> Genassym started to generate VM_MAXUSER_ADDRESS after r289372.
> Strange that I did not saw the error.
> 
> Why does marvell need this override ?
> 

That is a very good question, to which I found no answer in the svn
history... this value was in the file from day one and the commit
message just says it was obtained from Marvell and Semihalf.  There's
other strange stuff in the arm/mv hierarchy that nobody (except maybe
marvell and semihalf) knows why it's different.

I finally bought myself an ARMADAXP-based system (which this config is
for) about six months ago, but I literally haven't had a chance to take
it out of the box since it arrived. ::sigh::

-- Ian




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