[Buildroot] [PATCH 1/1] openpgm: new package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Feb 12 10:53:05 UTC 2013


Dear Alexander Lukichev,

Looks really good now. The only thing missing I believe is a
description + Signed-off-by line in the
package/openpgm/openpgm-cross-compile.patch file.

Also, did you test this package against uClibc or glibc? If against
glibc, then you should make a test against a minimal uClibc
configuration (no thread, no largefile, no IPv6, no RPC, no wchar, no
locale), to check that your package indeed doesn't depend on any of
these uClibc features. If you don't want to build a minimal uClibc
toolchain from scratch, you may use
http://autobuild.buildroot.org/toolchains/tarballs/br-arm-basic.tar.bz2.

Best regards,

Thomas

On Tue, 12 Feb 2013 12:47:31 +0200, Alexander Lukichev wrote:
> From: Alexander Lukichev <alexander.lukichev at espotel.com>
> 
> OpenPGM is an open source implementation of the Pragmatic General
> Multicast (PGM) specification in RFC 3208 available at www.ietf.org.
> It is required for PGM/EPGM support in ZeroMQ library.
> 
> Signed-off-by: Alexander Lukichev <alexander.lukichev at gmail.com>
> ---
>  package/Config.in                           |  1 +
>  package/openpgm/Config.in                   | 10 ++++++++++
>  package/openpgm/openpgm-cross-compile.patch | 30 +++++++++++++++++++++++++++++
>  package/openpgm/openpgm.mk                  | 18 +++++++++++++++++
>  4 files changed, 59 insertions(+)
>  create mode 100644 package/openpgm/Config.in
>  create mode 100644 package/openpgm/openpgm-cross-compile.patch
>  create mode 100644 package/openpgm/openpgm.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 2fad94d..bfaf944 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -524,6 +524,7 @@ source "package/libtorrent/Config.in"
>  source "package/libupnp/Config.in"
>  source "package/libvncserver/Config.in"
>  source "package/nss-mdns/Config.in"
> +source "package/openpgm/Config.in"
>  source "package/ortp/Config.in"
>  source "package/slirp/Config.in"
>  source "package/usbredir/Config.in"
> diff --git a/package/openpgm/Config.in b/package/openpgm/Config.in
> new file mode 100644
> index 0000000..e9e5ee6
> --- /dev/null
> +++ b/package/openpgm/Config.in
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_OPENPGM
> +	bool "OpenPGM"
> +	help
> +	  OpenPGM is an open source implementation of the Pragmatic General
> +	  Multicast (PGM) specification in RFC 3208 available at www.ietf.org.
> +	  PGM is a reliable and scalable multicast protocol that enables
> +	  receivers to detect loss, request retransmission of lost data, or
> +	  notify an application of unrecoverable loss.
> +
> +	  http://code.google.com/p/openpgm/
> diff --git a/package/openpgm/openpgm-cross-compile.patch b/package/openpgm/openpgm-cross-compile.patch
> new file mode 100644
> index 0000000..67fc9cf
> --- /dev/null
> +++ b/package/openpgm/openpgm-cross-compile.patch
> @@ -0,0 +1,30 @@
> +--- a/openpgm/pgm/configure.ac	2011-09-27 20:59:08.000000000 +0300
> ++++ b/openpgm/pgm/configure.ac	2013-02-12 10:33:53.000000000 +0200
> +@@ -272,14 +272,19 @@ uint32_t add32_with_carry (uint32_t a, u
> + 	;;
> + esac
> + # ticket spinlock friendly: unaligned pointers & atomic ops (excl. Sun Pro)
> +-AC_MSG_CHECKING([for unaligned pointers])
> +-AC_RUN_IFELSE(
> +-	[AC_LANG_PROGRAM([[char* nezumi = "mouse";]],
> +-		[[short x = *(short*)(nezumi + 2)]])],
> +-	[AC_MSG_RESULT([yes])
> +-		pgm_unaligned_pointers=yes],
> +-	[AC_MSG_RESULT([no])
> +-		pgm_unaligned_pointers=no])
> ++AC_CACHE_CHECK([if unaligned access fails], [ac_cv_lbl_unaligned_fail],
> ++	[AC_RUN_IFELSE(
> ++		[AC_LANG_PROGRAM([[char* nezumi = "mouse";]],
> ++			[[short x = *(short*)(nezumi + 2)]])],
> ++		[ac_cv_lbl_unaligned_fail=no],
> ++		[ac_cv_lbl_unaligned_fail=yes],
> ++		[ac_cv_lbl_unaligned_fail=yes])
> ++	])
> ++if test "$ac_cv_lbl_unaligned_fail" = yes; then
> ++	pgm_unaligned_pointers=no
> ++else
> ++	pgm_unaligned_pointers=yes
> ++fi
> + AC_MSG_CHECKING([for intrinsic atomic ops])
> + # AC_PREPROC_IFELSE not always portable
> + AC_COMPILE_IFELSE(
> diff --git a/package/openpgm/openpgm.mk b/package/openpgm/openpgm.mk
> new file mode 100644
> index 0000000..34c5965
> --- /dev/null
> +++ b/package/openpgm/openpgm.mk
> @@ -0,0 +1,18 @@
> +#############################################################
> +#
> +# openpgm
> +#
> +#############################################################
> +
> +OPENPGM_VERSION = 5.2.121~dfsg
> +OPENPGM_SOURCE = libpgm-$(OPENPGM_VERSION).tar.gz
> +OPENPGM_SITE = http://openpgm.googlecode.com/files/
> +OPENPGM_LICENSE = LGPLv2.1+
> +OPENPGM_LICENSE_FILES = openpgm/pgm/LICENSE
> +OPENPGM_INSTALL_STAGING = YES
> +OPENPGM_AUTORECONF = YES
> +OPENPGM_SUBDIR = openpgm/pgm/
> +OPENPGM_CONF_ENV = ac_cv_file__proc_cpuinfo=yes ac_cv_file__dev_rtc=no \
> +                   ac_cv_file__dev_hpet=no
> +
> +$(eval $(autotools-package))



-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com


More information about the buildroot mailing list