diff mbox

[Powertop] conditionally disable pci support on ARM platforms

Message ID 1340390567-2994-1-git-send-email-rajagopal.venkat@linaro.org
State New
Headers show

Commit Message

rajagopal.venkat@linaro.org June 22, 2012, 6:42 p.m. UTC
Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org>
---
 configure.ac |   16 +++++++++++++---
 src/lib.cpp  |   20 ++++++++++++++++++--
 src/lib.h    |    4 ++++
 3 files changed, 35 insertions(+), 5 deletions(-)

Comments

Arjan van de Ven June 22, 2012, 8:01 p.m. UTC | #1
On 6/22/2012 11:42 AM, Rajagopal Venkat wrote:
> +case "$host" in
> +arm*)
> +	AC_DEFINE([HAVE_NO_PCI],[1],[Define if host platform is ARM])
> +	;;
> +*)
> +	PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
> +		AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
> +	])
> +	;;
> +esac
> +

I don't like this part.

if libpci is option, it is optional.

being arm or not is completely irrelevant in this regard.
(and there will undoubtedly ARM systems at some point that will have PCI
in them)
rajagopal.venkat@linaro.org June 25, 2012, 5:24 a.m. UTC | #2
On 23 June 2012 01:31, Arjan van de Ven <arjan@linux.intel.com> wrote:

> On 6/22/2012 11:42 AM, Rajagopal Venkat wrote:
> > +case "$host" in
> > +arm*)
> > +     AC_DEFINE([HAVE_NO_PCI],[1],[Define if host platform is ARM])
> > +     ;;
> > +*)
> > +     PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
> > +             AC_SEARCH_LIBS([pci_get_dev], [pci], [],
> AC_MSG_ERROR([libpci is required but was not found]), [])
> > +     ])
> > +     ;;
> > +esac
> > +
>
> I don't like this part.
>
> if libpci is option, it is optional.
>
> Agree. libpci should be optional.

At present build script is enforcing to install libpci which may not be
necessarily true for all platforms. Solution can be something like,

PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
        AC_SEARCH_LIBS([pci_get_dev], [pci], [],
[AC_DEFINE([HAVE_NO_PCI],[1],[Define if pci is not supported])], [])
        ])


> being arm or not is completely irrelevant in this regard.
> (and there will undoubtedly ARM systems at some point that will have PCI
> in them)
>
>
>
diff mbox

Patch

diff --git a/configure.ac b/configure.ac
index 4da4eea..c2ff430 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,6 +22,8 @@  AC_PROG_LIBTOOL
 AC_PROG_CC
 AC_PROG_INSTALL
 AM_PROG_CC_C_O
+AC_CANONICAL_HOST
+PKG_PROG_PKG_CONFIG
 
 # Checks for libraries.
 # Checks for header files.
@@ -47,9 +49,17 @@  AC_CHECK_FUNCS([fdatasync getpagesize gettimeofday memmove memset mkdir munmap p
 
 AC_SEARCH_LIBS([delwin], [ncursesw ncurses], [], AC_MSG_ERROR([ncurses is required but was not found]), [])
 
-PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
-	AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
-]) 
+case "$host" in
+arm*)
+	AC_DEFINE([HAVE_NO_PCI],[1],[Define if host platform is ARM])
+	;;
+*)
+	PKG_CHECK_MODULES([PCIUTILS], [libpci],[],[
+		AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_MSG_ERROR([libpci is required but was not found]), [])
+	])
+	;;
+esac
+
 PKG_CHECK_MODULES([LIBZ], [zlib],[],[
 	AC_SEARCH_LIBS([deflate], [z], [], AC_MSG_ERROR([zlib is required but was not found]), [])
 ]) 
diff --git a/src/lib.cpp b/src/lib.cpp
index 0f87e48..77e49a2 100644
--- a/src/lib.cpp
+++ b/src/lib.cpp
@@ -35,11 +35,13 @@ 
 #include <math.h>
 #include <stdlib.h>
 
+#include "lib.h"
+
+#ifndef HAVE_NO_PCI
 extern "C" {
 #include <pci/pci.h>
 }
-
-#include "lib.h"
+#endif
 
 #include <stdio.h>
 #include <stdint.h>
@@ -266,6 +268,7 @@  void format_watts(double W, char *buffer, unsigned int len)
 }
 
 
+#ifndef HAVE_NO_PCI
 static struct pci_access *pci_access;
 
 char *pci_id_to_name(uint16_t vendor, uint16_t device, char *buffer, int len)
@@ -290,6 +293,19 @@  void end_pci_access(void)
 		pci_free_name_list(pci_access);
 }
 
+#else
+
+char *pci_id_to_name(uint16_t vendor, uint16_t device, char *buffer, int len)
+{
+	return NULL;
+}
+
+void end_pci_access(void)
+{
+}
+
+#endif /* HAVE_NO_PCI */
+
 int utf_ok = -1;
 
 
diff --git a/src/lib.h b/src/lib.h
index 588c023..d354151 100644
--- a/src/lib.h
+++ b/src/lib.h
@@ -30,6 +30,10 @@ 
 #endif
 #include <stdint.h>
 
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #ifndef DISABLE_I18N
 #define _(STRING)    gettext(STRING)
 #else