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>