Home | History | Annotate | Download | only in m4
      1 dnl AX_CELL_SPU - check for needed binutils stuff for Cell BE SPU
      2 AC_DEFUN([AX_CELL_SPU],
      3 [
      4 # On Cell BE architecture, OProfile uses bfd_openr_iovec when processing some
      5 # SPU profiles.  To parse embedded SPU ELF on Cell BE, OProfile requires a
      6 # version of bfd_openr_iovec that supports the elf32-spu target.
      7 # This version of the function also has a 7th parameter that's been added.
      8 # First, we check for existence of the base bfd_openr_iovec.  If it exists,
      9 # we then use a temporary test program below that passes 7 arguments to
     10 # bfd_openr_iovec; if it compiles OK, we assume we have the right BFD
     11 # library to support Cell BE SPU profiling.
     12 
     13 AC_LANG_PUSH(C)
     14 
     15 AC_CHECK_LIB(bfd, bfd_openr_iovec,
     16 	[bfd_openr_iovec_exists="yes"],
     17 	[bfd_openr_iovec_exists="no"]
     18 )
     19 
     20 if test "$bfd_openr_iovec_exists" = "yes"; then
     21 	AC_MSG_CHECKING([whether bfd_openr_iovec has seven parameters])
     22 	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <bfd.h>
     23 	  #include <stdlib.h>
     24 	],
     25 	 [[struct bfd *nbfd = bfd_openr_iovec("some-file", "elf32-spu",
     26 			NULL, NULL, NULL, NULL, NULL);
     27 	  return 0;
     28 	]])],
     29 	[AC_DEFINE([HAVE_BFD_OPENR_IOVEC_WITH_7PARMS],
     30 		[],
     31 		[Defined if you have the version of bfd_openr_iovec with 7 parameters])
     32 	bfd_open_iovec_7="yes"
     33 	AC_MSG_RESULT([yes])],
     34 	[AC_MSG_RESULT([no])]
     35 	)
     36 fi
     37 
     38 AC_LANG_POP(C)
     39 
     40 arch="unknown"
     41 AC_ARG_WITH(target,
     42 [  --with-target=cell-be   Check BFD support for Cell Broadband Engine SPU profiling], arch=$withval)
     43 
     44 if test "$arch" = "cell-be"; then
     45         if test "$bfd_open_iovec_7" = "yes"; then
     46 	        AC_MSG_NOTICE([BFD library has support for Cell Broadband Engine SPU profiling])
     47 	else
     48 		AC_ERROR([BFD library does not support elf32-spu target; SPU profiling is unsupported])
     49 	fi
     50 fi
     51 ]
     52 )
     53