Message ID | 1340644453-9135-1-git-send-email-rajagopal.venkat@linaro.org |
---|---|
State | New |
Headers | show |
Can someone consider this patch for merge? On 25 June 2012 22:44, Rajagopal Venkat <rajagopal.venkat@linaro.org> wrote: > disable pci if not supported by host platform. When > libpci is not found, define a macro which will be > used for conditional compilation. > > Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> > --- > configure.ac | 5 +++-- > src/lib.cpp | 20 ++++++++++++++++++-- > src/lib.h | 5 +++++ > 3 files changed, 26 insertions(+), 4 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 4da4eea..3cbc7b0 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -48,8 +48,9 @@ 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]), []) > -]) > + AC_SEARCH_LIBS([pci_get_dev], [pci], [], > AC_DEFINE([HAVE_NO_PCI],[1],[Define if pci is not supported]), []) > +]) > + > 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..7093b7f 100644 > --- a/src/lib.h > +++ b/src/lib.h > @@ -30,6 +30,11 @@ > #endif > #include <stdint.h> > > +/* Include only for Automake builds */ > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > #ifndef DISABLE_I18N > #define _(STRING) gettext(STRING) > #else > -- > 1.7.9.5 > >
On Fri, Jul 13, 2012 at 2:02 AM, Rajagopal Venkat
<rajagopal.venkat@linaro.org> wrote:
> Can someone consider this patch for merge?
As we will have libpci available at most distros by default, isn't
there a way of doing run-time detection instead of disabling it at
build time?
This is just because we'll be getting more and more ARM boards which
have PCI-e as well, so we'll need to handle systems with and without
any PCI available.
Cheers,
On 13 July 2012 11:03, Ricardo Salveti <ricardo.salveti@linaro.org> wrote: > On Fri, Jul 13, 2012 at 2:02 AM, Rajagopal Venkat > <rajagopal.venkat@linaro.org> wrote: > > Can someone consider this patch for merge? > > As we will have libpci available at most distros by default, isn't > there a way of doing run-time detection instead of disabling it at > build time? > This patch disables powertop PCI support only when libpci is not available on a system. Nothing specific to ARM platforms. I don't think it can be done at run-time. Without this patch if libpci is not available, powertop compilation itself will fail. > This is just because we'll be getting more and more ARM boards which > have PCI-e as well, so we'll need to handle systems with and without > any PCI available. > > Cheers, > -- > Ricardo Salveti de Araujo >
On 06/25/2012 10:14 AM, Rajagopal Venkat wrote: > disable pci if not supported by host platform. When > libpci is not found, define a macro which will be > used for conditional compilation. > > Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> > --- > configure.ac | 5 +++-- > src/lib.cpp | 20 ++++++++++++++++++-- > src/lib.h | 5 +++++ > 3 files changed, 26 insertions(+), 4 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 4da4eea..3cbc7b0 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -48,8 +48,9 @@ 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]), []) > -]) > + AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_DEFINE([HAVE_NO_PCI],[1],[Define if pci is not supported]), []) > +]) > + > 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..7093b7f 100644 > --- a/src/lib.h > +++ b/src/lib.h > @@ -30,6 +30,11 @@ > #endif > #include <stdint.h> > > +/* Include only for Automake builds */ > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > #ifndef DISABLE_I18N > #define _(STRING) gettext(STRING) > #else Thank you your patch has been merged.
diff --git a/configure.ac b/configure.ac index 4da4eea..3cbc7b0 100644 --- a/configure.ac +++ b/configure.ac @@ -48,8 +48,9 @@ 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]), []) -]) + AC_SEARCH_LIBS([pci_get_dev], [pci], [], AC_DEFINE([HAVE_NO_PCI],[1],[Define if pci is not supported]), []) +]) + 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..7093b7f 100644 --- a/src/lib.h +++ b/src/lib.h @@ -30,6 +30,11 @@ #endif #include <stdint.h> +/* Include only for Automake builds */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #ifndef DISABLE_I18N #define _(STRING) gettext(STRING) #else
disable pci if not supported by host platform. When libpci is not found, define a macro which will be used for conditional compilation. Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> --- configure.ac | 5 +++-- src/lib.cpp | 20 ++++++++++++++++++-- src/lib.h | 5 +++++ 3 files changed, 26 insertions(+), 4 deletions(-)