From 1b835e81ca63db8b95d4b8073da34d22b643d29c Mon Sep 17 00:00:00 2001 From: Bruce Evans Date: Fri, 10 Mar 2017 10:25:48 +0000 Subject: [PATCH] Fix compilation on sparc64. The frame buffer address is in a field that is unavailable on sparc64 only. This makes the new ec_putc() a non-op on sparc64 but still calls it. On other non-x86 arches, it should compile but might not work. Reported by: gjb --- sys/dev/syscons/syscons.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 75a0f6ec08b..d2994676006 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -277,7 +277,9 @@ static u_int ec_scroffset; * set (likely non-fake) graphics mode to get a null initial ec_putc(). */ static scr_stat fake_main_console = { +#ifndef __sparc64__ .scr.vtb_buffer = 0xb8000, +#endif .xsize = 80, .ysize = 25, #if !defined(__amd64__) && !defined(__i386__) @@ -290,6 +292,7 @@ static scr_stat fake_main_console = { static void ec_putc(int c) { +#ifndef __sparc64__ u_short *scrptr; u_int ind; int attr, column, mysize, width, xsize, yborder, ysize; @@ -321,6 +324,7 @@ ec_putc(int c) do scrptr[ind++ % mysize] = (attr << 8) | c; while (--width != 0); +#endif /* !__sparc64__ */ } #undef main_console