Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Aug 2017 18:49:12 +0100
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Li-Wen Hsu <lwhsu@FreeBSD.org>
Cc:        John Baldwin <jhb@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   Re: svn commit: r322761 - in stable/11/sys/arm64: arm64 include
Message-ID:  <B1317C17-A148-4C62-A673-63201799AB4E@fubar.geek.nz>
In-Reply-To: <20170822155941.GA52559@freefall.freebsd.org>
References:  <201708211735.v7LHZ4UG023562@repo.freebsd.org> <20170822155941.GA52559@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

> On 22 Aug 2017, at 16:59, Li-Wen Hsu <lwhsu@FreeBSD.org> wrote:
>=20
> On Mon, Aug 21, 2017 at 17:35:04 +0000, John Baldwin wrote:
>> Author: jhb
>> Date: Mon Aug 21 17:35:04 2017
>> New Revision: 322761
>> URL: https://svnweb.freebsd.org/changeset/base/322761
>>=20
>> Log:
>>  MFC 322437: Reliably enable debug exceptions on all CPUs.
>>=20
>>  Previously, debug exceptions were only enabled on the boot CPU if
>>  DDB was enabled in the dbg_monitor_init() function.  APs also called
>>  this function, but since mp_machdep.c doesn't include opt_ddb.h, the
>>  APs ended up calling an empty stub defined in =
<machine/debug_monitor.h>
>>  instead of the real function.  Also, if DDB was not enabled in the =
kernel,
>>  the boot CPU would not enable debug exceptions.
>>=20
>>  Fix this by adding a new dbg_init() function that always clears the =
OS
>>  lock to enable debug exceptions which the boot CPU and the APs call.
>>  This function also calls dbg_monitor_init() to enable hardware =
breakpoints
>>  from DDB on all CPUs if DDB is enabled.  Eventually base support for
>>  hardware breakpoints/watchpoints will need to move out of the =
DDB-only
>>  debug_monitor.c for use by userland debuggers.
>>=20
>> Modified:
>>  stable/11/sys/arm64/arm64/debug_monitor.c
>>  stable/11/sys/arm64/arm64/machdep.c
>>  stable/11/sys/arm64/arm64/mp_machdep.c
>>  stable/11/sys/arm64/include/machdep.h
>> Directory Properties:
>>  stable/11/   (props changed)
>>=20
>> Modified: stable/11/sys/arm64/arm64/mp_machdep.c
>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>> --- stable/11/sys/arm64/arm64/mp_machdep.c	Mon Aug 21 17:29:37 2017	=
(r322760)
>> +++ stable/11/sys/arm64/arm64/mp_machdep.c	Mon Aug 21 17:35:04 2017	=
(r322761)
>> @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
>> #include <vm/vm_extern.h>
>> #include <vm/vm_kern.h>
>>=20
>> -#include <machine/debug_monitor.h>
>> #include <machine/intr.h>
>> #include <machine/smp.h>
>> #ifdef VFP
>> @@ -277,7 +276,7 @@ init_secondary(uint64_t cpu)
>> 	vfp_init();
>> #endif
>>=20
>> -	dbg_monitor_init();
>> +	dbg_init();
>> 	pan_enable();
>>=20
>> 	/* Enable interrupts */
>>=20
>=20
> Hi,
>=20
> This seems breaking aarch64 build:
>=20
> =
https://ci.freebsd.org/job/FreeBSD-stable-11-aarch64-build/1504/console =
<https://ci.freebsd.org/job/FreeBSD-stable-11-aarch64-build/1504/console>;
>=20
> --- mp_machdep.o ---
> /usr/src/sys/arm64/arm64/mp_machdep.c:279:2: error: implicit =
declaration of function 'dbg_init' is invalid in C99 =
[-Werror,-Wimplicit-function-declaration]
>        dbg_init();
>        ^
> /usr/src/sys/arm64/arm64/mp_machdep.c:279:2: error: this function =
declaration is not a prototype [-Werror,-Wstrict-prototypes]
> 2 errors generated.
> *** [mp_machdep.o] Error code 1
>=20
> make[2]: stopped in /usr/obj/arm64.aarch64/usr/src/sys/GENERIC
>=20
>=20
> Forgot including?  Plase check, thanks!

mp_machdep.c includes machine/machdep.h in head, but not stable/11. It =
was added in a change that wasn=E2=80=99t (and shouldn=E2=80=99t be) =
MFCd.

Andrew




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B1317C17-A148-4C62-A673-63201799AB4E>