svf: off-by-one error; do not access after the allocated memory
[openocd.git] / configure.ac
index 4388573c012a87bafd107efb26acaa820cdf6c29..c7700dc3157b2bdce73b12dada2c2e89e87cd527 100644 (file)
@@ -5,8 +5,7 @@ AC_CONFIG_SRCDIR([src/openocd.c])
 
 m4_include([config_subdir.m4])dnl
 
-AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip])
-AM_MAINTAINER_MODE
+AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip subdir-objects])
 
 AC_CONFIG_HEADERS([config.h])
 AH_BOTTOM([
@@ -151,39 +150,6 @@ else
 fi
 AC_MSG_RESULT([$build_release])
 
-# We are not *ALWAYS* being installed in the standard place.
-# We may be installed in a "tool-build" specific location.
-# Normally with other packages - as part of a tool distro.
-# Thus - we should search that 'libdir' also.
-#
-# And - if we are being installed there - the odds are
-# The libraries unique to what we are are there too.
-#
-
-# Expand nd deal with NONE - just like configure will do later
-OCDprefix=$prefix
-OCDxprefix=$exec_prefix
-test x"$OCDprefix"  = xNONE && OCDprefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test x"$OCDxprefix" = xNONE && OCDxprefix="$OCDprefix"
-
-# what matters is the "exec-prefix"
-if test "$OCDxprefix" != "$ac_default_prefix"
-then
-    # We are installing in a non-standard place
-    # Nonstandard --prefix and/or --exec-prefix
-    # We have an override of some sort.
-    # use build specific install library dir
-
-    LDFLAGS="$LDFLAGS -L$OCDxprefix/lib"
-    # RPATH becomes an issue on Linux only
-    if test $host_os = linux-gnu || test $host_os = linux ; then
-      LDFLAGS="$LDFLAGS -Wl,-rpath,$OCDxprefix/lib"
-    fi
-    # The "INCDIR" is also usable
-    CFLAGS="$CFLAGS -I$includedir"
-fi
-
 AC_ARG_WITH(ftd2xx,
    AS_HELP_STRING([--with-ftd2xx=<PATH>],[This option has been removed.]),
   [
@@ -389,6 +355,10 @@ AC_ARG_ENABLE([ftdi],
   AS_HELP_STRING([--enable-ftdi], [Enable building support for the MPSSE mode of FTDI based devices, using libusb-1.0 in asynchronous mode]),
   [build_ftdi=$enableval], [build_ftdi=no])
 
+AC_ARG_ENABLE([jtag_vpi],
+  AS_HELP_STRING([--enable-jtag_vpi], [Enable building support for JTAG VPI]),
+  [build_jtag_vpi=$enableval], [build_jtag_vpi=no])
+
 AC_ARG_ENABLE([usb_blaster_libftdi],
   AS_HELP_STRING([--enable-usb_blaster_libftdi], [Enable building support for the Altera USB-Blaster using the libftdi driver, opensource alternate of FTD2XX]),
   [build_usb_blaster_libftdi=$enableval], [build_usb_blaster_libftdi=no])
@@ -516,10 +486,6 @@ AC_ARG_ENABLE([internal-jimtcl],
   AS_HELP_STRING([--disable-internal-jimtcl], [Disable building internal jimtcl]),
   [use_internal_jimtcl=$enableval], [use_internal_jimtcl=yes])
 
-AC_ARG_ENABLE([libusb0],
-  AS_HELP_STRING([--enable-libusb0], [Use libusb-0.1 library for USB JTAG devices]),
-  [check_libusb0=$enableval], [check_libusb0=no])
-
 AC_ARG_ENABLE([aice],
   AS_HELP_STRING([--enable-aice], [Enable building support for the Andes JTAG Programmer]),
   [build_aice=$enableval], [build_aice=no])
@@ -730,6 +696,12 @@ else
   AC_DEFINE([BUILD_USB_BLASTER_LIBFTDI], [0], [0 if you don't want libftdi usb_blaster.])
 fi
 
+if test $build_jtag_vpi = yes; then
+  AC_DEFINE([BUILD_JTAG_VPI], [1], [1 if you want JTAG VPI.])
+else
+  AC_DEFINE([BUILD_JTAG_VPI], [0], [0 if you don't want JTAG VPI.])
+fi
+
 if test $build_usb_blaster_ftd2xx = yes; then
   AC_DEFINE([BUILD_USB_BLASTER_FTD2XX], [1], [1 if you want ftd2xx usb_blaster.])
 else
@@ -1132,7 +1104,8 @@ if test $build_ft2232_libftdi = yes -o $build_usb_blaster_libftdi = yes -o \
     ], [
       AC_MSG_ERROR([Cannot build & run test program using libftdi])
     ], [
-      AC_MSG_RESULT([Skipping as we are cross-compiling])
+      AC_MSG_RESULT([Skipping as we are cross-compiling, trying build only])
+      AC_SEARCH_LIBS([ftdi_new], [], [], [AC_MSG_ERROR([Cannot link with libftdi])])
     ])
 
 AC_MSG_CHECKING([for libftdi highspeed device support])
@@ -1178,37 +1151,53 @@ enum ftdi_chip_type x = TYPE_232H;
   CFLAGS=$CFLAGS_SAVE
 fi
 
-# check for usb.h when a driver will require it
-build_usb=no
+# check if some driver requires libusb-0.1
+need_usb0=no
 if test $build_vsllink = yes -o $build_usbprog = yes -o \
-  $build_rlink = yes -o $build_ulink = yes -o $build_armjtagew = yes -o \
-  $build_aice = yes
-then
-  build_usb=yes
+        $build_rlink = yes -o $build_armjtagew = yes; then
+  need_usb0=yes
 fi
 
-# Check for libusb1 ported drivers.
-build_usb_ng=no
-if test $build_jlink = yes -o $build_hladapter_stlink = yes -o $build_osbdm = yes -o \
-  $build_opendous = yes -o $build_ftdi = yes -o $build_hladapter_icdi = yes
-then
-  build_usb_ng=yes
+# check if some driver can work with either libusb version
+need_usb=no
+if test $build_jlink = yes -o $build_osbdm = yes -o $build_opendous = yes -o \
+       $build_aice = yes; then
+  need_usb=yes
+fi
+
+# check if some driver requires libusb-1.x
+need_usb_ng=no
+if test $build_ftdi = yes -o $build_hladapter_icdi = yes -o \
+        $build_hladapter_stlink = yes -o $build_ulink = yes; then
+  need_usb_ng=yes
 fi
 
 # check for libusb library if necessary
-use_libusb0=no
 use_libusb1=no
-if test $build_usb = yes -o $build_usb_ng = yes; then
-  if test $check_libusb0 = no -a $build_usb_ng = yes; then
-       AC_CHECK_HEADER([libusb-1.0/libusb.h],
-                       [AC_DEFINE(HAVE_LIBUSB1, 1, [Define if you have libusb-1.0]) check_libusb0=no use_libusb1=yes ],
-                       [ check_libusb0=yes use_libusb1=no ])
-  fi
+if test $need_usb = yes -o $need_usb_ng = yes; then
+  AC_CHECK_HEADER([libusb-1.0/libusb.h], [
+       AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
+       use_libusb1=yes
+       AC_SEARCH_LIBS([libusb_error_name], [usb-1.0],
+               [AC_DEFINE([HAVE_LIBUSB_ERROR_NAME], [1], [Define if your libusb has libusb_error_name()])],
+               [AC_MSG_WARN([libusb-1.x older than 1.0.9 detected, consider updating])])
+  ], [
+       if test $need_usb_ng = yes; then
+         AC_MSG_ERROR([libusb-1.x is required for some driver(s) you've selected])
+       else
+         AC_MSG_WARN([Trying legacy libusb-0.1 as a fallback, consider installing libusb-1 instead])
+         need_usb0=yes
+       fi
+  ])
+fi
 
-  if test $check_libusb0 = yes -o $build_usb = yes; then
-       AC_CHECK_HEADERS([usb.h], [use_libusb0=yes],
-                       [AC_MSG_ERROR([libusb or libusb-1.0 are required to build some OpenOCD driver(s)])])
-  fi
+use_libusb0=no
+if test $need_usb0 = yes; then
+       AC_CHECK_HEADERS([usb.h], [
+                       use_libusb0=yes
+               ], [
+                       AC_MSG_ERROR([libusb-0.1 is required to build some OpenOCD driver(s)])
+               ])
 fi
 
 AM_CONDITIONAL([RELEASE], [test $build_release = yes])
@@ -1227,6 +1216,7 @@ AM_CONDITIONAL([FT2232_DRIVER], [test $build_ft2232_ftd2xx = yes -o $build_ft223
 AM_CONDITIONAL([FTDI_DRIVER], [test $build_ftdi = yes])
 AM_CONDITIONAL([USB_BLASTER_LIBFTDI], [test $build_usb_blaster_libftdi = yes])
 AM_CONDITIONAL([USB_BLASTER_FTD2XX], [test $build_usb_blaster_ftd2xx = yes])
+AM_CONDITIONAL([JTAG_VPI], [test $build_jtag_vpi = yes -o $build_jtag_vpi = yes])
 AM_CONDITIONAL([USB_BLASTER_DRIVER], [test $build_usb_blaster_ftd2xx = yes -o $build_usb_blaster_libftdi = yes])
 AM_CONDITIONAL([AMTJTAGACCEL], [test $build_amtjtagaccel = yes])
 AM_CONDITIONAL([GW16012], [test $build_gw16012 = yes])
@@ -1247,17 +1237,15 @@ AM_CONDITIONAL([HLADAPTER], [test $build_hladapter_stlink = yes -o $build_hladap
 AM_CONDITIONAL([OSBDM], [test $build_osbdm = yes])
 AM_CONDITIONAL([OPENDOUS], [test $build_opendous = yes])
 AM_CONDITIONAL([SYSFSGPIO], [test $build_sysfsgpio = yes])
-AM_CONDITIONAL([USB], [test $build_usb = yes])
-AM_CONDITIONAL([USB_NG], [test $build_usb_ng = yes])
 AM_CONDITIONAL([USE_LIBUSB0], [test $use_libusb0 = yes])
 AM_CONDITIONAL([USE_LIBUSB1], [test $use_libusb1 = yes])
 AM_CONDITIONAL([IS_CYGWIN], [test $is_cygwin = yes])
-AM_CONDITIONAL([IS_MINGW], [test $is_mingw = ye]s)
-AM_CONDITIONAL([IS_WIN32], [test $is_win32 = ye]s)
-AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = ye]s)
+AM_CONDITIONAL([IS_MINGW], [test $is_mingw = yes])
+AM_CONDITIONAL([IS_WIN32], [test $is_win32 = yes])
+AM_CONDITIONAL([IS_DARWIN], [test $is_darwin = yes])
 AM_CONDITIONAL([BITQ], [test $build_bitq = yes])
 
-AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = ye]s)
+AM_CONDITIONAL([MINIDRIVER], [test $build_minidriver = yes])
 AM_CONDITIONAL([MINIDRIVER_DUMMY], [test $build_minidriver_dummy = yes])
 
 AM_CONDITIONAL([INTERNAL_JIMTCL], [test $use_internal_jimtcl = yes])

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)