diff --git a/configure.in b/configure.in
index f3414f8ccded635c9869c11e58bd36786257770e..7ed61b25506a8809e982f0f810bfae592421a642 100644
--- a/configure.in
+++ b/configure.in
@@ -63,16 +63,16 @@ AC_ARG_ENABLE(amtjtagaccel,
   AS_HELP_STRING([--enable-amtjtagaccel], [Enable building the Amontec JTAG-Accelerator driver]), 
   [build_amtjtagaccel=$enableval], [build_amtjtagaccel=no])
 
+AC_ARG_ENABLE(ecosboard,
+  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
+  [build_ecosboard=$enableval], [build_ecosboard=no])
+
 case "${host_cpu}" in 
   arm*)
     AC_ARG_ENABLE(ep93xx,
       AS_HELP_STRING([--enable-ep93xx], [Enable building support for EP93xx based SBCs]), 
       [build_ep93xx=$enableval], [build_ep93xx=no])
 
-	AC_ARG_ENABLE(ecosboard,
-	  AS_HELP_STRING([--enable-ecosboard], [Enable building support for eCosBoard based JTAG debugger]), 
-	  [build_ecosboard=$enableval], [build_ecosboard=no])
-
     AC_ARG_ENABLE(at91rm9200,
       AS_HELP_STRING([--enable-at91rm9200], [Enable building support for AT91RM9200 based SBCs]),
       [build_at91rm9200=$enableval], [build_at91rm9200=no])
@@ -81,7 +81,6 @@ case "${host_cpu}" in
   *) 
     build_ep93xx=no
     build_at91rm9200=no
-	build_ecosboard=no
     ;;
 esac
 
diff --git a/src/ecosboard.c b/src/ecosboard.c
index f0ec433fd495bbb5259883c9891a475259a10175..ed7492c667c7bd2c6e8a98ac8af2445ac27bb278 100644
--- a/src/ecosboard.c
+++ b/src/ecosboard.c
@@ -797,7 +797,9 @@ void _zylinjtag_diag_write_char(char c, void **param)
 		HAL_DIAG_WRITE_CHAR(c);
 	}
 
+#ifdef CYGPKG_HAL_ZYLIN_PHI
 	printDccChar(c);
+#endif
 }
 
 #define SHOW_RESULT(a, b) diag_printf(#a " failed %d\n", (int)b)
@@ -1358,6 +1360,7 @@ print_exception_handler(cyg_addrword_t data, cyg_code_t exception, cyg_addrword_
 	char *infoStr = "unknown";
 	switch (exception)
 	{
+#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
 	case CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION:
 		infoStr = "undefined instruction";
 		break;
@@ -1370,6 +1373,7 @@ print_exception_handler(cyg_addrword_t data, cyg_code_t exception, cyg_addrword_
 	case CYGNUM_HAL_VECTOR_ABORT_DATA:
 		infoStr = "abort data";
 		break;
+#endif
 	default:
 		break;
 	}
@@ -1493,7 +1497,9 @@ zylinjtag_uart(cyg_addrword_t data)
 			continue;
 		}
 
+#ifdef CYGPKG_PROFILE_GPROF
 		start_profile();
+#endif
 		int actual = 0;
 		int actual2 = 0;
 		int pos, pos2;
@@ -1742,9 +1748,11 @@ int main(int argc, char *argv[])
 	ramblockdevice=(cyg_uint8 *)malloc(ramblockdevice_size);
 	memset(ramblockdevice, 0xff, ramblockdevice_size);
 
+#ifdef CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION
 	setHandler(CYGNUM_HAL_VECTOR_UNDEF_INSTRUCTION);
 	setHandler(CYGNUM_HAL_VECTOR_ABORT_PREFETCH);
 	setHandler(CYGNUM_HAL_VECTOR_ABORT_DATA);
+#endif
 
 	int err;
 	err = cyg_io_lookup("/dev/ser0", &serial_handle);
diff --git a/src/jtag/zy1000.c b/src/jtag/zy1000.c
index 4d984f3ab0b8d880f2a788e73b3e5ee6f471083b..a50ed529c8b6990c328c2cd623631f4e36222001 100644
--- a/src/jtag/zy1000.c
+++ b/src/jtag/zy1000.c
@@ -28,8 +28,6 @@
 
 
 #include <cyg/hal/hal_io.h>             // low level i/o
-#include <cyg/hal/var_io.h>             // common registers
-#include <cyg/hal/plf_io.h>             // platform registers
 #include <cyg/hal/hal_diag.h>
 
 #include <stdlib.h>