Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Oct 2015 12:46:02 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Ian Lepore <ian@FreeBSD.org>
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:  <20151018094602.GF2257@kib.kiev.ua>
In-Reply-To: <201510180103.t9I13h0w056671@repo.freebsd.org>
References:  <201510180103.t9I13h0w056671@repo.freebsd.org>

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



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